Auto Prune Logs phpbb3

В данном подфоруме будут располагаться темы с анонсами интересных модификаций, а так же будут рассматриваться проверенные временем дополнения для phpBB3.

Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas

Правила форума
----
Ответить
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет 1 месяц
Откуда: Витебск
Контактная информация:

Auto Prune Logs phpbb3

Сообщение DeaDRoMeO »

Всем привет, сегодня я опять делюсь с вами полезной модификацией для наших форумов. Имя ей Auto Prune Logs.

Что она умеет ?? Она умеет автоматически очищать логи Администраторов и Модераторов. Скажите зачем это надо ??? Ну ведь не все админы помнят о этих логах и о том, что их надо периодически очищать, потому как эти записи занимают некоторое место на хостинге, а зачем нам хранить записи, допустим, за прошлый месяц ??.

Если у вас есть другие логи, которые необходимо автоматически очищать - смотрим под спойлер, смотрим перед установкой основной модификации !!!
Итак, кроме указанных 2-х логов мы хотим добавить еще какие то. Опишу принцип добавления для одного лога, остальные - добавлять по примеру и обязательно до установки основного мода (до запуска скрипта-инсталлятора, правки от мода выполните, файлы закиньте на сервер, НО СКРИПТ НЕ ЗАПУСКАТЬ !!!!). Сразу же разувайте глаза и ловите логику, обьяснять в комментах не буду по 10 раз !!! Вообщем добавлять будем лог Ошибок, стандартный лог на наших форумах. Для начала найдем этот лог в includes/costants.php и узнаем его тип. В указанном файле видим строку

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

define('LOG_CRITICAL', 2);
То, что нужно. Запоминаем то, что тип у этого лога =2. Открываем /includes/hooks/hook_auto_prune_logs.php и находим

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

if (!empty($config['prune_mod_log_day']))
		{
			$sql = 'DELETE FROM ' . LOG_TABLE . '
				WHERE log_type = 1
					AND log_time < ' . ($now - (int) $config['prune_mod_log_day'] * 86400);
			$db->sql_query($sql);
		}
Добавляем после найденного

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

if (!empty($config['prune_critical_log_day']))
		{
			$sql = 'DELETE FROM ' . LOG_TABLE . '
				WHERE log_type = 2
					AND log_time < ' . ($now - (int) $config['prune_critical_log_day'] * 86400);
			$db->sql_query($sql);
		}
Далее открываем наш скрипт-инсталлятор install_auto_prune_logs.php и находим

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

array('prune_mod_log_day', 0),
Вставляем после найденного

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

array('prune_critical_log_day', 0),
Открываем includes/acp/acp_board.php и находим

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

'prune_mod_log_day'		=> array('lang' => 'AUTO_PRUNE_MOD_LOG',	'validate' => 'int',	'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
Добавляем после найденного

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

'prune_critical_log_day'		=> array('lang' => 'AUTO_PRUNE_CRITICAL_LOG',	'validate' => 'int',	'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
Открываем language/ru/mods/info_acp_auto_prune_logs.php и находим

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

'AUTO_PRUNE_MOD_LOG'			=> 'Максимальный срок хранения лога Модераторов',
	'AUTO_PRUNE_MOD_LOG_EXPLAIN'	=> 'По истечению указанного срока все записи из лога Модераторов будут удалены',
И вставляем после наденного

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

'AUTO_PRUNE_CRITICAL_LOG'			=> 'Максимальный срок хранения лога Ошибок',
	'AUTO_PRUNE_CRITICAL_LOG_EXPLAIN'	=> 'По истечению указанного срока все записи из лога Ошибок будут удалены',
Все, теперь можно запускать скрипт-инсталлятор для завершения установки.
Собственно если заинтересовало, то скачиваем и ставим. Русификация уже внутри архива

Наверняка большая часть из вас не сможет выполнить правку с нахождением 'legend{%:1}'. На самом деле все просто. В файле includes/acp/acp_board.php находим такой кусок

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

case 'settings':
				$display_vars = array(
тут будет много кода
					)
				);
			break;
Среди прочего кода в этом куске будут записи - 'legend1', 'legend2', 'legend3' и так далее. Так как в этот кусок, после

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

'warnings_expire_days'	=> array('lang' => 'WARNINGS_EXPIRE',		'validate' => 'int',	'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
Мы вставляем код от мода, который содержит в себе 'legend3', а это значит что все последующие легенды нужно увеличить на +1. Для еще большего примера, тот же кусок

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

case 'settings':
				$display_vars = array(
					'title'	=> 'ACP_BOARD_SETTINGS',
					'vars'	=> array(
						'legend1'				=> 'ACP_BOARD_SETTINGS',
						тут код
						'legend2'				=> 'WARNINGS',
						тут код
						'legend3'					=> 'ACP_SUBMIT_CHANGES',
					)
				);
			break;
А после правок будет так

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

case 'settings':
				$display_vars = array(
					'title'	=> 'ACP_BOARD_SETTINGS',
					'vars'	=> array(
						'legend1'				=> 'ACP_BOARD_SETTINGS',
						тут код
						'legend2'				=> 'WARNINGS',
						тут код
						 : Auto Prune Logs --------------------------------------------------------
//-- add
						'legend3'				=> 'ACP_CAT_MAINTENANCE',
						'prune_admin_log_day'	=> array('lang' => 'AUTO_PRUNE_ADMIN_LOG',	'validate' => 'int',	'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
						'prune_mod_log_day'		=> array('lang' => 'AUTO_PRUNE_MOD_LOG',	'validate' => 'int',	'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
						'prune_log_day'			=> array('lang' => 'AUTO_PRUNE_LOG_DAYS',	'validate' => 'int',	'type' => 'text:3:4', 'explain' => false, 'append' => ' ' . $user->lang['DAYS']),
//-- end : Auto Prune Logs --------------------------------------------------------
						'legend4'					=> 'ACP_SUBMIT_CHANGES',
					)
				);
			break;
Увидели разницу, уловили логику ?? Если нет - бросьте дурное, не ставьте мод, по другому я не обьясню :za_da_va_la:
Не забываем запускать скрипт инсталлятор после правок, настройки мода доступны в админке на вкладке Общие - Настройки форума, успехов :bra_vo:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#1
Аватара пользователя
Олег В
Активно общаюсь
Активно общаюсь
Сообщения: 340
Стаж: 11 лет
Контактная информация:

Auto Prune Logs phpbb3

Сообщение Олег В »

DeaDRoMeO писал(а): Если нет - бросьте дурное, не ставьте мод, по другому я не обьясню :za_da_va_la:
:-0=)
#2
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет 1 месяц
Откуда: Витебск
Контактная информация:

Auto Prune Logs phpbb3

Сообщение DeaDRoMeO »

Так то так :st_ruskiy:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#3
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет 1 месяц
Откуда: Витебск
Контактная информация:

Auto Prune Logs phpbb3

Сообщение DeaDRoMeO »

Так-с, моя инструкция по добавлению других логов - правильна, сегодня очистились все логи, добавленные таким путем)))
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#4
Ответить