Небольшая доработка опубликованного ранее решения "Мои гости" instantcms.ru/blogs/sekretnye-materialy/moi-gosti.html, позволяет вывести в меню пользователя рядом со ссылкой на страницу "Мои гости" количество новых гостей с момента последнего просмотра списка гостей владельцем профиля.
0. Сделать копию изменяемых таблиц в базе данных и файлов для того что бы иметь возможность произвести откат, в случае проблем после следующих действий.
1. В директ админ выполнить запрос к базе данных:
2. В файле components/users/fronted.php
это
заменить на это
В файле gosti.php в конце после
вставить
Теперь, если в меню пользователя у вас есть ссылка на страницу Мои гости, вы можете добавить к ней счетчик
{user.newvisitors}
это вставляется в заголовок пункта меню.
После того как кто то просмотрит профиль пользователя, он узнает об этом по уведомлению в меню
Если нужно вывести в шаблоне template.php вне меню:
Если нужно вывести в шаблоне компонента профиль пользователя:
components/users/fronted.php
перед
;
вставить
затем в шаблоне компонента профиль пользователя
{$newvisitors}
Я у себя не показываю визиты админа. По моему это лишнее.
Если хотите что бы пользователь не знал о том, что админ смотрел его страницу в файле gosti.php
замените это
на это
0. Сделать копию изменяемых таблиц в базе данных и файлов для того что бы иметь возможность произвести откат, в случае проблем после следующих действий.
1. В директ админ выполнить запрос к базе данных:
ALTER TABLE `cms_users` ADD `newvisitors` INT(10) NOT NULL DEFAULT '0' AFTER `openid`;
это
$sql = "INSERT INTO cms_visitors (powner, visitor) VALUES ($visithost, $visitguest)"; $inDB->query($sql);
$inDB->query("INSERT INTO cms_visitors (powner, visitor) VALUES ($visithost, $visitguest)"); $inDB->query("UPDATE cms_users SET newvisitors=newvisitors+1 WHERE id='{$visithost}'");
В файле gosti.php в конце после
echo $visitor; }
$inDB->query("UPDATE cms_users SET newvisitors=0 WHERE id='{$visithoster}'");
{user.newvisitors}
это вставляется в заголовок пункта меню.
После того как кто то просмотрит профиль пользователя, он узнает об этом по уведомлению в меню
Если нужно вывести в шаблоне template.php вне меню:
$inUser->newvisitors;
components/users/fronted.php
перед
display('com_users_profile.tpl')
вставить
assign('newvisitors', $inUser->newvisitors)->
затем в шаблоне компонента профиль пользователя
{$newvisitors}
Дополнение
Вспомнил ещё один момент.Я у себя не показываю визиты админа. По моему это лишнее.
Если хотите что бы пользователь не знал о том, что админ смотрел его страницу в файле gosti.php
замените это
$visitguest = $inUser->id; if($inUser->id){
$visitguest = $inUser->id; if($inUser->id && !$inUser->is_admin){
Реклама #
KoRn 7 лет назад #