yura3d |
Отправлено: 11 декабря 2010 — 23:34
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
Данное дополнение позволяет выводить ссылки на сообщения, фрагменты которых были процитированы. Ссылки будут размещаться рядом с цитатами и позволят Вам быстро перейти к цитируемому сообщению. Это может быть довольно полезно в том случае, если цитируемое сообщение публиковалось довольно давно - ссылка на сообщение-первоисточник поможет пользователям вспомнить, о чём шла речь. В случае же, если цитируется сообщение из другой темы или раздела форума, ссылка на первоисточник поможет глубже понять суть обсуждаемой проблемы. Эта возможность хорошо зарекомендовала себя на других движках, теперь она доступна и на ExBB!
Ссылки на цитируемые сообщения добавятся только для новых сообщений, которые будут опубликованы после установки этого дополнения. На сообщения, которые уже размещались на Вашем форуме на момент установки дополнения, последнее никак не воздействует
Установка (Отобразить)Для установки дополнения откройте файл include/fm.class.php, найдите строки:
CODE: while (preg_match("#\[(q|quote)(|=([^\[\]]+?))\](?!.*\[\\1(|=([^\[\]]+?))\])(.+?)\[/\\1\]#is", $string, $matches)){
$title = ($matches[3] !== '') ? $matches[3].' пишет:':'Цитата:';
$string = str_replace($matches[0],"<div class=\"block\"><b>{$title}</b><div class=\"quote\">{$matches[6]}</div></div>", $string);
и замените их строками:
CODE: while (preg_match("#\[(q|quote)(|=([^\[\]\|]+?)(|\|([0-9]+)\:([0-9]+)\:([0-9]+)))\](?!.*\[\\1(|=([^\[\]]+?))\])(.+?)\[/\\1\]#is", $string, $matches)){
$title = ($matches[3] !== '') ? $matches[3].' пишет:'.(($matches[5] !== '') ? ' <a href="topic.php?forum='.$matches[5].'&topic='.$matches[6].'&postid='.$matches[7].'#'.$matches[7].'" title="'.$this->LANG['GoToQuote'].'" target="_blank"><img src="templates/'.DEF_SKIN.'/im/goquote.gif" border="0"></a>' : ''):'Цитата:';
$string = str_replace($matches[0],"<div class=\"block\"><b>{$title}</b><div class=\"quote\">{$matches[10]}</div></div>", $string);
Далее откройте файл javascript/formcode.js, найдите строку:
CODE: var replace = (a[1] != '') ? '='+a[1]:'';
и замените её строкой:
CODE: var replace = (a[1] != '') ? '='+a[1]+'|'+a[2]+':'+a[3]+':'+a[4]:'';
Теперь откройте файл language/russian/lang_front_all.php, найдите строки:
и над ними разместите строку:
CODE:$this->LANG['GoToQuote'] = 'Перейти к цитируемому сообщению';
Затем откройте файл topic.php, найдите строку:
CODE: $quote = ($access === TRUE && $topic['state'] != 'closed') ? '<a href="#" name="quote" onmouseover="copyQ();" onClick="bbcode(this,\''.addslashes($users[$member_id]['user']).'\'); return false;" title="'.$fm->LANG['IconQuote'].'">'.$_icon['quote'].'</a>'.$_icon['divider']:"";
и замените её строкой:
CODE: $quote = ($access === TRUE && $topic['state'] != 'closed') ? '<a href="#" name="quote" onmouseover="copyQ();" onClick="bbcode(this,\''.addslashes($users[$member_id]['user']).'\','.$forum_id.','.$topic_id.','.$key.'); return false;" title="'.$fm->LANG['IconQuote'].'">'.$_icon['quote'].'</a>'.$_icon['divider']:"";
Далее откройте файл post.php. Если у Вас установлен мод Скрытый текст с данным исправлением (либо, если Вы установили этот мод позже 31.01.2010), найдите строку:
CODE: $fm->input['inpost'] = '[quote='.$quter_name.']'.preg_replace_callback('#\[hide(\=([0-9]+)|)\](.+?)\[\/hide\]#is', 'hidden_check', $topic[$post_id]['post']).'[/quote]';
и замените её строкой:
CODE: $fm->input['inpost'] = '[quote='.$quter_name.'|'.$forum_id.':'.$topic_id.':'.$post_id.']'.preg_replace_callback('#\[hide(\=([0-9]+)|)\](.+?)\[\/hide\]#is', 'hidden_check', $topic[$post_id]['post']).'[/quote]';
В противном случае, если мод скрытия текста у Вас не установлен (либо Вы не можете найти описанную выше искомую строку), в этом же файле найдите строку:
CODE: $fm->input['inpost'] = '[quote='.$quter_name.']'.$topic[$post_id]['post'].'[/quote]';
и замените её строкой:
CODE: $fm->input['inpost'] = '[quote='.$quter_name.'|'.$forum_id.':'.$topic_id.':'.$post_id.']'.$topic[$post_id]['post'].'[/quote]';
Наконец, в этом же файле найдите строку:
CODE: $quote = '<a href="#" name="quote" onmouseover="copyQ();" onClick="bbcode(this,\''.addslashes($users[$user_id]['n']).'\'); return false;" title="'.$fm->LANG['IconQuote'].'">'.$icon_quote.'</a>'.$icon_divider;
и замените её строкой:
CODE: $quote = '<a href="#" name="quote" onmouseover="copyQ();" onClick="bbcode(this,\''.addslashes($users[$user_id]['n']).'\','.$forum_id.','.$topic_id.','.$key.'); return false;" title="'.$fm->LANG['IconQuote'].'">'.$icon_quote.'</a>'.$icon_divider;
Останется только скопировать из прикреплённого архива иконку ссылки goquote.gif в папку templates/ваш_скин/im (если у Вас установлено несколько тем оформления, эту операцию необходимо повторить для каждой из них)
Все Ваши вопросы, пожелания и замечания по этому дополнению оставляйте в данной теме
- Исправление от 13.12.2010 (уже включено в инструкцию по установке)
Необходимо установить всем, кто устанавливал это дополнение до 13.12.2010. Решена проблема с совместной работой данного дополнения со встроенным модулем RSS-ленты, а также с модулем Поиск тем и сообщений пользователя
|
|
|
Nikela |
Отправлено: 12 декабря 2010 — 01:14
|
Advanced Member
Покинул форум
Сообщений всего: 254
Дата рег-ции: Нояб. 2010
Откуда: Минск
Репутация: 10
|
yura3d пишет:
Затем откройте файл topic.php, найдите строку:
CODE: $quote = ($access === TRUE && $topic['state'] != 'closed') ? '<a href="#" name="quote" onmouseover="copyQ();" onClick="bbcode(this,\''.addslashes($users[$member_id]['user']).'\'); return false;" title="'.$fm->LANG['IconQuote'].'">'.$_icon['quote'].'</a>'.$_icon['divider']:"";
Такой строки вообще не найдено даже простого $quote нет...
yura3d пишет:Далее откройте файл post.php, найдите строку:
CODE: $fm->input['inpost'] = '[quote='.$quter_name.']'.$topic[$post_id]['post'].'[/quote]';
В моем файле есть только такая строка:
CODE:$fm->input['inpost'] = '[quote='.$quter_name.']'.preg_replace_callback('#\[hide(\=([0-9]+)|)\](.+?)\[\/hide\]#is', 'hidden_check', $topic[$post_id]['post']).'[/quote]'; (Отредактировано автором: 12 декабря 2010 — 01:18) |
|
|
yura3d |
Отправлено: 12 декабря 2010 — 01:23
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
Nikela пишет:Такой строки вообще не найдено даже простого $quote нет...
Выложите Ваш файл topic.php, посмотрим
Nikela пишет:В моем файле есть только такая строка:
Проблема в том, что у Вас установлен мод Скрытый текст, при установке которого искомая строка подверглась изменению. В этом случае нужно найти строку (Вы нашли правильно):
CODE: $fm->input['inpost'] = '[quote='.$quter_name.']'.preg_replace_callback('#\[hide(\=([0-9]+)|)\](.+?)\[\/hide\]#is', 'hidden_check', $topic[$post_id]['post']).'[/quote]';
и заменить её строкой:
CODE: $fm->input['inpost'] = '[quote='.$quter_name.'|'.$forum_id.':'.$topic_id.':'.$post_id.']'.preg_replace_callback('#\[hide(\=([0-9]+)|)\](.+?)\[\/hide\]#is', 'hidden_check', $topic[$post_id]['post']).'[/quote]'; |
|
|
|
Отправлено: 13 декабря 2010 — 02:20
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
После установки мода начал расти error_log с такими ошибками, как только кто-то обновит (запросит) rss (т.е. не "дружит" с модулем rss):
Цитата:[12-Dec-2010 10:52:50] PHP Notice: Undefined index: GoToQuote in /home/fit/public_html/site/forum/include/fm.class.php on line 1098
[12-Dec-2010 10:52:50] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/fit/public_html/site/forum/include/fm.class.php:1098) in /home/fit/public_html/site/forum/modules/rss/frontindex.php on line 84
[12-Dec-2010 10:52:50] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/fit/public_html/site/forum/include/fm.class.php:1098) in /home/fit/public_html/site/forum/modules/rss/frontindex.php on line 85
[12-Dec-2010 10:52:50] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/fit/public_html/site/forum/include/fm.class.php:1098) in /home/fit/public_html/site/forum/modules/rss/frontindex.php on line 86
Эти же ошибки и в ленту rss отдаются.
(Добавление)
Для решения проблемы нужно строку
CODE:$this->LANG['GoToQuote'] = 'Перейти к цитируемому сообщению';
удалить из файла lang_front_forums.php и вставить в lang_front_all.php перед строками
Все, после этого корректно работает и rss-модуль. |
|
|
alexx |
Отправлено: 13 декабря 2010 — 12:54
|
Advanced Member
Покинул форум
Сообщений всего: 495
Дата рег-ции: Февр. 2010
Откуда: Россия
Репутация: 12
|
Pauk пишет:Более точнее: при нажатии на ссылку, после по
выводит прямо на цитируемый пост, у меня так, проверял.
(Добавление)
electron пишет:оно не центруется, а находится вверху экрана на открывшейся новой странице
Да, так и есть. |
|
|
|