Вход Регистрация
Файл: lib/preloadoptions.lib.php
Строк: 178
<?php
 
/** инициализация настроек сайта
 * @author [Eugene]
 * @copyright 2011
 * @url http://forwebm.net
 */
 
if (!@defined('W_ENGINED_L')) exit('Can`t access to this file data!');
//-------------------------------------------------------------------------------------
 
class pr_options_preload extends w_defext {
  
/* идентификаторы надстроек, типы */
  
public static $gensuboptions = array(
   
'string''boolean''integer''int''double''float''stringex'   
  
);    
  protected
   
$control;
   
  function 
__construct(w_Control_obj $control) {
   
parent::__construct();
   
$this->control $control;    
  }
//__construct
  
  
protected function GetOption($optid) {
   return 
$this->control->db->GetLineArray($this->control->db->mPost(
    
"select optsource from {$this->control->tables_list['opttbllst']} where optident='$optid' limit 1"
   
));    
  }
//GetOption
  
  
protected function ReadParam($name$source, &$rvalue) {
   
$source = (@is_array($source)) ? $source['optsource'] : $source;
   if (
$source === false) { $source ''; }
   
$rvalue false;
   
$dvalue $this->control->ReadOption($this->strtoupper($name), $source);
   if (
$dvalue === false) { return false; }
   
$dvalue = @unserialize(@stripslashes($dvalue));
   
$rvalue = (@is_string($dvalue)) ? @stripslashes($dvalue) : $dvalue;
   return 
true;      
  }
//ReadParam
  
  /** загрузка надстроек указанного инструмента */
  
function PreloadToolOption($toolident) {
   global 
$_TOOLSNOLIMITACTIVATIONDATAINFO;
   if (!
$toolident || !isset($_TOOLSNOLIMITACTIVATIONDATAINFO[$toolident]) || 
       !
$_TOOLSNOLIMITACTIVATIONDATAINFO[$toolident]) { return false; }   
   if (
$result $this->GetOption($this->strtolower('toolopt_'.$toolident))) {
    
//ok load data 
    
if ($result['optsource']) {
     foreach (
$_TOOLSNOLIMITACTIVATIONDATAINFO[$toolident] as $name => &$value) {
      if (
$this->ReadParam($toolident.'_'.$name$result$rvalue)) { $value $rvalue; }             
     }            
    }    
    return 
true;      
   }
   return 
false;       
  }
//PreloadToolOption
  
  /** загрузка всех параметров всех инструментов */
  
function PreloadOptionsOfAllTools() {
   global 
$_TOOLSNOLIMITACTIVATIONDATAINFO;
   foreach (
$_TOOLSNOLIMITACTIVATIONDATAINFO as $name => $item) {
    
$this->PreloadToolOption($name);
   }
   return 
true;       
  }
//PreloadOptionsOfAllTools
  
  /** автовыбор загрузки инструмента, инструментов */
  
function PreloadToolOptionAuto() {
   global 
$_TOOLSNOLIMITACTIVATIONDATAINFO;
   if (
$_GET['section'] != 'xmlapiproject' && $this->control->GetActiveSkin() == 'GENERAL') { 
    return 
$this->PreloadOptionsOfAllTools(); 
   }
   
/* use, only if need to use tool options */    
   
switch ($_GET['section']) {
    case 
'toolsaction'
     
$ident = ($_GET['t1'] && isset($_TOOLSNOLIMITACTIVATIONDATAINFO[$_GET['t1']])) ? 
     
$this->CorrectSymplyString($_GET['t1']) : false;
     break;
    case 
'accountff':
     
//specify sections for load
     
switch ($_GET['hrzd']) {
      case 
'admtoolsoptions':
      case 
'admtoolsimages': break;
      
      default: return 
false;        
     } 
     
//get
     
$ident = ($_GET['toolid'] && isset($_TOOLSNOLIMITACTIVATIONDATAINFO[$_GET['toolid']])) ? 
     
$this->CorrectSymplyString($_GET['toolid']) : false;     
     break;
    default: return 
false;     
   }
   
//select type
   
return ($ident) ? $this->PreloadToolOption($ident) : $this->PreloadOptionsOfAllTools();       
  }
//PreloadToolOptionAuto
  
  /** загрузка надстроек сайта */
  
function PreloadGeneralSiteSubOptions() {
   global 
$_GLOBALDINAMICCONSTOPTIONS;
   if (!
W_LOADSUBOPTIONSIFAJAX && @defined('W_IS_AJAX_MODE_RUN')) { return false; }
   if (!
$result $this->GetOption('general_sub_options')) { return false; } 
   foreach (
$_GLOBALDINAMICCONSTOPTIONS as $name => $item) {
    if (!
$name || !$item['type'] || !@in_array($item['type'], self::$gensuboptions)) { continue; }        
       if (@
defined($name) || !$this->ReadParam($name$result$rvalue)) { continue; }
       @
define($name$rvalue);       
   }    
   return 
true;       
  }
//PreloadGeneralSiteSubOptions
  
  
static function QuickPreloadGeneralSiteSubOptions($CONTROL_OBJ) {
   
$item = new pr_options_preload($CONTROL_OBJ);
   
$res  $item->PreloadGeneralSiteSubOptions();
   unset(
$item);
   return 
$res;       
  }
//QuickPreloadGeneralSiteSubOptions
  
  
static function QuickPreloadToolOptions($toolid$CONTROL_OBJ) {
   
$item = new pr_options_preload($CONTROL_OBJ);
   
$res  $item->PreloadToolOption($toolid);
   unset(
$item);
   return 
$res;       
  }
//QuickPreloadToolOptions
  
  /** удаление надстройки */
  
static function DeleteOption($ident$CONTROL_OBJ) {
   if (!
$ident $CONTROL_OBJ->strtolower($CONTROL_OBJ->CorrectSymplyString($ident))) { return false; }
   return 
$CONTROL_OBJ->db->Delete($CONTROL_OBJ->tables_list['opttbllst'], "optident='$ident'""1");       
  }
//DeleteOption 
           
 
}//pr_options_preload
 //-------------------------------------------------------------------------------------
 
if (!@defined('SIMPLY_CONNECT_PRELOAD_OPTIONS')) {
    
  
$preload_option_object = new pr_options_preload($CONTROL_OBJ);
  
/** загрузка надстроек сайта */
  
$preload_option_object->PreloadGeneralSiteSubOptions(); 
  
/** загрузка настроек инструментов */
  
$preload_option_object->PreloadToolOptionAuto(); 
 
  unset(
$preload_option_object); 
  
//------------------------------------------------------------------------------------- 
  /** динамические параметры, подтверждение */
  
require_once W_LIBPATH.'/confi/dinamic.conf.php';
  
/** preload skins description */
  
foreach ($_GLOBAL_SKIN_LIST as $namesk => &$descrsk) {
   if (
$descrsk) { $descrsk $CONTROL_OBJ->GetText($descrsk); }    
  }
  
 }
 
//-------------------------------------------------------
 /* Copyright (с) 2011 forwebm.net */
?>
Онлайн: 1
Реклама