Source for file modules.class.php
Documentation is available at modules.class.php
* @author PHPShop Software
* @var mixed массив системных настроек модулей
* @var string Относительное размещение модулей
* @var bool режим отладки
* @param string $ModDir Относительное размещение модулей
$this->objBase= $GLOBALS['SysValue']['base']['table_name2'];
while (($file = readdir($dh)) !== false) {
if($file != "." and $file != "..") {
//$fp = fopen($this->ModDir.$dir.$file.'/inc/config.ini', "r");
//$fread=fread($fp,$fstat['size']);
//$Content=strip_tags($fread);
$this->PHPShopOrm = &new PHPShopOrm($this->objBase);
$this->PHPShopOrm->debug=$this->debug;
$data=$this->PHPShopOrm->select(array('*'),false,false,array('limit'=>100));
* Обработка паметров конфига модулей
* @param string $path путь до конфигурации модуля
$ini= $this->ModDir. $path. "/inc/config.ini";
foreach($SysValue['autoload'] as $k=> $v) $this->ModValue['autoload'][$k]= $v;
foreach($SysValue['core'] as $k=> $v) $this->ModValue['core'][$k]= $v;
foreach($SysValue['class'] as $k=> $v) $GLOBALS['SysValue']['class'][$k]= $v;
foreach($SysValue['lang'] as $k=> $v) $GLOBALS['SysValue']['lang'][$k]= $v;
foreach($SysValue['system'] as $k=> $v) $this->ModValue['system'][$path][$k]= $v;
foreach($SysValue['hook'] as $k=> $v) $this->ModValue['hook'][][$k]= $v;
$this->ModValue['templates'][$path]= $SysValue['templates'];
$GLOBALS['SysValue']['templates'][$path]= $SysValue['templates'];
$this->ModValue['class'][$path]= $SysValue['class'];
$GLOBALS['SysValue']['system'][$path]= $this->ModValue['system'][$path];
* Загрузка параметра автозагрузки модулей
global $SysValue,$PHPShopSystem,$PHPShopNav;
foreach($this->ModValue['autoload'] as $k=> $v) {
else echo ("Ошибка загрузки модуля ". $k. "<br>Путь: ". $v);
* @param string $path путь размещения core файла модуля
if(!empty($this->ModValue['core'][$path])) {
require_once($this->ModValue['core'][$path]);
$classname = 'PHPShop'. ucfirst($SysValue['nav']['path']);
$PHPShopCore = new $classname ();
$PHPShopCore->loadActions();
} else echo PHPShopCore::setError($classname,"не определен класс phpshop/modules/*/core/$classname.core.php");
* Выдача конфигурационных настроек модулей
* @param string имя параметра формы раздел.наименование [раздел.подраздел.наименование]
if(count($param)> 2) return $this->ModValue[$param[0]][$param[1]][$param[2]];
return $this->ModValue[$param[0]][$param[1]];
* Выдача конфигурационных настроек модулей
* Парсер с заменой данных на лету
* $PHPShopModules->Parser(array('page'=>'market'),'catalog_page_1');
* @param array $preg массив заменяемых занчений
* @param string $TemplateName имя шаблона
function Parser($preg,$TemplateName) {
$file = newGetFile($GLOBALS['SysValue']['dir']['templates']. chr(47). $_SESSION['skin']. chr(47). $TemplateName);
* @param string $class_name имя класса
* @param string $function_name имя функции
* @param mixed $obj объект
* @param mixed $data данные
function setHookHandler($class_name,$function_name,$obj= false,$data= false) {
foreach($this->ModValue['hook'] as $hooks) {
else $hook= $hooks[$class_name];
if(!empty($addHandler[$function_name])) call_user_func($addHandler[$function_name],$obj,&$data);
// Обработка имен функций в нижний регистр
foreach($addHandler as $v=> $k) $handler[strtolower($v)] = $k;
if(!empty($handler[$function_name])) call_user_func($handler[$function_name],$obj,&$data);
else echo ("Ошибка размещения модуля ". $hook);
|