Как вставить любой символ (тег) в название заголовка статьи Joomla

При публикации материалов в Joomla иногда возникает необходимость вставить в заголовок статьи специальный символ (или даже HTML-тег), но при сохранении, Joomla обрезает все символы и удаляет все теги (и всё, что находится в этих тегах). В этой статье рассмотрим решение того, как вставлять любой символ (тег) в название заголовка статьи. Для этого потребуется внести кое-какое изменения в настройки компонента, отвечающего за публикацию материалов в Joomla.



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

Сначала разберём то, что происходит, если попытаться вставить спец.символ или тег в в заголовок статьи Joomla на примере вставки PHP-кода в название материала:

вставка PHP-кода в название материала Joomla

Для этого возьмём любую статью на Joomla и вставим в неё символы, содержащие угловые скобки < и >, которые также встречаются и в HTML-тегах. Эта ситуация показана на картинке выше. После этого сохраним изменения в статье.

В результате, при сохранении Joomla вырежет спец.символы и то, что по её мнению находится в их границах:

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

И мы получим заголовок статьи без требуемых символов. Если попытаться заменить символы угловых скобок < и > их буквенными обозначениями: &lt; и &gt; они попадут в заголовок как есть, то есть в заголовке будут не угловые скобки, а их буквенное обозначение. И это не то, что нужно. Как же быть?

Настройка компонента com_content для вставки любого символа (тег) в название заголовка статьи Joomla

Для решения нашей задачи требуется отключить фильтрацию Joomla в поле заголовка материала. Это осуществляется компонентом com_content, а эти его настройки находятся в файле /administrator/components/com_content/models/forms/article.xml

Нас интересуют настройки поля title, которые занимают строки с 21 по 29 в том файле и имеют следующий вид:

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

Для того, чтобы Joomla не фильтровала перед сохранением передаваемый текст заголовка из поля title, требуется прописать дополнительное свойство для фильтра filter="raw", которое и отключит лишнюю (для нашего случая) фильтрацию. В итоге получится такой код (с дополнительной строкой):

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

Сохраним изменения в файле /administrator/components/com_content/models/forms/article.xml и попробуем снова.

Вставка любых символов и тэгов в заголовок статьи Joomla

Снова вводим наши спец.символы в поле заголовка материала и сохраняем изменения:

Вставка любых символов и тэгов в заголовок статьи Joomla

После сохранения, смотрим на тот заголовок, что сохранился. И он содержит введённые нами спец.символы, что и требовалось:

Заголовок материала Joomla содержит введённые нами спец.символы, что и требовалось

Для того, чтобы убедиться в том, что это не сон, смотрим в списке материалов Joomla. Всё в порядке:

смотрим в списке материалов Joomla.

Ну и в конечном счёте, смотрим на то, как выглядит заголовок статьи со спец.символами на сайте:

как выглядит заголовок статьи Joomla со спец.символами на сайте

Выводы

Таким образом, небольшой правкой в файле конфигурации компонента Joomla /administrator/components/com_content/models/forms/article.xml можно добиться того, что в заголовки материалов будут сохраняться специальные символы и даже HTML-теги, которые будут отображаться на сайте.

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню