сайт на данный момент является архивом информации по форуму phpbb 3.0. объяснения и помощь больше не предоставляются. старый сайт

Белк на PhpBB 3.0.14

информация по этому форуму. bbcode, моды и прочее, проверенное Белком. (перенос данных продолжается...)

Сегодня на конференции было 44 посетителей :: 1 зарегистрированный, 0 скрытых, 1 бот и 42 гостей (основано на активности посетителей за последние 24 часа)




 [ 1 сообщение ] 
Автор Сообщение
Не в сети
  (Андрей)
Администратор
Аватара пользователя

Стаж: 5 месяцев 19 дней
Сообщения: 228
Откуда: здешние мы

Стиль сайта: subsilver2
Настоящее имя: Андрей


Лайк за сообщение

модификация позволяет пользователю оставлять лайк за любое сообщение в теме.
разумеется, зарегистрированному пользователю.
каждый пользователь сможет оставить не более одного лайка.
возможности удалять лайки нет ни у кого.
при наведении на количество лайков всплывает окно с никами проголосовавших.


саму модификацию присмотрел здесь: оригинальная тема

для сабсилвера кода не было - написал как получилось.

в стандартном варианте будет выглядеть так:

Вложение:
like_prosilver.png
like_prosilver.png [ 21.72 КБ | Просмотров: 13 ] like_prosilver.png



Вложение:
subsilver_like.png
subsilver_like.png [ 22.71 КБ | Просмотров: 13 ] subsilver_like.png



Если заинтересовало - ставим. (это довольно просто).

Скачать папку post_like_phpbb3_new из архива сайта

скачать из архива сайта

распаковать и содержимое папки загрузить в корень сайта (где файл config.php).

Теперь редактируем файлы форума:

необходимо провести SQL-запрос:

Код: Выделить всё

create table phpbb_likes (
  likes_key varchar(100), primary key(likes_key),
  likes_count int,
  likes_who text
 );


Далее:

открыть viewtopic.php
найти

Код: Выделить всё

'QUOTE_IMG'  => $user->img('icon_post_quote', 'REPLY_WITH_QUOTE'),


вставить после найденного

Код: Выделить всё

'LIKE_IMG'  => $user->img('icon_post_like', 'LIKE'),


найти

Код: Выделить всё

$postrow = array(


вставить перед найденным

Код: Выделить всё

$likes_key = $forum_id.'_'.$topic_id.'_'.$row['post_id'];
$likes_sql = "SELECT * FROM phpbb_likes where likes_key='$likes_key'";
$likes_result = $db->sql_query($likes_sql);
$likes_row = $db->sql_fetchrow($likes_result);
$likes_count = $likes_row['likes_count'];
$likes_who = $likes_row['likes_who'];
if (!$likes_count) $likes_text = '';
if ($likes_count == 1) $likes_text = "<a href='#' title='$likes_who'>1 Like</a>";
if ($likes_count > 1) $likes_text = "<a href='#' title='$likes_who'>$likes_count Likes</a>";
$likes_back = str_replace('&','~',$_SERVER['QUERY_STRING']);
$likes_link = "f=$forum_id&amp;t=$topic_id&amp;p={$row['post_id']}&amp;back=$likes_back";


найти

Код: Выделить всё

'U_QUOTE'  => ($auth->acl_get('f_reply', $forum_id)) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=quote&amp;f=$forum_id&amp;p={$row['post_id']}") : '',


вставить после найденного

Код: Выделить всё

'U_LIKE' => ($auth->acl_get('f_reply', $forum_id)) ? append_sid("{$phpbb_root_path}like.$phpEx", $likes_link) : '',
'U_LIKE_TEXT' => $likes_text,


открыть language/en/common.php
найти

Код: Выделить всё

'LEGEND'   => 'Legend',


вставить после найденного

Код: Выделить всё

'LIKE' => 'Like this post',


открыть language/ru/common.php
найти

Код: Выделить всё

'LEGEND'   => 'Легенда',


вставить после найденного

Код: Выделить всё

'LIKE' => 'Поставить лайк за сообщение',


для стилей на основе prosilver
открыть styles/prosilver/template/viewtopic_body.html
найти

Код: Выделить всё

<ul class="profile-icons">


добавить после найденного

Код: Выделить всё

<!-- IF postrow.U_LIKE --><li>{postrow.U_LIKE_TEXT}</li><li class="like-icon"><a href="{postrow.U_LIKE}" title="{L_LIKE}"><span>{L_LIKE}</span></a></li><!-- ENDIF -->


открыть styles/prosilver/theme/buttons.css
найти

Код: Выделить всё

ul.profile-icons li.quote-icon    { width: {IMG_ICON_POST_QUOTE_WIDTH}px; height: {IMG_ICON_POST_QUOTE_HEIGHT}px; }


вставить после найденного

Код: Выделить всё

ul.profile-icons li.like-icon    { width: 57px; height: 20px; }


найти

Код: Выделить всё

ul.profile-icons li.quote-icon    { margin: 0 0 0 10px; }


вставить после найденного

Код: Выделить всё

ul.profile-icons li.like-icon    { margin: 0 0 0 10px; }


открыть styles/prosilver/theme/colours.css
найти

Код: Выделить всё

quote-icon, .quote-icon a        { background-image: url("{IMG_ICON_POST_QUOTE_SRC}"); }


вставить после найденного

Код: Выделить всё

.like-icon, .like-icon a        { background-image: url("{T_IMAGESET_PATH}/bk/icon_post_like.gif"); }


для стилей на основе subsilver2
открыть styles/subsilver2/template/viewtopic_body.html
найти

Код: Выделить всё

<div class="gensmall" style="float: {S_CONTENT_FLOW_END};"><!-- IF not S_IS_BOT --><!-- IF postrow.U_EDIT --><a href="{postrow.U_EDIT}">{EDIT_IMG}</a> <!-- ENDIF --> <!-- IF postrow.U_QUOTE --><a href="{postrow.U_QUOTE}">{QUOTE_IMG}</a> <!-- ENDIF --> <!-- ENDIF -->&nbsp;</div>


заменить найденное на

Код: Выделить всё

<div class="gensmall" style="float: {S_CONTENT_FLOW_END};"><!-- IF not S_IS_BOT -->
<!-- IF postrow.U_LIKE -->{postrow.U_LIKE_TEXT} <a href="{postrow.U_LIKE}" title="{L_LIKE}"><img src="{T_IMAGESET_PATH}/bk/icon_post_like.gif" alt="{L_LIKE}" /></a>&nbsp;<!-- ENDIF -->
<!-- IF postrow.U_EDIT --><a href="{postrow.U_EDIT}">{EDIT_IMG}</a> <!-- ENDIF --> <!-- IF postrow.U_QUOTE --><a href="{postrow.U_QUOTE}">{QUOTE_IMG}</a> <!-- ENDIF --> <!-- ENDIF -->&nbsp;</div>


(если у вас в этом коде есть что-то своё, то необходимо добавить только код like:

Код: Выделить всё

<!-- IF postrow.U_LIKE -->{postrow.U_LIKE_TEXT} <a href="{postrow.U_LIKE}" title="{L_LIKE}"><img src="{T_IMAGESET_PATH}/bk/icon_post_like.gif" alt="{L_LIKE}" /></a>&nbsp;<!-- ENDIF -->


Очистите кэш темы, шаблона, браузера и пользуйтесь на здоровье.
у автора оригинальной темы (как и у меня) проблемы с пропиской изображений в картинках, поэтому сделал просто отдельную папку в /imageset. :)

Удачного применения.


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ 1 сообщение ] 

Кто сейчас на конференции:

Всего посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (63) здесь было 23 май 2026, 12:35

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Часовой пояс: UTC + 3 часа



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

cron

Текущее время: 25 июн 2026, 17:14

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB.