Почему Joomla удаляет HTML-теги <iframe> и <script> и как их правильно вставить?

Почему Joomla удаляет <iframe> и <script>?

Дело в том, что по умолчанию тег <iframe> находится в списке запрещенных HTML-тегов для использования в визуальном редакторе Joomla. Это касается редакторов по умолчанию TinyMCE или продвинутого редактора JCE. Если вы используете редактор CodeMirror или вообще не используете редактор, то такая проблема не наблюдается. Выбрать редактор можно здесь:

Панель управления → Общие настройки → вкладка Сайт → Редактор по умолчанию

Далее необходимо снять запрет на применение нужных HTML-тегов: 
  1. в применяемом редакторе Joomla,
  2. в общих настройках Joomla (для пользователей всех групп, кроме superuser).

Как разрешить iframe или script в TinyMCE?

  1. Переходим к списку плагинов Joomla: Панель управления → Плагины, либо Система Плагины.
  2. Находим плагин Редактор - TinyMCE и переходим к его настройкам.
  3. В нужном наборе (наборы редактора TinyMCE для разных групп пользователей) находим опцию Запрещенные элементы.
  4. Удаляем из списка iframe, script или все сразу.
  5. Для Joomla 5: находим опцию Sandbox Iframes и отключаем (эта опция может препятствовать отображению содержимого iframe'а).
  6. Сохраняем.

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

Как разрешить iframe или script в JCE?

Предыдущие инструкции не касаются визуального редактора JCE.

Как вставить тег <iframe>?

  1. Переходим к списку профилей редактора.
  2. Выбираем профиль группы пользователей, для которой необходимо разрешить вставку тегов.
  3. Переходим на вкладку Editor Parameters → вкладка Advanced.
  4. Опция Extended Elements → вписываем iframe.
  5. Вкладка Plugin Parameters → вкладка Media Support  → Allow IFrames → выбираем подходящее значение.
  6. Ниже в той же вкладке есть настройка Sandbox Iframes → можем отключить, либо настроить исключение через следующую настройку Sandbox URL Exclusions.
  7. Сохраняем.

Как вставить тег <script>?

  1. Переходим к списку профилей редактора.
  2. Выбираем профиль группы пользователей, для которой необходимо разрешить вставку тегов.
  3. Переходим на вкладку Editor Parameters → вкладка Advanced.
  4. Опция Extended Elements → вписываем script.
  5. Опция  Allow Javascript → выбираем Да.
  6. Вкладка Plugin Parameters → вкладка Clipboard  → опция Keep tags → вписываем script.
  7. Сохраняем.

Как убрать запрет в общих настройках Joomla?

По умолчанию для всех групп пользователей, кроме superuser, установлены фильтры текста, которые редактируются в Общих настройках. Например, если необходимо дать возможность пользователям группы Manager вставлять теги <iframe> через визуальный редактор во внешнем интерфейсе Joomla-сайта, то:

  1. переходим в Панель управления → Общие настройки,
  2. вкладка Фильтры текста,
  3. находим нужную группу пользователей Manager,
  4. корректируем так, как необходимо (например, можно заменить Черный список на Нет фильтрации).

Упоминаемые термины:

Joomla, Суперадминистратор, JCE