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

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


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

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

 

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

 

Совместимость: 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: Всё гениальное - просто!

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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