Вставить скрипт в новость DLE
Вставить рабочий ява-скрипт или css-стиль прямо в новость CMS DLE невозможно. Код, заключённый в теги <script>, <onclick> или <style> удаляется редактором движка, вместе с тегами .
Ява-скрипты и css-стили расширяют функционал страницы с новостью сайта. Например, онлайн-калькуляторы, висящие на тематических технических страницах – мегакалории. теплотворность. Калькуляторы сделаны на ява-скрипт. Псевдоклассы css. after и :before – используются для исключения из поисковой индексации "мусорных" фраз и стоп-слов. Скрипты калькуляторов и css-стили с мусорными фразами-словами не задействованы нигде. Возникает потребность – добавить в новость DLE javascript и css-стиль, уникальные в пределах сайта.
Увы, такова политика безопасности скрипта. CMS DLE – многопользовательская новостная операционная сайтовая система. Журналисты DLE немедля напихают яваскриптов и css-стилей на сайт. Бесконтрольное добавление скриптов и стилей в тело новости чревато последствиями – от банального перекоса веб-страницы в браузере, до внедрения вражеских функций в структуру сайта. Система защиты движка DLE фильтрует скрипты и коды на вводе данных – от греха подальше. Сдаётся мне, разработчики CMS DLE никогда не реализуют добавление ява-скриптов в новость DLE, даже на уровне администратора сайта – слишком это опасно и вредно.
Добавление скриптов в новость DLE
Добавление скриптов в новость DLE, в обход защитной системы движка – нарушение его политики безопасности. Путь любителей экстрима – вырубить или обойти фильтрацию ввода данных, разрешая пользователям сайта DLE добавление скриптов в новость. Такое, исключительно сумасшедшее рукоприкладство – повод для сэпукки или харакири, в ожидании падения сайта .
Запись скриптов непосредственно в Базу Данных
Дописать "вручную" код скрипта в базу данных (БД) сайта – простой и действенный способ вставить скрипт в новость DLE. Скрипт дописывается в БД, в тело новости, после её публикации на сайте. Система безопасности движка бессильна. При просмотре в браузере модифицированных новостей – дописанные "от руки" коды скриптов и стилей отправляются посетителю на компьютер.
Пересохранение новости в текстовом редакторе сайта – полностью стирает дописанные "вручную" скрипты и стили. "Навсегда" закрепляет код скрипта в новости CMS DLE использование дополнительных полей
Вставляем скрипты в дополнительные поля новости
(встроенные сценарии и стили)
Встроенные сценарии и стили –
программные коды в html-документе,
обёрнутые в теги <script> или <style>
Установить (встроить) скрипт прямо на веб-страницу с новостью позволяет её дополнительное поле – [xfvalue_имя]. При просмотре страницы, содержание доп. поля выводится движком из новости – непосредственно в html-разметку шаблона сайта, где и оборачивается тегами <script> или <style>. Этот способ позволяет частично обойти фильтрацию ввода данных CMS DLE.
- В админпанели движка – создать дополнительные поля с именами "css " (для CSS) и "java " (для javascript). Тип поля – несколько строк. "Использовать поле по желанию" – да. Текстовый редактор – не подключать.
- В низ шаблона полной новости (fullstory. tpl) вставить конструкции
<script type="text/javascript">$(function()<$('#vipad').click(function());>);</script> (для javascript)
Недостатком использования доп. полей в CMS DLE является их общедоступность. Журналисты смогут добавлять скрипты и стили в новости сайта DLE. Запись и загрузка скриптов и стилей в доп. поля новости приемлема владельцам блогов да небольших сайтов, где нет орды журналистов .
Частично, общедоступность доп. полей в CMS DLE ограничивается оборачиванием тегами [group=1] строки в шаблоне addnews. tpl и запретом входа журналистов в админпанель движка.
Встроить css в новость DLE
Запишем в новости CMS DLE,
в доп. поле для CSS – код стиля css
Встроенные ява-скрипты в доп. поле новости CMS DLE ограничены функционально – совершенно невозможно использовать события, вида "onclick ", вырезаемые движком из текста новости во время её сохранения. Единственный выход – подключение к новости DLE скриптов и стилей из внешних файлов – работает всё.
Подключение к новости DLE сторонних скриптов и стилей
(внешние сценарии и стили)
Внешние скрипты и стили –
программные коды, записанные в отдельных файлах
и загружаемые в браузер отдельно от остальной информации
Наличие доп. полей в CMS DLE позволяет "подтянуть со стороны" скрипты и стили при просмотре полной новости на сайте. Для загрузки файлов внешних скриптов и стилей в новость DLE используется конструкция, вида <script type="тип" src="URL"></script> где, URL – дополнительное поле новости CMS DLE, вида [xfvalue_имя] .
- В админпанели движка – создать дополнительные поля с именами "css_download " (для CSS) и "java_download " (для javascript). Тип поля – одна строка. Установить чебокс (галочку) в положение "Использовать поле по желанию"
- В низ шаблона полной новости (fullstory. tpl) вставить конструкции
<link rel="stylesheet" type="text/css" href="[xfvalue_css_download]"> (для CSS)
<script type="text/javascript" src="/uploads/tehnopost/81-vstavit-skript-v-novost-dle. js"></script> (для javascript)
Краткая теория Создаётся доп. поле с именем "java_download". В шаблон fullstory. tpl вставляется конструкция <script type="text/javascript" src="/uploads/tehnopost/81-vstavit-skript-v-novost-dle. js"></script>. Файл ява-скрипта грузится "вручную" на сервер, а ссылка на скачивание вставляется в доп. поле новости. Дальше, при просмотре полной новости на сайте – скрипт "подхватывается" и загружается браузером, как только он (браузер) увидит запись на странице, вида: <script type="text/javascript" src="uploads/имя скрипта. js"></script>. При необходимости, интерактивные элементы со свойствами "onclick" – динамически создаются самим ява-скриптом на странице новости CMS DLE. В результате описанных фантазий – к новости DLE подключится, и ява-скрипт, и его onclick-и .
Подключение внешнего (стороннего) скрипта в новость DLE
Возьмём сценарий, совершенно невстраиваемый в новость CMS DLE из-за присутствия в сценарии события "onclick". Описание сценария: нажатие интерактивной ссылки "Считать кролей!" (событие "onclick") – вызывает модальное окно с надписью "Из шляпы достали "N" кролика!". Где, N – изменяется от 1 до 3, после нажатия клавиши "Enter" или кнопки "OK".
Код javascript
function count_rabbits()<
document. getElementById('my_proba').onclick=
function count_rabbits()<
return false; >
Код html
<a href="#" id="my_proba">Считать кролей</a>
Результат в браузере:
Несмотря на перенос onclick из html-кода в тело яваскрипта, встроить его в доп. поле новости всё равно не выйдет – само слово onclick вырезается и коверкается движком, хоть ты ему тресни. Такой яваскрипт можно вставить в новость DLE только в виде внешнего сценария – отдельно загружаемого файла.
– Пишем код яваскрипт в отдельный файл с расширением. js, заливаем его "вручную" на сервер и вставляем прямую ссылку на скачивание в доп. поле новости – [java_download]. Точно так – поступаем с файлом CSS. С той только разницей, что расширение файла будет. css, а ссылку на его скачивание – вставляем в доп. поле новости для css – [css_download]. Разница заметна во вставленных в шаблон полной новости (fullstory. tpl) конструкциях – <style type="text/css" src="[css_download]"></style> (для CSS) и <script type="text/javascript" src="[java_download]"></script> (для javascript)
К недостаткам использования внешних файлов в новостях CMS DLE относятся: ручная (ftp) загрузка файлов скриптов и стилей на сервер, и – проблемы с кодировкой текста. Последняя – самая труднорешаемая для сайтов с кодировкой windows 1251.
Напоминание. Использование скриптов и стилей в доп. полях новостей CMS DLE – небезопасное дело из-за общедоступности дополнительных полей. Скрипты на сайте – всегда источники проблем, хотя-бы из-за своей несовместимости.