[BUGFIX] Content rendering: Definition lists in RTE are wrapped in p
[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 required = 1
878 }
879
880 30 = TEXT
881 30.if.isTrue.field = filelink_size
882 30.data = register:fileSize
883 30.wrap = <td class="csc-uploads-fileSize">|</td>
884 30.bytes = 1
885 30.bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
886 }
887 useSpacesInLinkText = 0
888 stripFileExtensionFromLinkText = 0
889 }
890
891 20.color {
892 default =
893 1 = #EDEBF1
894 2 = #F5FFAA
895 }
896 20.tableParams_0 {
897 border =
898 cellpadding =
899 cellspacing =
900 }
901 20.tableParams_1 {
902 border =
903 cellpadding =
904 cellspacing =
905 }
906 20.tableParams_2 {
907 border =
908 cellpadding =
909 cellspacing =
910 }
911 20.tableParams_3 {
912 border =
913 cellpadding =
914 cellspacing =
915 }
916
917 20.linkProc {
918 target = _blank
919 jumpurl = {$styles.content.uploads.jumpurl}
920 jumpurl.secure = {$styles.content.uploads.jumpurl_secure}
921 jumpurl.secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}
922 removePrependedNumbers = 1
923
924 iconCObject = IMAGE
925 iconCObject.file.import.data = register : ICON_REL_PATH
926 iconCObject.file.width = 150
927 }
928
929 20.filesize {
930 bytes = 1
931 bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
932 }
933
934 20.stdWrap {
935 editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size, imagecaption
936 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.filelist
937
938 prefixComment = 2 | File list:
939 }
940 }
941
942
943 # ******************
944 # CType: multimedia
945 # ******************
946 tt_content.multimedia = COA
947 tt_content.multimedia {
948 10 = < lib.stdheader
949
950 20 = MULTIMEDIA
951 20.file.field = multimedia
952 20.file.wrap = uploads/media/
953 20.file.listNum = 0
954 20.params.field = bodytext
955
956 20.stdWrap {
957 editIcons = tt_content: multimedia, bodytext
958 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
959
960 prefixComment = 2 | Multimedia element:
961 }
962 }
963
964 # *****************
965 # CType: swfobject
966 # *****************
967 tt_content.swfobject = COA
968 tt_content.swfobject {
969 10 = < lib.stdheader
970
971 20 = SWFOBJECT
972 20 {
973 file =
974 width =
975 height =
976
977 flexParams.field = pi_flexform
978
979 alternativeContent.field = bodytext
980
981 layout = ###SWFOBJECT###
982
983 video {
984 player = {$styles.content.media.videoPlayer}
985
986 defaultWidth = {$styles.content.media.defaultVideoWidth}
987 defaultHeight = {$styles.content.media.defaultVideoHeight}
988
989 default {
990 params.quality = high
991 params.menu = false
992 params.allowScriptAccess = sameDomain
993 params.allowFullScreen = true
994 }
995 mapping {
996
997 }
998 }
999
1000 audio {
1001 player = {$styles.content.media.audioPlayer}
1002
1003 defaultWidth = {$styles.content.media.defaultAudioWidth}
1004 defaultHeight = {$styles.content.media.defaultAudioHeight}
1005
1006 default {
1007 params.quality = high
1008 params.allowScriptAccess = sameDomain
1009 params.menu = false
1010 }
1011 mapping {
1012 flashvars.file = soundFile
1013 }
1014 }
1015
1016 }
1017 20.stdWrap {
1018 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1019 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1020
1021 prefixComment = 2 | SWFobject element:
1022 }
1023 }
1024
1025 # *****************
1026 # CType: qtobject
1027 # *****************
1028 tt_content.qtobject = COA
1029 tt_content.qtobject {
1030 10 = < lib.stdheader
1031
1032 20 = QTOBJECT
1033 20 {
1034 file =
1035 width =
1036 height =
1037
1038 flexParams.field = pi_flexform
1039
1040 alternativeContent.field = bodytext
1041
1042 layout = ###QTOBJECT###
1043
1044 video {
1045 player = {$styles.content.media.videoPlayer}
1046
1047 defaultWidth = {$styles.content.media.defaultVideoWidth}
1048 defaultHeight = {$styles.content.media.defaultVideoHeight}
1049
1050 default {
1051 params.quality = high
1052 params.menu = false
1053 params.allowScriptAccess = sameDomain
1054 params.allowFullScreen = true
1055 }
1056 mapping {
1057
1058 }
1059 }
1060
1061 audio {
1062 player = {$styles.content.media.audioPlayer}
1063
1064 defaultWidth = {$styles.content.media.defaultAudioWidth}
1065 defaultHeight = {$styles.content.media.defaultAudioHeight}
1066
1067 default {
1068 params.quality = high
1069 params.allowScriptAccess = sameDomain
1070 params.menu = false
1071 }
1072 mapping {
1073 flashvars.file = soundFile
1074 }
1075 }
1076 }
1077 20.stdWrap {
1078 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1079 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1080
1081 prefixComment = 2 | QTobject element:
1082 }
1083 }
1084
1085 # *****************
1086 # CType: media
1087 # *****************
1088 tt_content.media = COA
1089 tt_content.media {
1090 10 = < lib.stdheader
1091
1092 20 = MEDIA
1093 20 {
1094
1095 flexParams.field = pi_flexform
1096 alternativeContent < tt_content.text.20
1097 alternativeContent.field = bodytext
1098
1099 type = video
1100 renderType = auto
1101 allowEmptyUrl = 0
1102 forcePlayer = 1
1103
1104 fileExtHandler {
1105 default = MEDIA
1106 avi = MEDIA
1107 asf = MEDIA
1108 class = MEDIA
1109 wmv = MEDIA
1110 mp3 = SWF
1111 mp4 = SWF
1112 m4v = SWF
1113 swa = SWF
1114 flv = SWF
1115 swf = SWF
1116 mov = QT
1117 m4v = QT
1118 m4a = QT
1119 }
1120
1121 mimeConf.swfobject < tt_content.swfobject.20
1122 mimeConf.qtobject < tt_content.qtobject.20
1123
1124 }
1125 20.stdWrap {
1126 editIcons = tt_content: pi_flexform, bodytext
1127 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1128
1129 prefixComment = 2 | Media element:
1130 }
1131 }
1132
1133 # ******************
1134 # CType: mailform
1135 # ******************
1136 tt_content.mailform = COA
1137 tt_content.mailform.10 = < lib.stdheader
1138 tt_content.mailform.20 = FORM
1139 tt_content.mailform.20 {
1140 accessibility = 1
1141 noWrapAttr=1
1142 formName = mailform
1143 dontMd5FieldNames = 1
1144 layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>
1145 labelWrap.wrap = |
1146 commentWrap.wrap = |
1147 radioWrap.wrap = |<br />
1148 radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>
1149 REQ = 1
1150 REQ.labelWrap.wrap = |
1151 COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>
1152 RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>
1153 LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>
1154 target = {$styles.content.mailform.target}
1155 goodMess = {$styles.content.mailform.goodMess}
1156 badMess = {$styles.content.mailform.badMess}
1157 redirect.field = pages
1158 redirect.listNum = 0
1159 recipient.field = subheader
1160 data.field = bodytext
1161 locationData = 1
1162 hiddenFields.stdWrap.wrap = <div style="display:none;">|</div>
1163
1164 params.radio = class="csc-mailform-radio"
1165 params.check = class="csc-mailform-check"
1166 params.submit = class="csc-mailform-submit"
1167
1168 stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>
1169 stdWrap {
1170 editIcons = tt_content: bodytext, pages, subheader
1171 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.form
1172
1173 prefixComment = 2 | Mail form inserted:
1174 }
1175 }
1176
1177
1178 # ******************
1179 # CType: search
1180 # ******************
1181 tt_content.search = COA
1182 tt_content.search.10 = < lib.stdheader
1183 # Result:
1184 tt_content.search.20 = SEARCHRESULT
1185 tt_content.search.20 {
1186 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
1187 languageField.tt_content = sys_language_uid
1188 renderObj = COA
1189 renderObj {
1190
1191 10 = TEXT
1192 10.field = pages_title
1193 10.htmlSpecialChars = 1
1194 10.typolink {
1195 parameter.field = uid
1196 target = {$styles.content.searchresult.resultTarget}
1197 additionalParams.data = register:SWORD_PARAMS
1198 additionalParams.required = 1
1199 additionalParams.wrap = &no_cache=1
1200 }
1201 10.htmlSpecialChars = 1
1202 10.wrap = <h3 class="csc-searchResultHeader">|</h3>
1203
1204 20 = COA
1205 20 {
1206 10 = TEXT
1207 10.field = tt_content_bodytext
1208 10.stripHtml = 1
1209 10.htmlSpecialChars = 1
1210 }
1211 20.stdWrap.crop = 200 | ...
1212 20.stdWrap.wrap = <p class="csc-searchResult">|</p>
1213 }
1214
1215 layout = COA
1216 layout {
1217 wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###
1218
1219 10 = TEXT
1220 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.resultRange
1221 10.wrap = <td class="csc-searchResultRange"><p>|</p></td>
1222
1223 20 = TEXT
1224 20.value = ###PREV###&nbsp;&nbsp;&nbsp;###NEXT###
1225 20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>
1226 }
1227
1228 noResultObj = COA
1229 noResultObj {
1230 10 = TEXT
1231 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.emptySearch
1232 10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>
1233 }
1234
1235 next = TEXT
1236 next.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultNext
1237
1238 prev = TEXT
1239 prev.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultPrev
1240
1241 target = {$styles.content.searchresult.target}
1242 range = 20
1243
1244 stdWrap.prefixComment = 2 | Search result:
1245 }
1246
1247 # Form:
1248 tt_content.search.30 < tt_content.mailform.20
1249 tt_content.search.30 {
1250 goodMess = {$styles.content.searchform.goodMess}
1251 redirect >
1252 recipient >
1253 data >
1254 dataArray {
1255 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchWord
1256 10.type = sword=input
1257 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchIn
1258 20.type = scols=select
1259 20.valueArray {
1260 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.headersKeywords
1261 10.value = pages.title-subtitle-keywords-description:tt_content.header
1262 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.pageContent
1263 20.value = tt_content.header-bodytext-imagecaption
1264 }
1265 30.type = stype=hidden
1266 30.value = L0
1267 40.type = submit=submit
1268 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchButton
1269 }
1270 type.field = pages
1271 type.listNum = 0
1272 locationData = HTTP_POST_VARS
1273 no_cache = 1
1274
1275 stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform"> | </table>
1276 stdWrap {
1277 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.search
1278
1279 prefixComment = 2 | Search form inserted:
1280 }
1281 }
1282
1283
1284 # ******************
1285 # CType: login
1286 # ******************
1287 tt_content.login < tt_content.mailform
1288 tt_content.login.10 = < lib.stdheader
1289 tt_content.login.20 {
1290 goodMess = {$styles.content.loginform.goodMess}
1291 redirect >
1292 recipient >
1293 data >
1294 dataArray {
1295 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
1296 10.type = *user=input
1297 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.password
1298 20.type = *pass=password
1299 30.type = logintype=hidden
1300 30.value = login
1301 40.type = submit=submit
1302 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.login
1303 }
1304 type.field = pages
1305 type.listNum = 0
1306 target = {$styles.content.loginform.target}
1307 locationData = 0
1308 hiddenFields.pid = TEXT
1309 hiddenFields.pid {
1310 value = {$styles.content.loginform.pid}
1311 override.field = pages
1312 override.listNum = 1
1313 }
1314
1315 stdWrap.wrap = <div class="csc-loginform"> | </div>
1316 stdWrap {
1317 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.login
1318
1319 prefixComment = 2 | Login/Logout form:
1320 }
1321 }
1322 [loginUser = *]
1323 tt_content.login.20 {
1324 dataArray >
1325 dataArray {
1326 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
1327 10.label.wrap = |&nbsp;<!--###USERNAME###-->
1328 30.type = logintype=hidden
1329 30.value = logout
1330 40.type = submit=submit
1331 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.logout
1332 }
1333 }
1334 [global]
1335
1336
1337 # ******************
1338 # CType: splash
1339 # ******************
1340 # Deprecated element.
1341 # Still here for backwards compliance with plugins using the "text box" type.
1342 tt_content.splash = CASE
1343 tt_content.splash.key.field = splash_layout
1344 tt_content.splash.stdWrap {
1345 prefixComment = 2 | Textbox inserted (Deprecated)
1346 }
1347 tt_content.splash.default = COA
1348 tt_content.splash.default {
1349 20 = CTABLE
1350 20 {
1351 c.1 = < tt_content.text
1352 lm.1 = IMAGE
1353 lm.1.file {
1354 import = uploads/pics/
1355 import.field = image
1356 import.listNum = 0
1357 maxW.field = imagewidth
1358 maxW.ifEmpty = 200
1359 }
1360 cMargins = 30,0,0,0
1361 }
1362 }
1363 tt_content.splash.1 < tt_content.splash.default
1364 tt_content.splash.1.20.lm.1.file >
1365 tt_content.splash.1.20.lm.1.file = GIFBUILDER
1366 tt_content.splash.1.20.lm.1.file {
1367 XY = [10.w]+10,[10.h]+10
1368 backColor = {$content.splash.bgCol}
1369 backColor.override.data = register:pageColor
1370 format = jpg
1371 5 = BOX
1372 5.dimensions = 3,3,[10.w],[10.h]
1373 5.color = #333333
1374 7 = EFFECT
1375 7.value = blur=99|blur=99|blur=99|blur=99|blur=99|blur=99|blur=99
1376 10 = IMAGE
1377 10.file {
1378 import = uploads/pics/
1379 import.field = image
1380 import.listNum = 0
1381 maxW.field = imagewidth
1382 maxW.ifEmpty = 200
1383 }
1384 }
1385 // The image frames are not available unless TypoScript code from styles.content.imgFrames.x is provided manually:
1386 tt_content.splash.2 < tt_content.splash.default
1387 #tt_content.splash.2.20.lm.1.file.m < styles.content.imgFrames.1
1388 tt_content.splash.3 < tt_content.splash.default
1389 #tt_content.splash.3.20.lm.1.file.m < styles.content.imgFrames.2
1390
1391 // From plugin.postit1, if included:
1392 tt_content.splash.20 = < plugin.postit1
1393
1394
1395
1396 # ****************
1397 # CType: menu
1398 # ****************
1399 tt_content.menu = COA
1400 tt_content.menu {
1401 10 = < lib.stdheader
1402
1403 20 = CASE
1404 20 {
1405 key.field = menu_type
1406
1407 # "Menu of these pages"
1408 default = HMENU
1409 default {
1410 special = list
1411 special.value.field = pages
1412 wrap = <ul class="csc-menu csc-menu-def">|</ul>
1413 1 = TMENU
1414 1 {
1415 target = {$PAGE_TARGET}
1416 NO {
1417 stdWrap.htmlSpecialChars = 1
1418 wrapItemAndSub = <li>|</li>
1419 ATagTitle.field = description // title
1420 }
1421 noBlur = 1
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 noBlur = 1
1440 expAll = 1
1441 wrap = <ul>|</ul>
1442 NO {
1443 stdWrap.htmlSpecialChars = 1
1444 wrapItemAndSub = <li>|</li>
1445 ATagTitle.field = description // title
1446 }
1447 }
1448 2 < .1
1449 3 < .1
1450 4 < .1
1451 5 < .1
1452 6 < .1
1453 7 < .1
1454 }
1455
1456 # "Section index (pagecontent w/Index checked - liststyle)"
1457 3 < styles.content.get
1458 3 {
1459 wrap = <ul class="csc-menu csc-menu-3">|</ul>
1460 select.andWhere = sectionIndex<>0
1461 select.pidInList.override.field = pages
1462 renderObj = TEXT
1463 renderObj {
1464 fieldRequired = header
1465 trim = 1
1466 field = header
1467 htmlSpecialChars = 1
1468 noBlur = 1
1469 wrap = <li class="csc-section">|</li>
1470 typolink.parameter.field = pid
1471 typolink.section.field = uid
1472 }
1473 }
1474
1475 # "Menu of subpages to these pages (with abstract)"
1476 4 < .1
1477 4 {
1478 wrap = <dl class="csc-menu csc-menu-4">|</dl>
1479 1.NO {
1480 wrapItemAndSub >
1481 linkWrap = <dt>|</dt>
1482 after {
1483 data = field : abstract // field : description // field : subtitle
1484 required = 1
1485 htmlSpecialChars = 1
1486 wrap = <dd>|</dd>
1487 }
1488 ATagTitle.field = description // title
1489 }
1490 }
1491
1492 # "Recently updated pages"
1493 5 < .default
1494 5 {
1495 wrap = <ul class="csc-menu csc-menu-5">|</ul>
1496 special = updated
1497 special {
1498 maxAge = 3600*24*7
1499 excludeNoSearchPages = 1
1500 }
1501 }
1502
1503 # "Related pages (based on keywords)"
1504 6 < .default
1505 6 {
1506 wrap = <ul class="csc-menu csc-menu-6">|</ul>
1507 special = keywords
1508 special {
1509 excludeNoSearchPages = 1
1510 }
1511 }
1512
1513 # "Menu of subpages to these pages + sections - liststyle"
1514 7 < .1
1515 7 {
1516 wrap = <ul class="csc-menu csc-menu-7">|</ul>
1517 1.expAll = 1
1518 2 < .1
1519 2 {
1520 sectionIndex = 1
1521 sectionIndex.type = header
1522 wrap = <ul>|</ul>
1523 NO.wrapItemAndSub = <li class="csc-section">|</li>
1524 }
1525 }
1526 }
1527
1528 20.stdWrap {
1529 editIcons = tt_content: menu_type, pages
1530 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.menuSitemap
1531
1532 prefixComment = 2 | Menu/Sitemap element:
1533 }
1534 }
1535
1536
1537
1538 # ****************
1539 # CType: shortcut
1540 # ****************
1541 # Should be a complete copy from the old static template "content (default)"
1542 tt_content.shortcut = COA
1543 tt_content.shortcut {
1544 20 = CASE
1545 20.key.field = layout
1546 20.0= RECORDS
1547 20.0 {
1548 source.field = records
1549 tables = {$content.shortcut.tables}
1550 # THESE are OLD plugins. Modern plugins registers themselves automatically!
1551 conf.tt_content = < tt_content
1552 conf.tt_address = < tt_address
1553 conf.tt_links = < tt_links
1554 conf.tt_guest = < tt_guest
1555 conf.tt_board = < tt_board
1556 conf.tt_calender = < tt_calender
1557 conf.tt_rating < tt_rating
1558 conf.tt_products = < tt_products
1559 conf.tt_news = < tt_news
1560 conf.tt_poll = < plugin.tt_poll
1561 }
1562 20.1= RECORDS
1563 20.1 {
1564 source.field = records
1565 tables = {$content.shortcut.tables}
1566 conf.tt_poll = < plugin.tt_poll
1567 conf.tt_poll.code = RESULT,SUBMITTEDVOTE
1568 }
1569
1570 20.stdWrap {
1571 editIcons = tt_content: records
1572 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
1573
1574 prefixComment = 2 | Inclusion of other records (by reference):
1575 }
1576 }
1577
1578
1579 # ****************
1580 # CType: list
1581 # ****************
1582 # Should be a complete copy from the old static template "content (default)" (except "lib.stdheader")
1583 tt_content.list = COA
1584 tt_content.list {
1585 10 = < lib.stdheader
1586
1587 20 = CASE
1588 20.key.field = list_type
1589 20 {
1590 # LIST element references (NOT copy of objects!)
1591 # THESE are OLD plugins. Modern plugins registers themselves automatically!
1592 3 = CASE
1593 3.key.field = layout
1594 3.0 = < plugin.tt_guest
1595
1596 4 = CASE
1597 4.key.field = layout
1598 4.0 = < plugin.tt_board_list
1599 4.1 = < plugin.tt_board_tree
1600
1601 2 = CASE
1602 2.key.field = layout
1603 2.0 = < plugin.tt_board_tree
1604
1605 5 = CASE
1606 5.key.field = layout
1607 5.0 = < plugin.tt_products
1608
1609 7 = CASE
1610 7.key.field = layout
1611 7.0 = < plugin.tt_calender
1612
1613 8 = CASE
1614 8.key.field = layout
1615 8.0 = < plugin.tt_rating
1616
1617 9 = CASE
1618 9.key.field = layout
1619 9.0 = < plugin.tt_news
1620
1621 11 = CASE
1622 11.key.field = layout
1623 11.0 = < plugin.tipafriend
1624
1625 20 = CASE
1626 20.key.field = layout
1627 20.0 = < plugin.feadmin.fe_users
1628
1629 21 = CASE
1630 21.key.field = layout
1631 21.0 = < plugin.feadmin.dmailsubscription
1632 }
1633
1634 20.stdWrap {
1635 editIcons = tt_content: list_type, layout, select_key, pages [recursive]
1636 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.plugin
1637
1638 prefixComment = 2 | Plugin inserted:
1639 }
1640 }
1641
1642
1643 # ****************
1644 # CType: script
1645 # ****************
1646 # 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.
1647 tt_content.script = TEXT
1648 tt_content.script {
1649 value =
1650
1651 prefixComment = 2 | Script element (Deprecated)
1652 }
1653
1654
1655 # ****************
1656 # CType: div
1657 # ****************
1658 tt_content.div = TEXT
1659 tt_content.div {
1660 value = <hr />
1661 wrap = <div class="divider">|</div>
1662 prefixComment = 2 | Div element
1663 }
1664
1665
1666 # ****************
1667 # CType: html
1668 # ****************
1669 # This truely IS a content object, launched from inside the PHP class of course.
1670 # Should be a complete copy from the old static template "content (default)"
1671 tt_content.html = TEXT
1672 tt_content.html {
1673 field = bodytext
1674
1675 editIcons = tt_content: pages
1676 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.html
1677
1678 prefixComment = 2 | Raw HTML content:
1679 }
1680
1681
1682 # ****************
1683 # Default error msg:
1684 # ****************
1685 tt_content.default = TEXT
1686 tt_content.default {
1687 field = CType
1688 wrap = <p style="background-color: yellow;"><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>
1689
1690 prefixComment = 2 | Unknown element message:
1691 }
1692
1693 # *********************************************************************
1694 # ACCESSIBILTY MODE
1695 # *********************************************************************
1696
1697
1698
1699
1700
1701
1702
1703 plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (
1704 /* Captions */
1705 DIV.csc-textpic-caption-c .csc-textpic-caption { text-align: center; }
1706 DIV.csc-textpic-caption-r .csc-textpic-caption { text-align: right; }
1707 DIV.csc-textpic-caption-l .csc-textpic-caption { text-align: left; }
1708
1709 /* Needed for noRows setting */
1710 DIV.csc-textpic DIV.csc-textpic-imagecolumn { float: left; display: inline; }
1711
1712 /* Border just around the image */
1713 {$styles.content.imgtext.borderSelector} {
1714 border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};
1715 padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;
1716 }
1717
1718 DIV.csc-textpic-imagewrap { padding: 0; }
1719
1720 DIV.csc-textpic IMG { border: none; }
1721
1722 /* DIV: This will place the images side by side */
1723 DIV.csc-textpic DIV.csc-textpic-imagewrap DIV.csc-textpic-image { float: left; }
1724
1725 /* UL: This will place the images side by side */
1726 DIV.csc-textpic DIV.csc-textpic-imagewrap UL { list-style: none; margin: 0; padding: 0; }
1727 DIV.csc-textpic DIV.csc-textpic-imagewrap UL LI { float: left; margin: 0; padding: 0; }
1728
1729 /* DL: This will place the images side by side */
1730 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image { float: left; }
1731 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DT { float: none; }
1732 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD { float: none; }
1733 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD IMG { border: none; } /* FE-Editing Icons */
1734 DL.csc-textpic-image { margin: 0; }
1735 DL.csc-textpic-image DT { margin: 0; display: inline; }
1736 DL.csc-textpic-image DD { margin: 0; }
1737
1738 /* Clearer */
1739 DIV.csc-textpic-clear { clear: both; }
1740
1741 /* Margins around images: */
1742
1743 /* Pictures on left, add margin on right */
1744 DIV.csc-textpic-left DIV.csc-textpic-imagewrap .csc-textpic-image,
1745 DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
1746 DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap .csc-textpic-image {
1747 display: inline; /* IE fix for double-margin bug */
1748 margin-right: {$styles.content.imgtext.colSpace}px;
1749 }
1750
1751 /* Pictures on right, add margin on left */
1752 DIV.csc-textpic-right DIV.csc-textpic-imagewrap .csc-textpic-image,
1753 DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
1754 DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap .csc-textpic-image {
1755 display: inline; /* IE fix for double-margin bug */
1756 margin-left: {$styles.content.imgtext.colSpace}px;
1757 }
1758
1759 /* Pictures centered, add margin on left */
1760 DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image {
1761 display: inline; /* IE fix for double-margin bug */
1762 margin-left: {$styles.content.imgtext.colSpace}px;
1763 }
1764 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image .csc-textpic-caption { margin: 0; }
1765 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image IMG { margin: 0; vertical-align:bottom; }
1766
1767 /* Space below each image (also in-between rows) */
1768 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1769 DIV.csc-textpic-equalheight DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; display: block; }
1770 DIV.csc-textpic DIV.csc-textpic-imagerow { clear: both; }
1771 DIV.csc-textpic DIV.csc-textpic-single-image IMG { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1772
1773 /* IE7 hack for margin between image rows */
1774 *+html DIV.csc-textpic DIV.csc-textpic-imagerow .csc-textpic-image { margin-bottom: 0; }
1775 *+html DIV.csc-textpic DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1776
1777 /* No margins around the whole image-block */
1778 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-firstcol { margin-left: 0px !important; }
1779 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-lastcol { margin-right: 0px !important; }
1780
1781 /* Add margin from image-block to text (in case of "Text w/ images") */
1782 DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap,
1783 DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap {
1784 margin-right: {$styles.content.imgtext.textMargin}px !important;
1785 }
1786 DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap,
1787 DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap {
1788 margin-left: {$styles.content.imgtext.textMargin}px !important;
1789 }
1790
1791 /* Positioning of images: */
1792
1793 /* Above */
1794 DIV.csc-textpic-above DIV.csc-textpic-text { clear: both; }
1795
1796 /* Center (above or below) */
1797 DIV.csc-textpic-center { text-align: center; /* IE-hack */ }
1798 DIV.csc-textpic-center DIV.csc-textpic-imagewrap { margin: 0 auto; }
1799 DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image { text-align: left; /* Remove IE-hack */ }
1800 DIV.csc-textpic-center DIV.csc-textpic-text { text-align: left; /* Remove IE-hack */ }
1801
1802 /* Right (above or below) */
1803 DIV.csc-textpic-right DIV.csc-textpic-imagewrap { float: right; }
1804 DIV.csc-textpic-right DIV.csc-textpic-text { clear: right; }
1805
1806 /* Left (above or below) */
1807 DIV.csc-textpic-left DIV.csc-textpic-imagewrap { float: left; }
1808 DIV.csc-textpic-left DIV.csc-textpic-text { clear: left; }
1809
1810 /* Left (in text) */
1811 DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap { float: left; }
1812
1813 /* Right (in text) */
1814 DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap { float: right; }
1815
1816 /* Right (in text, no wrap around) */
1817 DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap { float: right; clear: both; }
1818 /* Hide from IE5-mac. Only IE-win sees this. \*/
1819 * html DIV.csc-textpic-intext-right-nowrap .csc-textpic-text { height: 1%; }
1820 /* End hide from IE5/mac */
1821
1822 /* Left (in text, no wrap around) */
1823 DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap { float: left; clear: both; }
1824 /* Hide from IE5-mac. Only IE-win sees this. \*/
1825 * html DIV.csc-textpic-intext-left-nowrap .csc-textpic-text,
1826 * html .csc-textpic-intext-left ol,
1827 * html .csc-textpic-intext-left ul { height: 1%; }
1828 /* End hide from IE5/mac */
1829
1830 DIV.csc-textpic DIV.csc-textpic-imagerow-last { margin-bottom: 0; }
1831
1832 /* Browser fixes: */
1833
1834 /* Fix for unordered and ordered list with image "In text, left" */
1835 .csc-textpic-intext-left ol, .csc-textpic-intext-left ul {padding-left: 40px; overflow: auto; }
1836 )
1837