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

HarD

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
Как обернуть ссылки (item) меню в 4 div, за исключением заголовка (parent item) при стандартном выводе меню в Joomla 1.5 в виде списка.

Нужно вывести оформление ссылки при hover в виде блока с закруглениями.
Понимаю что можно было бы сделать по средством boreder radius, moz.., khtml..., но ie7,8 :(

Понимаю, что нужно изменить файлик \temlates\<шаблон>\html\mod_mainmenu\default.php
Но вот как, помогите пожалуйста, заранее спасибо за любую помощь.
NORTEL it's as simple as 1 2 3
*

effrit

  • Легенда
  • 8869
  • 979 / 9
  • effrit.com
не надо 4. хватит двух
мне надо было для верхнего меню такую фигню сделать, тупо вязл из артистеровского шаблона mod_mainmenu и пофиксил
*

HarD

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
не надо 4. хватит двух
мне надо было для верхнего меню такую фигню сделать, тупо вязл из артистеровского шаблона mod_mainmenu и пофиксил


Спасибо а есть ссылка на него или можешь ли из него выложить архив с mod_mainmenu, буду очень благодарен, спасибо.
NORTEL it's as simple as 1 2 3
*

effrit

  • Легенда
  • 8869
  • 979 / 9
  • effrit.com
в аттаче
default.php кидаем в папку ШАБЛОНА
\html\mod_mainmenu\
картинки в папку с картинками шаба
пример CSS для верхнего меню.

ещё можно хакнуть helper меню.
это проще, но не очень изящно )

[вложение удалено Администратором]
*

HarD

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
Попробовал, пока не помогло:

<div class="menu4" id="menu4">
       <div id="menu4_1" class="div_up_hidden" onmouseover="SetVisible(this,true)" onmouseout="SetVisible(this,false)">   
      <div class="cn tr"></div>
      <div class="content">
            <div class="moduletable">
               <ul class="menu"><li class="parent item2"><a href="#"><span>Новость</span></a>
               <ul>
               <li class="item11"><a href="#"><span>Новости очень длинные новости</span></a></li>
               <li class="item12"><a href="#"><span>Новости</span></a></li>
               <li class="item13"><a href="#"><span>Новости</span></a></li>
               <li class="item14"><a href="#"><span>Новости</span></a></li></ul></li>
               </ul>
            </div>
      </div>
      <div class="cn bl"></div>
      <div class="cn br"></div>
      </div>
</div>

Похоже файлик не подхватился, попробовал напрямую его в модуль, подхватывается но как то странно, все равно divов нет.

Т.е. по сути нужно обернуть ссылки в дивы

<li class="item11"><a href="#"><span>Новости очень длинные новости</span></a></li>
для скругления
NORTEL it's as simple as 1 2 3
*

HarD

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
Убрал пару верхних строчек вверху в файлике default.php вроде начал подхватываться но все равно вывод странный:

<div class="menu4" id="menu4">
       <div id="menu4_1" class="div_up_hidden" onmouseover="SetVisible(this,true)" onmouseout="SetVisible(this,false)">   
      <div class="cn tr"></div>
      <div class="content">
            <div class="moduletable">
               <ul class="menu">
               <li access="0" level="1" id="2"><a href="#"><span>Новости</span></a>
               <ul>
               <li access="0" level="2" id="11"><a href="#"><span>Новости очень длинные новости</span></a></li>
               <li access="0" level="2" id="12"><a href="#"><span>Новости</span></a></li>
               <li access="0" level="2" id="13"><a href="#"><span>Новости</span></a></li>
               <li access="0" level="2" id="14"><a href="#"><span>Новости</span></a></li>
               </ul>
               </li>
               </ul>
            </div>
      </div>
      <div class="cn bl"></div>
      <div class="cn br"></div>
           </div>
</div>
NORTEL it's as simple as 1 2 3
*

effrit

  • Легенда
  • 8869
  • 979 / 9
  • effrit.com
короче хакай
\www\modules\mod_mainmenu\helper.php
так проще и быстрее

ищешь по файлу "href" - места, где формируется вывод ссылок, правишь код, смотришь страницу
*

HarD

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
а меню у тебя какое?
там для горизантального

Вертикальное в виде списка:

т.е. в месте для модуля выводится, при наведении на блок (сначала он как бы прозрачен, при наведении появляется, скриптом):

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

Понимаю что лишний геморой но это все великий IE :)), так бы css3 обошелся, с ним все отлично.

Новости
  Новости очень
  длинные новости
  Новости
  Новости
  Новости
NORTEL it's as simple as 1 2 3
*

Виталик

  • Завсегдатай
  • 1234
  • 130 / 0
можно без обойтись хаков,
в шаблоне меню там где вывод готового хтмл - включить буферизацию вывода, записать html-код меню в переменную и сделать замену

str_replace
("<a""<div><div><div><div><a"$menu_html);
str_replace("</a>""</a></div></div></div></div>"$menu_html);
*

HarD

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
можно без обойтись хаков,
в шаблоне меню там где вывод готового хтмл - включить буферизацию вывода, записать html-код меню в переменную и сделать замену

str_replace
("<a""<div><div><div><div><a"$menu_html);
str_replace("</a>""</a></div></div></div></div>"$menu_html);


Можно об этом поподробнее?
NORTEL it's as simple as 1 2 3
*

Виталик

  • Завсегдатай
  • 1234
  • 130 / 0
в default.php в папке ШАБЛОНА
\html\mod_mainmenu\

замените код файла этим

Код: php
<?php

// no direct access
defined('_JEXEC') or die('Restricted access');


if ( ! defined('modMainMenuXMLCallbackDefined') )
{
function modMainMenuXMLCallback(&$node, $args)
{
$user = &JFactory::getUser();
$menu = &JSite::getMenu();
$active = $menu->getActive();
$path = isset($active)? array_reverse($active->tree) : null;

if (($args['end']) && ($node->attributes('level') >= $args['end']))
{
$children = $node->children();
foreach ($node->children() as $child)
{
if ($child->name() == 'ul') {
$node->removeChild($child);
}
}
}

if ($node->name() == 'ul') {
foreach ($node->children() as $child)
{
if ($child->attributes('access') > $user->get('aid', 0)) {
$node->removeChild($child);
}
}
}

if (($node->name() == 'li') && isset($node->ul)) {
$node->addAttribute('class', 'parent');
}

if (isset($path) && (in_array($node->attributes('id'), $path) || in_array($node->attributes('rel'), $path)))
{
if ($node->attributes('class')) {
$node->addAttribute('class', $node->attributes('class').' active');
} else {
$node->addAttribute('class', 'active');
}
}
else
{
if (isset($args['children']) && !$args['children'])
{
$children = $node->children();
foreach ($node->children() as $child)
{
if ($child->name() == 'ul') {
$node->removeChild($child);
}
}
}
}

if (($node->name() == 'li') && ($id = $node->attributes('id'))) {
if ($node->attributes('class')) {
$node->addAttribute('class', $node->attributes('class').' item'.$id);
} else {
$node->addAttribute('class', 'item'.$id);
}
}

if (isset($path) && $node->attributes('id') == $path[0]) {
$node->addAttribute('id', 'current');
} else {
$node->removeAttribute('id');
}
$node->removeAttribute('rel');
$node->removeAttribute('level');
$node->removeAttribute('access');
}
define('modMainMenuXMLCallbackDefined', true);
}
ob_start();
modMainMenuHelper::render($params, 'modMainMenuXMLCallback');
$menu_html = ob_get_contents();
ob_end_clean();
$menu_html = str_replace("<a", "<div><div><div><div><a", $menu_html);
$menu_html = str_replace("</a>", "</a></div></div></div></div>", $menu_html);
echo $menu_html;

*

HarD

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
в default.php в папке ШАБЛОНА
....

Спасибо большое
NORTEL it's as simple as 1 2 3
*

PashkaRu

  • Давно я тут
  • 952
  • 91 / 4
  • Дедушка Игнат, изыди ((((
ух, как интересно!  : )

мне кажется, не в закладки а в FAQ
+
*

ankoch

  • Захожу иногда
  • 498
  • 50 / 1
Воспользовался, отличный способ, только я не дивами обернул, а спаны добавил внутрь <a>, чтобы менять фон при наведении. Виталик спасибо, +1
*

lamrak

  • Новичок
  • 4
  • 0 / 0
Спасибо, и я воспользовался.
*

v3rsus

  • Новичок
  • 16
  • 1 / 0
Классная идея, спасибо. +1
*

chakivetal

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
  • Самомученик
ankoch, а можно взглянут на кусочек CSS со span-ами? На div-ах горизонтальное сделал, а вертикальное естественно разъехалось по высоте, div заменил на span - горизонтальное ушло в минус ... Короче беда!

ПОБЕДИЛ! )) Как удалить пост не пойму... Всем огромное СПАСИБО! Плюсик полетел.
« Последнее редактирование: 16.08.2011, 20:53:16 от chakivetal »
*

PashkaRu

  • Давно я тут
  • 952
  • 91 / 4
  • Дедушка Игнат, изыди ((((
ну вы, блин, даете....

display:block и display:inline ваще никто не отменял...
+
*

DariMard

  • Осваиваюсь на форуме
  • 27
  • 2 / 0
Всем привет, а как можно обернуть в дивы не каждую ссылку а сам пункт меню?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пункт меню

Автор s120367

Ответов: 0
Просмотров: 276
Последний ответ 03.06.2018, 13:02:55
от s120367
Большое меню Joomla

Автор Amakeeva

Ответов: 1
Просмотров: 439
Последний ответ 22.01.2018, 13:17:45
от effrit
Как можно отображать имя пользователя в название меню?

Автор selimoff

Ответов: 27
Просмотров: 3637
Последний ответ 02.01.2018, 15:24:44
от logan-19
как сделать пункт меню не кликабельным?

Автор qweqweqwe

Ответов: 13
Просмотров: 6494
Последний ответ 07.09.2017, 01:45:49
от forzi
Сдвинуть пункты меню в левое положение

Автор wectra

Ответов: 6
Просмотров: 710
Последний ответ 12.07.2017, 21:09:01
от wectra