Precise Similar Topics II phpbb3 - мод Похожие темымодификация добавляет на страницу просмотра тем блок, в котором располагаются похожие по названию темы.
Выглядит сие примерно так:
Вложение:
similar_scan.png [ 50.15 КБ | Просмотров: 129 ]
similar_scan.png
Если вам интересно - ставим:
скачать из архива сайтараспаковать и содержимое папки
root загрузить в корень сайта (где файл config.php).
если у вас на сервере уже есть папка
umil - удалите её из папки
root перед копированием.
Теперь приступаем к редактированию файлов:

для стиля prosilver
Открыть
styles/prosilver/template/viewtopic_body.htmlНайти
Вставить перед найденным
Код: Выделить всё
<!-- IF .similar -->
<!-- INCLUDE similar_topics.html -->
<!-- ENDIF -->

для стиля subsilver2
Открыть
styles/subsilver2/template/viewtopic_body.htmlНайти
Вставить перед найденным
Код: Выделить всё
<!-- IF .similar -->
<!-- INCLUDE similar_topics.html -->
<!-- ENDIF -->
Завершение установки:
Запустите файл установки через браузер по адресу
Код: Выделить всё
http://ваш форум/install_similar_topics.phpпосле отработки скрипта удалите его с сервера.
Почистите кэш. Всё. Модификация установлена.
Настройки мода находятся по адресу
Админка - Модули - Похожие темы.
Проверьте права доступа к этому моду - надо включить (Права доступа - Права групп - выбор группы - расширенные права - Разное - может видеть похожие темы - включить).
Русификация мода уже находится в архиве.
p.s. Если у вас установлены и моды
Topic Text in Mouse Over и
Avatar of poster on Index and Viewforum, то можно эти красивости вывести и в "Похожие Темы". Выглядеть это будет примерно так:
Вложение:
similar_dop.png [ 68.97 КБ | Просмотров: 129 ]
similar_dop.png
правки для Topic Text in Mouse OverОткрыть
includes/functions_similar_topics.phpНайти
Код: Выделить всё
// Add topic tracking data to the query (only when query caching is off)Вставить перед найденным
Код: Выделить всё
// BEGIN Topic Text Hover Mod
if ($config['hover_active'] && !$user->data['user_text_hover'])
{
include($phpbb_root_path . 'includes/topic_text_hover.' . $phpEx);
if($config['hover_show'] == TOPIC_TEXT_HOVER_FIRST || $config['hover_show'] == TOPIC_TEXT_HOVER_BOTH)
{
$sql_array['LEFT_JOIN'][] = array('FROM' => array(POSTS_TABLE => 'p'), 'ON' => 'p.post_id = t.topic_first_post_id');
$sql_array['SELECT'] .= ', p.post_text AS first_text_hover';
}
if($config['hover_show'] == TOPIC_TEXT_HOVER_LAST || $config['hover_show'] == TOPIC_TEXT_HOVER_BOTH)
{
$sql_array['LEFT_JOIN'][] = array('FROM' => array(POSTS_TABLE => 'pt'), 'ON' => 'pt.post_id = t.topic_last_post_id');
$sql_array['SELECT'] .= ', pt.post_text AS last_text_hover';
}
}
// END Topic Text Hover ModНайти
Код: Выделить всё
$template->assign_block_vars('similar', array(Вставить перед найденным
Код: Выделить всё
// BEGIN Topic Text Hover Mod
if (!empty($row['first_text_hover']) || !empty($row['last_text_hover']))
{
// strip bbcode
include($phpbb_root_path . 'includes/topic_text_hover.' . $phpEx);
if(!empty($row['first_text_hover']))
{
$first_text_hover = bbcode_strip($row['first_text_hover']);
if (utf8_strlen($first_text_hover) >= $config['hover_char_limit'])
{
$first_text_hover = (utf8_strlen($first_text_hover) > $config['hover_char_limit'] + 3) ? utf8_substr($first_text_hover, 0, $config['hover_char_limit']) . '...' : $first_text_hover;
}
}
if(!empty($row['last_text_hover']))
{
$last_text_hover = bbcode_strip($row['last_text_hover']);
if (utf8_strlen($last_text_hover) >= $config['hover_char_limit'])
{
$last_text_hover = (utf8_strlen($last_text_hover) > $config['hover_char_limit'] + 3) ? utf8_substr($last_text_hover, 0, $config['hover_char_limit']) . '...' : $last_text_hover;
}
}
}
else
{
$first_text_hover = $last_text_hover = '';
}
// END Topic Text Hover Mod
Найти
Код: Выделить всё
'PAGINATION' => topic_generate_pagination($row['topic_replies'], append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $similar_forum_id . '&t=' . $similar_topic_id)),Вставляем перед найденным
Код: Выделить всё
// BEGIN Topic Post Text Mod
'FIRST_TEXT_HOVER' => (isset($first_text_hover)) ? censor_text($first_text_hover) : '',
'LAST_TEXT_HOVER' => (isset($last_text_hover)) ? censor_text($last_text_hover) : '',
'LAST_POST_IMG' => $user->img('icon_topic_latest'),
// END Topic Post Text ModОткрыть
styles/ваш стиль/template/similar_topics.htmlНайти
Код: Выделить всё
href="{similar.U_VIEW_TOPIC}" class="topictitle"Вставить после найденного (вставляем прямо в строку)
Код: Выделить всё
<!-- IF similar.FIRST_TEXT_HOVER -->title="{similar.FIRST_TEXT_HOVER}"<!-- ENDIF -->Найти
Вставить после найденного (вставляем прямо в строку)
Код: Выделить всё
<!-- IF similar.LAST_TEXT_HOVER -->title="{similar.LAST_TEXT_HOVER}"<!-- ENDIF -->Найти
Заменить найденное на
Код: Выделить всё
<!-- IF similar.LAST_TEXT_HOVER -->{similar.LAST_POST_IMG}<!-- ELSE -->{LAST_POST_IMG}<!-- ENDIF --> Чистим кэш и модификация готова к работе. правки для Avatar of poster on Index and ViewforumВнимание !!!
Версия Avatar of poster on Index and Viewforum должна быть 1.2.1а иначе ничего работать не будет !!!
Открыть
includes/functions_similar_topics.phpНайти
Код: Выделить всё
$template->assign_block_vars('similar', array(Вставить перед найденным
Код: Выделить всё
$avatar_img = $avatar_max_dimensions = $topic_last_poster_avatar_height = $topic_last_poster_avatar_width = $topic_first_poster_avatar_width = $topic_first_poster_avatar_height = '';
if ( !empty($row['topic_first_poster_avatar']) || !empty($row['topic_last_poster_avatar']))
{
$avatar_max_dimensions = 50;
if ( $row['topic_first_poster_avatar_width'] >= $row['topic_first_poster_avatar_height'] )
{
$topic_first_poster_avatar_width = ( $row['topic_first_poster_avatar_width'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['topic_first_poster_avatar_width'] ;
$topic_first_poster_avatar_height = ( $topic_first_poster_avatar_width == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['topic_first_poster_avatar_width'] * $row['topic_first_poster_avatar_height']) : $row['topic_first_poster_avatar_height'] ;
}
else
{
$topic_first_poster_avatar_height = ( $row['topic_first_poster_avatar_height'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['topic_first_poster_avatar_height'] ;
$topic_first_poster_avatar_width = ( $topic_first_poster_avatar_height == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['topic_first_poster_avatar_height'] * $row['topic_first_poster_avatar_width']) : $row['topic_first_poster_avatar_width'] ;
}
if ( $row['topic_last_poster_avatar_width'] >= $row['topic_last_poster_avatar_height'] )
{
$topic_last_poster_avatar_width = ( $row['topic_last_poster_avatar_width'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['topic_last_poster_avatar_width'] ;
$topic_last_poster_avatar_height = ( $topic_last_poster_avatar_width == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['topic_last_poster_avatar_width'] * $row['topic_last_poster_avatar_height']) : $row['topic_last_poster_avatar_height'] ;
}
else
{
$topic_last_poster_avatar_height = ( $row['topic_last_poster_avatar_height'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['topic_last_poster_avatar_height'] ;
$topic_last_poster_avatar_width = ( $topic_last_poster_avatar_height == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['topic_last_poster_avatar_height'] * $row['topic_last_poster_avatar_width']) : $row['topic_last_poster_avatar_width'] ;
}
}
Найти
Вставляем перед найденным
Код: Выделить всё
'TOPIC_AUTHOR_AVATAR' => ($config['enable_avatar_index']) ? get_user_avatar($row['topic_first_poster_avatar'], $row['topic_first_poster_avatar_type'], $topic_first_poster_avatar_width, $topic_first_poster_avatar_height) : false,
'TOPIC_AUTHOR_AVATAR_MARGIN' => ( $topic_first_poster_avatar_width == '' ) ? '' : (( $topic_first_poster_avatar_width == $avatar_max_dimensions ) ? 5 : ( $avatar_max_dimensions - $topic_first_poster_avatar_width + 5 )),
'AVATAR_WIDTH' => $avatar_max_dimensions,
'LAST_POST_AUTHOR_AVATAR' => ($config['enable_avatar_index']) ? get_user_avatar($row['topic_last_poster_avatar'], $row['topic_last_poster_avatar_type'], $topic_last_poster_avatar_width, $topic_last_poster_avatar_height) : false,
'LAST_POST_AUTHOR_AVATAR_MARGIN'=> ( $topic_last_poster_avatar_width == $avatar_max_dimensions ) ? 5 : ( $avatar_max_dimensions - $topic_last_poster_avatar_width + 5 ), для стилей на основе prosilver:Открыть
/styles/ваш стиль/template/similar_topics.htmlНайти
Код: Выделить всё
{similar.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF -->>Вставляем после найденного
Код: Выделить всё
<!-- IF similar.TOPIC_AUTHOR_AVATAR --><span style="float: left; padding-top: 3px; margin-right: {similar.TOPIC_AUTHOR_AVATAR_MARGIN}px;">{similar.TOPIC_AUTHOR_AVATAR}</span><!-- ENDIF -->Найти
Вставить перед найденным
Код: Выделить всё
<!-- IF similar.LAST_POST_AUTHOR_AVATAR --><div style="float: left; padding-top: 0px; margin-left: 5px; margin-right: {similar.LAST_POST_AUTHOR_AVATAR_MARGIN}px;">{similar.LAST_POST_AUTHOR_AVATAR}</div><!-- ENDIF --> для стилей на основе subsilver2:Открыть
/styles/ваш стиль/template/similar_topics.htmlНайти
Код: Выделить всё
<td class="row1" width="25" align="center">{similar.TOPIC_FOLDER_IMG}</td>Заменить найденное на
Код: Выделить всё
<td class="row1" width="25" align="center"><!-- IF similar.TOPIC_AUTHOR_AVATAR -->{similar.TOPIC_AUTHOR_AVATAR}<!-- ENDIF --></td>Найти
Код: Выделить всё
<td class="row1" width="120" align="center">Вставить после найденного
Код: Выделить всё
<!-- IF similar.LAST_POST_AUTHOR_AVATAR --><div style="float: left; padding-top: 0px; margin-left: 5px; margin-right: {similar.LAST_POST_AUTHOR_AVATAR_MARGIN}px;">{similar.LAST_POST_AUTHOR_AVATAR}</div><!-- ENDIF --> Чистим кэш и всё готово. оригинал темы:
оригинал доработки: