0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 72877 Просмотров
*

HYBRID

  • Захожу иногда
  • 228
  • 47 / 0
  • Они захватят мир
Joomla вырезает теги, не дает вставить видео, начисто удаляет теги object, iframe, embed или пустые div-ы и span-ы  - типичная проблема для начинающего, да и порой опытного Joomla-юзверя впервые столкнувшегося с этим.

Способов избежать этого есть множество, ставить JCE со всеми его плюшками, отключать очистку кода в редакторе, но при этом давиться такими дублирующимися тегами с префиксом mce_, вообще отключить визуальный редактор (вариант для любителей легкого садомазо) даже как вариант "только чтобы вставить нужный код, а потом снова включить редактор" не очень привлекателен. А вот самый простой, гибкий и при этом надежный вариант я нашел только на просторах англоязычного интернета и делюсь им с вами.

Отбираем дудку у TinyMCE
Типичная ситуация, надо вставить видео с Youtube но редактор, зараза, вырезает код, гуглим, joomlaфорумим, паника нарастает, ответов нет, ищем плагины, совершаем манипуляции описанные выше, пиво уже кипит... глубоко вздыхаем и идем в настройки плагина TinyMCE (Расширения --> Менеджер плагинов --> Редактор - TinyMCE 2.0), включаем очистку кода, в поле расширенных валидных элементов прописываем нужный нам тег:



А потом снова пробуем вставить видео в редактор, через просмотр кода конечно же:



Я был бы рад что бы все было так просто, но увы, кликаем пару раз по кнопке "Показать/Скрыть редактор" и видим:



Опять черти что, но уже хотя бы тег на месте. Но куда девались все атрибуты?

Отступление: Изначально тег iframe наряду с другими (object, embed, script и т.д.) находится в черном списке конфигурационного файла TinyMCE по причине своей "небезопасности", но дело не ограничивается только тегами, все их атрибуты так же запрещены к использованию.

Заставляем TinyMCE плясать под нашу мелодию
Итак, для того чтобы редактор делал все то что мы хотим надо его надрессировать, к нужному тегу необходимо дописать все допустимые атрибуты
у нас есть код:

Код
<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/_Gv7fo6mefo" frameborder="0" allowfullscreen></iframe>

прописываем в поле разрешенных элементов следующее:

Код
iframe[src|title|width|height|frameborder|allowfullscreen]

а после наслаждаемся результатом:



Заметка номер раз: Атрибуты без заголовков такие как allowfullscreen вырезаются, их необходимо записывать в XML-подобном виде: allowfullscreen="allowfullscreen".
Заметка номер два раза: Все неблочные элементы, коим является iframe, редактор оборачивает тегом <p>, если вас это не устраивает просто оберните iframe в div.

Bellissimo:



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

Код
iframe[src|title|width|height|frameborder|allowfullscreen]

прописываете:

Код
iframe[*]

Иногда необходимо использование пустых div-ов и span-ов в статьях, частая особенность типографики клубных шаблонов, так же вносим их в в список и наслаждаемся:

Код
iframe[*],div[*],span[*]

Теперь ваш редактор умеет сидеть, давать лапу, изображать "умри", приносить тапки и даже танцевать на задних лапках. А если очень нужно то может сыграть Мурку ;)
Можно допивать перекипяченное пиво.

Если собираетесь копировать в свой блог, укажите ссылку на источник.

В исходной статье предлагается извращенный метод изменения конфигурационного файла, оно тоже будет работать... до следующего обновления, тогда все ваши изменения затрутся, а вы и не вспомните даже. Если учесть что сайтов может быть не 1 а 10, и настройки могут быть разными... жестокое самоистязание это.
« Последнее редактирование: 26.03.2011, 00:08:43 от HYBRID »
http://hybrid-lab.com - лаборатория
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Столкнулся с проблемой.
Не могу вставить код стилей для одного материала TinyMCE 4.5.8
Код
<style>
div.textbox {
    width: 99%;
    border: 1px solid #66787F;
    border-radius: 20px;
...
}
</style>
Ну немного раздражает, что этот стиль нужен для одной страницы, и надо пихать его в стили всего шаблона
*

Progreccor

  • Захожу иногда
  • 269
  • 25 / 0
Столкнулся с проблемой.
Не могу вставить код стилей для одного материала TinyMCE 4.5.8

Ну немного раздражает, что этот стиль нужен для одной страницы, и надо пихать его в стили всего шаблона
добавить
Код
style[*]
в Дополнительные валидные элементы
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
*

kabban

  • Захожу иногда
  • 73
  • 0 / 0
Супер, мне помогло allowfullscreen="allowfullscreen"
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться