Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Добавление любых тэгов в заголовок модуля Joomla

Хотя вопрос о том, Как сделать Заголовок меню в виде ссылки в Joomla был мной решён, однако не давало покоя то, что для этого приходилось каждый раз открывать phpMyAdmin и править Заголовок ручками. И всё бы ничего, если бы это требовалось делать только один раз, но, как будет показано ниже, это нужно делать каждый раз, когда в модуль вносятся изменения в админке Joomla. В этой статье подробно рассмотрим, как убрать фильтрацию поля «Заголовок» в Менеджере модулей Joomla. Так, чтобы при сохранении модуля, все теги в поле «Заголовок» сохранялись в базе данных, а не удалялись.



Что происходит при вставке любых тэгов в заголовок модуля Joomla

Рассмотрим ситуацию, когда нам нужно вставить перевод строки и ссылку в заголовок модуля. Для этого должен быть включен показ заголовка модуля на сайте. Вставим пару тегов в поле «Заголовок» модуля и сохраним эти изменения:

Вставим пару тегов в поле «Заголовок» модуля и сохраним эти изменения

После того, как изменения будут сохранены, поле «Заголовок» модуля очищается от любых тегов:

поле «Заголовок» модуля очищается от любых тегов

Ну и на сайте заголовок выглядит просто как заголовок

на сайте заголовок выглядит просто как заголовок

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

Правки фильтрации поля «Заголовок» модуля в компоненте Joomla

Для того, чтобы отменить фильтрацию поля «Заголовок» модуля нужно внести изменения в файл, описывающий стандартные поля модуля, расположенный на сервере в папке:

administrator/components/com_modules/models/forms/module.xml

Как можно уже догадаться, это файл module.xml

Для того, чтобы отменить фильтрацию поля «Заголовок» нужно заменить код поля title в районе 13-й строчки вставив дополнительную строчку filter="raw"

То есть, было:

<field 
	name="title" 
	type="text"
	label="JGLOBAL_TITLE"
	description="COM_MODULES_FIELD_TITLE_DESC"
	class="input-xxlarge input-large-text"
	size="40"
	maxlength="100"
	required="true"
/>

Стало:

<field 
	name="title" 
	type="text"
	label="JGLOBAL_TITLE"
	description="COM_MODULES_FIELD_TITLE_DESC"
	class="input-xxlarge input-large-text"
	size="40"
	maxlength="100"
	required="true"
	filter="raw"
/>

Вставка тэгов в заголовок модуля Joomla после правки файла module.xml

После того, как были внесены правки в файл module.xml попробуем ещё раз вставить а поле «Заголовок» модуля ссылку и перевод строки:

вставить а поле «Заголовок» модуля ссылку и перевод строки

И, О чудо! После сохранения изменений в поле «Заголовок» модуля все теги сохраняются:

в поле «Заголовок» модуля все теги сохраняются

Это конечно с непривычки неудобно в списке модулей в поле «Заголовок» в Менеджере модулей отображение тоже идёт с HTML-тегами,

в списке модулей в поле «Заголовок» в Менеджере модулей

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

Ну и можно убедиться, что в заголовке модуля все теги работают корректно и заголовок модуля можно сделать ссылкой:

заголовок модуля можно сделать ссылкой

Заключение

Всё это будет работать и работает до накатывании новой версии Joomla. Поэтому имеет смысл следить за тем, чтобы восстанавливать файл module.xml после каждого обновления CMS Joomla. Я это делаю по строго определённому плану. ; )

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'