Файл: 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 */
?>