CMS делаем сами

Как вставить ролик Youtube в TinyMCE

2008/6/28 3:27 3

Youtube.comНесколько раз натыкался на проблему с внедрением кода flash роликов с Youtube.com и других видеохостингов в CMS использующих TinyMCE. В старых версиях это невозможно даже через диалог вставки html-кода (вставленное просто исчезает после подтверждения), в новых версиях - 3 и выше есть опция вставки flash-содержимого, но приходится делать много лишних движений руками - вырезать кусок адреса, отдельно руками вписывать параметры ролика, морока. Я задумался - а изначально почему исчезает html-код?

TinyMCEОказывается, TinyMCE удаляет «недружественные» теги самостоятельно и без предупреждения. Это понятно, все-таки это редактор для текста и какой-никакой разметки, а не визуальный Frontpage, поэтому все теги, не относящиеся к тексту, ссылкам и объектам внутри текста (таблицам, картинкам) безжалостно удаляются. Но это же не прописано в «ядре» скрипта, есть возможность конфигурирования?

Я покопался в образцах настроек TinyMCE и обнаружил интересную строку в скрипте инициализации, на которую раньше не обращал внимания:

tinyMCE.init({
	// General options
	mode : "textareas",
	theme : "advanced",
	plugins : "preview,media",

	// Theme options
	theme_advanced_buttons1 : "bold,italic,underline...",
	theme_advanced_buttons2 : "",
	theme_advanced_buttons3 : "",	
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom",
	theme_advanced_resizing : true,	
	extended_valid_elements : "a[href|target|...],img[src|alt|...]"
});

А вот последняя строка нас и интересует в данной ситуации - она дает скрипту список кошерных тегов, которые ни в коем случае нельзя удалять. Я модифицировал эту строку под свои нужды, добавив кусочек, перечисляющий теги используемые в flash-роликах:
object[width|height|param|embed],param[name|value],embed[src|type|width|height],

Экспериментировать было некогда, время поджимало, поэтому я так намудрил со вложенностью, наверняка можно упростить, у кого есть идеи - welcome в комментарии!

Верстка календаря - список и CSS

2008/6/18 22:19 

Скриптов для генерации календаря великое множество, а методов его верстки вебмастера, похоже знают ровно один - таблица. Не имею ничего против таблиц, но мне всегда казалось, что таблица - это способ хранения двумерных массивов данных. А календарь - это одномерный (сюрприз!) список, просто список дней.

Ребят из CSSnewbie видно тоже интересовали причины такого несоответствия целей средствам, и потом, отображение списка в таблице - это так не семантично!

В итоге, появился новый способ верстки календаря, основанный на использовании ненумерованных списков и стилей CSS:

Семантическая верстка календаря

В примере изображен календарь со стилями в виде более подходящем для оформления органайзера, но немного колдовства с CSS и получаем компактный, элегантный, семантически правильный список дней - календарь. Можно со ссылками или различными tooltips, lightbox - как душе угодно. Enjoy!

Слайдер новостей на flash

2008/6/15 15:34 3

Организовать вывод новостей не простыней, а в виде компактного слайдера с ручным или автоматическим скроллингом - хороше решение, когда нужно экономить место на странице. Бывает, что дизайн не позволяет - слишком много контента на главной, или наоборот - мало информации на второстепенных страницах, хочется визуально обогатить внешний вид и при этом не плодить дубликаты контента - опять слайдер в помощь.

В большинстве случаев разработчики изобретают собственный велосипед на java-script или берут готовый: тогда начинается подгонка стилей и война за кросс-браузерность. Более мягкий для нервов вариант - flash-версия, которую и предлагают аргентинские разработчики.

В примере описан .swf скрипт, берущий информацию в .xml формате, источником может быть как сам динамический генерируемый файл, так и например .php файл, обращающийся к БД и выводящий информацию в нужном формате.


Структура XML документа состоит из 4-х типов данных:

  • заголовок новости
  • адрес картинки
  • краткое описание новости
  • ссылка для перехода на полную версию новости

*- а разобравшись с новостями, радует глаз: Деревянная детская мебель стенка, заказ кухни эконом в нашем интернет - магазине.

Всплывающая подсказка на ajax и диаграмма на css

2008/2/3 11:29 4

Ещё одна всплывающая подсказка - jTips. Ещё один плагин к jQuery, наверное самый маленький и удобный.

jTips

Плюсы - информация, отображаемая во вплывающих окнах (tooltips), хранится во внешних html-документах (статичных, или генерируемых из БД) и вызывается благодаря ajax-запросу. Можно использовать заголовок, настроить ширину всплывающего окна (по высоте окно растягивается автоматически), также якорь для всплывающего окна может быть ссылкой на любой www адрес, а может и никуда не вести. Смотрим демо, качаем.

Pure CSS chart Просто диаграмма из столбцов средствами css - Pure CSS Chart.

Что только не делали с неиспользуемым тегом спиcка определений ‹dl› - я сбился со счета, сколько неожиданных вариантов его использования я уже встречал, если бы его не было - его следовало бы придумать :)
Открываем - просто, удобно, валидно. Забираем.

wSlide - делаем слайдшоу из списка

2008/1/31 8:58 

wSlide - плагин к jQuery, позволяет преобразовать любой список (текст или графика) в слайд-шоу, нумерация страниц может быть создана автоматически. Смотрим демо, демо с эффектами и демо с мощными эффектами (french inside!).

Основное назначение инструмента - экономия места на веб-странице. Длинный список, особенно с большим количеством текста в каждом элементе списка производят эффект "многабукафф", читатель может пролистнуть его по диагонали, а компактно оформленный сайдбар например, наоборот привлечет внимание.

Из основных свойств:

  • Автонумерация разделов (опционально)
  • Легко настраивается с помощью CSS
  • Можно выбирать стартовую позицию списка
  • Скроллинг вертикальный или горизонтальный
  • Можно просматривать не подряд, а выборочно
  • Настраивается скорость прокрутки
  • Possibilité de fondue я не перевел, сорри

Протестирован на совместимость с Firefox, Opera, Internet Explorer 6 и 7 версии.