/var/log/life.log
Блог программиста из солнечной Бурятии

Скрытие пункта меню по умолчанию

Случается так, что нет необходимости показывать в меню пункт по умолчанию, а бывает и необходимость убрать этот пункт меню. Но в Joomla обязательно должен быть пункт меню по умолчанию, чтобы избавится от показа оного, нужно в файле modules/mod_mainmenu/helper.php в начале цикла

while (count($rows) && !is_null($row = array_shift($rows)))
{
...
}

добавить

if ($row->id == 1) continue;

в данном случае 1 это ItemId пункта меню, который необходимо скрыть.
UPD:
Чтобы в Joomla 1.7 скрыть главную нужно после

{
    unset($items[$i]);
    continue;
}

Добавить

if ($item->id == 1){
    unset($items[$i]);
    continue;
}

18 комментариев на запись «Скрытие пункта меню по умолчанию»

  1. фыыф пишет:

    так и не понял куда надо вставить эту строку if ($row->id == 1) continue;

  2. VampiRUS пишет:

    вставлять между {}, в районе 51 строки

  3. фыыф пишет:

    не получилось, блин

  4. фыыф пишет:

    другие варианты есть??

  5. VampiRUS пишет:

    хм, как делаешь? должно быть
    while (count($rows) && !is_null($row = array_shift($rows)))
    {
    if ($row->id == 1) continue;
    надо в начало цикла вставлять, может id меню неправильно написал?

  6. фыыф пишет:

    Parse error: syntax error, unexpected T_ELSE in /home/usmend/public_html/modules/mod_mainmenu/helper.php on line 51

  7. фыыф пишет:

    VampiRUS У ВАС ЕСТЬ АСЯ?

  8. VampiRUS пишет:

    есть jabber 🙂
    если у тебя квип инфиум, то он поддерживает jabber
    vampirus@jabber.ru

  9. Ковалёв пишет:

    Полезная штука. Сам когда то безрезультатно пытался скрыть пункт меню по умолчанию. В WP это «немного» проще.

  10. Ковалёв пишет:

    Полезная штука. Сам когда то безрезультатно пытался скрыть пункт меню по умолчанию. В WP это «немного» проще.

  11. Pavel S пишет:

    Не всегда пункт меню по-умолчанию = с id = 1. Я сдела проверку по другому

    if ($row->home == 1) continue;

  12. Avd1 пишет:

    А Вы не пробовали просто не цеплять к модулю меню то меню в котором находится пункт меню по-умолчанию? Расскажите лучше — как сделать так, что б при входе на сайт меня забрасівало не в английский перевод пункта меню по умолчанию, (если он существует) а в его оригинал. Или єто от шаблона зависит?

  13. Chick пишет:

    Странно, но у меня файл называется helpeR.php, а не helperS.php как указанно в статье…

    Не помогло =(
    Перепробовал все способы.

    (1,5)

  14. q-sco пишет:

    Спасибо, у меня все получилось!! http://www.q-sco.ru/ + сделал еще на http://vitrail.spb.ru/ , у меня там затык был, так как использовал 2 шаблона)) 

  15. ssonics пишет:

    Как сделать тоже самое в joomla 2.5. В старой версии все сделал, а с новой не могу найти куда что изменить.

  16. Alel пишет:

    Отличный сайт, пользуюсь им) и вот этим где есть бесплатные расширения премиум http://faa.su

  17. VampiRUS пишет:

    На самом деле правильнее и проще просто переместить главную страницу в другое меню, которое не отображается на сайте.

  18. Вячеслав Сергеевич пишет:

    На Joomla 2.5 удалось победить так:
    Найдите эти строчки и добавте if и unset с continue

    $lastitem = 0;

    if ($items) {
    foreach($items as $i => $item)
    {

    if ($i == 0) //вот это вставляем
    { //вот это вставляем
    unset($items[$i]); //вот это вставляем
    continue; //вот это вставляем
    } //вот это вставляем

    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;
    }

Оставить комментарий

Вы так же можете оставить комментарий используя ваш OpenId, для этого нужно войти.