Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[BETA] Hits Counter

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 20 лет
Откуда: Estonia, Tallinn

[BETA] Hits Counter

Сообщение Vladson »

Сделал первую бету (сам) так мне помочь никто и не захотел, так что может быть тут куча ошибок, но он работает, я проверял

Код: Выделить всё

############################################################## 
## MOD Title: Hits Counter
## MOD Author: Vladson < dkfl@bk.ru > (N/A) http://www.dkflbk.nm.ru 
## MOD Description:	 This mod gives you a forum statistics 
## MOD Version:	 (1.0.0)  [phpBB 2.0.6-2.0.10] 
## 
## Installation Level:	 Easy  
## Installation Time:	 5 Minutes 
## 
## Files To Edit (5):	admin/admin_db_utilities.php
##			includes/page_tail.php
##			language/lang_english/lang_main.php
##			templates/subSilver/overall_footer.tpl 
##			includes/constants.php
## Included Files: (n/a):
############################################################## 
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered 
## in our MOD-Database, located at: http://www.phpbb.com/mods/ 
############################################################## 
## Author Notes: 
## 
############################################################## 
## MOD History: 
## 
##	2004-10-27 - Version 1.0.0 
##		- First beta 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

# 
# --- [SQL] --- 
# 

CREATE TABLE `phpbb_counter` ( 
	`hits_time` VARCHAR( 32 ) NOT NULL , 
	`hits_ip` VARCHAR( 32 ) NOT NULL 
	); 

# 
# --- [OPEN] --- 
# 

admin/admin_db_utilities.php

# 
# --- [FIND] --- 
# 

$tables = array('auth_access', 'banlist', 'categories', 'config', 'disallow', 'forums', 'forum_prune', 'groups', 'posts', 'posts_text', 'privmsgs', 'privmsgs_text', 'ranks', 'search_results', 'search_wordlist', 'search_wordmatch', 'sessions', 'smilies', 'themes', 'themes_name', 'topics', 'topics_watch', 'user_group', 'users', 'vote_desc', 'vote_results', 'vote_voters', 'words');

# 
# --- [IN-LINE FIND] --- 
# 

'config',

# 
# --- [IN-LINE AFTER ADD] --- 
# 

'counter',

# 
# --- [OPEN] --- 
# 

includes/constants.php 

# 
# --- [FIND] --- 
# 

define('CONFIG_TABLE', $table_prefix.'config'); 

# 
# --- [AFTER ADD] --- 
# 

define('COUNTER_TABLE', $table_prefix.'counter'); 

# 
# --- [OPEN] --- 
# 

includes/page_tail.php 

# 
# --- [FIND] --- 
# 

if ( !defined('IN_PHPBB') ) 
{ 
	die('Hacking attempt'); 
} 

# 
# --- [AFTER ADD] --- 
# 

// 
// Counter 
// 

$sql = "INSERT INTO " . COUNTER_TABLE . " (hits_time, hits_ip) VALUES ('" . date('Yz') . "', '" . $user_ip . "')"; 
if ( !($result = $db->sql_query($sql)) ) 
{ 
	message_die(GENERAL_ERROR, 'Could not obtain hits information', '', __LINE__, __FILE__, $sql); 
} 

$sql = "SELECT COUNT(hits_time) as total FROM " . COUNTER_TABLE ; 
$result = $db->sql_query($sql); 
if( $result ) 
{ 
	$row = $db->sql_fetchrow($result); 
} 
$hits_count = $row['total']; 

$sql = "SELECT COUNT(hits_ip) as total FROM " . COUNTER_TABLE . " WHERE hits_time=" . date('Yz'); 
$result = $db->sql_query($sql); 
if( $result ) 
{ 
	$row = $db->sql_fetchrow($result); 
} 
$hits_today = $row['total']; 

$sql = "SELECT COUNT(DISTINCT hits_ip) as hosts FROM " . COUNTER_TABLE . " WHERE hits_time=" . date('Yz') ; 
$result = $db->sql_query($sql); 
if( $result ) 
{ 
   $row = $db->sql_fetchrow($result); 
} 
$hosts_today = $row['hosts']; 

# 
# --- [FIND] --- 
# 

$template->assign_vars(array( 

# 
# --- [AFTER ADD] --- 
# 

	'HITS_COUNT' => $lang['Hits'] . "-" . $hits_count . " ", 
	'HITS_TODAY' => $lang['Today_Hits'] . "-" . $hits_today . " ", 
	'HOSTS_TODAY' => $lang['Today_Hosts'] . "-" . $hosts_today . " ", 

# 
# --- [OPEN] --- 
# 

language/lang_english/lang_main.php 

# 
# --- [FIND] --- 
# 

// 
// That's all, Folks! 
// ------------------------------------------------- 

# 
# --- [BEFORE ADD] --- 
# 

// Counter 
$lang['Hits'] = 'Hits'; 
$lang['Today_Hits'] = 'Today Hits'; 
$lang['Today_Hosts'] = 'Today Hosts'; 

# 
# --- [OPEN] --- 
# 

templates/subSilver/overall_footer.tpl 

# 
# --- [FIND] --- 
# 

Powered by <a href="http://www.phpbb.com/" target="_phpbb" class="copyright">phpBB</a> {PHPBB_VERSION} &copy; 2001, 2002 phpBB Group<br />{TRANSLATION_INFO}</span></div> 

# 
# --- [IN-LINE FIND] --- 
# 

{TRANSLATION_INFO} 

# 
# --- [IN-LINE AFTER ADD] --- 
# 

<br />{HITS_COUNT} // {HITS_TODAY} // {HOSTS_TODAY}

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
Последний раз редактировалось Vladson 27.10.2004 6:13, всего редактировалось 4 раза.
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

Позволю себе сделать несколько замечаний:
1. Мне кажется, что накапливать АйПи с запуска и до скончания века не совсем верно. По сути интересует только результат на сегодня. Т.е имеет смысл отделить мух от котлет.
2. Не совсем понятно шаманское заклинание:
$hosts=0;
$checked=0;
$sql = "SELECT hits_ip FROM " . COUNTER_TABLE . " WHERE hits_time=" . date('Yz') . " ORDER BY hits_ip";
$result = $db->sql_query($sql);
if( $result )
{
while ($row = $db->sql_fetchrow($result))
{
if ($row[0]<>$checked)
{
$checked=$row[0];
$hosts++;
}
}
}
$hosts_today = $hosts;
Мне кажется, все эти подсчеты делаются простым SQL запросом:

Код: Выделить всё

$sql = "SELECT count(DISTINCT hits_ip) as hosts FROM " . COUNTER_TABLE . " WHERE hits_time=" . date('Yz') ; 
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 20 лет
Откуда: Estonia, Tallinn

Сообщение Vladson »

Мне кажется, все эти подсчеты делаются простым SQL запросом
Я чайник полный, и просил помощи, даже соавторство предлогал,
так нет помочь мы не хотим, а как критиковать
так тут же по набежали, ну ёлки палки
эта загадочная русская душа...

Спосибо конечно за помощь
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

а как критиковать
так тут же по набежали
Смотрим на дату моей регистрации и убеждаемся, что не тут же, а целых два дня назад :?
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 20 лет
Откуда: Estonia, Tallinn

Сообщение Vladson »

Егор Наклоняев
Не обижайся, просто за последнее время у меня нервы пошаливают, тежёлые семейные проблемы
2-е Подправил...

А про 1-е хочу сказать что в далёком будующем написать страничку статистики для админ панели с графиками и подробным логом
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Стаж: 19 лет 6 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

А про 1-е хочу сказать что в далёком будующем написать страничку статистики для админ панели с графиками и подробным логом
Скачиваем, ставим и смотрим как люди делают:
http://www.cn-software.com/cnstats/
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 20 лет
Откуда: Estonia, Tallinn

Сообщение Vladson »

, ставим и смотрим как люди делают:
В том то и дело, это почти что мой дебют
(самый большой мод который я сделал)
поэтому мне сейчас куда важнее не как люди делают а как я могу
(правда если быть точным этот дебют я уже провалил с треском,
как и всё что я делал в своей жизни...)
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 2 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Тоже позволю несколько замечаний, мог бы возможно быть соавтором, но пока наблюдается полное отсутствие свободного времени.

Imho считать хиты и хосты нужно опираясь на обработку сессий, соответственно и редактировать необходимо sessions.php

Второе - большая возможность переполнения таблицы вообще, с этим надо что-то делать.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 20 лет
Откуда: Estonia, Tallinn

Сообщение Vladson »

Imho считать хиты и хосты нужно опираясь на обработку сессий
Вот тут позволю себе не согласиться, счётчик считает хиты а не сессии, и операться на них нечего
возможность переполнения таблицы
Можно попробовать не вписывать ip второй раз за день, а просто приписывать сколько раз было заходов с этого ip но это усложнит код не уверен что смогу сделать это в ближайшее время
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.

Вернуться в «Бета-версии модов для phpBB 2.0.x»