[TYPO3-templavoila] hiding complicated settings of frontend extensions by using an FCE

Claudius Heitz typo3 at heitz.info
Tue Dec 4 16:10:59 CET 2007


Hi,

in the last days, I experimented a lot with FCEs and I thought, one 
thing could be interesting as a general concept:

I wanted to integrate the rgsmoothgallery, a nice frontend-extension, 
with external thumbnails, and it should be easy for editors to put such 
a gallery on a page.

The problem was that the settings for using the rgsmoothgallery in this 
way are very difficult: one has to insert the ID of a div container in 
the settings of rgsmoothgallery and this div-container has to exist on 
the page.

So the editor had to insert a content element with plain html to bring 
this div-container on the page - not the thing a normal text editor is 
meant to do.


THE SOLUTION
I created an FCE, where the editor can just enter two things:
- the path to the image folder (input field)
- whether he wants thumbnails or not (if only one picture is in the 
folder, thumbnails don't make sense)

For the path to the image folder, he can enter a relative path to the 
root folder, where all image folders are in (e.g. fileadmin/galleries/).

The FCE provides the rest of the settings (div-container for external 
thumbnails, height / width of images, other standard settings ...).


THE GENERAL CONCEPT
FCEs could hide complicated settings of some frontend extensions by 
offering only the necessary input fields. They can also combine these 
settings with other information, e.g. adding the page title or something.

I know that hiding input fields could also be achieved with TSconfig for 
the backend users, but I think with FCE, it's even more flexible.

I hope, I didn't bore you.

See below the data structure for my rgsmoothgallery - integration.

Note: I had to copy the whole setup.txt (or at least the relevant part 
for my case) of rgsmoothgallery into my FCE - I don't know why.
see thread "include setup.txt from extension"

Greetings
Claudius




<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<T3DataStructure>
	<meta type="array">
		<langDisable>1</langDisable>
	</meta>
	<ROOT type="array">
		<tx_templavoila type="array">
			<title>ROOT</title>
			<description>Wählen Sie das HTML-Element der Seite, das Sie als 
übergeordnetes Container-Element des Templates möchten.</description>
		</tx_templavoila>
		<type>array</type>
		<el type="array">
			<field_gallery_path type="array">
				<tx_templavoila type="array">
					<title>Image-Folder</title>
					<description>don't map this</description>
					<sample_data type="array">
						<numIndex index="0"></numIndex>
					</sample_data>
					<eType>input</eType>
					<proc type="array">
						<HSC type="integer">1</HSC>
					</proc>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>input</type>
						<size>48</size>
						<eval>trim</eval>
					</config>
					<label>Image-Folder</label>
				</TCEforms>
			</field_gallery_path>
			<field_show_thumbs type="array">
				<tx_templavoila type="array">
					<title>Thumbnails</title>
					<description>don't map this</description>
					<sample_data type="array">
						<numIndex index="0"></numIndex>
					</sample_data>
					<eType>select</eType>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>select</type>
						<items type="array">
							<numIndex index="0" type="array">
								<numIndex index="0">show</numIndex>
								<numIndex index="1">1</numIndex>
							</numIndex>
							<numIndex index="1" type="array">
								<numIndex index="0">hide</numIndex>
								<numIndex index="1">0</numIndex>
							</numIndex>
						</items>
						<default>0</default>
					</config>
					<label>Thumbnails</label>
				</TCEforms>
			</field_show_thumbs>
			<field_gallery_plugin type="array">
				<tx_templavoila type="array">
					<title>Gallery-Plugin (rgsmoothgallery)</title>
					<sample_data type="array">
						<numIndex index="0"></numIndex>
					</sample_data>
					<eType>link</eType>
					<TypoScript><![CDATA[

			10 < tx_rgsmoothgallery_pi1->main
			10 {
			
				# here the value from the field for the image-folder above 
(field_gallery_path) is inserted
				startingpoint.field = field_gallery_path
				startingpoint.wrap = fileadmin/galleries/ |
			
				# here the value from the field for the thumbnails above 
(field_show_thumbs) is inserted
				showThumbs.field = field_show_thumbs

				# ID of the div-container for the external thumbs - must exist on 
the page.
				externalThumbs = ext_thumbs


				# all following settins are just copied from the setup.txt of 
rgsmoothgallery
			  	thumb = IMG_RESOURCE
			  	thumb {
			    	file.maxW = 60
				    file.maxH = 60
			  	}

			  	big = IMG_RESOURCE
				big {
			    	file.maxW = 300
			    	file.maxH = 300
			  	}

			  	lightbox = IMG_RESOURCE
			  	lightbox {
			    	file.maxW = 800
			    	file.maxH = 600
			  	}

			  	pathToMootools = EXT:rgsmoothgallery/res/scripts/mootools.js
			  	pathToJdgalleryJS = EXT:rgsmoothgallery/res/scripts/jd.gallery1010.js
			  	pathToJdgalleryCSS = EXT:rgsmoothgallery/res/css/jd.gallery.css
			  	pathToSlightboxJS = EXT:rgsmoothgallery/res/scripts/slightbox107.js
			  	pathToSlightboxCSS = EXT:rgsmoothgallery/res/css/slightbox.css
			  	pathToJdgallerySetJS = 
EXT:rgsmoothgallery/res/scripts/jd.gallery.set.js
			  	pathToJdgalleryTransitionsJS = 
EXT:rgsmoothgallery/res/scripts/jd.gallery.transitions.js


			  	settings = timed:false,showArrows: false,showCarousel: 
false,embedLinks:true,lightbox:true,textShowCarousel:'Thumbnails'
			  	pid =
			  	height = 300
			  	width = 300
			  	minimumImages = 2
			  	noscript = 1
			  	enableSaveButton = 0
			  	enablePrintButton = 0

			  	hideInfoPane = 1
			  	thumbOpacity = 1.0
			  	slideInfoZoneOpacity =
			  	thumbSpacing = 0

			  	mode = DIRECTORY
				lightbox = 1
				arrows = 1
			}				
				]]></TypoScript>
				</tx_templavoila>
			</field_gallery_plugin>
		</el>
	</ROOT>
</T3DataStructure>


More information about the TYPO3-project-templavoila mailing list