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