Інтеграція 3D-галереї Piecemaker в тему WordPress

19

Від автора:

Цей підручник покаже вам, як успішно інтегрувати 3D флеш-ротатор зображення Piecemaker тему WordPress. Також ми обговоримо установку настроюваної панелі адміністрування, яка зробить супер легкої персональну налаштування роботи ротатора для користувачів.

Piecemaker – чудовий ротатор зображень 3D Flash з відкритим вихідним кодом, створений Бьорном Крюгером (Björn Crüger) з Modularweb.

Перед тим, як ми приступимо до практичних кроків, я Вам рекомендую переглянути демо-результат роботи.

Також завантажте вихідні коди собі на комп’ютер!

Інтеграція 3D-галереї Piecemaker в тему WordPress

Короткий огляд

Всі файли, включені в файл ZIP, для вас вже модифіковані. Ще ми включили папку, в якій знаходяться всі файли Piecemaker в первісному вигляді. Я раджу вам відзначитися на сайті Piecemaker і ознайомитися з ним до переходу назад до цього навчального посібника.

Крок 1. Модифікуйте ActionScript

Перший крок – модифікування ActionScript таким чином, щоб він добре взаємодіяв з WordPress. ActionScript, що поставляється з Piecemaker, визначає три значення, потрібні Piecemaker’у для правильного функціонування:

Джерело XML.

Джерело CSS.

Шлях до папки зображень.

Джерело XML визначає різноманітні установки Picemaker’а й дозволяє визначати зображення та їх опис. Файл CSS визначає стилі панелям характеристик Piecemaker’а, а каталог зображень говорить Piecemaker’, звідки отримувати зображення.

Відкрийте файл FLA під назвою «piecemakerNoShadow.fla» і відкрийте вікно дії (Actions). У рамці 1 ви побачите дії внизу. Будь ласка, зверніть увагу, що для відкриття вихідного файлу вам знадобиться Flash CS4.

Інтеграція 3D-галереї Piecemaker в тему WordPress

Для того, щоб Piecemaker правильно заробив в нашій темі WordPress, потрібно встановити ці змінні динамічно. Для цього ми використовуємо FlashVars. FlashVars – це змінні, які ми встановимо в своєму шаблоні сторінки WordPress, і які при завантаженні сторінки передадуться флеш-ролика. Далі, видаляємо дії за замовчуванням в першому кадрі флеш-файлу і замінюємо їх на наступний код:

stage.scaleMode = StageScaleMode.NO_SCALE;
// Pull in the Flashvars
// Set the required variables for piecemaker
piecemaker.xmlSource = String(allFlashVars.xmlSource);
piecemaker.cssSource = String(allFlashVars.cssSource);
piecemaker.imageSource = String(allFlashVars.imageSource);
piecemaker.dispatchEvent(new Event(«properties»));

Вищевказаний ActionScript спочатку завантажується в FlashVars, а потім замінює значення Piecemaker за замовчуванням на ці нові змінні. Наш файл Flash вже повністю підготовлений до запуску. Публікуємо SWF використовуючи який-небудь зручний FTP-клієнт.

Крок 2. Завантаження на сервер файлів і папок

Інтеграція 3D-галереї Piecemaker в тему WordPress

Наступний крок – завантаження на сервер необхідних файлів і папок в каталог теми WordPress. Цей підручник припускає, що ви будете вивантажувати все прямо в головний каталог теми. Ось список необхідних елементів:

piecemakerCSS.css

piecemakerNoShadow.swf

piecemakerXML.xml

папка ‘images’ (з зображеннями)

папка ‘swfobject’ (плюс вміст)

piecemakerXML.php (потрібен для використання з настроюваної панеллю адміністрування)

Крок 3. Підключення SWF і установка FlashVars

Наш наступний крок – вставити в свій шаблон сторінки WordPress ролик SWF. Ми використовуємо SWFObject 2 для вбудовування кліпу, а також визначимо три змінні FlashVars, згадувані в Кроці 1.

Спочатку потрібно послатися на swfobject в заголовку сторінки. Щоб це зробити, виберіть файл теми «header.php» в своєму улюбленому редакторі коду (мій — BBEdit) і додайте в початок сторінки наступний код:

Далі відкрийте шаблон сторінки WordPress, де ви хотіли б демонструвати свій 3D ротатор Piecemaker, і вставте наступний код:

You need to upgrade your Flash Player to version 10 or newer.

var flashvars = {};
flashvars.xmlSource = "/piecemakerXML.xml";
flashvars.cssSource = "/piecemakerCSS.css";
flashvars.imageSource = "/images";
var attributes = {};
attributes.wmode = "transparent";
swfobject.embedSWF("/piecemakerNoShadow.swf", "flashcontent", "960", "610", "10", "/swfobject/expressInstall.swf, flashvars, attributes);

Пояснення коду

Цей обсяг коду – просто стандартний код з swfobject, що використовується для вставки флеш в будь-яку веб-сторінку. Найважливіше, що нас повинно зацікавити – це FlashVars:

flashvars.xmlSource = "/piecemakerXML.xml";
flashvars.cssSource = "/piecemakerCSS.css";
flashvars.imageSource = "/images";

Зауважте, що ми назвали свої FlashVars так, як визначили їх в ActionScript в Кроці 4. До того ж ми користуємося вбудованої в WordPress функцією bloginfo() для посилання на точне місцезнаходження трьох потрібних файлів.

Ось воно! Ну, як би...

Вищевказані кроки дадуть вам можливість успішно розгорнути 3D ротатор зображень Piecemaker в своїй темі WordPress, але ми хочемо піти ще далі. У наступних кроках ми обговоримо, як створити настроювану панель адміністрування, що дозволяє нам модифікувати установки Piecemaker'а прямо на сервері WordPress.

Якщо ви не цікавитеся встановленням адміністративної панелі, можете перейти на вебсайт Piecemaker, прочитати документацію і почати робити дійсно дуже потрясну анімацію.

Крок 4. Створіть панель адміністрування

Ми не будемо розписувати, як «з нуля» створюється адміністративна панель. Замість цього пропонуємо ознайомитися з дуже докладним підручником тут на Nettuts: Як створити найкращу панель WordPress.

Після того, як ви встановите панель адміністрування згідно інструкцій зазначеного підручника, можна переходити до наступного кроку.

Крок 5. Визначте нову панель опцій

Інтеграція 3D-галереї Piecemaker в тему WordPress

Тепер нам потрібно додати додаткові опції до панелі адміністрування, яку ви тільки що створили. Відкрийте файл теми «functions.php» і замініть перший ділянку коду на наступний:

cat_ID] = $category_list->cat_name;
}
array_unshift($wp_cats, "Choose a category");
$tween_types = array("linear","easeInSine","easeOutSine", "easeInOutSine", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeOutInCubic", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeOutInQuint", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutInCirc", "easeInBack", "easeOutBack", "easeInOutBack", "easeOutInBack", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeOutInQuad", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeOutInQuart", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeOutInExpo", "easeInElastic", "easeOutElastic", "easeInOutElastic", "easeOutInElastic", "easeInBounce", "easeOutBounce", "easeInOutBounce", "easeOutInBounce");

Шматок вищенаведеного коду ідентичний показаному в підручнику, але ми додали новий масив з ім'ям $tween_types. Цей масив містить всі різноманітні анімаційні ефекти, доступні за допомогою PieceMaker'а. Ми використовуємо цей масив для формування в своїй користувацької панелі адміністрування випадаючого списку різних анімаційних ефектів. Можете переглянути документацію Tweener для повторення візуалізації численних анімаційних ефектів Piecemaker.

Крім того, у файлі functions.php додайте наступний масив знизу тих, що ви вже створили в підручнику.

Таким чином, створюється нова змінна панель опцій, подібна тим, що ви створили в навчальному посібнику. Це довгий ділянку коду, але він слід тією ж самою логікою, що і підручник. Ми просто створюємо змінні для всіх можливих установок, які нам доведеться визначити в XML-файлі Piecemaker'а. Важливо звернути увагу на те, що ми постаралися визначити кожної опції значення за замовчуванням (значення 'std' – це значення за замовчуванням). Для Piecemaker'а існує гідне кількість установок, і нам не потрібно змушувати своїх користувачів встановлювати всі ці опції, якщо вони не хочуть.

array( "name" => "3D Rotator Options",
"type" => "section"),
array( "type" => "open"),
array( "name" => "Segments",
"desc" => "Number of segments in which the image will be sliced.",
"id" => $shortname."_segments",
"type" => "text",
"std" => "9"),
array( "name" => "Tween Time",
"desc" => "Number of seconds for each element to be turned.",
"id" => $shortname."_tween_time",
"type" => "text",
"std" => "3"),
array( "name" => "Tween Delay",
"desc" => "Number of seconds from one element starting to turn to the next element starting.",
"id" => $shortname."_tween_delay",
"type" => "text",
"std" => "0.1"),
array( "name" => "Tween Type",
"desc" => "Type of animation transition.",
"id" => $shortname."_tween_type",
"type" => "select",
"options" => $tween_types,
"std" => "Choose a category"),
array( "name" => "Z Distance",
"desc" => "to which extend are the cubes moved on z axis when being tweened. Negative values bring the cube closer to the camera, positive values take it further away. A good range is roughly between -200 and 700.",
"id" => $shortname."_z_distance",
"type" => "text",
"std" => "25"),
array( "name" => "Expand",
"desc" => "To which etxend are the cubes moved away from each other when tweening.",
"id" => $shortname."_expand",
"type" => "text",
"std" => "9"),
array( "name" => "Inner Color",
"desc" => "Color of the sides of the elements in hex values (e.g. 0x000000 for black)",
"id" => $shortname."_inner_color",
"type" => "text",
"std" => "0x000000"),
array( "name" => "Text Background Color",
"desc" => "Color of the text description background in hex values (e.g. 0xFF0000 for red)",
"id" => $shortname."_text_background",
"type" => "text",
"std" => "0x666666"),
array( "name" => "Text Distance",
"desc" => "Distance of the info text to the borders of its background.",
"id" => $shortname."_text_distance",
"type" => "text",
"std" => "25"),
array( "name" => "Shadow Darkness",
"desc" => "To which extend are the sides shadowed, when the elements are tweening and the sided move towards the background. 100 is black, 0 is no darkening.",
"id" => $shortname."_shadow_darkness",
"type" => "text",
"std" => "25"),
array( "name" => "Auto Play",
"desc" => "Number of seconds to the next image when autoplay is on. Set 0, if you don't want autoplay.",
"id" => $shortname."_autoplay",
"type" => "text",
"std" => "2"),
array( "type" => "close"),

Крок 6. Оновіть шаблон сторінки

У цьому кроці нам потрібно злегка трансформувати шаблон сторінки WordPress Кроку 3. Замість посилання xmlSource на файл XML ми повинні засилати його на файл PHP. Використовуючи файл PHP замість файлу XML, ми можемо витягувати всі значення, що встановлені користувачем у своїй панелі опцій. Потрібно замінити всього один рядок коду:

flashvars.xmlSource = "/piecemakerXML.php";

Крок 7. Згенеруйте XML-файл за допомогою PHP

Ми майже закінчили! У цьому кроці ми створимо файл PHP, на який послалися в коді вгорі. Цей файл PHP буде використаний для вилучення всіх значень з настроюваної панелі опцій і формування файлів XML, який потрібен Piecemaker'у для належного функціонування. Код дуже довгий, тому я спробую розбити його на більш зрозумілі частини.

Створіть пустий файл PHP, назвіть його «piecemakerXML.php» і вставити в початок файлу наступний код:

Перша рядок вказує WordPress в наш файл PHP. Це дозволяє мати доступ до всіх функцій WordPress за замовчуванням, а також до будь-яких значень, збережених в нашій базі даних.

Решті код витягує дані з настроюваної панелі опцій і зберігає значення змінних. Ми споживемо ці змінні для генерації інших установок Piecemaker'а.

Далі, нам потрібно встановити заголовок типу вмісту так, щоб браузер знав, що ми збираємося вивести вміст XML, а не text/html, який використовується за замовчуванням. Ми також включимо деякі початкові теги установок Piecemaker.