Как создать стандартный модуль сайта «HTML-код» содержащий JavaScript в админке Joomla 3

Иногда требуется вставить JavaScript на страницу материала Joomla или создать модуль с JavaScript. Это, например, может требоваться для вставки рекламных объявлений Google AdSense или встроить на страницы сайта код Яндекс.Метрики. Это примеры очевидных применений интеграции сторонних web-приложений на страницы сайта на Joomla 3. В этой статье рассмотрим, как создать стандартный модуль сайта «HTML-код» содержащий JavaScript в админке Joomla 3, так как с этим не всё просто. ;)

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Попытка вставить JavaScript в стандартный модуль сайта «HTML-код» с текстовым редактором TinyMCE

Стандартным редактором текстовых полей в Joomla 3 является визуальный текстовый редактор TinyMCE. То есть он установлен «по умолчанию» в Общих настройках Joomla. Итак, попробуем создать стандартный модуль сайта «HTML-код», содержащий JavaScript так, как описано в → этой статье. Для этого создадим новый стандартный модуль сайта «HTML-код»:

этого создадим новый стандартный модуль сайта «HTML-код»

В текстовое поле вставим код, содержащий JavaScript и нажмём кнопку «Сохранить»:

Попытка вставить JavaScript в стандартный модуль сайта «HTML-код» с текстовым редактором TinyMCE

Результат будет занятный: всё, что содержало код JavaScript будет удалено (это явно проделки редактора TinyMCE). И как бы не стараться и не пытаться сохранить в модуле код, содержащий JavaScript, TinyMCE будет его удалять перед тем, как отправить его на сервер.

Смена текстового редактора по умолчанию на CodeMirror в общих настройках Joomla

Намучавшись с параноидальным TinyMCE, нужно зайти в Общие настройки Joomla и поменять текстовый редактор по умолчанию на CodeMirror так, как подробно описано в → этой статье:

Смена текстового редактора по умолчанию на CodeMirror в общих настройках Joomla

Вставка JavaScript в стандартный модуль сайта «HTML-код» с текстовым редактором CodeMirror

После смены текстового редактора по умолчанию попробуем ещё раз вставить и сохранить в стандартном модуле сайта «HTML-код», содержащий JavaScript:

вставить и сохранить в стандартном модуле сайта «HTML-код», содержащий JavaScript

После сохранения можно убедиться, что CodeMirror отлично справляется с задачей сохранения JavaScript в стандартном модуле сайта «HTML-код» и не вносит в этот код никаких правок и изменений:

CodeMirror отлично справляется с задачей сохранения JavaScript в стандартном модуле сайта «HTML-код»

Как будет указано ниже, имеет смысл всё-таки в качестве текстового редактора по умолчанию держать TinyMCE, поэтому в название (в Заголовок) модуля имеет вносить какую-то пометку, чтобы не лезть в него с правками из-под TinyMCE, так как он просто вычистит весь JavaScript код. (См. поле «Заголовок» на картинке выше.)

Для того, чтобы убедиться, что CodeMirror действительно сохраняет JavaScript код можно залезть в phpMyAdmin и в поле «content» таблицы «_modules» в записи этого модуля ещё раз увидеть изначально введённый JavaScript код. Что и требовалось!

CodeMirror действительно сохраняет JavaScript код

Резюме

После того, как все изменения сделаны и код JavaScript сохранён в базе данных сайта, имеет смысл обратно вернуть TinyMCE в качестве текстового редактора по умолчанию. На мой взгляд он более удобен для публикации материалов в Joomla, чем CodeMirror.

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

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