Example #1
0
 /**
 	Load application modules
 		@private
 	**/
 private function _loadModules()
 {
     // extract module tag
     preg_match_all('|<site:modules\\[(.*?)\\]\\/>|', self::$global['RESPONSE'], $matches);
     // load module files
     if (isset($matches[1]) && count($matches[1]) > 0) {
         foreach ($matches[1] as $mtxt) {
             $html = '';
             $modules = explode('|', $mtxt);
             if (count($modules) > 0) {
                 foreach ($modules as $module) {
                     // get params
                     preg_match('/\\{(.*)\\}/', $module, $mparams);
                     if (!empty($mparams)) {
                         $module = str_replace($mparams[0], '', $module);
                         $mparams = json_decode($mparams[0]);
                     }
                     // get from storage
                     $list = ModuleHelper::_('position', $module);
                     if ($list) {
                         foreach ($list as $module_item) {
                             $is_custom = $module_item->name == 'custom';
                             if (!$is_custom) {
                                 $module_item->params = new Parameter($module_item->params);
                             }
                             $html .= ModuleHelper::render($module_item, $is_custom);
                         }
                     } else {
                         // file-based
                         $module_item = array('name' => $module, 'params' => $mparams);
                         $html .= ModuleHelper::render((object) $module_item, false);
                     }
                 }
             }
             // display
             self::$global['RESPONSE'] = str_replace('<site:modules[' . $mtxt . ']/>', $html, self::$global['RESPONSE']);
         }
         // foreach
     }
 }