Счетчик посещений для раздела Мои гости 1.X

823
Небольшая доработка опубликованного ранее решения "Мои гости" /blogs/sekretnye-materialy/moi-gosti.html , позволяет вывести в меню пользователя рядом со ссылкой на страницу "Мои гости" количество новых гостей с момента последнего просмотра списка гостей владельцем профиля.

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

1. В директ админ выполнить запрос к базе данных:



Код PHP:
  1. ALTER TABLE `cms_users` ADD `newvisitors` INT(10) NOT NULL DEFAULT '0' AFTER `openid`;
2. В файле components/users/fronted.php

это

Код PHP:
  1. $sql = "INSERT INTO cms_visitors (powner, visitor)
  2. VALUES ($visithost, $visitguest)";
  3. $inDB->query($sql);
заменить на это

Код PHP:
  1. $inDB->query("INSERT INTO cms_visitors (powner, visitor) VALUES ($visithost, $visitguest)");
  2. $inDB->query("UPDATE cms_users SET newvisitors=newvisitors+1 WHERE id='{$visithost}'");

В файле gosti.php в конце после

Код PHP:
  1. echo $visitor;
  2. }
вставить
Код PHP:
  1.  
  2. $inDB->query("UPDATE cms_users SET newvisitors=0 WHERE id='{$visithoster}'");
Теперь, если в меню пользователя у вас есть ссылка на страницу Мои гости, вы можете добавить к ней счетчик

{user.newvisitors}
это вставляется в заголовок пункта меню.


После того как кто то просмотрит профиль пользователя, он узнает об этом по уведомлению в меню

Счетчик посещений для раздела Мои гости





Если нужно вывести в шаблоне template.php вне меню:

Код PHP:
  1. $inUser->newvisitors;
Если нужно вывести в шаблоне компонента профиль пользователя:

components/users/fronted.php

перед

Код PHP:
  1. display('com_users_profile.tpl')
;

вставить

Код PHP:
  1. assign('newvisitors', $inUser->newvisitors)->

затем в шаблоне компонента профиль пользователя

{$newvisitors}

Дополнение

Вспомнил ещё один момент.
Я у себя не показываю визиты админа. По моему это лишнее.
Если хотите что бы пользователь не знал о том, что админ смотрел его страницу в файле gosti.php

замените это

Код PHP:
  1. $visitguest = $inUser->id;
  2. if($inUser->id){
на это

Код PHP:
  1. $visitguest = $inUser->id;
  2. if($inUser->id && !$inUser->is_admin){
Удаление админом нехороших аватаров пользователей | Размещение поста на форуме от имени пользователя.
Комментарии (1)
Заралик 27 марта 2017 в 11:31 0
Неплохо, попробую сегодня ! Ставлю + полезная вещь.