--- /dev/null
+<T3DataStructure>\r
+ <meta>\r
+ <langDisable>1</langDisable>\r
+ </meta>\r
+ <sheets>\r
+ <main>\r
+ <ROOT>\r
+ <TCEforms>\r
+ <sheetTitle>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.sheet_main</sheetTitle>\r
+ </TCEforms>\r
+ <type>array</type>\r
+ <el>\r
+ <mode>\r
+ <TCEforms>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.mode</label>\r
+ <config>\r
+ <type>select</type>\r
+ <items type="array">\r
+ <numIndex index="0" type="array">\r
+ <numIndex index="0">LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.mode.0</numIndex>\r
+ <numIndex index="1">single</numIndex>\r
+ </numIndex>\r
+ <numIndex index="1" type="array">\r
+ <numIndex index="0">LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.mode.1</numIndex>\r
+ <numIndex index="1">list</numIndex>\r
+ </numIndex>\r
+ <!--\r
+ <numIndex index="2" type="array">\r
+ <numIndex index="0">LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.mode.2</numIndex>\r
+ <numIndex index="1">latest</numIndex>\r
+ </numIndex>\r
+ -->\r
+ <numIndex index="3" type="array">\r
+ <numIndex index="0">LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.mode.3</numIndex>\r
+ <numIndex index="1">category</numIndex>\r
+ </numIndex>\r
+ <numIndex index="4" type="array">\r
+ <numIndex index="0">LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.mode.4</numIndex>\r
+ <numIndex index="1">cooliris</numIndex>\r
+ </numIndex>\r
+ </items>\r
+ <maxitems>100</maxitems>\r
+ <size>4</size>\r
+ <multiple>1</multiple>\r
+ </config>\r
+ </TCEforms>\r
+ </mode>\r
+ <path>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.path</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>30</size>\r
+ </config>\r
+ </TCEforms>\r
+ </path>\r
+ </el>\r
+ </ROOT>\r
+ </main>\r
+ <single>\r
+ <ROOT>\r
+ <TCEforms>\r
+ <sheetTitle>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.sheet_single</sheetTitle>\r
+ </TCEforms>\r
+ <type>array</type>\r
+ <el>\r
+ <width>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.width</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </width>\r
+ <height>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.height</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </height>\r
+ <pid_single>\r
+ <TCEforms>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.pid_single</label>\r
+ <config>\r
+ <type>group</type>\r
+ <internal_type>db</internal_type>\r
+ <allowed>pages</allowed>\r
+ <size>1</size>\r
+ <maxitems>1</maxitems>\r
+ <minitems>0</minitems>\r
+ <show_thumbs>1</show_thumbs>\r
+ </config>\r
+ </TCEforms>\r
+ </pid_single>\r
+ </el>\r
+ </ROOT>\r
+ </single>\r
+ <list>\r
+ <ROOT>\r
+ <TCEforms>\r
+ <sheetTitle>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.sheet_list</sheetTitle>\r
+ </TCEforms>\r
+ <type>array</type>\r
+ <el>\r
+ <width>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.width</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </width>\r
+ <height>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.height</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </height>\r
+ <columns>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.columns</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </columns>\r
+ <rows>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.rows</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </rows>\r
+ <pid_list>\r
+ <TCEforms>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.pid_list</label>\r
+ <config>\r
+ <type>group</type>\r
+ <internal_type>db</internal_type>\r
+ <allowed>pages</allowed>\r
+ <size>1</size>\r
+ <maxitems>1</maxitems>\r
+ <minitems>0</minitems>\r
+ <show_thumbs>1</show_thumbs>\r
+ </config>\r
+ </TCEforms>\r
+ </pid_list>\r
+ </el>\r
+ </ROOT>\r
+ </list>\r
+ <category>\r
+ <ROOT>\r
+ <TCEforms>\r
+ <sheetTitle>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.sheet_category</sheetTitle>\r
+ </TCEforms>\r
+ <type>array</type>\r
+ <el>\r
+ <width>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.width</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </width>\r
+ <height>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.height</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </height>\r
+ <columns>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.columns</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </columns>\r
+ <rows>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.rows</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </rows>\r
+ <!--\r
+ <pid_category>\r
+ <TCEforms>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.pid_category</label>\r
+ <config>\r
+ <type>group</type>\r
+ <internal_type>db</internal_type>\r
+ <allowed>pages</allowed>\r
+ <size>1</size>\r
+ <maxitems>1</maxitems>\r
+ <minitems>0</minitems>\r
+ <show_thumbs>1</show_thumbs>\r
+ </config>\r
+ </TCEforms>\r
+ </pid_category>\r
+ -->\r
+ </el>\r
+ </ROOT>\r
+ </category>\r
+ <!--\r
+ <latest>\r
+ <ROOT>\r
+ <TCEforms>\r
+ <sheetTitle>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.sheet_latest</sheetTitle>\r
+ </TCEforms>\r
+ <type>array</type>\r
+ <el>\r
+ <width>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.width</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </width>\r
+ <height>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.height</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </height>\r
+ <columns>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.columns</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </columns>\r
+ <rows>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.rows</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </rows>\r
+ </el>\r
+ </ROOT>\r
+ </latest>\r
+ -->\r
+ <cooliris>\r
+ <ROOT>\r
+ <TCEforms>\r
+ <sheetTitle>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.sheet_cooliris</sheetTitle>\r
+ </TCEforms>\r
+ <type>array</type>\r
+ <el>\r
+ <width>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.width</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </width>\r
+ <height>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.height</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </height>\r
+ <window_width>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.window_width</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </window_width>\r
+ <window_height>\r
+ <TCEforms>\r
+ <exclude>1</exclude>\r
+ <label>LLL:EXT:wt_gallery/locallang_db.xml:pi_flexform.window_height</label>\r
+ <config>\r
+ <type>input</type>\r
+ <size>2</size>\r
+ </config>\r
+ </TCEforms>\r
+ </window_height>\r
+ </el>\r
+ </ROOT>\r
+ </cooliris>\r
+ </sheets>\r
+</T3DataStructure>
\ No newline at end of file
--- /dev/null
+<?php\r
+\r
+########################################################################\r
+# Extension Manager/Repository config file for ext: "wt_gallery"\r
+#\r
+# Auto generated 05-04-2009 22:04\r
+#\r
+# Manual updates:\r
+# Only the data in the array - anything else is removed by next write.\r
+# "version" and "dependencies" must not be touched!\r
+########################################################################\r
+\r
+$EM_CONF[$_EXTKEY] = array(\r
+ 'title' => 'wt_gallery',\r
+ 'description' => 'Easy to use gallery with separate single- , category- and listview. Configurable via typoscript, show EXIF or TXT information, Cooliris (Piclens) and Imagelightbox integration, see screenshots in manual!',\r
+ 'category' => 'plugin',\r
+ 'shy' => 0,\r
+ 'version' => '3.0.6',\r
+ 'dependencies' => 'wt_doorman',\r
+ 'conflicts' => '',\r
+ 'priority' => '',\r
+ 'loadOrder' => '',\r
+ 'module' => '',\r
+ 'state' => 'alpha',\r
+ 'uploadfolder' => 0,\r
+ 'createDirs' => '',\r
+ 'modify_tables' => '',\r
+ 'clearcacheonload' => 0,\r
+ 'lockType' => '',\r
+ 'author' => 'Alex Kellner',\r
+ 'author_email' => 'alexander.kellner@einpraegsam.net',\r
+ 'author_company' => '',\r
+ 'CGLcompliance' => '',\r
+ 'CGLcompliance_note' => '',\r
+ 'constraints' => array(\r
+ 'depends' => array(\r
+ 'php' => '4.2.0-0.0.0',\r
+ 'typo3' => '3.5.0-0.0.0',\r
+ 'wt_doorman' => '0.2.1-0.0.0',\r
+ ),\r
+ 'conflicts' => array(\r
+ ),\r
+ 'suggests' => array(\r
+ ),\r
+ ),\r
+ '_md5_values_when_last_written' => 'a:33:{s:12:"ext_icon.gif";s:4:"bbfc";s:17:"ext_localconf.php";s:4:"39e5";s:14:"ext_tables.php";s:4:"cc70";s:28:"ext_typoscript_constants.txt";s:4:"24c5";s:24:"ext_typoscript_setup.txt";s:4:"63c4";s:13:"locallang.xml";s:4:"06c3";s:16:"locallang_db.xml";s:4:"4b74";s:14:"doc/manual.sxw";s:4:"b445";s:14:"pi1/ce_wiz.gif";s:4:"bf2c";s:35:"pi1/class.tx_wtgallery_category.php";s:4:"1b69";s:35:"pi1/class.tx_wtgallery_cooliris.php";s:4:"8092";s:31:"pi1/class.tx_wtgallery_list.php";s:4:"22ce";s:30:"pi1/class.tx_wtgallery_pi1.php";s:4:"5177";s:38:"pi1/class.tx_wtgallery_pi1_wizicon.php";s:4:"e978";s:33:"pi1/class.tx_wtgallery_single.php";s:4:"9596";s:13:"pi1/clear.gif";s:4:"cc11";s:17:"pi1/locallang.xml";s:4:"a07e";s:22:"be/flexform_ds_pi1.xml";s:4:"bf2a";s:47:"lib/class.tx_wtgallery_category_pagebrowser.php";s:4:"dd8c";s:38:"lib/class.tx_wtgallery_coolirisrss.php";s:4:"4052";s:30:"lib/class.tx_wtgallery_div.php";s:4:"79d3";s:41:"lib/class.tx_wtgallery_dynamicmarkers.php";s:4:"357a";s:43:"lib/class.tx_wtgallery_list_pagebrowser.php";s:4:"4a08";s:43:"lib/user_wtgallery_category_pagebrowser.php";s:4:"6269";s:39:"lib/user_wtgallery_list_pagebrowser.php";s:4:"24c2";s:23:"templates/category.html";s:4:"6bbe";s:23:"templates/cooliris.html";s:4:"e82c";s:19:"templates/list.html";s:4:"8a9c";s:21:"templates/single.html";s:4:"1730";s:31:"files/css/wtgallery_example.css";s:4:"1a88";s:28:"files/css/wtgallery_main.css";s:4:"8927";s:22:"files/swf/cooliris.swf";s:4:"1e98";s:22:"files/static/setup.txt";s:4:"e0ff";}',\r
+ 'suggests' => array(\r
+ ),\r
+);\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+if (!defined ('TYPO3_MODE')) die ('Access denied.');\r
+\r
+t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_wtgallery_pi1.php', '_pi1', 'list_type', 0);\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+if (!defined ('TYPO3_MODE')) die ('Access denied.');\r
+\r
+t3lib_extMgm::addStaticFile($_EXTKEY, 'files/static/', 'Add default CSS');\r
+\r
+t3lib_div::loadTCA('tt_content');\r
+\r
+$TCA['tt_content']['types']['list']['subtypes_excludelist'][$_EXTKEY.'_pi1']='layout,select_key,pages';\r
+$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1']='pi_flexform';\r
+\r
+\r
+t3lib_extMgm::addPlugin(\r
+ array(\r
+ 'LLL:EXT:wt_gallery/locallang_db.xml:tt_content.list_type_pi1', \r
+ $_EXTKEY.'_pi1',\r
+ t3lib_extMgm::extRelPath($_EXTKEY) . 'ext_icon.gif'\r
+ ),\r
+ 'list_type'\r
+);\r
+\r
+t3lib_extMgm::addPiFlexFormValue($_EXTKEY.'_pi1', 'FILE:EXT:wt_gallery/be/flexform_ds_pi1.xml');\r
+\r
+if (TYPO3_MODE=="BE") $TBE_MODULES_EXT["xMOD_db_new_content_el"]["addElClasses"]["tx_wtgallery_pi1_wizicon"] = t3lib_extMgm::extPath($_EXTKEY).'pi1/class.tx_wtgallery_pi1_wizicon.php';\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+###\r
+# This are the default TS-constants for wt_gallery\r
+##\r
+\r
+plugin.wtgallery {\r
+ \r
+ # cat=plugin.wtgallery//0010; type=file[html,htm,tmpl,txt]; label= Template File single: HTML-template file for single view (see EXT:wt_gallery/templates/single.html for an example)\r
+ template.single = EXT:wt_gallery/templates/single.html\r
+ \r
+ # cat=plugin.wtgallery//0020; type=file[html,htm,tmpl,txt]; label= Template File list: HTML-template file for list view (see EXT:wt_gallery/templates/list.html for an example)\r
+ template.list = EXT:wt_gallery/templates/list.html\r
+ \r
+ # cat=plugin.wtgallery//0030; type=file[html,htm,tmpl,txt]; label= Template File category: HTML-template file for category view (see EXT:wt_gallery/templates/category.html for an example)\r
+ template.category = EXT:wt_gallery/templates/category.html\r
+ \r
+ # cat=plugin.wtgallery//0040; type=file[html,htm,tmpl,txt]; label= Template File cooliris: HTML-template file for cooliris view (see EXT:wt_gallery/templates/cooliris.html for an example)\r
+ template.cooliris = EXT:wt_gallery/templates/cooliris.html\r
+\r
+ # cat=plugin.wtgallery//1000; type=options[,single,list,latest]; label= Main Gallery mode: Define what the gallery should do - normally set via flexform in the plugin (e.g. single)\r
+ main.mode = \r
+\r
+ # cat=plugin.wtgallery//1010; type=text; label= Main Picture path: Relative path to the pictures (e.g. fileadmin/pictures/)\r
+ main.path = \r
+\r
+ # cat=plugin.wtgallery//1020; type=text; label= Main Allowed file extensions: Define all allowed file extensions of the picture path (not allowed files will be ignored) (default jpg,jpeg,gif,png)\r
+ main.file_extensions = jpg,jpeg,gif,png\r
+\r
+ # cat=plugin.wtgallery//1030; type=boolean; label= Main Parent DIV for rows: De/Activate a parent DIV container for every row of the list or category view (default 1)\r
+ main.DIVforRows = 1\r
+\r
+ # cat=plugin.wtgallery//2000; type=text; label= Single view PID: Set PID of single page (e.g. 5) (Note: Flexform value overwrite this setting!)\r
+ single.pid_single = \r
+\r
+ # cat=plugin.wtgallery//2010; type=text; label= Single picture width: Default width of singlepicture (e.g. 500) (Note: Flexform value overwrite this setting!)\r
+ single.width = 500\r
+\r
+ # cat=plugin.wtgallery//2020; type=text; label= Single picture height: Default height of singlepicture (e.g. 500) (Note: Flexform value overwrite this setting!)\r
+ single.height =\r
+\r
+ # cat=plugin.wtgallery//2030; type=options[ASC,DESC,newest,oldest,random]; label= Single picture sorting: If no picture is chosen, the first picture is selected by one of the methods (ASC,DESC,newest,oldest,random)\r
+ single.order = ASC\r
+\r
+ # cat=plugin.wtgallery//2040; type=options[TXT/EXIF,EXIF/TXT,TXT,EXIF,]; label= Single metainformation: Show meta information of a single picture from textfile or from EXIF information (possibilities: TXT/EXIF,EXIF/TXT,TXT,EXIF or empty) (TXT/EXIF means - search for a txt file and if no info from txt than take EXIF information of picture)\r
+ single.metainformation = TXT/EXIF\r
+\r
+ # cat=plugin.wtgallery//3000; type=text; label= List view PID: Set PID of list page (e.g. 6) (Note: Flexform value overwrite this setting!)\r
+ list.pid_list = \r
+\r
+ # cat=plugin.wtgallery//3010; type=text; label= List picture width: Default width of listpictures (e.g. 100) (Note: Flexform value overwrite this setting!)\r
+ list.width = 100\r
+\r
+ # cat=plugin.wtgallery//3020; type=text; label= List picture height: Default height of listpictures (e.g. 500) (Note: Flexform value overwrite this setting!)\r
+ list.height =\r
+\r
+ # cat=plugin.wtgallery//3030; type=text; label= List number of rows: Set the number of rows for listview (e.g. 3) (Note: Flexform value overwrite this setting!)\r
+ list.rows = \r
+\r
+ # cat=plugin.wtgallery//3040; type=text; label= List number of columns: Set the number of columns for listview (e.g. 6) (Note: Flexform value overwrite this setting!)\r
+ list.columns = \r
+\r
+ # cat=plugin.wtgallery//3050; type=options[ASC,DESC,newest,oldest,random]; label= List sorting: Define the sorting of the listview images (ASC,DESC,newest,oldest,random)\r
+ list.order = ASC\r
+\r
+ # cat=plugin.wtgallery//3060; type=text; label= Listview limit: Define a maximum limit of the listview images (e.g. 100) (empty for no limit)\r
+ list.limit = \r
+\r
+ # cat=plugin.wtgallery//3070; type=options[TXT/EXIF,EXIF/TXT,TXT,EXIF,]; label= List metainformation: Show meta information of a list picture from textfile or from EXIF information (possibilities: TXT/EXIF,EXIF/TXT,TXT,EXIF or empty) (TXT/EXIF means - search for a txt file and if no info from txt than take EXIF information of picture)\r
+ list.metainformation = TXT/EXIF\r
+\r
+ # cat=plugin.wtgallery//4000; type=text; label= Category picture width: Default width of categorypictures (e.g. 80) (Note: Flexform value overwrite this setting!)\r
+ category.width = 80\r
+\r
+ # cat=plugin.wtgallery//4010; type=text; label= Category picture height: Default height of categorypictures (e.g. 500) (Note: Flexform value overwrite this setting!)\r
+ category.height =\r
+\r
+ # cat=plugin.wtgallery//4020; type=text; label= Category number of rows: Set the number of rows for categoryview (e.g. 3) (Note: Flexform value overwrite this setting!)\r
+ category.rows = \r
+\r
+ # cat=plugin.wtgallery//4030; type=text; label= Category number of columns: Set the number of columns for categoryview (e.g. 6) (Note: Flexform value overwrite this setting!)\r
+ category.columns = \r
+\r
+ # cat=plugin.wtgallery//4035; type=options[ASC,DESC,random]; label= Category sorting: Define the sorting of the categories itselve (ASC,DESC,random)\r
+ category.order = ASC\r
+\r
+ # cat=plugin.wtgallery//4040; type=options[ASC,DESC,newest,oldest,random]; label= Category image sorting: If no special picture is chosen, any picture of the folder will be chosen (ASC,DESC,newest,oldest,random)\r
+ category.previewpicture_order = random\r
+\r
+ # cat=plugin.wtgallery//4050; type=options[TXT/EXIF,EXIF/TXT,TXT,EXIF,]; label= Category metainformation: Show meta information of a category picture from textfile or from EXIF information (possibilities: TXT/EXIF,EXIF/TXT,TXT,EXIF or empty) (TXT/EXIF means - search for a txt file and if no info from txt than take EXIF information of picture)\r
+ category.metainformation = TXT/EXIF\r
+\r
+ # cat=plugin.wtgallery//5000; type=text; label= Cooliris title: Define a title for the cooliris view (e.g. This is the title)\r
+ cooliris.title = wt_gallery for cooliris\r
+\r
+ # cat=plugin.wtgallery//5010; type=text; label= Cooliris url: Define an URL for the cooliris view (e.g. http://www.domain.org/)\r
+ cooliris.url = http://www.cooliris.com/\r
+\r
+ # cat=plugin.wtgallery//5020; type=text; label= Cooliris description: Define a description for the cooliris view (e.g. This is the description)\r
+ cooliris.description = This is the wt_gallery cooliris description...\r
+\r
+ # cat=plugin.wtgallery//5030; type=text; label= Cooliris picture width: Default width of coolirispictures (e.g. 500)\r
+ cooliris.width = 500\r
+\r
+ # cat=plugin.wtgallery//5040; type=text; label= Cooliris picture height: Default height of coolirispictures (e.g. 500)\r
+ cooliris.height =\r
+\r
+ # cat=plugin.wtgallery//5050; type=options[ASC,DESC,newest,oldest,random]; label= Cooliris sorting: Define the sorting of the coolirisview images (ASC,DESC,newest,oldest,random)\r
+ cooliris.order = ASC\r
+\r
+ # cat=plugin.wtgallery//5060; type=text; label= Cooliris limit: Define a maximum limit of the coolirisview images (e.g. 100) (empty for no limit)\r
+ cooliris.limit = \r
+\r
+ # cat=plugin.wtgallery//5070; type=text; label= Cooliris SWF path: Define a path for cooliris SWF file (e.g. EXT:wt_gallery/files/swf/cooliris.swf)\r
+ cooliris.swf = EXT:wt_gallery/files/swf/cooliris.swf\r
+\r
+ # cat=plugin.wtgallery//5080; type=int; label= Cooliris window width: Define width of the flash window in Frontend (e.g. 800) (Note: Flexform value overwrite this setting!)\r
+ cooliris.window_width = 800\r
+\r
+ # cat=plugin.wtgallery//5090; type=int; label= Cooliris window height: Define height of the flash window in Frontend (e.g. 600) (Note: Flexform value overwrite this setting!)\r
+ cooliris.window_height = 600\r
+\r
+ # cat=plugin.wtgallery//5100; type=boolean; label= Cooliris fullscreen button: Enable fullscreen button in cooliris flash window\r
+ cooliris.allow_fullscreen = 1\r
+\r
+ # cat=plugin.wtgallery//5110; type=boolean; label= Cooliris scriptaccess button: Enable scriptaccess button in cooliris flash window\r
+ cooliris.allow_scriptaccess = 0\r
+\r
+ # cat=plugin.wtgallery//5120; type=text; label= Cooliris No-Flash message: Define a message if no flash was found in the browser\r
+ cooliris.noflash_message = <a href="http://www.adobe.com/go/getflashplayer">Get Adobe Flash</a>\r
+ \r
+}
\ No newline at end of file
--- /dev/null
+# WT_GALLERY PLUGIN #\r
+includeLibs.user_wtgallery_list_pagebrowser = EXT:wt_gallery/lib/user_wtgallery_list_pagebrowser.php\r
+includeLibs.user_wtgallery_category_pagebrowser = EXT:wt_gallery/lib/user_wtgallery_category_pagebrowser.php\r
+\r
+# main settings\r
+plugin.tx_wtgallery_pi1 {\r
+ \r
+ # Constants\r
+ template.single = {$plugin.wtgallery.template.single}\r
+ template.category = {$plugin.wtgallery.template.category}\r
+ template.list = {$plugin.wtgallery.template.list}\r
+ template.cooliris = {$plugin.wtgallery.template.cooliris}\r
+ main.mode = {$plugin.wtgallery.main.mode}\r
+ main.path = {$plugin.wtgallery.main.path}\r
+ main.file_extensions = {$plugin.wtgallery.main.file_extensions}\r
+ main.DIVforRows = {$plugin.wtgallery.main.DIVforRows}\r
+ \r
+ \r
+ \r
+ # Single view settings\r
+ single {\r
+ # Constants\r
+ pid_single = {$plugin.wtgallery.single.pid_single}\r
+ width = {$plugin.wtgallery.single.width}\r
+ height = {$plugin.wtgallery.single.height}\r
+ order = {$plugin.wtgallery.single.order}\r
+ metainformation = {$plugin.wtgallery.single.metainformation}\r
+ \r
+ # Single image\r
+ image = IMAGE\r
+ image {\r
+ # available variables for .field are: picture, tstamp, filename, dirname, basename, extension\r
+ wrap = <div class="wt_gallery_single_inner_pic">|</div>\r
+ file.import.field = picture\r
+ file.width = {$plugin.wtgallery.single.width}\r
+ file.height = {$plugin.wtgallery.single.height}\r
+ altText.field = basename\r
+ titleText.field = filename\r
+ params = class="wtgallery wtgallery_single"\r
+ if.isTrue.field = picture\r
+ \r
+ # popup definition\r
+ imageLinkWrap = 1\r
+ imageLinkWrap.enable = 1\r
+ imageLinkWrap {\r
+ bodyTag = <body style="background-color: black;">\r
+ wrap = <a href="javascript:close();">|</a>\r
+ JSwindow = 1\r
+ JSwindow.newWindow = 1\r
+ }\r
+ }\r
+ \r
+ # Text from txt file or EXIF information to single image\r
+ # available variables for .field are: comments, title, subject, author, recordtime, cam_brand, cam_model\r
+ text = COA\r
+ text {\r
+ wrap = <div class="wt_gallery_single_inner_text">|</div>\r
+ if.isTrue.field = comments\r
+ \r
+ 10 = TEXT\r
+ 10.field = title\r
+ 10.wrap = <div class="wt_gallery_single_inner_title">|</div>\r
+ 10.if.isTrue.field = title\r
+ \r
+ 20 = TEXT\r
+ 20.field = comments\r
+ 20.wrap = <div class="wt_gallery_single_inner_comments">|</div>\r
+ 20.if.isTrue.field = comments\r
+ }\r
+ \r
+ # Link to the listview below picture (only if listview and singleview are not on the same page)\r
+ # available variables for .field are: listview_link\r
+ listviewlink = TEXT\r
+ listviewlink {\r
+ wrap = <p>|</p>\r
+ data = LLL:EXT:wt_gallery/pi1/locallang.xml:wtgallery_ll_listviewlink\r
+ typolink.parameter.field = listview_link\r
+ if.isTrue.field = listview_link\r
+ }\r
+ }\r
+ \r
+ \r
+ \r
+ # List view settings\r
+ list {\r
+ # Constants\r
+ pid_list = {$plugin.wtgallery.single.pid_list}\r
+ order = {$plugin.wtgallery.list.order}\r
+ limit = {$plugin.wtgallery.list.limit}\r
+ width = {$plugin.wtgallery.list.width}\r
+ height = {$plugin.wtgallery.list.height}\r
+ rows = {$plugin.wtgallery.list.rows}\r
+ columns = {$plugin.wtgallery.list.columns}\r
+ metainformation = {$plugin.wtgallery.list.metainformation}\r
+ \r
+ # List preview image\r
+ image = IMAGE\r
+ image {\r
+ # available variables for .field are: picture, tstamp, filename, dirname, basename, extension, currentfolder, picturehash, pid_single, link_single\r
+ #wrap = <div class="wt_gallery_list_pic">|</div>\r
+ file.import.field = picture\r
+ file.width = {$plugin.wtgallery.list.width}\r
+ file.height = {$plugin.wtgallery.list.height}\r
+ altText.field = basename\r
+ titleText.field = filename\r
+ params = class="wtgallery wtgallery_list"\r
+ if.isTrue.field = picture\r
+ \r
+ # link to singleview\r
+ imageLinkWrap = 1\r
+ imageLinkWrap.enable = 1\r
+ imageLinkWrap.typolink.parameter.field = link_single\r
+ }\r
+ \r
+ # Text from txt file or EXIF information to current list image\r
+ # available variables for .field are: comments, title, subject, author, recordtime, cam_brand, cam_model\r
+ text = COA\r
+ text {\r
+ wrap = <div class="wt_gallery_list_inner_text">|</div>\r
+ if.isTrue.field = comments\r
+ \r
+ 10 = TEXT\r
+ 10.field = title\r
+ 10.wrap = <div class="wt_gallery_list_inner_title">|</div>\r
+ 10.if.isTrue.field = title\r
+ \r
+ 20 = TEXT\r
+ 20.field = comments\r
+ 20.wrap = <div class="wt_gallery_list_inner_comments">|</div>\r
+ 20.if.isTrue.field = comments\r
+ }\r
+ \r
+ # Pagebrowser for listview\r
+ pagebrowser = HMENU\r
+ pagebrowser {\r
+ special = userfunction\r
+ special.userFunc = user_wtgallery_list_pagebrowser->start\r
+ \r
+ 1 = TMENU\r
+ 1 {\r
+ wrap = <ul class="wtgallery_pagebrowser_list">|</ul>\r
+ NO.allWrap = <li>|</li>\r
+ ACT = 1\r
+ ACT.allWrap = <li>|</li>\r
+ ACT.ATagParams = class="act"\r
+ }\r
+ }\r
+ }\r
+ \r
+ \r
+ \r
+ # Category view settings\r
+ category {\r
+ # Constants\r
+ order = {$plugin.wtgallery.category.order}\r
+ width = {$plugin.wtgallery.category.width}\r
+ height = {$plugin.wtgallery.category.height}\r
+ previewpicture_order = {$plugin.wtgallery.category.previewpicture_order}\r
+ rows = {$plugin.wtgallery.category.rows}\r
+ columns = {$plugin.wtgallery.category.columns}\r
+ metainformation = {$plugin.wtgallery.category.metainformation}\r
+ \r
+ # Category preview image\r
+ image = IMAGE\r
+ image {\r
+ # available variables for .field are: picture, tstamp, filename, dirname, basename, extension, currentfolder, link_list\r
+ wrap = <div class="wt_gallery_category_pic">|</div>\r
+ file.import.field = picture\r
+ file.width = {$plugin.wtgallery.category.width}\r
+ file.height = {$plugin.wtgallery.category.height}\r
+ altText.field = basename\r
+ titleText.field = filename\r
+ params = class="wtgallery wtgallery_category"\r
+ if.isTrue.field = picture\r
+ \r
+ # link to categoryview\r
+ imageLinkWrap = 1\r
+ imageLinkWrap.enable = 1\r
+ imageLinkWrap.typolink.parameter.field = link_list\r
+ }\r
+ \r
+ # Text from txt file or EXIF information to current category image\r
+ # available variables for .field are: comments, title, subject, author, recordtime, cam_brand, cam_model, link_list\r
+ text = COA\r
+ text {\r
+ wrap = <div class="wt_gallery_category_inner_text">|</div>\r
+ if.isTrue.field = comments\r
+ \r
+ 10 = TEXT\r
+ 10.field = title\r
+ 10.wrap = <div class="wt_gallery_category_inner_title">|</div>\r
+ 10.if.isTrue.field = title\r
+ \r
+ 20 = TEXT\r
+ 20.field = comments\r
+ 20.wrap = <div class="wt_gallery_category_inner_comments">|</div>\r
+ 20.if.isTrue.field = comments\r
+ }\r
+ \r
+ # Link to the startcategory below category\r
+ # available variables for .field are: startcategory_link\r
+ startcategorylink = TEXT\r
+ startcategorylink {\r
+ wrap = <p>|</p>\r
+ data = LLL:EXT:wt_gallery/pi1/locallang.xml:wtgallery_ll_startcategorylink\r
+ typolink.parameter.field = startcategory_link\r
+ if.isTrue.field = startcategory_link\r
+ }\r
+ \r
+ # Pagebrowser for categoryview\r
+ pagebrowser = HMENU\r
+ pagebrowser {\r
+ special = userfunction\r
+ special.userFunc = user_wtgallery_category_pagebrowser->start\r
+ \r
+ 1 = TMENU\r
+ 1 {\r
+ wrap = <ul class="wtgallery_pagebrowser_category">|</ul>\r
+ NO.allWrap = <li>|</li>\r
+ ACT = 1\r
+ ACT.allWrap = <li>|</li>\r
+ ACT.ATagParams = class="act"\r
+ }\r
+ }\r
+ }\r
+ \r
+ \r
+ \r
+ # Cooliris view settings\r
+ cooliris {\r
+ # Constants\r
+ title = {$plugin.wtgallery.cooliris.title}\r
+ url = {$plugin.wtgallery.cooliris.url}\r
+ description = {$plugin.wtgallery.cooliris.description}\r
+ width = {$plugin.wtgallery.cooliris.width}\r
+ height = {$plugin.wtgallery.cooliris.height}\r
+ order = {$plugin.wtgallery.cooliris.order}\r
+ limit = {$plugin.wtgallery.cooliris.limit}\r
+ swf = {$plugin.wtgallery.cooliris.swf}\r
+ window_width = {$plugin.wtgallery.cooliris.window_width}\r
+ window_height = {$plugin.wtgallery.cooliris.window_height}\r
+ allow_fullscreen = {$plugin.wtgallery.cooliris.allow_fullscreen}\r
+ allow_scriptaccess = {$plugin.wtgallery.cooliris.allow_scriptaccess}\r
+ noflash_message = {$plugin.wtgallery.cooliris.noflash_message}\r
+ \r
+ # path for cooliris image\r
+ image = COA\r
+ image {\r
+ 10 = TEXT\r
+ 10 {\r
+ data = getIndpEnv:TYPO3_SITE_URL\r
+ }\r
+ 20 = IMG_RESOURCE\r
+ 20 {\r
+ # available variables for .field are: picture, tstamp, filename, dirname, basename, extension, currentfolder, picturehash\r
+ file.import.field = picture\r
+ file.width = {$plugin.wtgallery.cooliris.width}\r
+ file.height = {$plugin.wtgallery.cooliris.height}\r
+ if.isTrue.field = picture\r
+ }\r
+ }\r
+ }\r
+ \r
+ \r
+}\r
+\r
+\r
+\r
+\r
+# Add css file for "table style" of list and categoryview\r
+page.includeCSS.file3135 = EXT:wt_gallery/files/css/wtgallery_main.css\r
+seite.includeCSS.file3135 < page.includeCSS.file3135# COOLIRIS part for wt_gallery\r
+\r
+\r
+\r
+# add rss feed to header\r
+page.headerData.3135 = COA\r
+page.headerData.3135 {\r
+ wrap = <link rel="alternate" type="application/rss+xml" title="RSS-Feed" href="|" />\r
+ \r
+ 10 = TEXT\r
+ 10.data = getIndpEnv:TYPO3_SITE_URL\r
+ \r
+ 20 = TEXT\r
+ 20 {\r
+ typolink.parameter.data = page : uid\r
+ typolink.additionalParams = &type=3135\r
+ typolink.addQueryString = 1\r
+ typolink.returnLast = url\r
+ }\r
+}\r
+seite.headerData.3135 < page.headerData.3135\r
+\r
+\r
+\r
+# TypeNum 3135 offers a dynamic rss feed (listview) for cooliris (piclens) - more infos at www.cooliris.com\r
+wtgallery_cooliris_rss = PAGE\r
+wtgallery_cooliris_rss {\r
+ typeNum = 3135\r
+ 10 < plugin.tx_wtgallery_pi1\r
+ \r
+ config {\r
+ disableAllHeaderCode = 1\r
+ disablePrefixComment = 1\r
+ xhtml_cleaning = 0\r
+ admPanel = 0\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+div.tx-wtgallery-pi1 {\r
+ padding: 10px;\r
+ background-color: #ddd;\r
+}\r
+div.wt_gallery_single_inner_pic {\r
+ margin: 10px;\r
+ padding: 1px;\r
+}\r
+div.wt_gallery_single_inner_pic a img {\r
+ border: 1px solid #FF9900;\r
+}\r
+div.wtgallery_list {\r
+ padding: 1px;\r
+ margin: 10px;\r
+ background-color: #444;\r
+}\r
+div.wtgallery_list a img {\r
+ padding: 1px;\r
+ filter: alpha(opacity=66); \r
+ -moz-opacity: 0.66; \r
+ opacity: 0.66;\r
+ border: 1px solid #444;\r
+}\r
+div.wtgallery_list_current a img {\r
+ border: 1px solid #FF9900;\r
+}\r
+div.wtgallery_list a:hover img {\r
+ filter: alpha(opacity=100); \r
+ -moz-opacity: 1.00; \r
+ opacity: 1.00;\r
+}\r
+div.wt_gallery_single_inner_title {\r
+ font-weight: bold;\r
+ margin-top: 5px;\r
+}\r
+div.wt_gallery_single_inner_comments {\r
+\r
+}
\ No newline at end of file
--- /dev/null
+div.clear {\r
+ clear: both;\r
+}\r
+div.wtgallery_list_area div.wtgallery_list,\r
+div.wtgallery_category_area div.wtgallery_categories {\r
+ float: left;\r
+}\r
+div.wtgallery_list_area div.wtgallery_list_firstofrow,\r
+div.wtgallery_category_area div.wtgallery_category_firstofrow {\r
+ clear: left;\r
+}
\ No newline at end of file
--- /dev/null
+page {\r
+ includeCSS.file3139 = EXT:wt_gallery/files/css/wtgallery_example.css\r
+}
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alex Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_div.php'); // load div class\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_dynamicmarkers.php'); // file for dynamicmarker functions\r
+\r
+class tx_wtgallery_category_pagebrowser extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_pi1.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+ \r
+ function start($conf, $piVars, $cObj, $pbarray) {\r
+ // config\r
+ $this->conf = $conf;\r
+ $this->piVars = $piVars;\r
+ $this->cObj = $cObj;\r
+ $this->pbarray = $pbarray;\r
+ $this->pi_loadLL();\r
+ $this->div = t3lib_div::makeInstance('tx_wtgallery_div'); // Create new instance for div class\r
+ $this->dynamicMarkers = t3lib_div::makeInstance('tx_wtgallery_dynamicmarkers'); // Create new instance for dynamicmarker function\r
+ $this->tmpl = $this->markerArray = $this->wrappedSubpartArray = array(); // init\r
+ $this->tmpl['category_browser'] = $this->cObj->getSubpart($this->cObj->fileResource($this->conf['template.']['category']), '###WTGALLERY_CATEGORY_PAGEBROWSER###'); // Load HTML Template\r
+ \r
+ // fill markers\r
+ if ($this->pbarray['overall'] != 0) { // if there are some categories\r
+ $this->markerArray['###CURRENT_MIN###'] = ($this->pbarray['pointer'] * ($this->conf['category.']['rows'] * $this->conf['category.']['columns'])) + 1; // Current page: From\r
+ $this->markerArray['###CURRENT_MAX###'] = ($this->pbarray['pointer'] * ($this->conf['category.']['rows'] * $this->conf['category.']['columns'])) + $this->pbarray['overall_cur']; // Current page: up to\r
+ if ($this->markerArray['###CURRENT_MAX###'] > $this->pbarray['overall']) $this->markerArray['###CURRENT_MAX###'] = $this->pbarray['overall']; // set maximum\r
+ $this->markerArray['###OVERALL###'] = $this->pbarray['overall']; // Overall addresses\r
+ }\r
+ if ($this->pbarray['overall'] == 0) $this->markerArray['###WTGALLERY_LL_PAGEBROWSER_UPTO###'] = ''; // clear marker\r
+ if ($this->pbarray['overall'] == 0) $this->markerArray['###WTGALLERY_LL_PAGEBROWSER_WITHIN###'] = ''; // clear marker\r
+ $this->conf['category.']['pagebrowser.']['special.']['userFunc.'] = $this->pbarray; // config for pagebrowser userfunc\r
+ if (($this->conf['category.']['rows'] * $this->conf['category.']['columns']) < $this->pbarray['overall']) $this->markerArray['###PAGELINKS###'] = $this->cObj->cObjGetSingle($this->conf['category.']['pagebrowser'], $this->conf['category.']['pagebrowser.']); // Pagebrowser menu (show only if needed)\r
+ \r
+ $row = array ( // write $row for .field in ts\r
+ 'startcategory_link' => $this->cObj->typolink('x', array('parameter' => $GLOBALS["TSFE"]->id, 'returnLast' => 'url'))\r
+ );\r
+ if (empty($this->piVars['category'])) $row = array(); // clear if on startcategory\r
+ $this->cObj->start($row, 'tt_content'); // enable .field in typoscript for singleview\r
+ $this->markerArray['###STARTCATEGORYLINK###'] = $this->cObj->cObjGetSingle($this->conf['category.']['startcategorylink'], $this->conf['category.']['startcategorylink.']); // values from ts\r
+ \r
+ // return\r
+ $this->content = $this->cObj->substituteMarkerArrayCached($this->tmpl['category_browser'], $this->markerArray, array(), $this->wrappedSubpartArray); // Get html template\r
+ $this->content = $this->dynamicMarkers->main($this->conf, $this->cObj, $this->content); // Fill dynamic locallang or typoscript markers\r
+ $this->content = preg_replace("|###.*?###|i", "", $this->content); // Finally clear not filled markers\r
+ if (!empty($this->content)) return $this->content; // return HTML if $content is not empty\r
+ } \r
+ \r
+\r
+}\r
+ \r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_category_pagebrowser.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_category_pagebrowser.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alex Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_div.php'); // load div class\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_dynamicmarkers.php'); // file for dynamicmarker functions\r
+\r
+class tx_wtgallery_coolirisrss extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_pi1.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+ var $mode = 'cooliris'; // mode name\r
+ \r
+ function start($conf, $piVars, $cObj) {\r
+ // config\r
+ $this->conf = $conf;\r
+ $this->piVars = $piVars;\r
+ $this->cObj = $cObj;\r
+ $this->pi_loadLL();\r
+ $this->div = t3lib_div::makeInstance('tx_wtgallery_div'); // Create new instance for div class\r
+ $this->dynamicMarkers = t3lib_div::makeInstance('tx_wtgallery_dynamicmarkers'); // Create new instance for dynamicmarker function\r
+ $this->tmpl = $this->markerArray = $this->outerMarkerArray = $subpartArray = array(); $content_item = ''; // init\r
+ $this->tmpl[$this->mode]['all'] = trim($this->cObj->getSubpart($this->cObj->fileResource($this->conf['template.'][$this->mode]), '###WTGALLERY_COOLIRIS_RSS###')); // Load HTML Template\r
+ $this->tmpl[$this->mode]['item'] = $this->cObj->getSubpart($this->tmpl[$this->mode]['all'],'###ITEM###'); // work on subpart 2\r
+ \r
+ // let's go\r
+ if (!empty($this->conf['main.']['path'])) { // if startpath was set via typoscript\r
+ $startpath = $this->div->validatePicturePath($this->piVars['category'] ? $this->div->hash2folder($this->piVars['category'], $this->conf['main.']['path']) : $this->conf['main.']['path']); // startpath from piVars or from ts\r
+ $pictures = $this->div->getFiles($this->conf, $startpath, $this->conf[$this->mode.'.']['order'], $this->conf[$this->mode.'.']['limit']); // get all pictures from current folder\r
+ \r
+ if (count($pictures) > 0) { // if there are pictures\r
+ for ($i=0; $i<count($pictures); $i++) { // one loop for every picture in current folder\r
+ // let's start\r
+ $row = array ( // write $row for .field in ts AND for markers in html template\r
+ 'picture' => $pictures[$i], // first entry of files array (e.g. fileadmin/pic1.jpg)\r
+ 'tstamp' => filemtime($pictures[$i]), // timestamp of file\r
+ 'filename' => $this->div->fileInfo($pictures[$i], 'filename'), // like pic\r
+ 'dirname' => $this->div->fileInfo($pictures[$i], 'dirname'), // like fileadmin/pics\r
+ 'basename' => $this->div->fileInfo($pictures[$i], 'basename'), // like pic.jpg\r
+ 'extension' => $this->div->fileInfo($pictures[$i], 'extension'), // like jpg\r
+ 'currentfolder' => $this->div->fileInfo($pictures[$i], 'currentfolder'), // like folder\r
+ 'picturehash' => t3lib_div::md5int($pictures[$i]), // like 12345678\r
+ );\r
+ $this->cObj->start($row, 'tt_content'); // enable .field in typoscript for singleview\r
+ \r
+ if (!empty($this->conf[$this->mode.'.']['width'])) $this->conf[$this->mode.'.']['image.']['file.']['width'] = $this->conf[$this->mode.'.']['width']; // set width from config (e.g. flexform if not empty)\r
+ if (!empty($this->conf[$this->mode.'.']['height'])) $this->conf[$this->mode.'.']['image.']['file.']['height'] = $this->conf[$this->mode.'.']['height']; // set height from config (e.g. flexform if not empty)\r
+ $this->markerArray['###IMAGE###'] = $this->cObj->cObjGetSingle($this->conf[$this->mode.'.']['image'], $this->conf[$this->mode.'.']['image.']); // values from ts\r
+ foreach ($row as $key => $value) { // one loop for every row entry\r
+ $this->markerArray['###'.strtoupper($key).'###'] = $value; // fill marker with value of row\r
+ }\r
+ \r
+ $content_item .= $this->cObj->substituteMarkerArrayCached($this->tmpl[$this->mode]['item'], $this->markerArray, array(), $this->wrappedSubpartArray); // add inner html to variable\r
+ } \r
+ }\r
+ $subpartArray['###CONTENT###'] = $content_item; // work on subpart 3\r
+ $this->outerMarkerArray['###TITLE###'] = $this->conf[$this->mode.'.']['title']; // Add title to RSS\r
+ $this->outerMarkerArray['###URL###'] = $this->conf[$this->mode.'.']['url']; // Add url to RSS\r
+ $this->outerMarkerArray['###DESCRIPTION###'] = $this->conf[$this->mode.'.']['description']; // Add description to RSS\r
+ \r
+ \r
+ $this->content = $this->cObj->substituteMarkerArrayCached($this->tmpl[$this->mode]['all'], $this->outerMarkerArray, $subpartArray); // Get html template\r
+ $this->content = $this->dynamicMarkers->main($this->conf, $this->cObj, $this->content); // Fill dynamic locallang or typoscript markers\r
+ $this->content = preg_replace("|###.*?###|i", "", $this->content); // Finally clear not filled markers\r
+ if (!empty($this->content) && count($pictures) > 0) return $this->content; // return HTML if $content is not empty and if there are pictures\r
+ else return $this->pi_getLL('wtgallery_ll_coolirisError', 'no pictures to list on current url'); // return error message for dynamic RSS\r
+ } else { // if startpath was not set via typoscript\r
+ return $this->pi_getLL('wtgallery_ll_coolirisErrorNoPath', 'Please set the startpath via typoscript and not only in the plugin - this is needed for cooliris!'); // return error message for dynamic RSS\r
+ }\r
+ } \r
+ \r
+\r
+}\r
+ \r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_coolirisrss.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_coolirisrss.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alex Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+\r
+class tx_wtgallery_div extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_pi1.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+ var $infoarray = array('comments', 'title', 'subject', 'author', 'recordtime', 'cam_brand', 'cam_model'); // sequence for TXT and EXIF information\r
+ \r
+ \r
+ // Function getFiles() returns file array ($sort could be: random, ASC, DESC, newest, oldest)\r
+ function getFiles($conf, $folder, $sort = 'ASC', $limit = '', $hash = 0) {\r
+ $files = t3lib_div::getFilesInDir($folder, $conf['main.']['file_extensions'], 1, 1); // Get all pictures (sort by name ASC AND with folders)\r
+ \r
+ // 1. sort array\r
+ switch ($sort) { // sortmode\r
+ case 'random': // shuffle array\r
+ shuffle($files);\r
+ break;\r
+ \r
+ case 'DESC': // alphabetical descendening\r
+ arsort($files);\r
+ break;\r
+ \r
+ case 'newest': // newest or \r
+ case 'oldest': // oldest files\r
+ if (is_array($files)) { // if files is an array\r
+ $newarray = array();\r
+ foreach ($files as $value) { // one loop for every file\r
+ $newarray[filemtime($value)] = $value; // $array[time] = pic.jpg\r
+ }\r
+ if ($sort == 'newest') krsort($newarray); // sort from key\r
+ if ($sort == 'oldest') ksort($newarray); // sort from key\r
+ \r
+ $files = $newarray; // overwrite files array\r
+ }\r
+ break;\r
+ \r
+ case (strpos($method, '"') !== false): // " found\r
+ $files[0] = $folder.str_replace('"', '', $sort); // special picture\r
+ break;\r
+ \r
+ default: // default\r
+ case 'ASC': // or ASC - so do nothing\r
+ break;\r
+ }\r
+ \r
+ // 2. rewrite keys of array\r
+ $array = array();\r
+ if (is_array($files)) { // if the array is filled\r
+ foreach ($files as $key => $value) { // one loop for every key\r
+ \r
+ // rewrite key in new array\r
+ if (!$hash) $array[] = $value; // with filename\r
+ else $array[] = $this->hashCode($value); // with hashcode instead of filename\r
+ \r
+ }\r
+ }\r
+ \r
+ // 3. return whole or part of array\r
+ if (!empty($array)) { // if there is an entry\r
+ if (empty($limit)) { // no limit\r
+ return $array; // return complete array\r
+ } else { // there is an entry for limit\r
+ if (strlen($limit) > 6) { // return only a special picture like pic.jpg\r
+ $temparray = array();\r
+ if (is_array($array)) { // if is array\r
+ foreach ($array as $key => $value) { // one loop for every picture in array\r
+ if ($this->hashCode($value) == $limit) { // if hash fits, return picture\r
+ $temparray[] = $value; // $temparray[0] = fileadmin/pic.jpg\r
+ return $temparray;\r
+ }\r
+ }\r
+ }\r
+ } else { // cut after X\r
+ return array_slice($array, 0, $limit); // return only the first X values of the array\r
+ }\r
+ }\r
+ }\r
+ }\r
+ \r
+ \r
+ // Function sorting4folders() returns sorted folder array ($sort could be: random, ASC, DESC, newest, oldest)\r
+ function sorting4folders($folderArray, $sort = 'ASC') {\r
+ if (is_array($folderArray)) {\r
+ // sort array\r
+ switch ($sort) { // sortmode\r
+ case 'random': // shuffle array\r
+ shuffle($folderArray);\r
+ break;\r
+ \r
+ case 'DESC': // alphabetical descendening\r
+ arsort($folderArray);\r
+ break;\r
+ \r
+ default: // default\r
+ case 'ASC': // or ASC\r
+ asort($folderArray);\r
+ break;\r
+ }\r
+ } \r
+ return $folderArray;\r
+ }\r
+ \r
+ \r
+ // Get info of a file (extension, filename, etc...)\r
+ function fileInfo($file, $mode = 'filename', $md5 = 0) { // $mode could be: dirname (fileadmin/pics), basename (pic.jpg), extension (jpg), filename (pic)\r
+ if ($file) {\r
+ $pathinfo = pathinfo($file); // get file infos\r
+ \r
+ switch ($mode) { \r
+ case 'filename': // if filename should be returned\r
+ return $md5 ? $this->hashCode(basename($file, '.'.$pathinfo['extension'])) : basename($file, '.'.$pathinfo['extension']); // return basename\r
+ break;\r
+ \r
+ case 'currentfolder': // return currentfolder\r
+ return $md5 ? $this->hashCode(str_replace('/', '' ,substr($pathinfo['dirname'], strrpos($pathinfo['dirname'], '/')))) : str_replace('/', '' ,substr($pathinfo['dirname'], strrpos($pathinfo['dirname'], '/'))); // return current folder (subfolder of folder/subfolder/pic.jpg)\r
+ break;\r
+ \r
+ default: // default\r
+ return $md5 ? $this->hashCode($pathinfo[$mode]) : $pathinfo[$mode]; // return part of array\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ \r
+ \r
+ // Function check4errors() shows errormessage if there is an error\r
+ function check4errors($value, $msg = 'Error found', $mode = 1, $die = 0) {\r
+ \r
+ switch ($mode) { // mode\r
+ case 1: // check if value is not empty\r
+ if ($value == '') { // if $value is empty\r
+ $error = $this->extKey . ' Error: ' . $msg . '!'; // set errormessage\r
+ }\r
+ break;\r
+ \r
+ case 2: // should be a valid path\r
+ if ($value != '' && !empty($this->conf['main.']['path'])) { // if category is set\r
+ if (!in_array($value, $array = $this->folderChange($this->conf['main.']['path']))) { // only if current hash is in folderarray\r
+ $error = $this->extKey . ' Error: ' . $msg . '!'; // set errormessage\r
+ }\r
+ }\r
+ if ($value != '' && (!t3lib_div::validPathStr($value) || strpos($value, '..') !== false)) { // if $value is not empty AND path is not valid\r
+ $error = $this->extKey . ' Error: ' . $msg . '!'; // set errormessage\r
+ }\r
+ break;\r
+ \r
+ case 3: // check if file exits\r
+ if (!file_exists($value)) { // if $value (file) don't exits\r
+ $error = $this->extKey . ' Error: ' . $msg . '!'; // set errormessage\r
+ }\r
+ break;\r
+ }\r
+ \r
+ if (isset($error)) { // if there is an error\r
+ $error = '<div style="background-color: #A71B42; border: 1px solid black; padding: 5px; color: white; font-weight: bold;">'.$error.'</div>';\r
+ if (!$die) return $error; \r
+ else die ($error);\r
+ }\r
+ \r
+ }\r
+ \r
+ \r
+ // Function validatePicturePath() adds slash at the end if this is missing\r
+ function validatePicturePath($path) {\r
+ if ($path) { // if picture path exists \r
+ if (substr($path, -1, 1) != '/') $path .= '/'; // add slash at the end if this is missing\r
+ if (substr($path, 0, 1) == '/') $path = substr($path, 1); // remove first slash if exits\r
+ if (!t3lib_div::validPathStr($path)) { // picture path is not valid\r
+ die ($this->extKey . ': Picture path not valid - please correct it!'); // stop script\r
+ }\r
+ return $path;\r
+ }\r
+ }\r
+ \r
+ \r
+ // Function markersClassStyle() returns markerArray with definitions of ###CLASS### (firstofrow, centerofrow, lastofrow)\r
+ function markersClassStyle($i, $mode = 'list', $conf) {\r
+ // config\r
+ $markerArray = array();\r
+ \r
+ // let's start\r
+ if ($conf[$mode.'.']['columns'] > 0) { // only if columns where set via flexform or ts\r
+ if(($i+1) / $conf[$mode.'.']['columns'] == round(($i+1) / $conf[$mode.'.']['columns'])) { // If the current picture is the last of the row (current / cols == integer)\r
+ $markerArray['###CLASS###'] = 'wtgallery_'.$mode.'_lastofrow'; // Additional class for DIV Container\r
+ } elseif (fmod($i+1, $conf[$mode.'.']['columns']) == '1') { // If the current picture is the first of the row\r
+ $markerArray['###CLASS###'] = 'wtgallery_'.$mode.'_firstofrow'; // Additional class for DIV Container\r
+ } else { // If current is not the first and not the last in the row\r
+ $markerArray['###CLASS###'] = 'wtgallery_'.$mode.'_centerofrow'; // No additional class\r
+ }\r
+ return $markerArray;\r
+ }\r
+ \r
+ }\r
+ \r
+ \r
+ // Function rowWrapper() wraps content with a div (so every row in list view gets its own parent DIV container)\r
+ function rowWrapper($content, $i, $mode = 'list', $max, $conf) {\r
+ if ($conf['main.']['DIVforRows']) { // if DIV container for every row is activated in constants\r
+ // config\r
+ $addcleardiv = '<div class="clear"></div>';\r
+ $j = ceil(($i+1) / $conf[$mode.'.']['columns']); // row counter\r
+ \r
+ // let's start\r
+ if(($i+1) / $conf[$mode.'.']['columns'] == round(($i+1) / $conf[$mode.'.']['columns']) || ($i+1) == $max) { // If the current picture is the last of the row (current / cols == integer) OR current pictures is the last overall\r
+ $content .= $addcleardiv.'</div>'; // add closing DIV tag\r
+ \r
+ } \r
+ #if (fmod($i+1, $conf[$mode.'.']['columns']) == '1') { // If the current picture is the first of the row\r
+ if (is_int($i/$conf[$mode.'.']['columns'])) { // If the current picture is the first of the row\r
+ $content = '<div class="'.$mode.'_row '.$mode.'_row_'.$j.'">'.$content; // add starting DIV tag\r
+ } \r
+ }\r
+ \r
+ return $content;\r
+ }\r
+ \r
+ \r
+ // Function EXIForTXT() returns wanted meta information of a txt file\r
+ // possibilities for $mode = 'TXT', 'EXIF', 'TXT/EXIF', 'EXIF/TXT', ''\r
+ function EXIForTXT($file, $mode = 'TXT/EXIF') {\r
+ if (!empty($file)) { // only if isset\r
+ // config\r
+ $array = $tmp_array = array(); // init array\r
+ $mode_array = array_reverse(t3lib_div::trimExplode('/', $mode, 1)); // split mode on ,\r
+ \r
+ // let's go\r
+ for ($i=0; $i<count($mode_array); $i++) { // one loop for every set mode\r
+ switch ($mode_array[$i]) {\r
+ case 'EXIF': // if exif should be shown\r
+ $tmp_array = $this->readEXIF($file); // get EXIF information of a picture\r
+ break;\r
+ \r
+ case 'TXT': // if txt file content should be shown\r
+ $tmp_array = $this->readTXT($file); // get TXT information of a picture\r
+ break;\r
+ \r
+ default: // default: do nothing\r
+ $tmp_array = array(); // empty array\r
+ break; \r
+ }\r
+ $array = array_merge((array) $array, (array) $tmp_array); // add to existing array\r
+ }\r
+ \r
+ if (!empty($array)) return $array;\r
+ }\r
+ }\r
+ \r
+ \r
+ // Function readEXIF() reads EXIF information of a given picture ($file could be 'fileadmin/pic.jpg')\r
+ function readEXIF($file) {\r
+ if(file_exists($file) && function_exists('exif_read_data')) { // if file exists AND EXIF function exists\r
+ $info = exif_read_data($file); // get exif of image\r
+ //$info = exif_read_data($file, 'EXIF', 1, 0); // get exif of image\r
+ \r
+ // make EXIF array\r
+ if ($info['Comments'] || $info['WINXP']['Comments']) $array[$this->infoarray[0]] = ($info['Comments'] ? $info['Comments'] : $info['WINXP']['Comments']); // comments\r
+ if ($info['Title'] || $info['WINXP']['Title']) $array[$this->infoarray[1]] = ($info['Title'] ? $info['Title'] : $info['WINXP']['Title']); // title\r
+ if ($info['Subject'] || $info['WINXP']['Subject']) $array[$this->infoarray[2]] = ($info['Subject'] ? $info['Subject'] : $info['WINXP']['Subject']); // subject\r
+ if ($info['Author'] || $info['WINXP']['Author']) $array[$this->infoarray[3]] = ($info['Author'] ? $info['Author'] : $info['WINXP']['Author']); // author\r
+ if ($info['EXIF']['DateTimeOriginal']) $array[$this->infoarray[4]] = $info['EXIF']['DateTimeOriginal']; // recordtime original\r
+ if ($info['IFD0']['Make']) $array[$this->infoarray[5]] = $info['IFD0']['Make']; // camera brand\r
+ if ($info['IFD0']['Model']) $array[$this->infoarray[6]] = $info['IFD0']['Model']; // camera model\r
+ if ($GLOBALS['TSFE']->metaCharset == 'utf-8') $array = array_map('utf8_encode', (array) $array); // utf8 encode on all values of array if utf8 system\r
+ \r
+ if (!empty($array)) return $array;\r
+ \r
+ }\r
+ }\r
+ \r
+ \r
+ // Function readTXT() reads text file of any picture ($file could be 'fileadmin/pic.jpg')\r
+ function readTXT($file) {\r
+ // config\r
+ $postfix = '.txt'; // default postfix like pic.jpg.txt\r
+ if (!empty($GLOBALS['TSFE']->tmpl->setup['config.']['language']) && file_exists($file.'.'.$GLOBALS['TSFE']->tmpl->setup['config.']['language'].$postfix)) $postfix = '.'.$GLOBALS['TSFE']->tmpl->setup['config.']['language'].'.txt'; // rewrite postfix with language postfix pic.jpg.txt => pic.jpg.en.txt\r
+ \r
+ // let's go\r
+ if (file_exists($file) && file_exists($file.$postfix)) { // if picture exists and txt file to picture exists\r
+ $content = t3lib_div::getURL($file.$postfix); // read txtfile\r
+ $contentarray = t3lib_div::trimExplode('|', $content, 1); // split on '|'\r
+ for ($i=0; $i<count($contentarray); $i++) { // one loop for every splitted part in array\r
+ $array[$this->infoarray[$i]] = htmlspecialchars($contentarray[$i]); // rewrite array\r
+ }\r
+ \r
+ if (!empty($array)) return $array;\r
+ }\r
+ }\r
+ \r
+ \r
+ // Function folderChange() gives an array with all picture folders and the fitting md5 hash\r
+ function folderChange($startpath) {\r
+ $folderArray = $newArray = array(); // init empty array\r
+ $folderArray = t3lib_div::getAllFilesAndFoldersInPath($folderArray, t3lib_div::getFileAbsFileName($startpath), 'wt_gallery', 1); // get all folders of the startpath in an array\r
+ $folderArray = array_flip($folderArray); // flip array\r
+ \r
+ foreach ((array) $folderArray as $key => $value) { // one loop for every array content\r
+ if (substr($key, -1) === '/') $key = substr($key, 0, -1); // if last sign is '/' than delete it\r
+ $newArray[str_replace(t3lib_div::getIndpEnv('TYPO3_DOCUMENT_ROOT').'/', '', $key)] = $this->hashCode(str_replace(t3lib_div::getIndpEnv('TYPO3_DOCUMENT_ROOT').'/', '', $key)); // rewrite array like 12345 => fileadmin/pics\r
+ }\r
+ \r
+ if (!empty($newArray)) return $newArray;\r
+ }\r
+ \r
+ \r
+ // Function hash2folder returns fitting folder to a hash code\r
+ function hash2folder($hash, $startpath = 0) {\r
+ if (!$startpath) $startpath = $this->conf['main.']['path']; // set startpath if not yet\r
+ $folderArray = $this->folderChange($startpath);\r
+ $folderArrayFlipped = array_flip($folderArray); // flip array\r
+ return $folderArrayFlipped[$hash];\r
+ }\r
+ \r
+ \r
+ // Function changeSlash() changes / to @ and reverse\r
+ function changeSlash($string, $encode = 1) {\r
+ if ($encode) $string = str_replace('/', '@', $string); // replace 1\r
+ else $string = str_replace('@', '/', $string); // replace 2\r
+ \r
+ return $string;\r
+ }\r
+ \r
+ \r
+ // Function hashCode() returns md5 hash of anything (this is an own function if I want to change it future)\r
+ function hashCode($string) {\r
+ if (!empty($string)) return t3lib_div::md5int($string);\r
+ }\r
+ \r
+ \r
+ // Function init() enables $this->conf\r
+ function init($conf) {\r
+ $this->conf = $conf;\r
+ }\r
+ \r
+ \r
+ /*\r
+ // Function getFolderStructure() returns array with recursive folder list ($folder could be 'fileadmin/pics/')\r
+ function getFolderStructure($folder, $level = 1, $limit = 10) {\r
+ if ($level <= $limit) { // only if limit not reached yet\r
+ $array = array(); // init new array\r
+ $folders = t3lib_div::get_dirs($folder); // array with folders\r
+ \r
+ if (is_array($folders)) { // if there are folders in the array\r
+ foreach ($folders as $key => $value) { // one loop for every folder\r
+ $array[$value] = $this->getFolderStructure($folder.$value.'/', $level + 1, $limit); // recursive open of own function\r
+ }\r
+ }\r
+ if (is_array($folders)) return $array; // if there where folders, return array\r
+ else return 0; // if there where no folders return 0\r
+ }\r
+ }\r
+ */\r
+\r
+}\r
+ \r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_div.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_div.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alexander Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+\r
+class tx_wtgallery_dynamicmarkers extends tslib_pibase {\r
+\r
+ var $extKey = 'wt_gallery';\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_pi1.php'; // Path to pi1 to get locallang.xml from pi1 folder\r
+ var $locallangmarker_prefix = array('WTGALLERY_LL_','wtgallery_ll_'); // prefix for automatic locallangmarker\r
+ var $typoscriptmarker_prefix = array('WTGALLERY_TS_','dynamicTyposcript'); // prefix for automatic typoscriptmarker\r
+ \r
+ \r
+ // Function main() to replace typoscript- and locallang markers\r
+ function main($conf, $cObj, $content, $enable = 1) {\r
+ // config\r
+ $this->conf = $conf;\r
+ $this->cObj = $cObj;\r
+ $this->content = $content;\r
+ $this->pi_loadLL();\r
+ \r
+ if ($enable == 1) { // could be disabled for testing\r
+ \r
+ // let's go\r
+ // 1. replace locallang markers\r
+ $this->content = preg_replace_callback ( // Automaticly fill locallangmarkers with fitting value of locallang.xml\r
+ '#\#\#\#'.$this->locallangmarker_prefix[0].'(.*)\#\#\##Uis', // regulare expression\r
+ array($this, 'DynamicLocalLangMarker'), // open function\r
+ $this->content // current content\r
+ );\r
+ \r
+ // 2. replace typoscript markers\r
+ $this->content = preg_replace_callback ( // Automaticly fill locallangmarkers with fitting value of locallang.xml\r
+ '#\#\#\#'.$this->typoscriptmarker_prefix[0].'(.*)\#\#\##Uis', // regulare expression\r
+ array($this, 'DynamicTyposcriptMarker'), // open function\r
+ $this->content // current content\r
+ );\r
+ \r
+ }\r
+ \r
+ if (!empty($this->content)) return $this->content;\r
+ }\r
+ \r
+ \r
+ // Function DynamicLocalLangMarker() to get automaticly a marker from locallang.xml (###LOCALLANG_BLABLA### from locallang.xml: locallangmarker_blabla)\r
+ function DynamicLocalLangMarker($array) {\r
+ if (!empty($array[1])) $string = $this->pi_getLL(strtolower($this->locallangmarker_prefix[1].$array[1]), '<i>'.strtolower($array[1]).'</i>'); // search for a fitting entry in locallang.xml or typoscript\r
+ \r
+ if (!empty($string)) return $string;\r
+ }\r
+ \r
+ \r
+ // Function DynamicTyposcriptMarker() to get automaticly a marker from typoscript \r
+ function DynamicTyposcriptMarker($array) {\r
+ if ($this->conf['dynamicTyposcript.'][strtolower($array[1])]) { // If there is a fitting entry in typoscript\r
+ $string = $this->cObj->cObjGetSingle($this->conf[$this->typoscriptmarker_prefix[1].'.'][strtolower($array[1])], $this->conf[$this->typoscriptmarker_prefix[1].'.'][strtolower($array[1]).'.']); // fill string with typoscript value\r
+ }\r
+ \r
+ if (!empty($string)) return $string;\r
+ }\r
+ \r
+}\r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_dynamicmarkers.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_dynamicmarkers.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alexander Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_div.php'); // load div class\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_dynamicmarkers.php'); // file for dynamicmarker functions\r
+\r
+\r
+class tx_wtgallery_list_pagebrowser extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_list.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+ \r
+ function start($conf, $piVars, $cObj, $pbarray) {\r
+ // Config\r
+ $this->conf = $conf;\r
+ $this->piVars = $piVars;\r
+ $this->cObj = $cObj;\r
+ $this->pbarray = $pbarray;\r
+ $this->markerArray = array();\r
+ $this->div = t3lib_div::makeInstance('tx_wtgallery_div'); // Create new instance for div class\r
+ $this->dynamicMarkers = t3lib_div::makeInstance('tx_wtgallery_dynamicmarkers'); // Create new instance for dynamicmarker function\r
+ $this->tmpl = array ('pagebrowser' => $this->cObj->getSubpart($this->cObj->fileResource($this->conf['template.']['list']), '###WTGALLERY_LIST_PAGEBROWSER###')); // Load HTML Template for pagebrowser\r
+\r
+ // let's go\r
+ $this->markerArray['###CURRENT_MIN###'] = ($this->pbarray['pointer'] * ($this->conf['list.']['rows'] * $this->conf['list.']['columns'])) + 1; // Current page: From\r
+ $this->markerArray['###CURRENT_MAX###'] = ($this->pbarray['pointer'] * ($this->conf['list.']['rows'] * $this->conf['list.']['columns'])) + $this->pbarray['overall_cur']; // Current page: up to\r
+ if ($this->markerArray['###CURRENT_MAX###'] > $this->pbarray['overall']) $this->markerArray['###CURRENT_MAX###'] = $this->pbarray['overall']; // set maximum\r
+ $this->markerArray['###OVERALL###'] = $this->pbarray['overall']; // Overall addresses\r
+ $this->conf['list.']['pagebrowser.']['special.']['userFunc.'] = $this->pbarray; // config for pagebrowser userfunc\r
+ if (($this->conf['list.']['rows'] * $this->conf['list.']['columns']) < $this->pbarray['overall']) $this->markerArray['###PAGELINKS###'] = $this->cObj->cObjGetSingle($this->conf['list.']['pagebrowser'], $this->conf['list.']['pagebrowser.']); // Pagebrowser menu (show only if needed)\r
+ \r
+ $this->content = $this->cObj->substituteMarkerArrayCached($this->tmpl['pagebrowser'], $this->markerArray); // substitute Marker in Template\r
+ $this->content = $this->dynamicMarkers->main($this->conf, $this->cObj, $this->content); // Fill dynamic locallang or typoscript markers\r
+ $this->content = preg_replace("|###.*?###|i", "", $this->content); // Finally clear not filled markers\r
+ if (!empty($this->content) && $this->pbarray['overall'] > 0) return $this->content; // return only if results\r
+ } \r
+ \r
+}\r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_list_pagebrowser.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/class.tx_wtgallery_list_pagebrowser.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alexander Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+\r
+class user_wtgallery_category_pagebrowser extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_list.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+\r
+ // Function start() generates HMENU for typoscript\r
+ function start($content='', $conf=array()) {\r
+ // config\r
+ global $TSFE;\r
+ $cObj = $TSFE->cObj; // cObject\r
+ $this->conf = $conf; // conf\r
+ $this->pi_loadLL();\r
+ $menuarray = array(); $conf['userFunc.']['pointer'] = 0;\r
+ \r
+ // let's go\r
+ for($i=0; $i < ceil($conf['userFunc.']['overall'] / $conf['userFunc.']['perPage']); $i++) { // one loop for every page\r
+ if ($conf['userFunc.']['pointer'] == intval($_GET[$this->prefixId]['listpointer'])) $menuarray[$i]['ITEM_STATE'] = 'ACT'; // act status for menu\r
+ \r
+ $menuarray[$i]['title'] = sprintf($this->pi_getLL('wtgallery_ll_pagebrowser_page', 'page '.($i+1)), ($i+1)); // menu label\r
+ $menuarray[$i]['_OVERRIDE_HREF'] = $this->pi_linkTP_keepPIvars_url(array('categorypointer' => $conf['userFunc.']['pointer']), 1); // url for menu\r
+ $conf['userFunc.']['pointer'] = ($i+1);\r
+ };\r
+ \r
+ return $menuarray;\r
+ }\r
+ \r
+}\r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/user_wtgallery_category_pagebrowser.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/user_wtgallery_category_pagebrowser.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alexander Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+\r
+class user_wtgallery_list_pagebrowser extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_list.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+\r
+ // Function start() generates HMENU for typoscript\r
+ function start($content='', $conf=array()) {\r
+ // config\r
+ global $TSFE;\r
+ $cObj = $TSFE->cObj; // cObject\r
+ $this->conf = $conf; // conf\r
+ $this->pi_loadLL();\r
+ $menuarray = array(); $conf['userFunc.']['pointer'] = 0;\r
+ \r
+ // let's go\r
+ for($i=0; $i < ceil($conf['userFunc.']['overall'] / $conf['userFunc.']['perPage']); $i++) { // one loop for every page\r
+ if ($conf['userFunc.']['pointer'] == intval($_GET[$this->prefixId]['listpointer'])) $menuarray[$i]['ITEM_STATE'] = 'ACT'; // act status for menu\r
+ \r
+ $menuarray[$i]['title'] = sprintf($this->pi_getLL('wtgallery_ll_pagebrowser_page', 'page '.($i+1)), ($i+1)); // menu label\r
+ $menuarray[$i]['_OVERRIDE_HREF'] = $this->pi_linkTP_keepPIvars_url(array('listpointer' => $conf['userFunc.']['pointer']), 1); // url for menu\r
+ $conf['userFunc.']['pointer'] = ($i+1);\r
+ };\r
+ \r
+ return $menuarray;\r
+ }\r
+ \r
+}\r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/user_wtgallery_list_pagebrowser.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/lib/user_wtgallery_list_pagebrowser.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>\r
+<T3locallang>\r
+ <meta type="array">\r
+ <type>module</type>\r
+ <description>Language labels for extension 'wt_gallery'</description>\r
+ </meta>\r
+ <data type="array">\r
+ <languageKey index="default" type="array">\r
+ <label index="pi1_title">WT Gallery</label>\r
+ <label index="pi1_plus_wiz_description">Provides a gallery with separate Single- and Thumbnail-View</label>\r
+ </languageKey>\r
+ <languageKey index="de" type="array">\r
+ <label index="pi1_title">WT Galerie</label>\r
+ <label index="pi1_plus_wiz_description">Galerie mit getrennter Einzel- und Uebersichtsansicht</label>\r
+ </languageKey>\r
+ </data>\r
+</T3locallang>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>\r
+<T3locallang>\r
+ <meta type="array">\r
+ <type>database</type>\r
+ <description>Language labels for database tables/fields belonging to extension 'wt_gallery'</description>\r
+ </meta>\r
+ <data type="array">\r
+ <languageKey index="default" type="array">\r
+ <label index="tt_content.list_type_pi1">WT Gallery</label>\r
+ <label index="pi_flexform.sheet_main">Main Configuration</label>\r
+ <label index="pi_flexform.sheet_single">Single</label>\r
+ <label index="pi_flexform.sheet_list">List</label>\r
+ <label index="pi_flexform.sheet_latest">Latest</label>\r
+ <label index="pi_flexform.sheet_category">Category</label>\r
+ <label index="pi_flexform.sheet_cooliris">Cooliris</label>\r
+ <label index="pi_flexform.mode">Show:</label>\r
+ <label index="pi_flexform.mode.0">Single</label>\r
+ <label index="pi_flexform.mode.1">List</label>\r
+ <label index="pi_flexform.mode.2">Latest</label>\r
+ <label index="pi_flexform.mode.3">Category</label>\r
+ <label index="pi_flexform.mode.4">Cooliris listview</label>\r
+ <label index="pi_flexform.path">Pic Folder (e.g. fileadmin/pics/)</label>\r
+ <label index="pi_flexform.width">Picture width</label>\r
+ <label index="pi_flexform.height">Picture height</label>\r
+ <label index="pi_flexform.window_width">Width of cooliris window (px)</label>\r
+ <label index="pi_flexform.window_height">Height of cooliris window (px)</label>\r
+ <label index="pi_flexform.columns">Number of columns</label>\r
+ <label index="pi_flexform.rows">Number of rows</label>\r
+ <label index="pi_flexform.pid_single">Page with single view (empty = same page)</label>\r
+ <label index="pi_flexform.pid_list">Page with list view (empty = same page)</label>\r
+ <label index="pi_flexform.pid_category">Page with category view (empty = same page)</label>\r
+ <label index="pi_flexform.pid_latest">Page with latest view (empty = same page)</label>\r
+ </languageKey>\r
+ <languageKey index="de" type="array">\r
+ <label index="tt_content.list_type_pi1">WT Galerie</label>\r
+ <label index="pi_flexform.sheet_main">Haupteinstellungen</label>\r
+ <label index="pi_flexform.sheet_single">Single</label>\r
+ <label index="pi_flexform.sheet_list">Liste</label>\r
+ <label index="pi_flexform.sheet_latest">Letzte (Latest)</label>\r
+ <label index="pi_flexform.sheet_category">Kategorie</label>\r
+ <label index="pi_flexform.sheet_cooliris">Cooliris</label>\r
+ <label index="pi_flexform.mode">Anzeige:</label>\r
+ <label index="pi_flexform.mode.0">Single</label>\r
+ <label index="pi_flexform.mode.1">Liste</label>\r
+ <label index="pi_flexform.mode.2">Letzte (Latest)</label>\r
+ <label index="pi_flexform.mode.3">Kategorien</label>\r
+ <label index="pi_flexform.mode.4">Cooliris Listenansicht</label>\r
+ <label index="pi_flexform.path">Bild Verzeichnis (z.B. fileadmin/pics/)</label>\r
+ <label index="pi_flexform.width">Bildbreite</label>\r
+ <label index="pi_flexform.height">Bildhöhe</label>\r
+ <label index="pi_flexform.window_width">Breite des Cooliris Fensters (px)</label>\r
+ <label index="pi_flexform.window_height">Höhe des Cooliris Fensters (px)</label>\r
+ <label index="pi_flexform.columns">Anzahl Spalten</label>\r
+ <label index="pi_flexform.rows">Anzahl Zeilen</label>\r
+ <label index="pi_flexform.pid_single">Seite mit Singleansicht (leer = gleiche Seite)</label>\r
+ <label index="pi_flexform.pid_list">Seite mit Listenansicht (leer = gleiche Seite)</label>\r
+ <label index="pi_flexform.pid_category">Seite mit Kategorieansicht (leer = gleiche Seite)</label>\r
+ <label index="pi_flexform.pid_latest">Seite mit Ansicht der Letzen Bilder (leer = gleiche Seite)</label>\r
+ </languageKey>\r
+ </data>\r
+</T3locallang>\r
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alex Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_div.php'); // load div class\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_dynamicmarkers.php'); // file for dynamicmarker functions\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_category_pagebrowser.php'); // file for categorybrowser function\r
+\r
+class tx_wtgallery_category extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_category.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+ \r
+ function start($conf, $piVars, $cObj) {\r
+ // config\r
+ $this->conf = $conf;\r
+ $this->piVars = $piVars;\r
+ $this->cObj = $cObj;\r
+ $this->pi_loadLL();\r
+ $this->div = t3lib_div::makeInstance('tx_wtgallery_div'); // Create new instance for div class\r
+ $this->dynamicMarkers = t3lib_div::makeInstance('tx_wtgallery_dynamicmarkers'); // Create new instance for dynamicmarker function\r
+ $this->pagebrowser = t3lib_div::makeInstance('tx_wtgallery_category_pagebrowser'); // Create new instance for categorybrowser function\r
+ $this->tmpl = $this->markerArray = $this->outerMarkerArray = array(); $content_item = ''; // init\r
+ $this->tmpl['category']['all'] = $this->cObj->getSubpart($this->cObj->fileResource($this->conf['template.']['category']), '###WTGALLERY_CATEGORY###'); // Load HTML Template\r
+ $this->tmpl['category']['item'] = $this->cObj->getSubpart($this->tmpl['category']['all'],'###ITEM###'); // work on subpart 2\r
+\r
+ // let's go\r
+ $startpath = $this->div->validatePicturePath($this->piVars['category'] ? $this->div->hash2folder($this->piVars['category'], $this->conf['main.']['path']) : $this->conf['main.']['path']); // startpath from piVars or from ts\r
+ $folders = $this->div->sorting4folders(t3lib_div::get_dirs($startpath), $this->conf['category.']['order']); // Get all subfolders in the picture folder\r
+ $folders_current = array_chunk((array) $folders, ($this->conf['category.']['rows'] * $this->conf['category.']['columns'])); // split array in parts for pagebrowser\r
+ $this->overall = count($folders); // count all pictures\r
+ $pointer = ($this->piVars['categorypointer'] > 0 ? $this->piVars['categorypointer'] : 0); // pointer\r
+ \r
+ if (count($folders_current[$pointer]) > 0) { // if there are folders\r
+ for ($i=0; $i<count($folders_current[$pointer]); $i++) { // one loop for every folder in current folder\r
+ // let's start\r
+ $picture = $this->div->getFiles($this->conf, $startpath.$folders_current[$pointer][$i].'/', $this->conf['category.']['previewpicture_order'], 1); // get a picture from category\r
+ $row = array ( // write $row for .field in ts AND for markers in html template\r
+ 'picture' => $picture[0], // first entry of files array (e.g. fileadmin/pic1.jpg)\r
+ 'tstamp' => filemtime($picture[0]), // timestamp of file\r
+ 'filename' => $this->div->fileInfo($picture[0], 'filename'), // like pic\r
+ 'dirname' => $this->div->fileInfo($picture[0], 'dirname'), // like fileadmin/pics\r
+ 'basename' => $this->div->fileInfo($picture[0], 'basename'), // like pic.jpg\r
+ 'extension' => $this->div->fileInfo($picture[0], 'extension'), // like jpg\r
+ 'currentfolder' => $this->div->fileInfo($picture[0], 'currentfolder'), // like folder\r
+ 'link_list' => $this->cObj->typolink('x', array('parameter' => $GLOBALS['TSFE']->id, 'additionalParams' => '&'.$this->prefixId.'[category]='.$this->div->fileInfo($picture[0], 'dirname', 1), 'useCacheHash' => 1, 'returnLast' => 'url') ) // , 'ATagParams' => 'target="_self"'\r
+ );\r
+ $this->cObj->start($row, 'tt_content'); // enable .field in typoscript for singleview\r
+ \r
+ $this->markerArray = $this->div->markersClassStyle($i, 'category', $this->conf); // fill ###CLASS### and ###STYLE###\r
+ if (!empty($this->conf['category.']['width'])) $this->conf['category.']['image.']['file.']['width'] = $this->conf['category.']['width']; // set width from config (e.g. flexform if not empty)\r
+ if (!empty($this->conf['category.']['height'])) $this->conf['category.']['image.']['file.']['height'] = $this->conf['category.']['height']; // set height from config (e.g. flexform if not empty)\r
+ $this->markerArray['###IMAGE###'] = $this->cObj->cObjGetSingle($this->conf['category.']['image'], $this->conf['category.']['image.']); // values from ts\r
+ foreach ($row as $key => $value) { // one loop for every row entry\r
+ $this->markerArray['###'.strtoupper($key).'###'] = $value; // fill marker with value of row\r
+ }\r
+ \r
+ $metarow = $this->div->EXIForTXT($row['picture'], $this->conf['category.']['metainformation']); // get metainformation\r
+ $metarow = array_merge((array) $metarow, array('link_list' => $this->cObj->typolink('x', array('parameter' => $GLOBALS['TSFE']->id, 'additionalParams' => '&'.$this->prefixId.'[category]='.$this->div->fileInfo($picture[0], 'dirname'), 'useCacheHash' => 1, 'returnLast' => 'url') ))); // add link to list\r
+ $this->cObj->start($metarow, 'tt_content'); // enable .field in typoscript for singleview\r
+ $this->markerArray['###TEXT###'] = $this->cObj->cObjGetSingle($this->conf['category.']['text'], $this->conf['category.']['text.']); // values from ts\r
+ \r
+ $this->wrappedSubpartArray['###CATEGORYLINK###'] = $this->cObj->typolinkWrap( array('parameter' => $GLOBALS['TSFE']->id, 'additionalParams' => '&'.$this->prefixId.'[category]='.$this->div->fileInfo($picture[0], 'dirname', 1), 'useCacheHash' => 1) ); // Link to same page with current folder\r
+ \r
+ $content_item .= $this->div->rowWrapper($this->cObj->substituteMarkerArrayCached($this->tmpl['category']['item'], $this->markerArray, array(), $this->wrappedSubpartArray), $i, 'category', count($folders_current[$pointer]), $this->conf); // add inner html to variable\r
+ } \r
+ }\r
+ $this->num = $i; // current pictures for pagebrowser\r
+ $subpartArray['###CONTENT###'] = $content_item; // work on subpart 3\r
+ \r
+ // fill outer markers\r
+ $this->outerMarkerArray['###PAGEBROWSER###'] = $this->pagebrowser->start($this->conf, $this->piVars, $this->cObj, array('overall' => $this->overall, 'overall_cur' => ($this->conf['category.']['rows'] * $this->conf['category.']['columns']), 'pointer' => $pointer, 'perPage' => ($this->conf['category.']['rows'] * $this->conf['category.']['columns']))); // include categorybrowser\r
+ \r
+ $this->content = $this->cObj->substituteMarkerArrayCached($this->tmpl['category']['all'], $this->outerMarkerArray, $subpartArray); // Get html template\r
+ $this->content = $this->dynamicMarkers->main($this->conf, $this->cObj, $this->content); // Fill dynamic locallang or typoscript markers\r
+ $this->content = preg_replace("|###.*?###|i", '', $this->content); // Finally clear not filled markers\r
+ if (!empty($this->content) && ($i > 0 || !empty($this->piVars['category']))) return $this->content; // return HTML if $content is not empty AND ( if there are pictures OR category was chosen )\r
+ } \r
+ \r
+\r
+}\r
+ \r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_category.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_category.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alex Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_div.php'); // load div class\r
+\r
+class tx_wtgallery_cooliris extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_single.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+ var $mode = 'cooliris'; // mode name\r
+ \r
+ function start($conf, $piVars, $cObj) {\r
+ // config\r
+ $this->conf = $conf;\r
+ $this->piVars = $piVars;\r
+ $this->cObj = $cObj;\r
+ $this->pi_loadLL();\r
+ $this->div = t3lib_div::makeInstance('tx_wtgallery_div'); // Create new instance for div class\r
+ $fullscreen = $this->conf[$this->mode.'.']['allow_fullscreen'] == 1 ? 'true' : 'false'; // Fullscreen button\r
+ $scriptaccess = $this->conf[$this->mode.'.']['allow_scriptaccess'] == 1 ? 'always' : 'false'; // Script access button\r
+ \r
+ // let's go\r
+ // check if there are pictures in current folder\r
+ $startpath = $this->div->validatePicturePath($this->piVars['category'] ? $this->div->hash2folder($this->piVars['category'], $this->conf['main.']['path']) : $this->conf['main.']['path']); // startpath from piVars or from ts\r
+ $pictures = $this->div->getFiles($this->conf, $startpath, $this->conf[$this->mode.'.']['order'], $this->conf[$this->mode.'.']['limit']); // get all pictures from current folder\r
+ \r
+ if (count($pictures) > 0) { // if there are pictures in current folder\r
+ $rssurl = t3lib_div::getIndpEnv('TYPO3_SITE_URL').$this->cObj->typolink('x', array('parameter' => $GLOBALS['TSFE']->id, 'additionalParams' => '&type=3135'.($this->piVars['category'] ? '&'.$this->prefixId.'[category]='.$this->piVars['category'] : ''), 'useCacheHash' => 1, 'returnLast' => 'url') );\r
+ \r
+ // add html code for showing swf\r
+ $this->content = '\r
+ <object id=\'coolirisOuter\' classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\' width=\'' . $this->conf[$this->mode.'.']['window_width'] . '\' height=\'' . $this->conf[$this->mode.'.']['window_height'] . '\'>\r
+ <param name=\'movie\' value=\'' . t3lib_div::getIndpEnv('TYPO3_SITE_URL') . $GLOBALS['TSFE']->tmpl->getFileName($this->conf['cooliris.']['swf']) . '\' />\r
+ <param name=\'flashvars\' value=\'feed=' . $rssurl . '\' />\r
+ <param name=\'allowFullScreen\' value=\'' . $fullscreen . '\' />\r
+ <param name=\'allowScriptAccess\' value=\'' . $scriptaccess . '\' />\r
+ <!--[if !IE]>-->\r
+ <object id=\'coolirisInner\' type=\'application/x-shockwave-flash\' data=\'' . t3lib_div::getIndpEnv('TYPO3_SITE_URL') . $GLOBALS['TSFE']->tmpl->getFileName($this->conf['cooliris.']['swf']) . '\' width=\'' . $this->conf[$this->mode.'.']['window_width'] . '\' height=\'' . $this->conf[$this->mode.'.']['window_height'] . '\'>\r
+ <param name=\'flashvars\' value=\'feed=' . $rssurl . '\' />\r
+ <param name=\'allowFullScreen\' value=\'' . $fullscreen . '\' />\r
+ <param name=\'allowScriptAccess\' value=\'' . $scriptaccess . '\' />\r
+ <!--<![endif]-->\r
+ <div class="wt_gallery_noflash">' . $this->conf[$this->mode.'.']['noflash_message'] . '</div>\r
+ <!--[if !IE]>-->\r
+ </object>\r
+ <!--<![endif]-->\r
+ </object>\r
+ ';\r
+ }\r
+ \r
+ if (!empty($this->content)) return $this->content; // return HTML if $content is not empty\r
+ } \r
+ \r
+\r
+}\r
+ \r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_cooliris.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_cooliris.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alex Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_div.php'); // load div class\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_dynamicmarkers.php'); // file for dynamicmarker functions\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_list_pagebrowser.php'); // file for dynamicmarker functions\r
+\r
+class tx_wtgallery_list extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_list.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+ \r
+ function start($conf, $piVars, $cObj) {\r
+ // config\r
+ $this->conf = $conf;\r
+ $this->piVars = $piVars;\r
+ $this->cObj = $cObj;\r
+ $this->pi_loadLL();\r
+ $this->div = t3lib_div::makeInstance('tx_wtgallery_div'); // Create new instance for div class\r
+ $this->dynamicMarkers = t3lib_div::makeInstance('tx_wtgallery_dynamicmarkers'); // Create new instance for dynamicmarker function\r
+ $this->pagebrowser = t3lib_div::makeInstance('tx_wtgallery_list_pagebrowser'); // Create new instance for pagebrowser function\r
+ $this->tmpl = $this->markerArray = $this->outerMarkerArray = $subpartArray = array(); $content_item = ''; // init\r
+ $this->tmpl['list']['all'] = $this->cObj->getSubpart($this->cObj->fileResource($this->conf['template.']['list']), '###WTGALLERY_LIST###'); // Load HTML Template\r
+ $this->tmpl['list']['item'] = $this->cObj->getSubpart($this->tmpl['list']['all'],'###ITEM###'); // work on subpart 2\r
+ \r
+ // let's go\r
+ $startpath = $this->div->validatePicturePath($this->piVars['category'] ? $this->div->hash2folder($this->piVars['category'], $this->conf['main.']['path']) : $this->conf['main.']['path']); // startpath from piVars or from ts\r
+ $pictures = $this->div->getFiles($this->conf, $startpath, $this->conf['list.']['order'], $this->conf['list.']['limit']); // get all pictures from current folder\r
+ $pictures_current = array_chunk((array) $pictures, ($this->conf['list.']['rows'] * $this->conf['list.']['columns'])); // split array in parts for pagebrowser\r
+ $this->overall = count($pictures); // count all pictures\r
+ $pointer = ($this->piVars['listpointer'] > 0 ? $this->piVars['listpointer'] : 0); // pointer\r
+ \r
+ if (count($pictures_current[$pointer]) > 0) { // if there are pictures\r
+ for ($i=0; $i<count($pictures_current[$pointer]); $i++) { // one loop for every picture in current folder\r
+ // let's start\r
+ $row = array ( // write $row for .field in ts AND for markers in html template\r
+ 'picture' => $pictures_current[$pointer][$i], // first entry of files array (e.g. fileadmin/pic1.jpg)\r
+ 'tstamp' => filemtime($pictures_current[$pointer][$i]), // timestamp of file\r
+ 'filename' => $this->div->fileInfo($pictures_current[$pointer][$i], 'filename'), // like pic\r
+ 'dirname' => $this->div->fileInfo($pictures_current[$pointer][$i], 'dirname'), // like fileadmin/pics\r
+ 'basename' => $this->div->fileInfo($pictures_current[$pointer][$i], 'basename'), // like pic.jpg\r
+ 'extension' => $this->div->fileInfo($pictures_current[$pointer][$i], 'extension'), // like jpg\r
+ 'currentfolder' => $this->div->fileInfo($pictures_current[$pointer][$i], 'currentfolder'), // like folder\r
+ 'picturehash' => $this->div->hashCode($pictures_current[$pointer][$i]), // like 12345678\r
+ 'pid_single' => ($this->conf['single.']['pid_single'] > 0 ? $this->conf['single.']['pid_single'] : $GLOBALS['TSFE']->id), // PID of single view\r
+ 'link_single' => tslib_pibase::pi_linkTP_keepPIvars_url(array('show' => $this->div->hashCode($pictures_current[$pointer][$i])), 1, 0, ($this->conf['single.']['pid_single'] > 0 ? $this->conf['single.']['pid_single'] : 0)) // link to single view\r
+ );\r
+ $this->cObj->start($row, 'tt_content'); // enable .field in typoscript for singleview\r
+ $this->markerArray = $this->div->markersClassStyle($i, 'list', $this->conf); // fill ###CLASS###\r
+ if (($this->piVars['show'] == $this->div->hashCode($pictures_current[$pointer][$i])) || (!isset($this->piVars['show']) && $i == 0)) $this->markerArray['###CLASS###'] .= ' wtgallery_list_current'; // add string to div if current picture\r
+ if (!empty($this->conf['list.']['width'])) $this->conf['list.']['image.']['file.']['width'] = $this->conf['list.']['width']; // set width from config (e.g. flexform if not empty)\r
+ if (!empty($this->conf['list.']['height'])) $this->conf['list.']['image.']['file.']['height'] = $this->conf['list.']['height']; // set height from config (e.g. flexform if not empty)\r
+ $this->markerArray['###IMAGE###'] = $this->cObj->cObjGetSingle($this->conf['list.']['image'], $this->conf['list.']['image.']); // values from ts\r
+ foreach ($row as $key => $value) { // one loop for every row entry\r
+ $this->markerArray['###'.strtoupper($key).'###'] = $value; // fill marker with value of row\r
+ }\r
+ \r
+ $metarow = $this->div->EXIForTXT($row['picture'], $this->conf['list.']['metainformation']); // get metainformation\r
+ $this->cObj->start($metarow, 'tt_content'); // enable .field in typoscript for singleview\r
+ $this->markerArray['###TEXT###'] = $this->cObj->cObjGetSingle($this->conf['list.']['text'], $this->conf['list.']['text.']); // values from ts\r
+ \r
+ $this->wrappedSubpartArray['###SINGLELINK###'][0] = '<a href="'.tslib_pibase::pi_linkTP_keepPIvars_url(array('show' => $this->div->hashCode($row['picture'])), 1, 0, ($this->conf['single.']['pid_single'] > 0 ? $this->conf['single.']['pid_single'] : 0)).'">'; // Link with piVars "show"\r
+ $this->wrappedSubpartArray['###SINGLELINK###'][1] = '</a>'; // postfix for linkwrap\r
+ \r
+ $content_item .= $this->div->rowWrapper($this->cObj->substituteMarkerArrayCached($this->tmpl['list']['item'], $this->markerArray, array(), $this->wrappedSubpartArray), $i, 'list', count($pictures_current[$pointer]), $this->conf); // add inner html to variable\r
+ } \r
+ }\r
+ \r
+ $this->num = $i; // current pictures for pagebrowser\r
+ $subpartArray['###CONTENT###'] = $content_item; // work on subpart 3\r
+ $this->outerMarkerArray['###PAGEBROWSER###'] = $this->pagebrowser->start($this->conf, $this->piVars, $this->cObj, array('overall' => $this->overall, 'overall_cur' => ($this->conf['list.']['rows'] * $this->conf['list.']['columns']), 'pointer' => $pointer, 'perPage' => ($this->conf['list.']['rows'] * $this->conf['list.']['columns']))); // includes pagebrowser function\r
+ \r
+ $this->content = $this->cObj->substituteMarkerArrayCached($this->tmpl['list']['all'], $this->outerMarkerArray, $subpartArray); // Get html template\r
+ $this->content = $this->dynamicMarkers->main($this->conf, $this->cObj, $this->content); // Fill dynamic locallang or typoscript markers\r
+ $this->content = preg_replace("|###.*?###|i", "", $this->content); // Finally clear not filled markers\r
+ if (!empty($this->content) && $i > 0) return $this->content; // return HTML if $content is not empty and if there are pictures\r
+ } \r
+ \r
+\r
+}\r
+ \r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_list.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_list.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2006 Alex Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'pi1/class.tx_wtgallery_single.php'); // load class for single view\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'pi1/class.tx_wtgallery_list.php'); // load class for list view\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'pi1/class.tx_wtgallery_category.php'); // load class for category view\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'pi1/class.tx_wtgallery_cooliris.php'); // load class for cooliris view\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_div.php'); // load div class\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_coolirisrss.php'); // load class for cooliris RSS\r
+if (t3lib_extMgm::isLoaded('wt_doorman', 0)) require_once(t3lib_extMgm::extPath('wt_doorman').'class.tx_wtdoorman_security.php'); // load security class\r
+\r
+/**\r
+ * Plugin 'WT Gallery' for the 'wt_gallery' extension.\r
+ *\r
+ * @author Alex <alexander.kellner@einpraegsam.net>\r
+ * @package TYPO3\r
+ * @subpackage tx_wtgallery\r
+ */\r
+class tx_wtgallery_pi1 extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_pi1.php'; // Path to this script relative to the extension dir.\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+ \r
+ \r
+ // Gallery main function\r
+ function main ($content, $conf) {\r
+ $this->conf = $conf;\r
+ $this->pi_setPiVarDefaults();\r
+ $this->pi_loadLL();\r
+ $this->pi_initPIflexForm();\r
+ $this->div = t3lib_div::makeInstance('tx_wtgallery_div'); // Create new instance for div class\r
+ $this->single = t3lib_div::makeInstance('tx_wtgallery_single'); // Create new instance for single class\r
+ $this->list = t3lib_div::makeInstance('tx_wtgallery_list'); // Create new instance for single class\r
+ $this->category = t3lib_div::makeInstance('tx_wtgallery_category'); // Create new instance for category class\r
+ $this->cooliris = t3lib_div::makeInstance('tx_wtgallery_cooliris'); // Create new instance for cooliris view\r
+ $this->coolirisRSS = t3lib_div::makeInstance('tx_wtgallery_coolirisrss'); // Create new instance for cooliris RSS\r
+ $this->content = '';\r
+ \r
+ // config\r
+ $this->secure(); // Clean piVars\r
+ $this->config(); // Enable flexform values in config\r
+ $this->check(); // Fast check if all is ok\r
+ $mode = t3lib_div::trimExplode(',', $this->conf['main.']['mode'], 1); // split mode\r
+ \r
+ // let's go\r
+ if ($this->conf['main.']['mode'] && $this->conf['main.']['path']) { // only if mode and path are set\r
+ for ($i=0; $i < count($mode); $i++) { // One loop for every selected mode\r
+ \r
+ switch ($mode[$i]) { // mode\r
+ case 'single': // if single mode is selected\r
+ $this->content .= $this->single->start($this->conf, $this->piVars, $this->cObj); // get single view\r
+ break;\r
+ \r
+ case 'list': // if list mode is selected\r
+ $this->content .= $this->list->start($this->conf, $this->piVars, $this->cObj); // get list view\r
+ break;\r
+ \r
+ case 'category': // if category mode is selected\r
+ $this->content .= $this->category->start($this->conf, $this->piVars, $this->cObj); // get category view\r
+ break;\r
+ \r
+ case 'cooliris': // if cooliris mode is selected\r
+ $this->content .= $this->cooliris->start($this->conf, $this->piVars, $this->cObj); // get cooliris listview\r
+ break;\r
+ }\r
+ \r
+ }\r
+ }\r
+ \r
+ if (t3lib_div::GPvar('type') == 3135) { // typenum is 3135 (rss feed for cooliris)\r
+ return $this->coolirisRSS->start($this->conf, $this->piVars, $this->cObj); // RSS Feed\r
+ }\r
+ \r
+ return $this->pi_wrapInBaseClass($this->content);\r
+ }\r
+ \r
+ \r
+ // enables flexform values in $conf\r
+ function config() {\r
+ // 1. add flexform values to $this->conf\r
+ if (is_array($this->cObj->data['pi_flexform']['data'])) { // if there are flexform values\r
+ foreach ($this->cObj->data['pi_flexform']['data'] as $key => $value) { // every flexform category\r
+ if (count($this->cObj->data['pi_flexform']['data'][$key]['lDEF']) > 0) { // if there are flexform values\r
+ foreach ($this->cObj->data['pi_flexform']['data'][$key]['lDEF'] as $key2 => $value2) { // every flexform option\r
+ if ($this->pi_getFFvalue($this->cObj->data['pi_flexform'], $key2, $key)) { // if value exists in flexform\r
+ $this->conf[$key.'.'][$key2] = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], $key2, $key); // overwrite $this->conf\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ \r
+ // 2. validate picture path\r
+ if ($this->conf['main.']['path']) { // if picture path exists \r
+ if (substr($this->conf['main.']['path'], -1, 1) != '/') $this->conf['main.']['path'] .= '/'; // add slash at the end if this is missing\r
+ if (substr($this->conf['main.']['path'], 0, 1) == '/') $this->conf['main.']['path'] = substr($this->conf['main.']['path'], 1); // remove first slash if exits\r
+ if (!t3lib_div::validPathStr($this->conf['main.']['path'])) { // picture path is not valid\r
+ die ($this->extKey . ': Picture path not valid - please correct it!'); // stop script\r
+ }\r
+ }\r
+ \r
+ // 3. set value for columns and rows if no value is set\r
+ if (empty($this->conf['list.']['rows'])) $this->conf['list.']['rows'] = 1000; // set 1000 for default lines\r
+ if (empty($this->conf['list.']['columns'])) $this->conf['list.']['columns'] = 1; // set 1 for default columns\r
+ if (empty($this->conf['category.']['rows'])) $this->conf['category.']['rows'] = 1000; // set 1000 for default lines\r
+ if (empty($this->conf['category.']['columns'])) $this->conf['category.']['columns'] = 1; // set 1 for default columns\r
+ \r
+ // 4. add hook for conf manipulation\r
+ if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey]['setup'])) { // Adds hook for processing\r
+ foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey]['setup'] as $_classRef) {\r
+ $_procObj = & t3lib_div::getUserObj($_classRef);\r
+ $_procObj->setup($this->conf, $this->piVars, $this); // Enable setup manipulation\r
+ }\r
+ }\r
+ }\r
+ \r
+ \r
+ // Function secure() uses wt_doorman to clear piVars\r
+ function secure() {\r
+ if (class_exists('tx_wtdoorman_security')) { // if doorman class exits\r
+ $this->sec = t3lib_div::makeInstance('tx_wtdoorman_security'); // Create new instance for security class\r
+ $this->sec->secParams = array ( // Allowed piVars type (int, text, alphanum, "value")\r
+ 'show' => 'int', // should be integer\r
+ //'category' => 'alphanum ++ \/\._@-', // alphanum for folders extended with '/', '.' and '_'\r
+ 'category' => 'int', // category has to be an integer\r
+ 'listpointer' => 'int', // pointer for pagebrowser in listview should be integer\r
+ 'categorypointer' => 'int' // pointer for pagebrowser in categoryview should be integer\r
+ );\r
+ $this->piVars = $this->sec->sec($this->piVars); // overwrite piVars with piVars from doorman class\r
+ } else die ($this->extKey . ': Extension wt_doorman not found, please install first!'); // stop script\r
+ }\r
+ \r
+ \r
+ // Function check() makes a fast check if all is ok\r
+ function check() {\r
+ $this->div->init($this->conf); // init function\r
+ if (t3lib_div::GPvar('type') != 3135) $this->content .= $this->div->check4errors($this->conf['main.']['path'], 'Picture path not set - set in flexform or in constants'); // check for picture path\r
+ if (t3lib_div::GPvar('type') != 3135) $this->content .= $this->div->check4errors($this->conf['main.']['mode'], 'Mode not set - set mode in flexform or in constants'); // check for mode\r
+ if (t3lib_div::GPvar('type') != 3135) $this->content .= $this->div->check4errors($this->piVars['category'], 'No valid picture path', 2, 1); // check for correct path\r
+ }\r
+\r
+}\r
+ \r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_pi1.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_pi1.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2006 Alex <alex@wunschtacho.de>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+\r
+\r
+\r
+/**\r
+ * Class that adds the wizard icon.\r
+ *\r
+ * @author Alex <alex@wunschtacho.de>\r
+ * @package TYPO3\r
+ * @subpackage tx_wtgallery\r
+ */\r
+class tx_wtgallery_pi1_wizicon {\r
+\r
+ /**\r
+ * Processing the wizard items array\r
+ *\r
+ * @param array $wizardItems: The wizard items\r
+ * @return Modified array with wizard items\r
+ */\r
+ function proc($wizardItems) {\r
+ global $LANG;\r
+\r
+ $LL = $this->includeLocalLang();\r
+\r
+ $wizardItems['plugins_tx_wtgallery_pi1'] = array(\r
+ 'icon'=>t3lib_extMgm::extRelPath('wt_gallery').'pi1/ce_wiz.gif',\r
+ 'title'=>$LANG->getLLL('pi1_title',$LL),\r
+ 'description'=>$LANG->getLLL('pi1_plus_wiz_description',$LL),\r
+ 'params'=>'&defVals[tt_content][CType]=list&defVals[tt_content][list_type]=wt_gallery_pi1'\r
+ );\r
+\r
+ return $wizardItems;\r
+ }\r
+\r
+ /**\r
+ * Reads the [extDir]/locallang.xml and returns the \$LOCAL_LANG array found in that file.\r
+ *\r
+ * @return The array with language labels\r
+ */\r
+ function includeLocalLang() {\r
+ $llFile = t3lib_extMgm::extPath(wt_gallery).'locallang.xml';\r
+ $LOCAL_LANG = t3lib_div::readLLXMLfile($llFile, $GLOBALS['LANG']->lang);\r
+ \r
+ return $LOCAL_LANG;\r
+ }\r
+ }\r
+\r
+\r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_pi1_wizicon.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_pi1_wizicon.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/***************************************************************\r
+* Copyright notice\r
+*\r
+* (c) 2008 Alex Kellner <alexander.kellner@einpraegsam.net>\r
+* All rights reserved\r
+*\r
+* This script is part of the TYPO3 project. The TYPO3 project is\r
+* free software; you can redistribute it and/or modify\r
+* it under the terms of the GNU General Public License as published by\r
+* the Free Software Foundation; either version 2 of the License, or\r
+* (at your option) any later version.\r
+*\r
+* The GNU General Public License can be found at\r
+* http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+* This script is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+\r
+require_once(PATH_tslib.'class.tslib_pibase.php');\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_div.php'); // load div class\r
+require_once(t3lib_extMgm::extPath('wt_gallery').'lib/class.tx_wtgallery_dynamicmarkers.php'); // file for dynamicmarker functions\r
+\r
+class tx_wtgallery_single extends tslib_pibase {\r
+ \r
+ var $prefixId = 'tx_wtgallery_pi1'; // Same as class name\r
+ var $scriptRelPath = 'pi1/class.tx_wtgallery_single.php'; // Path to any file in pi1 for locallang\r
+ var $extKey = 'wt_gallery'; // The extension key.\r
+ var $mode = 'single'; // kind of mode\r
+ \r
+ function start($conf, $piVars, $cObj) {\r
+ // config\r
+ $this->conf = $conf;\r
+ $this->piVars = $piVars;\r
+ $this->cObj = $cObj;\r
+ $this->pi_loadLL();\r
+ $this->div = t3lib_div::makeInstance('tx_wtgallery_div'); // Create new instance for div class\r
+ $this->dynamicMarkers = t3lib_div::makeInstance('tx_wtgallery_dynamicmarkers'); // Create new instance for dynamicmarker function\r
+ $this->tmpl = $this->markerArray = $this->hash = array(); // init\r
+ $this->tmpl[$this->mode] = $this->cObj->getSubpart($this->cObj->fileResource($this->conf['template.'][$this->mode]), '###WTGALLERY_'.strtoupper($this->mode).'###'); // Load HTML Template\r
+ \r
+ // let's go\r
+ $this->startpath = $this->div->validatePicturePath($this->piVars['category'] ? $this->div->hash2folder($this->piVars['category'], $this->conf['main.']['path']) : $this->conf['main.']['path']); // startpath from piVars or from ts\r
+ if (!isset($this->piVars['show'])) { // GET param show is not set\r
+ $files = $this->div->getFiles($this->conf, $this->startpath, $this->conf[$this->mode.'.']['order'], 1); // get pictures (limit 1)\r
+ } else { // GET param show was set\r
+ $files = $this->div->getFiles($this->conf, $this->startpath, $this->conf[$this->mode.'.']['order'], $this->piVars['show']); // get pictures (limit 1)\r
+ }\r
+ \r
+ $this->browser();\r
+ \r
+ $row = array ( // write $row for .field in ts\r
+ 'picture' => $files[0], // first entry of files array (e.g. fileadmin/pic1.jpg)\r
+ 'tstamp' => filemtime($files[0]), // timestamp of file\r
+ 'filename' => $this->div->fileInfo($files[0], 'filename'), // like pic\r
+ 'dirname' => $this->div->fileInfo($files[0], 'dirname'), // like fileadmin/pics\r
+ 'basename' => $this->div->fileInfo($files[0], 'basename'), // like pic.jpg\r
+ 'extension' => $this->div->fileInfo($files[0], 'extension'), // like jpg\r
+ 'listview_link' => tslib_pibase::pi_linkTP_keepPIvars_url(array('show' => ''), 0, 0, $this->conf['list.']['pid_list']) // link to list view\r
+ );\r
+ $this->cObj->start($row, 'tt_content'); // enable .field in typoscript for singleview\r
+ \r
+ if (!empty($this->conf[$this->mode.'.']['width'])) $this->conf[$this->mode.'.']['image.']['file.']['width'] = $this->conf[$this->mode.'.']['width']; // set width from config (e.g. flexform if not empty)\r
+ if (!empty($this->conf[$this->mode.'.']['height'])) $this->conf[$this->mode.'.']['image.']['file.']['height'] = $this->conf[$this->mode.'.']['height']; // set width from config (e.g. flexform if not empty)\r
+ $this->markerArray['###IMAGE###'] = $this->cObj->cObjGetSingle($this->conf[$this->mode.'.']['image'], $this->conf[$this->mode.'.']['image.']); // values from ts\r
+ \r
+ $metarow = $this->div->EXIForTXT($row['picture'], $this->conf[$this->mode.'.']['metainformation']); // get metainformation\r
+ $this->cObj->start($metarow, 'tt_content'); // enable .field in typoscript for singleview\r
+ $this->markerArray['###TEXT###'] = $this->cObj->cObjGetSingle($this->conf[$this->mode.'.']['text'], $this->conf[$this->mode.'.']['text.']); // values from ts\r
+ \r
+ // ###LISTVIEWLINK###\r
+ $row = array ( // write $row for .field in ts\r
+ 'listview_link' => tslib_pibase::pi_linkTP_keepPIvars_url(array('show' => ''), 0, 0, $this->conf['list.']['pid_list'])\r
+ );\r
+ if ($this->conf[$this->mode.'.']['pid_single'] == $this->conf['list.']['pid_list']) $row = array(); // clear if listview and singleview in the same page\r
+ $this->cObj->start($row, 'tt_content'); // enable .field in typoscript for singleview\r
+ if ($this->conf[$this->mode.'.']['pid_single'] == $this->conf['list.']['pid_list']) $this->markerArray['###LISTVIEWLINK###'] = $this->cObj->cObjGetSingle($this->conf[$this->mode.'.']['listviewlink'], $this->conf[$this->mode.'.']['listviewlink.']); // values from ts\r
+ \r
+ \r
+ $this->content = $this->cObj->substituteMarkerArrayCached($this->tmpl[$this->mode], $this->markerArray, array(), $this->wrappedSubpartArray); // substitute Marker in Template\r
+ $this->content = $this->dynamicMarkers->main($this->conf, $this->cObj, $this->content); // Fill dynamic locallang or typoscript markers\r
+ $this->content = preg_replace('|###.*?###|i', '', $this->content); // Finally clear not filled markers\r
+ \r
+ if (!empty($this->content) && $this->markerArray['###IMAGE###']) return $this->content; // return HTML if $content is not empty and if there is a picture\r
+ } \r
+ \r
+ \r
+ // adds next and previous button (wrappedSubpartArray)\r
+ function browser() {\r
+ $this->filearray = $this->div->getFiles($this->conf, $this->startpath, $this->conf[$this->mode.'.']['order'], $this->conf['list.']['limit'], 1); // get picture array with hash code\r
+ if (is_array($this->filearray)) { // if is array\r
+ $this->curPicNo = (!isset($this->piVars['show']) ? 0 : array_search($this->piVars['show'], $this->filearray)); // Number of current picture (key in array)\r
+ \r
+ if (array_key_exists(($this->curPicNo + 1), $this->filearray)) { // if next exists in array\r
+ $this->hash['next'] = $this->filearray[($this->curPicNo + 1)]; // hash of next pic in array\r
+ $this->wrappedSubpartArray['###NEXT###'][0] = '<a href="'.tslib_pibase::pi_linkTP_keepPIvars_url(array('show' => $this->hash['next']), 1, 0, 0).'">'; // Link with new "show" vars\r
+ $this->wrappedSubpartArray['###NEXT###'][1] = '</a>'; // postfix for linkwrap\r
+ }\r
+ if (array_key_exists(($this->curPicNo - 1), $this->filearray)) { // if previous exists in array\r
+ $this->hash['previous'] = $this->filearray[($this->curPicNo - 1)]; // hash of previous pic in array\r
+ $this->wrappedSubpartArray['###PREVIOUS###'][0] = '<a href="'.tslib_pibase::pi_linkTP_keepPIvars_url(array('show' => $this->hash['previous']), 1, 0, 0).'">'; // Link with new "show" vars\r
+ $this->wrappedSubpartArray['###PREVIOUS###'][1] = '</a>'; // postfix for linkwrap\r
+ }\r
+ }\r
+ }\r
+ \r
+\r
+}\r
+ \r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_single.php']) {\r
+ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/wt_gallery/pi1/class.tx_wtgallery_single.php']);\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
+<T3locallang>\r
+ <meta type="array">\r
+ <type>module</type>\r
+ <description>Language labels for plugin 'tx_wtgallery_pi1'</description>\r
+ </meta>\r
+ <data type="array">\r
+ <languageKey index="default" type="array">\r
+ <label index="wtgallery_ll_title_category">Categories of Gallery</label>\r
+ <label index="wtgallery_ll_title_list">Gallery list view</label>\r
+ <label index="wtgallery_ll_title_single">Gallery single view</label>\r
+ <label index="wtgallery_ll_startcategorylink">Back to first category</label>\r
+ <label index="wtgallery_ll_listviewlink">Back to listview</label>\r
+ <label index="wtgallery_ll_pagebrowser_upto">up to</label>\r
+ <label index="wtgallery_ll_pagebrowser_within">within</label>\r
+ <label index="wtgallery_ll_pagebrowser_page">Page %s</label>\r
+ <label index="wtgallery_ll_coolirisError">Error in generating cooliris RSS on current page, because there are no pictures in the listview!</label>\r
+ <label index="wtgallery_ll_coolirisErrorNoPath">Please set the startpath via typoscript and not only in the plugin - this is needed for cooliris!</label>\r
+ <label index="wtgallery_ll_next">Next Picture</label>\r
+ <label index="wtgallery_ll_previous">Previous Picture</label>\r
+ </languageKey>\r
+ <languageKey index="de" type="array">\r
+ <label index="wtgallery_ll_title_category">Galeriekategorien</label>\r
+ <label index="wtgallery_ll_title_list">Listenansicht</label>\r
+ <label index="wtgallery_ll_title_single">Einzelansicht</label>\r
+ <label index="wtgallery_ll_startcategorylink">Zurück zur ersten Kategorie</label>\r
+ <label index="wtgallery_ll_listviewlink">Zurück zur Listenansicht</label>\r
+ <label index="wtgallery_ll_pagebrowser_upto">bis</label>\r
+ <label index="wtgallery_ll_pagebrowser_within">von insgesamt</label>\r
+ <label index="wtgallery_ll_pagebrowser_page">Seite %s</label>\r
+ <label index="wtgallery_ll_coolirisError">Auf der aktuellen Seite befinden sich keine Bilder in der Listenansicht, somit kann kein cooliris RSS erzeugt werden!</label>\r
+ <label index="wtgallery_ll_coolirisErrorNoPath">Bitte den Ausgangspfad über Typoscript setzen und nicht nur über das Plugin, sonst kann das RSS für cooliris nicht erzeugt werden!</label>\r
+ <label index="wtgallery_ll_next">Nächstes Bild</label>\r
+ <label index="wtgallery_ll_previous">Vorheriges Bild</label>\r
+ </languageKey>\r
+ <languageKey index="it" type="array">\r
+ <label index="wtgallery_ll_title_category">Lista delle categorie</label>\r
+ <label index="wtgallery_ll_title_list">Lista</label>\r
+ <label index="wtgallery_ll_title_single">Particolare</label>\r
+ <label index="wtgallery_ll_startcategorylink">Vai alla lista delle start categorie</label>\r
+ <label index="wtgallery_ll_listviewlink">Vai alla lista</label>\r
+ <label index="wtgallery_ll_pagebrowser_upto">fino a</label>\r
+ <label index="wtgallery_ll_pagebrowser_within">in tutto</label>\r
+ <label index="wtgallery_ll_pagebrowser_page">Pagina %s</label>\r
+ </languageKey>\r
+ </data>\r
+</T3locallang>\r
--- /dev/null
+wt_gallery HTML Template for category view\r
+\r
+ --- Markers within loop ---\r
+ Imagetag (e.g. <img src="typo3temp/pic.jpg">): ###IMAGE###\r
+ Imagepath (e.g. typo3temp/pic.jpg): ###PICTURE###\r
+ Picture filename (e.g. pic.jpg): ###BASENAME###\r
+ Filename without extension (e.g. pic): ###FILENAME###\r
+ Extension (e.g. jpg): ###EXTENSION###\r
+ Relative path to this folder (e.g. fileadmin/folder/): ###DIRNAME###\r
+ Timestamp of current picture: ###TSTAMP###\r
+ Name of folder: ###CURRENTFOLDER###\r
+ Image text (from EXIF or txt file): ###TEXT###\r
+ Dynamic class (firstofrow, centerofrow, lastofrow): ###CLASS###\r
+ Subpart link to list view: <!-- ###CATEGORYLINK### -->\r
+ \r
+ --- Markers out of the loop ---\r
+ Insert category browser ###PAGEBROWSER###\r
+ \r
+\r
+ GLOBAL MARKERS:\r
+ Displaying any value from pi1/locallang.xml: ###WTGALLERY_LL_YOURFIELD### (Could be filled via locallang.xml or typoscript - see manual for details)\r
+ Displaying any value from typoscript: ###WTGALLERY_TS_YOURFIELD### (Could be filled via typoscript - see manual for details)\r
+ \r
+ \r
+ \r
+<!-- ###WTGALLERY_CATEGORY### begin --> \r
+<div class="wtgallery_category_area">\r
+ <h2 class="wtgallery_category">###WTGALLERY_LL_TITLE_CATEGORY###</h2>\r
+ <!-- ###CONTENT### --><!-- ###ITEM### -->\r
+ <div class="wtgallery_categories ###CLASS###">\r
+ <div class="wtgallery_category_pic">###IMAGE###</div>\r
+ <div class="wtgallery_category_folder"><!-- ###CATEGORYLINK### -->###CURRENTFOLDER###<!-- ###CATEGORYLINK### --></div>\r
+ </div>\r
+ <!-- ###ITEM### --><!-- ###CONTENT### -->\r
+ <div class="clear"></div>\r
+ ###PAGEBROWSER###\r
+</div>\r
+<!-- ###WTGALLERY_CATEGORY### end -->\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+wt_directory HTML Template for category_browser view\r
+\r
+ Current page - from X to...: ###CURRENT_MIN###\r
+ Current page - to X pictures: ###CURRENT_MAX###\r
+ Overall pictures on all pages: ###OVERALL###\r
+ Insert HMENU (define via TS): ###PAGELINKS###\r
+ Insert link to start category (define via TS): ###STARTCATEGORYLINK###\r
+ \r
+ GLOBAL MARKERS:\r
+ Displaying any value from pi1/locallang.xml: ###WTGALLERY_LL_YOURFIELD### (Could be filled via locallang.xml or typoscript - see manual for details)\r
+ Displaying any value from typoscript: ###WTGALLERY_TS_YOURFIELD### (Could be filled via typoscript - see manual for details)\r
+\r
+<!-- ###WTGALLERY_CATEGORY_PAGEBROWSER### begin --> \r
+ <div class="wtgallery_category_pagebrowser_area"> \r
+ <p>###CURRENT_MIN### ###WTGALLERY_LL_PAGEBROWSER_UPTO### ###CURRENT_MAX### ###WTGALLERY_LL_PAGEBROWSER_WITHIN### ###OVERALL###</p>\r
+ <p>###PAGELINKS###</p>\r
+ ###STARTCATEGORYLINK###\r
+ </div>\r
+<!-- ###WTGALLERY_CATEGORY_PAGEBROWSER### end -->
\ No newline at end of file
--- /dev/null
+wt_gallery HTML Template for cooliris rss\r
+\r
+ --- Markers within loop ---\r
+ Picture resource (like typo3temp/picture.jpg) ###IMAGE###\r
+ Picture filename (e.g. pic.jpg): ###BASENAME###\r
+ Filename without extension (e.g. pic): ###FILENAME###\r
+ Extension (e.g. jpg): ###EXTENSION###\r
+ Relative path to this folder (e.g. fileadmin/folder/): ###DIRNAME###\r
+ Timestamp of current picture: ###TSTAMP###\r
+ Name of folder: ###CURRENTFOLDER###\r
+ \r
+ --- Markers out of loop ---\r
+ ###TITLE###\r
+ ###URL###\r
+ ###DESCRIPTION###\r
+ \r
+\r
+ GLOBAL MARKERS:\r
+ Displaying any value from pi1/locallang.xml: ###WTGALLERY_LL_YOURFIELD### (Could be filled via locallang.xml or typoscript - see manual for details)\r
+ Displaying any value from typoscript: ###WTGALLERY_TS_YOURFIELD### (Could be filled via typoscript - see manual for details)\r
+ \r
+ \r
+<!-- ###WTGALLERY_COOLIRIS_RSS### begin --> \r
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
+ <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss" xmlns:atom="http://www.w3.org/2005/Atom">\r
+ <channel>\r
+ <title>wt_gallery</title>\r
+ <link>http://testumgebung.einpraegsam.net/</link>\r
+ <description>Description</description>\r
+ \r
+ <!-- ###CONTENT### --><!-- ###ITEM### -->\r
+ <item>\r
+ <title>###FILENAME###</title>\r
+ <link>###IMAGE###</link>\r
+ <guid>###FILENAME###</guid>\r
+ <media:thumbnail url="###IMAGE###" />\r
+ <media:content url="###IMAGE###" type="image/jpeg" />\r
+ </item>\r
+ <!-- ###ITEM### --><!-- ###CONTENT### -->\r
+ \r
+ </channel>\r
+ </rss>\r
+<!-- ###WTGALLERY_COOLIRIS_RSS### end -->
\ No newline at end of file
--- /dev/null
+wt_gallery HTML Template for list view\r
+\r
+ --- Markers within loop ---\r
+ Imagetag (e.g. <img src="typo3temp/pic.jpg">): ###IMAGE###\r
+ Imagepath (e.g. typo3temp/pic.jpg): ###PICTURE###\r
+ Picture filename (e.g. pic.jpg): ###BASENAME###\r
+ Filename without extension (e.g. pic): ###FILENAME###\r
+ Extension (e.g. jpg): ###EXTENSION###\r
+ Relative path to this folder (e.g. fileadmin/folder/): ###DIRNAME###\r
+ Timestamp of current picture: ###TSTAMP###\r
+ Name of folder: ###CURRENTFOLDER###\r
+ Image text (from EXIF or txt file): ###TEXT###\r
+ Dynamic class (firstofrow, centerofrow, lastofrow): ###CLASS###\r
+ Subpart for Single view link: <!-- ###SINGLELINK### -->Image<!-- ###SINGLELINK### -->\r
+ \r
+ --- Markers out of the loop ---\r
+ Inserts pagebrowser to Marker ###PAGEBROWSER###\r
+ \r
+\r
+ GLOBAL MARKERS:\r
+ Displaying any value from pi1/locallang.xml: ###WTGALLERY_LL_YOURFIELD### (Could be filled via locallang.xml or typoscript - see manual for details)\r
+ Displaying any value from typoscript: ###WTGALLERY_TS_YOURFIELD### (Could be filled via typoscript - see manual for details)\r
+ \r
+ \r
+ \r
+<!-- ###WTGALLERY_LIST### begin --> \r
+ <div class="wtgallery_list_area">\r
+ <h2 class="wtgallery_list">###WTGALLERY_LL_TITLE_LIST###</h2>\r
+ <!-- ###CONTENT### --><!-- ###ITEM### -->\r
+ <div class="wtgallery_list ###CLASS###">\r
+ ###IMAGE###\r
+ </div>\r
+ <!-- ###ITEM### --><!-- ###CONTENT### -->\r
+ <div class="clear"></div>\r
+ ###PAGEBROWSER###\r
+ </div>\r
+<!-- ###WTGALLERY_LIST### end -->\r
+\r
+\r
+\r
+\r
+\r
+wt_gallery HTML Template for pagebrowser in listview\r
+\r
+ Current page - from X to...: ###CURRENT_MIN###\r
+ Current page - to X pictures: ###CURRENT_MAX###\r
+ Overall pictures on all pages: ###OVERALL###\r
+ Insert HMENU: ###PAGELINKS###\r
+\r
+ GLOBAL MARKERS:\r
+ Displaying any value from pi1/locallang.xml: ###WTGALLERY_LL_YOURFIELD### (Could be filled via locallang.xml or typoscript - see manual for details)\r
+ Displaying any value from typoscript: ###WTGALLERY_TS_YOURFIELD### (Could be filled via typoscript - see manual for details)\r
+ \r
+ \r
+ \r
+<!-- ###WTGALLERY_LIST_PAGEBROWSER### begin --> \r
+ <div class="wtgallery_list_pagebrowser_area">\r
+ <p>###CURRENT_MIN### ###WTGALLERY_LL_PAGEBROWSER_UPTO### ###CURRENT_MAX### ###WTGALLERY_LL_PAGEBROWSER_WITHIN### ###OVERALL###</p>\r
+ <p>###PAGELINKS###</p>\r
+ </div>\r
+<!-- ###WTGALLERY_LIST_PAGEBROWSER### end -->
\ No newline at end of file
--- /dev/null
+wt_directory HTML Template for single view\r
+\r
+ Imagetag (e.g. <img src="typo3temp/pic.jpg">): ###IMAGE###\r
+ Image text (from EXIF or txt file): ###TEXT###\r
+ Picture (e.g. fileadmin/pics/pic.jpg): ###PICTURE###\r
+ Filename (e.g. pic): ###FILENAME###\r
+ Dirname (e.g. fileadmin/pics): ###DIRNAME###\r
+ Basename (e.g. pic.jpg): ###BASENAME###\r
+ Extension (e.g. jpg): ###EXTENSION###\r
+ Timestamp of changedate: ###TSTAMP###\r
+ Insert link to listview (define via TS): ###LISTVIEWLINK###\r
+ Subpart for next link: <!-- ###NEXT### -->Next<!-- ###NEXT### -->\r
+ Subpart for previous link: <!-- ###PREVIOUS### -->Previous<!-- ###PREVIOUS### -->\r
+ \r
+\r
+ GLOBAL MARKERS:\r
+ Displaying any value from pi1/locallang.xml: ###WTGALLERY_LL_YOURFIELD### (Could be filled via locallang.xml or typoscript - see manual for details)\r
+ Displaying any value from typoscript: ###WTGALLERY_TS_YOURFIELD### (Could be filled via typoscript - see manual for details)\r
+\r
+\r
+\r
+<!-- ###WTGALLERY_SINGLE### begin -->\r
+ <div class="wtgallery wtgallery_single wt_gallery_single_###FILENAME###">\r
+ <h2 class="wtgallery_single">###WTGALLERY_LL_TITLE_SINGLE###</h2>\r
+ ###IMAGE###\r
+ <div class="wtgallery_single_browser">\r
+ <div class="wtgallery_single_browser_previous">\r
+ <!-- ###PREVIOUS### -->###WTGALLERY_LL_PREVIOUS###<!-- ###PREVIOUS### -->\r
+ </div>\r
+ <div class="wtgallery_single_browser_next">\r
+ <!-- ###NEXT### -->###WTGALLERY_LL_NEXT###<!-- ###NEXT### -->\r
+ </div>\r
+ </div>\r
+ ###TEXT###\r
+ ###LISTVIEWLINK###\r
+ </div>\r
+<!-- ###WTGALLERY_SINGLE### end -->
\ No newline at end of file