Знаю, звучит как малоизвестное сексуально извращение, да так оно и было по сути, впрочем, по порядку:
Заказчик попросил меня сделать загрузку .pdf файлов на некоторых страницах сайта, ничего сложного. Но, поскольку эти документы должны были дублировать содержимое страницы, я подумал - а зачем 2 раза за рыбу деньги? Человек один раз поработал, набрал текст, сохранил. Потом повторил процедуру с .pdf документом, сохранил, загрузил. А через месяц текст меняется - все заново?
Нет, ответил разум возмущенный, пусть за нас работает сервер, за него деньги плачены! Ищем GPL php скрипт, позволяющий генерировать PDF на сайте. Результаты небогатые, однако достойные - FPDF - бесплатный php класс для создания .pdf документов (вот тут подробно и по-русски о настройке).
Но есть одна загвоздка - класс FPDF наотрез отказывается работать с кодировкой проекта utf-8, а менять кодировку не хотелось, да и появился спортивный интерес. Хорошо, роем дальше - UFPDF - модификация этого же класса для работы с UTF. Все здорово, и демо работает - но с генерацией AFM файла метрики для кириллических шрифтов возникли проблемы - готовый документ выдает унылые квадратики вместо текста. Перегуглил все что можно, читал на монгольском и болгарском - нет ответа. Хороший совет по генерации AFM есть на sources.ru (этот момент очень невнятно описан в офф. документации, а зря) - но и он не исправил ситуацию.
Следующая кандидатура - TCPDF - судя по всему еще одна модификация fpdf, сработала на отлично! Никаких дополнительных настроек не потребовалось, в комплекте идут пачка уже сгенерированных UTF шрифтов и большое количество php скриптов - образцов для генерации .pdf документов на все случаи жизни. Объем для загрузки большой, но вовсе необязательно тащить все это на рабочий сервер - образцы с документацией можно удалить, как и все ненужные шрифты - и вуаля!
Enjoy!
Несколько раз натыкался на проблему с внедрением кода flash роликов с Youtube.com и других видеохостингов в CMS использующих TinyMCE. В старых версиях это невозможно даже через диалог вставки html-кода (вставленное просто исчезает после подтверждения), в новых версиях - 3 и выше есть опция вставки flash-содержимого, но приходится делать много лишних движений руками - вырезать кусок адреса, отдельно руками вписывать параметры ролика, морока. Я задумался - а изначально почему исчезает html-код?
Оказывается, 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 в комментарии!
Скриптов для генерации календаря великое множество, а методов его верстки вебмастера, похоже знают ровно один - таблица. Не имею ничего против таблиц, но мне всегда казалось, что таблица - это способ хранения двумерных массивов данных. А календарь - это одномерный (сюрприз!) список, просто список дней.
Ребят из CSSnewbie видно тоже интересовали причины такого несоответствия целей средствам, и потом, отображение списка в таблице - это так не семантично!
В итоге, появился новый способ верстки календаря, основанный на использовании ненумерованных списков и стилей CSS:
В примере изображен календарь со стилями в виде более подходящем для оформления органайзера, но немного колдовства с CSS и получаем компактный, элегантный, семантически правильный список дней - календарь. Можно со ссылками или различными tooltips, lightbox - как душе угодно. Enjoy!
Организовать вывод новостей не простыней, а в виде компактного слайдера с ручным или автоматическим скроллингом - хороше решение, когда нужно экономить место на странице. Бывает, что дизайн не позволяет - слишком много контента на главной, или наоборот - мало информации на второстепенных страницах, хочется визуально обогатить внешний вид и при этом не плодить дубликаты контента - опять слайдер в помощь.
В большинстве случаев разработчики изобретают собственный велосипед на java-script или берут готовый: тогда начинается подгонка стилей и война за кросс-браузерность. Более мягкий для нервов вариант - flash-версия, которую и предлагают аргентинские разработчики.
В примере описан .swf скрипт, берущий информацию в .xml формате, источником может быть как сам динамический генерируемый файл, так и например .php файл, обращающийся к БД и выводящий информацию в нужном формате.
Структура XML документа состоит из 4-х типов данных:
*- а разобравшись с новостями, радует глаз: Деревянная детская мебель стенка, заказ кухни эконом в нашем интернет - магазине.
Ещё одна всплывающая подсказка - jTips. Ещё один плагин к jQuery, наверное самый маленький и удобный.
Плюсы - информация, отображаемая во вплывающих окнах (tooltips), хранится во внешних html-документах (статичных, или генерируемых из БД) и вызывается благодаря ajax-запросу. Можно использовать заголовок, настроить ширину всплывающего окна (по высоте окно растягивается автоматически), также якорь для всплывающего окна может быть ссылкой на любой www адрес, а может и никуда не вести. Смотрим демо, качаем.
Просто диаграмма из столбцов средствами css - Pure CSS Chart.
Что только не делали с неиспользуемым тегом спиcка определений ‹dl› - я сбился со счета, сколько неожиданных вариантов его использования я уже встречал, если бы его не было - его следовало бы придумать :) Открываем - просто, удобно, валидно. Забираем.
известная партнеркаскрипты сайтаобналичить