Начало
Форум
Преводи
Помощ
Услуги
Мрежа
Ден
Въпроси
Приложения
Магазин
Хостинг
Реклама
Моля,
влезте
или
се регистрирайте
.
Изгубен
регистрационен е-мейл?
1 Час
за 1 Ден
1 Седмица
1 Месец
завинаги
134,794
Общо мнения в
16,950
Теми от
2,961
Потребители
Последен член:
dictio
Джумла! България
|
Компоненти, модули, шаблони
|
Модули
|
Ajax[is] Sp[eye] - модул за следене кой кво
« назад
напред »
Страници:
[
1
]
Автор
Тема: Ajax[is] Sp[eye] - модул за следене кой кво (Прочетена 5857 пъти)
majo
DEUS EX MACHINA
Глобален модератор
Мега Гуру
Karma: +2185/-0
Offline
Публикации: 1,918
Thunder and sparks in the Heart of the Dark ...
Ajax[is] Sp[eye] - модул за следене кой кво
«
:
Януари 08, 2007, 15:46:36 »
Ето чалъм да се показва в реално време кой какво прави из сайта. Иде реч за нещо като
http://forum.joomla-bg.com/index.php?action=who
само дето не го правя през мамбо/джумла, ами ползвам логовете на апаха. При мен си го подкарах даже с AJAX и през 10 секунди зарежда само последните няколко ентрита - приятно подредени и форматирани. Няма да обяснявам как да се вържи с ajax - имах преди един подобен постинг
http://forum.joomla-bg.com/index.php/topic,5872.0.html
и това е просто разширение на предната функционалност.
Има няколко подробности. Това е само за Linux базирани системи. Освен това, за да сработи, трябва да имате пълния физически път до лог файла на апаха.
Понеже логовете са супер тлъсти, не е възможно да се парсва целия текстов файл, затова ползвам една команда tail от bash, която би трябвало да я има във всяка линукс система. Тя улавя последните няколко реда от указан файл - точно това, което ни трябва. Може да има подобен вариант и за команда за под уин, ама не съм търсил.
Между другото, това си е напълно самостоятелен скрипт, така че, ако сте го настроили правилно, би трябвало да си го заредите бе проблеми директно в браузъра и да видите какво връща. Например
http://mysite.com/myscripts/nekvo-ime.php
би трябвало да ви зареди скрипта и без да минавате през джумлата (трябва да си сейвнете долния скрипт във файл със съответното име и на съответното място де).
Скриптът, който трябва да се изпълнява периодично (ако искате; ако не искате можете да си го боднете като модул някъде и да ви се зарежда само веднъж и да показва последните няколко действия еднократно) е следният:
Активен
You're welcome to the metal age!
majo
DEUS EX MACHINA
Глобален модератор
Мега Гуру
Karma: +2185/-0
Offline
Публикации: 1,918
Thunder and sparks in the Heart of the Dark ...
Re: Ajax[is] Sp[eye] - модул за следене кой кво
«
Отговор #1 :
Януари 08, 2007, 15:47:07 »
Код:
<?php
//Вкарваме в последните 10 записа от лог файла в масив като един ред е един запис за една заявка
$last10entries
=
explode
(
"\n"
,`
tail /пълен/път/до/логфайла/на/апаха/moiasait.access_log
`);
//Създаваме 2 масива за търсене с прости регулярни изрази и за замяна на дълги URLта с кратки и разбираеми
//текстове. Логиката е следната. Ако по-надолу в скрипта системата открие поискано URL от лога на апаха,
//в което да кажем има com_comprofiler (то може да е секво; дълго, кратко, няма значение; важното е,
//че щом се съдържа в целия стринг com_comprofiler потребителят е браузвал тоз ресурс), тя ще го замени с
//човешки разбираемто "Разглежда Общност" или "Браузва профилите на хората".
//Същото важи и за останалите двойки - патерн + замяна. Тука можете да си добавяте ваши или да триете
//или редактирате тия.
$patterns
[
0
] =
'/.*extcalendar.*/'
;
$replacements
[
0
] =
'Разглежда календара'
;
$patterns
[
1
] =
'/.*chat.*/'
;
$replacements
[
1
] =
'Браузва чата'
;
$patterns
[
2
] =
'/.*content.*/'
;
$replacements
[
2
] =
'Чете публикация'
;
$patterns
[
3
] =
'/.*com_rwcards.*/'
;
$replacements
[
3
] =
'Браузва картички'
;
$patterns
[
4
] =
'/.*com_comprofiler.*/'
;
$replacements
[
4
] =
'Браузва общност'
;
$patterns
[
5
] =
'/.*com_torrentitalia_tracker.*/'
;
$replacements
[
5
] =
'Разглежда торенти или прави анонс'
;
$patterns
[
6
] =
'/.*com_content.*/'
;
$replacements
[
6
] =
'Чете публикация'
;
$patterns
[
7
] =
'/.*templates.*/'
;
$replacements
[
7
] =
'Зарежда темплейт'
;
$patterns
[
8
] =
'/.*cache.*/'
;
$replacements
[
8
] =
'Чете от кеш или зарежда RSS емисия'
;
$patterns
[
9
] =
'/.*com_rss.*/'
;
$replacements
[
9
] =
'Зарежда RSS емисия'
;
$patterns
[
10
] =
'/.*images.*/'
;
$replacements
[
10
] =
'Зарежда картинка'
;
$patterns
[
11
] =
'/.*com_virtuemart.*/'
;
$replacements
[
11
] =
'Браузва магазина'
;
$patterns
[
12
] =
'/.*viewforum.*/'
;
$replacements
[
12
] =
'Браузва форума'
;
$patterns
[
13
] =
'/.*includes.*/'
;
$replacements
[
13
] =
'Зарежда системни файлове от includes'
;
$patterns
[
14
] =
'/.*modules.*/'
;
$replacements
[
14
] =
'Зарежда модул'
;
$patterns
[
15
] =
'/.*shop.*/'
;
$replacements
[
15
] =
'Браузва магазина'
;
$patterns
[
16
] =
'/.*shop.*/'
;
$replacements
[
16
] =
'Разглежда последно качени'
;
$patterns
[
17
] =
'/.*restamp.*/'
;
$replacements
[
17
] =
'Браузва картичките'
;
$patterns
[
18
] =
'/.*com_remository.*/'
;
$replacements
[
18
] =
'Браузва файловия център'
;
$patterns
[
19
] =
'/.*com_zoom.*/'
;
$replacements
[
19
] =
'Браузва галерията'
;
//Започваме обхождането на $last10entries масива, който сме взели от апаха.
foreach (
$last10entries
as
$row
) {
//Създаваме нов масив в който вече 1 ред е разбит на отделни записи
//(IP, поискан ресурс, статус, браузър и т.н., и т.н.)
$last10separated
=
explode
(
" "
,
$row
);
//Правим си една конкретна проверка за поискан ресурс. Ако там няма пълно URL (с index.php и т.н.),
//ами само /, това значи, че е поискана началната страница. Това го правим тука, а не с регулярен израз
//по-горе. Защо? Защото имаме да търсим само една наклонена черта, и ако я търсим с рег. израз,
//ще прецакаме нещата.
if (
$last10separated
[
6
] ==
'/'
) {
$last10separated
[
6
] =
"Зарежда началната страница на сайта"
;
}
//Следващата проверка е много важна - с нея казваме на пхп да НЕ връща определени записи от определени места.
//Това може да е нашия собствен IP адрес, или домейн, от който се включваме.
if
(
(
$last10separated
[
0
] !=
"moiadomein.com"
) &&
(
$last10separated
[
0
] !=
"192.168.0.102"
) &&
(
$last10separated
[
0
] !=
"192.168.0.110"
)
)
{
//Тука връщаме резултата. Забележете, че можете да си го форматирате, както си искате. В момента връща
//например:
//34.23.3.2 - Гледа мач
//ама можете да си сложите, каквото си инфо искате. Ако искате да видите с какво инфо разполагате,
//откоментирайте следващите 3 реда за да видите съдържанието на масива $last10separated:
//echo "<pre>";
//print_r($last10separated);
//echo "</pre>";
//Ако ви трябва някаква друга информация, можете да си я заредите със съответния [ключ] - например
//$last10separated[4] или $last10separated[6] и т.н.
//Тоя малък if с който започва следващия блок е сложен, за да не се връщат записи,
//които нямат IP адреси.
if (
$last10separated
[
0
] ) {
echo
$last10separated
[
0
];
echo
" - "
;
echo
preg_replace
(
$patterns
,
$replacements
,
$last10separated
[
6
]);
echo
"<br />"
;
}
}
}
?>
Активен
You're welcome to the metal age!
majo
DEUS EX MACHINA
Глобален модератор
Мега Гуру
Karma: +2185/-0
Offline
Публикации: 1,918
Thunder and sparks in the Heart of the Dark ...
Re: Ajax[is] Sp[eye] - модул за следене кой кво
«
Отговор #2 :
Януари 08, 2007, 15:50:58 »
Което ми напомня, че имам 1 молба към админите тука:
Може ли да вдигнете малко размера на коментарите в [ code ] ... [ /code ], че почти съвсем никак не могат да се четат? Оранжевкото е екстра, ама големината е малко малка. Всъщност, като се замисля, всичкия код е ситнеж и ако някой иска да го прегледа, трябва да си го пейства някъде другаде, а си е досадно. Поне с 1 px да вдигнете малко сичкото font-size в [ code ] ... [ /code ], а? Много ли искам?
Активен
You're welcome to the metal age!
Страници:
[
1
]
Джумла! България
|
Компоненти, модули, шаблони
|
Модули
|
Ajax[is] Sp[eye] - модул за следене кой кво
« назад
напред »
Отиди на:
Моля, изберете:
-----------------------------
Джумла! България
-----------------------------
=> Правила и анонси
=> Общи съобщения
=> Джумла! Ден
=> Шоуто на Пламен&Co
===> Шоуто на дамите
-----------------------------
Форум за Джумла!
-----------------------------
=> Джумла! - 1.5.x
===> За начинаещи
=====> Дискусии на FAQ
===> Решени проблеми
===> SEO
=> Joomla 1.6
=> Преводи
===> Текущи преводи
===> Завършени преводи
===> Преводи на македонски
=> Джумла! ревю
=> JoomFish Content Elements
-----------------------------
Компоненти, модули, шаблони
-----------------------------
=> Компоненти
===> Форуми
===> VirtueMart (ВиртюеМарт),модули и ботове
=====> Първи стъпки в VirtueMart
===> Галерии
===> Файлови архиви
===> Магазини и каталози
===> Модификации и хакове
=> Модули
=> Добавки (plugins)
=> Шаблони
-----------------------------
Бизнес
-----------------------------
=> Купувам / Продавам
=> Оптимизация и бизнес
===> Размяна на банери
=> Хостинг
===> www.joomla-bg.net
===> SuperHosting.bg
===> Хост България
===> Други доставчици
-----------------------------
Разработки
-----------------------------
=> Всичко за Ваши разработки и проекти
=> PHP и MySQL
-----------------------------
Архив и кошче
-----------------------------
=> Архив
===> ICDSoft
===> ICNBG.com
===> SiteGround
===> cbox.biz
===> Goto.BG
===> dom.bg
===> Fcolor
===> ТопХост.БГ
===> Пилакс
===> my32.net
===> Джумла! - 1.0.x
=====> Джумла! - UTF-8
=====> Решени проблеми
=====> За начинаещи
=====> SEO
===> Архив Преводи