Profile Views List phpbb3 - Кто смотрел профиль ?мод выводит в профиль пользователя ник и аватарку того, кто заходил посмотреть ваш профиль.
Выглядеть будет примерно так:
Вложение:
profil_views.png [ 79.59 КБ | Просмотров: 27 ]
profil_views.png
Если вас заинтересовало - устанавливается мод так:
скачать из архива сайтараспаковать и содержимое папки
root скопировать в корень сайта (где файл config.php).
в установке мода используется папка install - форум будет недоступен для пользователей до конца установки.Теперь редактируем файлы форума:
Открыть
memberlist.phpНайти
Код: Выделить всё
$user->setup(array('memberlist', 'groups'));
Вставить после найденного
Код: Выделить всё
include($phpbb_root_path . 'includes/functions_profileviews.' . $phpEx);
$user->setup('mods/profileviews');
Найти
Код: Выделить всё
if (!in_array($mode, array('', 'group', 'viewprofile', 'email', 'contact', 'searchuser', 'leaders'Вставить после строки
Следующий код
Найти
Вставить после найденного
Код: Выделить всё
// Profile views, add user to the views table unless its his/her own profile
if ( ($user->data['user_id'] <> $user_id ) && ($user->data['user_id'] <> ANONYMOUS ) ) //delete this part if you want to enable guest views counting: || ($user->data['user_id'] <> ANONYMOUS )
{
count_visit($user_id);
}
//generate the profile views and views list provided it is enabled via ACP
if ( $config['display_profile_views'] )
{
generate_profile_view_list($user_id);
}
Найти
Код: Выделить всё
$template_html = 'memberlist_view.html';
break;Вставить после найденного
Код: Выделить всё
case 'profile_views':
get_profile_views_details($user_id);
// Now generate page title
$page_title = $user->lang['PROFILE_VIEW_STATISTICS'];
$template_html = 'memberlist_profile_view.html';
break;
Открыть
includes/constants.phpНайти
Вставить после найденного
Код: Выделить всё
define('PROFILE_VIEWS_TABLE', $table_prefix . 'profile_views');
Открыть
includes/functions_user.phpНайти
Код: Выделить всё
set_config_count('num_users', -1, true);
}
Вставить после найденного
Код: Выделить всё
// Update the profile views table
$sql = 'DELETE FROM ' . PROFILE_VIEWS_TABLE . '
WHERE profile_user_id = ' . $user_id . '
OR viewer_user_id = ' . $user_id;
$db->sql_query($sql);

для стилей на основе prosilver
Открыть
styles/prosilver/template/memberlist_view.htmlНайти
Код: Выделить всё
<!-- IF S_SHOW_ACTIVITY and POSTS -->
<dt>{L_ACTIVE_IN_FORUM}:</dt> <dd><!-- IF ACTIVE_FORUM --><strong><a href="{U_ACTIVE_FORUM}">{ACTIVE_FORUM}</a></strong><br />({ACTIVE_FORUM_POSTS} / {ACTIVE_FORUM_PCT})<!-- ELSE --> - <!-- ENDIF --></dd>
<dt>{L_ACTIVE_IN_TOPIC}:</dt> <dd><!-- IF ACTIVE_TOPIC --><strong><a href="{U_ACTIVE_TOPIC}">{ACTIVE_TOPIC}</a></strong><br />({ACTIVE_TOPIC_POSTS} / {ACTIVE_TOPIC_PCT})<!-- ELSE --> - <!-- ENDIF --></dd>
<!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF S_PROFILE_VIEWS and PROFILE_VIEWS -->
<dt>{L_PROFILE_VIEWS}:</dt><dd>{PROFILE_VIEWS}</dd>
<dt><a href="{S_PROFILE_VIEW_ACTION}">{L_PROFILE_VIEWS_LIST}</a>:</dt><dd>
<table><tr align="center">
<!-- BEGIN profile_views -->
<td><table><tr align="center" ><td>{profile_views.AVATAR}</td></tr><tr align="center" valign="bottom"><td><b>{profile_views.PROFILE_VIEWS_LIST}</b></td></tr></table></td>
<!-- END profile_views -->
</tr></table>
</dd>
<!-- ENDIF -->
Открыть
styles/prosilver/theme/stylesheet.cssНайти
Вставить после найденного

для стилей на основе subsilver2
Открыть
styles/subsilver2/template/memberlist_view.htmlНайти
Код: Выделить всё
<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 -->
Вставить после найденного
Код: Выделить всё
<!-- IF S_PROFILE_VIEWS and PROFILE_VIEWS -->
<tr>
<td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_PROFILE_VIEWS}: </td>
<td class="gen"><b>{PROFILE_VIEWS}</b></td>
</tr>
<tr>
<td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><a href="{S_PROFILE_VIEW_ACTION}">{L_PROFILE_VIEWS_LIST}</a>: </td>
<td class="gen"><table><tr align="center">
<!-- BEGIN profile_views -->
<td><table><tr align="center"><td>{profile_views.AVATAR}</td></tr><tr align="center" valign="bottom"><td><b>{profile_views.PROFILE_VIEWS_LIST}</b></td></tr></table></td>
<!-- END profile_views -->
</tr></table>
</td>
</tr>
<!-- ENDIF -->
Завершение установки:
Запустить инсталлятор через браузер по адресу
после отработки удалить папку
install с сервера.
Почистить кэш. Всё. Настройки мода находятся в
Админка -
Модули.

Если во время запуска установочного скрипта install у вас появляется ошибка...
Если во время запуска установочного скрипта у вас появляется ошибка
Код: Выделить всё
Index name 'phpbb_2profile_views_profile_user_id' on table 'phpbb_2profile_views' is too long. The maximum is 31 characters.Необходимо проделать следующие действия:
Открыть
includes/db/db_tools.phpНайти
Заменить найденное на
Найти
Код: Выделить всё
if (strlen($table_name . $index_name) - strlen($table_prefix) > 24)Заменить найденное на
Код: Выделить всё
if (strlen($table_name . $index_name) - strlen($table_prefix) > 124)Найти
Код: Выделить всё
if (strlen($table_name . $index_name) - strlen($table_prefix) > 24)Заменить найденное на
Код: Выделить всё
if (strlen($table_name . $index_name) - strlen($table_prefix) > 124)Значения могут быть другими, не обязательно
30,
24 и
24, у меня к примеру было первое значение
34, в любом случае надо просто 1 приписать спереди, после того как установщик сработает, откатить все эти изменения в файле (вернуть значения которые были) - проще всего сохранить отдельно "чистый" файл
db_tools.php и заменить им отредактированный.
Успехов в установке. Довольно удобная и занятная модификация.
