Патчи для версии 3.02
. Редактировалось 3 раза, последний — #1
В этой теме будут выкладываться патчи исправлений, сделанных после выпуска.
Внимание: если вы скачали дистрибутив после 12 ноября 2019 года, исправления в сообщениях с #2 по #11 в него уже включены.
Внимание: если вы скачали дистрибутив после 12 ноября 2019 года, исправления в сообщениях с #2 по #11 в него уже включены.
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Баг с некорректным отображением отметок о прочтении сообщений. В файле modules/bookmark.php найти строку
и заменить на
Внимание! Эта строка встречается два раза: в функциях action_updated и action_unread.
В файле modules/stdforum.php строку
заменить на
$sql = 'SELECT mark_time FROM '.DB_prefix.'mark_all WHERE fid=0';
и заменить на
$sql = 'SELECT mark_time FROM '.DB_prefix.'mark_all WHERE fid=0 AND uid='.intval($this->get_uid());
Внимание! Эта строка встречается два раза: в функциях action_updated и action_unread.
В файле modules/stdforum.php строку
$sql = 'SELECT MAX(mark_time) FROM '.DB_prefix.'mark_all WHERE fid=0 OR fid='.intval($this->forum['id']);
заменить на
$sql = 'SELECT MAX(mark_time) FROM '.DB_prefix.'mark_all WHERE (fid=0 OR fid='.intval($this->forum['id']).') AND uid='.intval($this->get_uid());
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Исправление ошибки с редактированием дополнительных блоков в АЦ. В файле template/def/admin/settings/subaction.tpl поменять строку
на
Исправленная версия файла — в приложении.
<div><label><span>Действие включено?</span>{{ macros.checkbox('subaction[active]',subaction.active,1) }}</label></div>
на
<div><label><span>Действие включено?</span>{{ macros.checkbox('subaction[active]',1,subaction.active) }}</label></div>
Исправленная версия файла — в приложении.
Прикрепленные файлы:
- subaction.tpl (2589 байтов)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Патч для бага с многострочными ссылками.
В файле lib/bbocode.php заменить строки
на
В файле lib/bbocode.php заменить строки
self::$search[]='|\[url=([\d\w\./\?][^\]"\']+)\](.*?)\[/url\]|'; self::$replace[]='<a href="$1">$2</a>'; // первый символ URL всегда либо буква, либо косая черта, либо точка. Все остальное -- подозрительно и не должно вызывать срабатывания regexp
self::$search[]='|\[url\]([\d\w\./\?][^\]"\']+)\[/url\]|'; self::$replace[]='<a href="$1">$1</a>';
self::$search[]='|\[reply-to=(https?://[\d\w\./\?][^\]"\']+)\](.*?)\[/reply-to\]|'; self::$replace[]='<a class="u-in-reply-to" href="$1">$2</a>'; // первый символ URL всегда либо буква, либо косая черта, либо точка. Все остальное -- подозрительно и не должно вызывать срабатывания regexp
на
self::$search[]='|\[url=([\d\w\./\?][^\]"\']+)\](.*?)\[/url\]|s'; self::$replace[]='<a href="$1">$2</a>'; // первый символ URL всегда либо буква, либо косая черта, либо точка. Все остальное -- подозрительно и не должно вызывать срабатывания regexp
self::$search[]='|\[url\]([\d\w\./\?][^\]"\']+)\[/url\]|s'; self::$replace[]='<a href="$1">$1</a>';
self::$search[]='|\[reply-to=(https?://[\d\w\./\?][^\]"\']+)\](.*?)\[/reply-to\]|s'; self::$replace[]='<a class="u-in-reply-to" href="$1">$2</a>'; // первый символ URL всегда либо буква, либо косая черта, либо точка. Все остальное -- подозрительно и не должно вызывать срабатывания regexp
Прикрепленные файлы:
- bbcode.php (28 Кб)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
Исправление ошибки с неработающей галочкой «Удалить сообщение» при его редактировании. В файле modules/stdforum.php в функции action_edit после строк
добавить код:
Исправленный файл прилагается.
$this->out->allow_warning = $this->check_access('moderate') && $oldpost['uid']!=$this->get_uid();
if ($this->is_post()) {
if (empty($_POST['authkey']) && !$this->is_guest()) $this->output_403('Отсутствует ключ авторизации, подозрение на CSRF-атаку.');
добавить код:
if (!empty($_POST['delete'])) {
$url = $this->url('moderate/'.$this->topic['full_hurl']);
$key = $this->gen_auth_key($this->get_uid(),'delete_post',$url);
$this->redirect($this->http($url).'delete_post.htm?id='.$pid.'&authkey='.$key,false);
}
Исправленный файл прилагается.
Прикрепленные файлы:
- stdforum.php (83 Кб)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
. Редактировалось 2 раза, последний — #25
Как выяснилось, некоторые почтовые агенты, например, exim4, не пропускают письма со слишком длинными строками, которые часто возникают при рассылке писем в HTML-формате. Исправляется это достаточно просто: в файл lib/mail.php перед строкой, содержащей function mime_encode добавляем код:
Затем после строки
добавляем строку:
Или просто берём приложенный к этому сообщению файл и кладём его в lib/mail.php.
function separate_lines($text, $block_len=70) {
$len = mb_strlen($text);
$result = '';
for ($i = 0; $i < $len; $i = $i + $block_len) {
$result .= preg_replace("/ /", " \r\n", mb_substr($text, $i, $block_len), 1);
}
return $result;
}
Затем после строки
if (isset($maildata['html']) && $maildata['html']==false) $maildata[$i]['text']=strip_tags($maildata[$i]['text']);
добавляем строку:
else $maildata[$i]['text'] = $this->separate_lines($maildata[$i]['text']);
Или просто берём приложенный к этому сообщению файл и кладём его в lib/mail.php.
Прикрепленные файлы:
- mail.php (3015 байтов)
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
У вас нет прав для отправки сообщений в эту тему.