Beispiel #1
0
 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");
 }
Beispiel #2
0
 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();
 }
Beispiel #3
0
 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");
 }