Заметки программиста

Каждый будний день, ровно в 9, я пишу о себе, о своей работе и о технологиях web программирования123

Posts Tagged ‘ flash ’

Неделю назад состоялся релиз нового Flash Player’а от Adobe: версия 10. Говорят что там наворочена куча функционала для 3D, эффектов и фильтров. Унылым же событием является то что перестала работать значительная часть функционала, а конкретнее обзор файлов из скрытого flash объекта. Этим методом пользуются многие cms (к примеру Wordpress), разные web 2.0 сайты и мой загрузчик картинок для tiny mce.

Проблема решается, вчера была выпущена новая версия SWFUpload, так же не отстает и FancyUpload основанный на этом же коде. Пока обе версии не оттестированные Beta и кидаться их ставить не нужно, все равно придется обновлять.

Подобное коснулось тех решений, где вызов обзора файлов шел не напрямую из flash’а, а через JavaScript, поэтому теперь все кнопки вроде «Обзор» или «Загрузить файлы» будут только на Flash.

Пришло время выложить в Open source мой скромный, немного сырой, но уже работающий плагин для загрузки и вставки изображений к TinyMCE.

TinyMCE Images plugin

TinyMCE Images: Обзор

TinyMCE Images plugin

TinyMCE Images: Загрузка

TinyMCE Images plugin

TinyMCE Images: Удаление

Плагин достаточно требовательный: PHP 5 и GD2 на сервере, Flash Player и JavaScript у пользователя.

Кратко об установке:

  • Создать в корне сайта папку /storage и дать права на запись/чтение
  • В tinyMCE.init:
    • plugins: …,images,…
    • theme_advanced_buttons1: …,images,…
    • relative_urls : false
    • remove_script_host : true

Плагин поддается локализации, у меня их только 2: ru и en.

Постоянная страница TinyMCE Images на dustweb.ru.

Скачать можно с SourceForge, а посмотреть демо можно здесь.

И решение это — SWFObject 2.0. Многоуважаемый сайт Design For Masters перевел статью и документацию по использованию SWFObject (официальный сайт). Основная идея этого кода в том чтоб собрать во едино все известные «best practice» вставки флеша, в итоге получив универсальную концепцию.

Основные преимущества:

  1. При статическом методе публикации Flash и альтернативный контент внедряются с помощью стандартной разметки, а JavaScript используется для решения проблем непреодолимых с помощью разметки.
    1. Используется стандартная разметка
    2. Механизм внедрения Flash контента не зависит от JavaScript благодаря чему Flash будет доступен значительно большей аудитории:
      • если у вас установлен Flash плагин, но отключен JavaScript, вы все равно увидите Flash контент.
      • Flash будет отображен на устройствах с очень плохой поддержкой JavaScript, вроде Sony PSP
      • Приложения вроде RSS ридеров смогут отобразить Flash
  2. Динамический метод публикации основан на замене альтернативного контента Flash контентом в случае если есть достаточно новая версия Flash плеера и поддержка JavaScript.
    1. Позволяет обойти механизмы активации активного контента в Internet Explorer 6/7 и Opera 9+. Обратите внимание, что Microsoft выпустил обновления исключающие механизм активации в браузерах Internet Explorer [http://www.swffix.org/devblog/?p=19]
    2. Отлично интегрируется в JavaScript приложения

Статья является отличным поводом начать изучать проблемы вставки Flash объектов.

Последнее время покупаю софт, так правильнее и безглючнее. У антивируса (Norton 360) на днях закончилась подписка, ну я нажал волшебную кнопку Renew и в браузере открылся онлайн магазин, где по неизвестным причинам я не смог оформить заказ, странные ошибки полезли.
Постучал в техподдержку, и понеслась ))) Ответил явно индус (Manish Kapoor), который предложил сгонять на региональный онлайн магазин и просто купить новый серийник, супер, так и сделал.
Осталось ввести, но менюшка куда надо вводить серийник неактивна в просроченной версии!!! У меня уже мата не хватает ))) какими надо быть долбаебами-разработчиками чтоб так сделать!!! Функция возврата денег у них в онлайн магазине не работает, из-за неопознанной ошибки. Чувствую себя неудачником ))) Никогда не покупайте ничего у Symantec! А то Manish Kapoor и его друзья будут очень уставать на работе.

Отлично, душу излил. Далее буду разговаривать на программистском языке с php диалектом.

Вчера пол дня промучался, и только потом снизошло озарение, flash не умеет передавать в запросе cookies! А простыми словами если мы используем сессии, то запрос от flash’а будет с другой сессии, для решения вопроса был организован javascript’ик:

var allcookies = document.cookie;
var pos = allcookies.indexOf("PHPSESSID=");
if(pos != -1) {
 var start = pos + 10;
 var end = allcookies.indexOf(";", start);
 if(end == -1) end = allcookies.length;
 var value = allcookies.substring(start, end);
 value = unescape(value);
}
var request = '/admin/files?PHPSESSID=' + value;