コード例 #1
0
$eventtype = $params->get('eventtype', 'click');
$fadetransition = $params->get('fadetransition', 'false');
$theme = $params->get('theme', 'default');
// laod the css and js in the page
$document = JFactory::getDocument();
//JHTML::_("behavior.framework", true);
JHTML::_("jquery.framework", true);
JHTML::_("jquery.ui");
//$document->addScript(JURI::base(true) . '/modules/mod_accordeonck/assets/jquery.ui.1.8.js');
$document = JFactory::getDocument();
$document->addScript(JURI::base(true) . '/modules/mod_accordeonck/assets/mod_accordeonck.js');
if ($params->get('usestyles') == 1) {
    $menucss = ModaccordeonckHelper::createCss($menuID, $params, 'menu');
    $level1linkcss = ModaccordeonckHelper::createCss($menuID, $params, 'level1link');
    $level2linkcss = ModaccordeonckHelper::createCss($menuID, $params, 'level2link');
    $level3linkcss = ModaccordeonckHelper::createCss($menuID, $params, 'level3link');
    $document->addStylesheet(JURI::base(true) . '/modules/mod_accordeonck/themes/' . $theme . '/mod_accordeonck_css.php?cssid=' . $menuID);
    if ($params->get('useplusminusimages', '1')) {
        $css = "#" . $menuID . " li a.toggler { outline: none;background: url(" . JURI::base(true) . '/' . $imageplus . ") " . $imageposition . " center no-repeat !important; }\n\t#" . $menuID . " li.open > a.toggler { background: url(" . JURI::base(true) . '/' . $imageminus . ") " . $imageposition . " center no-repeat !important; }";
    } else {
        $css = '';
    }
    $css .= "#" . $menuID . " li ul li ul li ul { border:none !important; padding-top:0px !important; padding-bottom:0px !important; }";
    $document->addStyleDeclaration($css);
    $document->addStyleDeclaration("#" . $menuID . " { " . implode('', $menucss) . " } ");
    // first level items
    $document->addStyleDeclaration("#" . $menuID . " li.level1 { " . $level1linkcss['padding'] . $level1linkcss['margin'] . $level1linkcss['background'] . $level1linkcss['gradient'] . $level1linkcss['borderradius'] . $level1linkcss['shadow'] . $level1linkcss['border'] . " } ");
    $document->addStyleDeclaration("#" . $menuID . " li.level1 > a { " . $level1linkcss['fontcolor'] . $level1linkcss['fontsize'] . " } ");
    $document->addStyleDeclaration("#" . $menuID . " li.level1 > a:hover { " . $level1linkcss['fontcolorhover'] . " } ");
    $document->addStyleDeclaration("#" . $menuID . " li.level1 > a span.accordeonckdesc { " . $level1linkcss['descfontcolor'] . $level1linkcss['descfontsize'] . " } ");
    // second level items
コード例 #2
0
ファイル: helper.php プロジェクト: shamusdougan/GDMCWebsite
 static function GetItems(&$params, $module)
 {
     // Initialise variables.
     $list = array();
     $db = JFactory::getDbo();
     $user = JFactory::getUser();
     $app = JFactory::getApplication();
     $menu = $app->getMenu();
     $menuID = $params->get('tag_id', 'accordeonck' . $module->id);
     // If no active menu, use default
     $active = $menu->getActive() ? $menu->getActive() : $menu->getDefault();
     $active_id = isset($active) ? $active->id : $menu->getDefault()->id;
     $base = self::getBase($params);
     //		$path = isset($active) ? $active->tree : array();
     $path = $base->tree;
     $start = (int) $params->get('startLevel');
     $end = (int) $params->get('endLevel');
     $showAll = 1;
     $maxdepth = $params->get('maxdepth');
     $items = $menu->getItems('menutype', $params->get('menutype'));
     $lastitem = 0;
     if ($items) {
         // load the list of all published modules
         $modulesList = ModaccordeonckHelper::CreateModulesList();
         foreach ($items as $i => $item) {
             if ($start && $start > $item->level || $end && $item->level > $end || !$showAll && $item->level > 1 && !in_array($item->parent_id, $path) || $start > 1 && !in_array($item->tree[$start - 2], $path)) {
                 unset($items[$i]);
                 continue;
             }
             $item->deeper = false;
             $item->shallower = false;
             $item->level_diff = 0;
             $item->isactive = false;
             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;
             }
             $item->parent = (bool) $menu->getItems('parent_id', (int) $item->id, true);
             $lastitem = $i;
             $item->active = false;
             $item->flink = $item->link;
             switch ($item->type) {
                 case 'separator':
                     // No further action needed.
                     continue;
                 case 'url':
                     if (strpos($item->link, 'index.php?') === 0 && strpos($item->link, 'Itemid=') === false) {
                         // If this is an internal Joomla link, ensure the Itemid is set.
                         $item->flink = $item->link . '&Itemid=' . $item->id;
                     }
                     break;
                 case 'alias':
                     // If this is an alias use the item id stored in the parameters to make the link.
                     $item->flink = 'index.php?Itemid=' . $item->params->get('aliasoptions');
                     break;
                 default:
                     $router = $app::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->ftitle = htmlspecialchars($item->title, ENT_COMPAT, 'UTF-8', false);
             $item->anchor_css = htmlspecialchars($item->params->get('menu-anchor_css', ''), ENT_COMPAT, 'UTF-8', false);
             $item->anchor_title = htmlspecialchars($item->params->get('menu-anchor_title', ''), ENT_COMPAT, 'UTF-8', false);
             $item->menu_image = $item->params->get('menu_image', '') ? htmlspecialchars($item->params->get('menu_image', ''), ENT_COMPAT, 'UTF-8', false) : '';
             // manage plugin parameters, need the plugin maximenu_ck_params to be installed and active
             //$item->description = $item->params->get('accordeonck_desc', '');
             $item->insertmodule = $item->params->get('accordeonckparams_insertmodule', 0);
             $item->module = $item->params->get('accordeonckparams_module', '');
             $item->content = '';
             // manage description
             $titreCK = explode("||", $item->ftitle);
             if (isset($titreCK[1])) {
                 $item->desc = $titreCK[1];
             } else {
                 $item->desc = '';
             }
             $item->ftitle = $titreCK[0];
             $item->desc = $item->params->get('accordeonckparams_desc', '') ? $item->params->get('accordeonckparams_desc', '') : $item->desc;
             if ($item->desc) {
                 $item->desc = '<span class="accordeonckdesc">' . $item->desc . '</span>';
             }
             // manage rel attribute
             $item->rel = '';
             if ($rel = $item->params->get('accordeonckparams_relattr', '')) {
                 $item->rel = ' rel="' . $rel . '"';
             } elseif (preg_match('/\\[rel=([a-z]+)\\]/i', $item->ftitle, $resultat)) {
                 $item->ftitle = preg_replace('/\\[rel=[a-z]+\\]/i', '', $item->ftitle);
                 $item->rel = ' rel="' . $resultat[1] . '"';
             }
             // add the anchor tag
             $item->flink .= $item->params->get('accordeonckparams_anchor', '') ? '#' . $item->params->get('accordeonckparams_anchor', '') : '';
             // manage module
             if ($item->insertmodule and $item->module) {
                 $item->content = '<div class="accordeonckmod">' . ModaccordeonckHelper::GenModuleById($item->module, $params, $modulesList) . '<div style="clear:both;"></div></div>';
             } else {
                 if (stristr($item->ftitle, '[modid=')) {
                     preg_match('/\\[modid=([0-9]+)\\]/', $item->ftitle, $resultat);
                     $item->ftitle = preg_replace('/\\[modid=[0-9]+\\]/', '', $item->ftitle);
                     $item->content = '<div class="accordeonckmod">' . ModaccordeonckHelper::GenModuleById($resultat[1], $params, $modulesList) . '<div style="clear:both;"></div></div>';
                 }
             }
             // manage item class
             $item->classe = 'item-' . $item->id;
             if ($item->id == $active_id) {
                 $item->classe .= ' current';
             }
             if (in_array($item->id, $path)) {
                 $item->classe .= ' active';
                 $item->isactive = true;
             } elseif ($item->type == 'alias') {
                 $aliasToId = $item->params->get('aliasoptions');
                 if (count($path) > 0 && $aliasToId == $path[count($path) - 1]) {
                     $item->classe .= ' active';
                     $item->isactive = true;
                 } elseif (in_array($aliasToId, $path)) {
                     $item->classe .= ' alias-parent-active active';
                     $item->isactive = true;
                 }
             }
             // css management for the item following the plugin params
             self::injectItemCss($item, $menuID);
             // get plugin parameters that are used directly in the layout
             $item->liclass = $item->params->get('accordeonckparams_liclass', '');
         }
         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);
         }
     }
     return $items;
 }