// Add the new Menu $menu = new FeedMenu($menu_name, $matches[1], $matches[2], $matches[3], $menu_items_number); } if (!$menu instanceof FeedMenu) { AppContext::get_response()->redirect('menus.php'); } $menu->enabled(retrieve(POST, 'activ', Menu::MENU_NOT_ENABLED)); $menu->set_hidden_with_small_screens((bool) retrieve(POST, 'hidden_with_small_screens', false)); if ($menu->is_enabled()) { $menu->set_block(retrieve(POST, 'location', Menu::BLOCK_POSITION__NOT_ENABLED)); } $menu->set_auth(Authorizations::build_auth_array_from_form(Menu::MENU_AUTH_BIT)); //Filters MenuAdminService::set_retrieved_filters($menu); MenuService::move($menu, $menu->get_block()); MenuService::generate_cache(); AppContext::get_response()->redirect('menus.php#m' . $menu->get_id()); } // Display the Menu administration $edit = !empty($id); include 'lateral_menu.php'; lateral_menu(); $tpl = new FileTemplate('admin/menus/feed.tpl'); $tpl->put_all(array('L_REQUIRE' => LangLoader::get_message('form.explain_required_fields', 'status-messages-common'), 'JL_REQUIRE_NAME' => TextHelper::to_js_string($LANG['require_name']), 'JL_REQUIRE_FEED' => TextHelper::to_js_string($LANG['choose_feed_in_list']), 'JL_REQUIRE_ITEMS_NUMBER' => TextHelper::to_js_string($LANG['require_items_number']), 'L_FEED' => $LANG['feed'], 'L_AVAILABLES_FEEDS' => $LANG['availables_feeds'], 'L_NAME' => $LANG['name'], 'L_STATUS' => $LANG['status'], 'L_HIDDEN_WITH_SMALL_SCREENS' => $LANG['hidden_with_small_screens'], 'L_AUTHS' => $LANG['auths'], 'L_ENABLED' => LangLoader::get_message('enabled', 'common'), 'L_DISABLED' => LangLoader::get_message('disabled', 'common'), 'L_GUEST' => $LANG['guest'], 'L_USER' => $LANG['member'], 'L_MODO' => $LANG['modo'], 'L_ADMIN' => $LANG['admin'], 'L_LOCATION' => $LANG['location'], 'L_ACTION_MENUS' => $edit ? $LANG['menus_edit'] : LangLoader::get_message('add', 'common'), 'L_ACTION' => $edit ? $LANG['update'] : $LANG['submit'], 'L_RESET' => $LANG['reset'], 'ACTION' => 'save')); //Localisation possibles. $block = retrieve(GET, 's', Menu::BLOCK_POSITION__HEADER, TINTEGER); $array_location = array(Menu::BLOCK_POSITION__HEADER => $LANG['menu_header'], Menu::BLOCK_POSITION__SUB_HEADER => $LANG['menu_subheader'], Menu::BLOCK_POSITION__LEFT => $LANG['menu_left'], Menu::BLOCK_POSITION__TOP_CENTRAL => $LANG['menu_top_central'], Menu::BLOCK_POSITION__BOTTOM_CENTRAL => $LANG['menu_bottom_central'], Menu::BLOCK_POSITION__RIGHT => $LANG['menu_right'], Menu::BLOCK_POSITION__TOP_FOOTER => $LANG['menu_top_footer'], Menu::BLOCK_POSITION__FOOTER => $LANG['menu_footer']); $feed_url = ''; if ($edit) { $menu = MenuService::load($id); if (!$menu instanceof FeedMenu) {
public static function update_module($module_id, $activated) { $error = ''; if (!$activated) { MenuService::delete_mini_module($module_id); MenuService::delete_module_feeds_menus($module_id); $general_config = GeneralConfig::load(); $module_home_page_selected = $general_config->get_module_home_page(); if ($module_home_page_selected == $module_id) { $general_config->set_module_home_page(''); $general_config->set_other_home_page('index.php'); } $editors = AppContext::get_content_formatting_service()->get_available_editors(); if (in_array($module_id, $editors)) { if (count($editors) > 1) { $default_editor = ContentFormattingConfig::load()->get_default_editor(); if ($default_editor !== $module_id) { PersistenceContext::get_querier()->update(DB_TABLE_MEMBER, array('editor' => $default_editor), 'WHERE editor=:old_editor', array('old_editor' => 'bbcode')); } else { $error = LangLoader::get_message('is_default_editor', 'editor-common'); } } else { $error = LangLoader::get_message('last_editor_installed', 'editor-common'); } } } else { $module = self::get_module($module_id); if ($module->get_configuration()->get_compatibility() != GeneralConfig::load()->get_phpboost_major_version()) { $error = LangLoader::get_message('modules.not_compatible', 'admin-modules-common'); } } if (empty($error)) { $module = self::get_module($module_id); $module->set_activated($activated); ModulesConfig::load()->update($module); ModulesConfig::save(); MenuService::generate_cache(); Feed::clear_cache($module_id); if (ServerEnvironmentConfig::load()->is_url_rewriting_enabled()) { HtaccessFileCache::regenerate(); } } return $error; }
function uninstall_module($module_id, $drop_files) { global $Cache, $Sql, $CONFIG, $MODULES; $module_name = $Sql->query("SELECT name FROM " . DB_TABLE_MODULES . " WHERE id = '" . $module_id . "'", __LINE__, __FILE__); if (!empty($module_id) && !empty($module_name)) { $Sql->query_inject("DELETE FROM " . DB_TABLE_MODULES . " WHERE id = '" . $module_id . "'", __LINE__, __FILE__); $info_module = load_ini_file(PATH_TO_ROOT . '/' . $module_name . '/lang/', get_ulang()); $Cache->delete_file($module_name); if (!empty($info_module['com'])) { $Sql->query_inject("DELETE FROM " . DB_TABLE_COM . " WHERE script = '" . addslashes($info_module['com']) . "'", __LINE__, __FILE__); } if (!empty($info_module)) { $Sql->query_inject("DELETE FROM " . DB_TABLE_CONFIGS . " WHERE name = '" . addslashes($module_name) . "'", __LINE__, __FILE__); } import('core/menu_service'); MenuService::delete_mini_module($module_name); MenuService::delete_module_feeds_menus($module_name); $dir_db_module = get_ulang(); $dir = PATH_TO_ROOT . '/' . $module_name . '/db'; import('io/filesystem/folder'); $folder_path = new Folder($dir . '/' . $dir_db_module); foreach ($folder_path->get_folders('`^[a-z0-9_ -]+$`i') as $dir) { $dir_db_module = $dir->get_name(); break; } if (file_exists(PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.' . DBTYPE . '.sql')) { $Sql->parse(PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.' . DBTYPE . '.sql', PREFIX); } if (file_exists(PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.php')) { @(include_once PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.php'); } $Cache->Generate_file('modules'); $Cache->Generate_file('css'); MenuService::generate_cache(); import('content/syndication/feed'); Feed::clear_cache(); if ($CONFIG['rewrite'] == 1 && !empty($info_module['url_rewrite'])) { $Cache->Generate_file('htaccess'); } if ($drop_files) { $folder = new Folder(PATH_TO_ROOT . '/' . $module_name); if (!$folder->delete()) { return MODULE_FILES_COULD_NOT_BE_DROPPED; } } return MODULE_UNINSTALLED; } else { return NOT_INSTALLED_MODULE; } }
function update_mini_modules_list($update_cache = true) { global $Sql, $MODULES; $installed_minimodules = array(); $query = "SELECT id, title FROM " . DB_TABLE_MENUS . " WHERE class='" . strtolower(MODULE_MINI_MENU__CLASS) . "'"; $modules = array(); foreach ($MODULES as $module_id => $module) { if (!empty($module['activ']) && $module['activ'] == 1) { $modules[] = $module_id; } } $result = $Sql->query_while($query . ";", __LINE__, __FILE__); while ($row = $Sql->fetch_assoc($result)) { $title = explode('/', strtolower($row['title']), 2); if (!is_array($title) || count($title) < 1) { continue; } $module = $title[0]; if (in_array($module, $modules)) { $installed_minimodules[] = $module; } else { MenuService::delete($row['id']); } } $Sql->query_close($result); $new_modules = array_diff($modules, $installed_minimodules); foreach ($new_modules as $module) { MenuService::add_mini_module($module, false); } if ($update_cache) { MenuService::generate_cache(); } }
function _get_menus() { import('core/menu_service'); return MenuService::generate_cache(true); }