Intellect Board — cистема управления сайтом

Построение сайта на основе форума

Intellect Board — cистема управления сайтом »   Список прикрепленных файлов
Сортировать по , вывести по
файлов на страницу тем на странице
Страницы: 1 2 3 4 5 ... 11 12 13 14 15 16 17 18 19 ... 45 46 47 48 49 50
Имя файлаТекст сообщенияТемаРаздел
news.php

Размер: 10158, скачан: 1262
Тип: application/octet-stream
Дата: 10 мая 2007 23:44
Патч для новостей (устранение ошибки, указанное gedeon).
Патчи к IntB 2.19 Final Техническая поддержка версии 2.19
photos.php

Размер: 16705, скачан: 744
Тип: application/octet-stream
Дата: 9 мая 2007 14:13
Я еще давным давно озаботился тем фактом, что в фотогалереи нет автоматического ресайза большой картинки по высоте, а есть только по ширине. Как оказалось на практике этого недостаточно и в фотоглалереи оказывались фотки, которые не умещались на экран монитора полностьи, приходилось в ручную масштабировать страницу в браузере. В итоге я добавил авторесайз и по высоте.

Выкладываю хак!

Открываем файл photos.php (в корне форума) и находим блок начиная со 189 строчки:


if ($GLOBALS['opt_photo_size_x'] && $sizex>$GLOBALS['opt_photo_size_x']) {
    $photo=imagecreatetruecolor($GLOBALS['opt_photo_size_x'],floor($GLOBALS['opt_photo_size_x']/$coeff));
    if ($GLOBALS['opt_GD2']) imagecopyresampled($photo,$fullimg,0,0,0,0,$GLOBALS['opt_photo_size_x'],floor($GLOBALS['opt_photo_size_x']/$coeff),$sizex,$sizey);
    else imagecopyresized($photo,$fullimg,0,0,0,0,$GLOBALS['opt_photo_size_x'],$GLOBALS['opt_photo_size_x']/$coeff,$sizex,$sizey);
    $tmpname=$GLOBALS['opt_dir']."/photos/$tid.jpg";
    imagejpeg($photo,$tmpname,$GLOBALS['opt_photo_qlty']);
  }


И заменяем его на блок


if ($GLOBALS['opt_photo_size_x'] && $sizex >= $sizey && $sizex>$GLOBALS['opt_photo_size_x']) {
    $photo=imagecreatetruecolor($GLOBALS['opt_photo_size_x'],floor($GLOBALS['opt_photo_size_x']/$coeff));
    if ($GLOBALS['opt_GD2']) imagecopyresampled($photo,$fullimg,0,0,0,0,$GLOBALS['opt_photo_size_x'],floor($GLOBALS['opt_photo_size_x']/$coeff),$sizex,$sizey);
    else imagecopyresized($photo,$fullimg,0,0,0,0,$GLOBALS['opt_photo_size_x'],$GLOBALS['opt_photo_size_x']/$coeff,$sizex,$sizey);
    $tmpname=$GLOBALS['opt_dir']."/photos/$tid.jpg";
    imagejpeg($photo,$tmpname,$GLOBALS['opt_photo_qlty']);
  } elseif ($GLOBALS['opt_photo_size_x'] && $sizey >= $sizex && $sizey>$GLOBALS['opt_photo_size_x']) {
    $photo=imagecreatetruecolor(floor($GLOBALS['opt_photo_size_x']*$coeff),$GLOBALS['opt_photo_size_x']);
    if ($GLOBALS['opt_GD2']) imagecopyresampled($photo,$fullimg,0,0,0,0,floor($GLOBALS['opt_photo_size_x']*$coeff),$GLOBALS['opt_photo_size_x'],$sizex,$sizey);
    else imagecopyresized($photo,$fullimg,0,0,0,0,$GLOBALS['opt_photo_size_x']*$coeff,$GLOBALS['opt_photo_size_x'],$sizex,$sizey);
    $tmpname=$GLOBALS['opt_dir']."/photos/$tid.jpg";
    imagejpeg($photo,$tmpname,$GLOBALS['opt_photo_qlty']);
  }


Дальше находим функцию do_edit() (строки 236-287) и заменяем её на такую:


function do_edit() {
  if ($GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_lmoderate'] && $GLOBALS['intopic']['t_author']!=$GLOBALS['inuserid'] && $GLOBALS['inuserlevel']<$GLOBALS['inforum']['f_ledit']) error(MSG_e_t_norights);

  $forum=$GLOBALS['forum'];
  $tid=$GLOBALS['topic'];
  global $link;

  check_hurl();
  $sqldata = build_sql("t_");
  $sql = "UPDATE ".$GLOBALS['DBprefix']."Topic SET $sqldata WHERE t_id=".$GLOBALS['topic'];
  $res =&db_query($sql,$link);

  if (!$GLOBALS['opt_photos_line']) $GLOBALS['opt_photos_line']=5;
  if (!$GLOBALS['opt_photo_thumb_y']) $GLOBALS['opt_photo_thumb_y']=100;
  if (!$GLOBALS['opt_thumb_qlty']) $GLOBALS['opt_thumb_qlty']=70;
  if (!$GLOBALS['opt_photo_qlty']) $GLOBALS['opt_photo_qlty']=70;
  
  if (is_uploaded_file($_FILES['photo']['tmp_name'])) {
    if (!$GLOBALS['opt_photo_maxsize']) $GLOBALS['opt_photo_maxsize']=$GLOBALS['opt_maxfileattach'];
    if ($_FILES['photo']['size']>$GLOBALS['opt_photo_maxsize']) error(MSG_e_ph_toolarge);
    $fh=fopen($_FILES['photo']['tmp_name'],"rb");
    $buffer=fread($fh,$_FILES['photo']['size']);
    fclose($fh);

    $fullimg=imagecreatefromstring($buffer);
    if (!$fullimg) error(MSG_e_ph_badfile);
    $sizey=imagesy($fullimg);
    $sizex=imagesx($fullimg);
    $coeff=$sizex/$sizey;
  
    if (!$GLOBALS['opt_photo_maxsize']) $GLOBALS['opt_photo_maxsize']=$GLOBALS['opt_maxfileattach'];
    if ($_FILES['photo']['size']>$GLOBALS['opt_photo_maxsize']) error(MSG_e_ph_toolarge);
    $thumb=imagecreatetruecolor(floor($GLOBALS['opt_photo_thumb_y']*$coeff),$GLOBALS['opt_photo_thumb_y']);
    if ($GLOBALS['opt_GD2']) imagecopyresampled($thumb,$fullimg,0,0,0,0,$GLOBALS['opt_photo_thumb_y']*$coeff,$GLOBALS['opt_photo_thumb_y'],$sizex,$sizey);
    else imagecopyresized($thumb,$fullimg,0,0,0,0,floor($GLOBALS['opt_photo_thumb_y']*$coeff),$GLOBALS['opt_photo_thumb_y'],$sizex,$sizey);
    $tmpname=$GLOBALS['opt_dir']."/photos/previews/$tid.jpg";
    if (file_exists($tmpname)) unlink($tmpname);
    imagejpeg($thumb,$tmpname,$GLOBALS['opt_thumb_qlty']);

    if ($GLOBALS['opt_photo_size_x'] && $sizex >= $sizey && $sizex>$GLOBALS['opt_photo_size_x']) {
      $photo=imagecreatetruecolor($GLOBALS['opt_photo_size_x'],floor($GLOBALS['opt_photo_size_x']/$coeff));
      if ($GLOBALS['opt_GD2']) imagecopyresampled($photo,$fullimg,0,0,0,0,$GLOBALS['opt_photo_size_x'],floor($GLOBALS['opt_photo_size_x']/$coeff),$sizex,$sizey);
      else imagecopyresized($photo,$fullimg,0,0,0,0,$GLOBALS['opt_photo_size_x'],$GLOBALS['opt_photo_size_x']/$coeff,$sizex,$sizey);
      $tmpname=$GLOBALS['opt_dir']."/photos/$tid.jpg";
      if (file_exists($tmpname)) unlink($tmpname);
      imagejpeg($photo,$tmpname,$GLOBALS['opt_photo_qlty']);
    } elseif ($GLOBALS['opt_photo_size_x'] && $sizey >= $sizex && $sizey>$GLOBALS['opt_photo_size_x']) {
      $photo=imagecreatetruecolor(floor($GLOBALS['opt_photo_size_x']*$coeff),$GLOBALS['opt_photo_size_x']);
      if ($GLOBALS['opt_GD2']) imagecopyresampled($photo,$fullimg,0,0,0,0,floor($GLOBALS['opt_photo_size_x']*$coeff),$GLOBALS['opt_photo_size_x'],$sizex,$sizey);
      else imagecopyresized($photo,$fullimg,0,0,0,0,$GLOBALS['opt_photo_size_x']*$coeff,$GLOBALS['opt_photo_size_x'],$sizex,$sizey);
      $tmpname=$GLOBALS['opt_dir']."/photos/$tid.jpg";
      if (file_exists($tmpname)) unlink($tmpname);
      imagejpeg($photo,$tmpname,$GLOBALS['opt_photo_qlty']);
    }
    else move_uploaded_file($_FILES['photo']['tmp_name'],$GLOBALS['opt_dir']."/photos/$tid.jpg");
  
    imagedestroy($fullimg);
    if ($GLOBALS['opt_photo_size_x'] && $sizex>$GLOBALS['opt_photo_size_x']) imagedestroy($photo);
    imagedestroy($thumb);
  }

  $sql = "SELECT MIN(p_id) FROM ".$GLOBALS['DBprefix']."Post WHERE p_tid=".$GLOBALS['topic'];
  $res =&db_query($sql,$link);
  list($pid)=db_fetch_row($res);

  $sqldata = build_sql("p_");
  $sqldata.= check_post_params();
  $sql = "UPDATE ".$GLOBALS['DBprefix']."Post SET $sqldata WHERE p_id=\"$pid\" AND p_tid=".$GLOBALS['topic'];
  $res =&db_query($sql,$link);

  topic_message(MSG_ph_saved,1);
}


Внимание! В данный хак входит устранение ошибки с невозможностью замены фото (в дальнейшем исправление этой ошибки будет включено в дистрибутив)

Для тех, кто не хочет возиться с хаками, приложил файлик photos.php (класть в корень).

Ну и для порядка можно сменить языковую константу в файле langs\ru\admin.php

define('MSG_opt_photo_size_x','Максимальный линейный размер фотографии при ее просмотре');

Конечно, можно было предусмотреть отдельную величину и для высоты, но я посчитал, что хватит одной величины как для максимальной ширины, так и для максимальной высоты.
Фотогалерея Народные рецепты
stdforum.php

Размер: 35585, скачан: 1221
Тип: application/octet-stream
Дата: 9 мая 2007 0:31
Исправление copyright-сообщения для версии для печати. Класть в styles/abstract.
Патчи к IntB 2.19 Final Техническая поддержка версии 2.19
parser.php

Размер: 12540, скачан: 1293
Тип: application/octet-stream
Дата: 7 мая 2007 18:56
Патч для тегов [right] и [translit]. Класть в корень.
Патчи к IntB 2.19 Final Техническая поддержка версии 2.19
online.php

Размер: 3574, скачан: 1284
Тип: application/octet-stream
Дата: 7 мая 2007 18:47
Исправление ситуации, когда скрытый пользователь показывается в списке присутствующих, но без выполняемого действия. (Об этой ошибке сообщали Uri (но без выявления ситуации) и Gram). Класть в корень.
Патчи к IntB 2.19 Final Техническая поддержка версии 2.19
Picture1.png

Размер: 103000, скачан: 651
Тип: image/png
Дата: 4 мая 2007 11:18
У меня под одним экаунтом сообщения только одного другого экаунта дублируются при отображении страницы. Такое происходит только при логине под одним моим экаунтом. Дублируются сообщения только одного этого "персонажа" =)

Я, конечно, постоянно вношу изменения в оформление и редко в движок. Мог где-то и напортачить. Но симптомы проблемы таковы, что я даже не предполагаю с какого места начать смотреть =)
Изменение "Стиля форума" положительного эффекта не дает.
Ну вот, еще один начал двоиться :(

http://www.redbike.ru/rbforum/
отображение по 2 поста с одним ID Техническая поддержка версии 2.18
process.php

Размер: 8922, скачан: 1062
Тип: application/octet-stream
Дата: 1 мая 2007 23:16
Патч для process.php (проблема с &lt; в теге php). Класть в корень.
Патчи к IntB 2.19 Final Техническая поддержка версии 2.19
auth.php

Размер: 13706, скачан: 1165
Тип: application/octet-stream
Дата: 1 мая 2007 23:08
Еще раз перевыкладываю auth.php (для исправления ошибки с активацией)
Патчи к IntB 2.19 Final Техническая поддержка версии 2.19
parser.php

Размер: 12542, скачан: 1091
Тип: application/octet-stream
Дата: 29 апреля 2007 15:48
Еще раз перевыкладываю исправленный parser
Патчи к IntB 2.19 Final Техническая поддержка версии 2.19
parser.php

Размер: 12541, скачан: 1127
Тип: application/octet-stream
Дата: 28 апреля 2007 12:38
Исправление файла parser.php (некорректная обработка тега video).
Патчи к IntB 2.19 Final Техническая поддержка версии 2.19
Страницы: 1 2 3 4 5 ... 11 12 13 14 15 16 17 18 19 ... 45 46 47 48 49 50

17 посетителей просмотрели форум за последние 10 минут
В том числе: 17 гостей, 0 скрытых пользователей

Последние RSS
Ограничение доступа
не отображаются разделы
Архив версий
Установка стиля на Intellect Board 2.22
Завершилась работа над новой версией 3.00

Самые активные 5 тем RSS


Время выполнения скрипта: 0.0423. Количество выполненных запросов: 7, время выполнения запросов 0.0000
Creative Commons License Rambler's Top100 Rambler's Top100 Рейтинг@Mail.ru Valid HTML 4.01 Transitional Valid CSS!