0 Пользователей и 1 Гость просматривают эту тему.
  • 23 Ответов
  • 10579 Просмотров
*

abk400

  • Новичок
  • 5
  • 0 / 0
Меню в 2 строчки
« : 12.03.2011, 19:03:02 »
Добрый вечер, использую стандартный модуль вывода меню
вот собственно результат

как сделать что бы "Экскурсии по Киеву"  были в 2 строчки?

Экскурсии
 по Киеву

Подскажите пожалуйста :(
*

asomnia

  • Захожу иногда
  • 183
  • 12 / 0
Re: Меню в 2 строчки
« Ответ #1 : 12.04.2011, 16:39:34 »
а каким образом вы выводите меню ?

таблицы, списки ?
*

CTPZ

  • Захожу иногда
  • 305
  • 24 / 5
Re: Меню в 2 строчки
« Ответ #2 : 12.04.2011, 21:19:28 »
это можно например через базу сделать
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Меню в 2 строчки
« Ответ #3 : 12.04.2011, 21:35:51 »
Цитировать
как сделать что бы "Экскурсии по Киеву"  были в 2 строчки?
Ограничить ширину, чтоб 2 слова не влезли.
 width:150px; к примеру.
Создание сайтов, шаблонов, помощь в решении проблем.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: Меню в 2 строчки
« Ответ #4 : 12.04.2011, 21:58:34 »
По-хорошему, надо:
1. вынести хелпер в папку с шаблоном
2. написать регулярное выражение, которое бы делило записи типа "Экскурсии|по Киеву" на два тэга, до символа | (просто для примера, можете другой какой символ заюзать) и после.
3. в пунктах меню так и писать, с разделителем прям в названии.
Первый пункт не принципиален.
*

CTPZ

  • Захожу иногда
  • 305
  • 24 / 5
Re: Меню в 2 строчки
« Ответ #5 : 13.04.2011, 22:48:39 »
все горахдо проще. спроси в личку отвечу
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: Меню в 2 строчки
« Ответ #6 : 26.04.2011, 12:29:08 »
Мне интересно как проще сделать. Отпиши пожалуйста сюда.
Продублировал в личку.
p.s. Без установки сторонних разрешений и хаков конечно. Если работать только в папке темплейта я лучшего способа чем предложил пока не знаю. Буду очень признателен за более простое решение.
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Re: Меню в 2 строчки
« Ответ #7 : 26.04.2011, 15:11:37 »
В факе эту тему почему-то удалили.

В файле modules/mod_mainmenu/helper.php после строки 297 - $tmp = clone($item); заменяем:
Код
$tmp->name = '<span><![CDATA['.$item->name.']]></span>';
на
Код
if (strpos("|",$item->name)) {
  $tmp->name = '<span><![CDATA['.$item->name.']]></span>';
} else {
  $pmenu = $item->name;
  $pmenu = explode("|",$pmenu);
  $tmp->name = '<span class="pname">'.$pmenu[0].'</span><br /><span class="sname">'.$pmenu[1].'</span>';
}
Разделитель в меню - |

Т.е. в случае ТС -  Экскурсии | по Киеву
« Последнее редактирование: 26.04.2011, 15:14:39 от dynamit »
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Taatshi

  • Глобальный модератор
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Меню в 2 строчки
« Ответ #8 : 26.04.2011, 15:43:57 »
я проще делала - ограничить ширину, как выше писали, а высоту поставить в "auto" - и все. подробнее - дайте ссылку на сайт
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: Меню в 2 строчки
« Ответ #9 : 26.04.2011, 20:29:58 »
dynamit, спасибо. У меня аналогичный рецепт, тоже с разделителем |, но там коду больше (мапед не мой). Я всё-таки верстак, а не прогер. Зато <br> здесь можно не писать. css`ом можно на две строки разнести.
*

SSStylish

  • Захожу иногда
  • 197
  • 10 / 0
Re: Меню в 2 строчки
« Ответ #10 : 04.05.2011, 11:05:09 »
Рецепт с разделителем не есть гуд с точки зрения СЕО при наличии ключей в названиях пунктов. Наши методы - CSS
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: Меню в 2 строчки
« Ответ #11 : 04.05.2011, 11:11:14 »
Отчего же? Чем плох пункт меню <a><span>Наша </span><span>компания</span><a>? Про <br> согласен, не айс. Лучше двумя любыми инлайновскими тэгами разделить и в ксс уже разнести.
*

st.smolyakov

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Меню в 2 строчки
« Ответ #12 : 11.07.2011, 17:23:44 »
а если необходима обратная задача:
сайт: http://smolyakov.com.ua
там справа в меню "Статьи выводятся в две строчки - получается не красиво. как сделать что выводились в одну строчку независимо от длины пункта меню
Заранее спасибо
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: Меню в 2 строчки
« Ответ #13 : 12.07.2011, 06:07:31 »
Код
{white-space:nowrap;}
У вас там разное оформление для строк, придёцо всё переделывать. Например, так:
Код
#gk-nav #gk-menu span {
display:inline;
float:none;
text-align:left;
white-space:nowrap;
line-height:45px;
margin:0;
padding:0;
font-family:"Comic Sans MS",cursive;
font-size:20px;
font-weight:400;
font-style:normal;
color:#E0C771;
}
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Меню в 2 строчки
« Ответ #14 : 23.08.2011, 20:03:40 »
В файле modules/mod_mainmenu/helper.php после строки 297 - $tmp = clone($item); заменяем:
Код
$tmp->name = '<span><![CDATA['.$item->name.']]></span>';
на
Код
if (strpos("|",$item->name)) {
  $tmp->name = '<span><![CDATA['.$item->name.']]></span>';
} else {
  $pmenu = $item->name;
  $pmenu = explode("|",$pmenu);
  $tmp->name = '<span class="pname">'.$pmenu[0].'</span><br /><span class="sname">'.$pmenu[1].'</span>';
}
Разделитель в меню - |
У меня этот метод почему-то не сработал. Вернее сработал, но не совсем. Меню "развалилось" и стало не горизонтальным, а вертикальным.
« Последнее редактирование: 23.08.2011, 20:06:47 от elscept »
*

SSStylish

  • Захожу иногда
  • 197
  • 10 / 0
Re: Меню в 2 строчки
« Ответ #15 : 25.08.2011, 02:31:47 »
У меня этот метод почему-то не сработал. Вернее сработал, но не совсем. Меню "развалилось" и стало не горизонтальным, а вертикальным.

Копать CSS
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Меню в 2 строчки
« Ответ #16 : 26.08.2011, 13:09:55 »
Копать CSS
Точно! Добавил CSS свойство float: left для меню и все встало на свои места.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: Меню в 2 строчки
« Ответ #17 : 26.08.2011, 13:57:25 »
Точно! Добавил CSS свойство float: left для меню и все встало на свои места.
Лучше ...span {display:block;}. Флоатом вы элементы из потока вырываете.
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Меню в 2 строчки
« Ответ #18 : 10.01.2012, 19:13:39 »
А может кто-то подсказать как эту фишку реализовать на Joomla 1.7?
« Последнее редактирование: 10.01.2012, 21:30:46 от elscept »
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: Меню в 2 строчки
« Ответ #19 : 10.01.2012, 19:28:41 »
1. Сначала сделайте альтернативный макет вывода меню, например так, как я здесь расписывал.
2. Потом назначьте его в настройках модуля.
3. Далее в topmenu_component.php и topmenu_component.php пишем тот же рецепт, только применительно к $item->title:

Код: php
if (strpos("|",$item->title)) {
  $item->title = '<span><![CDATA['.$item->title.']]></span>';
} else {
  $pmenu = $item->title;
  $pmenu = explode("|",$pmenu);
  $item->name = '<span class="pname">'.$pmenu[0].'</span><br /><span class="sname">'.$pmenu[1].'</span>';
}
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Меню в 2 строчки
« Ответ #20 : 11.01.2012, 15:51:43 »
Прошу прощения, но не совсем понял куда именно вставлять этот код
Код
if (strpos("|",$item->title)) {
  $item->title = '<span><![CDATA['.$item->title.']]></span>';
} else {
  $pmenu = $item->title;
  $pmenu = explode("|",$pmenu);
  $item->name = '<span class="pname">'.$pmenu[0].'</span><br /><span class="sname">'.$pmenu[1].'</span>';
}
 

Пробовал заменять им этот
Код
if ($item->menu_image) {
$item->params->get('menu_text', 1 )?
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><span class="image-title">'.$item->title.'</span> ' :
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
}
else { $linktype = $item->title;
}
Но тогда текст в меню просто пропадает.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: Меню в 2 строчки
« Ответ #21 : 11.01.2012, 15:59:19 »
Файл целиком:
Код: php
<?php
/**
 * @version $Id: default_component.php 21322 2011-05-11 01:10:29Z dextercowley $
 * @package Joomla.Site
 * @subpackage mod_menu
 * @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access.
defined('_JEXEC') or die;

// Note. It is important to remove spaces between elements.
$class = $item->anchor_css ? 'class="'.$item->anchor_css.'" ' : '';
$title = $item->anchor_title ? 'title="'.$item->anchor_title.'" ' : '';
if ($item->menu_image) {
$item->params->get('menu_text', 1 )?
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><span class="image-title">'.$item->title.'</span> ' :
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
}
else { $linktype = $item->title;
}

//начало вставки
if (strpos("|",$item->title)) {
  $item->title = '<span><![CDATA['.$item->title.']]></span>';
} else {
  $pmenu = $item->title;
  $pmenu = explode("|",$pmenu);
  $item->title = '<span class="pname">'.$pmenu[0].'</span><br /><span class="sname">'.$pmenu[1].'</span>';
}
//конец вставки

switch ($item->browserNav) :
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 1:
// _blank
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 2:
// window.open
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a>
<?php
break;
endswitch;
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Меню в 2 строчки
« Ответ #22 : 11.01.2012, 17:15:37 »
if (strpos("|",$item->title)) так ошибочно
Правильно так будет default_url.php
Не забываем перед разделителем ставить пробел. Чтобы поисковики не читали Васяздесь. А так Вася Здесь
Код
<?php
/**
 * @version $Id: default_url.php 21322 2011-05-11 01:10:29Z dextercowley $
 * @package Joomla.Site
 * @subpackage mod_menu
 * @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access.
defined('_JEXEC') or die;

// Note. It is important to remove spaces between elements.
$class = $item->anchor_css ? 'class="'.$item->anchor_css.'" ' : '';
$title = $item->anchor_title ? 'title="'.$item->anchor_title.'" ' : '';
if ($item->menu_image) {
$item->params->get('menu_text', 1 )?
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" /><span class="image-title">'.$item->title.'</span> ' :
$linktype = '<img src="'.$item->menu_image.'" alt="'.$item->title.'" />';
}
else { $linktype = $item->title;
}

$pmenu = explode("|", $item->title);
switch ($item->browserNav) :
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>>
<?php if ($pmenu[1]){
echo $pmenu[0]."<span>".$pmenu[1]."</span>";
} else {
echo $pmenu[0];
} ?>
</a><?php
break;
case 1:
// _blank
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 2:
// window.open
$attribs = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'.$params->get('window_open');
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','<?php echo $attribs;?>');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
endswitch;

*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Меню в 2 строчки
« Ответ #23 : 12.01.2012, 19:42:09 »
Shustry, Poznakomlus, спасибо за помощь. Все получилось. Ловите "+"  ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ширина меню

Автор alex86r93

Ответов: 5
Просмотров: 3423
Последний ответ 14.06.2018, 05:13:50
от KANEGI
как сделать кнопки меню!

Автор Millenium_3000

Ответов: 10
Просмотров: 9656
Последний ответ 17.08.2017, 17:24:12
от Intrande
Вопрос по добавлению тега в МЕНЮ j 1.5

Автор berTalino

Ответов: 12
Просмотров: 2944
Последний ответ 29.03.2017, 16:20:43
от berTalino
Как увеличить ширину левого меню?

Автор afina2009

Ответов: 8
Просмотров: 2360
Последний ответ 09.04.2016, 23:00:36
от afina2009
Плавный якорь из меню на Jquery

Автор Timerlan

Ответов: 19
Просмотров: 2780
Последний ответ 04.02.2016, 03:54:16
от Fedor Vlasenko