public function render($position, $params = array(), $content = null) { $renderer = $this->_doc->loadRenderer('module'); $buffer = ''; foreach (MModuleHelper::getModules($position) as $mod) { $buffer .= $renderer->render($mod, $params, $content); } return $buffer; }
public static function startWidgets($option) { $modules = MModuleHelper::getModules(); foreach ($modules as $module) { if (!is_object($module)) { continue; } if (!strpos($module->module, $option)) { continue; } $class_name = $module->module . '_widget'; if (!defined($class_name)) { define($class_name, $class_name); } eval('class ' . $class_name . ' extends MWidget {public $class_name = ' . $class_name . ';};'); add_action('widgets_init', create_function('', 'return register_widget(' . $class_name . ');')); } }
public function modulePreDisplay() { # check $option = MRequest::getCmd('option'); if (!empty($option)) { return; } # get all sidebar widgets $sidebars_widgets = wp_get_sidebars_widgets(); unset($sidebars_widgets['wp_inactive_widgets']); # get all miwi modules mimport('framework.application.module.helper'); $modules = MModuleHelper::getModules(); # load sidebar modules foreach ($modules as $module) { foreach ($sidebars_widgets as $_sidebars_widgets) { $is_in = preg_grep("/" . $module->id . "_widget./", $_sidebars_widgets); if (!empty($is_in)) { MModuleHelper::renderModule($module); $loaded[$module->id] = $module->id; break; } } } }
public function countModules($condition) { $operators = '(\\+|\\-|\\*|\\/|==|\\!=|\\<\\>|\\<|\\>|\\<=|\\>=|and|or|xor)'; $words = preg_split('# ' . $operators . ' #', $condition, null, PREG_SPLIT_DELIM_CAPTURE); for ($i = 0, $n = count($words); $i < $n; $i += 2) { // odd parts (modules) $name = strtolower($words[$i]); $words[$i] = isset(parent::$_buffer['modules'][$name]) && parent::$_buffer['modules'][$name] === false ? 0 : count(MModuleHelper::getModules($name)); } $str = 'return ' . implode(' ', $words) . ';'; return eval($str); }