Новости Joomla

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

skylord

  • Захожу иногда
  • 64
  • 0 / 0
mod_menu
« : 13.02.2018, 23:56:44 »
всем привет

вот такая ситуацыя:

предположим есть меню из четырех пунктов, у второго пункта имеется  2 подменю, компонент mod_menu формирует вот такую HTML структуру
<ul>
  <li><a href="">P1</a></li>
  <li><a href="">P2</a>
    <ul>
      <li><a href="">PP1</a></li>
      <li><a href="">PP2</a></li>
    </ul>
  </li>
  <li><a href="">P3</a></li>
  <li><a href="">P4</a></li>
</ul>
ВОПРОС: в каком файле Joomla формирует строку: <a href="">P</a>

мне надо добавить внутрь <а> вот такую конструкцию <i class="fas fa-caret-down"></i>
в итоге должно получится:

<ul>
  <li><a href="">P1<i class="fas fa-caret-down"></i></a></li>
  <li><a href="">P2<i class="fas fa-caret-down"></i></a>
    <ul>
      <li><a href="">PP1</a></li>
      <li><a href="">PP2</a></li>
    </ul>
  </li>
  <li><a href="">P3<i class="fas fa-caret-down"></i></a></li>
  <li><a href="">P4<i class="fas fa-caret-down"></i></a></li>
</ul>


можете подсказать?
« Последнее редактирование: 14.02.2018, 00:00:14 от skylord »
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: mod_menu
« Ответ #1 : 14.02.2018, 00:01:06 »
Смотря какой тип меню... default_component.php для ссылок компонентов...
Создание сайтов, шаблонов, помощь в решении проблем.
*

skylord

  • Захожу иногда
  • 64
  • 0 / 0
Re: mod_menu
« Ответ #2 : 14.02.2018, 00:11:03 »
у меня URL и у них есть порменю
я смотрел в файл deafult_url.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;

$attributes = array();

if ($item->anchor_title)
{
$attributes['title'] = $item->anchor_title;
}

if ($item->anchor_css)
{
$attributes['class'] = $item->anchor_css;
}

if ($item->anchor_rel)
{
$attributes['rel'] = $item->anchor_rel;
}

$linktype = $item->title;

if ($item->menu_image)
{
if ($item->menu_image_css)
{
$image_attributes['class'] = $item->menu_image_css;
$linktype = JHtml::_('image', $item->menu_image, $item->title, $image_attributes);
}
else
{
$linktype = JHtml::_('image', $item->menu_image, $item->title);
}

if ($item->params->get('menu_text', 1))
{
$linktype .= '<span class="image-title">' . $item->title . '</span>';
}
}


if ($item->browserNav == 1)
{
$attributes['target'] = '_blank';
}
elseif ($item->browserNav == 2)
{
$options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes';

$attributes['onclick'] = "window.open(this.href, 'targetWindow', '" . $options . "'); return false;";
}
/*added*/
if ($item->parent)
{
$linktype =  $item->title . '<i class="fas fa-caret-down"></i>';
}
/*end*/
echo JHtml::_('link', JFilterOutput::ampReplace(htmlspecialchars($item->flink, ENT_COMPAT, 'UTF-8', false)), $linktype, $attributes);

------------------------------
« Последнее редактирование: 14.02.2018, 00:20:44 от Efanych »
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: mod_menu
« Ответ #3 : 14.02.2018, 00:21:29 »
Добавил в ваш код перед нижней строчкой нужное.
P.S. А чтоб не затёрлось при обновлении, скопируйте этот файл и default.php в
templates/ваш_шаблон/html/mod_menu
« Последнее редактирование: 14.02.2018, 00:33:53 от Efanych »
Создание сайтов, шаблонов, помощь в решении проблем.
*

skylord

  • Захожу иногда
  • 64
  • 0 / 0
Re: mod_menu
« Ответ #4 : 14.02.2018, 00:39:49 »
огромное спасибо
а подскажите пожалуйста если в той же конструкции мне надо добавить вне тэга <а>, например вот так строка 3, после </а> но перед <ул> подменю:

<ul>
  <li><a href="">P1</a></li>
  <li><a href="">P2</a> <i class="fas fa-caret-down"></i>
    <ul>
      <li><a href="">PP1</a></li>
      <li><a href="">PP2</a></li>
    </ul>
  </li>
  <li><a href="">P3</a></li>
  <li><a href="">P4</a></li>
</ul>
*

Efanych

  • Глобальный модератор
  • 4684
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: mod_menu
« Ответ #5 : 14.02.2018, 00:44:37 »
Тогда вот так
Код
<?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;

$attributes = array();

if ($item->anchor_title)
{
$attributes['title'] = $item->anchor_title;
}

if ($item->anchor_css)
{
$attributes['class'] = $item->anchor_css;
}

if ($item->anchor_rel)
{
$attributes['rel'] = $item->anchor_rel;
}

$linktype = $item->title;

if ($item->menu_image)
{
if ($item->menu_image_css)
{
$image_attributes['class'] = $item->menu_image_css;
$linktype = JHtml::_('image', $item->menu_image, $item->title, $image_attributes);
}
else
{
$linktype = JHtml::_('image', $item->menu_image, $item->title);
}

if ($item->params->get('menu_text', 1))
{
$linktype .= '<span class="image-title">' . $item->title . '</span>';
}
}

if ($item->browserNav == 1)
{
$attributes['target'] = '_blank';
}
elseif ($item->browserNav == 2)
{
$options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes';

$attributes['onclick'] = "window.open(this.href, 'targetWindow', '" . $options . "'); return false;";
}

echo JHtml::_('link', JFilterOutput::ampReplace(htmlspecialchars($item->flink, ENT_COMPAT, 'UTF-8', false)), $linktype, $attributes);
/*added*/
if ($item->parent)
{
echo '<i class="fas fa-caret-down"></i>';
}
/*end*/
Создание сайтов, шаблонов, помощь в решении проблем.
*

skylord

  • Захожу иногда
  • 64
  • 0 / 0
Re: mod_menu
« Ответ #6 : 14.02.2018, 00:53:24 »
огомное спсибо
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: mod_menu
« Ответ #7 : 14.02.2018, 01:15:20 »
Оффтоп конечно, но не пробовали работать через псевдоэлементы before, вставлять иконки? На уровне CSS при ховере опять же удобней менять как иконку так и оформление будет
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

demis

  • Захожу иногда
  • 67
  • 2 / 0
Re: mod_menu
« Ответ #8 : 10.06.2018, 16:43:10 »
Добрый день.

Подскажите, а как добавить в default_url в <а>, class="..." или другой атрибут например: data-fresco-caption=""

Спасибо.
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: mod_menu
« Ответ #9 : 10.06.2018, 16:47:29 »
Нет, атрибут data вы через админку модуля меню не добавите
Нужно лезть в код шаблона меню, ну или его переопределять
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

demis

  • Захожу иногда
  • 67
  • 2 / 0
Re: mod_menu
« Ответ #10 : 10.06.2018, 16:49:22 »
Нет, атрибут data вы через админку модуля меню не добавите
Нужно лезть в код шаблона меню, ну или его переопределять
Да, я имею ввиду как в шаблоне default_url добавить
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: mod_menu
« Ответ #11 : 10.06.2018, 16:56:28 »
Вы можете создать свой вид меню, к примеру в \templates\шаблон\html\mod_menu\
создать свои копии файлов default.php и default_component.php (это базовые стандартные файлы типов меню, если нужно можете и default_heading default_separator default_url скопировать
При копировании файлов изменяем часть названия до подчеркивания
В новом измененном default.php изменяем строку после 74 где идет переключение типов
Код
		case 'url':
require JModuleHelper::getLayoutPath('mod_menu', 'default_' . $item->type);
break;

default:
require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
break;
endswitch;
Меняем default_ на наш новый префикс файлов (это если нам нужны измененные типы урлов внешнего урла\разделителя
В противном случае этот шаг пропускаем
Ну и все, в нашем новом файле catmenu_component.php пишем любые нужные нам атрибуты ссылки

А ну и да - в модуле меню после создания всех этих типов выбрать наш новый шаблон
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

demis

  • Захожу иногда
  • 67
  • 2 / 0
Re: mod_menu
« Ответ #12 : 10.06.2018, 17:19:48 »
Вы можете создать свой вид меню, к примеру в \templates\шаблон\html\mod_menu\
С этим понятно.

Я не соображу как добавить атрибуты в самом файле default_url
*

NewUsers

  • Живу я здесь
  • 2307
  • 214 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: mod_menu
« Ответ #13 : 13.06.2018, 06:58:23 »
С этим понятно.

Я не соображу как добавить атрибуты в самом файле default_url
Код: php
$attributes['data-fresco-caption'] = 'че_нибудь';

Если атрибут должен быть постоянно в ссылке то сделай так
Код: php
$attributes = array('data-fresco-caption' => 'че_нибудь');
« Последнее редактирование: 13.06.2018, 07:02:10 от NewUsers »
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

demis

  • Захожу иногда
  • 67
  • 2 / 0
Re: mod_menu
« Ответ #14 : 13.06.2018, 16:19:06 »
Спасибо всем откликнувшимся и отдельно - NewUsers, то что нужно.
Вопрос закрыт.
*

NIKOLY

  • Захожу иногда
  • 81
  • 1 / 0
Re: mod_menu
« Ответ #15 : 25.09.2021, 15:57:17 »
Здравствуйте! Подскажите пожалуйста где копать если нужно добавить значение в href? Например так идёт < a href="/stranica.html" > а мне нужно < a href="/stranica.html#blok" > т.е. добавка к адресу конкретно значение #blok
Спасибо!
*

sivers

  • Живу я здесь
  • 2453
  • 333 / 0
Re: mod_menu
« Ответ #16 : 25.09.2021, 17:08:27 »
Здравствуйте! Подскажите пожалуйста где копать если нужно добавить значение в href? Например так идёт < a href="/stranica.html" > а мне нужно < a href="/stranica.html#blok" > т.е. добавка к адресу конкретно значение #blok
Спасибо!
Добавить обычный пункт меню, чтоб работала ссылка /stranica.html, а затем добавить еще один пункт меню с типом "внешняя ссылка" и в нем указать /stranica.html#blok.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: mod_menu
« Ответ #17 : 25.09.2021, 17:18:40 »
Подскажите пожалуйста где копать если нужно добавить значение в href? Например так идёт < a href="/stranica.html" > а мне нужно < a href="/stranica.html#blok" > т.е. добавка к адресу конкретно значение #blok
JavaScript - хеш
window.location.hash = 'blok' ;
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: mod_menu
« Ответ #18 : 25.09.2021, 17:49:30 »
в зависимости от шаблона. на некоторых свои системы меню класса "сломай мозг".
но для обычных можно в поле Note пункта меню (первая вкладка, снизу справа) вписать #mylink и потом создать переопределение меню или свой шаблон вывода сюда
html\mod_menu\
и там прописать после
Код
foreach ($list as $i => &$item)
{
   вот это
Код
	$item->flink .= $item->note;
лучше делать проверку на наличие в note, скажем, #-символа, на случай если есть заполненные комментарии, хотя обычно никто не юзает его.
*

NIKOLY

  • Захожу иногда
  • 81
  • 1 / 0
Re: mod_menu
« Ответ #19 : 27.09.2021, 13:30:45 »
в зависимости от шаблона. на некоторых свои системы меню класса "сломай мозг".
но для обычных можно в поле Note пункта меню (первая вкладка, снизу справа) вписать #mylink и потом создать переопределение меню или свой шаблон вывода сюда
html\mod_menu\
и там прописать после
Код
foreach ($list as $i => &$item)
{
   вот это
Код
$item->flink .= $item->note;
лучше делать проверку на наличие в note, скажем, #-символа, на случай если есть заполненные комментарии, хотя обычно никто не юзает его.
Спасибо! Дельное решение!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создать дополнительный шаблон в mod_menu

Автор SLdieR11

Ответов: 3
Просмотров: 436
Последний ответ 28.04.2021, 16:49:46
от gartes
Помогите с mod_menu, как выделить родительский пункт меню?

Автор mrN

Ответов: 3
Просмотров: 1063
Последний ответ 18.12.2017, 11:50:37
от kern.USR
Помогите написать шаблон для меню mod_menu Joomla 3.6.4

Автор DjumaI

Ответов: 4
Просмотров: 1500
Последний ответ 15.03.2017, 22:49:17
от Porohok
Редактирование default_component.php mod_menu Joomla 3.6

Автор DjumaI

Ответов: 2
Просмотров: 1280
Последний ответ 17.12.2016, 21:50:26
от DjumaI
Запутался в default.php mod_menu

Автор BSB

Ответов: 1
Просмотров: 838
Последний ответ 21.09.2016, 03:58:04
от Arkadiy