abk400
Новичок
Репутация: +0/-0
Offline
Сообщений: 4
|
 |
« : 12.03.2011, 20:03:02 » |
|
Добрый вечер, использую стандартный модуль вывода меню вот собственно результат  как сделать что бы "Экскурсии по Киеву" были в 2 строчки? Экскурсии по Киеву Подскажите пожалуйста 
|
|
|
|
|
Записан
|
|
|
|
asomnia
Давно я тут
  
Репутация: +11/-0
Offline
Пол: 
Сообщений: 208
|
 |
« Ответ #1 : 12.04.2011, 16:39:34 » |
|
а каким образом вы выводите меню ?
таблицы, списки ?
|
|
|
|
|
Записан
|
|
|
|
CTPZ
Давно я тут
  
Репутация: +20/-5
Offline
Пол: 
Сообщений: 345
|
 |
« Ответ #2 : 12.04.2011, 21:19:28 » |
|
это можно например через базу сделать
|
|
|
|
|
Записан
|
|
|
|
|
Efanych
|
 |
« Ответ #3 : 12.04.2011, 21:35:51 » |
|
как сделать что бы "Экскурсии по Киеву" были в 2 строчки? Ограничить ширину, чтоб 2 слова не влезли. width:150px; к примеру.
|
|
|
|
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +201/-0
Offline
Пол: 
Сообщений: 1682
Добрый зайка
|
 |
« Ответ #4 : 12.04.2011, 21:58:34 » |
|
По-хорошему, надо: 1. вынести хелпер в папку с шаблоном 2. написать регулярное выражение, которое бы делило записи типа "Экскурсии|по Киеву" на два тэга, до символа | (просто для примера, можете другой какой символ заюзать) и после. 3. в пунктах меню так и писать, с разделителем прям в названии. Первый пункт не принципиален.
|
|
|
|
|
Записан
|
|
|
|
CTPZ
Давно я тут
  
Репутация: +20/-5
Offline
Пол: 
Сообщений: 345
|
 |
« Ответ #5 : 13.04.2011, 22:48:39 » |
|
все горахдо проще. спроси в личку отвечу
|
|
|
|
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +201/-0
Offline
Пол: 
Сообщений: 1682
Добрый зайка
|
 |
« Ответ #6 : 26.04.2011, 12:29:08 » |
|
Мне интересно как проще сделать. Отпиши пожалуйста сюда. Продублировал в личку. p.s. Без установки сторонних разрешений и хаков конечно. Если работать только в папке темплейта я лучшего способа чем предложил пока не знаю. Буду очень признателен за более простое решение.
|
|
|
|
|
Записан
|
|
|
|
|
dynamit
|
 |
« Ответ #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 »
|
Записан
|
|
|
|
|
Taatshi
|
 |
« Ответ #8 : 26.04.2011, 15:43:57 » |
|
я проще делала - ограничить ширину, как выше писали, а высоту поставить в "auto" - и все. подробнее - дайте ссылку на сайт
|
|
|
|
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +201/-0
Offline
Пол: 
Сообщений: 1682
Добрый зайка
|
 |
« Ответ #9 : 26.04.2011, 20:29:58 » |
|
dynamit, спасибо. У меня аналогичный рецепт, тоже с разделителем |, но там коду больше (мапед не мой). Я всё-таки верстак, а не прогер. Зато <br> здесь можно не писать. css`ом можно на две строки разнести.
|
|
|
|
|
Записан
|
|
|
|
|
SSStylish
|
 |
« Ответ #10 : 04.05.2011, 11:05:09 » |
|
Рецепт с разделителем не есть гуд с точки зрения СЕО при наличии ключей в названиях пунктов. Наши методы - CSS
|
|
|
|
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +201/-0
Offline
Пол: 
Сообщений: 1682
Добрый зайка
|
 |
« Ответ #11 : 04.05.2011, 11:11:14 » |
|
Отчего же? Чем плох пункт меню <a><span>Наша </span><span>компания</span><a>? Про <br> согласен, не айс. Лучше двумя любыми инлайновскими тэгами разделить и в ксс уже разнести.
|
|
|
|
|
Записан
|
|
|
|
st.smolyakov
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 30
|
 |
« Ответ #12 : 11.07.2011, 17:23:44 » |
|
а если необходима обратная задача: сайт: http://smolyakov.com.ua там справа в меню "Статьи выводятся в две строчки - получается не красиво. как сделать что выводились в одну строчку независимо от длины пункта меню Заранее спасибо
|
|
|
|
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +201/-0
Offline
Пол: 
Сообщений: 1682
Добрый зайка
|
 |
« Ответ #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
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 32
|
 |
« Ответ #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
|
 |
« Ответ #15 : 25.08.2011, 02:31:47 » |
|
У меня этот метод почему-то не сработал. Вернее сработал, но не совсем. Меню "развалилось" и стало не горизонтальным, а вертикальным.
Копать CSS
|
|
|
|
|
Записан
|
|
|
|
elscept
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 32
|
 |
« Ответ #16 : 26.08.2011, 13:09:55 » |
|
Копать CSS
Точно! Добавил CSS свойство float: left для меню и все встало на свои места.
|
|
|
|
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +201/-0
Offline
Пол: 
Сообщений: 1682
Добрый зайка
|
 |
« Ответ #17 : 26.08.2011, 13:57:25 » |
|
Точно! Добавил CSS свойство float: left для меню и все встало на свои места.
Лучше ...span {display:block;}. Флоатом вы элементы из потока вырываете.
|
|
|
|
|
Записан
|
|
|
|
elscept
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 32
|
 |
« Ответ #18 : 10.01.2012, 19:13:39 » |
|
А может кто-то подсказать как эту фишку реализовать на Joomla 1.7?
|
|
|
|
« Последнее редактирование: 10.01.2012, 21:30:46 от elscept »
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +201/-0
Offline
Пол: 
Сообщений: 1682
Добрый зайка
|
 |
« Ответ #19 : 10.01.2012, 19:28:41 » |
|
1. Сначала сделайте альтернативный макет вывода меню, например так, как я здесь расписывал. 2. Потом назначьте его в настройках модуля. 3. Далее в topmenu_component.php и topmenu_component.php пишем тот же рецепт, только применительно к $item->title: 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
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 32
|
 |
« Ответ #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
Группа развития
   
Репутация: +201/-0
Offline
Пол: 
Сообщений: 1682
Добрый зайка
|
 |
« Ответ #21 : 11.01.2012, 15:59:19 » |
|
Файл целиком: <?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;
|
|
|
|
|
Записан
|
|
|
|
|
Poznakomlus
|
 |
« Ответ #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
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 32
|
 |
« Ответ #23 : 12.01.2012, 19:42:09 » |
|
Shustry, Poznakomlus, спасибо за помощь. Все получилось. Ловите "+" 
|
|
|
|
|
Записан
|
|
|
|
|