public static function scanBlocks() { $modules = invokable_modules("block_info"); $real_blocks = array(); foreach ($modules as $module) { $tmp = method_invoke($module, "block_info"); foreach ($tmp as $k => $v) { $tmp[$k]["module"] = $module; $tmp[$k]["block"] = $k; } $real_blocks = array_merge($real_blocks, $tmp); } $saved_blocks = self::get_all_blocks(); foreach ($real_blocks as $blockName => $blockData) { $exist = false; foreach ($saved_blocks as $key => $sb) { if ($blockName == $sb) { $exist = true; unset($saved_blocks[$key]); // self::update_block($blockName, $blockData); break; } } if (!$exist) { self::insert_block($blockData); } } foreach ($saved_blocks as $b) { self::delete_block($b); } page::redirect("/admin/blocks"); }
public function uninstall_schema($module_name) { $schema = method_invoke($module_name, "schema"); print_r($schema); foreach ($schema as $table_name => $datas) { database::drop_table($table_name); } }
public static function form_generate_field($name, $field) { $modules = get_all_of_interface("form_extension"); $form_input; foreach ($modules as $module) { $array = method_invoke($module, "form_types"); if (in_array($field["type"], $array)) { $form_input = $module; break; } } return method_invoke($form_input, "form_ui", $name, $field); }
function system_init() { $classes = get_all_of_interface('system_module'); $order_of_execution = array(); foreach ($classes as $class) { $key = method_invoke($class, 'priority'); if (!isset($order_of_execution[$key])) { $order_of_execution[$key] = array(); } $order_of_execution[$key] = array_merge_recursive($order_of_execution[$key], array($class)); } ksort($order_of_execution); foreach ($order_of_execution as $key => $values) { foreach ($values as $value) { method_invoke($value, "system_init"); } } }
<div id="page_lateral_profil"> <div id="page_lateral_profil_contenu"> <?php method_invoke("Widget", "runWidgets", array(0, function ($w) { Theme::add_to_menu($w); })); ?> <?php Themed::menu(); ?> <div class="clear"></div> </div> <div class="clear"></div> </div>
public static function theme_menu() { self::include_theme(); $modules = invokable_modules("menu_ui"); $a = array(); foreach ($modules as $module) { $b = method_invoke($module, "menu_ui"); foreach ($b as $k => $element) { $s = true; if (count($a) > 0) { foreach ($a as $l => $currents) { if ($currents['name'] == $element['name']) { $s = false; if (!isset($currents['url'])) { $a[$l]['url'] = $currents['url']; } if (isset($element['submenu'])) { $a[$l]['submenu'] = array_merge($a[$l]['submenu'], $element['submenu']); } } } if ($s) { $a[] = $element; } } else { $a[] = $element; } } } /* * */ foreach ($a as $key => $link) { if (!page::access_check_by_url($link['url'])) { unset($a[$key]); } else { if (isset($link['submenu'])) { foreach ($link['submenu'] as $subkey => $sublink) { if (!page::access_check_by_url($sublink['url'])) { unset($a[$key]['submenu'][$subkey]); } } } } } /* * */ return theme_ui::header_menu($a); }
public static function scan_all_modules() { $Directory = new RecursiveDirectoryIterator('./modules'); $Iterator = new RecursiveIteratorIterator($Directory); $regex = new RegexIterator($Iterator, '/^.+\\module.php$/i', RecursiveRegexIterator::GET_MATCH); $systemModules = get_all_classes_implementing_interfaces("SystemModule"); $res = array(); $enabled = method_invoke_all("info"); $modules = array(); $systemModules = array_map('strtolower', $systemModules); $available = array(); foreach ($enabled as $k => $e) { $modules[$e['name']] = $e; $modules[$e['name']]["path"] = ""; $modules[$e['name']]["system_module"] = in_array(strtolower($e["name"]), $systemModules) ? "1" : "0"; $modules[$e['name']]["enabled"] = 1; } foreach ($regex as $item) { $data = file_get_contents($item[0]); if (preg_match("/@moduleName ([A-Za-z0-9_]+)/", $data, $matches)) { include_once $item[0]; $res = method_invoke($matches[1], "info"); $res["path"] = $item[0]; $res["system_module"] = 0; $res['enabled'] = 0; $available[$matches[1]] = $res; } } foreach ($available as $k => $v) { if (in_array($k, array_keys($modules))) { $modules[$k]['path'] = $v['path']; } else { $modules[$k] = $v; } } return $modules; }
public static function enable_module($module_name) { if (module_manager::is_installed($module_name)) { $module = self::get_module($module_name); require $module->module_path; $result = method_invoke($module_name, "enable"); database::update("module_manager", array("module_enabled" => 1), "module_name = '%module'", array("%module" => $module_name)); self::update_action($module_name); } }