Как заставить редактор Joomla не удалять код в статьях

Ваш Joomla сайт был построен на коде. Правильный код в нужном месте оживляет ваш сайт. Тем не менее, есть много мест, где это также может представлять серьезную угрозу безопасности.

Если вы позволите людям использовать PHP, Javascript, iframes или другой код внутри вашего контента, вы значительно увеличите вероятность того, что ваш сайт может быть скомпрометирован вредоносным кодом. Чтобы минимизировать этот риск, по умолчанию Joomla ограничивает код, который вы можете вставить в статьи.

Недостатком этого является то, что некоторые распространенные фрагменты кода из надежных источников будут заблокированы. Например, Joomla не позволяет вам вставлять встраиваемые коды с сайтов, таких как YouTube и Google Maps.

Из этого туториала вы узнаете, как разрешить такой код на своем сайте, не позволяя Joomla удалить его. Давайте попробуем вставить код Google Maps в пример статьи Joomla под названием «Добро пожаловать в ваш блог».

Наша статья для этой задачи выглядит следующим образом:

Обычно, чтобы вставить фрагмент кода из Google Maps, вы можете нажать Toggle Editor (1) / Отключить редактор и вставить код прямо в редактор (2):

«Пока все хорошо», - думаете вы. Однако, если вы сохраните статью, вы увидите, что код для встраивания Карт Google исчезнет из окна редактора. Кроме того, вы не увидите Карты Google внутри своей статьи на сайте.

Как это случилось? Вернитесь к панели управления администратора Joomla, снова откройте эту статью для редактирования и посмотрите на ее исходный код (нажмите либо на кнопку Toggle Editor/Выключить редактор, как вы делали раньше, либо на Tools> Source Code) Вы увидите, что Joomla! удалил фрагмент кода Google Maps, который вы вставили в код статьи и сохранили минуту назад.

Это проблема. Вот решение ...

Решение № 1. Изменить параметр текстового фильтра Joomla

Это решение работает, если вы являетесь суперпользователем и будете использовать редактор по умолчанию TinyMCE.

Дело в том, что ваш редактор TinyMCE имеет собственную опцию «Использовать текстовый фильтр Joomla», которая по умолчанию имеет значение «Выкл.». Текстовый фильтр запрещает стороннее использование кодовых тегов «script», «applet» и «iframe» (один из которых, а именно «iframe», мы пытались вставить всего несколько минут назад)

  • Перейдите в Расширения> Плагины> Редактор
  • Нажмите на плагин TinyMCE.
  • Найдите параметр Использовать текстовый фильтр Joomla и установите для него значение Вкл.
  • Сохраните плагин.

  • Откройте вашу статью для редактирования еще раз.
  • Нажмите кнопку Toggle Editor/Выключить редактор, чтобы открыть редактор кода статьи.
  • Вставьте свой образец фрагмента Google Maps.
  • Сохраните статью.
  • Посетите страницу своего сайта, и вы увидите, что ваши Google Карты были хорошо встроены.


Если вы хотите отключить фильтрацию кода для себя, просто установите для параметра Использовать текстовый фильтр Joomla значение Выкл.

Решение № 2: выключите TinyMCE Editor

Это немного более радикальное решение:
  • Перейдите в Система> Глобальная конфигурация> и нажмите вкладку Сайт.
  • Найдите опцию Редактор по умолчанию.
  • Установите эту опцию на Редактор - Нет.
  • Нажмите на Сохранить и закрыть


Теперь вы можете перейти к своей статье и безопасно вставить в код. Это будет выглядеть как на картинке ниже:

Долгосрочные решения

В долгосрочной перспективе это может быть громоздким решением.

Одним из решений является использование лучшего редактора, чем TinyMCE, который используется по умолчанию в Joomla. Joomla Content Editor является бесплатным и существенно лучше:

Также рекомендуется два расширения от RegularLabs.com. Плагин Sourcerer позволяет вам размещать любой код внутри вашего контента, когда редактор все еще включен. Он доступен в бесплатной и платной версиях. Плагин Snippets позволяет ввести код один раз, а затем создать текстовый фрагмент многократного использования, который можно легко поместить в любую статью.

Кроме того, если вы встраиваете мультимедиа с популярных сайтов, вы можете подключить плагины, чтобы сделать это проще. OSYouTube поддерживает видео YouTube так легко, что просто вставьте URL в статью. OS Vimeo делает то же самое для видео Vimeo, а OSWistia делает это для видео Wistia. OSEmbed поддерживает Google Maps и десятки других источников.

Комментировать статью:

blog comments powered by Disqus
Translate
Russian English French German Italian Portuguese Spanish
Latest SocButtons
Latest SocComments
Latest Socshare