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

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

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

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



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

это

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

  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 в конце после

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

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


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

Иллюстрация




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

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

components/users/fronted.php

перед

  1. display('com_users_profile.tpl')
;

вставить

  1. assign('newvisitors', $inUser->newvisitors)->

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

{$newvisitors}

Дополнение

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

замените это

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

  1. $visitguest = $inUser->id;
  2. if($inUser->id && !$inUser->is_admin){
0
Реклама Реклама #
0
KoRn KoRn 4 года назад #
Неплохо, попробую сегодня ! Ставлю + полезная вещь.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.