При публикации материалов в Joomla иногда возникает необходимость вставить в заголовок статьи специальный символ (или даже HTML-тег), но при сохранении, Joomla обрезает все символы и удаляет все теги (и всё, что находится в этих тегах). В этой статье рассмотрим решение того, как вставлять любой символ (тег) в название заголовка статьи. Для этого потребуется внести кое-какое изменения в настройки компонента, отвечающего за публикацию материалов в Joomla.
Исходная ситуация при вставке любых символов и тэгов в заголовок статьи Joomla
Сначала разберём то, что происходит, если попытаться вставить спец.символ или тег в в заголовок статьи Joomla на примере вставки PHP-кода в название материала:
Для этого возьмём любую статью на Joomla и вставим в неё символы, содержащие угловые скобки <
и >
, которые также встречаются и в HTML-тегах. Эта ситуация показана на картинке выше. После этого сохраним изменения в статье.
В результате, при сохранении Joomla вырежет спец.символы и то, что по её мнению находится в их границах:
И мы получим заголовок статьи без требуемых символов. Если попытаться заменить символы угловых скобок <
и >
их буквенными обозначениями: <
и >
они попадут в заголовок как есть, то есть в заголовке будут не угловые скобки, а их буквенное обозначение. И это не то, что нужно. Как же быть?
Настройка компонента 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 /administrator/components/com_content/models/forms/article.xml
можно добиться того, что в заголовки материалов будут сохраняться специальные символы и даже HTML-теги, которые будут отображаться на сайте.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)