Кто приходил ко мне в профиль?
|
|
+53↑ Голосов: 53 |
Доброго времени суток!
Ну вот, добрался до плагинов
Многих интересует "КТО ЖЕ ПРОСМАТРИВАЛ МОЙ ПРОФИЛЬ?"
Данный плагин поможет решить этот вопрос.
В результате установки плагина в профиле пользователя появляется закладка "Визиты".
На закладке в обратной хронологической последовательности выводится список посетивших профиль пользователей.
Гостей решил не выводить, так как не вижу особого смысла.
Из списка можно сразу перейти в профиль визитера и если установлен плагин p_usertip, то при наведении выскочит окошко с информацией о визитере.
Количество выводимых записей о посещениях настраивается в админке в Дополнения->Плагины->p_visitor
Для того чтобы данный плагин функционировал нужно создать таблицу cms_user_profile_visitor в базе данных. Инструкция для сервера БД находится в файле create_visitor_table.sql
Кроме этого, в файле /components/users/frontend.php пришлось добавить фрагмент добавляющий запись в нужную таблицу при просмотре профиля.
P.S. 16.07.2009.
Список внесенных изменений:
- добавил возможность из админки глобального закрытия просмотра профилей гостями. В связи с этим подкоррекирован файл админки (/admin/compenents/users/backend.php) и файл профиля (/components/users/frontend.php)
- введена настраиваемая пауза во время которой повторные входы в профиль не фиксируются. Время по-умолчанию 10 минут. (/components/users/frontend.php)
- добавлено отображение аватара в списке визитеров (/templates/ВашПрофиль/plugins/p_visitor.tpl)
- табы на профиле вынесены наверх (/templates/ВашПрофиль/components/com_users_profile.tpl)
Все нужные и измененные файлы находятся в архиве, который можно скачать по этой ссылке: http://sverdlovsk.net.ua/users/files/download.html?fileid=26 (ссылка изменилась!)
Напомню, что плагины недостаточно закачать в нужную папку на сервере, но также их нужно устанавливать и активировать (Админка-Дополнения-Плагины)
Установка для тех, кто ставит в первый раз такая же как и описано.
Для установивших предыдущую версию нужно будет сначала деактивировать и удалить плагин в панеле задач, а потом выполнить установку (естественно предварительно скопировав файлы из архива на свои места). То есть, копируем файлы, деактивируем плагин, устанавливаем плагин, в настройках компоненты "Профили" на первой вкладке настраиваем размер паузы, доступность профилей пользователей для гостей, в настройках Плагинов (Дополнения-Плагины-Визиты) указываем количество выводимых записей.
Версия instantcms: 1.5.0 Патч 1.5.1 не ставил и не проверял. Если в патче изменен файл /components/users/frontend.php, то нужно (на свой страх и риск) вставить фрагмент кода
# < RoViX - начало изменений #############################################################################
и
# RoViX - конец изменений ############################################################################# >
Ну вроде, все, успехов!
модернизировал плагин.
Добавился новый вид вывода посетителей и новый тип вывода посетителей (сам не понял что сказал
)
Короче, теперь можно в настройках указать, что показывать не все входы пользователя, а только последний вход-это раз. Параметр "Только последние входы:". 1 - выводить только последние входы, 0 - все показывать.
И второе, вывод возможен в виде таблицы (количество столбцов указываете в настройке) - параметр "Вид вывода (0-список/1-таблица):". Ввод 0 - выводится в виде списка (аватарка и справа данные посетителя), 1 и более - в виде таблицы (аватарка и под ней данные пользователя), количество столбцов устанавливаете числом.
Скачать можно отсюда: http://sverdlovsk.net.ua/users/files/download29.html (Файл p_visitor1.2.zip)
В файле есть все то, что было и раньше плюс добавился шаблон для вывода в табличном виде и изменённый файл самого плагина.
Установка идентична описанному ранее.
Скачать здесь: http://sverdlovsk.net.ua/users/files/download42.html
Установка.
1.Скачиваем архив (в архиве два плагина)
2.Копируем содержимое архива в корень сайта
3.Если у Вас стояла предыдущая версия плагина, то устанавливаем только плагин p_getuser, если не стояла, то установить нужно оба плагина. Короче, устанавливаем столько плагинов сколько у Вас в "Установка плагинов", но не больше двух
.
Версия самого плагина p_visitor не потребовала изменений, но для того чтобы регистрация просмотров осуществлялась без корректировки скриптов движка создал ещё один плагин.
Ну вот, добрался до плагинов

Многих интересует "КТО ЖЕ ПРОСМАТРИВАЛ МОЙ ПРОФИЛЬ?"
Данный плагин поможет решить этот вопрос.
В результате установки плагина в профиле пользователя появляется закладка "Визиты".
На закладке в обратной хронологической последовательности выводится список посетивших профиль пользователей.
Гостей решил не выводить, так как не вижу особого смысла.
Из списка можно сразу перейти в профиль визитера и если установлен плагин p_usertip, то при наведении выскочит окошко с информацией о визитере.
Количество выводимых записей о посещениях настраивается в админке в Дополнения->Плагины->p_visitor
Для того чтобы данный плагин функционировал нужно создать таблицу cms_user_profile_visitor в базе данных. Инструкция для сервера БД находится в файле create_visitor_table.sql
Кроме этого, в файле /components/users/frontend.php пришлось добавить фрагмент добавляющий запись в нужную таблицу при просмотре профиля.
P.S. 16.07.2009.
Список внесенных изменений:
- добавил возможность из админки глобального закрытия просмотра профилей гостями. В связи с этим подкоррекирован файл админки (/admin/compenents/users/backend.php) и файл профиля (/components/users/frontend.php)
- введена настраиваемая пауза во время которой повторные входы в профиль не фиксируются. Время по-умолчанию 10 минут. (/components/users/frontend.php)
- добавлено отображение аватара в списке визитеров (/templates/ВашПрофиль/plugins/p_visitor.tpl)
- табы на профиле вынесены наверх (/templates/ВашПрофиль/components/com_users_profile.tpl)
Все нужные и измененные файлы находятся в архиве, который можно скачать по этой ссылке: http://sverdlovsk.net.ua/users/files/download.html?fileid=26 (ссылка изменилась!)
Напомню, что плагины недостаточно закачать в нужную папку на сервере, но также их нужно устанавливать и активировать (Админка-Дополнения-Плагины)
Установка для тех, кто ставит в первый раз такая же как и описано.
Для установивших предыдущую версию нужно будет сначала деактивировать и удалить плагин в панеле задач, а потом выполнить установку (естественно предварительно скопировав файлы из архива на свои места). То есть, копируем файлы, деактивируем плагин, устанавливаем плагин, в настройках компоненты "Профили" на первой вкладке настраиваем размер паузы, доступность профилей пользователей для гостей, в настройках Плагинов (Дополнения-Плагины-Визиты) указываем количество выводимых записей.
Версия instantcms: 1.5.0 Патч 1.5.1 не ставил и не проверял. Если в патче изменен файл /components/users/frontend.php, то нужно (на свой страх и риск) вставить фрагмент кода
Код PHP:
Вставляемый код находится между
if ($do=='profile'){
$inCore->loadLib('clubs');
if (!$id){
$login = $inCore->request('login', 'str', '');
$login = urldecode($login);
$id = (int)$inDB->get_field('cms_users', "login='{$login}' AND is_deleted=0", 'id');
}
$usr = $model->getUser($id);
# < RoViX - начало изменений #############################################################################
// запрет входа гостя в профиль, если это запрещено настройками
if ( cmsUserId() == 0 && $cfg['sw_guest_browse_profiles'] == 0 ) {
echo '<p>Для просмотра профиля необходимо авторизоваться!</p>';
return;
}
# RoViX - конец изменений ############################################################################# >
if (!$usr || !$id) {
$inPage->printHeading('Пользователь не найден');
echo '<p>Возможно аккаунт был удален</p>';
return;
}
$inPage->setTitle($usr['nickname']);
$inPage->addPathway($usr['nickname']);
if ( !(usrAllowed($usr['allow_who'], $id) || $inUser->is_admin) ){
usrNotAllowed();
return;
}
$deleted = $usr['is_deleted'];
$myprofile = ($inUser->id == $id);
$usr['banned'] = dbRowsCount('cms_banlist', 'user_id='.$id);
if ($deleted){
$smarty = $inCore->initSmarty('components', 'com_users_deleted.tpl');
$smarty->assign('is_user', $inUser->id);
$smarty->assign('id', $id);
$smarty->assign('nickname', $usr['nickname']);
$smarty->assign('avatar', usrImage($id, 'big'));
$smarty->assign('login', $usr['login']);
$smarty->assign('is_admin', $inUser->is_admin);
$smarty->assign('others_active', $inDB->rows_count('cms_users', "login='{$usr['login']}' AND is_deleted=0", 1));
$smarty->display('com_users_deleted.tpl');
return;
}
# < RoViX - начало изменений #############################################################################
$visitor_id=cmsUserId();
if ( $visitor_id <> $id ) {
$today = getdate();
$sql = "SELECT visitdate FROM cms_user_profile_visitor WHERE (user_id = $id AND visitor_id = $visitor_id) ORDER by visitdate DESC LIMIT 1";
$result = $inDB->query($sql);
$last_date = $inDB->fetch_assoc($result);
$today_now = $today['minutes'] +
$today['hours'] * 100 +
$today['mday'] * 10000 +
$today['mon'] * 1000000 +
$today['year'] * 100000000;
$lastdate = substr($last_date['visitdate'],0,4)* 100000000+
substr($last_date['visitdate'],5,2)* 1000000+
substr($last_date['visitdate'],8,2)* 10000+
substr($last_date['visitdate'],11,2)*100+
substr($last_date['visitdate'],14,2);
$delta = $today_now - $lastdate;
// проверяем количество минут с последнего посещения
if ( $delta > $cfg['visittime'] ) {
$sql = "INSERT INTO cms_user_profile_visitor (user_id, visitor_id, visitdate)
VALUES ($id, $visitor_id, NOW())";
$inDB->query($sql);
}
}
# RoViX - конец изменений ############################################################################# >
$usr['avatar'] = usrImage($usr['id'], 'big');
$usr['menu'] = usrMenu($usr['id'], $cfg, $usr['banned']);
$usr['is_new_friends'] = ($inUser->id==$usr['id'] && $model->isNewFriends($usr['id']) && $cfg['sw_friends']);
if ($usr['is_new_friends']){
$usr['new_friends'] = usrFriendQueriesList($usr['id'], $model);
}
$usr['rating'] = cmsUser::getRating($id);
$usr['friends'] = usrFriends($usr['id']);
if ($usr['friends']){
$usr['friends_photos'] = cmsUser::getUserFriendsPhotos($usr['id']);
$usr['friends_posts'] = cmsUser::getUserFriendsPosts($usr['id']);
}
$usr['awards_html'] = usrAwards($usr['id']);
$usr['comments_html'] = usrComments($usr['id'], 5);
$usr['forum_html'] = usrForumPosts($usr['id'], 5);
$usr['photos_html'] = usrPhotos($usr['id'], 4);
$usr['wall_html'] = cmsUser::getUserWall($usr['id']);
$usr['addwall_html'] = cmsUser::getUserAddWall($usr['id']);
$usr['banned'] = cmsUser::isBanned($usr['id']);
$usr['clubs'] = cmsUserClubs($usr['id']);
$usr['status'] = usrStatus($usr['id']);
$usr['karma'] = strip_tags( cmsUser::getKarmaFormat($usr['id'], false), '<table><tr><td><img><a>' );
$usr['karma_int'] = strip_tags($usr['karma']);
$usr['karma_link'] = '<a href="/users/'.$menuid.'/'.$id.'/karma.html" title="История кармы" id="karmalink">?</a>';
$usr['photos_count'] = (int)usrPhotoCount($id);
$usr['board_count'] = (int)$inDB->rows_count('cms_board_items', "user_id=$id AND published=1");
$usr['comments_count'] = (int)$inDB->rows_count('cms_comments', "user_id=$id AND published=1");
if($cfg['sw_files'])
if ($inUser->id==$id){
$usr['files_count'] = $inDB->rows_count('cms_user_files', "user_id = ".$id." AND allow_who = 'all'");
} else {
$usr['files_count'] = $inDB->rows_count('cms_user_files', 'user_id = '.$id);
}
$usr['blog_link'] = '';
$usr['blog_id'] = usrBlogId($id);
if($usr['blog_id']){
$usr['blog_link'] = '<a href="/blogs/'.$menuid.'/'.$usr['blog_id'].'/blog.html">Блог</a>';
} elseif($myprofile) {
$usr['blog_link'] = '<a href="/blogs/'.$menuid.'/createblog.html">Создать блог</a>';
}
if (!$usr['description']) {
$usr['description'] = '<span style="color:#999"><em>Метки не указаны</em></span>';
} else {
$usr['description'] = cmsPage::getMetaSearchLink('/users/'.$menuid.'/hobby/', $usr['description']);
}
$usr['flogdate'] = $inCore->getRusDate($usr['flogdate']);
$usr['fregdate'] = $inCore->getRusDate($usr['fregdate']);
$usr['birthdate'] = $inCore->getRusDate($usr['birthdate']);
$usr['comments_count'] = usrMsg($usr['id'], 'cms_comments');
$usr['forum_count'] = usrMsg($usr['id'], 'cms_forum_posts');
$usr['profile_link'] = cmsUser::getProfileURL($usr['login']);
$usr['genderimg'] = '';
if ($usr['gender']) {
switch ($usr['gender']){
case 'm': $usr['genderimg'] = '<img src="/components/users/images/male.gif"/>'; $usr['gender']='Мужской'; break;
case 'f': $usr['genderimg'] = '<img src="/components/users/images/female.gif"/>'; $usr['gender']='Женский'; break;
}
}
$usr['privforms'] = '';
if(isset($cfg['privforms'])){
if (is_array($cfg['privforms'])){
if ($usr['formsdata']==''){
$formsdata = array();
} else {
$formsdata = $inCore->yamlToArray($usr['formsdata']);
}
foreach($cfg['privforms'] as $num=>$form_id){
$usr['privforms'] .= usrForm($id, $form_id, $formsdata);
}
}
}
$plugins = $model->getPluginsOutput($usr);
$smarty = $inCore->initSmarty('components', 'com_users_profile.tpl');
$smarty->assign('menuid', $menuid);
$smarty->assign('id', $id);
$smarty->assign('usr', $usr);
$smarty->assign('plugins', $plugins);
$smarty->assign('cfg', $cfg);
$smarty->assign('myprofile', $myprofile);
$smarty->assign('is_auth', $inUser->id);
$smarty->display('com_users_profile.tpl');
}
# < RoViX - начало изменений #############################################################################
и
# RoViX - конец изменений ############################################################################# >
Ну вроде, все, успехов!
P.S. (6.08.2009)
По просьбам страждущих
модернизировал плагин.Добавился новый вид вывода посетителей и новый тип вывода посетителей (сам не понял что сказал
)Короче, теперь можно в настройках указать, что показывать не все входы пользователя, а только последний вход-это раз. Параметр "Только последние входы:". 1 - выводить только последние входы, 0 - все показывать.
И второе, вывод возможен в виде таблицы (количество столбцов указываете в настройке) - параметр "Вид вывода (0-список/1-таблица):". Ввод 0 - выводится в виде списка (аватарка и справа данные посетителя), 1 и более - в виде таблицы (аватарка и под ней данные пользователя), количество столбцов устанавливаете числом.
Скачать можно отсюда: http://sverdlovsk.net.ua/users/files/download29.html (Файл p_visitor1.2.zip)
В файле есть все то, что было и раньше плюс добавился шаблон для вывода в табличном виде и изменённый файл самого плагина.
Установка идентична описанному ранее.
2010-02-12
Обновлён архив. Исправлен маленький, но большой недочёт приводивший к тому, что после установки на новую систему учёт визитов не происходил. А при установке сверху на работавшую ранее работало всё нормально.Скачать здесь: http://sverdlovsk.net.ua/users/files/download42.html
2010-08-06
Плагин обновлён и работает на версии 1.6.2.Установка.
1.Скачиваем архив (в архиве два плагина)
2.Копируем содержимое архива в корень сайта
3.Если у Вас стояла предыдущая версия плагина, то устанавливаем только плагин p_getuser, если не стояла, то установить нужно оба плагина. Короче, устанавливаем столько плагинов сколько у Вас в "Установка плагинов", но не больше двух
.Версия самого плагина p_visitor не потребовала изменений, но для того чтобы регистрация просмотров осуществлялась без корректировки скриптов движка создал ещё один плагин.
| # 12 июля 2009 в 16:29 0 | ||
|
| # 12 июля 2009 в 16:50 0 |
| # 12 июля 2009 в 16:45 0 | ||
|
| # 12 июля 2009 в 18:35 0 | ||
|
| # 12 июля 2009 в 19:22 0 | ||
|
| # 12 июля 2009 в 19:23 +1 | ||
|
| # 12 июля 2009 в 19:44 0 | ||
|
| # 12 июля 2009 в 19:46 0 | ||
|
| # 12 июля 2009 в 19:51 0 | ||
|
| # 12 июля 2009 в 20:25 0 | ||
|
| # 12 июля 2009 в 21:07 0 | ||
|
| # 13 июля 2009 в 04:20 0 | ||
|
| # 13 июля 2009 в 08:28 0 |
| Можно более подробно о создании таблицы в базе данных? |
| # 13 июля 2009 в 10:49 0 | ||
|
| # 13 июля 2009 в 10:40 0 | ||
|
| # 13 июля 2009 в 12:51 0 | ||
|
| # 13 июля 2009 в 13:07 0 |
| # 13 июля 2009 в 16:58 0 |
| # 14 июля 2009 в 01:41 0 | ||
|
| # 14 июля 2009 в 03:44 0 |
| # 14 июля 2009 в 04:39 0 | ||
|
| # 14 июля 2009 в 04:39 0 |
| # 14 июля 2009 в 06:03 0 | ||
|
| # 13 июля 2009 в 14:40 0 | ||
|
| # 13 июля 2009 в 19:49 0 | ||
|
| # 14 июля 2009 в 04:42 0 | ||
|
| # 13 июля 2009 в 21:52 0 |
| Спасибо за подробное описание!Получилось всё ок! |
| # 14 июля 2009 в 03:17 0 |
| # 14 июля 2009 в 04:44 0 | ||
|
| # 14 июля 2009 в 07:40 0 | ||
|
| # 14 июля 2009 в 11:03 0 | ||
|
| # 15 июля 2009 в 16:10 0 | ||
|
| # 16 июля 2009 в 10:56 0 | ||
|
| # 16 июля 2009 в 11:44 +2 |
| # 16 июля 2009 в 15:23 0 |
| # 16 июля 2009 в 17:35 0 |
| # 16 июля 2009 в 15:37 0 | ||
|
| # 16 июля 2009 в 17:40 +1 |
| # 16 июля 2009 в 17:44 0 | ||
|
| # 16 июля 2009 в 19:17 0 | ||
|
| # 16 июля 2009 в 19:56 0 |
| # 16 июля 2009 в 20:26 0 |
| # 17 июля 2009 в 05:00 0 | ||
|
| # 16 июля 2009 в 20:36 0 | ||
|
| # 17 июля 2009 в 05:47 +1 | ||
|
| # 17 июля 2009 в 06:08 +1 | ||
|
| # 17 июля 2009 в 06:16 0 |
| # 17 июля 2009 в 06:26 0 | ||
|
| # 17 июля 2009 в 06:32 0 | ||
|
| # 18 июля 2009 в 07:03 0 | ||
|
| # 17 июля 2009 в 06:43 0 |
| # 17 июля 2009 в 06:51 +1 | ||
|
| # 17 июля 2009 в 07:19 0 | ||
|
| # 17 июля 2009 в 07:52 0 | ||
|
| # 17 июля 2009 в 07:16 0 | ||
|
| # 17 июля 2009 в 08:58 +1 | ||
|
| # 17 июля 2009 в 19:08 0 | ||
|
| # 6 августа 2009 в 06:16 +1 | ||
|
| # 6 августа 2009 в 14:48 0 | ||
|
| # 6 августа 2009 в 17:11 0 |
| # 6 августа 2009 в 17:53 0 | ||
|
| # 6 августа 2009 в 19:00 0 | ||
|
| # 7 августа 2009 в 03:57 0 | ||
|
| # 15 августа 2009 в 11:27 0 | ||
|
| # 26 августа 2009 в 08:22 0 | ||
|
| # 15 августа 2009 в 06:56 +1 |
| Сделайте уже для 1.5.1 |
| # 2 сентября 2009 в 19:47 0 | ||
|
| # 2 сентября 2009 в 19:50 0 | ||
|
| # 2 сентября 2009 в 20:07 0 | ||
|
| # 3 сентября 2009 в 03:10 0 | ||
|
| # 3 сентября 2009 в 06:42 0 | ||
|
| # 8 сентября 2009 в 16:26 0 | ||
|
| # 8 сентября 2009 в 18:05 0 | ||
|
| # 8 сентября 2009 в 19:15 0 | ||
|
| # 8 сентября 2009 в 17:34 0 | ||
|
| # 8 сентября 2009 в 19:05 0 | ||
|
| # 1 октября 2009 в 17:39 0 | ||
|
| # 30 сентября 2009 в 21:09 0 |
| # 30 сентября 2009 в 21:28 0 | ||
|
| # 4 октября 2009 в 16:07 0 | ||
|
| # 17 декабря 2009 в 04:48 0 | ||
|
| # 22 декабря 2009 в 15:44 0 |
|
Где можно скачать файл, по ссылкам говорит "файл не найден" ? Спасибо. |
| # 22 декабря 2009 в 18:50 0 | ||
|
| # 22 декабря 2009 в 19:40 0 | ||
|
| # 2 января 2010 в 00:44 0 | ||
|
| # 6 января 2010 в 14:04 0 | ||
|
| # 6 января 2010 в 16:05 0 | ||
|
| # 8 января 2010 в 01:37 +1 |
| # 7 января 2010 в 21:45 0 |
| # 19 марта 2010 в 01:29 0 | ||
|
| # 19 марта 2010 в 02:28 0 |
| # 19 марта 2010 в 23:06 0 | ||
|
| # 20 апреля 2010 в 21:28 0 |
| # 20 апреля 2010 в 22:33 0 | ||
|
| # 20 апреля 2010 в 22:36 0 | ||
|
| # 20 апреля 2010 в 23:45 +1 |
| # 28 мая 2010 в 18:01 0 |
| # 28 мая 2010 в 18:12 0 | ||
|
| # 5 августа 2010 в 14:54 +1 | ||
|
| # 5 августа 2010 в 16:39 0 | ||
|
| # 6 августа 2010 в 17:48 +3 | ||
|
| # 6 августа 2010 в 18:46 0 | ||
|
| # 10 августа 2010 в 00:40 0 |
| # 10 августа 2010 в 12:21 +1 |
| # 10 августа 2010 в 12:34 +1 |
| # 10 августа 2010 в 13:07 0 | ||
|
| # 20 сентября 2010 в 21:46 0 | ||
|
| # 7 октября 2010 в 21:15 0 | ||
|
| # 4 декабря 2010 в 15:20 0 | ||
|
| # 12 декабря 2010 в 02:26 0 | ||
|
| # 13 декабря 2010 в 02:28 0 | ||
|
| # 16 декабря 2010 в 21:01 +1 | ||
|
| # 2 марта 2011 в 02:18 0 | ||
|
| # 2 марта 2011 в 16:18 0 | ||
|
| # 2 марта 2011 в 18:02 0 | ||
|
| # 2 марта 2011 в 19:26 0 | ||
|
| # 3 марта 2011 в 02:50 0 | ||
|
| # 2 марта 2011 в 16:29 0 |
| # 20 февраля 2011 в 20:09 0 | ||
|
| # 13 апреля 2011 в 08:06 0 |
| # 27 июня 2011 в 14:23 +1 |
| # 28 июня 2011 в 17:57 +2 | ||
|
| # 29 июня 2011 в 00:22 0 | ||
|
| # 14 января 2012 в 04:10 0 | ||
|
| # 14 января 2012 в 10:24 0 | ||
|

а твк хотелось попробовать((((