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

Статус
В этой теме нельзя размещать новые ответы.

sandi

Регистрация
30 Май 2008
Сообщения
313
Реакции
169
Нужно сделать меню, чтобы подкатегории отображались в несколько рядов
Попробовал сделать для стиля меню 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();
[/spoil]

Далее где строки
Код:
foreach ($rows as $row)
{
    if ($row->access <= $user->get('aid', 0)) {
        $links[] = mosGetMenuLink($row, 0, $params);
    }
}
заменил
[spoil]
Код:
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++;
};
 
}
[/spoil]
в этой же функции закозакоментировал две строчки
[spoil]
Код:
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;
Но в каком файле ковырнуть код
чтобы заставить работать для стиля меню Список
 
Но в каком файле ковырнуть код
чтобы заставить работать для стиля меню Список
Нужно ковырять в файле /modules/mod_mainmenu/tmpl/default.php
 
для Joomla 1.5 есть готовый плагин JA Menu Parameters, в нем все быстро настраивается и не надо в коде ковыряться. Для Joomla 1.7-2.5 он не подходит. Так же есть бесплатный модуль IceMegaMenu. Или прикрути к сайту css3 мега меню, готовых вариантов много и практически все они бесплатны, может получится очень эффектно. В мега меню на основе css3 можно не только изображения вставить, но и видео воткнуть.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху