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