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

kolhoz

  • Захожу иногда
  • 199
  • 0 / 0
Есть стандартное меню Joomla. Мне нужно ко всем элементам li добавить классы-уровни типа level-1, level-2 и т.д.

Вот HTML, код меню, который сейчас есть

Код
<div class="moduletable testmenu">
<nav class="primaryLeftNavNew">
<ul class="nav menu">
<li class="item item-163 deeper  parent"><a href="/foundation.html">Foundation</a>
<ul class="nav-child unstyled small sub1">
<li class="item item-221 deeper  parent"><a href="/foundation/foundation-college.html">Foundation в колледже</a>
<ul class="nav-child unstyled small sub2">
<li class="item item-394"><a href="/foundation/foundation-college/foundation-v-kolledzhakh-irlandii.html">Foundation в колледжах Ирландии</a></li>
</ul>
</li>
<li class="item item-330 deeper  parent"><a href="/foundation/foundation-v-universitete.html">Foundation в университете</a>
<ul class="nav-child unstyled small sub2">
<li class="item item-395"><a href="/foundation/foundation-v-universitete/foundation-v-universitetakh-velikobritanii.html">Foundation в университетах Великобритании</a></li>
<li class="item item-396"><a href="/foundation/foundation-v-universitete/foundation-v-universitetakh-irlandii.html">Foundation в университетах Ирландии</a></li>
</ul>
</li>
<li class="item item-223 deeper  parent"><a href="/foundation/academic-programm.html">Краткосрочные программы</a>
<ul class="nav-child unstyled small sub2">
<li class="item item-351"><a href="/foundation/academic-programm/university-pathway.html">University Pathway </a></li>
<li class="item item-357"><a href="/foundation/academic-programm/academic-course.html">Краткосрочный академический курс</a></li>
</ul>
</li>
</ul>
</li>
<li class="item item-164 deeper  parent"><a href="/bachelor.html">Bachelor Degree</a>
<ul class="nav-child unstyled small sub1">
<li class="item item-226 deeper  parent"><a href="/bachelor/bachelor-uk.html">Бакалавриат в Великобритании</a>
<ul class="nav-child unstyled small sub2">
<li class="item item-362"><a href="/bachelor/bachelor-uk/hnc-hnd.html">HNC/HND</a></li>
<li class="item item-393"><a href="/bachelor/bachelor-uk/uk-uni-ranking.html">Рейтинг университетов UK</a></li>
</ul>
</li>
<li class="item item-348 deeper  parent"><a href="/bachelor/bakalavriat-v-ssha.html">Бакалавриат в США</a>
<ul class="nav-child unstyled small sub2">
<li class="item item-527"><a href="/bachelor/bakalavriat-v-ssha/associate-degree.html">Associate Degree</a></li>
</ul>
</li>
<li class="item item-541"><a href="/bachelor/bakalavriat-v-germanii.html">Бакалавриат в Германии</a></li>
<li class="item item-567"><a href="/bachelor/bakalavriat-v-kanade.html">Бакалавриат в Канаде</a></li>
<li class="item item-540"><a href="/bachelor/bakalavriat-v-niderlandakh.html">Бакалавриат в Нидерландах</a></li>
<li class="item item-532"><a href="/bachelor/bakalavriat-v-knr.html">Бакалавриат в КНР</a></li>
<li class="item item-524"><a href="/bachelor/mirovoj-rejting-universitetov.html">Мировой рейтинг университетов</a></li>
</ul>
</li>
<li class="item item-165 deeper  parent"><a href="/masters.html">Masters</a>
<ul class="nav-child unstyled small sub1">
<li class="item item-339"><a href="/masters/pre-masters.html">Pre-Masters</a></li>
<li class="item item-227"><a href="/masters/magistratura-v-velikobritanii.html">Pre-Masters Великобритания</a></li>
<li class="item item-228"><a href="/masters/magistratura-v-ssha.html">Pre-Masters США</a></li>
<li class="item item-352"><a href="/masters/pre-masters-kanada.html">Pre-Masters Канада</a></li>
</ul>
</li>
<li class="item item-806"><a href="https://studentprograms.ru/kursy-dlya-vzroslyh.html">Тестовый</a></li>
</ul>
</nav>
</div>


Вот что хочется

Код
<div class="moduletable testmenu">
<nav class="primaryLeftNavNew">
<ul class="nav menu">
<li class="level-1 item item-163 deeper  parent"><a href="/foundation.html">Foundation</a>
<ul class="nav-child unstyled small sub1">
<li class="level-2 item item-221 deeper  parent"><a href="/foundation/foundation-college.html">Foundation в колледже</a>
<ul class="nav-child unstyled small sub2">
<li class="level-3 item item-394"><a href="/foundation/foundation-college/foundation-v-kolledzhakh-irlandii.html">Foundation в колледжах Ирландии</a></li>
</ul>
</li>
<li class="level-2 item item-330 deeper  parent"><a href="/foundation/foundation-v-universitete.html">Foundation в университете</a>
<ul class="nav-child unstyled small sub2">
<li class="level-3 item item-395"><a href="/foundation/foundation-v-universitete/foundation-v-universitetakh-velikobritanii.html">Foundation в университетах Великобритании</a></li>
<li class="level-3 item item-396"><a href="/foundation/foundation-v-universitete/foundation-v-universitetakh-irlandii.html">Foundation в университетах Ирландии</a></li>
</ul>
</li>
<li class="level-2 item item-223 deeper  parent"><a href="/foundation/academic-programm.html">Краткосрочные программы</a>
<ul class="nav-child unstyled small sub2">
<li class="level-3 item item-351"><a href="/foundation/academic-programm/university-pathway.html">University Pathway </a></li>
<li class="level-3 item item-357"><a href="/foundation/academic-programm/academic-course.html">Краткосрочный академический курс</a></li>
</ul>
</li>
</ul>
</li>
<li class="level-1 item item-164 deeper  parent"><a href="/bachelor.html">Bachelor Degree</a>
<ul class="nav-child unstyled small sub1">
<li class="level-2 item item-226 deeper  parent"><a href="/bachelor/bachelor-uk.html">Бакалавриат в Великобритании</a>
<ul class="nav-child unstyled small sub2">
<li class="level-3 item item-362"><a href="/bachelor/bachelor-uk/hnc-hnd.html">HNC/HND</a></li>
<li class="level-3 item item-393"><a href="/bachelor/bachelor-uk/uk-uni-ranking.html">Рейтинг университетов UK</a></li>
</ul>
</li>
<li class="level-2 item item-348 deeper  parent"><a href="/bachelor/bakalavriat-v-ssha.html">Бакалавриат в США</a>
<ul class="nav-child unstyled small sub2">
<li class="level-3 item item-527"><a href="/bachelor/bakalavriat-v-ssha/associate-degree.html">Associate Degree</a></li>
</ul>
</li>
<li class="level-2 item item-541"><a href="/bachelor/bakalavriat-v-germanii.html">Бакалавриат в Германии</a></li>
<li class="level-2 item item-567"><a href="/bachelor/bakalavriat-v-kanade.html">Бакалавриат в Канаде</a></li>
<li class="level-2 item item-540"><a href="/bachelor/bakalavriat-v-niderlandakh.html">Бакалавриат в Нидерландах</a></li>
<li class="level-2 item item-532"><a href="/bachelor/bakalavriat-v-knr.html">Бакалавриат в КНР</a></li>
<li class="level-2 item item-524"><a href="/bachelor/mirovoj-rejting-universitetov.html">Мировой рейтинг университетов</a></li>
</ul>
</li>
<li class="level-1 item item-165 deeper  parent"><a href="/masters.html">Masters</a>
<ul class="nav-child unstyled small sub1">
<li class="level-2 item item-339"><a href="/masters/pre-masters.html">Pre-Masters</a></li>
<li class="level-2 item item-227"><a href="/masters/magistratura-v-velikobritanii.html">Pre-Masters Великобритания</a></li>
<li class="level-2 item item-228"><a href="/masters/magistratura-v-ssha.html">Pre-Masters США</a></li>
<li class="level-2 item item-352"><a href="/masters/pre-masters-kanada.html">Pre-Masters Канада</a></li>
</ul>
</li>
<li class="level-1 item item-806"><a href="https://studentprograms.ru/kursy-dlya-vzroslyh.html">Тестовый</a></li>
</ul>
</nav>
</div>



Вот стандартный php-код меню

Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_menu
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

$id = '';

if ($tagId = $params->get('tag_id', ''))
{
$id = ' id="' . $tagId . '"';
}

// The menu class is deprecated. Use nav instead
?>
<nav class="primaryLeftNavNew">
<ul class="nav menu<?php echo $class_sfx; ?>"<?php echo $id; ?>>
<?php foreach ($list as $i => &$item)
{
$class = 'item item-' . $item->id;

if ($item->id == $default_id)
{
$class .= ' default';
}

if ($item->id == $active_id || ($item->type === 'alias' && $item->params->get('aliasoptions') == $active_id))
{
$class .= ' current';
}

if (in_array($item->id, $path))
{
$class .= ' active';
}
elseif ($item->type === 'alias')
{
$aliasToId = $item->params->get('aliasoptions');

if (count($path) > 0 && $aliasToId == $path[count($path) - 1])
{
$class .= ' active';
}
elseif (in_array($aliasToId, $path))
{
$class .= ' alias-parent-active';
}
}

if ($item->type === 'separator')
{
$class .= ' divider';
}

if ($item->deeper)
{
$class .= ' deeper ';

}

if ($item->parent)
{
$class .= ' parent';
}

echo '<li class="' . $class . '">';

switch ($item->type) :
case 'separator':
case 'component':
case 'heading':
case 'url':
require JModuleHelper::getLayoutPath('mod_menu', 'default_' . $item->type);
break;

default:
require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
break;
endswitch;

// The next item is deeper.
if ($item->deeper)
{
//echo '<ul class="nav-child unstyled small">';
if ($item->level == 1) {
echo '<ul class="nav-child unstyled small sub1">';
}
elseif ($item->level == 2) {
echo '<ul class="nav-child unstyled small sub2">';
}
elseif ($item->level == 3) {
echo '<ul class="nav-child unstyled small sub3">';
}
elseif ($item->level == 4) {
echo '<ul class="nav-child unstyled small sub4">';
}
elseif ($item->level == 5) {
echo '<ul class="nav-child unstyled small sub5">';
}
}
// The next item is shallower.
elseif ($item->shallower)
{
echo '</li>';
echo str_repeat('</ul></li>', $item->level_diff);
}
// The next item is on the same level.
else
{
echo '</li>';
}
}
?></ul>
</nav>

*

NewUsers

  • Живу я здесь
  • 2305
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Добавить классы-уровни в меню Joomla
« Ответ #1 : 11.05.2018, 15:34:27 »
Код: php
$class = 'item item-' . $item->id . ' level-'.$item->level;
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

kolhoz

  • Захожу иногда
  • 199
  • 0 / 0
Re: Добавить классы-уровни в меню Joomla
« Ответ #2 : 11.05.2018, 16:39:48 »
Спасибо. Ваше решение удобнее и короче, чем у меня получилось
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Обновление Joomla 3.10 до 4

Автор Scaltro

Ответов: 0
Просмотров: 274
Последний ответ 19.09.2024, 18:32:39
от Scaltro
How To Get URLs Of My Joomla Store

Автор jarethdf

Ответов: 1
Просмотров: 359
Последний ответ 22.08.2024, 14:48:44
от sivers
Проблема с меню

Автор denis_4

Ответов: 6
Просмотров: 483
Последний ответ 07.08.2024, 14:00:43
от denis_4
Непонятная проблема с меню

Автор THE KILLERS

Ответов: 2
Просмотров: 4671
Последний ответ 25.07.2024, 16:07:39
от THE KILLERS
Как конвертировать сайт Joomla в мобильное приложение?

Автор 62411

Ответов: 1
Просмотров: 549
Последний ответ 14.06.2024, 15:31:24
от Olg