Example #1
0
$menuTimeOut = $params->get('hrmenu_time_out', 400);
$isMobile = '0';
$logoImage = $params->get('hrmenu_logo_image', '');
$logoLink = $params->get('hrmenu_logo_link', '');
$logoHeight = $params->get('hrmenu_logo_height', '');
$logoWidth = $params->get('hrmenu_logo_width', '');
/** get setting for login params **/
$menu_show_login_pad = $params->get('hrmenu_show_login_pad', 1);
$menu_show_login_pad_width = $params->get('hrmenu_show_login_pad_width', 120);
/** get fancy parameters  */
$menuUseFancy = $params->get('hrmenu_use_fancy', 1);
$fancyTransition = $params->get('hrmenu_fancy_transition', 'linear');
$fancyEase = $params->get('hrmenu_fancy_easy', 'easeOut');
$fancyDuration = $params->get('hrmenu_fancy_duration', 400);
/** get items */
$hrMenuItems = modHrMenuHelper::getItems($params);
// if no item in the menu then exit
if (!count($hrMenuItems) or !$hrMenuItems) {
    return false;
}
$languageDirection = $document->getDirection();
// page title management
if ($active) {
    $pageTitle = $document->getTitle();
    $title = $pageTitle;
    if (preg_match("/||/", $active->title)) {
        $title = explode("||", $active->title);
        $title = str_replace($active->title, $title[0], $pageTitle);
    }
    if (preg_match("/\\[/", $active->title)) {
        if (!$title) {
Example #2
0
 public static function getItems($params)
 {
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $menu = $app->getMenu();
     /** if no active menu, use default  */
     $active = $menu->getActive() ? $menu->getActive() : $menu->getDefault();
     $levels = $user->getAuthorisedViewLevels();
     asort($levels);
     $key = 'menu_items' . $params . implode(',', $levels) . '.' . $active->id;
     $cache = JFactory::getCache('mod_hrmenu', '');
     if (!($items = $cache->get($key))) {
         /** initialise variables  */
         //$list = array();
         $modules = array();
         //$db = JFactory::getDBO();
         $document = JFactory::getDocument();
         /** load libraries */
         jimport('joomla.application.module.helper');
         $path = isset($active) ? $active->tree : array();
         $start = (int) $params->get('hrmenu_start_level', 1);
         $end = (int) $params->get('hrmenu_end_level', 6);
         $items = $menu->getItems('menutype', $params->get('hrmenu_type', 'mainmenu'));
         /** return if no items */
         if (!$items) {
             return false;
         }
         $lastItem = 0;
         /** list all modules */
         $modulesList = modHrMenuHelper::createModuleList();
         foreach ($items as $i => $item) {
             $isDependant = $params->get('hrmenu_dependant_items', 0) ? $start > 1 && !in_array($item->tree[$start - 2], $path) : false;
             if ($start && $start > $item->level || $end && $item->level > $end || $isDependant) {
                 unset($items[$i]);
                 continue;
             }
             $item->deeper = false;
             $item->shallower = false;
             $item->level_diff = 0;
             if (isset($items[$lastItem])) {
                 $items[$lastItem]->deeper = $item->level > $items[$lastItem]->level;
                 $items[$lastItem]->shallower = $item->level < $items[$lastItem]->level;
                 $items[$lastItem]->level_diff = $items[$lastItem]->level - $item->level;
             }
             /** Test if this is the last item */
             $item->is_end = !isset($items[$i + 1]);
             $item->parent = (bool) $menu->getItems('parent_id', (int) $item->id, true);
             $item->active = false;
             $item->flink = $item->link;
             switch ($item->type) {
                 case 'separator':
                     continue;
                 case 'url':
                     if (strpos($item->link, 'index.php?') === 0 && strpos($item->link, 'Itemid') == faslse) {
                         $item->flink = $item->link . '&Itemid=' . $item->id;
                     }
                     $item->flink = JFilterOutput::ampReplace(htmlspecialchars($item->flink));
                     break;
                 case 'alias':
                     $item->flink = 'index.php?Itemid=' . $item->params->get('aliasoptions');
                     break;
                 default:
                     $router = JSite::getRouter();
                     if ($router->getMode() == JROUTER_MODE_SEF) {
                         $item->flink = 'index.php?Itemid=' . $item->id;
                     } else {
                         $item->flink .= '&Itemid=' . $item->id;
                     }
                     break;
             }
             if (strcasecmp(substr($item->flink, 0, 4), 'http') && strpos($item->flink, 'index.php?') !== false) {
                 $item->flink = JRoute::_($item->flink, true, $item->params->get('secure'));
             } else {
                 $item->flink = JRoute::_($item->flink);
             }
             $item->anchor_css = htmlspecialchars($item->params->get('menu-anchor_css', ''));
             $item->anchor_title = htmlspecialchars($item->params->get('menu-anchor_title', ''));
             $item->menu_image = $item->params->get('menu_image', '') ? htmlspecialchars($item->params->get('menu_image', '')) : '';
             $item->ftitle = htmlspecialchars($item->title);
             $item->ftitle = JFilterOutput::ampReplace($item->ftitle);
             $parentItem = modHrMenuHelper::getParentItem($item->parent_id, $items);
             $item->class = '';
             //$item->class = '_item' . $item->id;
             if (isset($active) && $active->id == $item->id) {
                 $item->class .= ' current';
             }
             /** add active class */
             if (is_array($path) && ($item->type == 'alias' && in_array($item->params->get('aliasoptions'), $path) || in_array($item->id, $path))) {
                 $item->class .= ' active';
                 $item->active = true;
             }
             // add the parent class
             if ($item->deeper) {
                 $item->class .= ' deeper';
             }
             if ($item->parent) {
                 if ($params->get('hrmenu_layout', 'horizontal') != '_:flatlist') {
                     $item->class .= ' parent';
                 }
             }
             // add last and first class
             $item->class .= $item->is_end ? ' last' : '';
             $item->class .= !isset($items[$i - 1]) ? ' first' : '';
             if (isset($items[$lastItem])) {
                 $items[$lastItem]->class .= $items[$lastItem]->shallower ? ' last' : '';
                 $item->class .= $items[$lastItem]->deeper ? ' first' : '';
                 if (isset($items[$i + 1]) and $item->level - $items[$i + 1]->level > 1) {
                     $parentItem->class .= ' last';
                 }
             }
             /** manage column */
             $item->colwidth = $item->params->get('column_width', '160');
             $item->createnewrow = $item->params->get('create_new_row', 0);
             $subWidthValues = NULL;
             preg_match('/\\[subwidth=([0-9]+)\\]/', $item->ftitle, $subWidthValues);
             $subWidth = isset($subWidthValues[1]) ? $subWidthValues[1] : '';
             if ($subWidth) {
                 $item->ftitle = preg_replace('/\\[subwidth=[0-9]+\\]/', '', $item->ftitle);
             }
             $item->submenucontainerwidth = $item->params->get('submenucontainerwidth', '') + $subWidth;
             $result = NULL;
             if ($item->params->get('createcolumn', 0)) {
                 //TODO: clean if test work
                 $item->column = true;
                 if (isset($parentItem->submenuswidth)) {
                     $parentItem->submenuswidth = strval($parentItem->submenuswidth) + strval($item->colwidth);
                 } else {
                     $parentItem->submenuswidth = strval($item->colwidth);
                 }
                 if (isset($items[$lastItem]) && $items[$lastItem]->deeper) {
                     $items[$lastItem]->nextcolumnwidth = $item->colwidth;
                 }
             } elseif (preg_match('/\\[col=([0-9]+)\\]/', $item->ftitle, $result)) {
                 $item->ftitle = str_replace('[newrow]', '', $item->ftitle);
                 $item->ftitle = preg_replace('/\\[col=[0-9]+)\\]/', '', $item->ftitle);
                 $item->column = true;
                 if (isset($parentItem->submenuswidth)) {
                     $parentItem->submenuswidth = strval($parentItem->submenuswith) + strval($result[1]);
                 } else {
                     $parentItem->submenuswidth = strval($result[1]);
                 }
                 if (isset($items[$lastItem]) && $items[$lastItem]->deeper) {
                     $items[$lastItem]->nextcolumnwidth = $result[1];
                 }
                 $item->colwidth = $result[1];
             }
             if (isset($parentItem->submenucontainerwidth) && $parentItem->submenucontainerwidth) {
                 $parentItem->submenuswidth = $parentItem->submenucontainerwidth;
             }
             /** manage module */
             $moduleId = $item->params->get('hrmenu_module', '');
             $style = $item->params->get('force_module_title', 0) ? 'xhtml' : '';
             if ($item->params->get('insert_module', 0)) {
                 if (!isset($modules[$moduleId])) {
                     $modules[$moduleId] = modHrMenuHelper::genModuleById($moduleId, $modulesList, $style);
                 }
                 $item->content = '<div class="hrmenu_mod">' . $modules[$moduleId] . '<div class="clr"></div></div>';
             } elseif (preg_match('/\\[modid=([0-9]+)\\]/', $item->ftitle, $result)) {
                 $item->ftitle = preg_match('/\\[modid=[0-9]+\\]/', '', $item->ftitle);
                 $item->content = '<div class="hrmenu_mod"' . modHrMenuHelper::genModuleById($result[1], $modulesList, $style) . '<div class="clr"></div></div>';
             }
             /** manage rel attribute */
             $item->rel = '';
             $rel = $item->params->get('hrmenu_relattr', '');
             if ($rel) {
                 $item->rel = ' rel="' . $rel . '"';
             } elseif (preg_match('/\\[rel=[a-z]+\\]/i', '', $result)) {
                 $item->ftitle = preg_replace('/\\[rel=[a-z]+\\]/i', '', $item->ftitle);
                 $item->rel = ' rel="' . $result[1] . '"';
             }
             /** manage link description */
             $item->description = $item->params->get('hrmenu_des', '');
             if ($item->description) {
                 $item->desc = $item->description;
             } else {
                 $result = explode("||", $item->ftitle);
                 if (isset($result[1])) {
                     $item->desc = $result[1];
                 } else {
                     $item->desc = '';
                 }
                 $item->ftitle = $result[0];
             }
             /* add styles to the page for customization  */
             $menuID = $params->get('hrmenu_id', 'hrmenu');
             $itemStyles = "";
             $item->titleColor = $item->params->get('hrmenu_title_color', '');
             if ($item->titleColor) {
                 $itemStyles .= "div#" . $menuID . " ul.nav_hrmenu li.item" . $item->id . " > a div.hrmenu_title{ color:" . $item->titlecolor . " !important; } div#" . $menuID . " ul.nav_hrmenu li.item" . $item->id . " > span.separator div.hrmenu_title {color:" . $item->titlecolor . " !important; }";
             }
             $item->desccolor = $item->params->get('hrmenu_desccolor', '');
             if ($item->desccolor) {
                 $itemStyles .= "div#" . $menuID . " ul.nav_hrmenu li.item" . $item->id . " > a span.hrmenu_desc{color:" . $item->desccolor . " !important; }  div#" . $menuID . " ul.nav_hrmenu li.item" . $item->id . " > span.separator span.hrmenu_desc {color:" . $item->desccolor . " !important; }";
             }
             if ($itemStyles) {
                 $document->addStyleDeclaration($itemStyles);
             }
             // get plugin parameters that are used directly in the layout
             $item->leftmargin = $item->params->get('hrmenu_left_margin', '');
             $item->topmargin = $item->params->get('hrmenu_top_margin', '');
             $item->liclass = $item->params->get('hrmenu_li_class', '');
             $item->colbgcolor = $item->params->get('hrmenu_col_bg_color', '');
             $item->tagcoltitle = $item->params->get('hrmenu_tag_col_title', 'none');
             $item->submenucontainerheight = $item->params->get('hrmenu_sub_menu_container_height', '');
             $lastItem = $i;
         }
         if (isset($items[$lastItem])) {
             $items[$lastItem]->deeper = ($start ? $start : 1) > $items[$lastItem]->level;
             $items[$lastItem]->shallower = ($start ? $start : 1) < $items[$lastItem]->level;
             $items[$lastItem]->level_diff = $items[$lastItem]->level - ($start ? $start : 1);
         }
         $cache->store($items, $key);
     }
     return $items;
 }
Example #3
0
         $item->styles = ' style="';
         $item->innerstyles = 'style="width:auto; ';
         if ($item->left_margin) {
             $item->styles .= 'margin-' . $direction . ':' . modHrMenuHelper::checkUnit($item->left_margin) . '"; ';
         }
         if ($item->top_margin) {
             $item->styles .= 'margin-top:' . modHrMenuHelper::checkUnit($item->top_margin) . '; ';
         }
         if (isset($item->submenus_width)) {
             $item->styles .= 'width:' . modHrMenuHelper::checkUnit($item->submenus_width) . '; ';
         }
         if ($item->column_background_color) {
             $item->styles .= 'background:' . $item->column_background_color . '; ';
         }
         if (isset($item->submenu_container_height) && $item->submenu_container_height) {
             $item->innerstyles .= 'height:' . modHrMenuHelper::checkUnit($item->submenu_container_height) . '; ';
         }
         $item->styles .= '"';
         $item->innerstyles .= '"';
     } else {
         $item->styles = '';
         $item->innerstyles = '';
     }
     echo '<div class="hrmenu_float" ' . $item->styles . ' >' . $close . '<div class="hrmenu_drop_top" ><div class="hrmenu_drop_top_2" ></div></div><div class="hrmenu_drop_main" ' . $item->innerstyles . '><div class="hrmenu_drop_main_2" ><div class="hrmenu_2 first" ' . $nextColumnStyles . '><ul class="hrmenu_2" >';
 } elseif ($item->shallower) {
     // The next item is shallower.
     echo '</li>' . str_repeat('</ul><div class="clr" ></div></div><div class="clr" </div></div></div><div class="hrmenu_drop_bottom" ><div class="hrmenu_drop_bottom_2" ></div></div></div></li>', $item->level_diff);
 } elseif ($item->is_end) {
     // the item is the last.
     echo str_repeat('</li></ul><div class="clr" ></div></div><div class="clr" ></div></div></div><div class="hrmenu_drop_bottom" ><div class="hrmenu_drop_bottom_2" ></div></div></div>', $item->level_diff) . '</li>';
 } else {