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

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

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

Помощь Меню в несколько рядов

Тема в разделе "Joomla", создана пользователем sandi, 7 авг 2012.

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

    sandi

    Регистр.:
    30 май 2008
    Сообщения:
    314
    Симпатии:
    165
    Нужно сделать меню, чтобы подкатегории отображались в несколько рядов
    Попробовал сделать для стиля меню Legacy - Horizontal, работает
    1. В файле mod_mainmenu.xml прописал
    Код:
    <param name="cell_count" type="text" default="9" size="5" label="К-во ячеек в строке (для типа меню Legacy - Horizontal)" description="К-во ячеек в строке (для типа меню Legacy - Horizontal)" /> 
    2. В файле legacy.php
    где начинаеться функция
    Код:
    function mosShowHFMenu(& $params, $style = 0)
    прописал
    Код:
    function mosShowHFMenu(& $params, $style = 0)
    {
        $i=0;
        $cell_count = $params->get('cell_count', 9);
        $cell_style='style="text-align:center;width:auto;"';
        $menu = & JSite::getMenu();
        $user = & JFactory::getUser();


    Далее где строки
    Код:
    foreach ($rows as $row)
    {
        if ($row->access <= $user->get('aid', 0)) {
            $links[] = mosGetMenuLink($row, 0, $params);
        }
    }
    заменил
    Код:
    foreach ($rows as $row)
    {
        if ($row->access <= $user->get('aid', 0)) {
     
            switch ($i) {
                case 0:           
                    $links[] = '<td class="td_first" '.$cell_style.'>'.mosGetMenuLink($row, 0, $params).'</td>';
                    break;
                case $cell_count:   
                    $links[] = '</tr><tr><td class="td_first" '.$cell_style.'>'.mosGetMenuLink($row, 0, $params).'</td>';
                    $i=0;
                    break;
                case $cell_count-1:
                    $links[] = '<td class="td_last" '.$cell_style.'>'.mosGetMenuLink($row, 0, $params).'</td>';
                    break;
                default:           
                    $links[] = '<td '.$cell_style.'>'.mosGetMenuLink($row, 0, $params).'</td>';
                    break;
            };
     
            $i++;
        }
    }
    while ($i < $cell_count)    {
        $links[] = '<td>&nbsp;</td>';
        $i++;
    };
     
    }

    в этой же функции закозакоментировал две строчки
    Код:
    default :
                    $spacer_start = $params->get('spacer');
                    $spacer_end = $params->get('end_spacer');
     
                    echo '<table width="100%" border="0" cellpadding="0" cellspacing="1">';
                    echo '<tr>';
    // echo '<td nowrap="nowrap">';
     
                    if ($spacer_end) {
                        echo '<span class="' . $menuclass . '"> ' . $spacer_end . ' </span>';
                    }
     
                    if ($spacer_start) {
                        $html = '<span class="' . $menuclass . '"> ' . $spacer_start . ' </span>';
                        echo implode($html, $links);
                    } else {
                        echo implode('', $links);
                    }
     
                    if ($spacer_end) {
                        echo '<span class="' . $menuclass . '"> ' . $spacer_end . ' </span>';
                    }
     
    // echo '</td>';
                    echo '</tr>';
                    echo '</table>';
                    break;

    Но в каком файле ковырнуть код
    чтобы заставить работать для стиля меню Список
     
  2. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    496
    Симпатии:
    104
    Нужно ковырять в файле /modules/mod_mainmenu/tmpl/default.php
     
  3. Andrey-GW

    Andrey-GW Создатель

    Регистр.:
    30 авг 2012
    Сообщения:
    23
    Симпатии:
    2
    для Joomla 1.5 есть готовый плагин JA Menu Parameters, в нем все быстро настраивается и не надо в коде ковыряться. Для Joomla 1.7-2.5 он не подходит. Так же есть бесплатный модуль IceMegaMenu. Или прикрути к сайту css3 мега меню, готовых вариантов много и практически все они бесплатны, может получится очень эффектно. В мега меню на основе css3 можно не только изображения вставить, но и видео воткнуть.
     
Статус темы:
Закрыта.