Вставка переноса строки в меню Joomla 2.*

Работая над одним сайтом столкнулся с задачей, что в пункты меню сайта (в названия ссылок) нужно вставлять перенос строки (тег br), чтобы ссылки с длинным названием можно было сделать более компактными. Поискав в интернете я нашел немного ответов на свой вопрос, поэтому решил сделать это вручную, а чтобы не забыть решение этой задачи, записал пост на свой блог.

Итак. Меню сайта в шаблон вставляется модулем «Меню», его шаблоны я и решил изменить. Это может сделать даже новичок, который особо не разбирается в php.

Порядок действий (для joomla 2.5.3):

1) Идем в папку джумлы по адресу /modules/mod_menu/tmpl
2) Открываем файл default_url.php
3) В 28, 32 и 37 строках есть такой кусок кода: 

4) Заменяем его на

5) Сохраняем файл. Готово!

Теперь, чтобы вставить перенос строки в пункт меню joomla в названии ссылки в нужном месте вставляем [br] (Вот примеры: скриншот 1, скриншот 2), и этот бб-код будет превращаться в тег <br/>
внутри ссылки.

UPD: Также в папке /modules/mod_menu/tmpl есть другие файлы. Если у Вас перенос строки не вставляется, то попробуйте изменить файл default_component.php также заменив там

на код

Надеюсь статья поможет, тем кто искал ответ на вопрос как вставить тег br в ссылку. Если остались вопросы, форма комментариев ждет Вас 🙂


Если вы вебмастер и хотите пообщаться с другими создателями сайтов, у Вас есть сложности, вопросы и нужна помощь более опытных мастеров посетите Форум WEB мастеров — здесь можно пообщаться, найти или оказать помощь, обсудить насущные вебмастерские вопросы.


Если Вам интересны темы, про которые я пишу в своем блоге, то Вы можете Подписаться на обновления. Подписываться на новости и обновления можно по емайл или через популярные сервисы yandex и google!

Эта запись была опубликована в рубрике PHP кусочки и отмечена метками . Добавить в закладки ссылку.

35 в ответ на Вставка переноса строки в меню Joomla 2.*:

  1. Andrew пишет:

    <<<Теперь, чтобы вставить перенос строки в пункт меню joomla в названии ссылки в нужном месте вставляем [br], и этот бб-код будет превращаться в тег
    внутри ссылки.>>> Где именно вставлять [br]? Заранее мпасибо

  2. Игорь пишет:

    Добрый день!

    Вставил все по инструкции. Пункт меню выходит на экран в таком же виде, без переноса по строкам
    Вот таким образом:

    ОБРАЗОВАТЕЛЬНЫЕ [BR] ПРОГРАММЫ

  3. Игорь пишет:

    В трех местах? 🙂 ставил по инструкции. По крайней мере на копи-пейст меня хватает — руки не подводят 🙂
    Использую шаблон, сделанный своими руками, но меню используются родные Джумлы. Уже голову сломал :(((

  4. Игорь69 пишет:

    Уважаемый автор, отличная идея, но, НЕ ВЫХОДИТ..
    1) Joomla 2.5.7, в файле: /modules/mod_menu/tmpl/default_url.php
    нахожу:
    , Вы правы, они на 28, 32 и 37 строках,
    2) заменяю на:
    <?php echo str_replace('[br]', '’, $linktype); ?>
    Более совпадений нет, сохраняю, перегружаю сервер и как в комменте выше, пункт меню выходит Вот таким образом:
    ОБРАЗОВАТЕЛЬНЫЕ [BR] ПРОГРАММЫ
    Подскажите, что не так? плиз.

  5. Игорь69 пишет:

    Все сделал почти по инструкции, но еще нужно было произвести аналогичную замену в файле:
    default_component.php
    что в той же директории.
    Спасибо Вам большое за труды!!!

  6. Макс пишет:

    НЕ работает однако ваш способ, вставил код в во все места так сказать, но все равно видно [br]… куда копать??

  7. Макс пишет:

    Спасибо большое за ответ ну, а другие файлы это какие??? и где их искать, в той папке я заменил все что можно

    • FaNiska пишет:

      Прочитайте то, что начинается со слов UPD. Используя тот же Notepad++ можете внутри всей папки произвести поиск нужного слова, чтобы найти совпадения и заменить их. Больше ничем не смогу помочь, думайте головой и будьте внимательнее. Не думаю, что у Вас какая-то особая версия Joomla, чтобы описанные действия не сработали.

  8. Vadim пишет:

    А что скажете в плане SEO? Как к этому [br] отнесутся поисковики при наличии ключей в названиях пунктов?

    • FaNiska пишет:

      Этот [br] в исходной коде превращается в обычный тег переноса строки. Как отнесуться? )) Отнесуться также как и к любому тегу переноса строки, так как их на сайте много. Ваш вопрос в целом странный.

  9. Игорь пишет:

    Работает на Joomla 2.5.9. Спасибо

  10. Юля пишет:

    Спасибо!!!! огромнейшее!!!! за ваш пост, решение работает (иначе и быть не должно), версия Joomla 2.5.9, правда пришлось делать замену в 13 файлах, notepad++ помог.

  11. Александр пишет:

    Спасибо! Все работает!

  12. Елена пишет:

    Спасибо! Работает на Joomla 3.1.1.

  13. С первого раза не получиось, но почитав внимательно еще раз у меня все получилось. Читайте внимательно! Нужно изменить два файла.

  14. Павел пишет:

    У меня все получилось. Спасибо!

  15. Юрий пишет:

    А есть возможность уменьшить текст после переноса строки? или вообще хоть как то его редактировать минуя 1ю строку?

  16. Юрий пишет:

    Разобрался, просто добавил еще bb код
    <?php echo str_replace(array('[br]','[small]'),array( '’,»),$linktype); ?>

  17. Денис пишет:

    оооо, как я вам благодарен. Не описать словами

  18. дмитрий пишет:

    Просто, но со вкусом. И никаких сторонних компонентов не требуется. Спасибо

  19. Kim пишет:

    Громадное спасибо)

  20. Ирина пишет:

    Большое спасибо!!! все получилось!!!!

  21. Макс пишет:

    В Joomla 3.3 не работает, поменял в обоих файлах, не работает

  22. Мария пишет:

    Спасибо, на joomla 3.4.4 всё работает!

  23. Антонина пишет:

    Круто — так понятно разжевали, спасибо за такое короткое решение))) надо тоже учить php))

  24. DmBor пишет:

    Привет всем! Сегодня тоже парился с переносом строк в меню и вот что вышло:
    Откройте файл modules\mod_menu\tmpl\default_component.php и поменяйте в строке 26
    Код

    на
    Код
    <?php echo str_replace('//', '’, $linktype); ?>
    // — это разделитель строки, можно два пробела.
    Перенос работает, переносов хоть сколько, но как их сделать разными классами?
    Вот чего наваял: вместо
    $menuitem = explode(» «,$linktype);
    $menuitemclass = 0;
    foreach ($menuitem as $val)
    {
    $menuitemclass = $menuitemclass + 1;
    echo ‘‘.$val.’‘;
    }
    так добавляется класс menuitem+1 к каждой строчке меню.
    А в CSS .menuitem1 {…} .menuitem2 {…} и тд.

  25. Ринат пишет:

    Спасибо большое!!!!!

    На joomla 3.5.0 получилось через файл
    /modules/mod_menu/tmpl/default_component.php
    и в нем изменил строчки 31 и 35.

    Все получилось!!!!!!!!!!!

Добавить комментарий