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

NIKOLY

  • Захожу иногда
  • 55
  • 1 / 0
Здравствуйте! Уважаемые форумчане помогите пожалуйста! Такой дело, нужно в шаблон модуля меню к ссылке добавить якорь.
Есть горизонтальное меню услуг, оно располагается ниже шапки и слайдера, примерно 550 px от верха экрана расположен блок с данным меню, мне нужно чтобы при клике по любому из пунктов данного меню загружалась соответствующая страница и благодаря якорю начиналась с данного блока, а не с самого верха как по стандарту. С разу оговорюсь тип меню Внешний URL не нужно, я специально отдельный шаблон подготовил, а вот как в нём ссылку править не пойму.
В итоге должно быть <php link (тут ссылка что формируется в меню) >#moy_yakor

Вроде бы подробно расписал, помогите пожалуйста)
*

Taatshi

  • Глобальный модератор
  • 5172
  • 475 / 1
  • Верстаем и кодим. Обращайтесь ;)
С разу оговорюсь тип меню Внешний URL не нужно, я специально отдельный шаблон подготовил, а вот как в нём ссылку править не пойму.
Что-то вообще непонятно что Вы там нагородили и что такое специально подготовленный шаблон.

А можно поинтересоваться - чем внешний URL не устраивает?
*

effrit

  • Легенда
  • 9622
  • 1062 / 13
  • effrit.com
здра.
можете в поле Заметки, или как оно там по-русски называется, вписать свой якорь вместе с хэшем (#lala).
поле самое нижнее правое, когда на первой вкладке редактирования пункта меню находитесь.

потом создаете переопределение шаблона модуля меню через управление шаблоном - Создать переопределение - mod_menu
правите файл
\templates\ВАШ_ШАБ\html\mod_menu\default_component.php
чтобы последняя строка стала

Код
echo JHtml::_('link', JFilterOutput::ampReplace(htmlspecialchars($item->flink.$item->note, ENT_COMPAT, 'UTF-8', false)), $linktype, $attributes);

можете сделать проверку на наличие символа # в $item->note предварительно, если не уверены, что это поле не может кто-то ещё заполнять. типа, защита от дурака.
*

NIKOLY

  • Захожу иногда
  • 55
  • 1 / 0
Что-то вообще непонятно что Вы там нагородили и что такое специально подготовленный шаблон.
Возможно некорректно выразился, имел ввиду это \templates\ВАШ_ШАБ\html\mod_menu\ т.е. шаблон модуля меню
А можно поинтересоваться - чем внешний URL не устраивает?
Неудобно, мне нужно просто выбрать элемент при создании пункта меню, например материал, а у ссылки должен быть якорь, и ни какую внешнюю ссылку не вставлять
*

NIKOLY

  • Захожу иногда
  • 55
  • 1 / 0
echo JHtml::_('link', JFilterOutput::ampReplace(htmlspecialchars($item->flink.$item->note, ENT_COMPAT, 'UTF-8', false)), $linktype, $attributes);

Спасибо, что-то подобное и спрашивал, только без якоря в заметках, но думаю тоже пойдёт
*

kern.USR

  • Давно я тут
  • 821
  • 63 / 1
Если якорь один и тот-же всегда, просто допишите его в линк
Код
echo JHtml::_('link', JFilterOutput::ampReplace(htmlspecialchars($item->flink.'#my-link', ENT_COMPAT, 'UTF-8', false)), $linktype, $attributes);
*

NIKOLY

  • Захожу иногда
  • 55
  • 1 / 0
echo JHtml::_('link', JFilterOutput::ampReplace(htmlspecialchars($item->flink.'#my-link', ENT_COMPAT, 'UTF-8', false)), $linktype, $attributes);
Да в итоге так и сделал, т.к. note почему-то не выводиться((, а вот с переопределение что-то не получается, сделал переопределение шаблона модуля
в папке \templates\ВАШ_ШАБ\html\mod_menu\  появились файлы:
default_component-20180701-073124
default-20180701-073124
default_heading-20180701-073124
default_separator-20180701-073124
default_url-20180701-073124

в поле Альтернативный макет выбрал:

default-20180701-073124

но работает всё равно тот что по умолчанию: корень\modules\mod_menu\tmpl

это уже путём тестов выявил, решил на крайняк попробовать в самой папки модулей изменить, думал вдруг где ошибку допустил с переопределением. Но если в самом корне править то все меню получаются так работают, в смысле если указывать якорь с хешем, а note и в корне работать не хочет. Можно было бы и так оставить на крайняк, но note не выводит т.е. $item->note
*

NIKOLY

  • Захожу иногда
  • 55
  • 1 / 0
Хотя изменения вносимые в default-20180701-073124 отображаются, а вот походу default_component-20180701-073124 и default_url-20180701-073124 задействоваться не хотят, а работают стандартные те что в корне модуля default_component и default_url
*

NIKOLY

  • Захожу иногда
  • 55
  • 1 / 0
Всем спасибо разобрался)

Мало ли, в друг кому пригодиться:

В переопределённом шаблоне модуля меню нужно было изменить название используемых файлов

мой переопределённый файл default-20180701-073124

в нём был код:

Код
	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;

заменил на:

Код
	echo '<li class="' . $class . '">';

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

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

P.S.: всем кто откликнулся добавил +ы к карме)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль IPrice Popup News - всплывающая новость на сайте

Автор radius

Ответов: 3
Просмотров: 339
Последний ответ 18.08.2019, 15:04:13
от radius
Меню картинками

Автор arkady

Ответов: 4
Просмотров: 227
Последний ответ 01.08.2019, 11:33:56
от AlekVolsk
Найти модуль

Автор Wargoth

Ответов: 3
Просмотров: 187
Последний ответ 26.06.2019, 15:09:30
от khan-alex
Модуль vina carousel VirtueMart?

Автор warlocksp

Ответов: 1
Просмотров: 306
Последний ответ 24.04.2019, 09:36:32
от sivers
Модуль Яндекс.Метрика для административной панели Joomla

Автор Arkadiy

Ответов: 30
Просмотров: 4951
Последний ответ 16.04.2019, 06:12:13
от Arkadiy