Вход Регистрация
Файл: lib/informer.control.lib.php
Строк: 675
<?php
 
/** Модуль обработки и отображения информеров
 * @author [Eugene]
 * @copyright 2011
 * @url http://forwebm.net
 */  
 //-------------------------------------------------------
 
if (!@defined('ISENGINEDSW')) exit('Can`t access to this file data!');
 
//-------------------------------------------------------
 /** шаблон элементов */
 
abstract class w_informer_gen_obj extends w_defext {        
  var 
$control null;    
  
  function 
__construct(w_Control_obj $control) {    
   
parent::__construct();
   
$this->control $control;  
  }
//__construct    
  
  /** экранирование метода вывода текста по ресурсам */
  
function GetText($name$list=false$def=false) { return $this->control->GetText($name$list$def); }
  
  
/** возвращает параметр из массива $this->result
  *   В качестве пути по массиву указывается ключ с разделителем,
  *   пример:
  *   GetResult('item')
  *   или
  *   GetResult('item.subitem')
  *   или 
  *   GetResult('item.subitem.subitem')
  *   и т.д. В качестве вложения используется точка в имени ключа результата        
  */
  
function GetResult($name=''$subname=''$data=false) {
   if (!isset(
$this->result)) { return false; }    
   
$data = ($data !== false) ? $data $this->result;    
   if (!
$name) { return $data; }
   if (
$subname) { $name .= '.'.$subname; }    
   
$s   $name;
   
$s1  $this->StrFetch($s'.');
   
$val false;
   while (
$s || $s1) {
       if ((
$val === false && !isset($data[$s1])) || ($val !== false && !isset($val[$s1]))) { return false; }
    
$val = ($val === false) ? $data[$s1] : $val[$s1];    
    
$s1  $this->StrFetch($s'.');    
   }
   return 
$val
  }
//GetResult    
      
 
}//w_informer_gen_obj
 //-------------------------------------------------------
 /** объект информеров */
 
class w_informer_obj extends w_informer_gen_obj {
  
/* элементы значений предварительного просмотра информеров */
  
const INETSPEED_DW_KBIT 5420;
  const 
INETSPEED_UP_KBIT 6350;
  const 
INETSPEED_DW_KBYT 350.6;
  const 
INETSPEED_UP_KBYT 640.3;
  const 
PRCY_CY 100;
  const 
PRCY_PR 3;
  
/** каталог временных изображений информеров */
  
private $images_path W_DEFAULTINFORMERSPATH;
  
/** обновлять данные каждые минут */
  
private $update_values_every_min 4320//4320 = 3 дня
  /** обновлять информер, если такой уже существует */
  
private $update_if_exists true;    
  protected 
   
$result,
   
$informType;
   
  function 
__construct(w_Control_obj $control$informerType$update_values_every_min=null$update_if_exists=true) {
   
parent::__construct($control);
   
$this->informType $informerType;
   
$this->result false;
   
$this->images_path .= '/temp';
   if (!@
file_exists($this->images_path)) { @mkdir($this->images_path0777); }
   if (
$update_values_every_min !== null) { $this->update_values_every_min $update_values_every_min; }
   
$this->update_if_exists $update_if_exists;        
  }
//__construct
  
  /** вывод изображения о несуществующем параметре */
  
static function ShowNoExistsImage() {
   @
header("Content-type: image/png");
   @
readfile(W_SITEDIR.'/img/items/noimage.png');
   return 
true;    
  }
//ShowNoExistsImage
  
  /** получение данных указанного информера */
  
function GetInformerSourceInfo($informerid$onlyActive=true) {
   if (!
$informerid $this->CorrectSymplyString($informerid)) { return false; }
   return 
$this->control->db->GetLineArray($this->control->db->mPost(
    
"select * from {$this->control->tables_list['definform']} where iditem='$informerid'".
    ((
$onlyActive) ? " and imageuse='1'" "")." limit 1"
   
));       
  }
//GetInformerSourceInfo
  
  /** получение данных о текущей записи активного информера
  *   Добавляет поле `minlast` - int - количество минут, которое прошло с
  *   момента последнего запроса информера
  *   Добавляется поле `updatelast` - int - количество минут с последнего обновления данных    
  */
  
function GetActiveInformerInfo($activeID) {
   if (!
$activeID $this->CorrectSymplyString($activeID)) { return false; }   
   return 
$this->control->db->GetLineArray($this->control->db->mPost(
    
"select *, TIME_TO_SEC(TIMEDIFF(NOW(), `datelast`)) / 60 AS `minlast`, ".
    
"TIME_TO_SEC(TIMEDIFF(NOW(), `dataupdate`)) / 60 AS `updatelast` from ".
    
$this->control->tables_list['infactive']." where informtype='{$this->informType}'".
    
" and iditem='$activeID' limit 1"
   
));       
  }
//GetActiveInformerInfo 
  
  /** получение списка информеров для предварительного просмотра 
  * @return false or array(
  *  []array(
  *   'section'   => array() - полная информация о секции
  *   'informers' => array(
  *    [номер_столбца] = array(
  *      [] - array() - полная информация о информере ( + добавляется параметр 
  *           usecolorselecter - bool - true если можно менять цвет, false - если нет )
  * 
  *     )
  *    'trcount' => int - колочество строк
  *    'tdcount' => int - кол-во столбцов
  *    'usecolorchangeids' => array() - список идентификаторов, которые могут сменять цвет    
  *   )  
  *  )    
  * )  
  */
  
function GetInformersList($onliActive=true) {    
   
//list sections
   
if (!$sections $this->control->db->GetTable(
    
$this->control->tables_list['informsec'], "informtype='{$this->informType}' order by datecreat" 
   
)) { return false; }
   
$result = array();
   
//req gr lib
   
require_once W_LIBPATH.'/graph.lib.php';
   
//ok fetch
   
while ($section $this->control->db->GetLineArray($sections)) {
    
//get all informers
    
$informers $this->control->db->GetTable($this->control->tables_list['definform'],
    
"sectionid='{$section['iditem']}' and informtype='{$this->informType}'".(($onliActive) ? " and imageuse='1'" "")
    );
    if (!
$informers) { continue; }
    
$items = array();    
    
//fetch informers
    
if ($section['colcount']) {            
     
$incer 0$tr_count 1;    $usecolorchangeids = array();    
     while (
$informer $this->control->db->GetLineArray($informers)) {    
      if (
$incer $section['colcount'] - 1) { $incer 0$tr_count++; } 
      if (!isset(
$items[$incer])) { $items[$incer] = array(); }    
      
//возможность смены цвета
      
$informer['usecolorselecter'] = w_informer_graph_obj::GetColorParameters('xREPcolor'$informer['options']);      
      if (
$informer['usecolorselecter']) { $usecolorchangeids[] = $informer['iditem']; }
      
//add inf source
      
$items[$incer][] = $informer;
      
$incer++;             
     }          
     if (
$items) { 
      
$result[] = array(
       
'section'           => $section,          //секция 
       
'informers'         => $items,            //список информеров по столбцам
       
'trcount'           => $tr_count,         //всего сток (от 1)
       
'tdcount'           => @count($items),    //всего столбцов (от 1)
       
'usecolorchangeids' => $usecolorchangeids //список selecters
      
); 
     }
    }         
   }
   return 
$result;       
  }
//GetInformersList
  
  /** получение изображения информера для предварительного просмотра */
  
function GetInformerImage($imageid$imageoptions=false$onlyactive=true$REPLcolor=false$rightstrparam=false) {
   
$image_info $this->GetInformerSourceInfo($imageid$onlyactive);   
   
$filename = (!$image_info) ? false W_DEFAULTINFORMERSPATH.'/'.$image_info['dwname'];
   
//нет изображения
   
if (!$image_info || !@file_exists($filename)) { return self::ShowNoExistsImage(); }
   
//options
   
if ($imageoptions === false) { $imageoptions $image_info['options']; }
   
//identifies
   
$idents false;
   switch (
$image_info['informtype']) {
       
//Информеры скорости интернета
    
case '1':
     if (
$rightstrparam) { $data_params $this->GetSpeedListFromStr($rightstrparam); }
     
$idents = (!$rightstrparam) ? array(
      
'1' => ss_HTMLPageInfo::GetSizeStrX(self::INETSPEED_DW_KBIT 1024'it/s'),   //x1 - download kbit 
      
'2' => ss_HTMLPageInfo::GetSizeStrX(self::INETSPEED_UP_KBIT 1024'it/s'),   //x2 - upload kbit
      
'3' => ss_HTMLPageInfo::GetSizeStrX(self::INETSPEED_DW_KBYT 1024'yte/s'),  //x3 - download kbyte
      
'4' => ss_HTMLPageInfo::GetSizeStrX(self::INETSPEED_UP_KBYT 1024'yte/s')   //x4 - upload kbyte 
     
) : array(
      
'1' => ss_HTMLPageInfo::GetSizeStrX($data_params['dwkbit'] * 1024'it/s'),
      
'2' => ss_HTMLPageInfo::GetSizeStrX($data_params['upkbit'] * 1024'it/s'),
      
'3' => ss_HTMLPageInfo::GetSizeStrX($data_params['dwkbyte'] * 1024'yte/s'),
      
'4' => ss_HTMLPageInfo::GetSizeStrX($data_params['upkbyte'] * 1024'yte/s')     
     );
     break;
    
//Информеры IP адреса
    
case '2':
     
$idents = array(
      
'1' => $this->GetCurrentIP() //x1 - ip
     
);
     break;
    
//Информеры ТиЦ PR
    
case '3':
     
$idents = array(
      
'1' => self::PRCY_CY//x1 - cy
      
'2' => self::PRCY_PR  //x2 - pr
     
);
     break; 
    
//updates informer
    
case '4'$idents $this->control->GetEngineUpdatesInfoDateOnly(); break; 
    
/* */ 
    
default: return false;    
   }  
   
$idents['URL'] = W_HOSTMYSITE;
   if (
$REPLcolor) { $idents['REPLcolor'] = $REPLcolor; }
   
//require graph lib
   
require_once W_LIBPATH.'/graph.lib.php'
   
//ok action
   
$image w_informer_graph_obj::CreateObj($this->control$idents$image_info$imageoptions$filename);
   if (!
$image->ProcessPaint()) { return self::ShowNoExistsImage(); };
   
$image->OutImage();
   
$image->DestroyImage();
   return 
true;    
  }
//GetInformerImage
  
  /** отрисовка данных на изображении
  * @imageid int идентификатор информера
  * @data - строка с параметрами отрисовки
  *   
  * @return false or array(
  *  'image'         => изображение w_informer_graph_obj
  *  'informerinfo'  => данные информера
  * )
  */
  
protected function DoUpdateImage($imageid$data$onlyactive=true) {
   if (!
$data) { return false; }   
   
//данные информера
   
$image_info $this->GetInformerSourceInfo($imageid$onlyactive);   
   
$filename = (!$image_info) ? false W_DEFAULTINFORMERSPATH.'/'.$image_info['dwname'];
   
//нет изображения
   
if (!$image_info || !@file_exists($filename)) { return false; }
   
//options
   
$idents_list false;
   switch (
$this->informType) {
    
//скорость интернета
    
case '1'$idents_list = array('dwkbit''upkbit''dwkbyte''upkbyte');  break;
    
//ip informer
    
case '2'$idents_list = array('ip');  break;
    
//pr cy
    
case '3'$idents_list = array('cy''pr');  break;
    
//updates
    
case '4'$idents_list = array('cy''yasearch''yaca''pr');  break;
    
//unknow type
    
default: return false;       
   }
   if (!
$idents_list) { return false; }
   
$values = array();
   
$incer 1;
   foreach (
$idents_list as $name) {
    
$values["$incer"] = $this->control->ReadOption($name$data);
    if (
$values["$incer"] === false) { $values["$incer"] = '?'; } else 
    
//correct speed values
    
{
     if (
$this->informType == '1' && @is_numeric($values["$incer"])) {
      
$suff 'it/s';    
      switch (
$name) { case 'dwkbyte':  case 'upkbyte'$suff 'yte/s'; break; }
      
$values["$incer"] = ss_HTMLPageInfo::GetSizeStrX($values["$incer"] * 1024$suff);          
     }         
    }
    
$incer++;    
   }
   
$values['URL'] = W_HOSTMYSITE;
   
//replace color
   
$repl $this->control->ReadOption('REPLcolor'$data);   
   if (
$repl) { $values['REPLcolor'] = $repl; }
   
//require graph lib
   
require_once W_LIBPATH.'/graph.lib.php'
   
//ok action
   
$image w_informer_graph_obj::CreateObj($this->control$values$image_info$image_info['options'], $filename);
   if (!
$image->ProcessPaint()) { return false; };
   
$data = array(
    
'informerinfo'  => $image_info,
    
'image'         => $image
   
); 
   return 
$data;       
  }
//DoUpdateImage  
  
  /** получение данных скорости интернета из строки параметра */
  
protected function GetSpeedListFromStr($stringIdent$repl='-') {      
   
$str $stringIdent;
   
$stringIdent $this->StrFetch($str'.');
   if (
$repl) { $stringIdent = @str_replace($repl'.'$stringIdent); }      
   
$str $stringIdent;
   
//download kbit speed
   
$dw $this->StrFetch($str'_');
   if (
$dw == '' || !@is_numeric($dw)) { $dw '0'; }
   
//upload speed
   
$up $str//$this->StrFetch($str, '_');
   
if ($up == '' || !@is_numeric($up)) { $up '0'; }
   
//download kbyte
   
$dwKBYTE = (!$dw) ? '0' : @round($dw 82);
   
//upload kbyte
   
$upKBYTE = (!$up) ? '0' : @round($up 82);
   return array(
    
'dwkbit' => $dw'dwkbyte' => $dwKBYTE'upkbit' => $up'upkbyte' => $upKBYTE
   
);    
  }
//GetSpeedListFromStr
  
  /** получение данных информера
  * @return string or false
  * возвращает строку в виде параметров данных  
  */
  
protected function GetInformerValues($stringIdent$REPLcolor=false) {
   
$result false;       
   switch (
$this->informType) {
       
//скорость интернета
    
case '1':
     
$result '';
     
//формат скорость в kбитах download_скорость uplod.png 5485_6532.png
     
$str $stringIdent;
     
$stringIdent $this->StrFetch($str'.');
     
$stringIdent = @str_replace('-''.'$stringIdent);
     
$str $stringIdent;
     
//download kbit speed
     
$dw $this->StrFetch($str'_');
     if (
$dw == '' || !@is_numeric($dw)) { $dw '?'; }
     
$result $this->control->WriteOption('dwkbit'$dw$result);
     
//upload speed
     
$up $str//$this->StrFetch($str, '_');
     
if ($up == '' || !@is_numeric($up)) { $up '?'; }
     
$result $this->control->WriteOption('upkbit'$up$result);
     
//download kbyte
     
$dwKBYTE = (!$dw || $dw == '?') ? '?' : @round($dw 82);
     
$result $this->control->WriteOption('dwkbyte'$dwKBYTE$result);
     
//upload kbyte
     
$upKBYTE = (!$up || $up == '?') ? '?' : @round($up 82);
     
$result $this->control->WriteOption('upkbyte'$upKBYTE$result); 
    break;
    
//ip адрес
    
case '2'
     
$result '';
     
$stringIdent = (@preg_match('/(d+).(d+).(d+).(d+)/'$stringIdent)) ? $stringIdent '?.?.?.?';     
     
$result $this->control->WriteOption('ip'$stringIdent$result); 
    break;
    
//пр тиц
    
case '3':
     
$result '';
     
$http = new ss_HTTP_obj();
     
$pr '?';
     
$cy '?';
     
//получить новые значения
     
if ($http->SetURL($stringIdent)) {
      
$pr = ($http->RunPluginEx(SS_GOOGLEPR$error$value)) ? $value['value'] : '?';
      
$cy = ($http->RunPluginEx(SS_YANDEXCY$error$value)) ? $value['value'] : '?';          
     }
     unset(
$http);
     
$result $this->control->WriteOption('cy'$cy$result);
     
$result $this->control->WriteOption('pr'$pr$result);     
    break;
    
//updates
    
case '4':
     
$result '';
     
$data $this->control->GetEngineUpdatesInfoDateOnly();    
     
$list = array(
      
'cy'       => $data['1'], 
      
'yasearch' => $data['2'],
      
'yaca'     => $data['3'],
      
'pr'       => $data['4']
     );
     foreach (
$list as $name => $value) {
      
$data $this->control->WriteOption($name$value$result);
      if (
$data !== false) { $result $data; }        
     }
    break;    
   }
   if (
$REPLcolor) { $result $this->control->WriteOption('REPLcolor'$REPLcolor$result); }
   return 
$result;       
  }
//GetInformerValues
  
  /** получение идентификатора активного информера по идентификатору
  * Добавляет поле `minlast` - int - количество минут, которое прошло с
  * момента последнего запроса информера
  * Добавляет поле `updatelast` - int - кол-во минут с последнего обновления данных    
  */
  
protected function GetActiveInformerRecord($identname) {
   return 
$this->control->db->GetLineArray($this->control->db->mPost(
    
"select *, TIME_TO_SEC(TIMEDIFF(NOW(), `datelast`)) / 60 AS `minlast`, ".
    
"TIME_TO_SEC(TIMEDIFF(NOW(), `dataupdate`)) / 60 AS `updatelast` from ".
    
$this->control->tables_list['infactive']." where informtype='{$this->informType}'".
    
" and Lower(identuse)=Lower('$identname') limit 1"
   
));    
  }
//GetActiveInformerRecord
  
  /** создание нового информера
  * @identname - string (идентификатор информера, форматы:
  *  - для информера ip: содержать должен ip адрес
  *  - для скорости интернета: строку формата: xx_xx.png ,где: xx - скорость загружки в Kbits
  *    xx (второй) - скорость Upload вKbits
  *  - для информера пр, тиц - хост проверяемого сайта 
  * )
  * @informerID - int - идентификатор информера
  * @emailinform - string - e-mail, на который уведомлять о скором удалении информера запростой  
  *   
  * @return false or array() - информация о активном информере  
  */
  
function CreateNewInformerRecord($identname$informerID$emailinform=''$REPLcolor=false) {
   if (!
$identname $this->CorrectSymplyString($identname)) { return false; }    
   
//повтор, обновить
   
if ($this->update_if_exists && $record $this->GetActiveInformerRecord($identname)) { 
       return 
$this->UpdateInformerRecord($record$informerID$REPLcolor); 
   }    
   
//создать новый
   
if (!$values $this->GetInformerValues($identname$REPLcolor)) { return false; }   
   if (!
$image $this->DoUpdateImage($informerID$values)) { return false; }
   
//create new params
   
$result_info = array(
    
'datestart'  => $this->GetThisDateTime(),            
    
'datelast'   => $this->GetThisDateTime(),
    
'dataupdate' => $this->GetThisDateTime(),           
    
'regcount'   => 1,        
    
'identuse'   => $identname,           
    
'sdata'      => $this->CorrectSymplyString($values),                   
    
'infimage'   => $informerID,                    
    
'informtype' => $this->informType,                    
    
'informlink' => $this->CorrectSymplyString(@getenv("HTTP_REFERER")),                   
    
'infoemail'  => $emailinform
    
'imagefile'  => $this->GenerateNewImageTempFilename($image['informerinfo']['imagetype'])             
   );
   
//create image file
   
if (!$image['image']->OutImage(false$this->images_path.'/'.$result_info['imagefile'])) { return false; }
   
//create record
   
if (!$this->control->db->INSERTAction('infactive'$result_info)) { 
    
//remove new file
    
if (@file_exists($this->images_path.'/'.$result_info['imagefile'])) { 
     @
unlink($this->images_path.'/'.$result_info['imagefile']); 
    }
    return 
false;        
   }
   
//ok get id
   
$result_info['iditem'] = $this->control->db->InseredIndex();
   
//ok
   
return $result_info;       
  }
//CreateNewInformerRecord
  
  /** генерация нового имени */
  
protected function GenerateNewImageTempFilename($type$isfirst=true) {
   
$res md5("_".$this->GetThisDateTime()."_temd_".
   
$this->generate_password(5)).(($this->substr($type01) == '.') ? "$type".$type");
   if (!
$isfirst) { return $res; }
   while (@
file_exists($this->images_path.'/'.$res)) { $res $this->GenerateNewImageTempFilename($typefalse); }
   return 
$res;       
  }
//GenerateNewImageTempFilename
  
  /** обновление информера */
  
function UpdateInformerRecord($recordInfo$informerID=false$REPLcolor=false) {
   if (!
$values $this->GetInformerValues($recordInfo['identuse'], $REPLcolor)) { return $recordInfo; }
   
//изображение
   
if (!$image $this->DoUpdateImage((($informerID) ? $informerID $recordInfo['infimage']), $values)) { 
       return 
$recordInfo
   }
   
//параметры
   
$temp_recordInfo $recordInfo;
   
$recordInfo['datelast']   = $this->GetThisDateTime();
   
$recordInfo['dataupdate'] = $this->GetThisDateTime();
   
$recordInfo['regcount']++;
   
$recordInfo['sdata'] = $this->CorrectSymplyString($values);
   
$recordInfo['informlink'] = $this->CorrectSymplyString(@getenv("HTTP_REFERER"));
   if (
$informerID) { $recordInfo['infimage'] = $informerID; }   
   
$last_file_name $recordInfo['imagefile'];
   
//новое имя файла
   
$recordInfo['imagefile'] = $this->GenerateNewImageTempFilename($image['informerinfo']['imagetype']); 
   
//create a new image file
   
if (!$image['image']->OutImage(false$this->images_path.'/'.$recordInfo['imagefile'])) {
    return 
$temp_recordInfo;
   }
   
//update record info
   
if (!$this->control->db->UPDATEAction('infactive', array(
    
'datelast'   => $recordInfo['datelast'],
    
'dataupdate' => $recordInfo['dataupdate'],
    
'regcount'   => $recordInfo['regcount'],
    
'sdata'      => $recordInfo['sdata'],
    
'informlink' => $recordInfo['informlink'],
    
'imagefile'  => $recordInfo['imagefile'],
    
'infimage'   => $recordInfo['infimage']    
   ), 
"iditem='{$recordInfo['iditem']}'""1")) { 
       
//delete temp no active file
       
if (@file_exists($this->images_path.'/'.$recordInfo['imagefile'])) { 
     @
unlink($this->images_path.'/'.$recordInfo['imagefile']); 
    }      
    
//restore last info 
    
return $temp_recordInfo;    
   }
   
//удалить старый файл
   
if (@file_exists($this->images_path.'/'.$last_file_name)) { @unlink($this->images_path.'/'.$last_file_name); }
   
//free temp image   
   
$image['image']->DestroyImage();
   return 
$recordInfo;       
  }
//UpdateInformerRecord
  
  /** получение информера */
  
function GetRealInformerImage($id) {
   if (!
$record $this->GetActiveInformerInfo($id)) { return self::ShowNoExistsImage(); }
   
//проверка обновления
   
if ($this->update_values_every_min && $record['updatelast'] >= $this->update_values_every_min) {
    
$record $this->UpdateInformerRecord($recordfalse$this->control->ReadOption('REPLcolor'$record['sdata']));
   }
   
//get an image
   
if (!@file_exists($this->images_path.'/'.$record['imagefile'])) { return self::ShowNoExistsImage(); }
   
$type $record['imagefile'];
   
$s $this->StrFetch($type'.');
   if (!
$type) { $type '*'; }
   @
header("Content-type: image/$type");
   @
readfile($this->images_path.'/'.$record['imagefile']);
   
//обновить статистику
   
$this->control->db->UPDATEAction('infactive'
    array(
    
'datelast'   => $this->GetThisDateTime(),
    
'regcount'   => $record['regcount'] + 1,
    
'informlink' => $this->CorrectSymplyString(@getenv("HTTP_REFERER"))    
    ), 
"iditem='{$record['iditem']}'""1"
   
);   
   return 
true;       
  }
//GetRealInformerImage
  
  /** удаление устаревших записей информеров
  * @control - объект w_Control_obj
  * @informerType - int тип информера
  * @lastminute - int количество минут, если запрос информера позже чем $lastminute назад - 
  *               удалить запись информера, если 0 - не удалять
  * @checkeverymin - int пытаться удалить устаревшие записи каждые $checkeverymin минут, 
  *               если 0 - ничего не будет    
  */
  
static function DeleteOldRecords($control$informerType$lastminute$checkeverymin) {
   if (!
$lastminute || !$control->CheckForCanActionOperation($informerType$checkeverymin)) { return false; }
   
$records $control->db->mPost(
    
"select iditem, imagefile from {$control->tables_list['infactive']} where informtype='$informerType' and ".
    
"TIME_TO_SEC(TIMEDIFF(NOW(), `datelast`)) / 60 >= $lastminute"
   
);
   if (!
$records) { return false; }   
   while (
$row $control->db->GetLineArray($records)) {       
    
$filename W_DEFAULTINFORMERSPATH.'/temp/'.$row['imagefile'];
    if (
$row['imagefile'] && @file_exists($filename)) { @unlink($filename); }
    
$control->db->Delete($control->tables_list['infactive'], "iditem='{$row['iditem']}'"'1');
   }   
   return 
true;       
  }
//DeleteOldRecords
    
 
}//w_informer_obj
 //-------------------------------------------------------
 /* Copyright (с) 2011 forwebm.net */      
?>
Онлайн: 1
Реклама