_get_view(); } private function _get_view() { $view = new Admin_View("admin.html"); $view->page_title = t("Manage Module Order"); $view->content = new View("admin_moduleorder.html"); $view->content->csrf = access::csrf_token(); $view->content->available = new View("admin_moduleorder_blocks.html"); $view->content->active = new View("admin_moduleorder_blocks.html"); $view->content->available->modules = $this->_get_modules(); return $view; } public function update() { //Get the ordered list of modules $modulerawlist = explode("&", trim($_POST['modulelist'], "&")); //Make sure that gallery and user modules are first in the list $currentindex = 2; $identity_provider = module::get_var("gallery", "identity_provider"); foreach ($modulerawlist as $row) { $currentry = explode("=", $row); $currentry = explode(":", $currentry[1]); if ($currentry[0] == "gallery") { $modulelist[0] = $row; } elseif ($currentry[0] == $identity_provider) { $modulelist[1] = $row; } else { $modulelist[$currentindex] = $row; $currentindex++; } } ksort($modulelist); //Now we are ready to write the correct id values $current_weight = 0; foreach ($modulelist as $row) { $current_weight++; $currentry = explode("=", $row); $currentry = explode(":", $currentry[1]); db::build() ->update("modules") ->set("weight", $current_weight) ->where("name", "=", $currentry[0]) ->execute(); } message::success(t("Your settings have been saved.")); url::redirect("admin/moduleorder"); print $this->_get_view(); } private function _get_modules() { $active_blocks = array(); $available_modules = module_manager::get_available_site_modules(); return $available_modules; } }