Esempio n. 1
0
 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");
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
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");
        }
    }
}
Esempio n. 5
0
<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>
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
 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;
 }
Esempio n. 8
0
 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);
     }
 }