Форум русской поддержки Joomla!® CMS
10.12.2016, 07:07:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Записывать действия зарегистрированных пользователей

 (Прочитано 633 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ilja93
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« : 12.03.2015, 11:50:56 »

Всем здравствуйте. Подскажите пожалуйста как в Joomla 3.2.1  вести лог действий авторизированных пользователей. Т.е. когда user1 авторизовался на сайте, какие странички он посещал, что скачивал. Модуль для авторизации использую стандартный. Нашел в интернете следующее для записи логов:

jimport('joomla.log.log');
define('ERROR_LOG', 'com_record.'.date('Y_m_d').'.php');
JLog::addLogger(
   array('text_file' => ERROR_LOG),
   JLog::ALL,
   array('com_record')
);
JError::$legacy = false;
JLog::Add("тест!!");

в примере в лог файл выводится сообщение тест!, как вывести нужную информацию?
Спасибо Smiley
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #1 : 12.03.2015, 18:19:15 »

Это Вам придется всю Joomla таким кодом наполонить. Поищите расширение, что-то похожее скорее всего есть. Но учтите, что в Joomla нельзя все контролировать и логировать соответственно.
Записан
Ilja93
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #2 : 12.03.2015, 20:05:46 »

Спасибо попробую поискать.
Записан
DiabloZet
Осваиваюсь на форуме
***

Репутация: +5/-1
Offline Offline

Пол: Мужской
Сообщений: 191


Честь превыше всего!


« Ответ #3 : 12.03.2015, 23:43:57 »

Для просмотра каких страничек посещал человек вроде liveinternet.ru не плохо помогает...
Счетчик установите, там детальная инфа про пользователей, но уже что люди качают итд... нужно ставить код логов
Записан
SmokerMan
Профи
********

Репутация: +694/-25
Offline Offline

Пол: Мужской
Сообщений: 5225



« Ответ #4 : 13.03.2015, 01:14:14 »

вести лог действий авторизированных пользователей.
что значит лог действий?)
нужно контролировать все get и post запросы?
в корне есть index.php, если все проходит через него, а через него типа по стандартам должно все происходить, то вот простой код
Код:
$user = JFactory::getUser();
if (!$user->guest) {
$data = date('d.m.Y H:i:s'). ' - ' . $user->name . "\n";
ob_start();
var_dump($_REQUEST);
$data .= ob_end_clean();
file_put_contents(dirname(__FILE__).'/my.log', $data, FILE_APPEND, PHP_EOL);
}
нужно разметить в нем после
Код:
$app = JFactory::getApplication('site');

но не факт что все происходить именное через него Azn
расширения и ситуации бывают разные

Записан
Ilja93
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #5 : 13.03.2015, 13:59:44 »

Спасибо Вам за ответы. У меня сайт крутиться в локальной сети, где мне надо отследить что авторизованные пользователи посетили страничку, в какой день, тем самым узнать что Иванов Иван Иванович ознакомился со данными на страничке. 

SmokerMan я вставляю Ваш код index файл при авторизации у меня исчезает кириллица и ругается на строку: file_put_contents(dirname(__FILE__).'/my.log', $data, FILE_APPEND, PHP_EOL);

Если можете помочь еще советами подскажите пожалуйста.
Спасибо.
Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #6 : 13.03.2015, 14:09:28 »

Тогда может проще внешние системы статистики интегрировать?
Типа или еще чего нагуглить (on english)
Записан
Ilja93
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #7 : 13.03.2015, 14:51:28 »

Спасибо но у меня компьютеры только в локальной сети работают.
Записан
Ilja93
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #8 : 13.03.2015, 14:57:49 »

$user = JFactory::getUser();
if (!$user->guest) {
   $data = date('d.m.Y H:i:s'). ' - ' . $user->name . "\n";
   ob_start();
   var_dump($_REQUEST);
   $data .= ob_end_clean();
   file_put_contents(dirname(__FILE__)."/my.log", $data);
Спасибо тебе SmokerMan! Лог авторизации пользователей теперь собирается! В коде убрал то что не могла понять Joomla и я тоже)))), а нажатие ссылок возможно сюда же записать данным пользователем?
Записан
Ilja93
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #9 : 14.03.2015, 10:40:00 »

Ребята проблему решил тема закрыта. В index файл прописал следующее

    $file="base_user";        //имя файла с логами пользователей
    $col_zap=3499;          //записей в логе пользователей
    $bot=htmlspecialchars(substr($xxx,0,80));//обрезаем USER-AGENT до 80 символов
$user = JFactory::getUser();
$datauser = $user->name ;
//записываем логи в файл с блокировкой
$l_cash='';
$fh=fopen($file,"a+");
flock($fh,LOCK_EX);
fseek($fh,0);
while (!feof($fh)) $l_cash.= fread($fh,8192);
$lines=explode("\n",$l_cash);
while(count($lines)>$col_zap) array_shift($lines);
$l_cash=implode("\n",$lines);
$l_cash.=date("H:i:s d.m")."|" .$datauser ."|".$_SERVER['REMOTE_ADDR']."|".
    htmlspecialchars($_SERVER['REQUEST_URI'])."\n";
ftruncate($fh,0);
fwrite($fh,$l_cash);
flock($fh,LOCK_UN);
fclose($fh);


Всем спасибо!
Записан
Ilja93
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #10 : 14.03.2015, 11:49:17 »

Вот код для отображения статистика через браузер, создаете php файл в корне сайта и заходите в него для просмотра.
Код:
<?php
if (isset($_GET["col"])) $col=$_GET["col"]; else $col=50;
$lines_cashe=file_get_contents("base_user", LOCK_EX);
$file=explode("\n",$lines_cashe);
$size_f=count($file)-1;
?>

<html>
<head>
<style type='text/css'>
 td.zz {PADDING-LEFT: 3px; FONT-SIZE: 9pt; PADDING-TOP: 2px; FONT-FAMILY: Arial;}
</style>
</head>

<body>
<center>
<?php
if ($col>$size_f) $col=$size_f;
echo 'Последние <b>'.$col.'</b> посетившие сайт:';
?>

<table width="750" cellspacing="1" cellpadding="1" border="0"
    style="table-layout:fixed">
<tr bgcolor="#eeeeee">
 <td class="zz" width="100"><b>Время, дата</b></td>
 <td class="zz" width="250"><b>Кто посещал</b></td>
 <td class="zz" width="100"><b>IP, прокси</b></td>
 <td class="zz" width="300"><b>Посещенный URL</b></td>
</tr>

<?php
for ($si=$size_f-1; $si>=$size_f-$col; $si--) {
$str=explode("|",$file[$si]);
echo '<tr bgcolor=#eeeeee><td class=zz>'.$str[0].'</td>';
echo '<td class=zz>'.$str[1].'</td>';
echo '<td class=zz>'.$str[2].'</td>';
echo '<td class=zz><a href="http://usefulscript.ru'.$str[3].'">'.$str[3];
echo '</a></td></tr>';
}
echo '</table>';
echo '<br>Просмотреть последние <a href=?col=100>100</a> <a href=?col=500>500</a> ';
echo '<a href=?col=1000>1000</a> посещений.';
echo '<br>Просмотреть <a href=?col='.sizeof($file).'>все посещения</a>.';
echo '</center></body></html>';
?>
Записан
Ilja93
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #11 : 15.03.2015, 21:07:31 »

Товарищи, а может кто подсказать как в этом коде еще добавить выборку по дате?
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet