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

skylord

  • Захожу иногда
  • 61
  • 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

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

skylord

  • Захожу иногда
  • 61
  • 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

  • Глобальный модератор
  • 4674
  • 640 / 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

  • Захожу иногда
  • 61
  • 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

  • Глобальный модератор
  • 4674
  • 640 / 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

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

beliyadm

  • Легенда
  • 8868
  • 1624 / 63
  • Севастополь == Россия
Re: mod_menu
« Ответ #7 : 14.02.2018, 01:15:20 »
Оффтоп конечно, но не пробовали работать через псевдоэлементы before, вставлять иконки? На уровне CSS при ховере опять же удобней менять как иконку так и оформление будет
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

demis

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

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

Спасибо.
*

beliyadm

  • Легенда
  • 8868
  • 1624 / 63
  • Севастополь == Россия
Re: mod_menu
« Ответ #9 : 10.06.2018, 16:47:29 »
Нет, атрибут data вы через админку модуля меню не добавите
Нужно лезть в код шаблона меню, ну или его переопределять
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

demis

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

beliyadm

  • Легенда
  • 8868
  • 1624 / 63
  • Севастополь == Россия
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 пишем любые нужные нам атрибуты ссылки

А ну и да - в модуле меню после создания всех этих типов выбрать наш новый шаблон
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

demis

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

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

NewUsers

  • Завсегдатай
  • 1478
  • 118 / 0
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.x.x | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на Яндекс.Деньги
Помогу с переездом на PHP 7.x и исправлю ошибки PHP
*

demis

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

Помогите с mod_menu, как выделить родительский пункт меню?

Автор mrN

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

Автор DjumaI

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

Автор DjumaI

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

Автор BSB

Ответов: 1
Просмотров: 352
Последний ответ 21.09.2016, 03:58:04
от Arkadiy
Настройка меню (mod_menu) в Joomla 3: Показывать подпункты меню

Автор shurikkan

Ответов: 4
Просмотров: 2761
Последний ответ 31.03.2016, 07:08:58
от fatalerror