мод позволяет благодарить за сообщение, на основе "спасибок" формируется рейтинг темы... довольно много функций.
- Для корректной работы функции обновления счётчиков требуется MySQL версии 4.1 или выше.
- Опции реализованы включением добавленного права доступа к форумам. При установке право добавлено в роль «Стандартный доступ». (Если вы хотите установить другие настройки: перейдите в Администраторский раздел — Права доступа — Локальные права — Права доступа к форумам и выберите форумы, где вы хотите иметь функцию благодарностей за сообщения. Разрешите право «Может благодарить за сообщения» на вкладке Разное).
- Переключатели выбора опций получения уведомлений о благодарностях (в ЛС и по email) в Личном разделе — Личные настройки.
- Настройки опций, в том числе обновление счётчиков после массового удаления сообщений/тем/пользователей — в Администраторском разделе — Модули — Благодарности.
- Для просмотра списка благодарностей нужно разрешить глобальное пользовательское право — «Может просматривать лист благодарностей» на вкладке Разное. При установке право добавлено в роль Стандартные возможности и членам группы Зарегистрированные пользователи.
Для просмотра топлиста нужно разрешить глобальное пользовательское право — «Может просматривать топлист» на вкладке Разное. При установке право добавлено в роль Стандартные возможности и членам группы Зарегистрированные пользователи. - Для модерации списков благодарностей нужно разрешить глобальное модераторское право — «Может очищать список благодарностей» на вкладке Разное. При установке право добавлено в роль Супермодератор.
- Система рейтинга для сообщений, тем и форумов, основанная на системе СПАСИБО.
Каждый объект (сообщение, тема или форум), набравший максимальное число СПАСИБО, принимается за 100% рейтинга (лидер). Остальные — как % от рейтинга лидера.
Например: Сообщение получило 10 СПАСИБО (100% or 10/10), другое сообщение 4 СПАСИБО (40% or 4/10), третье сообщение 1 СПАСИБО (10% or 1/10). Если первое сообщение получит ещё одно СПАСИБО (10 + 1 = 11), рейтинг второго сообщения будет 36,36% или 4/11, у третьего сообщения — 9,09% или 1/11 и т. д.
Позиция рейтинга определяется числом СПАСИБО.
Рейтинг тем — суммой количества СПАСИБО у сообщений в теме.
Рейтинг форума — суммой количества СПАСИБО у сообщений в форуме. - Включение/выключение рейтинга для сообщений, тем и форумов — через административный раздел.
- Возможно только цифровое или цифровое + графическое отображение рейтинга.
- Есть топлист рейтинга. Число отображаемых позиций в топлисте устанавливается в административном разделе.
- В папке contrib вы можете найти файлы reput_star_.psd и thanks.psd для разработки собственных изображений под используемый вами стиль.
На одном из моих сайтов рейтинг и "спасибо" в темах выглядят так:
Если заинтересовало - ставим. (Правок, правда, хватает):
Скачать мод из архива сайта:
Скачать из файлового архива сайта
распаковать, содержимое папки root скопировать в корень сайта (где файл config.php).
Теперь приступаем к редактированию файлов форума:
Код: Выделить всё
// Assign index specific vars
Вставить перед найденным
Код: Выделить всё
// Generate thankslist if required ...
if (!function_exists('get_thanks'))
{
include($phpbb_root_path . 'includes/functions_thanks.' . $phpEx);
}
$thanks_list = '';
$ex_fid_ary = array_keys($auth->acl_getf('!f_read', true));
$ex_fid_ary = (sizeof($ex_fid_ary)) ? $ex_fid_ary : 0;
if (isset($config['thanks_top_number']) ? $config['thanks_top_number'] : false)
{
$thanks_list = get_toplist_index($ex_fid_ary);
}
Код: Выделить всё
'BIRTHDAY_LIST' => $birthday_list,
Вставить после найденного
Код: Выделить всё
'THANKS_LIST' => $thanks_list,
'S_THANKS_LIST' => isset($config['thanks_top_number']) ? $config['thanks_top_number'] : false,
'L_TOP_THANKS_LIST' => isset($config['thanks_top_number']) ? sprintf($user->lang['REPUT_TOPLIST'], $config['thanks_top_number']) : false,
Код: Выделить всё
$topic_id = request_var('t', 0);
Вставить после найденного
Код: Выделить всё
$ex_fid_ary = array_keys($auth->acl_getf('!f_read', true));
$ex_fid_ary = (sizeof($ex_fid_ary)) ? $ex_fid_ary : false;
Код: Выделить всё
// Inactive reason/account?
Вставить перед найденным
Код: Выделить всё
if (!function_exists('get_thanks'))
{
include($phpbb_root_path . 'includes/functions_thanks.' . $phpEx);
}
$user->add_lang('mods/thanks_mod');
if (isset($_REQUEST['list_thanks']))
{
clear_list_thanks($user_id, request_var('list_thanks', ''));
}
if (isset($config['thanks_mod_version']))
{
output_thanks_memberlist($user_id, $ex_fid_ary);
}
Код: Выделить всё
$next_post_id = delete_post($forum_id, $topic_id, $post_id, $data);
Вставить после найденного
Код: Выделить всё
if (!function_exists('get_thanks'))
{
include($phpbb_root_path . 'includes/functions_thanks.' . $phpEx);
}
delete_post_thanks($post_id);
Код: Выделить всё
// Okay, lets dump out the page ...
Вставить перед найденным
Код: Выделить всё
if (!function_exists('get_max_topic_thanks'))
{
include($phpbb_root_path . 'includes/functions_thanks.' . $phpEx);
}
get_max_topic_thanks();
if ($topic_list)
{
get_thanks_topic_number();
}
Код: Выделить всё
$s_type_switch = ($row['topic_type'] == POST_ANNOUNCE || $row['topic_type'] == POST_GLOBAL) ? 1 : 0;
Вставить перед найденным
Код: Выделить всё
get_thanks_topic_reput($topic_id);
Код: Выделить всё
'PAGE_NUMBER' => on_page($total_posts, $config['posts_per_page'], $start),
Вставить после найденного
Код: Выделить всё
'START' => $start,
Код: Выделить всё
'allow_pm' => $row['user_allow_pm'],
Вставить после найденного
Код: Выделить всё
'allow_thanks_pm' => isset($row['user_allow_thanks_pm']) ? $row['user_allow_thanks_pm'] : false,
'allow_thanks_email' => isset($row['user_allow_thanks_email']) ? $row['user_allow_thanks_email'] : false,
Код: Выделить всё
// Output the posts
Вставить перед найденным
Код: Выделить всё
if (!function_exists('array_all_thanks'))
{
include($phpbb_root_path . 'includes/functions_thanks.' . $phpEx);
}
array_all_thanks($post_list);
if (isset($_REQUEST['thanks']) && !isset($_REQUEST['rthanks']))
{
insert_thanks(request_var('thanks', 0), $user->data['user_id']);
}
if (isset($_REQUEST['rthanks']) && !isset($_REQUEST['thanks']))
{
delete_thanks(request_var('rthanks', 0), $user->data['user_id']);
}
if (isset($_REQUEST['list_thanks']))
{
clear_list_thanks(request_var('p', 0), request_var('list_thanks', ''));
}
Код: Выделить всё
'L_IGNORE_POST' => ($row['hide_post']) ? sprintf($user->lang['POST_BY_FOE'], get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username']), '<a href="' . $viewtopic_url . "&p={$row['post_id']}&view=show#p{$row['post_id']}" . '">', '</a>') : '',
Вставить после найденного
Код: Выделить всё
'S_FORUM_THANKS' => ($auth->acl_get('f_thanks', $forum_id)) ? true : false,
Код: Выделить всё
if (isset($cp_row['row']) && sizeof($cp_row['row']))
Вставить перед найденным
Код: Выделить всё
output_thanks($row['user_id']);
Код: Выделить всё
<label><input type="radio" class="radio" name="popuppm" value="0"<!-- IF not POPUP_PM --> id="popuppm" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
Вставить после найденного
Код: Выделить всё
<dl>
<dt><label for="allowthankspm">{L_ALLOW_THANKS_PM_ON}:</label></dt>
<dd><label><input type="radio" class="radio" name="allowthankspm" value="1"<!-- IF ALLOW_THANKS_PM --> id="allowthankspm" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="allowthankspm" value="0"<!-- IF not ALLOW_THANKS_PM --> id="allowthankspm" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="allowthanksemail">{L_ALLOW_THANKS_EMAIL_ON}:</label></dt>
<dd><label><input type="radio" class="radio" name="allowthanksemail" value="1"<!-- IF ALLOW_THANKS_EMAIL --> id="allowthanksemail" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="allowthanksemail" value="0"<!-- IF not ALLOW_THANKS_EMAIL --> id="allowthanksemail" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
Код: Выделить всё
// Additional tables
Вставить после найденного
Код: Выделить всё
define('THANKS_TABLE', $table_prefix . 'thanks');
Код: Выделить всё
$user_lang = $user->lang['USER_LANG'];
Вставить после найденного
Код: Выделить всё
$user->add_lang('mods/thanks_mod');
Код: Выделить всё
'U_MEMBERLIST' => append_sid("{$phpbb_root_path}memberlist.$phpEx"
Вставить после найденного
Код: Выделить всё
'U_THANKSLIST' => append_sid("{$phpbb_root_path}thankslist.$phpEx"),
'U_REPUT_TOPLIST' => append_sid("{$phpbb_root_path}toplist.$phpEx"),
Код: Выделить всё
'S_DISPLAY_MEMBERLIST' => (isset($auth)) ? $auth->acl_get('u_viewprofile') : 0,
Вставить после найденного
Код: Выделить всё
'S_DISPLAY_THANKSLIST' => (isset($auth)) ? $auth->acl_get('u_viewthanks') : 0,
'S_DISPLAY_TOPLIST' => (isset($auth)) ? $auth->acl_get('u_viewtoplist') : 0,
Код: Выделить всё
// Used to tell whatever we have to create a dummy category or not.
Вставить перед найденным
Код: Выделить всё
if (!function_exists('get_max_forum_thanks'))
{
include($phpbb_root_path . 'includes/functions_thanks_forum.' . $phpEx);
}
get_max_forum_thanks();
$forum_thanks_rating = array();
foreach ($forum_rows as $row)
{
$forum_thanks_rating[] = $row['forum_id'];
}
global $cache;
$cache->put('_forum_thanks_rating', $forum_thanks_rating);
get_thanks_forum_number();
$cache->destroy('_forum_thanks_rating');
Код: Выделить всё
'S_IS_CAT' => true,
Вставить после найденного
Код: Выделить всё
'S_THANKS_FORUM_REPUT_VIEW_COLUMN' => isset($config['thanks_forum_reput_view']) ? $config['thanks_forum_reput_view_column'] : false,
'THANKS_REPUT_GRAPHIC_WIDTH'=> isset($config['thanks_reput_level']) ? (isset($config['thanks_reput_height']) ? sprintf('%dpx', $config['thanks_reput_level']*$config['thanks_reput_height']) : false) : false,
Код: Выделить всё
'S_NO_CAT' => $catless && !$last_catless,
Вставить после найденного
Код: Выделить всё
'S_THANKS_FORUM_REPUT_VIEW_COLUMN' => isset($config['thanks_forum_reput_view']) ? $config['thanks_forum_reput_view_column'] : false,
'THANKS_REPUT_GRAPHIC_WIDTH'=> isset($config['thanks_reput_level'])? (isset($config['thanks_reput_height']) ? sprintf('%dpx', $config['thanks_reput_level']*$config['thanks_reput_height']) : false) : false,
Код: Выделить всё
// Assign subforums loop for style authors
Вставить перед найденным
Код: Выделить всё
if (isset($config['thanks_forum_reput_view']))
{
get_thanks_forum_reput($row['forum_id']);
}
Код: Выделить всё
'icon_back_top', 'icon_contact_aim', 'icon_contact_email', 'icon_contact_icq', 'icon_contact_jabber', 'icon_contact_msnm', 'icon_contact_pm', 'icon_contact_yahoo', 'icon_contact_www', 'icon_post_delete', 'icon_post_edit', 'icon_post_info', 'icon_post_quote', 'icon_post_report', 'icon_user_online', 'icon_user_offline', 'icon_user_profile', 'icon_user_search', 'icon_user_warn', 'button_pm_forward', 'button_pm_new', 'button_pm_reply', 'button_topic_locked', 'button_topic_new', 'button_topic_reply',
После части строки
Код: Выделить всё
'button_topic_reply',
Вставить следующий код
Код: Выделить всё
'thankposts', 'removethanks',
Код: Выделить всё
'allowpm' => request_var('allowpm', $user_row['user_allow_pm']),
Вставить после найденного
Код: Выделить всё
'allowthankspm' => request_var('allowthankspm', $user_row['user_allow_thanks_pm']),
'allowthanksemail' => request_var('allowthanksemail', $user_row['user_allow_thanks_email']),
Код: Выделить всё
'user_allow_pm' => $data['allowpm'],
Вставить после найденного
Код: Выделить всё
'user_allow_thanks_pm' => $data['allowthankspm'],
'user_allow_thanks_email' => $data['allowthanksemail'],
Код: Выделить всё
'ALLOW_PM' => $data['allowpm'],
Вставить после найденного
Код: Выделить всё
'ALLOW_THANKS_PM' => $data['allowthankspm'],
'ALLOW_THANKS_EMAIL' => $data['allowthanksemail'],
Код: Выделить всё
'allowpm' => request_var('allowpm', (bool) $user->data['user_allow_pm']),
Вставить после найденного
Код: Выделить всё
'allowthankspm' => request_var('allowthankspm', (bool) (isset($user->data['user_allow_thanks_pm']) ? $user->data['user_allow_thanks_pm'] : false)),
'allowthanksemail' => request_var('allowthanksemail', (bool) (isset($user->data['user_allow_thanks_email']) ? $user->data['user_allow_thanks_email'] : false)),
Код: Выделить всё
'user_style' => $data['style'],
);
Вставить после найденного
Код: Выделить всё
if (isset($user->data['user_allow_thanks_pm']) && isset($user->data['user_allow_thanks_email']))
{
$sql_ary = array_merge($sql_ary, array(
'user_allow_thanks_pm' => $data['allowthankspm'],
'user_allow_thanks_email'=> $data['allowthanksemail'],
));
}
Код: Выделить всё
'S_ALLOW_PM' => $data['allowpm'],
Вставить после найденного
Код: Выделить всё
'S_ALLOW_THANKS_PM' => $data['allowthankspm'],
'S_ALLOW_THANKS_EMAIL'=> $data['allowthanksemail'],
'S_THANKS_NOTICE_ON'=> isset($config['thanks_notice_on']) ? $config['thanks_notice_on'] : false,
Код: Выделить всё
img_icon_user_warn = icon_user_warn.gif*20*20
Вставить после найденного
Код: Выделить всё
img_thankposts = thankposts.gif*20*20
img_removethanks = removethanks.gif*20*20
Код: Выделить всё
<!-- IF NEWEST_USER -->
Вставить перед найденным
Код: Выделить всё
<!-- IF S_THANKS_LIST -->
<h3>{L_TOP_THANKS_LIST}</h3>
<p>{THANKS_LIST}</p>
<!-- ENDIF -->
Код: Выделить всё
<dl class="icon">
Заменить найденное на
Код: Выделить всё
<dl class="<!-- IF forumrow.S_THANKS_FORUM_REPUT_VIEW_COLUMN and not S_IS_BOT -->thanks<!-- ELSE -->icon<!-- ENDIF -->">
Код: Выделить всё
<dd class="lastpost"><span>{L_LAST_POST}</span></dd>
Заменить найденное на
Код: Выделить всё
<!-- IF forumrow.S_THANKS_FORUM_REPUT_VIEW_COLUMN and not S_IS_BOT -->
<dd style="display: block; width:{forumrow.THANKS_REPUT_GRAPHIC_WIDTH};">{L_REPUT}</dd>
<!-- ENDIF -->
<dd class="lastpostthanks"><span>{L_LAST_POST}</span></dd>
Код: Выделить всё
<dl class="icon" style="background-image: url({forumrow.FORUM_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
Заменить найденное на
Код: Выделить всё
<dl class="<!-- IF forumrow.S_THANKS_FORUM_REPUT_VIEW_COLUMN and not S_IS_BOT -->thanks<!-- ELSE -->icon<!-- ENDIF -->" style="background-image: url({forumrow.FORUM_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
Код: Выделить всё
<!-- IF forumrow.MODERATORS -->
Вставить перед найденным
Код: Выделить всё
<!-- BEGIN reput -->
<!-- IF forumrow.reput.S_THANKS_FORUM_REPUT_VIEW and forumrow.reput.FORUM_REPUT and not S_IS_BOT and not forumrow.reput.S_THANKS_FORUM_REPUT_VIEW_COLUMN -->
<span style="display: block;">
<!-- IF forumrow.reput.S_THANKS_REPUT_GRAPHIC -->
<span style="display: block; float: left; width: {forumrow.reput.THANKS_REPUT_GRAPHIC_WIDTH}; height: {forumrow.reput.THANKS_REPUT_HEIGHT}; background: url({forumrow.reput.THANKS_REPUT_IMAGE_BACK}); background-repeat: repeat-x;"><span style="display: block; height: {forumrow.reput.THANKS_REPUT_HEIGHT}; width: {forumrow.reput.FORUM_REPUT}; background: url({forumrow.reput.THANKS_REPUT_IMAGE}); background-repeat: repeat-x;"></span></span>
<!-- ENDIF -->
{L_REPUT}: {forumrow.reput.FORUM_REPUT}
</span>
<!-- ENDIF -->
<!-- END reput -->
Код: Выделить всё
<dd class="lastpost"><span>
Заменить найденное на
Код: Выделить всё
<!-- BEGIN reput -->
<!-- IF forumrow.reput.S_THANKS_FORUM_REPUT_VIEW and not S_IS_BOT and forumrow.reput.S_THANKS_FORUM_REPUT_VIEW_COLUMN -->
<dd style="display: block; width: {forumrow.reput.THANKS_REPUT_GRAPHIC_WIDTH};">
<!-- IF forumrow.reput.FORUM_REPUT -->
<span style="display: block;">{forumrow.reput.FORUM_REPUT}
<!-- IF forumrow.reput.S_THANKS_REPUT_GRAPHIC -->
<span style="display: block; width: {forumrow.reput.THANKS_REPUT_GRAPHIC_WIDTH}; height: {forumrow.reput.THANKS_REPUT_HEIGHT}; background: url({forumrow.reput.THANKS_REPUT_IMAGE_BACK}); background-repeat: repeat-x;"><span style="display: block; height: {forumrow.reput.THANKS_REPUT_HEIGHT}; width: {forumrow.reput.FORUM_REPUT}; background: url({forumrow.reput.THANKS_REPUT_IMAGE}); background-repeat: repeat-x;"> </span></span>
<!-- ENDIF -->
</span><dfn>{L_REPUT}</dfn>
<!-- ENDIF -->
</dd>
<!-- ENDIF -->
<!-- END reput -->
<dd class="lastpost<!-- IF forumrow.S_THANKS_FORUM_REPUT_VIEW_COLUMN and not S_IS_BOT --> lastpostthanks<!-- ENDIF -->"><span>
Код: Выделить всё
</form>
Вставить перед найденным
Код: Выделить всё
<!-- INCLUDE memberlist_view_thanks.html -->
Код: Выделить всё
<!-- IF S_DISPLAY_MEMBERLIST --><li class="icon-members"><a href="{U_MEMBERLIST}" title="{L_MEMBERLIST_EXPLAIN}">{L_MEMBERLIST}</a></li><!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF S_DISPLAY_TOPLIST --><li class="icon-thanks_toplist"><a href="{U_REPUT_TOPLIST}" title="{L_REPUT_TOPLIST}">{L_REPUT_TOPLIST}</a></li><!-- ENDIF -->
<!-- IF S_DISPLAY_THANKSLIST --><li class="icon-thanks"><a href="{U_THANKSLIST}" title="{L_THANKS_USER}">{L_GRATITUDES}</a></li><!-- ENDIF -->
Код: Выделить всё
<label for="allowpm0"><input type="radio" name="allowpm" id="allowpm0" value="0"<!-- IF not S_ALLOW_PM --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd>
</dl>
Вставить после найденного
Код: Выделить всё
<!-- IF S_THANKS_NOTICE_ON -->
<dl>
<dt><label for="allowthankspm1">{L_ALLOW_THANKS_PM}:</label><br /><span>{L_ALLOW_THANKS_PM_EXPLAIN}</span></dt>
<dd>
<label for="allowthankspm1"><input type="radio" name="allowthankspm" id="allowthankspm1" value="1"<!-- IF S_ALLOW_THANKS_PM --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label for="allowthankspm0"><input type="radio" name="allowthankspm" id="allowthankspm0" value="0"<!-- IF not S_ALLOW_THANKS_PM --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd>
</dl>
<dl>
<dt><label for="allowthanksemail1">{L_ALLOW_THANKS_EMAIL}:</label><br /><span>{L_ALLOW_THANKS_EMAIL_EXPLAIN}</span></dt>
<dd>
<label for="allowthanksemail1"><input type="radio" name="allowthanksemail" id="allowthanksemail1" value="1"<!-- IF S_ALLOW_THANKS_EMAIL --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label for="allowthanksemail0"><input type="radio" name="allowthanksemail" id="allowthanksemail0" value="0"<!-- IF not S_ALLOW_THANKS_EMAIL --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd>
</dl>
<!-- ENDIF -->
Код: Выделить всё
<dl class="icon">
Заменить найденное на
Код: Выделить всё
<dl class="<!-- BEGIN reput --><!-- IF topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW_COLUMN and not S_IS_BOT -->thanks<!-- ELSE -->icon<!-- ENDIF --><!-- END reput -->">
Код: Выделить всё
<dd class="lastpost"><span>{L_LAST_POST}</span></dd>
Заменить найденное на
Код: Выделить всё
<!-- BEGIN reput -->
<!-- IF topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW and topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW_COLUMN and not S_IS_BOT -->
<dd style="display: block; width: {topicrow.reput.THANKS_REPUT_GRAPHIC_WIDTH};">{L_REPUT}</dd>
<!-- ENDIF -->
<!-- END reput -->
<dd class="lastpostthanks"><span>{L_LAST_POST}</span></dd>
Код: Выделить всё
<dl class="icon" style="background-image: url({topicrow.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
Заменить найденное на
Код: Выделить всё
<dl class="<!-- BEGIN reput --><!-- IF topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW_COLUMN and not S_IS_BOT -->thanks<!-- ELSE -->icon<!-- ENDIF --><!-- END reput -->" style="background-image: url({topicrow.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
Код: Выделить всё
<!-- IF topicrow.ATTACH_ICON_IMG -->{topicrow.ATTACH_ICON_IMG} <!-- ENDIF -->{L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} » {topicrow.FIRST_POST_TIME}
Вставить после найденного
Код: Выделить всё
<!-- BEGIN reput -->
<!-- IF topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW and topicrow.reput.TOPIC_REPUT and not S_IS_BOT and not topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW_COLUMN -->
<span style="display: block;">
<!-- IF topicrow.reput.S_THANKS_REPUT_GRAPHIC -->
<span style="display: block; float: left; width: {topicrow.reput.THANKS_REPUT_GRAPHIC_WIDTH}; height: {topicrow.reput.THANKS_REPUT_HEIGHT}; background: url({topicrow.reput.THANKS_REPUT_IMAGE_BACK}); background-repeat: repeat-x;"><span style="display: block; height: {topicrow.reput.THANKS_REPUT_HEIGHT}; width: {topicrow.reput.TOPIC_REPUT}; background: url({topicrow.reput.THANKS_REPUT_IMAGE}); background-repeat: repeat-x;"></span></span>
<!-- ENDIF -->
{L_REPUT}: {topicrow.reput.TOPIC_REPUT}
</span>
<!-- ENDIF -->
<!-- END reput -->
Код: Выделить всё
<dd class="lastpost"><span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL}
Заменить найденное на
Код: Выделить всё
<!-- BEGIN reput -->
<!-- IF topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW and not S_IS_BOT and topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW_COLUMN -->
<dd style="display: block; width: {topicrow.reput.THANKS_REPUT_GRAPHIC_WIDTH};">
<!-- IF topicrow.reput.TOPIC_REPUT -->
<span style="display: block;">{topicrow.reput.TOPIC_REPUT}
<!-- IF topicrow.reput.S_THANKS_REPUT_GRAPHIC -->
<span style="display: block; width: {topicrow.reput.THANKS_REPUT_GRAPHIC_WIDTH}; height: {topicrow.reput.THANKS_REPUT_HEIGHT}; background: url({topicrow.reput.THANKS_REPUT_IMAGE_BACK}); background-repeat: repeat-x;"><span style="display: block; height: {topicrow.reput.THANKS_REPUT_HEIGHT}; width: {topicrow.reput.TOPIC_REPUT}; background: url({topicrow.reput.THANKS_REPUT_IMAGE}); background-repeat: repeat-x;"> </span></span>
<!-- ENDIF -->
</span><dfn>{L_REPUT}</dfn>
<!-- ENDIF -->
</dd>
<!-- ENDIF -->
<!-- END reput -->
<dd class="lastpost<!-- BEGIN reput --><!-- IF topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW_COLUMN and not S_IS_BOT --> lastpostthanks<!-- ENDIF --><!-- END reput -->"><span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL}
Код: Выделить всё
<!-- IF postrow.U_QUOTE --><li class="quote-icon"><a href="{postrow.U_QUOTE}" title="{L_REPLY_WITH_QUOTE}"><span>{L_REPLY_WITH_QUOTE}</span></a></li><!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF not postrow.S_FIRST_POST_ONLY or postrow.S_ONLY_TOPICSTART -->
<!-- IF not postrow.S_GLOBAL_POST_THANKS and not postrow.S_POST_ANONYMOUS and postrow.S_FORUM_THANKS and S_USER_LOGGED_IN and not postrow.S_IS_OWN_POST and (not postrow.S_ALREADY_THANKED or postrow.S_REMOVE_THANKS) --><li class="{postrow.THANKS_IMG}"><a href="{postrow.THANKS_LINK}" title="{postrow.THANK_ALT}{postrow.POST_AUTHOR}"></a></li><!-- ENDIF -->
<!-- ENDIF -->
Код: Выделить всё
<!-- IF postrow.SIGNATURE --><div id="sig{postrow.POST_ID}" class="signature">{postrow.SIGNATURE}</div><!-- ENDIF -->
<!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF postrow.THANKS and postrow.THANKS_POSTLIST_VIEW -->
<hr />
<!-- IF not postrow.S_POST_ANONYMOUS and not S_IS_BOT and postrow.S_MOD_THANKS -->
<ul class="profile-icons" style="float:left"><li class="delete-icon"><a href="{postrow.U_CLEAR_LIST_THANKS_POST}" title="{L_CLEAR_LIST_THANKS}"><span>{L_CLEAR_LIST_THANKS}</span></a></li></ul>
<!-- ENDIF -->
<div class="content">
<!-- IF not postrow.S_POST_ANONYMOUS and not S_IS_BOT-->
<dl class="postbody small">
<dt>{postrow.THANK_TEXT}{postrow.POST_AUTHOR_FULL}{postrow.THANK_TEXT_2}</dt>
<dd>{postrow.THANKS}</dd>
</dl>
<!-- ENDIF -->
</div>
<!-- ENDIF -->
<!-- IF postrow.S_THANKS_POST_REPUT_VIEW and postrow.POST_REPUT and not postrow.S_POST_ANONYMOUS and not S_IS_BOT -->
<div class="content">
<dl class="postbody">
<dt class="small"><strong>{L_REPUT}:</strong> {postrow.POST_REPUT}</dt>
<dd>
<!-- IF postrow.S_THANKS_REPUT_GRAPHIC -->
<div style="width: {postrow.THANKS_REPUT_GRAPHIC_WIDTH}; height: {postrow.THANKS_REPUT_HEIGHT}; background: url({postrow.THANKS_REPUT_IMAGE_BACK}); background-repeat: repeat-x;"><div style="height: {postrow.THANKS_REPUT_HEIGHT}; width: {postrow.POST_REPUT}; background: url({postrow.THANKS_REPUT_IMAGE}); background-repeat: repeat-x;"></div></div>
<!-- ENDIF -->
</dd>
</dl>
</div>
<!-- ENDIF -->
Код: Выделить всё
<!-- IF postrow.POSTER_FROM --><dd><strong>{L_LOCATION}:</strong> {postrow.POSTER_FROM}</dd><!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF not postrow.S_POST_ANONYMOUS and postrow.THANKS_COUNTERS_VIEW -->
<dd><strong>{L_GIVEN}:</strong><!-- IF postrow.POSTER_GIVE_COUNT < 1 --> {postrow.POSTER_GIVE_COUNT} {L_THANK}<!-- ELSEIF postrow.POSTER_GIVE_COUNT > 1 --> <a href="{postrow.POSTER_GIVE_COUNT_LINK}">{postrow.POSTER_GIVE_COUNT}</a> {L_THANKS}<!-- ELSE --> <a href="{postrow.POSTER_GIVE_COUNT_LINK}">{postrow.POSTER_GIVE_COUNT}</a> {L_THANK}<!-- ENDIF --></dd>
<dd><strong>{L_RECEIVED}:</strong><!-- IF postrow.POSTER_RECEIVE_COUNT < 1 --> {postrow.POSTER_RECEIVE_COUNT} {L_THANK}<!-- ELSEIF postrow.POSTER_RECEIVE_COUNT > 1 --> <a href="{postrow.POSTER_RECEIVE_COUNT_LINK}">{postrow.POSTER_RECEIVE_COUNT}</a> {L_THANKS}<!-- ELSE --> <a href="{postrow.POSTER_RECEIVE_COUNT_LINK}">{postrow.POSTER_RECEIVE_COUNT}</a> {L_THANK}<!-- ENDIF --></dd>
<!-- ENDIF -->
Код: Выделить всё
@import url("colours.css");
Вставить после найденного
Код: Выделить всё
@import url("thanks.css");
Код: Выделить всё
img_icon_topic_unapproved = icon_topic_unapproved.gif*18*19
Вставить после найденного
Код: Выделить всё
img_thankposts = thankposts.gif
img_removethanks = removethanks.gif
Код: Выделить всё
<td class="row1" width="100%"><p class="genmed"><!-- IF BIRTHDAY_LIST -->{L_CONGRATULATIONS}: <b>{BIRTHDAY_LIST}</b><!-- ELSE -->{L_NO_BIRTHDAYS}<!-- ENDIF --></p></td>
</tr>
</table>
<!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- INCLUDE index_body_thanks.html -->
Код: Выделить всё
<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS -->
<p class="forumdesc"><strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}</p>
<!-- ENDIF -->
Заменить найденное на
Код: Выделить всё
<!-- BEGIN reput -->
<!-- IF forumrow.reput.S_THANKS_FORUM_REPUT_VIEW and forumrow.reput.FORUM_REPUT and not S_IS_BOT -->
<span style="display: block;">
<!-- IF forumrow.reput.S_THANKS_REPUT_GRAPHIC -->
<span style="display: block; float: left; width: {forumrow.reput.THANKS_REPUT_GRAPHIC_WIDTH}; height: {forumrow.reput.THANKS_REPUT_HEIGHT}; background: URL({forumrow.reput.THANKS_REPUT_IMAGE_BACK}); background-repeat: repeat-x;"><span style="display: block; height: {forumrow.reput.THANKS_REPUT_HEIGHT}; width: {forumrow.reput.FORUM_REPUT}; background: URL({forumrow.reput.THANKS_REPUT_IMAGE}); background-repeat: repeat-x;"></span></span>
<!-- ENDIF -->
{L_REPUT}:{forumrow.reput.FORUM_REPUT}
</span>
<!-- ENDIF -->
<!-- END reput -->
<!-- IF forumrow.SUBFORUMS and forumrow.S_LIST_SUBFORUMS -->
<p class="forumdesc" style="clear: left"><strong>{forumrow.L_SUBFORUM_STR}</strong> {forumrow.SUBFORUMS}</p>
<!-- ENDIF -->
Код: Выделить всё
<td><!-- IF ACTIVE_TOPIC != '' --><b><a class="gen" href="{U_ACTIVE_TOPIC}">{ACTIVE_TOPIC}</a></b><br /><span class="genmed">[ {ACTIVE_TOPIC_POSTS} / {ACTIVE_TOPIC_PCT} ]</span><!-- ELSE --><span class="gen">-</span><!-- ENDIF --></td>
</tr>
<!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- INCLUDE memberlist_view_thanks.html -->
Код: Выделить всё
<script type="text/javascript">
Вставить перед найденным
Код: Выделить всё
<script type="text/JavaScript">
// <![CDATA[
function getElement(iElementId)
{
if (document.all)
{
return document.all[iElementId];
}
if (document.getElementById)
{
return document.getElementById(iElementId);
}
}
function toggleElement(oElement)
{
if (oElement.style.display == "none")
{
oElement.style.display = "";
}
else
{
oElement.style.display = "none";
}
}
// ]]>
</script>
Код: Выделить всё
<!-- IF S_DISPLAY_MEMBERLIST --> <a href="{U_MEMBERLIST}"><img src="{T_THEME_PATH}/images/icon_mini_members.gif" width="12" height="13" alt="*" /> {L_MEMBERLIST}</a><!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF S_DISPLAY_TOPLIST --> <a href="{U_REPUT_TOPLIST}"><img src="{T_THEME_PATH}/images/icon_mini_toplist.gif" width="15" height="14" alt="*" />{L_REPUT_TOPLIST}</a><!-- ENDIF -->
<!-- IF S_DISPLAY_THANKSLIST --> <a href="{U_THANKSLIST}"><img src="{T_THEME_PATH}/images/icon_mini_thanks.gif" width="12" height="13" alt="*" /> {L_GRATITUDES}</a><!-- ENDIF -->
Код: Выделить всё
<!-- IF S_CAN_HIDE_ONLINE -->
Вставить перед найденным
Код: Выделить всё
<!-- IF S_THANKS_NOTICE_ON -->
<tr>
<td class="row1" width="50%"><b class="genmed">{L_ALLOW_THANKS_PM}:</b><br /><span class="gensmall">{L_ALLOW_THANKS_PM_EXPLAIN}</span></td>
<td class="row2"><input type="radio" class="radio" name="allowthankspm" id="allowthankspm1" value="1"<!-- IF S_ALLOW_THANKS_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span> <input type="radio" class="radio" name="allowthankspm" id="allowthankspm0" value="0"<!-- IF not S_ALLOW_THANKS_PM --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
</tr>
<tr>
<td class="row1" width="50%"><b class="genmed">{L_ALLOW_THANKS_EMAIL}:</b><br /><span class="gensmall">{L_ALLOW_THANKS_EMAIL_EXPLAIN}</span></td>
<td class="row2"><input type="radio" class="radio" name="allowthanksemail" id="allowthanksemail1" value="1"<!-- IF S_ALLOW_THANKS_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span> <input type="radio" class="radio" name="allowthanksemail" id="allowthanksemail0" value="0"<!-- IF not S_ALLOW_THANKS_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
</tr>
<!-- ENDIF -->
Код: Выделить всё
<!-- IF topicrow.PAGINATION -->
<p class="gensmall"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
<!-- ENDIF -->
Заменить найденное на
Код: Выделить всё
<!-- BEGIN reput -->
<!-- IF topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW and topicrow.reput.TOPIC_REPUT and not S_IS_BOT -->
<span style="display: block;">
<!-- IF topicrow.reput.S_THANKS_REPUT_GRAPHIC -->
<span style="float: left; width: {topicrow.reput.THANKS_REPUT_GRAPHIC_WIDTH}; height: {topicrow.reput.THANKS_REPUT_HEIGHT}; background: URL({topicrow.reput.THANKS_REPUT_IMAGE_BACK}); background-repeat: repeat-x;"><span style="display: block; height: {topicrow.reput.THANKS_REPUT_HEIGHT}; width: {topicrow.reput.TOPIC_REPUT}; background: URL({topicrow.reput.THANKS_REPUT_IMAGE}); background-repeat: repeat-x;"></span></span>
<!-- ENDIF -->
{L_REPUT}:{topicrow.reput.TOPIC_REPUT}
</span>
<!-- ENDIF -->
<!-- END reput -->
<!-- IF topicrow.PAGINATION -->
<p class="gensmall" style="clear:left"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
<!-- ENDIF -->
Код: Выделить всё
<!-- IF topicrow.PAGINATION -->
<p class="gensmall"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
<!-- ENDIF -->
Заменить найденное на
Код: Выделить всё
<!-- BEGIN reput -->
<!-- IF topicrow.reput.S_THANKS_TOPIC_REPUT_VIEW and topicrow.reput.TOPIC_REPUT and not S_IS_BOT -->
<span style="display: block;">
<!-- IF topicrow.reput.S_THANKS_REPUT_GRAPHIC -->
<span style="display: block; float: left; width: {topicrow.reput.THANKS_REPUT_GRAPHIC_WIDTH}; height: {topicrow.reput.THANKS_REPUT_HEIGHT}; background: URL({topicrow.reput.THANKS_REPUT_IMAGE_BACK}); background-repeat: repeat-x;"><span style="display: block; height: {topicrow.reput.THANKS_REPUT_HEIGHT}; width: {topicrow.reput.TOPIC_REPUT}; background: URL({topicrow.reput.THANKS_REPUT_IMAGE}); background-repeat: repeat-x;"></span></span>
<!-- ENDIF -->
{L_REPUT}:{topicrow.reput.TOPIC_REPUT}
</span>
<!-- ENDIF -->
<!-- END reput -->
<!-- IF topicrow.PAGINATION -->
<p class="gensmall" style="clear:left"> [ {GOTO_PAGE_IMG}{L_GOTO_PAGE}: {topicrow.PAGINATION} ] </p>
<!-- ENDIF -->
Код: Выделить всё
<!-- IF postrow.POSTER_FROM --><br /><b>{L_LOCATION}:</b> {postrow.POSTER_FROM}<!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF not postrow.S_POST_ANONYMOUS and postrow.THANKS_COUNTERS_VIEW --><br /><b>{L_GIVEN}:</b><!-- IF postrow.POSTER_GIVE_COUNT < 1 --> {postrow.POSTER_GIVE_COUNT} {L_THANK}<!-- ELSEIF postrow.POSTER_GIVE_COUNT > 1 --> <a href="{postrow.POSTER_GIVE_COUNT_LINK}">{postrow.POSTER_GIVE_COUNT}</a> {L_THANKS}<!-- ELSE --> <a href="{postrow.POSTER_GIVE_COUNT_LINK}">{postrow.POSTER_GIVE_COUNT}</a> {L_THANK}<!-- ENDIF --><br /><b>{L_RECEIVED}:</b><!-- IF postrow.POSTER_RECEIVE_COUNT < 1 --> {postrow.POSTER_RECEIVE_COUNT} {L_THANK}<!-- ELSEIF postrow.POSTER_RECEIVE_COUNT > 1 --> <a href="{postrow.POSTER_RECEIVE_COUNT_LINK}">{postrow.POSTER_RECEIVE_COUNT}</a> {L_THANKS}<!-- ELSE --> <a href="{postrow.POSTER_RECEIVE_COUNT_LINK}">{postrow.POSTER_RECEIVE_COUNT}</a> {L_THANK}<!-- ENDIF --><!-- ENDIF -->
Код: Выделить всё
<!-- IF postrow.U_DELETE --><a href="{postrow.U_DELETE}">{DELETE_IMG}</a> <!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF not postrow.S_FIRST_POST_ONLY or postrow.S_ONLY_TOPICSTART -->
<!-- IF not postrow.S_GLOBAL_POST_THANKS and not postrow.S_POST_ANONYMOUS and postrow.S_FORUM_THANKS and S_USER_LOGGED_IN and not postrow.S_IS_OWN_POST and (not postrow.S_ALREADY_THANKED or postrow.S_REMOVE_THANKS) --><a href="{postrow.THANKS_LINK}" title="{postrow.THANK_ALT}{postrow.POST_AUTHOR}">{postrow.THANK_IMG}</a> <!-- ENDIF -->
<!-- ENDIF -->
<!-- IF postrow.THANKS and postrow.THANKS_POSTLIST_VIEW and not postrow.S_POST_ANONYMOUS -->
<table width="100%" cellspacing="0">
<tr valign="middle">
<td class="gensmall" align="{S_CONTENT_FLOW_BEGIN}">
<hr />
<!-- IF postrow.S_MOD_THANKS --><a href="{postrow.U_CLEAR_LIST_THANKS_POST}">{postrow.DELETE_IMG}</a> <!-- ENDIF -->{postrow.THANK_TEXT}{postrow.POST_AUTHOR_FULL}{postrow.THANK_TEXT_2} {postrow.THANKS}</td>
</tr>
</table>
<!-- ENDIF -->
<!-- IF postrow.S_THANKS_POST_REPUT_VIEW and postrow.POST_REPUT and not postrow.S_POST_ANONYMOUS and not S_IS_BOT -->
<table class="content" align="left">
<tr class="postbody" align="left">
<td>
<!-- IF postrow.S_THANKS_REPUT_GRAPHIC -->
<div style="float: left; width: {postrow.THANKS_REPUT_GRAPHIC_WIDTH}; height: {postrow.THANKS_REPUT_HEIGHT}; background: URL({postrow.THANKS_REPUT_IMAGE_BACK}); background-repeat: repeat-x;"><div style="height: {postrow.THANKS_REPUT_HEIGHT}; width: {postrow.POST_REPUT}; background: URL({postrow.THANKS_REPUT_IMAGE}); background-repeat: repeat-x;"></div></div>
<!-- ENDIF -->
<strong>{L_REPUT}:</strong> {postrow.POST_REPUT}
</td>
</tr>
</table>
<!-- ENDIF -->
Правки закончены. Для завершения установки надо запустить скрипт установки по адресу
Код: Выделить всё
http://ваш форум/install_thanks_mod.php
после отработки скрипта удалить его с сервера.
Почистить кэш.
- Убедитесь, что вы отредактировали файлы используемого вами стиля
- Обновите набор изображений вашего стиля (на вкладке Стили в админке)
- Обновите тему вашего стиля (на вкладке Стили в админке)
- Обновите кеш
- Установите опции мода (вкладка Модули - Спасибо за сообщение)
- Убедитесь, что правильно выставлены права доступа
1. Установите права доступа к форуму в котором вы хотите иметь опцию благодарностей
При установке право добавлено в роль Стандартный доступ. (Если вы хотите установить другие настройки: перейдите в Администраторский раздел - Права доступа - Локальные права - Права доступа к форумам и выберите форумы, где вы хотите иметь функцию благодарностей за сообщения. Разрешите право "Может благодарить за сообщения" на вкладке Разное).
2. Установите права доступа к просмотру листа благодарностей
Для просмотра списка благодарностей нужно разрешить глобальное пользовательское право - "Может просматривать лист благодарностей" на вкладке Разное. При установке право добавлено в роль Стандартные возможности и членам группы Зарегистрированные пользователи.
3. Если вы хотите иметь другие настройки (у вас другая роль у зарегистрированных пользователей):
Админка -> Права доступа -> Прав групп -> Выбор группы:Зарегистрированные пользователи -> Расширенные права -> Разное -> Может просматривать список благодарностей (Может видеть топлист) -> Применить все права
Вроде бы всё. Мод 100% рабочий. Проверяли. Успешной установки и применения.