Форум русской поддержки Joomla!® CMS
07.12.2016, 18:22:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Меню в две строчки с разделителем || - ?

 (Прочитано 268 раз)
0 Пользователей и 1 Гость смотрят эту тему.
warlocksp
Живу я здесь
******

Репутация: +11/-4
Offline Offline

Пол: Мужской
Сообщений: 886


Красота и мудрость - в простоте....


« : 23.01.2016, 18:13:19 »

Добрый день,

Подскажите пожалуйста:
Заменил в mod_menu файл - default_component.php строчку:
Код:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
на строку:
Код:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo str_replace('||', '<br>', $linktype); ?></a><?php
Теперь меню выводит в две строчки, то есть все что после "||" выводит во вторую строку...

Но как к второй строке применить отдельный класс в CSS, то есть как прописать этот класс в этом коде?
Мне нужно что б вторая строка допустим выводилась мелким шрифтом...
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7773



« Ответ #1 : 23.01.2016, 18:16:34 »

используйте не str_replaсe, а explode для того чтобы разбить строку по разделителю || в массив. и затем выводите отдельно первый и второй элементы массива
Записан
warlocksp
Живу я здесь
******

Репутация: +11/-4
Offline Offline

Пол: Мужской
Сообщений: 886


Красота и мудрость - в простоте....


« Ответ #2 : 23.01.2016, 18:19:50 »

используйте не str_replaсe, а explode для того чтобы разбить строку по разделителю || в массив. и затем выводите отдельно первый и второй элементы массива
просто в этом не селен,
если не затруднит пропишите как правильно это реализовать, на форуме не нашел...
то есть как должна выглядеть строка, за этим и обратился за помощью...
Записан
warlocksp
Живу я здесь
******

Репутация: +11/-4
Offline Offline

Пол: Мужской
Сообщений: 886


Красота и мудрость - в простоте....


« Ответ #3 : 23.01.2016, 18:37:03 »

Вот вариант:

Код:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php $word = explode('||',$linktype); echo str_replace($word[0],'<span class="firstword">'.$word[0].'</span>', $linktype); ?></a><?php

Только на экран вывелось сам разделитель || и стиль поменялся в первой строке а нужно чтоб стиль "class="firstword" относился ко второй...
Что я не так прописал?
« Последнее редактирование: 24.01.2016, 11:12:59 от warlocksp » Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #4 : 23.01.2016, 19:15:16 »

Вот моя попутка:

Код:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php $word = explode('||',$linktype); echo str_replace($word[0],'<span class="firstword">'.$word[0].'</span>', $linktype); ?></a><?php

Только на экран вывелось сам разделитель || и стиль поменялся в первой строке а нужно чтоб стиль "class="firstword" относился ко второй...
Что я не так прописал?

Нафига там str_replace ? Выводи
<span class="first">$word[0]</span>
<span class="last">$word[1]</span>
Записан
warlocksp
Живу я здесь
******

Репутация: +11/-4
Offline Offline

Пол: Мужской
Сообщений: 886


Красота и мудрость - в простоте....


« Ответ #5 : 24.01.2016, 11:21:24 »

Е
Нафига там str_replace ? Выводи
<span class="first">$word[0]</span>
<span class="last">$word[1]</span>

Если не затруднить напишите как полностью будет выглядеть строка...
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #6 : 24.01.2016, 11:52:43 »

Вот этот кусок в цикл добавить, где пункты меню перебираются
Код
$pos = mb_strpos($linktype, '||');
if ($pos !== false) {
$linktype = '<span class="title">'.mb_substr($linktype, 0, $pos).'</span><span class="subtitle">'.mb_substr($linktype, $pos + 2).'</span>';
}
 
А эту строку трогать не надо
Код
<a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a>
Записан
warlocksp
Живу я здесь
******

Репутация: +11/-4
Offline Offline

Пол: Мужской
Сообщений: 886


Красота и мудрость - в простоте....


« Ответ #7 : 24.01.2016, 12:31:05 »

Вот этот кусок в цикл добавить, где пункты меню перебираются
Код
$pos = mb_strpos($linktype, '||');
if ($pos !== false) {
$linktype = '<span class="title">'.mb_substr($linktype, 0, $pos).'</span><span class="subtitle">'.mb_substr($linktype, $pos + 2).'</span>';
}
 
А эту строку трогать не надо
Код
<a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a>

прочитай первый пост...
попросил как правильно указать (прописать) класс в строке и все...
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #8 : 24.01.2016, 12:37:08 »

прочитай первый пост...
попросил как правильно указать (прописать) класс в строке и все...
Прочитал ! И выдал тебе готовое на 100% решение !
В /modules/mod_menu/tmpl/default_component.php перед этим
Код
switch ($item->browserNav)
добавляешь
Код
$pos = mb_strpos($linktype, '||');
if ($pos !== false) {
$linktype = '<span class="title">'.mb_substr($linktype, 0, $pos).'</span><span class="subtitle">'.mb_substr($linktype, $pos + 2).'</span>';
}
Прописываешь в CSS классы для:
title и subtitle

.... радуешься жизни...
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Online Online

Сообщений: 7773



« Ответ #9 : 24.01.2016, 12:46:43 »

mb_strpos JString::strpos
и универсально если, то надо еще в trim обернуть, для случая если вдруг захотят (а ведь захотят Azn ) написать
Цитировать
Первая строка || вторая строка
Записан
warlocksp
Живу я здесь
******

Репутация: +11/-4
Offline Offline

Пол: Мужской
Сообщений: 886


Красота и мудрость - в простоте....


« Ответ #10 : 24.01.2016, 12:51:35 »

Прочитал ! И выдал тебе готовое на 100% решение !
В /modules/mod_menu/tmpl/default_component.php перед этим
Код
switch ($item->browserNav)
добавляешь
Код
$pos = mb_strpos($linktype, '||');
if ($pos !== false) {
$linktype = '<span class="title">'.mb_substr($linktype, 0, $pos).'</span><span class="subtitle">'.mb_substr($linktype, $pos + 2).'</span>';
}
Прописываешь в CSS классы для:
title и subtitle

.... радуешься жизни...

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

На конец решение...
Просто куча лишних сообщений...
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet