1# ***************************************************************************
2# Notice: "styles." (and "temp.") objects are UNSET after template parsing!
3# Use "lib." for persisting storage of objects.
4# ***************************************************************************
5
6<INCLUDE_TYPOSCRIPT: source="FILE: EXT:www_tue_nl/Configuration/TypoScript/Setup/Root.ts">
7
8page.80 = RECORDS
9page.80 {
10      source = 1
11      tables = tt_address
12      conf.tt_address = COA
13      conf.tt_address {
14              20 = TEXT
15              20.field = email
16              20.typolink.parameter.field = email
17      }
18}
19
20	/*
21page.200 = PHP_SCRIPT_EXT
22page.200 {
23  1 = TMENU
24  1.wrap = <div style="width:200px; border: 1px solid;">|</div>
25  1.expAll = 1
26  1.submenuObjSuffixes = a |*|  |*| b
27  1.NO.allWrap = <b>|</b><br/>
28
29  2 = TMENU
30  2.NO.allWrap = <div style="background:red;">|</div>
31
32  2a = TMENU
33  2a.NO.allWrap = <div style="background:yellow;">|</div>
34*
35  2b = TMENU
36  2b.NO.allWrap = <div style="background:green;">|</div>
37}
38*/
39
40   # Add the CSS and JS files
41page {
42   includeCSS { # comment at the end of a line
43      file99 = fileadmin/your-fancybox.css
44   }
45   includeJSFooter {
46      fancybox = fileadmin/your-fancybox.js
47   }
48}
49
50   # Change the default rendering of images to match lightbox requirements
51tt_content.image.20.1.imageLinkWrap {
52   JSwindow = 0
53   test = MyExtension\Path\To\Class
54
55   directImageLink = 1
56   linkParams.ATagParams {
57      dataWrap = class= "lightbox" rel="fancybox{field:uid}"
58   }
59}
60
61tt_content.image.20.1.imageLinkWrap >
62tt_content.image.20.1.imageLinkWrap = 1
63tt_content.image.20.1.imageLinkWrap {
64   enable = 1
65   typolink {
66         # directly link to the recent image
67      parameter.cObject = IMG_RESOURCE
68      parameter.cObject.file.import.data = TSFE:lastImageInfo|origFile
69      parameter.cObject.file.maxW = {$styles.content.imgtext.maxW}
70      parameter.override.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
71      title.field = imagecaption // title
72      title.split.token.char = 10
73      title.if.isTrue.field = imagecaption // header
74      title.split.token.char = 10
75      title.split.returnKey.data = register : IMAGE_NUM_CURRENT
76      parameter.cObject = IMG_RESOURCE
77      parameter.cObject.file.import.data = TSFE:lastImageInfo|origFile
78      ATagParams = target="_blank"
79   }
80}
81
8210 = IMAGE
8310 {
84      # point to the image
85   file = fileadmin/demo/lorem_ipsum/images/a4.jpg
86      # make it rather small
87   file.width = 80
88      # add a link to tx_cms_showpic.php that shows the original image
89   imageLinkWrap = 1
90   imageLinkWrap {
91	       enable = 1
92	       # JSwindow = 1
93	    }
94}
95
96# Clear out any constants in this reserved room!
97styles.content >
98
99# get content
100styles.content.get = CONTENT
101styles.content.get {
102	table = tt_content
103	select.orderBy = sorting
104	select.where = colPos=0
105	select.languageField = sys_language_uid
106}
107
108# get content, left
109styles.content.getLeft < styles.content.get
110styles.content.getLeft.select.where = colPos=1
111
112# get content, right
113styles.content.getRight < styles.content.get
114styles.content.getRight.select.where = colPos=2
115
116# get content, margin
117styles.content.getBorder < styles.content.get
118styles.content.getBorder.select.where = colPos=3
119
120# get news
121styles.content.getNews < styles.content.get
122styles.content.getNews.select.pidInList = {$styles.content.getNews.newsPid}
123
124# Edit page object:
125styles.content.editPanelPage = COA
126styles.content.editPanelPage {
127	10 = EDITPANEL
128	10 {
129		allow = toolbar,move,hide
130		label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.page
131		label.wrap = |&nbsp;<b>%s</b>
132	}
133}
134
135
136
137
138
139
140
141
142
143
144
145# *********************************************************************
146# "lib." objects are preserved from unsetting after template parsing
147# *********************************************************************
148
149# Creates persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!)
150lib.parseFunc {
151	makelinks = 1
152	makelinks.http.keep = {$styles.content.links.keep}
153	makelinks.http.extTarget = {$styles.content.links.extTarget}
154	makelinks.mailto.keep = path
155	tags {
156		link = TEXT
157		link {
158			current = 1
159			typolink.parameter.data = parameters : allParams
160			typolink.extTarget = {$styles.content.links.extTarget}
161			typolink.target = {$styles.content.links.target}
162			parseFunc.constants =1
163		}
164	}
165	allowTags = {$styles.content.links.allowTags}
166	denyTags = *
167	sword = <span class="csc-sword">|</span>
168	constants = 1
169
170	nonTypoTagStdWrap.HTMLparser = 1
171	nonTypoTagStdWrap.HTMLparser {
172		keepNonMatchedTags = 1
173		htmlSpecialChars = 2
174	}
175}
176
177# good old parsefunc in "styles.content.parseFunc" is created for backwards compatibility. Don't use it, just ignore.
178styles.content.parseFunc < lib.parseFunc
179
180# Creates persistent ParseFunc setup for RTE content (which is mainly HTML) based on the "ts_css" transformation.
181lib.parseFunc_RTE < lib.parseFunc
182lib.parseFunc_RTE {
183	//  makelinks >
184	# Processing <table> and <blockquote> blocks separately
185	externalBlocks = table, blockquote, dd, dl, ol, ul, div
186	externalBlocks {
187		# The blockquote content is passed into parseFunc again...
188		blockquote.stripNL=1
189		blockquote.callRecursive=1
190		blockquote.callRecursive.tagStdWrap.HTMLparser = 1
191		blockquote.callRecursive.tagStdWrap.HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;"
192
193		ol.stripNL=1
194		ol.stdWrap.parseFunc = < lib.parseFunc
195
196		ul.stripNL=1
197		ul.stdWrap.parseFunc = < lib.parseFunc
198
199		table.stripNL=1
200		table.stdWrap.HTMLparser = 1
201		table.stdWrap.HTMLparser.tags.table.fixAttrib.class {
202			default = contenttable
203			always = 1
204			list = contenttable
205		}
206		table.stdWrap.HTMLparser.keepNonMatchedTags = 1
207		table.HTMLtableCells=1
208		table.HTMLtableCells {
209			default.callRecursive=1
210			addChr10BetweenParagraphs=1
211		}
212		div.stripNL = 1
213		div.callRecursive = 1
214
215		# Definition list processing
216		dl < .div
217		dd < .div
218	}
219	nonTypoTagStdWrap.encapsLines {
220		encapsTagList = p,pre,h1,h2,h3,h4,h5,h6,hr,dt
221		remapTag.DIV = P
222		nonWrappedTag = P
223		innerStdWrap_all.ifBlank = &nbsp;
224		addAttributes.P.class = bodytext
225		addAttributes.P.class.setOnly=blank
226	}
227	nonTypoTagStdWrap.HTMLparser = 1
228	nonTypoTagStdWrap.HTMLparser {
229		keepNonMatchedTags = 1
230		htmlSpecialChars = 2
231	}
232}
233
234
235# Content header:
236lib.stdheader = COA
237lib.stdheader {
238
239	# Create align style-attribute for <Hx> tags
240	2 = LOAD_REGISTER
241	2.headerStyle.field = header_position
242	2.headerStyle.required = 1
243	2.headerStyle.noTrimWrap = | style="text-align:|;"|
244
245	# Create class="csc-firstHeader" attribute for <Hx> tags
246	3 = LOAD_REGISTER
247	3.headerClass = csc-firstHeader
248	3.headerClass.if.value=1
249	3.headerClass.if.equals.data = cObj:parentRecordNumber
250	3.headerClass.noTrimWrap = | class="|"|
251
252	# Date format:
253	5 = TEXT
254	5.field = date
255	5.if.isTrue.field = date
256	5.strftime = %x
257	5.wrap = <p class="csc-header-date">|</p>
258	5.prefixComment = 2 | Header date:
259
260	# This CASE cObject renders the header content:
261	# currentValue is set to the header data, possibly wrapped in link-tags.
262	10 = CASE
263	10.setCurrent {
264		field = header
265		htmlSpecialChars = 1
266		typolink.parameter.field = header_link
267	}
268	10.key.field = header_layout
269	10.key.ifEmpty = {$content.defaultHeaderType}
270	10.key.ifEmpty.override.data = register: defaultHeaderType
271
272	10.1 = TEXT
273	10.1.current = 1
274	10.1.dataWrap = <h1{register:headerStyle}{register:headerClass}>|</h1>
275
276	10.2 < .10.1
277	10.2.dataWrap = <h2{register:headerStyle}{register:headerClass}>|</h2>
278
279	10.3 < .10.1
280	10.3.dataWrap = <h3{register:headerStyle}{register:headerClass}>|</h3>
281
282	10.4 < .10.1
283	10.4.dataWrap = <h4{register:headerStyle}{register:headerClass}>|</h4>
284
285	10.5 < .10.1
286	10.5.dataWrap = <h5{register:headerStyle}{register:headerClass}>|</h5>
287
288	# Pops the used registers off the stack:
289	98 = RESTORE_REGISTER
290	99 = RESTORE_REGISTER
291
292	# Post-processing:
293	stdWrap.fieldRequired = header
294	stdWrap.if {
295		equals.field = header_layout
296		value = 100
297		negate = 1
298	}
299
300	stdWrap.editIcons = tt_content : header, [header_layout | header_position], [header_link|date]
301	stdWrap.editIcons.beforeLastTag = 1
302	stdWrap.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.header
303
304	stdWrap.dataWrap = <div class="csc-header csc-header-n{cObj:parentRecordNumber}">|</div>
305	stdWrap.prefixComment = 2 | Header:
306}
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322#******************************************************
323# Including library for processing of some elements:
324#******************************************************
325includeLibs.tx_cssstyledcontent_pi1 = EXT:css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
326
327
328#**********************************
329# tt_content is started
330#**********************************
331tt_content >
332tt_content = CASE
333tt_content.key.field = CType
334tt_content.stdWrap {
335	innerWrap.cObject = CASE
336	innerWrap.cObject {
337		key.field = section_frame
338
339		default = COA
340		default {
341			10 = TEXT
342			10 {
343				value = <div id="c{field:uid}"
344				override.cObject = TEXT
345				override.cObject {
346					value = <div
347					if.value = div
348					if.equals.field = CType
349				}
350				insertData = 1
351			}
352
353			15 = TEXT
354			15 {
355				value = csc-default
356				noTrimWrap = | class="|" |
357				required = 1
358			}
359
360			20 = COA
361			20 {
362				10 = COA
363				10 {
364					10 = TEXT
365					10 {
366						value = {$content.spaceBefore}
367						wrap = |+
368						if.isTrue = {$content.spaceBefore}
369					}
370
371					20 = TEXT
372					20 {
373						field = spaceBefore
374					}
375
376			 		stdWrap {
377						prioriCalc = intval
378						wrap = margin-top:|px;
379						required = 1
380						ifEmpty.value =
381					}
382				}
383
384				20 = COA
385				20 {
386					10 = TEXT
387					10 {
388						value = {$content.spaceAfter}
389						wrap = |+
390						if.isTrue = {$content.spaceAfter}
391					}
392
393					20 = TEXT
394					20 {
395						field = spaceAfter
396					}
397
398					stdWrap {
399						prioriCalc = intval
400						wrap = margin-bottom:|px;
401						required = 1
402						ifEmpty.value =
403					}
404				}
405
406				stdWrap.noTrimWrap = | style="|" |
407				stdWrap.required = 1
408			}
409			30 = TEXT
410			30.value = >|</div>
411		}
412
413		1 =< tt_content.stdWrap.innerWrap.cObject.default
414		1.15.value = csc-frame csc-frame-invisible
415
416		5 =< tt_content.stdWrap.innerWrap.cObject.default
417		5.15.value = csc-frame csc-frame-rulerBefore
418
419		6 =< tt_content.stdWrap.innerWrap.cObject.default
420		6.15.value = csc-frame csc-frame-rulerAfter
421
422		10 =< tt_content.stdWrap.innerWrap.cObject.default
423		10.15.value = csc-frame csc-frame-indent
424
425		11 =< tt_content.stdWrap.innerWrap.cObject.default
426		11.15.value = csc-frame csc-frame-indent3366
427
428		12 =< tt_content.stdWrap.innerWrap.cObject.default
429		12.15.value = csc-frame csc-frame-indent6633
430
431		20 =< tt_content.stdWrap.innerWrap.cObject.default
432		20.15.value = csc-frame csc-frame-frame1
433
434		21 =< tt_content.stdWrap.innerWrap.cObject.default
435		21.15.value = csc-frame csc-frame-frame2
436
437		66 = COA
438		66 {
439			10 = TEXT
440			10 {
441				value = <a id="c{field:uid}"></a>
442				insertData = 1
443			}
444
445			20 = COA
446			20 {
447				10 = TEXT
448				10 {
449					value = {$content.spaceBefore}
450					wrap = |+
451					if.isTrue = {$content.spaceBefore}
452				}
453
454				20 = TEXT
455				20 {
456					field = spaceBefore
457				}
458
459		 		stdWrap {
460					prioriCalc = intval
461					wrap = margin-top:|px;
462					required = 1
463					ifEmpty.value =
464					wrap2 = <div style="|"></div>
465				}
466			}
467
468			30 = TEXT
469			30 {
470				value = |
471			}
472
473			40 < .20
474			40 {
475				10 {
476					value = {$content.spaceAfter}
477					if.isTrue = {$content.spaceAfter}
478				}
479				20.field = spaceAfter
480				stdWrap.wrap = margin-bottom:|px;
481			}
482		}
483
484	}
485
486	innerWrap2 = | <p class="csc-linkToTop"><a href="#">{LLL:EXT:css_styled_content/pi1/locallang.xml:label.toTop}</a></p>
487	innerWrap2.insertData = 1
488	innerWrap2.fieldRequired = linkToTop
489
490	prepend = TEXT
491	prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>
492	prepend.if.isTrue.field = _LOCALIZED_UID
493
494	editPanel = 1
495	editPanel {
496		allow = move,new,edit,hide,delete
497		line = 5
498		label = %s
499		onlyCurrentPid = 1
500		previewBorder = 4
501		edit.displayRecord = 1
502	}
503
504	prefixComment = 1 | CONTENT ELEMENT, uid:{field:uid}/{field:CType}
505}
506
507
508
509# *****************
510# CType: header
511# *****************
512# See Object path "lib.stdheader"
513tt_content.header = COA
514tt_content.header {
515	10 = < lib.stdheader
516
517	20 = TEXT
518	20 {
519		field = subheader
520		required = 1
521
522		dataWrap = <p class="csc-subheader csc-subheader-{field:layout}">|</p>
523		htmlSpecialChars = 1
524
525		editIcons = tt_content:subheader,layout
526		editIcons.beforeLastTag = 1
527		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.subheader
528
529		prefixComment = 2 | Subheader:
530	}
531}
532
533
534
535# *****************
536# CType: text
537# *****************
538tt_content.text = COA
539tt_content.text {
540	10 = < lib.stdheader
541
542	20 = TEXT
543	20 {
544		field = bodytext
545		required = 1
546
547		parseFunc = < lib.parseFunc_RTE
548
549		editIcons = tt_content:bodytext, rte_enabled
550		editIcons.beforeLastTag = 1
551		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext
552
553		prefixComment = 2 | Text:
554	}
555}
556
557
558
559# *****************
560# CType: image
561# *****************
562# (also used for rendering 'textpic' type):
563tt_content.image = COA
564tt_content.image.10 = < lib.stdheader
565tt_content.image.20 = USER
566tt_content.image.20 {
567	userFunc = tx_cssstyledcontent_pi1->render_textpic
568
569	# Image source
570	imgList.field = image
571	imgPath = uploads/pics/
572
573	# Single image rendering
574	imgObjNum = 1
575	1 {
576		file.import.current = 1
577		file.width.field = imagewidth
578		imageLinkWrap = 1
579		imageLinkWrap {
580			bodyTag = <body style="margin:0; background:#fff;">
581			wrap = <a href="javascript:close();"> | </a>
582			width = {$styles.content.imgtext.linkWrap.width}
583			height = {$styles.content.imgtext.linkWrap.height}
584			effects = {$styles.content.imgtext.linkWrap.effects}
585
586			JSwindow = 1
587			JSwindow.newWindow = {$styles.content.imgtext.linkWrap.newWindow}
588			JSwindow.if.isFalse = {$styles.content.imgtext.linkWrap.lightboxEnabled}
589
590			directImageLink = {$styles.content.imgtext.linkWrap.lightboxEnabled}
591
592			enable.field = image_zoom
593			enable.ifEmpty.typolink.parameter.field = image_link
594			enable.ifEmpty.typolink.parameter.listNum.splitChar = 10
595			enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
596			enable.ifEmpty.typolink.returnLast = url
597
598			typolink.parameter.field = image_link
599			typolink.parameter.listNum.splitChar = 10
600			typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
601			typolink.target = {$styles.content.links.target}
602			typolink.extTarget = {$styles.content.links.extTarget}
603
604			linkParams.ATagParams.dataWrap =  class="{$styles.content.imgtext.linkWrap.lightboxCssClass}" rel="{$styles.content.imgtext.linkWrap.lightboxRelAttribute}"
605		}
606
607		altText = TEXT
608		altText {
609			field = altText
610			stripHtml = 1
611			split.token.char = 10
612			split.token.if.isTrue = {$styles.content.imgtext.imageTextSplit}
613			split.returnKey.data = register : IMAGE_NUM_CURRENT
614		}
615
616		titleText < .altText
617		titleText.field = titleText
618
619		longdescURL < .altText
620		longdescURL.field = longdescURL
621
622		emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling}
623		titleInLink = {$styles.content.imgtext.titleInLink}
624		titleInLinkAndImg = {$styles.content.imgtext.titleInLinkAndImg}
625	}
626
627	textPos.field = imageorient
628	maxW = {$styles.content.imgtext.maxW}
629	maxW.override.data = register:maxImageWidth
630	maxWInText = {$styles.content.imgtext.maxWInText}
631	maxWInText.override.data = register:maxImageWidthInText
632
633	equalH.field = imageheight
634
635	image_compression.field = image_compression
636	image_effects.field = image_effects
637
638	noRows.field = image_noRows
639
640	cols.field = imagecols
641	border.field = imageborder
642
643	caption {
644		1 = TEXT
645		1 {
646			field = imagecaption
647			required = 1
648			parseFunc =< lib.parseFunc
649			br = 1
650			split.token.char = 10
651			split.token.if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
652			split.returnKey.data = register : IMAGE_NUM_CURRENT
653		}
654	}
655	# captionSplit is deprecated, use imageTextSplit instead
656	captionSplit = {$styles.content.imgtext.captionSplit}
657	captionAlign.field = imagecaption_position
658	# caption/alttext/title/longdescURL splitting
659	imageTextSplit = {$styles.content.imgtext.imageTextSplit}
660
661	borderCol = {$styles.content.imgtext.borderColor}
662	borderThick = {$styles.content.imgtext.borderThick}
663	borderClass = {$styles.content.imgtext.borderClass}
664	colSpace = {$styles.content.imgtext.colSpace}
665	rowSpace = {$styles.content.imgtext.rowSpace}
666	textMargin = {$styles.content.imgtext.textMargin}
667
668	borderSpace = {$styles.content.imgtext.borderSpace}
669	separateRows = {$styles.content.imgtext.separateRows}
670	addClasses =
671	addClassesImage =
672	addClassesImage.ifEmpty = csc-textpic-firstcol csc-textpic-lastcol
673	addClassesImage.override = csc-textpic-firstcol |*| |*| csc-textpic-lastcol
674	addClassesImage.override.if {
675		isGreaterThan.field = imagecols
676		value = 1
677	}
678
679	#
680	imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap" style="width:{register:totalwidth}px;"> | </div>
681	imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap"> | </div>
682
683	# if noRows is set, wrap around each column:
684	imageColumnStdWrap.dataWrap = <div class="csc-textpic-imagecolumn" style="width:{register:columnwidth}px;"> | </div>
685
686	layout = CASE
687	layout {
688		key.field = imageorient
689		# above-center
690		default = TEXT
691		default.value = <div class="csc-textpic csc-textpic-center csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
692		# above-right
693		1 = TEXT
694		1.value = <div class="csc-textpic csc-textpic-right csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
695		# above-left
696		2 = TEXT
697		2.value = <div class="csc-textpic csc-textpic-left csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
698		# below-center
699		8 = TEXT
700		8.value = <div class="csc-textpic csc-textpic-center csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
701		# below-right
702		9 = TEXT
703		9.value = <div class="csc-textpic csc-textpic-right csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
704		# below-left
705		10 = TEXT
706		10.value = <div class="csc-textpic csc-textpic-left csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
707		# intext-right
708		17 = TEXT
709		17.value = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div>
710		17.override = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
711		17.override.if.isTrue = {$styles.content.imgtext.addIntextClearer}
712		# intext-left
713		18 = TEXT
714		18.value = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>
715		18.override = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
716		18.override.if.isTrue = {$styles.content.imgtext.addIntextClearer}
717		# intext-right-nowrap
718		25 = TEXT
719		25.value = <div class="csc-textpic csc-textpic-intext-right-nowrap###CLASSES###">###IMAGES###<div style="margin-right:{register:rowWidthPlusTextMargin}px;">###TEXT###</div></div><div class="csc-textpic-clear"><!-- --></div>
720		25.insertData = 1
721		# intext-left-nowrap
722		26 = TEXT
723		26.value = <div class="csc-textpic csc-textpic-intext-left-nowrap###CLASSES###">###IMAGES###<div style="margin-left:{register:rowWidthPlusTextMargin}px;">###TEXT###</div></div><div class="csc-textpic-clear"><!-- --></div>
724		26.insertData = 1
725	}
726
727	rendering {
728		dl {
729			# Choose another rendering for special edge cases
730			fallbackRendering = COA
731			fallbackRendering {
732				# Just one image without a caption => don't need the dl-overhead, use the "simple" rendering
733				10 = TEXT
734				10 {
735					if {
736						isFalse.field = imagecaption
737						value = 1
738						equals.data = register:imageCount
739					}
740					value = simple
741				}
742
743				# Multiple images and one global caption => "ul"
744				20 = TEXT
745				20 {
746					if {
747						value = 1
748						isGreaterThan.data = register:imageCount
749						isTrue.if.isTrue.data = register:renderGlobalCaption
750						isTrue.field = imagecaption
751					}
752					value = ul
753				}
754
755				# Multiple images and no caption at all => "ul"
756				30 = TEXT
757				30 {
758					if {
759						value = 1
760						isGreaterThan.data = register:imageCount
761						isFalse.field = imagecaption
762					}
763					value = ul
764				}
765			}
766			imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"> | </div>
767			imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"> | </div>
768			noRowsStdWrap.wrap =
769			oneImageStdWrap.dataWrap = <dl class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </dl>
770			imgTagStdWrap.wrap = <dt> | </dt>
771			editIconsStdWrap.wrap = <dd> | </dd>
772			caption {
773				required = 1
774				wrap = <dd class="csc-textpic-caption"> | </dd>
775			}
776		}
777		ul {
778			# Just one image without a caption => don't need the ul-overhead, use the "simple" rendering
779			fallbackRendering < tt_content.image.20.rendering.dl.fallbackRendering.10
780			imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"><ul> | </ul></div>
781			imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"><ul> | </ul></div>
782			noRowsStdWrap.wrap = <ul> | </ul>
783			oneImageStdWrap.dataWrap = <li class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </li>
784			imgTagStdWrap.wrap =
785			editIconsStdWrap.wrap = <div> | </div>
786			caption.wrap = <div class="csc-textpic-caption"> | </div>
787		}
788		div {
789			# Just one image without a caption => don't need the div-overhead, use the "simple" rendering
790			fallbackRendering < tt_content.image.20.rendering.dl.fallbackRendering.10
791			imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"> | </div>
792			imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"> | </div>
793			noRowsStdWrap.wrap =
794			oneImageStdWrap.dataWrap = <div class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </div>
795			imgTagStdWrap.wrap = <div> | </div>
796			editIconsStdWrap.wrap = <div> | </div>
797			caption.wrap = <div class="csc-textpic-caption"> | </div>
798		}
799		simple {
800			imageRowStdWrap.dataWrap = |
801			imageLastRowStdWrap.dataWrap = |
802			noRowsStdWrap.wrap =
803			oneImageStdWrap.dataWrap = |
804			imgTagStdWrap.wrap = |
805			editIconsStdWrap.wrap = |
806			caption.wrap = <div class="csc-textpic-caption"> | </div>
807			imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap csc-textpic-single-image" style="width:{register:totalwidth}px;"> | </div>
808			imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap csc-textpic-single-image"> | </div>
809		}
810	}
811	renderMethod = dl
812
813	editIcons = tt_content : image [imageorient|imagewidth|imageheight], [imagecols|image_noRows|imageborder],[image_link|image_zoom],[image_compression|image_effects|image_frames],imagecaption[imagecaption_position]
814	editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.images
815
816	caption.editIcons = tt_content : imagecaption[imagecaption_position]
817	caption.editIcons.beforeLastTag=1
818	caption.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.caption
819
820	stdWrap.prefixComment = 2 | Image block:
821}
822
823# *****************
824# CType: textpic
825# *****************
826tt_content.textpic = COA
827tt_content.textpic {
828	10 = COA
829	10.if.value = 25
830	10.if.isLessThan.field = imageorient
831	10.10 = < lib.stdheader
832
833	20  = < tt_content.image.20
834	20 {
835		text.10 = COA
836		text.10 {
837			if.value = 24
838			if.isGreaterThan.field = imageorient
839			10 = < lib.stdheader
840			10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
841		}
842		text.20 = < tt_content.text.20
843		text.wrap = <div class="csc-textpic-text"> | </div>
844	}
845}
846
847
848
849# *****************
850# CType: bullet
851# *****************
852tt_content.bullets = COA
853tt_content.bullets {
854	10 = < lib.stdheader
855
856	20 = TEXT
857	20 {
858		field = bodytext
859		trim = 1
860		split{
861			token.char = 10
862			cObjNum = |*|1|| 2|*|
863			1.current = 1
864			1.parseFunc =< lib.parseFunc
865			1.wrap = <li class="odd">|</li>
866
867			2.current = 1
868			2.parseFunc =< lib.parseFunc
869			2.wrap = <li class="even">|</li>
870		}
871		dataWrap = <ul class="csc-bulletlist csc-bulletlist-{field:layout}">|</ul>
872	 	editIcons = tt_content: bodytext, [layout]
873	 	editIcons.beforeLastTag = 1
874	 	editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.php:eIcon.bullets
875
876	 	prefixComment = 2 | Bullet list:
877	}
878}
879
880
881
882# *****************
883# CType: table
884# *****************
885# Rendered by a PHP function specifically written to handle CE tables. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
886tt_content.table = COA
887tt_content.table {
888	10 = < lib.stdheader
889
890	20 = USER
891	20.userFunc = tx_cssstyledcontent_pi1->render_table
892	20.field = bodytext
893
894	20.color {
895		default =
896		1 = #EDEBF1
897		2 = #F5FFAA
898	}
899	20.tableParams_0 {
900		border =
901		cellpadding =
902		cellspacing =
903	}
904	20.tableParams_1 {
905		border =
906		cellpadding =
907		cellspacing =
908	}
909	20.tableParams_2 {
910		border =
911		cellpadding =
912		cellspacing =
913	}
914	20.tableParams_3 {
915		border =
916		cellpadding =
917		cellspacing =
918	}
919	20.innerStdWrap.wrap = |
920	20.innerStdWrap.parseFunc = < lib.parseFunc
921
922	20.stdWrap {
923		editIcons = tt_content: cols, bodytext, [layout], [table_bgColor|table_border|table_cellspacing|table_cellpadding]
924		editIcons.beforeLastTag = 1
925		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.table
926
927		prefixComment = 2 | Table:
928	}
929}
930
931
932# *****************
933# CType: uploads
934# *****************
935# Rendered by a PHP function specifically written to handle CE filelists. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
936tt_content.uploads = COA
937tt_content.uploads {
938	10 = < lib.stdheader
939
940	20 = USER
941	20.userFunc = tx_cssstyledcontent_pi1->render_uploads
942	20.field = media
943	20.filePath.field = select_key
944
945	20 {
946		# Rendering for each file (e.g. rows of the table) as a cObject
947		itemRendering = COA
948		itemRendering {
949			wrap = <tr class="tr-odd tr-first">|</tr> |*| <tr class="tr-even">|</tr> || <tr class="tr-odd">|</tr> |*|
950
951			10 = TEXT
952			10.data = register:linkedIcon
953			10.wrap = <td class="csc-uploads-icon">|</td>
954			10.if.isPositive.field = layout
955
956			20 = COA
957			20.wrap = <td class="csc-uploads-fileName">|</td>
958			20.1 = TEXT
959			20.1 {
960				data = register:linkedLabel
961				wrap = <p>|</p>
962			}
963			20.2 = TEXT
964			20.2 {
965				data = register:description
966				wrap = <p class="csc-uploads-description">|</p>
967				required = 1
968				htmlSpecialChars = 1
969			}
970
971			30 = TEXT
972			30.if.isTrue.field = filelink_size
973			30.data = register:fileSize
974			30.wrap = <td class="csc-uploads-fileSize">|</td>
975			30.bytes = 1
976			30.bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
977		}
978		useSpacesInLinkText = 0
979		stripFileExtensionFromLinkText = 0
980	}
981
982	20.color {
983		default =
984		1 = #EDEBF1
985		2 = #F5FFAA
986	}
987	20.tableParams_0 {
988		border =
989		cellpadding =
990		cellspacing =
991	}
992	20.tableParams_1 {
993		border =
994		cellpadding =
995		cellspacing =
996	}
997	20.tableParams_2 {
998		border =
999		cellpadding =
1000		cellspacing =
1001	}
1002	20.tableParams_3 {
1003		border =
1004		cellpadding =
1005		cellspacing =
1006	}
1007
1008	20.linkProc {
1009		target = _blank
1010		jumpurl = {$styles.content.uploads.jumpurl}
1011		jumpurl.secure = {$styles.content.uploads.jumpurl_secure}
1012		jumpurl.secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}
1013		removePrependedNumbers = 1
1014
1015		iconCObject = IMAGE
1016		iconCObject.file.import.data = register : ICON_REL_PATH
1017		iconCObject.file.width = 150
1018	}
1019
1020	20.filesize {
1021		bytes = 1
1022		bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
1023	}
1024
1025	20.stdWrap {
1026		editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size, imagecaption
1027		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.filelist
1028
1029		prefixComment = 2 | File list:
1030	}
1031}
1032
1033
1034# ******************
1035# CType: multimedia
1036# ******************
1037tt_content.multimedia = COA
1038tt_content.multimedia {
1039	10 = < lib.stdheader
1040
1041	20 = MULTIMEDIA
1042	20.file.field = multimedia
1043	20.file.wrap = uploads/media/
1044	20.file.listNum = 0
1045	20.params.field = bodytext
1046
1047	20.stdWrap {
1048		editIcons = tt_content: multimedia, bodytext
1049		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1050
1051		prefixComment = 2 | Multimedia element:
1052	}
1053}
1054
1055# *****************
1056# CType: swfobject
1057# *****************
1058tt_content.swfobject = COA
1059tt_content.swfobject {
1060	10 = < lib.stdheader
1061
1062	20 = SWFOBJECT
1063	20 {
1064		file =
1065		width =
1066		height =
1067
1068		flexParams.field = pi_flexform
1069
1070		alternativeContent.field = bodytext
1071
1072		layout = ###SWFOBJECT###
1073
1074		video {
1075			player = {$styles.content.media.videoPlayer}
1076
1077			defaultWidth  = {$styles.content.media.defaultVideoWidth}
1078			defaultHeight  = {$styles.content.media.defaultVideoHeight}
1079
1080			default {
1081				params.quality = high
1082				params.menu = false
1083				params.allowScriptAccess = sameDomain
1084				params.allowFullScreen = true
1085			}
1086			mapping {
1087
1088			}
1089		}
1090
1091		audio {
1092			player = {$styles.content.media.audioPlayer}
1093
1094			defaultWidth = {$styles.content.media.defaultAudioWidth}
1095			defaultHeight = {$styles.content.media.defaultAudioHeight}
1096
1097			default {
1098				params.quality = high
1099				params.allowScriptAccess = sameDomain
1100				params.menu = false
1101			}
1102			mapping {
1103				flashvars.file = soundFile
1104			}
1105		}
1106
1107	}
1108	20.stdWrap {
1109		editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1110		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1111
1112		prefixComment = 2 | SWFobject element:
1113	}
1114}
1115
1116# *****************
1117# CType: qtobject
1118# *****************
1119tt_content.qtobject = COA
1120tt_content.qtobject {
1121	10 = < lib.stdheader
1122
1123	20 = QTOBJECT
1124	20 {
1125		file =
1126		width =
1127		height =
1128
1129		flexParams.field = pi_flexform
1130
1131		alternativeContent.field = bodytext
1132
1133		layout = ###QTOBJECT###
1134
1135		video {
1136			player = {$styles.content.media.videoPlayer}
1137
1138			defaultWidth  = {$styles.content.media.defaultVideoWidth}
1139			defaultHeight  = {$styles.content.media.defaultVideoHeight}
1140
1141			default {
1142				params.quality = high
1143				params.menu = false
1144				params.allowScriptAccess = sameDomain
1145				params.allowFullScreen = true
1146			}
1147			mapping {
1148
1149			}
1150		}
1151
1152		audio {
1153			player = {$styles.content.media.audioPlayer}
1154
1155			defaultWidth = {$styles.content.media.defaultAudioWidth}
1156			defaultHeight = {$styles.content.media.defaultAudioHeight}
1157
1158			default {
1159				params.quality = high
1160				params.allowScriptAccess = sameDomain
1161				params.menu = false
1162			}
1163			mapping {
1164				flashvars.file = soundFile
1165			}
1166		}
1167	}
1168	20.stdWrap {
1169		editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1170		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1171
1172		prefixComment = 2 | QTobject element:
1173	}
1174}
1175
1176# *****************
1177# CType: media
1178# *****************
1179tt_content.media = COA
1180tt_content.media {
1181	10 = < lib.stdheader
1182
1183	20 = MEDIA
1184	20 {
1185
1186		flexParams.field = pi_flexform
1187		alternativeContent < tt_content.text.20
1188		alternativeContent.field = bodytext
1189
1190		type = video
1191		renderType = auto
1192		allowEmptyUrl = 0
1193		forcePlayer = 1
1194
1195		fileExtHandler {
1196			default = MEDIA
1197			avi = MEDIA
1198			asf = MEDIA
1199			class = MEDIA
1200			wmv = MEDIA
1201			mp3 = SWF
1202			mp4 = SWF
1203			m4v = SWF
1204			swa = SWF
1205			flv = SWF
1206			swf = SWF
1207			mov = QT
1208			m4v = QT
1209			m4a = QT
1210		}
1211
1212		mimeConf.swfobject < tt_content.swfobject.20
1213		mimeConf.qtobject < tt_content.qtobject.20
1214
1215	}
1216	20.stdWrap {
1217		editIcons = tt_content: pi_flexform, bodytext
1218		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1219
1220		prefixComment = 2 | Media element:
1221	}
1222}
1223
1224# ******************
1225# CType: mailform
1226# ******************
1227tt_content.mailform = COA
1228tt_content.mailform.10 = < lib.stdheader
1229tt_content.mailform.20 = FORM
1230tt_content.mailform.20 {
1231	accessibility = 1
1232	noWrapAttr=1
1233	formName = mailform
1234	dontMd5FieldNames = 1
1235	layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>
1236	labelWrap.wrap = |
1237	commentWrap.wrap = |
1238	radioWrap.wrap = |<br />
1239	radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>
1240	REQ = 1
1241	REQ.labelWrap.wrap = |
1242	COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>
1243	RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>
1244	LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>
1245	target = {$styles.content.mailform.target}
1246	goodMess = {$styles.content.mailform.goodMess}
1247	badMess = {$styles.content.mailform.badMess}
1248	redirect.field = pages
1249	redirect.listNum = 0
1250	recipient.field = subheader
1251	data.field = bodytext
1252	locationData = 1
1253	hiddenFields.stdWrap.wrap = <div style="display:none;">|</div>
1254
1255	params.radio = class="csc-mailform-radio"
1256	params.check = class="csc-mailform-check"
1257	params.submit = class="csc-mailform-submit"
1258
1259	stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>
1260	stdWrap {
1261		editIcons = tt_content: bodytext, pages, subheader
1262		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.form
1263
1264		prefixComment = 2 | Mail form inserted:
1265	}
1266}
1267
1268
1269# ******************
1270# CType: search
1271# ******************
1272tt_content.search = COA
1273tt_content.search.10 = < lib.stdheader
1274# Result:
1275tt_content.search.20 = SEARCHRESULT
1276tt_content.search.20 {
1277	allowedCols = pages.title-subtitle-keywords-description : tt_content.header-bodytext-imagecaption : tt_address.name-title-address-email-company-city-country : tt_links.title-note-note2-url : tt_board.subject-message-author-email : tt_calender.title-note : tt_products.title-note-itemnumber
1278	languageField.tt_content = sys_language_uid
1279	renderObj = COA
1280	renderObj {
1281
1282		10 = TEXT
1283		10.field = pages_title
1284		10.htmlSpecialChars = 1
1285		10.typolink {
1286			parameter.field = uid
1287			target = {$styles.content.searchresult.resultTarget}
1288			additionalParams.data = register:SWORD_PARAMS
1289			additionalParams.required = 1
1290			additionalParams.wrap = &no_cache=1
1291		}
1292		10.htmlSpecialChars = 1
1293		10.wrap = <h3 class="csc-searchResultHeader">|</h3>
1294
1295		20 = COA
1296		20 {
1297			10 = TEXT
1298			10.field = tt_content_bodytext
1299			10.stripHtml = 1
1300			10.htmlSpecialChars = 1
1301		}
1302		20.stdWrap.crop = 200 | ...
1303		20.stdWrap.wrap = <p class="csc-searchResult">|</p>
1304	}
1305
1306	layout = COA
1307	layout {
1308		wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###
1309
1310		10 = TEXT
1311		10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.resultRange
1312		10.wrap = <td class="csc-searchResultRange"><p>|</p></td>
1313
1314		20 = TEXT
1315		20.value = ###PREV###&nbsp;&nbsp;&nbsp;###NEXT###
1316		20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>
1317	}
1318
1319	noResultObj = COA
1320	noResultObj {
1321		10 = TEXT
1322		10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.emptySearch
1323		10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>
1324	}
1325
1326	next = TEXT
1327	next.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultNext
1328
1329	prev = TEXT
1330	prev.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultPrev
1331
1332	target = {$styles.content.searchresult.target}
1333	range = 20
1334
1335	stdWrap.prefixComment = 2 | Search result:
1336}
1337
1338# Form:
1339tt_content.search.30 < tt_content.mailform.20
1340tt_content.search.30 {
1341	goodMess = {$styles.content.searchform.goodMess}
1342	redirect >
1343	recipient >
1344	data >
1345	dataArray {
1346		10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchWord
1347		10.type = sword=input
1348		20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchIn
1349		20.type = scols=select
1350		20.valueArray {
1351			10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.headersKeywords
1352			10.value = pages.title-subtitle-keywords-description:tt_content.header
1353			20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.pageContent
1354			20.value = tt_content.header-bodytext-imagecaption
1355		}
1356		30.type = stype=hidden
1357		30.value = L0
1358		40.type = submit=submit
1359		40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchButton
1360	}
1361	type.field = pages
1362	type.listNum = 0
1363	locationData = HTTP_POST_VARS
1364	no_cache = 1
1365
1366	stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform">  | </table>
1367	stdWrap {
1368		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.search
1369
1370		prefixComment = 2 | Search form inserted:
1371	}
1372}
1373
1374
1375# ******************
1376# CType: login
1377# ******************
1378tt_content.login < tt_content.mailform
1379tt_content.login.10 = < lib.stdheader
1380tt_content.login.20 {
1381	goodMess = {$styles.content.loginform.goodMess}
1382	redirect >
1383	recipient >
1384	data >
1385	dataArray {
1386		10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
1387		10.type = *user=input
1388		20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.password
1389		20.type = *pass=password
1390		30.type = logintype=hidden
1391		30.value = login
1392		40.type = submit=submit
1393		40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.login
1394	}
1395	type.field = pages
1396	type.listNum = 0
1397	target = {$styles.content.loginform.target}
1398	locationData = 0
1399	hiddenFields.pid = TEXT
1400	hiddenFields.pid {
1401		value = {$styles.content.loginform.pid}
1402		override.field = pages
1403		override.listNum = 1
1404	}
1405
1406	stdWrap.wrap = <div class="csc-loginform"> | </div>
1407	stdWrap {
1408		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.login
1409
1410		prefixComment = 2 | Login/Logout form:
1411	}
1412}
1413[loginUser = *]
1414tt_content.login.20 {
1415	dataArray >
1416	dataArray {
1417		10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
1418		10.label.wrap = |&nbsp;<!--###USERNAME###-->
1419		30.type = logintype=hidden
1420		30.value = logout
1421		40.type = submit=submit
1422		40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.logout
1423	}
1424}
1425[global]
1426
1427
1428# ******************
1429# CType: splash
1430# ******************
1431# Deprecated element.
1432# Still here for backwards compliance with plugins using the "text box" type.
1433tt_content.splash = CASE
1434tt_content.splash.key.field = splash_layout
1435tt_content.splash.stdWrap {
1436	prefixComment = 2 | Textbox inserted (Deprecated)
1437}
1438tt_content.splash.default = COA
1439tt_content.splash.default {
1440	20 = CTABLE
1441	20 {
1442		c.1 = < tt_content.text
1443		lm.1 = IMAGE
1444		lm.1.file {
1445			import = uploads/pics/
1446			import.field = image
1447			import.listNum = 0
1448			maxW.field = imagewidth
1449			maxW.ifEmpty = 200
1450		}
1451		cMargins = 30,0,0,0
1452	}
1453}
1454tt_content.splash.1 < tt_content.splash.default
1455tt_content.splash.1.20.lm.1.file >
1456tt_content.splash.1.20.lm.1.file = GIFBUILDER
1457tt_content.splash.1.20.lm.1.file {
1458	XY = [10.w]+10,[10.h]+10
1459	backColor = {$content.splash.bgCol}
1460	backColor.override.data = register:pageColor
1461	format = jpg
1462	5 = BOX
1463	5.dimensions = 3,3,[10.w],[10.h]
1464	5.color = #333333
1465	7 = EFFECT
1466	7.value = blur=99|blur=99|blur=99|blur=99|blur=99|blur=99|blur=99
1467	10 = IMAGE
1468	10.file {
1469		import = uploads/pics/
1470		import.field = image
1471		import.listNum = 0
1472		maxW.field = imagewidth
1473		maxW.ifEmpty = 200
1474	}
1475}
1476// The image frames are not available unless TypoScript code from styles.content.imgFrames.x is provided manually:
1477tt_content.splash.2 < tt_content.splash.default
1478#tt_content.splash.2.20.lm.1.file.m < styles.content.imgFrames.1
1479tt_content.splash.3 < tt_content.splash.default
1480#tt_content.splash.3.20.lm.1.file.m < styles.content.imgFrames.2
1481
1482// From plugin.postit1, if included:
1483tt_content.splash.20 = < plugin.postit1
1484
1485
1486
1487# ****************
1488# CType: menu
1489# ****************
1490tt_content.menu = COA
1491tt_content.menu {
1492	10 = < lib.stdheader
1493
1494	20 = CASE
1495	20 {
1496		key.field = menu_type
1497
1498		# "Menu of these pages"
1499		default = HMENU
1500		default {
1501			special = list
1502			special.value.field = pages
1503			wrap = <ul class="csc-menu csc-menu-def">|</ul>
1504			1 = TMENU
1505			1 {
1506				target = {$PAGE_TARGET}
1507				NO {
1508					stdWrap.htmlSpecialChars = 1
1509					wrapItemAndSub = <li>|</li>
1510					ATagTitle.field = description // title
1511				}
1512				noBlur = 1
1513			}
1514		}
1515
1516		# "Menu of subpages to these pages"
1517		1 < .default
1518		1 {
1519			special = directory
1520			wrap = <ul class="csc-menu csc-menu-1">|</ul>
1521		}
1522
1523		# "Sitemap - liststyle"
1524		2 = HMENU
1525		2 {
1526			wrap = <div class="csc-sitemap">|</div>
1527			1 = TMENU
1528			1 {
1529				target = {$PAGE_TARGET}
1530				noBlur = 1
1531				expAll = 1
1532				wrap = <ul>|</ul>
1533				NO {
1534					stdWrap.htmlSpecialChars = 1
1535					wrapItemAndSub = <li>|</li>
1536					ATagTitle.field = description // title
1537				}
1538			}
1539			2 < .1
1540			3 < .1
1541			4 < .1
1542			5 < .1
1543			6 < .1
1544			7 < .1
1545		}
1546
1547		# "Section index (pagecontent w/Index checked - liststyle)"
1548		3 < styles.content.get
1549		3 {
1550			wrap = <ul class="csc-menu csc-menu-3">|</ul>
1551			select.andWhere = sectionIndex!=0
1552			select.pidInList.override.field = pages
1553			renderObj = TEXT
1554			renderObj {
1555				fieldRequired = header
1556				trim = 1
1557				field = header
1558				htmlSpecialChars = 1
1559				noBlur = 1
1560				wrap = <li class="csc-section">|</li>
1561				typolink.parameter.field = pid
1562				typolink.section.field = uid
1563			}
1564		}
1565
1566		# "Menu of subpages to these pages (with abstract)"
1567		4 < .1
1568		4 {
1569			wrap = <dl class="csc-menu csc-menu-4">|</dl>
1570			1.NO {
1571				wrapItemAndSub >
1572				linkWrap = <dt>|</dt>
1573				after {
1574					data = field : abstract // field : description // field : subtitle
1575					required = 1
1576					htmlSpecialChars = 1
1577					wrap = <dd>|</dd>
1578				}
1579				ATagTitle.field = description // title
1580			}
1581		}
1582
1583		# "Recently updated pages"
1584		5 < .default
1585		5 {
1586			wrap = <ul class="csc-menu csc-menu-5">|</ul>
1587			special = updated
1588			special {
1589				maxAge = 3600*24*7
1590				excludeNoSearchPages = 1
1591			}
1592		}
1593
1594		# "Related pages (based on keywords)"
1595		6 < .default
1596		6 {
1597			wrap = <ul class="csc-menu csc-menu-6">|</ul>
1598			special = keywords
1599			special {
1600				excludeNoSearchPages = 1
1601			}
1602		}
1603
1604		# "Menu of subpages to these pages + sections - liststyle"
1605		7 < .1
1606		7 {
1607			wrap = <ul class="csc-menu csc-menu-7">|</ul>
1608			1.expAll = 1
1609			2 < .1
1610			2 {
1611				sectionIndex = 1
1612				sectionIndex.type = header
1613				wrap = <ul>|</ul>
1614				NO.wrapItemAndSub = <li class="csc-section">|</li>
1615			}
1616		}
1617	}
1618
1619	20.stdWrap {
1620		editIcons = tt_content: menu_type, pages
1621		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.menuSitemap
1622
1623		prefixComment = 2 | Menu/Sitemap element:
1624	}
1625}
1626
1627
1628
1629# ****************
1630# CType: shortcut
1631# ****************
1632# Should be a complete copy from the old static template "content (default)"
1633tt_content.shortcut = COA
1634tt_content.shortcut {
1635	20 = CASE
1636	20.key.field = layout
1637	20.0= RECORDS
1638	20.0 {
1639		source.field = records
1640		tables = {$content.shortcut.tables}
1641		# THESE are OLD plugins. Modern plugins registers themselves automatically!
1642		conf.tt_content = < tt_content
1643		conf.tt_address = < tt_address
1644		conf.tt_links = < tt_links
1645		conf.tt_guest = < tt_guest
1646		conf.tt_board = < tt_board
1647		conf.tt_calender = < tt_calender
1648		conf.tt_rating < tt_rating
1649		conf.tt_products = < tt_products
1650		conf.tt_news = < tt_news
1651		conf.tt_poll = < plugin.tt_poll
1652	}
1653	20.1= RECORDS
1654	20.1 {
1655		source.field = records
1656		tables = {$content.shortcut.tables}
1657		conf.tt_poll = < plugin.tt_poll
1658		conf.tt_poll.code = RESULT,SUBMITTEDVOTE
1659	}
1660
1661	20.stdWrap {
1662		editIcons = tt_content: records
1663		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
1664
1665		prefixComment = 2 | Inclusion of other records (by reference):
1666	}
1667}
1668
1669
1670# ****************
1671# CType: list
1672# ****************
1673# Should be a complete copy from the old static template "content (default)" (except "lib.stdheader")
1674tt_content.list = COA
1675tt_content.list {
1676	10 = < lib.stdheader
1677
1678	20 = CASE
1679	20.key.field = list_type
1680	20 {
1681		# LIST element references (NOT copy of objects!)
1682		# THESE are OLD plugins. Modern plugins registers themselves automatically!
1683		3 = CASE
1684		3.key.field = layout
1685		3.0 = < plugin.tt_guest
1686
1687		4 = CASE
1688		4.key.field = layout
1689		4.0 = < plugin.tt_board_list
1690		4.1 = < plugin.tt_board_tree
1691
1692		2 = CASE
1693		2.key.field = layout
1694		2.0 = < plugin.tt_board_tree
1695
1696		5 = CASE
1697		5.key.field = layout
1698		5.0 = < plugin.tt_products
1699
1700		7 = CASE
1701		7.key.field = layout
1702		7.0 = < plugin.tt_calender
1703
1704		8 = CASE
1705		8.key.field = layout
1706		8.0 = < plugin.tt_rating
1707
1708		9 = CASE
1709		9.key.field = layout
1710		9.0 = < plugin.tt_news
1711
1712		11 = CASE
1713		11.key.field = layout
1714		11.0 = < plugin.tipafriend
1715
1716		20 = CASE
1717		20.key.field = layout
1718		20.0 = < plugin.feadmin.fe_users
1719
1720		21 = CASE
1721		21.key.field = layout
1722		21.0 = < plugin.feadmin.dmailsubscription
1723	}
1724
1725	20.stdWrap {
1726		editIcons = tt_content: list_type, layout, select_key, pages [recursive]
1727		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.plugin
1728
1729		prefixComment = 2 | Plugin inserted:
1730	}
1731}
1732
1733
1734# ****************
1735# CType: script
1736# ****************
1737# OBSOLETE! Please make extensions instead. The "script" content element was meant for these custom purposes in the past. Today extensions will do the job better.
1738tt_content.script = TEXT
1739tt_content.script {
1740	value =
1741
1742	prefixComment = 2 | Script element (Deprecated)
1743}
1744
1745
1746# ****************
1747# CType: div
1748# ****************
1749tt_content.div = TEXT
1750tt_content.div {
1751	value = <hr />
1752	wrap = <div class="divider">|</div>
1753	prefixComment = 2 | Div element
1754}
1755
1756
1757# ****************
1758# CType: html
1759# ****************
1760# This truely IS a content object, launched from inside the PHP class of course.
1761# Should be a complete copy from the old static template "content (default)"
1762tt_content.html = TEXT
1763tt_content.html {
1764	field = bodytext
1765
1766	editIcons = tt_content: pages
1767	editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.html
1768
1769	prefixComment = 2 | Raw HTML content:
1770}
1771
1772
1773# ****************
1774# Default error msg:
1775# ****************
1776tt_content.default = TEXT
1777tt_content.default {
1778	field = CType
1779	wrap = <p style="background-color: yellow;"><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>
1780
1781	prefixComment = 2 | Unknown element message:
1782}
1783
1784# *********************************************************************
1785# ACCESSIBILTY MODE
1786# *********************************************************************
1787
1788
1789
1790
1791
1792
1793
1794plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (
1795	/* Captions */
1796	DIV.csc-textpic-caption-c .csc-textpic-caption { text-align: center; }
1797	DIV.csc-textpic-caption-r .csc-textpic-caption { text-align: right; }
1798	DIV.csc-textpic-caption-l .csc-textpic-caption { text-align: left; }
1799
1800	/* Needed for noRows setting */
1801	DIV.csc-textpic DIV.csc-textpic-imagecolumn { float: left; display: inline; }
1802
1803	/* Border just around the image */
1804	{$styles.content.imgtext.borderSelector} {
1805		border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};
1806		padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;
1807	}
1808
1809	DIV.csc-textpic-imagewrap { padding: 0; }
1810
1811	DIV.csc-textpic IMG { border: none; }
1812
1813	/* DIV: This will place the images side by side */
1814	DIV.csc-textpic DIV.csc-textpic-imagewrap DIV.csc-textpic-image { float: left; }
1815
1816	/* UL: This will place the images side by side */
1817	DIV.csc-textpic DIV.csc-textpic-imagewrap UL { list-style: none; margin: 0; padding: 0; }
1818	DIV.csc-textpic DIV.csc-textpic-imagewrap UL LI { float: left; margin: 0; padding: 0; }
1819
1820	/* DL: This will place the images side by side */
1821	DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image { float: left; }
1822	DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DT { float: none; }
1823	DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD { float: none; }
1824	DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD IMG { border: none; } /* FE-Editing Icons */
1825	DL.csc-textpic-image { margin: 0; }
1826	DL.csc-textpic-image DT { margin: 0; display: inline; }
1827	DL.csc-textpic-image DD { margin: 0; }
1828
1829	/* Clearer */
1830	DIV.csc-textpic-clear { clear: both; }
1831
1832	/* Margins around images: */
1833
1834	/* Pictures on left, add margin on right */
1835	DIV.csc-textpic-left DIV.csc-textpic-imagewrap .csc-textpic-image,
1836	DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
1837	DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap .csc-textpic-image {
1838		display: inline; /* IE fix for double-margin bug */
1839		margin-right: {$styles.content.imgtext.colSpace}px;
1840	}
1841
1842	/* Pictures on right, add margin on left */
1843	DIV.csc-textpic-right DIV.csc-textpic-imagewrap .csc-textpic-image,
1844	DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
1845	DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap .csc-textpic-image {
1846		display: inline; /* IE fix for double-margin bug */
1847		margin-left: {$styles.content.imgtext.colSpace}px;
1848	}
1849
1850	/* Pictures centered, add margin on left */
1851	DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image {
1852		display: inline; /* IE fix for double-margin bug */
1853		margin-left: {$styles.content.imgtext.colSpace}px;
1854	}
1855	DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image .csc-textpic-caption { margin: 0; }
1856	DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image IMG { margin: 0; vertical-align:bottom; }
1857
1858	/* Space below each image (also in-between rows) */
1859	DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1860	DIV.csc-textpic-equalheight DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; display: block; }
1861	DIV.csc-textpic DIV.csc-textpic-imagerow { clear: both; }
1862	DIV.csc-textpic DIV.csc-textpic-single-image IMG { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1863
1864	/* IE7 hack for margin between image rows */
1865	*+html DIV.csc-textpic DIV.csc-textpic-imagerow .csc-textpic-image { margin-bottom: 0; }
1866	*+html DIV.csc-textpic DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1867
1868	/* No margins around the whole image-block */
1869	DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-firstcol { margin-left: 0px !important; }
1870	DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-lastcol { margin-right: 0px !important; }
1871
1872	/* Add margin from image-block to text (in case of "Text w/ images") */
1873	DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap,
1874	DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap {
1875		margin-right: {$styles.content.imgtext.textMargin}px !important;
1876	}
1877	DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap,
1878	DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap {
1879		margin-left: {$styles.content.imgtext.textMargin}px !important;
1880	}
1881
1882	/* Positioning of images: */
1883
1884	/* Above */
1885	DIV.csc-textpic-above DIV.csc-textpic-text { clear: both; }
1886
1887	/* Center (above or below) */
1888	DIV.csc-textpic-center { text-align: center; /* IE-hack */ }
1889	DIV.csc-textpic-center DIV.csc-textpic-imagewrap { margin: 0 auto; }
1890	DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image { text-align: left; /* Remove IE-hack */ }
1891	DIV.csc-textpic-center DIV.csc-textpic-text { text-align: left; /* Remove IE-hack */ }
1892
1893	/* Right (above or below) */
1894	DIV.csc-textpic-right DIV.csc-textpic-imagewrap { float: right; }
1895	DIV.csc-textpic-right DIV.csc-textpic-text { clear: right; }
1896
1897	/* Left (above or below) */
1898	DIV.csc-textpic-left DIV.csc-textpic-imagewrap { float: left; }
1899	DIV.csc-textpic-left DIV.csc-textpic-text { clear: left; }
1900
1901	/* Left (in text) */
1902	DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap { float: left; }
1903
1904	/* Right (in text) */
1905	DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap { float: right; }
1906
1907	/* Right (in text, no wrap around) */
1908	DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap { float: right; clear: both; }
1909	/* Hide from IE5-mac. Only IE-win sees this. \*/
1910	* html DIV.csc-textpic-intext-right-nowrap .csc-textpic-text { height: 1%; }
1911	/* End hide from IE5/mac */
1912
1913	/* Left (in text, no wrap around) */
1914	DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap { float: left; clear: both; }
1915	/* Hide from IE5-mac. Only IE-win sees this. \*/
1916	* html DIV.csc-textpic-intext-left-nowrap .csc-textpic-text,
1917	* html .csc-textpic-intext-left ol,
1918	* html .csc-textpic-intext-left ul { height: 1%; }
1919	/* End hide from IE5/mac */
1920
1921	DIV.csc-textpic DIV.csc-textpic-imagerow-last { margin-bottom: 0; }
1922
1923	/* Browser fixes: */
1924
1925	/* Fix for unordered and ordered list with image "In text, left" */
1926	.csc-textpic-intext-left ol, .csc-textpic-intext-left ul {padding-left: 40px; overflow: auto; }
1927)
1928
1929# TYPO3 SVN ID: $Id$
1930
1931