Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2006-04-04 17:15:58

kisin
Гость

PBB Gallery 2.0. Вопрос

к тем, кто пользуется. заметил одну вещь, когда загружаешь картинку, то помимо маленькой ее превьюшки сжимается и оригинальное изображение.
в админке поставил разрешение, до которого сжимать не надо - 1025х769, однако не помогает. все равно качество картинки заметно портится.

#2 2006-04-04 17:24:48

kisin
Гость

Re: PBB Gallery 2.0. Вопрос

хотя скорее всего я ошибаюсь, 800х600 сейчас выложили, без потерь.
а все же если картинка больше? покопался в коде, не нашел переменной, отвечающей за качество изображения (ведь обычно при сжимании jpeg можно его прописАть).

#3 2006-04-04 18:06:28

kisin
Гость

Re: PBB Gallery 2.0. Вопрос

разобрался сам. было:
imagejpeg($img_dest, $pun_config['g_rep_upload'].'/'.$pun_user['id'].'_thumbs_'.$now.$extensions[0]);

стало:
imagejpeg($img_dest, $pun_config['g_rep_upload'].'/'.$pun_user['id'].'_thumbs_'.$now.$extensions[0], $quality);

#4 2006-09-15 16:18:27

Veerpool
Гость

Re: PBB Gallery 2.0. Вопрос

помогите, не могу понять постоянно при загрузке пишет
Warning: ftp_put(): Can't open that file: No such file or directory in /pub/home/yumiru95/sh/veerpool/veerpool/web/forum/gallery_post.php on line 287

Warning: ftp_put(): Can't open that file: No such file or directory in /pub/home/yumiru95/sh/veerpool/veerpool/web/forum/gallery_post.php on line 288


но фотки в директорию загружаются

#5 2006-09-16 10:16:00

SDTux
Гость

Re: PBB Gallery 2.0. Вопрос

Veerpool, права в 750 выстави на папки и еще код 287 и 288 строк скинь сюда.

#6 2006-09-19 00:16:13

kisin
Гость

Re: PBB Gallery 2.0. Вопрос

решил немного обновить функциональность мода и сделать запрет на просмотр картинкок (в зависимости от прав, расставленных в админке на категорию, кот. принадлежит картинка).

необходимо заменить один кейс в файле gallery.php):
находим строку ~83 и выделяем все до строки ~134:

if(isset($_GET['pid'])) //View picture
{
  $pid = isset($_GET['pid']) ? intval($_GET['pid']) : 0;
  if ($pid < 1)
      message($lang_common['Bad request']);
 
  $result = $db->query('SELECT id, poster_id, subject, posted, cat_id FROM '.$db->prefix.'gallery_img WHERE id='.$pid) or error('Unable to fetch pictures', __FILE__, __LINE__, $db->error());
  $cur_img = $db->fetch_assoc($result);
 
  if ($cur_img)
    {
      // Update the Picture View
      $db->query('UPDATE '.$db->prefix.'gallery_img SET num_views=num_views+1 WHERE id='.$pid) or error('Unable to update picture', __FILE__, __LINE__, $db->error());
   
      /* FTP Upload Server *********************************************************************/
      if($pun_config['g_ftp_upload'] == 1)
      {
        if (@fopen($pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.gif', 'r'))
          { $extension = '.gif'; $content_type = 'image/gif';}
        elseif (@fopen($pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.jpg', 'r'))
          { $extension = '.jpg'; $content_type = 'image/jpeg';}
        elseif (@fopen($pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.png', 'r'))
          { $extension = '.png'; $content_type = 'image/png';}
        else
          $extension = '';
      }
      /* FTP Upload Server *********************************************************************/
      else
      {
        if (file_exists($pun_config['g_rep_upload'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.gif'))
          { $extension = '.gif'; }
        elseif (file_exists($pun_config['g_rep_upload'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.jpg'))
          { $extension = '.jpg'; }
        elseif (file_exists($pun_config['g_rep_upload'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.png'))
          { $extension = '.png'; }
        else
          $extension = '';
      }

      if($extension)
        $picture = $cur_img['poster_id'].'_'.$cur_img['posted'].$extension;
      else
          message('<strong>'.$lang_gallery['Error Annonce'].'</strong> '.$lang_gallery['Error No Img View']);
    }
  else
    message('<strong>'.$lang_gallery['Error Annonce'].'</strong> '.$lang_gallery['Error No Img View']);
 
    if($pun_config['g_ftp_upload'] == 1)
      header('Location: '.$pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$picture);
    else
      header('Location: '.$pun_config['g_rep_upload'].'/'.$picture);
}

меняем на:

if(isset($_GET['pid'])) //View picture
{
  $pid = isset($_GET['pid']) ? intval($_GET['pid']) : 0;
  if ($pid < 1)
      message($lang_common['Bad request']);
 
  $result = $db->query('SELECT id, poster_id, subject, posted, cat_id FROM '.$db->prefix.'gallery_img WHERE id='.$pid) or error('Unable to fetch pictures', __FILE__, __LINE__, $db->error());
  $cur_img = $db->fetch_assoc($result);
 
 
  // Fetch some info about the cat
  // (Получаем информацию о категории, которой принадлежит картинка).

  $resultz = $db->query('SELECT gp.post_cat FROM '.$db->prefix.'gallery_cat AS c LEFT JOIN '.$db->prefix.'gallery_perms AS gp ON (gp.cat_id=c.id AND gp.group_id='.$pun_user['g_id'].') WHERE (gp.read_cat IS NULL OR gp.read_cat=1) AND c.id='.$cur_img['cat_id']) or error('Unable to fetch gallery info', __FILE__, __LINE__, $db->error());
  if (!$db->num_rows($resultz))
  {
  message($lang_common['Bad request']);
  } else {

 
 
  if ($cur_img)
    {
      // Update the Picture View
      $db->query('UPDATE '.$db->prefix.'gallery_img SET num_views=num_views+1 WHERE id='.$pid) or error('Unable to update picture', __FILE__, __LINE__, $db->error());
   
      /* FTP Upload Server *********************************************************************/
      if($pun_config['g_ftp_upload'] == 1)
      {
        if (@fopen($pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.gif', 'r'))
          { $extension = '.gif'; $content_type = 'image/gif';}
        elseif (@fopen($pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.jpg', 'r'))
          { $extension = '.jpg'; $content_type = 'image/jpeg';}
        elseif (@fopen($pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.png', 'r'))
          { $extension = '.png'; $content_type = 'image/png';}
        else
          $extension = '';
      }
      /* FTP Upload Server *********************************************************************/
      else
      {
        if (file_exists($pun_config['g_rep_upload'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.gif'))
          { $extension = '.gif'; }
        elseif (file_exists($pun_config['g_rep_upload'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.jpg'))
          { $extension = '.jpg'; }
        elseif (file_exists($pun_config['g_rep_upload'].'/'.$cur_img['poster_id'].'_'.$cur_img['posted'].'.png'))
          { $extension = '.png'; }
        else
          $extension = '';
      }

      if($extension)
        $picture = $cur_img['poster_id'].'_'.$cur_img['posted'].$extension;
      else
          message('<strong>'.$lang_gallery['Error Annonce'].'</strong> '.$lang_gallery['Error No Img View']);
    }
  else
    message('<strong>'.$lang_gallery['Error Annonce'].'</strong> '.$lang_gallery['Error No Img View']);
 
    if($pun_config['g_ftp_upload'] == 1)
      header('Location: '.$pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$picture);
    else
    {
    // Далее мы скрываем от всех путь до настоящего файла и выводим
    // изображение прямо в файле gallery.php:

    $filename = $pun_config['g_rep_upload'].'/'.$picture;
    // Content type
    header('Content-type: image/jpeg');

    // Get new sizes
    list($width, $height) = getimagesize($filename);
    // Load
    $thumb = imagecreatetruecolor($width, $height);
    $source = imagecreatefromjpeg($filename);
    // Resize
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $width, $height, $width, $height);
    // Output
    imagejpeg($thumb); 
    }
  }

}

теперь если в админ панели дать доступ к просмотру фотогалереи только какой-либо одной группе пользователей (например модераторам), то от всех остальных юсеров скроется не только категория, но они так же не смогут просматривать ссылки прямо на изображения (в том случаем, если они получили ее каким-либо образом от группы, имеющей доступ к категории).

---------------------- -------------------------- ----------------------- -----------------------

если хотим, чтобы то же самое применялось и к превьюшкам картинок (thumbs), то вслед после вышеприведенного кода, перед строчкой:

elseif(isset($_GET['cid'])) //View categorie

добавляем код:

elseif(isset($_GET['thumb'])) //View thumbs
{
  $pid = isset($_GET['thumb']) ? intval($_GET['thumb']) : 0;
  if ($pid < 1)
      message($lang_common['Bad request']);
  
  $result = $db->query('SELECT id, poster_id, subject, posted, cat_id FROM '.$db->prefix.'gallery_img WHERE id='.$pid) or error('Unable to fetch pictures', __FILE__, __LINE__, $db->error());
  $cur_img = $db->fetch_assoc($result);
  
  // Fetch some info about the cat
  $resultz = $db->query('SELECT gp.post_cat FROM '.$db->prefix.'gallery_cat AS c LEFT JOIN '.$db->prefix.'gallery_perms AS gp ON (gp.cat_id=c.id AND gp.group_id='.$pun_user['g_id'].') WHERE (gp.read_cat IS NULL OR gp.read_cat=1) AND c.id='.$cur_img['cat_id']) or error('Unable to fetch gallery info', __FILE__, __LINE__, $db->error());
  if (!$db->num_rows($resultz))
  {
  message($lang_common['Bad request']);
  } else {
  
  
  if ($cur_img)
    {
      /* FTP Upload Server *********************************************************************/
      if($pun_config['g_ftp_upload'] == 1)
      {
        if (@fopen($pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$cur_img['poster_id'].'_thumbs_'.$cur_img['posted'].'.gif', 'r'))
          { $extension = '.gif'; $content_type = 'image/gif';}
        elseif (@fopen($pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$cur_img['poster_id'].'_thumbs_'.$cur_img['posted'].'.jpg', 'r'))
          { $extension = '.jpg'; $content_type = 'image/jpeg';}
        elseif (@fopen($pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$cur_img['poster_id'].'_thumbs_'.$cur_img['posted'].'.png', 'r'))
          { $extension = '.png'; $content_type = 'image/png';}
        else
          $extension = '';
      }
      /* FTP Upload Server *********************************************************************/
      else
      {
       if (file_exists($pun_config['g_rep_upload'].'/'.$cur_img['poster_id'].'_thumbs_'.$cur_img['posted'].'.gif'))
        $extension = '.gif';
       elseif (file_exists($pun_config['g_rep_upload'].'/'.$cur_img['poster_id'].'_thumbs_'.$cur_img['posted'].'.jpg'))
        $extension = '.jpg';
       elseif (file_exists($pun_config['g_rep_upload'].'/'.$cur_img['poster_id'].'_thumbs_'.$cur_img['posted'].'.png'))
        $extension = '.png';
       else
        $extension = '';
      }

      if($extension)
        $picture = $cur_img['poster_id'].'_thumbs_'.$cur_img['posted'].$extension;
      else
        $picture = 'pix.gif';
    }
  else
    message('<strong>'.$lang_gallery['Error Annonce'].'</strong> '.$lang_gallery['Error No Img View']);
  
    if($pun_config['g_ftp_upload'] == 1)
      header('Location: '.$pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$picture);
    else
    {
    $filename = $pun_config['g_rep_upload'].'/'.$picture;
    // Content type
    header('Content-type: image/jpeg');

    // Get new sizes
    list($width, $height) = getimagesize($filename);
    // Load
    $thumb = imagecreatetruecolor($width, $height);
    $source = imagecreatefromjpeg($filename);
    // Resize
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $width, $height, $width, $height);
    // Output
    imagejpeg($thumb);  
    }
  }
}

далее находим строку ~560, в ней идет вывод ссылки на изображение и thumb-картинки:

                            <?php echo '<a href="gallery.php?pid='.$cur_img['id'].'" target="_blank">'; ?><img style="border:1px solid #<?php echo $pun_config['g_thumbs_bordercolor']; ?>;" src="<?php if ($pun_config['g_ftp_upload'] == '1') { echo $pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$picture; } else { echo $pun_config['g_rep_upload'].'/'.$picture; }?>"></a>

меняем на:

                            <?php echo '<a href="gallery.php?pid='.$cur_img['id'].'" target="_blank">'; ?><img style="border:1px solid #<?php echo $pun_config['g_thumbs_bordercolor']; ?>;" src="<?php if ($pun_config['g_ftp_upload'] == '1') { echo $pun_config['g_ftp_site'].'/'.$pun_config['g_ftp_rep'].'/'.$picture; } else { echo 'gallery.php?thumb='.$cur_img['id']; }?>"></a>

Редактировался kisin (2006-09-19 00:43:36)

#7 2006-09-19 01:06:38

kisin
Гость

Re: PBB Gallery 2.0. Вопрос

а вообще, помимо всего вышесказанного, галерею полностью изменил (особенно удобная функция - копирование цитаты, содержащую превьюшку и ссылку на изображение; далее скопированное вставляем в тему для обсуждения и видим картинку прямо в теме, то есть не надо объяснять что ты имеешь в виду "вон то изображение в таком-то разделе, пятое сверху").

Кто не понял, смотреть тут:
http://forum.e-stal.ru/gallery.php?cid=4

#8 2006-09-19 05:00:31

SDTux
Гость

Re: PBB Gallery 2.0. Вопрос

Прикольно. Можешь скинуть код модификации для быстрой вставки ссылки?

#9 2006-09-19 18:20:18

kisin
Гость

Re: PBB Gallery 2.0. Вопрос

скину целиком всю галлерею, ок?

#10 2006-09-20 04:33:57

SDTux
Гость

Re: PBB Gallery 2.0. Вопрос

kisin, боюсь будет не очень удобно для тех, у кого уже другие моды и правки к этому модулю есть wink

#11 2006-09-24 18:16:22

arta999
Гость

Re: PBB Gallery 2.0. Вопрос

а есть ли в этом моде PBB Gallery 2.0. возможность чтобы каждому юзеру создавалась своя галерея в которую он мог бы выкладывать свои фотографии и всякие картинки, если файлов нет, то галереи нету, а как только положит хоть один файл то она появляется и чтобы был какой-нибудь поиск по нику юзера

#12 2006-09-25 18:53:38

Veerpool
Гость

Re: PBB Gallery 2.0. Вопрос

а возможно ли сделать к ней систему голосования (рейтинга фоток) и комментарий?

#13 2006-09-26 05:06:35

SDTux
Гость

Re: PBB Gallery 2.0. Вопрос

Уважаемые, можно все, только нужно это все писать - в готов виде этого нет.

#14 2006-10-16 16:25:17

coordinator
Гость

Re: PBB Gallery 2.0. Вопрос

kisin пишет:

разобрался сам. было:
imagejpeg($img_dest, $pun_config['g_rep_upload'].'/'.$pun_user['id'].'_thumbs_'.$now.$extensions[0]);

стало:
imagejpeg($img_dest, $pun_config['g_rep_upload'].'/'.$pun_user['id'].'_thumbs_'.$now.$extensions[0], $quality);

У меня после такого изменения изображение превращается в "акварель".
Может какое-то значение нужно прописать для $quality
?

#15 2006-10-16 18:57:18

coordinator
Гость

Re: PBB Gallery 2.0. Вопрос

Еще у меня есть предложение по доработке kisin.
Когда незарегистрированный посетитель получает ссылку на скрытые разделы галереи для него выходит сообщение:

Неверный запрос. Ссылка, по которой вы пришли неверная или устаревшая.

или:

Bad request. The link you followed is incorrect or outdated.

Что не очень логично. Т. к. на самом деле все правильно, ошибки нет. А у посетителя может сложится неверное впечатление о работоспособности форума.

Например он прочитает пост, где будет ссылка зарегистрированного участника на раздел в галерее. Гость еще не знает о правилах и особенностях форума и при переходе по ссылке видетит сообщение о неполадках.
Это негативно сказывается на первом впечатлении от форума.

Лучше выводить сообщение типа такого:

Для просмотра необходима регистрация или ссылка, по которой вы пришли, неверная.

Я добавил в \lang\Russian\common.php добавил

'Bad send'            =>    'Для просмотра необходима регистрация или ссылка, по которой вы пришли, неверная.',

И в gallery.php заменил 'Bad request' на 'Bad send' в соответствующих местах.

#16 2006-10-17 04:55:53

SDTux
Гость

Re: PBB Gallery 2.0. Вопрос

coordinator, все бы ничего, но если ссылка, действительно, нерабочая, то пользователь будет регистрироваться, искать и так и не найдет.

Подвал доски

Под управлением FluxBB. Хостинг Hostens