public function add_menu_entry($menu_entry = array()) { if (!is_array($menu_entry) || empty($menu_entry)) { return; } $this->tpl->setCurrentBlock("BLOCK_MENU"); // separator: if ($menu_entry["name"] === "SEPARATOR") { $this->tpl->touchBlock("BLOCK_SEPERATOR"); } else { $this->tpl->setCurrentBlock("BLOCK_MENUITEM"); if (isset($menu_entry["link"]) && !empty($menu_entry["link"])) { $this->tpl->setVariable("MENUITEM_LINK_START", "<a href=\"" . $menu_entry["link"] . "\">"); $this->tpl->setVariable("MENUITEM_LINK_END", "</a>"); } else { $this->tpl->setVariable("MENUITEM_LINK_START", "<span>"); $this->tpl->setVariable("MENUITEM_LINK_END", "</span>"); } if (isset($menu_entry["onclick"]) && !empty($menu_entry["onclick"])) { $this->tpl->setVariable("MENUITEM_ONCLICK", $menu_entry["onclick"]); } $this->tpl->setVariable("MENUITEM_NAME", $menu_entry["name"]); if (isset($menu_entry["icon"]) && !empty($menu_entry["icon"])) { $this->tpl->setVariable("MENUITEM_ICON", $menu_entry["icon"]); } // submenu: if (isset($menu_entry["menu"]) && is_array($menu_entry["menu"])) { $this->tpl->setCurrentBlock("BLOCK_SUBMENU"); $submenu = new koala_html_menu(); foreach ($menu_entry["menu"] as $submenu_entry) { $submenu->add_menu_entry($submenu_entry); } $this->tpl->setVariable("SUBMENU_HTML", $submenu->get_html()); $this->tpl->parse("BLOCK_SUBMENU"); } $this->tpl->parse("BLOCK_MENUITEM"); } $this->tpl->parse("BLOCK_MENU"); }
public static function get_menu_html($cacheid, $is_logged_in) { $koala_html_menu = new koala_html_menu(); if ($is_logged_in) { $user = lms_steam::get_current_user(); // HOME // removed for version 1_5 //$koala_html_menu->add_menu_entry( array( "name" => gettext( "Home" ), "link" => PATH_URL ) ); // YOU if (YOU_MENU) { $koala_html_menu->add_menu_entry(array("name" => MENU_YOU ? gettext("You") : $user->get_attribute("USER_FIRSTNAME") . " " . $user->get_attribute("USER_FULLNAME"), "link" => PATH_URL . "desktop/", "menu" => array(YOUR_DESKTOP ? array("name" => MENU_YOU ? gettext("Your desktop") : "Schreibtisch", "link" => PATH_URL . "desktop/") : "", YOUR_PORTFOLIO ? array("name" => MENU_YOU ? "Mein Portfolio" : "Portfolio", "link" => PATH_URL . "portfolio/") : "", YOUR_DOCUMENTS ? array("name" => MENU_YOU ? gettext("Your documents") : "Dokumente", "link" => PATH_URL . "explorer/") : "", YOUR_PROFILE ? array("name" => MENU_YOU ? gettext("Your profile") : "Profil", "link" => PATH_URL . "user/index/" . $user->get_name() . "/") : "", YOUR_BOOKMARKS ? array("name" => MENU_YOU ? gettext("Meine Lesezeichen") : "Lesezeichen", "link" => PATH_URL . "bookmarks/") : "", YOUR_SCHOOLBOOKMARKS ? array("name" => MENU_YOU ? gettext("Meine Schul-Lesezeichen") : "Schul-Lesezeichen", "link" => PATH_URL . "school/") : "", YOUR_CONTACTS ? array("name" => MENU_YOU ? gettext("Your contacts") : "Kontakte") : "", YOUR_MOKODESK && $user->get_attribute("LARS_DESKTOP") !== 0 ? array("name" => MENU_YOU ? gettext("Mein MokoDesk") : "MokoDesk", "link" => MOKODESK_URL) : ""))); } // COURSES if (YOUR_COURSES) { $scg = null; if (defined("STEAM_COURSES_GROUP")) { $scg = steam_factory::get_object($GLOBALS["STEAM"]->get_id(), STEAM_COURSES_GROUP, CLASS_GROUP); } if ($scg instanceof steam_group) { $current_semester = steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), $scg->get_groupname() . "." . STEAM_CURRENT_SEMESTER); if (!is_object($current_semester)) { throw new Exception("cant find current_semester. please check setting of CURRENT_SEMESTER in koala.def.php", E_CONFIGURATION); } $cache = get_cache_function($user->get_name()); $courses = $cache->call("lms_steam::user_get_booked_courses", $user->get_id()); //COURSES SUBMENU $submenu = array(YOUR_COURSES ? array("name" => gettext("Your courses"), "link" => PATH_URL . SEMESTER_URL . "/?filter=booked") : "", ALL_COURSES && (!ADMIN_ONLY_ALL_COURSES || ADMIN_ONLY_ALL_COURSES && lms_steam::is_koala_admin($user)) ? array("name" => gettext("Browse courses"), "link" => PATH_URL . SEMESTER_URL . "/") : ""); if (count($courses) > 0) { $submenu[] = koala_html_menu::get_separator(); } foreach ($courses as $course) { $submenu[] = array("name" => $course["COURSE_NAME"], "link" => $course["COURSE_LINK"]); } if (COURSES_MENU) { if (ADD_COURSE) { $koala_html_menu->add_menu_entry(array("name" => gettext("Courses"), "link" => PATH_URL . SEMESTER_URL . "/?filter=booked", "menu" => $submenu)); } else { $koala_html_menu->add_menu_entry(array("name" => gettext("Courses"), "menu" => $submenu)); } } } } // CONTACTS if (CONTACTS_MENU) { $koala_html_menu->add_menu_entry(array("name" => gettext("Contacts"), "link" => PATH_URL . "user/" . $user->get_name() . "/contacts/", "menu" => array(YOUR_CONTACTS ? array("name" => gettext("Contact list"), "link" => PATH_URL . "user/" . $user->get_name() . "/contacts/") : "", PROFILE_VISITORS ? array("name" => gettext("Visitors of your profile"), "link" => PATH_URL . "profile_visitors.php") : "", USER_SEARCH ? koala_html_menu::get_separator() : "", USER_SEARCH ? array("name" => gettext("Find people"), "link" => PATH_URL . "search/people/") : ""))); } // GROUPS if (YOUR_GROUPS) { $submenu = array(YOUR_GROUPS ? array("name" => gettext("Your groups"), "link" => PATH_URL . "user/" . $user->get_name() . "/groups/") : "", BROWSE_GROUPS ? array("name" => gettext("Browse groups"), "link" => PATH_URL . "groups/") : "", CREATE_GROUPS ? array("name" => gettext("Create group"), "link" => PATH_URL . "groups_create.php") : ""); $cache = get_cache_function($user->get_name(), 86400); $groups = $cache->call("lms_steam::user_get_groups", $user->get_name(), FALSE); usort($groups, "sort_objects"); if (count($groups) > 0) { $submenu[] = koala_html_menu::get_separator(); } foreach ($groups as $usergroup) { $submenu[] = array("name" => $usergroup["OBJ_NAME"], "link" => $usergroup["GROUP_LINK"]); } if (GROUPS_MENU) { $koala_html_menu->add_menu_entry(array("name" => gettext("Groups"), "link" => PATH_URL . "user/" . $user->get_name() . "/groups/", "menu" => $submenu)); } } // additional platform menus $menus = json_decode(PLATFROM_MENUS, true); if (!is_array($menus)) { $menus = array(); } foreach ($menus as $menu) { $koala_html_menu->add_menu_entry($menu); } $extensions = ExtensionMaster::getInstance()->getExtensionByType("IMenuExtension"); foreach ($extensions as $extension) { $entries = $extension->getMenuEntries(); if (isset($entries) && is_array($entries)) { foreach ($entries as $entry) { $koala_html_menu->add_menu_entry($entry); } } } // EXTRAS removed for Version 1_5 /* $koala_html_menu->add_menu_entry( array( "name" => gettext( "Extras" ), "link" => PATH_URL . "downloads/", "menu" => array( // SUBMENUS EXTRAS array( "name" => gettext( "Downloads" ), "link" => PATH_URL . "downloads/" ), array( "name" => gettext( "More information"), "link" => PATH_URL ), koala_html_menu::get_separator(), array( "name" => gettext( "Help"), "link" => HELP_URL ) ) ) ); */ } else { //removed for version 1_5 //$koala_html_menu->add_menu_entry( array( "name" => gettext( "Home" ), "link" => PATH_URL ) ); //$koala_html_menu->add_menu_entry( array( "name" => gettext( "Sign in" ), "link" => PATH_URL . "sign_in.php" ) ); //$koala_html_menu->add_menu_entry( array( "name" => gettext( "Downloads" ), "link" => PATH_URL . "downloads/" ) ); //$koala_html_menu->add_menu_entry(array("name" => " ", "link" => "#")); return "<div id='menu'></div>"; } return $koala_html_menu->get_html(); }
public function set_context_menu($context, $params = array()) { $context_menu = $this->get_context_menu($context, $params); if (!is_array($context_menu) || empty($context_menu)) { return; } foreach ($context_menu as $key => $item) { if (!is_array($item)) { unset($context_menu[$key]); } } $this->template->setCurrentBlock("BLOCK_CONTEXT_MENU"); $popup_count = 0; foreach ($context_menu as $key => $item) { $this->template->setCurrentBlock("BLOCK_MENU_ENTRY"); if (isset($item["menu"])) { $popup_count++; $html_menu = new koala_html_menu(); $submenu = array(); $subsubmenu = array(); foreach ($item["menu"] as $menu_item) { $submenu_item = array("name" => $menu_item["name"]); if (isset($menu_item["link"])) { $submenu_item["link"] = $menu_item["link"]; } if (isset($menu_item["icon"])) { $submenu_item["icon"] = $menu_item["icon"]; } $submenu[] = $submenu_item; if (isset($menu_item["menu"])) { $subsubmenu[] = $menu_item["menu"]; } else { $subsubmenu[] = array(); } } if (isset($item["link"])) { $html_menu->add_menu_entry(array("name" => $item["name"], "link" => $item["link"]), $submenu, $subsubmenu); } else { $html_menu->add_menu_entry(array("name" => $item["name"]), $submenu, $subsubmenu); } $menu_html = "<div id='popupmenu_" . $popup_count . "' class='button'>"; $menu_html .= $html_menu->get_html(); $menu_html .= "</div>"; $this->template->setVariable("LINK_MENU_ENTRY", $menu_html); } else { if (isset($item["link"])) { if (count($context_menu) > 1 && $key == 0) { $position = "left"; } else { if (count($context_menu) > 1 && $key + 1 == count($context_menu)) { $position = "right"; } else { $position = "middle"; } } $this->template->setVariable("LINK_MENU_ENTRY", "<a class='{$position} pill button' href='" . $item["link"] . "'>" . h($item["name"]) . "</a>"); } else { if (isset($item["name"])) { $this->template->setVariable("LINK_MENU_ENTRY", h($item["name"])); } } } $this->template->parse("BLOCK_MENU_ENTRY"); } $this->template->parse("BLOCK_CONTEXT_MENU"); }