Патчи для версии 3.02
. Редактировалось 3 раза, последний — #1
В этой теме будут выкладываться патчи исправлений, сделанных после выпуска.
Внимание: если вы скачали дистрибутив после 12 ноября 2019 года, исправления в сообщениях с #2 по #11 в него уже включены.
Внимание: если вы скачали дистрибутив после 12 ноября 2019 года, исправления в сообщениях с #2 по #11 в него уже включены.
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Патчи для мелких багов с добавлением самого себя в друзья и попытке отправить себе сообщения. Класть в modules/addrbook.php и modules/privmsg.php.
Прикрепленные файлы:
- privmsg.php (20 Кб)
- addrbook.php (6940 байтов)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Исправление мелкой ошибки — неправильного пути к поиску по тегам в профиле пользователя. Приложенный файл положить в template/def/user/view_user.tpl.
Прикрепленные файлы:
- view_user.tpl (6659 байтов)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Исправление мелкой ошибки в микроблогах (не прописан position:relative в CSS), из-за которой модераторам не видны ссылки для редактирования/удаления записей. Исправление грузить в файл template/def/micro/view.tpl.
Прикрепленные файлы:
- view.tpl (5995 байтов)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Исправление неработающего тега justify: была опечатка в слове justify файле lib/bcode.php. В функции process_bcode_ext нужно строку
заменить на
self::$ext_search[]='|\[justify\](.*?)\[/justify\]|s'; self::$ext_replace[]='<div style="text-align: jusify">$1</div>';
заменить на
self::$ext_search[]='|\[justify\](.*?)\[/justify\]|s'; self::$ext_replace[]='<div style="text-align: justify">$1</div>';
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
. Редактировалось 2 раза, последний — #16
Два патча к системе личных сообщений.
1) исправляет проблему с кешированием страницы личных сообщений, из-за которого чтобы увидеть новые ЛС, нужно обновлять её по Shift+F5. Класть в modules/privmsg.php.
2) корректно отображает теги pre, code и quote в ЛС. Класть в www/s/def/privmsg.css
1) исправляет проблему с кешированием страницы личных сообщений, из-за которого чтобы увидеть новые ЛС, нужно обновлять её по Shift+F5. Класть в modules/privmsg.php.
2) корректно отображает теги pre, code и quote в ЛС. Класть в www/s/def/privmsg.css
Прикрепленные файлы:
- privmsg.php (20 Кб)
- privmsg.css (2150 байтов)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Обнаружилось, что в RSS я изначально прописал вывод в поток сообщений только за последние сутки, если нет заголовка If-Modified-Since. Это не очень удобно, так как при подписке лента оказывается почти пустой. Поэтому решил переделать — брать значение из настройки «Показывать темы за …».
Исправление: в файле modules/stdforum.php в функции action_rss строки
заменить на
Исправление: в файле modules/stdforum.php в функции action_rss строки
$period=1;
$cond['after_time']=max(intval($this->if_modified_time),$this->time-$period*24*60*60);
заменить на
$period = $this->get_opt('topics_period','user');
if ($period<=0 || $period>30) $period=30; // если у пользователя не выставлен лимит или он слишком велик, выставляем его равным 30 дням во избежание выгрузки всей базы
$cond['after_time']=max(intval($this->if_modified_time),$this->time-$period*24*60*60);
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Исправление давнего бага с работой списка стоп-слов:
в файле module/stdforum.php в функции post_pre_check строку
заменить на:
в файле module/stdforum.php в функции post_pre_check строку
$stopwords = explode("\n",$this->get_text(0,4));
заменить на:
$stopwords = array_map('trim',explode("\n",$this->get_text(0,4)));
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Патч для ошибки, о которой сообщил _1_ тут.
Ошибка была в SQL-запросе в функции delete_forums, где было написано
В результате запрос приобретал вид id=id IN (....), что воспринималось как True, и удалялись все тексты с типами 0, 1, 2, 3 (объявления, правила и т.п.)
Тогда как на самом деле должно быть:
Файл класть в lib/delete.php
Ошибка была в SQL-запросе в функции delete_forums, где было написано
$sql = 'DELETE FROM '.DB_prefix.'text WHERE (type=0 OR type=1 OR type=2 OR type=3) AND id='.Library::$app->db->array_to_sql($ids, 'id');
В результате запрос приобретал вид id=id IN (....), что воспринималось как True, и удалялись все тексты с типами 0, 1, 2, 3 (объявления, правила и т.п.)
Тогда как на самом деле должно быть:
$sql = 'DELETE FROM '.DB_prefix.'text WHERE (type=0 OR type=1 OR type=2 OR type=3) AND '.Library::$app->db->array_to_sql($ids, 'id');
Файл класть в lib/delete.php
Прикрепленные файлы:
- delete.php (10 Кб)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Исправлена ошибка, когда написание тега в другом регистре приводило к ошибке SQL при создании темы. Исправление: в файле lib/tags.php в функции set_tags привести блок кода
к виду
Исправленный файл прикладываю.
if (!empty($tag_string)) {
$tags = explode(',',$tag_string);
$sql = 'SELECT tagname,id FROM '.DB_prefix.'tagname WHERE tagname IN ("'.join('","',$tags).'") AND type='.intval($type);
$taghash = Library::$app->db->select_simple_hash($sql);
for ($i=0, $count=count($tags);$i<$count;$i++) {
if (!isset($taghash[$tags[$i]])) {
$sql = 'INSERT INTO '.DB_prefix.'tagname (tagname,count,type) VALUES ("'.$tags[$i].'",0,'.intval($type).')';
Library::$app->db->query($sql);
$taghash[$tags[$i]]=Library::$app->db->insert_id();
}
}
}
к виду
if (!empty($tag_string)) {
if (function_exists('mb_strtolower')) $lowerfunc = 'mb_strtolower';
else $lowerfunc = 'strtolower';
$tags = explode(',',$tag_string);
$sql = 'SELECT LOWER(tagname),id FROM '.DB_prefix.'tagname WHERE tagname IN (\''.join('\',\'',$tags).'\') AND type=\''.intval($type).'\'';
$taghash = Library::$app->db->select_simple_hash($sql);
for ($i=0, $count=count($tags);$i<$count;$i++) {
if (!isset($taghash[$lowerfunc($tags[$i])])) {
$sql = 'INSERT INTO '.DB_prefix.'tagname (tagname,count,type) VALUES (\''.$tags[$i].'\',0,\''.intval($type).'\')';
Library::$app->db->query($sql);
$taghash[$tags[$i]]=Library::$app->db->insert_id();
}
}
}
Исправленный файл прикладываю.
Прикрепленные файлы:
- tags.php (6035 байтов)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
У вас нет прав для отправки сообщений в эту тему.