+ All Categories
Transcript
Page 1: YAG - Yet another gallery (2012)

YAG – Yet Another Gallery

TYPO3 Photo Gallery Management

Page 2: YAG - Yet another gallery (2012)

Who we areDaniel Lienert

Frankfurt / GermanyTYPO3 Developer Twitter: @dlienert

Michael KnollKarlsruhe / GermanyTYPO3 Developer

Twitter: @kaktusmimi

Page 3: YAG - Yet another gallery (2012)

Outline

Introduction Concepts Backend / Frontend Build your own theme

Page 4: YAG - Yet another gallery (2012)

The personal itch...

Page 5: YAG - Yet another gallery (2012)

Before YAG

Searching TER for „gallery“▪ 120 Extensions

Page 6: YAG - Yet another gallery (2012)

Backend Module

Skinning

Scalability

Usability

Extendability

Speed

Lightroom Export

Clean Codebase

ArbitraryResolutions

Easy customization

Page 7: YAG - Yet another gallery (2012)

YAG Goals

Clean Codebase (Extbase approach) Extendable (Theming & API) Scalable (T3 caching) Easy to manage (BE Module) Strict seperation of gallery

management and frontend representation

All features known from„Big Galleries“ EXIF, Lightbox, Multifile-Upload,

Skinning, ...

Page 8: YAG - Yet another gallery (2012)

Further Goals

Well-integrated in TYPO3 Flexible Resolution handling &

caching Interfaces for Desktop Applications

(e.g. Lightroom) Flexible Filtering of images (tags,

categories, EXIF data, ...)

Page 9: YAG - Yet another gallery (2012)

Some Concepts......that empower yag

Page 10: YAG - Yet another gallery (2012)

Under the hood YAG depends on

Extbase / Fluid pt_extlist

(powerfull list generator)

pt_extbase (some extbase / pre-extbase helper methods)

Extbase + Fluid

pt_extlist•Listing•Filters

pt_extbase•Helper methods

YAG

Page 11: YAG - Yet another gallery (2012)

Image Organization

Gallery

Album 1

Image 1

Resolution 1

Resolution 2

Resolution 3

Image 2

Album 2

Image 3

Version 2.0 will come up with PIDs!!!

Page 12: YAG - Yet another gallery (2012)

Image Organization

Image Management (Backend) Gallery -> Album -> Items

Image Presentation (Frontend) Arbitrary Image-Collections▪ Gallery – Album – Items▪ Categories▪ Tags▪ ...

Page 13: YAG - Yet another gallery (2012)

Image Organization

FilterCategory,

Album, Tags,

...

Source images

Filt

er

Image 1

Image 2

Image 3

Image 4

Page 14: YAG - Yet another gallery (2012)

Image Resolutions

A typoscript-defined representation of an image

Define as many as you want

Page 15: YAG - Yet another gallery (2012)

Image Repository

Image R

eposi

tory

Source images

resolutionConfigs {thumb {

maxW = 150maxH = 150

}} imagID, „thumb“

Resolution cache

Page 16: YAG - Yet another gallery (2012)

Importer

External ImageResource

YAGImporter

Meta Data extraction

Album allocation

Filesystem-Storage

Page 17: YAG - Yet another gallery (2012)

Importer

Currently implemented:Director

y Importe

r

Multifile Uploade

r

ZIP File Uploade

r

RemoteUploade

r

Crawls directory andimports image files

Extracts uploaded ZIPfile and imports imagefiles

Uploads multipleFiles via SWF Uploader

Handles HTTP requestsfrom Desktop applications, e.g. Lightroom

Page 18: YAG - Yet another gallery (2012)

YAG Backend Module......made for usability

Page 19: YAG - Yet another gallery (2012)

Live Demonstration

Page 20: YAG - Yet another gallery (2012)

Backend Module

• Gallery List• Add, edit, delete• Drag & Drop

sorting

Page 21: YAG - Yet another gallery (2012)

Backend Module

• Album List• Add, edit, delete• Drag & Drop

sorting• Hide / unhide• Set gallery

preview album

Page 22: YAG - Yet another gallery (2012)

Backend Module

• Album Edit List• Batch editing of

albums• Reassign albums

to galleries

Page 23: YAG - Yet another gallery (2012)

Backend Module

• Image List• Edit title /

description• Define album

thumb• Drag & Drop

sorting• Change default

sorting to title / capture date / filename

Page 24: YAG - Yet another gallery (2012)

Backend Module

• Image Edit List• Batch editing of

images

Page 25: YAG - Yet another gallery (2012)

Backend Module

• Import images• Flash multifile

uploader• Zip uploader• Import from Server

directory

Page 26: YAG - Yet another gallery (2012)

Backend Module

• Maintenance• All facts on one

page• Clear page cache

of pages on which yag is installed

Page 27: YAG - Yet another gallery (2012)

Backend Module

• Maintenance• Clear / rebuild

the resolution file cache

Page 28: YAG - Yet another gallery (2012)

Backend / Content Element

• Content element overview shows detailed info

Page 29: YAG - Yet another gallery (2012)

Backend / Content Element

• Maintenance• Gallery list• Specific gallery• Specific album• Specific image

• Select theme

Page 30: YAG - Yet another gallery (2012)

Backend / Content Element

• Item Selector• Select gallery /

album / image with an easy to use JS powered selector

Page 31: YAG - Yet another gallery (2012)

Documentation?

Sure! (60+ pages)

Page 32: YAG - Yet another gallery (2012)

Frontend......your personal look and feel

Page 33: YAG - Yet another gallery (2012)

Frontend / Themes

Frontend rendering is done by themes

Lightweight, powerful and easy to customize

Easy to select while adding yag as content element

Page 34: YAG - Yet another gallery (2012)

Themes / Selection

Select the theme per plugin instance Different themes on the same page are

possible

Page 35: YAG - Yet another gallery (2012)

Live Demonstration

Page 36: YAG - Yet another gallery (2012)

Frontend / Themes YAG provides

1½ themes out of the box

Page 37: YAG - Yet another gallery (2012)

Frontend / Themes Single image

with detailed view

Page 38: YAG - Yet another gallery (2012)

Frontend / Themes Single image

with lightbox

Page 39: YAG - Yet another gallery (2012)

Frontend / Themes Several other themes are available

in TER yag_themepack_jquery ▪ Galleryview▪ Crosslide▪ Isotope▪ superSized▪ Rondell / Rondell Gallery

yag_theme_perfectlightbox (alternative lightbox)

yag_theme_fancybox (alternative lightbox)

Page 40: YAG - Yet another gallery (2012)

Frontend / Themes

Some live examples ..

Page 41: YAG - Yet another gallery (2012)

tt_news Integration

Demonstration

Page 42: YAG - Yet another gallery (2012)

Theming

Page 43: YAG - Yet another gallery (2012)

Themes

Typoscript

• General Config• List definition• Image

resolution• CSS/JS Includes

HTML• Fluid Templates

PHP• ViewHelper• Filters

CSS Javascript

• Effects• Lighbox

Page 44: YAG - Yet another gallery (2012)

pt_extlist configuration

Define the look and behaviour

of the gallery / album / item view

General configuration and resolution definition.

Themes / TyposcriptAlbumList.Extlist.ts

AlbumList.ts

GalleryList.Extlist.ts

GalleryList.ts

General.ts

ItemList.Extlist.ts

ItemList.ts

Item.ts

Theme.ts

Page 45: YAG - Yet another gallery (2012)

Code

So easy to build your own theme!

plugin.tx_yag.settings.themes {myFancyTheme < plugin.tx_yag.settings.themes.defaultmyFancyTheme {

resolutionConfigs { thumb {

width = 150cheight = 150c

}}

includeJS.fancy = EXT:myFencyTheme/Resources/…/fancy.jsincludeCSS.fancy = EXT:myFencyTheme/Resources/…/fancy.css

aThemeSpecificVariable = 42

controller.ItemList.list {template = EXT:fancy/…/Templates/…/List.html

}}

}

thumb = GIFBUILDERthumb { XY = [10.w],[10.h]   10 = IMAGE  10 {         file.maxH = 170         file.maxW = 170         file.import.field = yagImage      }   20 = IMAGE  20 { file = EXT:yag/Tests/TestImages/watermark.png    offset = [10.w]-100,[10.h]-70    } }

Typoscript

Page 46: YAG - Yet another gallery (2012)

Code

So easy to build your own theme!

…<f:for each="{listData}" key="rowIndex" as="listRow">

<div class=image"> <yag:image item="{listRow.image.value}" resolutionName="thumb" />

</div> </f:for> …

…<div class=image>     <img alt=„A Title" title=„A Title"

src="typo3temp/yag/00/81x4e876324374b0.jpg„ width="150" height="100"> </div> …

Output

Template

Page 47: YAG - Yet another gallery (2012)

Code

plugin.tx_yag.settings.themes.myFancyTheme {specialClass= foo

}

So easy to build your own theme!Access Typoscript Settings

<div class={config.specialClass}>     <yag:image item="{listRow.image.value}" resolutionName="thumb" /> </div>

Typoscript

Template

Page 48: YAG - Yet another gallery (2012)

So easy to build your own theme!Include Javascript

Template

Inline Javascript with Fluid can be pure pain.

Our approach: JS Template ViewHelper

<yag:Javascript.template templatePath="EXT:../JSTemplates/CustomScript.js"

addToHead=„1"arguments="{key1:‚value', key2:‚value2'}

/>

Page 49: YAG - Yet another gallery (2012)

Javscript Template

function demo() {

if(###key1### == value) {alert(###LLL:tx_yag_controller_gallery.sortingSaved###);

}}

So easy to build your own theme!Include Javascript

Page 50: YAG - Yet another gallery (2012)

Upcomming YAG 2.0

Page 51: YAG - Yet another gallery (2012)

Supporting PIDs

YAG 1.x: All records are stored on PID 0 No possibility to set permissions for galleries

to authors in backend / user in frontend No multipage installations

YAG 2.x Sysfolder / Page selector in BE module Sysfolder / Page selector to CE Keep it simple and usable!

Page 52: YAG - Yet another gallery (2012)

Categories

Our goal: Having generic categories for multiple

extensions Having (ExtJs) Tree-Widget for editing

categories

Page 53: YAG - Yet another gallery (2012)

Frontend Editing

Let FE Users Create / Edit / Delete▪ Galleries▪ Albums

Upload / Edit / Delete▪ Images

in Frontend

Page 54: YAG - Yet another gallery (2012)

Some references...

Page 55: YAG - Yet another gallery (2012)

More Information

Our Website http://www.yag-gallery.de

YAG on forge.typo3.org http://forge.typo3.org/projects/extension

-yag

Code on GitHub https://github.com/yag-gallery/yag

Page 56: YAG - Yet another gallery (2012)

Q & A

Page 57: YAG - Yet another gallery (2012)

Thanks for your Attention!


Top Related