Перейти к контенту

Новые Файлы с последнего посещения.


Рекомендуемые сообщения

Собственно пришла в голову идея - сначало было лень делать, а ща вдруг взял и сделал, т.к. я совершенно не уверен в работоспособсности - тестим.

 

Суть: Найти файлы обновлённые/появившиеся с последнего посещения и сообщить об этом админу.

 

Совместимость: 2.0.х

 

Вполняем такие MySQL запросы:

CREATE TABLE `ibf_security` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` TEXT NOT NULL ,
`val` LONGTEXT NOT NULL ,
PRIMARY KEY ( `id` ) 
) TYPE = MYISAM;

insert into `ibf_security` values('','last_file_list','');

insert into `ibf_security` values('','last_file_list_time','');

 

Открываем файл sources/admin/ad_index.php

Около 322 строки находим:

		//-----------------------------------------
	// Quick clicks + Upgrade History
	//-----------------------------------------
	$ibforums->html .= "<table cellpadding='0' cellspacing='0' border='0' width='100%'>
						<tr>
						 <td width='49%' valign='top'>";

	$ibforums->html .= $ibforums->adskin->start_form();

	$ibforums->adskin->td_header[] = array( "{none}"  , "30%" );
	$ibforums->adskin->td_header[] = array( "{none}"  , "45%" );
	$ibforums->adskin->td_header[] = array( "{none}"  , "25%" );

После комментариев (которые включены в блок который я указал для поиска) дописываем:

$ibforums->adskin->td_header[] = array( "Имя файл и путь"		   , "75%" );
	$ibforums->adskin->td_header[] = array( "Дата Модификации"	 , "25%" );
	$ibforums->html .= $ibforums->adskin->start_table( "Новые/Изменённые файлы с Вашего последнего посещения." );
	$DB->query("select val from ibf_security where name='last_file_list';");
	$list = $DB->fetch_row();
	$list = stripslashes($list['val']);
	$DB->query("select val from ibf_security where name='last_file_list_time';");
	$time = $DB->fetch_row();
	$time = $time['val'];
	$this->showDir(getcwd());
	$list = explode(";",$list);
	$results = explode(";",$this->showDirResult);
	for($i=0;$i<count($results);$i++){
		if(!in_array($results[$i],$list) || filemtime(getcwd()."/".$results[$i])>$time){
			$ibforums->html .= $ibforums->adskin->add_td_row( array($results[$i],date("Y-m-d H:i s",filemtime(getcwd()."/".$results[$i]))) );
		}
	}
	$DB->query("update ibf_security set val='".addslashes($this->showDirResult)."' where name='last_file_list'");
	$DB->query("update ibf_security set val='".time()."' where name='last_file_list_time'");
	$ibforums->html .= $ibforums->adskin->end_table();

В этом же файле ищем:

}
?>

Выше добавляем:

function showDir($dir){
$h = OpenDir($dir);
while($el = ReadDir($h))
	if($el!="." && $el!="..")
		if(Is_Dir("$dir/$el"))
			$this->showDir("$dir/$el");
		else
			$this->showDirResult.=substr(str_replace(getcwd(),"",$dir)."/",1)."$el;";
}

 

Вот, вроде так, тестим. (Вся информация показывается на главной странице админцентра, в первый раз будут показаны все файлы).

 

PS: Всё гениальное - просто!

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.