1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

mootools меню - помогите

Тема в разделе "Joomla", создана пользователем ufaclub, 20 дек 2009.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, NightHunter
  1. ufaclub

    ufaclub

    Регистр.:
    1 май 2007
    Сообщения:
    395
    Симпатии:
    17
    делаю сайт http://www.egodesign.ru/ на нем стоит меню основанное на mootools... сейчас меню работает.... (нажимаеш на родителя и открывается подменю.)

    и закрываются под категории только при повторном нажатии

    а надо чтобы открывшееся подменю закрывалось пр открытии следующего


    исходник - http://egoweb.ru/mod_mainmenu.rar


    PHP:

    <?php
    /**
    * @package   yoo_mellow Template
    * @version   1.5.0 2009-10-01 16:02:39
    * @author    YOOtheme http://www.yootheme.com
    * @copyright Copyright (C) 2007 - 2009 YOOtheme GmbH
    */

    // no direct access
    defined('_JEXEC') or die('Restricted access');

    function 
    YOOMenuAccordionDecorator(&$node$args) {

        
    $yoomenu  = &YOOMenu::getInstance();
        
    $params   $yoomenu->getParams();
        
    $user     = &JFactory::getUser();
        
    $menu     = &JSite::getMenu();
        
    $active   $menu->getActive();
        
    $path     = isset($active) ? array_reverse($active->tree) : null;

        
    // remove child items deeper than end level
        
    if (($args['end']) && ($node->attributes('level') >= $args['end'])) {
            
    $children $node->children();
            foreach (
    $node->children() as $child) {
                if (
    $child->name() == 'ul') {
                    
    $node->removeChild($child);
                }
            }
        }

        if (
    $node->name() == 'ul') {
            
    // remove inaccessable items according to user rights
            
    foreach ($node->children() as $child) {
                if (
    $child->attributes('access') > $user->get('aid'0)) {
                    
    $node->removeChild($child);
                }
            }
            
            
    // set order/first/last for li
            
    $count count($node->children());
            foreach (
    $node->children() as $i => $child) {
                if (
    $i == 0$child->addAttribute('first'1);
                if (
    $i == $count 1$child->addAttribute('last'1);
                
    $child->addAttribute('order'$i 1);
            }
            
            
    // set ul level
            
    if (isset($node->_children[0])) {
                
    $level $node->_children[0]->attributes('level') - $params->get('startLevel');
                
    $css   'level' $level;
                
    $node->attributes('class') ? $node->addAttribute('class'$node->attributes('class') . ' ' $css) : $node->addAttribute('class'$css);
            }
        }

        
    // set item styling
        
    if ($node->name() == 'li') {

            
    $item        $menu->getItem($node->attributes('id'));
            
    $item_params = new JParameter($item->params);
            
    $sfx_params  = new YOOTemplateParameter($params->get('class_sfx'));    
            
    $page_params = new YOOTemplateParameter($item_params->get('pageclass_sfx'));        
            
    $level       $node->attributes('level') - $params->get('startLevel');
            
    $images      $sfx_params->get('images') != 'off';
            
    $color       $page_params->get('itemcolor''');
            
    $css         'level' $level ' item' $node->attributes('order');
            
    $span_css    '';

            if (
    $color$css .= ' '.$color;
            if (
    $node->attributes('first')) $css .= ' first';
            if (
    $node->attributes('last')) $css .= ' last';
            if (isset(
    $node->ul) && ($args['end'] == || $node->attributes('level') < $args['end'])) $css .= ' parent';
            if (isset(
    $path) && in_array($node->attributes('id'), $path)) $css .= ' active';
            if (isset(
    $path) && $node->attributes('id') == $path[0]) $css .= ' current';
            if (
    $item->type == 'separator'$css .= ' separator';

            
    // add a/span css classes
            
    if (isset($node->_children[0])) {
                
    $node->_children[0]->attributes('class') ? $node->_children[0]->addAttribute('class'$node->_children[0]->attributes('class') . ' ' $css) : $node->_children[0]->addAttribute('class'$css);
            }

            
    // add accordion css class 
            
    if (isset($node->ul[0]) && $item->type == 'separator' && $level == 1) {
                
    $css .= ' toggler';
                
    $node->ul[0]->addAttribute('class''accordion');
            }

            
    // add item css classes
            
    $node->attributes('class') ? $node->addAttribute('class'$node->attributes('class') . ' ' $css) : $node->addAttribute('class'$css);

            
    // add item background image
            
    if ($item_params->get('menu_image') && $item_params->get('menu_image') != -1) {
                if (isset(
    $node->_children[0])) {
                    if (
    $images && isset($node->_children[0]->span[0])) {
                        
    $img 'images/stories/'.$item_params->get('menu_image');
                        
    $alt dirname($img).'/'.JFile::stripExt(basename($img)).'_alt.'.JFile::getExt($img);

                        
    // check for alternate image
                        
    if (JFile::exists(JPATH_ROOT.DS.$alt)) {
                            
    $img $alt;
                        }
                        
                        
    $node->_children[0]->span[0]->addAttribute('style''background-image: url('.JURI::base().$img.');');
                        
    $span_css .= 'icon';
                    }
                    if (
    $img $node->_children[0]->getElementByPath('img')) {
                        
    $node->_children[0]->removeChild($img); // remove old item image
                    
    }
                }
            }

            
    // add span css and subtitle span
            
    if (isset($node->_children[0]) && isset($node->_children[0]->span[0])) {
                
    $node->_children[0]->span[0]->addAttribute('class''bg '.$span_css);
                
    $title $node->_children[0]->span[0];
                
    $split explode('||'$title->data(), 2);
                if (
    count($split) == 2) {
                    
    $span =& $node->_children[0]->span[0]->addChild('span', array('class' => 'title'));
                    
    $span->setData(trim($split[0]));
                    
    $span =& $node->_children[0]->span[0]->addChild('span', array('class' => 'subtitle'));
                    
    $span->setData(trim($split[1]));
                }
            }            
        }
        
        
    // remove inactive child items except for accordion
        
    if (!(isset($path) && in_array($node->attributes('id'), $path))) {
            if (isset(
    $args['children']) && !$args['children'])    {
                
    $children $node->children();
                foreach (
    $node->children() as $child) {
                    if (
    $child->name() == 'ul') {
                        
                        
    // dont remove children for accordion
                        
    if (!$child->attributes('class') == 'accordion') {
                            
    $node->removeChild($child);
                        }
                    }
                }
            }
        }

        
    $node->removeAttribute('id');
        
    $node->removeAttribute('rel');
        
    $node->removeAttribute('level');
        
    $node->removeAttribute('access');
        
    $node->removeAttribute('order');
        
    $node->removeAttribute('first');
        
    $node->removeAttribute('last');
    }




     
  2. ufaclub

    ufaclub

    Регистр.:
    1 май 2007
    Сообщения:
    395
    Симпатии:
    17
    так как сделать то? или я не те файлы выложил....
     
  3. SerG63rus

    SerG63rus Создатель

    Регистр.:
    4 окт 2007
    Сообщения:
    34
    Симпатии:
    5
    мне кажется это легче реализовать через yootools accordion
     
  4. fel_71

    fel_71 Постоялец

    Регистр.:
    30 июн 2009
    Сообщения:
    51
    Симпатии:
    37
    советую поставить
     

    Вложения:

  5. Fire-man

    Fire-man Создатель

    Регистр.:
    20 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    SerG63rus, fel_71 - полностю с Вами согласен ) щас сам использую етот модуль - не жалеюсь , все роботает Отличо !
     
Статус темы:
Закрыта.