d2b23c97bf5e64c2599cf1e1fa1d0b23ecc3b858
[Packages/TYPO3.CMS.git] / typo3 / sysext / css_styled_content / static / 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 a condition for targets. Not allowed in XHTML except for xhtml frames DTD
60 lib.parseTarget {
61 override =
62 override.if {
63 isTrue.data = TSFE:dtdAllowsFrames
64 }
65 }
66
67 # Creates persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!)
68 lib.parseFunc {
69 makelinks = 1
70 makelinks.http.keep = {$styles.content.links.keep}
71 makelinks.http.extTarget < lib.parseTarget
72 makelinks.http.extTarget =
73 makelinks.http.extTarget.override = {$styles.content.links.extTarget}
74 makelinks.mailto.keep = path
75 tags {
76 link = TEXT
77 link {
78 current = 1
79 typolink.parameter.data = parameters : allParams
80 typolink.extTarget < lib.parseTarget
81 typolink.extTarget =
82 typolink.extTarget.override = {$styles.content.links.extTarget}
83 typolink.target < lib.parseTarget
84 typolink.target =
85 typolink.target.override = {$styles.content.links.target}
86 parseFunc.constants =1
87 }
88 }
89 allowTags = {$styles.content.links.allowTags}
90 denyTags = *
91 sword = <span class="csc-sword">|</span>
92 constants = 1
93
94 nonTypoTagStdWrap.HTMLparser = 1
95 nonTypoTagStdWrap.HTMLparser {
96 keepNonMatchedTags = 1
97 htmlSpecialChars = 2
98 }
99 }
100
101 # good old parsefunc in "styles.content.parseFunc" is created for backwards compatibility. Don't use it, just ignore.
102 styles.content.parseFunc < lib.parseFunc
103
104 # Creates persistent ParseFunc setup for RTE content (which is mainly HTML) based on the "ts_css" transformation.
105 lib.parseFunc_RTE < lib.parseFunc
106 lib.parseFunc_RTE {
107 // makelinks >
108 # Processing <table> and <blockquote> blocks separately
109 externalBlocks = article, aside, blockquote, div, dd, dl, footer, header, nav, ol, section, table, ul
110 externalBlocks {
111 # The blockquote content is passed into parseFunc again...
112 blockquote.stripNL=1
113 blockquote.callRecursive=1
114 blockquote.callRecursive.tagStdWrap.HTMLparser = 1
115 blockquote.callRecursive.tagStdWrap.HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;"
116
117 ol.stripNL=1
118 ol.stdWrap.parseFunc = < lib.parseFunc
119
120 ul.stripNL=1
121 ul.stdWrap.parseFunc = < lib.parseFunc
122
123 table.stripNL=1
124 table.stdWrap.HTMLparser = 1
125 table.stdWrap.HTMLparser.tags.table.fixAttrib.class {
126 default = contenttable
127 always = 1
128 list = contenttable
129 }
130 table.stdWrap.HTMLparser.keepNonMatchedTags = 1
131 table.HTMLtableCells=1
132 table.HTMLtableCells {
133 # Recursive call to self but without wrapping non-wrapped cell content
134 default.stdWrap {
135 parseFunc =< lib.parseFunc_RTE
136 parseFunc.nonTypoTagStdWrap.encapsLines.nonWrappedTag =
137 }
138 addChr10BetweenParagraphs=1
139 }
140 div.stripNL = 1
141 div.callRecursive = 1
142
143 article < .div
144 aside < .div
145 footer < .div
146 header < .div
147 nav < .div
148 section < .div
149
150 # Definition list processing
151 dl < .div
152 dd < .div
153 }
154 nonTypoTagStdWrap.encapsLines {
155 encapsTagList = p,pre,h1,h2,h3,h4,h5,h6,hr,dt
156 remapTag.DIV = P
157 nonWrappedTag = P
158 innerStdWrap_all.ifBlank = &nbsp;
159 addAttributes.P.class = bodytext
160 addAttributes.P.class.setOnly=blank
161 }
162 nonTypoTagStdWrap.HTMLparser = 1
163 nonTypoTagStdWrap.HTMLparser {
164 keepNonMatchedTags = 1
165 htmlSpecialChars = 2
166 }
167 }
168
169
170 # Content header:
171 lib.stdheader = COA
172 lib.stdheader {
173
174 # Create class attribute for <Hx> tags
175 3 = LOAD_REGISTER
176 3 {
177 headerClass {
178 cObject = COA
179 cObject {
180 # Create alignment class for <Hx> tags
181 10 = TEXT
182 10 {
183 field = header_position
184 required = 1
185 noTrimWrap = |csc-header-alignment-| |
186 }
187 # Create "csc-firstHeader" class for <Hx> tags
188 20 = TEXT
189 20 {
190 value = csc-firstHeader
191 if {
192 value = 1
193 equals.data = cObj:parentRecordNumber
194 }
195 }
196 stdWrap {
197 trim = 1
198 noTrimWrap = | class="|"|
199 required = 1
200 }
201 }
202 }
203 }
204
205 # Date format (not HTML5)
206 5 = TEXT
207 5 {
208 field = date
209 if {
210 isTrue {
211 field = date
212 }
213 isFalse = 1
214 isFalse {
215 if {
216 value = html5
217 equals.data = TSFE:config|config|doctype
218 }
219 }
220 }
221 strftime = %x
222 wrap = <p class="csc-header-date">|</p>
223 prefixComment = 2 | Header date:
224 }
225
226 # This CASE cObject renders the header content:
227 # currentValue is set to the header data, possibly wrapped in link-tags.
228 10 = CASE
229 10.setCurrent {
230 field = header
231 htmlSpecialChars = 1
232 typolink.parameter.field = header_link
233 }
234 10.key.field = header_layout
235 10.key.ifEmpty = {$content.defaultHeaderType}
236 10.key.ifEmpty.override.data = register: defaultHeaderType
237
238 10.1 = TEXT
239 10.1.current = 1
240 10.1.dataWrap = <h1{register:headerClass}>|</h1>
241
242 10.2 < .10.1
243 10.2.dataWrap = <h2{register:headerClass}>|</h2>
244
245 10.3 < .10.1
246 10.3.dataWrap = <h3{register:headerClass}>|</h3>
247
248 10.4 < .10.1
249 10.4.dataWrap = <h4{register:headerClass}>|</h4>
250
251 10.5 < .10.1
252 10.5.dataWrap = <h5{register:headerClass}>|</h5>
253
254 # HTML5 subheader
255 20 = CASE
256 20 {
257 key {
258 field = header_layout
259 }
260
261 default = TEXT
262 default {
263 wrap = <h2>|</h2>
264 htmlSpecialChars = 1
265 field = subheader
266 }
267
268 1 < .default
269
270 2 < .default
271 2.wrap = <h3>|</h3>
272
273 3 < .default
274 3.wrap = <h4>|</h4>
275
276 4 < .default
277 4.wrap = <h5>|</h5>
278
279 5 < .default
280 5.wrap = <h6>|</h6>
281
282 if {
283 isTrue {
284 field = subheader
285 }
286 value = html5
287 equals.data = TSFE:config|config|doctype
288 }
289 }
290
291 # HTML5 Date
292 40 = COA
293 40 {
294
295 stdWrap {
296 wrap = <p class="csc-header-date">|</p>
297 innerWrap {
298 cObject = COA
299 cObject {
300 10 = TEXT
301 10 {
302 value = <time
303 }
304 20 = TEXT
305 20 {
306 noTrimWrap = | datetime="|"|
307 field = date
308 strftime = %Y-%m-%d
309 }
310 30 = TEXT
311 30 {
312 value = >|</time>
313 }
314 }
315 }
316 required = 1
317 }
318 10 = TEXT
319 10 {
320 field = date
321 strftime = %B %e, %Y
322 }
323 if {
324 isTrue {
325 field = date
326 }
327 value = html5
328 equals.data = TSFE:config|config|doctype
329 }
330 }
331
332 # Pops the used registers off the stack:
333 98 = RESTORE_REGISTER
334
335 # Post-processing:
336 stdWrap.fieldRequired = header
337 stdWrap.if {
338 equals.field = header_layout
339 value = 100
340 negate = 1
341 }
342
343 stdWrap.editIcons = tt_content : header, [header_layout | header_position], [header_link|date]
344 stdWrap.editIcons.beforeLastTag = 1
345 stdWrap.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.header
346
347 stdWrap {
348 dataWrap = <div class="csc-header csc-header-n{cObj:parentRecordNumber}">|</div>
349 dataWrap {
350 override = <header class="csc-header csc-header-n{cObj:parentRecordNumber}">|</header>
351 override {
352 if {
353 value = html5
354 equals.data = TSFE:config|config|doctype
355 }
356 }
357 }
358 }
359 stdWrap.prefixComment = 2 | Header:
360 }
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376 #******************************************************
377 # Including library for processing of some elements:
378 #******************************************************
379 includeLibs.tx_cssstyledcontent_pi1 = EXT:css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
380
381
382 #**********************************
383 # tt_content is started
384 #**********************************
385 tt_content >
386 tt_content = CASE
387 tt_content.key.field = CType
388 tt_content.stdWrap {
389 innerWrap.cObject = CASE
390 innerWrap.cObject {
391 key.field = section_frame
392
393 default = COA
394 default {
395 10 = TEXT
396 10 {
397 cObject = CASE
398 cObject {
399 key.field = CType
400
401 default = TEXT
402 default {
403 value = <div id="c{field:uid}"
404 }
405
406 div = TEXT
407 div {
408 value = <div
409 }
410
411 menu < .default
412 menu {
413 override = <nav id="c{field:uid}"
414 override {
415 if {
416 value = html5
417 equals.data = TSFE:config|config|doctype
418 }
419 }
420 }
421 }
422 insertData = 1
423 }
424
425 20 = COA
426 20 {
427 # Create default class for content
428 10 = TEXT
429 10 {
430 value = csc-default
431 required = 1
432 noTrimWrap = || |
433 }
434 # Create class for space before content
435 20 = USER
436 20 {
437 userFunc = tx_cssstyledcontent_pi1->renderSpace
438 space = before
439 constant = {$content.spaceBefore}
440 classStdWrap {
441 noTrimWrap = |csc-space-before-| |
442 }
443 }
444 # Create class for space after content
445 30 = USER
446 30 {
447 userFunc = tx_cssstyledcontent_pi1->renderSpace
448 space = after
449 constant = {$content.spaceAfter}
450 classStdWrap {
451 noTrimWrap = |csc-space-after-| |
452 }
453 }
454 stdWrap {
455 trim = 1
456 noTrimWrap = | class="|"|
457 required = 1
458 }
459 }
460
461 30 = TEXT
462 30 {
463 cObject = CASE
464 cObject {
465 key.field = CType
466
467 default = TEXT
468 default {
469 value = >|</div>
470 }
471
472 menu < .default
473 menu {
474 override = >|</nav>
475 override {
476 if {
477 value = html5
478 equals.data = TSFE:config|config|doctype
479 }
480 }
481 }
482 }
483 }
484 }
485
486 1 =< tt_content.stdWrap.innerWrap.cObject.default
487 1.20.10.value = csc-frame csc-frame-invisible
488
489 5 =< tt_content.stdWrap.innerWrap.cObject.default
490 5.20.10.value = csc-frame csc-frame-rulerBefore
491
492 6 =< tt_content.stdWrap.innerWrap.cObject.default
493 6.20.10.value = csc-frame csc-frame-rulerAfter
494
495 10 =< tt_content.stdWrap.innerWrap.cObject.default
496 10.20.10.value = csc-frame csc-frame-indent
497
498 11 =< tt_content.stdWrap.innerWrap.cObject.default
499 11.20.10.value = csc-frame csc-frame-indent3366
500
501 12 =< tt_content.stdWrap.innerWrap.cObject.default
502 12.20.10.value = csc-frame csc-frame-indent6633
503
504 20 =< tt_content.stdWrap.innerWrap.cObject.default
505 20.20.10.value = csc-frame csc-frame-frame1
506
507 21 =< tt_content.stdWrap.innerWrap.cObject.default
508 21.20.10.value = csc-frame csc-frame-frame2
509
510 66 = COA
511 66 {
512 10 = TEXT
513 10 {
514 value = <a id="c{field:uid}"></a>
515 insertData = 1
516 }
517 # Create div with class for space before content
518 20 = COA
519 20 {
520 10 = USER
521 10 {
522 userFunc = tx_cssstyledcontent_pi1->renderSpace
523 space = before
524 constant = {$content.spaceBefore}
525 stdWrap {
526 wrap = csc-space-before-|
527 }
528 }
529 stdWrap {
530 wrap = <div class="|"></div>
531 required = 1
532 }
533 }
534
535 30 = TEXT
536 30 {
537 value = |
538 }
539
540 # Create div with class for space after content
541 40 < .20
542 40 {
543 10 {
544 space = after
545 constant = {$content.spaceAfter}
546 stdWrap {
547 wrap = csc-space-after-|
548 }
549 }
550 }
551 }
552 }
553
554 innerWrap2 = | <p class="csc-linkToTop"><a href="#">{LLL:EXT:css_styled_content/pi1/locallang.xml:label.toTop}</a></p>
555 innerWrap2.insertData = 1
556 innerWrap2.fieldRequired = linkToTop
557
558 prepend = TEXT
559 prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>
560 prepend.if.isTrue.field = _LOCALIZED_UID
561
562 editPanel = 1
563 editPanel {
564 allow = move,new,edit,hide,delete
565 line = 5
566 label = %s
567 onlyCurrentPid = 1
568 previewBorder = 4
569 edit.displayRecord = 1
570 }
571
572 prefixComment = 1 | CONTENT ELEMENT, uid:{field:uid}/{field:CType}
573 }
574
575
576
577 # *****************
578 # CType: header
579 # *****************
580 # See Object path "lib.stdheader"
581 tt_content.header = COA
582 tt_content.header {
583 10 = < lib.stdheader
584
585 20 = TEXT
586 20 {
587 field = subheader
588 required = 1
589
590 dataWrap = <p class="csc-subheader csc-subheader-{field:layout}">|</p>
591 htmlSpecialChars = 1
592
593 if {
594 value = html5
595 equals.data = TSFE:config|config|doctype
596 negate = 1
597 }
598
599 editIcons = tt_content:subheader,layout
600 editIcons.beforeLastTag = 1
601 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.subheader
602
603 prefixComment = 2 | Subheader:
604 }
605 }
606
607
608
609 # *****************
610 # CType: text
611 # *****************
612 tt_content.text = COA
613 tt_content.text {
614 10 = < lib.stdheader
615
616 20 = TEXT
617 20 {
618 field = bodytext
619 required = 1
620
621 parseFunc = < lib.parseFunc_RTE
622
623 editIcons = tt_content:bodytext, rte_enabled
624 editIcons.beforeLastTag = 1
625 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext
626
627 prefixComment = 2 | Text:
628 }
629 }
630
631
632
633 # *****************
634 # CType: image
635 # *****************
636 # (also used for rendering 'textpic' type):
637 tt_content.image = COA
638 tt_content.image.10 = < lib.stdheader
639 tt_content.image.20 = USER
640 tt_content.image.20 {
641 userFunc = tx_cssstyledcontent_pi1->render_textpic
642
643 # Image source
644 imgList.field = image
645 imgList.override.field = image_fileUids
646 imgPath = uploads/pics/
647
648 # Single image rendering
649 imgObjNum = 1
650 1 {
651 file.import.current = 1
652 file.width.field = imagewidth
653 imageLinkWrap = 1
654 imageLinkWrap {
655 bodyTag = <body style="margin:0; background:#fff;">
656 wrap = <a href="javascript:close();"> | </a>
657 width = {$styles.content.imgtext.linkWrap.width}
658 height = {$styles.content.imgtext.linkWrap.height}
659 effects = {$styles.content.imgtext.linkWrap.effects}
660
661 JSwindow = 1
662 JSwindow.newWindow = {$styles.content.imgtext.linkWrap.newWindow}
663 JSwindow.if.isFalse = {$styles.content.imgtext.linkWrap.lightboxEnabled}
664
665 directImageLink = {$styles.content.imgtext.linkWrap.lightboxEnabled}
666
667 enable.field = image_zoom
668 enable.ifEmpty.typolink.parameter.field = image_link
669 enable.ifEmpty.typolink.parameter.listNum.splitChar = 10
670 enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
671 enable.ifEmpty.typolink.returnLast = url
672
673 typolink.parameter.field = image_link
674 typolink.parameter.listNum.splitChar = 10
675 typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
676
677 typolink.target < lib.parseTarget
678 typolink.target =
679 typolink.target.override = {$styles.content.links.target}
680
681 typolink.extTarget < lib.parseTarget
682 typolink.extTarget =
683 typolink.extTarget.override = {$styles.content.links.extTarget}
684
685 linkParams.ATagParams.dataWrap = class="{$styles.content.imgtext.linkWrap.lightboxCssClass}" rel="{$styles.content.imgtext.linkWrap.lightboxRelAttribute}"
686 }
687
688 altText = TEXT
689 altText {
690 field = altText
691 stripHtml = 1
692 split.token.char = 10
693 split.token.if.isTrue = {$styles.content.imgtext.imageTextSplit}
694 split.returnKey.data = register : IMAGE_NUM_CURRENT
695 }
696
697 params =
698 params {
699 override {
700 dataWrap = aria-describedby="csc-longdesc-{field:uid}-{register:IMAGE_NUM_CURRENT}"
701 if {
702 isTrue {
703 cObject = TEXT
704 cObject {
705 field = imagecaption
706 required = 1
707 parseFunc =< lib.parseFunc
708 split {
709 token {
710 char = 10
711 if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
712 }
713 returnKey.data = register : IMAGE_NUM_CURRENT
714 }
715 }
716 }
717 isFalse = 1
718 isFalse {
719 if {
720 isFalse {
721 cObject = TEXT
722 cObject {
723 field = longdescURL
724 split {
725 token {
726 char = 10
727 }
728 returnKey.data = register : IMAGE_NUM_CURRENT
729 }
730 }
731 }
732 }
733 }
734 isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
735 value = html5
736 equals.data = TSFE:config|config|doctype
737 }
738 }
739 }
740
741 titleText < .altText
742 titleText.field = titleText
743
744 longdescURL {
745 parameter {
746 field = longdescURL
747 split {
748 token {
749 char = 10
750 }
751 returnKey.data = register : IMAGE_NUM_CURRENT
752 }
753 }
754 }
755
756 emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling}
757 titleInLink = {$styles.content.imgtext.titleInLink}
758 titleInLinkAndImg = {$styles.content.imgtext.titleInLinkAndImg}
759 }
760
761 textPos.field = imageorient
762 maxW = {$styles.content.imgtext.maxW}
763 maxW.override.data = register:maxImageWidth
764 maxWInText = {$styles.content.imgtext.maxWInText}
765 maxWInText.override.data = register:maxImageWidthInText
766
767 equalH.field = imageheight
768
769 image_compression.field = image_compression
770 image_effects.field = image_effects
771
772 noRows.field = image_noRows
773
774 cols.field = imagecols
775 border.field = imageborder
776
777 caption {
778 1 = COA
779 1 {
780 1 = TEXT
781 1 {
782 field = imagecaption
783 required = 1
784 parseFunc =< lib.parseFunc
785 br = 1
786 trim = 1
787 split.token.char = 10
788 split.token.if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
789 split.returnKey.data = register : IMAGE_NUM_CURRENT
790 }
791 stdWrap {
792 required = 1
793 typolink {
794 parameter {
795 field = longdescURL
796 trim = 1
797 split {
798 token {
799 char = 10
800 }
801 returnKey.data = register : IMAGE_NUM_CURRENT
802 }
803 if {
804 value = html5
805 equals.data = TSFE:config|config|doctype
806 }
807 }
808 ATagParams {
809 dataWrap = id="csc-longdesc-{field:uid}-{register:IMAGE_NUM_CURRENT}"
810 }
811 target = {$styles.content.links.target}
812 extTarget = {$styles.content.links.extTarget}
813 }
814 }
815 }
816 }
817
818 # captionSplit is deprecated, use imageTextSplit instead
819 captionSplit = {$styles.content.imgtext.captionSplit}
820 captionAlign.field = imagecaption_position
821 # caption/alttext/title/longdescURL splitting
822 imageTextSplit = {$styles.content.imgtext.imageTextSplit}
823
824 borderThick = {$styles.content.imgtext.borderThick}
825 borderClass = {$styles.content.imgtext.borderClass}
826 colSpace = {$styles.content.imgtext.colSpace}
827 textMargin = {$styles.content.imgtext.textMargin}
828
829 borderSpace = {$styles.content.imgtext.borderSpace}
830 separateRows = {$styles.content.imgtext.separateRows}
831 addClasses =
832 addClassesCol =
833 addClassesCol.ifEmpty = csc-textpic-firstcol csc-textpic-lastcol
834 addClassesCol.override = csc-textpic-firstcol |*| |*| csc-textpic-lastcol
835 addClassesCol.override.if {
836 isGreaterThan.field = imagecols
837 value = 1
838 }
839
840 addClassesImage = csc-textpic-first |*| |*| csc-textpic-last
841
842 #
843 imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap" style="width:{register:totalwidth}px;"> | </div>
844 imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap"> | </div>
845
846 # if noRows is set, wrap around each column:
847 imageColumnStdWrap.dataWrap = <div class="csc-textpic-imagecolumn" style="width:{register:columnwidth}px;"> | </div>
848
849 layout = CASE
850 layout {
851 key.field = imageorient
852 # above-center
853 default = TEXT
854 default.value = <div class="csc-textpic csc-textpic-center csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
855 # above-right
856 1 = TEXT
857 1.value = <div class="csc-textpic csc-textpic-right csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
858 # above-left
859 2 = TEXT
860 2.value = <div class="csc-textpic csc-textpic-left csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
861 # below-center
862 8 = TEXT
863 8.value = <div class="csc-textpic csc-textpic-center csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
864 # below-right
865 9 = TEXT
866 9.value = <div class="csc-textpic csc-textpic-right csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
867 # below-left
868 10 = TEXT
869 10.value = <div class="csc-textpic csc-textpic-left csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
870 # intext-right
871 17 = TEXT
872 17.value = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div>
873 # intext-left
874 18 = TEXT
875 18.value = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>
876 # intext-right-nowrap
877 25 = TEXT
878 25.value = <div class="csc-textpic csc-textpic-intext-right-nowrap###CLASSES###">###IMAGES######TEXT###</div>
879 # intext-left-nowrap
880 26 = TEXT
881 26.value = <div class="csc-textpic csc-textpic-intext-left-nowrap###CLASSES###">###IMAGES######TEXT###</div>
882 }
883
884 rendering {
885 # Single image - No caption
886 singleNoCaption {
887 # Choose another rendering for special edge cases
888 fallbackRendering = COA
889 fallbackRendering {
890 # Single image - Caption
891 10 = TEXT
892 10 {
893 if {
894 isTrue.field = imagecaption
895 value = 1
896 equals.data = register:imageCount
897 }
898 value = singleCaption
899 }
900
901 # Multiple images and split caption
902 20 = TEXT
903 20 {
904 if {
905 value = 1
906 isGreaterThan.data = register:imageCount
907 isTrue.if.isFalse.data = register:renderGlobalCaption
908 isTrue.field = imagecaption
909 }
910 value = splitCaption
911 }
912
913 # Multiple images and one global caption
914 30 = TEXT
915 30 {
916 if {
917 value = 1
918 isGreaterThan.data = register:imageCount
919 isTrue.if.isTrue.data = register:renderGlobalCaption
920 isTrue.field = imagecaption
921 }
922 value = globalCaption
923 }
924
925 # Multiple images and no caption at all
926 40 = TEXT
927 40 {
928 if {
929 value = 1
930 isGreaterThan.data = register:imageCount
931 isFalse.field = imagecaption
932 }
933 value = noCaption
934 }
935 }
936 allStdWrap {
937 dataWrap = <div class="csc-textpic-imagewrap"> | </div>
938 dataWrap {
939 override = <div class="csc-textpic-imagewrap" data-csc-images="{register:imageCount}" data-csc-cols="{field:imagecols}"> | </div>
940 override {
941 if {
942 value = html5
943 equals.data = TSFE:config|config|doctype
944 }
945 }
946 }
947 innerWrap.cObject = CASE
948 innerWrap.cObject {
949 key.field = imageorient
950 # above-center
951 0 = TEXT
952 0.value = <div class="csc-textpic-center-outer"><div class="csc-textpic-center-inner"> | </div></div>
953 # below-center
954 8 < .0
955 }
956 }
957 singleStdWrap {
958 wrap = <div class="csc-textpic-image###CLASSES###"> | </div>
959 wrap {
960 override = <figure class="csc-textpic-image###CLASSES###"> | </figure>
961 override {
962 if {
963 value = html5
964 equals.data = TSFE:config|config|doctype
965 }
966 }
967 }
968 }
969 rowStdWrap.wrap = |
970 noRowsStdWrap.wrap = |
971 lastRowStdWrap.wrap = |
972 columnStdWrap.wrap = |
973 imgTagStdWrap.wrap = |
974 editIconsStdWrap.wrap = <div> | </div>
975 caption.wrap = |
976 }
977 noCaption {
978 # Multiple images and no caption at all
979 fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
980 allStdWrap {
981 dataWrap = <div class="csc-textpic-imagewrap"> | </div>
982 dataWrap {
983 override = <div class="csc-textpic-imagewrap" data-csc-images="{register:imageCount}" data-csc-cols="{field:imagecols}"> | </div>
984 override {
985 if {
986 value = html5
987 equals.data = TSFE:config|config|doctype
988 }
989 }
990 }
991 }
992 singleStdWrap {
993 wrap = <div class="csc-textpic-image###CLASSES###"> | </div>
994 wrap {
995 override = <figure class="csc-textpic-image###CLASSES###"> | </figure>
996 }
997 }
998 rowStdWrap.wrap = <div class="csc-textpic-imagerow"> | </div>
999 noRowsStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-none"> | </div>
1000 lastRowStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last"> | </div>
1001 columnStdWrap.wrap = <div class="csc-textpic-imagecolumn###CLASSES###"> | </div>
1002 }
1003 singleCaption {
1004 # Just one image with a caption
1005 fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
1006 singleStdWrap {
1007 wrap = <div class="csc-textpic-image###CLASSES###"><table>###CAPTION###<tbody><tr><td> | </td></tr></tbody></table></div>
1008 wrap {
1009 override = <figure class="csc-textpic-image###CLASSES###">|###CAPTION###</figure>
1010 override {
1011 if {
1012 value = html5
1013 equals.data = TSFE:config|config|doctype
1014 }
1015 }
1016 }
1017 }
1018 caption {
1019 required = 1
1020 wrap = <caption class="csc-textpic-caption###CLASSES###"> | </caption>
1021 wrap {
1022 override = <figcaption class="csc-textpic-caption###CLASSES###"> | </figcaption>
1023 override {
1024 if {
1025 value = html5
1026 equals.data = TSFE:config|config|doctype
1027 }
1028 }
1029 }
1030 }
1031 }
1032 splitCaption {
1033 fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
1034 singleStdWrap {
1035 wrap = <div class="csc-textpic-image###CLASSES###"><table>###CAPTION###<tbody><tr><td> | </td></tr></tbody></table></div>
1036 wrap {
1037 override = <figure class="csc-textpic-image###CLASSES###">|###CAPTION###</figure>
1038 override {
1039 if {
1040 value = html5
1041 equals.data = TSFE:config|config|doctype
1042 }
1043 }
1044 }
1045 }
1046 rowStdWrap.wrap = <div class="csc-textpic-imagerow"> | </div>
1047 noRowsStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-none"> | </div>
1048 lastRowStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last"> | </div>
1049 columnStdWrap.wrap = <div class="csc-textpic-imagecolumn###CLASSES###"> | </div>
1050 caption {
1051 required = 1
1052 wrap = <caption class="csc-textpic-caption###CLASSES###"> | </caption>
1053 wrap {
1054 override = <figcaption class="csc-textpic-caption###CLASSES###"> | </figcaption>
1055 override {
1056 if {
1057 value = html5
1058 equals.data = TSFE:config|config|doctype
1059 }
1060 }
1061 }
1062 }
1063 }
1064 globalCaption {
1065 # Just one image without a caption
1066 fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
1067 allStdWrap {
1068 dataWrap = <div class="csc-textpic-imagewrap"><table>###CAPTION###<tbody> | </tbody></table></div>
1069 dataWrap {
1070 override = <figure class="csc-textpic-imagewrap" data-csc-images="{register:imageCount}" data-csc-cols="{field:imagecols}"> | ###CAPTION###</figure>
1071 override {
1072 if {
1073 value = html5
1074 equals.data = TSFE:config|config|doctype
1075 }
1076 }
1077 }
1078 }
1079 singleStdWrap {
1080 wrap = <div class="csc-textpic-image###CLASSES###"> | </div>
1081 wrap {
1082 override = <div class="csc-textpic-image###CLASSES###"> | </div>
1083 }
1084 }
1085 rowStdWrap.wrap = <div class="csc-textpic-imagerow"> | </div>
1086 noRowsStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-none"> | </div>
1087 lastRowStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last"> | </div>
1088 columnStdWrap.wrap = <div class="csc-textpic-imagecolumn###CLASSES###"> | </div>
1089 caption {
1090 required = 1
1091 wrap = <caption class="csc-textpic-caption"> | </caption>
1092 wrap {
1093 override = <figcaption class="csc-textpic-caption###CLASSES###"> | </figcaption>
1094 override {
1095 if {
1096 value = html5
1097 equals.data = TSFE:config|config|doctype
1098 }
1099 }
1100 }
1101 }
1102 }
1103 }
1104 renderMethod = singleNoCaption
1105
1106 editIcons = tt_content : image [imageorient|imagewidth|imageheight], [imagecols|image_noRows|imageborder],[image_link|image_zoom],[image_compression|image_effects|image_frames],imagecaption[imagecaption_position]
1107 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.images
1108
1109 caption.editIcons = tt_content : imagecaption[imagecaption_position]
1110 caption.editIcons.beforeLastTag=1
1111 caption.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.caption
1112
1113 stdWrap.prefixComment = 2 | Image block:
1114 }
1115
1116 # *****************
1117 # CType: textpic
1118 # *****************
1119 tt_content.textpic = COA
1120 tt_content.textpic {
1121 10 = COA
1122 10.if.value = 25
1123 10.if.isLessThan.field = imageorient
1124 10.10 = < lib.stdheader
1125
1126 20 = < tt_content.image.20
1127 20 {
1128 text.10 = COA
1129 text.10 {
1130 if.value = 24
1131 if.isGreaterThan.field = imageorient
1132 10 = < lib.stdheader
1133 10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
1134 }
1135 text.20 = < tt_content.text.20
1136 text.wrap = <div class="csc-textpic-text"> | </div>
1137 }
1138 }
1139
1140
1141
1142 # *****************
1143 # CType: bullet
1144 # *****************
1145 tt_content.bullets = COA
1146 tt_content.bullets {
1147 10 = < lib.stdheader
1148
1149 20 = TEXT
1150 20 {
1151 field = bodytext
1152 trim = 1
1153 split{
1154 token.char = 10
1155 cObjNum = |*|1|| 2|*|
1156 1.current = 1
1157 1.parseFunc =< lib.parseFunc
1158 1.wrap = <li class="odd">|</li>
1159
1160 2.current = 1
1161 2.parseFunc =< lib.parseFunc
1162 2.wrap = <li class="even">|</li>
1163 }
1164 dataWrap = <ul class="csc-bulletlist csc-bulletlist-{field:layout}">|</ul>
1165 editIcons = tt_content: bodytext, [layout]
1166 editIcons.beforeLastTag = 1
1167 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.php:eIcon.bullets
1168
1169 prefixComment = 2 | Bullet list:
1170 }
1171 }
1172
1173
1174 # *****************
1175 # CType: uploads
1176 # *****************
1177 tt_content.uploads = COA
1178 tt_content.uploads {
1179 10 = < lib.stdheader
1180
1181 20 = FILES
1182 20 {
1183 # get from file references:
1184 references {
1185 table = tt_content
1186 fieldName = media
1187 }
1188
1189 collections.field = file_collections
1190
1191 # get from path (backwards compatibility, contains strings like "fileadmin/user_uploads/")
1192 folders.field = select_key
1193
1194 sorting.field = filelink_sorting
1195
1196 # render the files
1197 renderObj = COA
1198 renderObj {
1199 10 = IMAGE
1200 10 {
1201 file.import.data = file:current:originalUid // file:current:uid
1202 file.width = 150
1203 stdWrap {
1204 if.value = 1
1205 if.isGreaterThan.field = layout
1206
1207 typolink {
1208 parameter.data = file:current:originalUid // file:current:uid
1209 parameter.wrap = file:|
1210 fileTarget < lib.parseTarget
1211 fileTarget =
1212 fileTarget.override = {$styles.content.uploads.target}
1213 fileTarget.override.override.field = target
1214 removePrependedNumbers = 1
1215
1216 /*
1217 jumpurl = {$styles.content.uploads.jumpurl}
1218 jumpurl {
1219 secure = {$styles.content.uploads.jumpurl_secure}
1220 secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}
1221 }
1222 */
1223 }
1224 }
1225 }
1226
1227 # icon
1228 15 = IMAGE
1229 15 {
1230 file.import = typo3/gfx/fileicons/
1231 file.import.data = file:current:extension
1232 file.import.case = lower
1233 file.import.wrap = |.gif
1234 stdWrap {
1235 if {
1236 value = 0
1237 isGreaterThan.field = layout
1238
1239 # only show the icon if we don't have a thumbnail:
1240 isFalse.cObject = IMG_RESOURCE
1241 isFalse.cObject.file < tt_content.uploads.20.renderObj.10.file
1242 isFalse.cObject.stdWrap.if < tt_content.uploads.20.renderObj.10.stdWrap.if
1243 }
1244
1245 typolink < tt_content.uploads.20.renderObj.10.stdWrap.typolink
1246 }
1247 }
1248
1249 # filename
1250 20 = TEXT
1251 20 {
1252 data = file:current:name
1253 htmlSpecialChars = 1
1254 required = 1
1255
1256 replacement {
1257 # equivalent to former useSpacesInLinkText = 0; remove using > to disable it
1258 10 {
1259 search = _
1260 replace.char = 32
1261 }
1262
1263 # equivalent to former stripFileExtensionFromLinkText = 0; move "_20" to "20" to enable it. Disabled by default.
1264 _20 {
1265 search = /(.*)(\..*)/
1266 replace = \1
1267 useRegExp = 1
1268 }
1269 }
1270
1271 typolink < tt_content.uploads.20.renderObj.10.stdWrap.typolink
1272
1273 wrap = <span class="csc-uploads-fileName">|</span>
1274 }
1275
1276 # description
1277 30 = TEXT
1278 30 {
1279 data = file:current:description
1280 htmlSpecialChars = 1
1281 wrap = <span class="csc-uploads-description">|</span>
1282
1283 required = 1
1284 }
1285
1286 # file size
1287 40 = TEXT
1288 40 {
1289 if.isTrue.field = filelink_size
1290 data = file:current:size
1291 wrap = <span class="csc-uploads-fileSize">|</span>
1292 bytes = 1
1293 bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
1294 }
1295
1296 # wrap of each listed file with odd/even class
1297 wrap.cObject = COA
1298 wrap.cObject {
1299 10 = LOAD_REGISTER
1300 10 {
1301 oddEvenClass = li-odd li-first |*| li-even || li-odd
1302 elementClass = csc-uploads-element csc-uploads-element-{file:current:extension}
1303 elementClass.insertData = 1
1304 }
1305
1306 20 = TEXT
1307 20 {
1308 value = <li class="{register:oddEvenClass} {register:elementClass}">|</li>
1309 insertData = 1
1310 }
1311 30 = RESTORE_REGISTER
1312 }
1313 }
1314
1315 # wrap around whole content element with <ul> and editIcons
1316 stdWrap {
1317 editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size
1318 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.filelist
1319 prefixComment = 2 | File list:
1320 dataWrap = <ul class="csc-uploads csc-uploads-{field:layout}">|</ul>
1321 }
1322 }
1323 }
1324
1325
1326
1327 # *****************
1328 # CType: table
1329 # *****************
1330 # Rendered by a PHP function specifically written to handle CE tables. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
1331 tt_content.table = COA
1332 tt_content.table {
1333 10 = < lib.stdheader
1334
1335 20 = USER
1336 20.userFunc = tx_cssstyledcontent_pi1->render_table
1337 20.field = bodytext
1338
1339 20.color {
1340 default =
1341 1 = {$styles.content.table.backgroundColor.1}
1342 2 = {$styles.content.table.backgroundColor.2}
1343 200 =
1344 240 = {$styles.content.table.backgroundColor.240}
1345 241 = {$styles.content.table.backgroundColor.241}
1346 242 = {$styles.content.table.backgroundColor.242}
1347 243 = {$styles.content.table.backgroundColor.243}
1348 244 = {$styles.content.table.backgroundColor.244}
1349 }
1350 20.tableParams_0 {
1351 border =
1352 cellpadding =
1353 cellspacing =
1354 }
1355 20.tableParams_1 {
1356 border =
1357 cellpadding =
1358 cellspacing =
1359 }
1360 20.tableParams_2 {
1361 border =
1362 cellpadding =
1363 cellspacing =
1364 }
1365 20.tableParams_3 {
1366 border =
1367 cellpadding =
1368 cellspacing =
1369 }
1370 20.innerStdWrap.wrap = |
1371 20.innerStdWrap.parseFunc = < lib.parseFunc
1372
1373 20.stdWrap {
1374 editIcons = tt_content: cols, bodytext, [layout], [table_bgColor|table_border|table_cellspacing|table_cellpadding]
1375 editIcons.beforeLastTag = 1
1376 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.table
1377
1378 prefixComment = 2 | Table:
1379 }
1380 }
1381
1382 # ******************
1383 # CType: multimedia
1384 # ******************
1385 tt_content.multimedia = COA
1386 tt_content.multimedia {
1387 10 = < lib.stdheader
1388
1389 20 = MULTIMEDIA
1390 20.file.field = multimedia
1391 20.file.wrap = uploads/media/
1392 20.file.listNum = 0
1393 20.params.field = bodytext
1394
1395 20.stdWrap {
1396 editIcons = tt_content: multimedia, bodytext
1397 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1398
1399 prefixComment = 2 | Multimedia element:
1400 }
1401 }
1402
1403 # *****************
1404 # CType: swfobject
1405 # *****************
1406 tt_content.swfobject = COA
1407 tt_content.swfobject {
1408 10 = < lib.stdheader
1409
1410 20 = SWFOBJECT
1411 20 {
1412 file =
1413 width =
1414 height =
1415
1416 flexParams.field = pi_flexform
1417
1418 alternativeContent.field = bodytext
1419
1420 layout = ###SWFOBJECT###
1421
1422 video {
1423 player = {$styles.content.media.videoPlayer}
1424
1425 defaultWidth = {$styles.content.media.defaultVideoWidth}
1426 defaultHeight = {$styles.content.media.defaultVideoHeight}
1427
1428 default {
1429 params.quality = high
1430 params.menu = false
1431 params.allowScriptAccess = sameDomain
1432 params.allowFullScreen = true
1433 }
1434 mapping {
1435
1436 }
1437 }
1438
1439 audio {
1440 player = {$styles.content.media.audioPlayer}
1441
1442 defaultWidth = {$styles.content.media.defaultAudioWidth}
1443 defaultHeight = {$styles.content.media.defaultAudioHeight}
1444
1445 default {
1446 params.quality = high
1447 params.allowScriptAccess = sameDomain
1448 params.menu = false
1449 }
1450 mapping {
1451 flashvars.file = soundFile
1452 }
1453 }
1454
1455 }
1456 20.stdWrap {
1457 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1458 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1459
1460 prefixComment = 2 | SWFobject element:
1461 }
1462 }
1463
1464 # *****************
1465 # CType: qtobject
1466 # *****************
1467 tt_content.qtobject = COA
1468 tt_content.qtobject {
1469 10 = < lib.stdheader
1470
1471 20 = QTOBJECT
1472 20 {
1473 file =
1474 width =
1475 height =
1476
1477 flexParams.field = pi_flexform
1478
1479 alternativeContent.field = bodytext
1480
1481 layout = ###QTOBJECT###
1482
1483 video {
1484 player = {$styles.content.media.videoPlayer}
1485
1486 defaultWidth = {$styles.content.media.defaultVideoWidth}
1487 defaultHeight = {$styles.content.media.defaultVideoHeight}
1488
1489 default {
1490 params.quality = high
1491 params.menu = false
1492 params.allowScriptAccess = sameDomain
1493 params.allowFullScreen = true
1494 }
1495 mapping {
1496
1497 }
1498 }
1499
1500 audio {
1501 player = {$styles.content.media.audioPlayer}
1502
1503 defaultWidth = {$styles.content.media.defaultAudioWidth}
1504 defaultHeight = {$styles.content.media.defaultAudioHeight}
1505
1506 default {
1507 params.quality = high
1508 params.allowScriptAccess = sameDomain
1509 params.menu = false
1510 }
1511 mapping {
1512 flashvars.file = soundFile
1513 }
1514 }
1515 }
1516 20.stdWrap {
1517 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1518 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1519
1520 prefixComment = 2 | QTobject element:
1521 }
1522 }
1523
1524 # *****************
1525 # CType: media
1526 # *****************
1527 tt_content.media = COA
1528 tt_content.media {
1529 10 = < lib.stdheader
1530
1531 20 = MEDIA
1532 20 {
1533
1534 flexParams.field = pi_flexform
1535 alternativeContent < tt_content.text.20
1536 alternativeContent.field = bodytext
1537
1538 type = video
1539 renderType = auto
1540 allowEmptyUrl = 0
1541 forcePlayer = 1
1542
1543 fileExtHandler {
1544 default = MEDIA
1545 avi = MEDIA
1546 asf = MEDIA
1547 class = MEDIA
1548 wmv = MEDIA
1549 mp3 = SWF
1550 mp4 = SWF
1551 m4v = SWF
1552 swa = SWF
1553 flv = SWF
1554 swf = SWF
1555 mov = QT
1556 m4v = QT
1557 m4a = QT
1558 }
1559
1560 mimeConf.swfobject < tt_content.swfobject.20
1561 mimeConf.qtobject < tt_content.qtobject.20
1562 mimeConf.flowplayer < tt_content.swfobject.20
1563 mimeConf.flowplayer.audio.player = {$styles.content.media.flowPlayer}
1564 mimeConf.flowplayer.video.player = {$styles.content.media.flowPlayer}
1565
1566 }
1567 20.stdWrap {
1568 editIcons = tt_content: pi_flexform, bodytext
1569 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1570
1571 prefixComment = 2 | Media element:
1572 }
1573 }
1574
1575 # ******************
1576 # CType: mailform
1577 # ******************
1578 tt_content.mailform = COA
1579 tt_content.mailform.10 = < lib.stdheader
1580 tt_content.mailform.20 = FORM
1581 tt_content.mailform.20 {
1582 accessibility = 1
1583 noWrapAttr=1
1584 formName = mailform
1585 dontMd5FieldNames = 1
1586 layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>
1587 labelWrap.wrap = |
1588 commentWrap.wrap = |
1589 radioWrap.wrap = |<br />
1590 radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>
1591 REQ = 1
1592 REQ.labelWrap.wrap = |
1593 COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>
1594 RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>
1595 LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>
1596 target < lib.parseTarget
1597 target =
1598 target.override = {$styles.content.mailform.target}
1599 goodMess = {$styles.content.mailform.goodMess}
1600 badMess = {$styles.content.mailform.badMess}
1601 redirect.field = pages
1602 redirect.listNum = 0
1603 recipient.field = subheader
1604 data.field = bodytext
1605 locationData = 1
1606 hiddenFields.stdWrap.wrap = <div style="display:none;">|</div>
1607
1608 params.radio = class="csc-mailform-radio"
1609 params.check = class="csc-mailform-check"
1610 params.submit = class="csc-mailform-submit"
1611
1612 stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>
1613 stdWrap {
1614 editIcons = tt_content: bodytext, pages, subheader
1615 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.form
1616
1617 prefixComment = 2 | Mail form inserted:
1618 }
1619 }
1620
1621
1622 # ******************
1623 # CType: search
1624 # ******************
1625 tt_content.search = COA
1626 tt_content.search.10 = < lib.stdheader
1627 # Result:
1628 tt_content.search.20 = SEARCHRESULT
1629 tt_content.search.20 {
1630 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
1631 languageField.tt_content = sys_language_uid
1632 renderObj = COA
1633 renderObj {
1634
1635 10 = TEXT
1636 10.field = pages_title
1637 10.htmlSpecialChars = 1
1638 10.typolink {
1639 parameter.field = uid
1640 target < lib.parseTarget
1641 target =
1642 target.override = {$styles.content.searchresult.resultTarget}
1643 additionalParams.data = register:SWORD_PARAMS
1644 additionalParams.required = 1
1645 additionalParams.wrap = &no_cache=1
1646 }
1647 10.htmlSpecialChars = 1
1648 10.wrap = <h3 class="csc-searchResultHeader">|</h3>
1649
1650 20 = COA
1651 20 {
1652 10 = TEXT
1653 10.field = tt_content_bodytext
1654 10.stripHtml = 1
1655 10.htmlSpecialChars = 1
1656 }
1657 20.stdWrap.crop = 200 | ...
1658 20.stdWrap.wrap = <p class="csc-searchResult">|</p>
1659 }
1660
1661 layout = COA
1662 layout {
1663 wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###
1664
1665 10 = TEXT
1666 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.resultRange
1667 10.wrap = <td class="csc-searchResultRange"><p>|</p></td>
1668
1669 20 = TEXT
1670 20.value = ###PREV###&nbsp;&nbsp;&nbsp;###NEXT###
1671 20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>
1672 }
1673
1674 noResultObj = COA
1675 noResultObj {
1676 10 = TEXT
1677 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.emptySearch
1678 10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>
1679 }
1680
1681 next = TEXT
1682 next.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultNext
1683
1684 prev = TEXT
1685 prev.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultPrev
1686
1687 target < lib.parseTarget
1688 target =
1689 target.override = {$styles.content.searchresult.target}
1690
1691 range = 20
1692
1693 stdWrap.prefixComment = 2 | Search result:
1694 }
1695
1696 # Form:
1697 tt_content.search.30 < tt_content.mailform.20
1698 tt_content.search.30 {
1699 goodMess = {$styles.content.searchform.goodMess}
1700 redirect >
1701 recipient >
1702 data >
1703 dataArray {
1704 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchWord
1705 10.type = sword=input
1706 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchIn
1707 20.type = scols=select
1708 20.valueArray {
1709 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.headersKeywords
1710 10.value = pages.title-subtitle-keywords-description:tt_content.header
1711 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.pageContent
1712 20.value = tt_content.header-bodytext-imagecaption
1713 }
1714 30.type = stype=hidden
1715 30.value = L0
1716 40.type = submit=submit
1717 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchButton
1718 }
1719 type.field = pages
1720 type.listNum = 0
1721 locationData = HTTP_POST_VARS
1722 no_cache = 1
1723
1724 stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform"> | </table>
1725 stdWrap {
1726 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.search
1727
1728 prefixComment = 2 | Search form inserted:
1729 }
1730 }
1731
1732
1733 # ****************
1734 # CType: menu
1735 # ****************
1736 tt_content.menu = COA
1737 tt_content.menu {
1738 10 = < lib.stdheader
1739
1740 20 = CASE
1741 20 {
1742 key.field = menu_type
1743
1744 # "Menu of these pages"
1745 default = HMENU
1746 default {
1747 special = list
1748 special.value.field = pages
1749 stdWrap {
1750 prepend = COA
1751 prepend {
1752 stdWrap {
1753 if.isTrue.field = accessibility_bypass
1754 }
1755 10 = LOAD_REGISTER
1756 10 {
1757 accessibility_bypass_text = TEXT
1758 accessibility_bypass_text {
1759 field = accessibility_bypass_text
1760 }
1761 }
1762 20 = CONTENT
1763 20 {
1764 table = tt_content
1765 select {
1766 pidInList = this
1767 orderBy = sorting
1768 andWhere {
1769 dataWrap = sorting>{field:sorting}
1770 }
1771 languageField = sys_language_uid
1772 max = 1
1773 }
1774 renderObj = TEXT
1775 renderObj {
1776 required = 1
1777 data = LLL:EXT:css_styled_content/pi1/locallang.xml:menu.bypassNavigation
1778 override.data = register:accessibility_bypass_text
1779 trim = 1
1780 htmlSpecialChars = 1
1781 typolink {
1782 parameter {
1783 field = pid
1784 }
1785 section {
1786 field = uid
1787 }
1788 }
1789 wrap = <li class="csc-nav-bypass">|</li>
1790 }
1791 }
1792 30 = RESTORE_REGISTER
1793 }
1794 outerWrap = <ul class="csc-menu csc-menu-def">|</ul>
1795 required = 1
1796 }
1797 1 = TMENU
1798 1 {
1799 target < lib.parseTarget
1800 target =
1801 target.override = {$PAGE_TARGET}
1802 NO {
1803 stdWrap.htmlSpecialChars = 1
1804 wrapItemAndSub = <li>|</li>
1805 ATagTitle.field = description // title
1806 }
1807 }
1808 }
1809
1810 # "Menu of subpages to these pages"
1811 1 < .default
1812 1 {
1813 special = directory
1814 stdWrap {
1815 outerWrap = <ul class="csc-menu csc-menu-1">|</ul>
1816 }
1817 }
1818
1819 # "Sitemap - liststyle"
1820 2 = HMENU
1821 2 {
1822 stdWrap < tt_content.menu.20.default.stdWrap
1823 stdWrap {
1824 outerWrap = <div class="csc-sitemap">|</div>
1825 }
1826 1 = TMENU
1827 1 {
1828 target < lib.parseTarget
1829 target =
1830 target.override = {$PAGE_TARGET}
1831 expAll = 1
1832 wrap = <ul>|</ul>
1833 NO {
1834 stdWrap.htmlSpecialChars = 1
1835 wrapItemAndSub = <li>|</li>
1836 ATagTitle.field = description // title
1837 }
1838 }
1839 2 < .1
1840 3 < .1
1841 4 < .1
1842 5 < .1
1843 6 < .1
1844 7 < .1
1845 }
1846
1847 # "Section index (pagecontent w/Index checked - liststyle)"
1848 3 < .default
1849 3 {
1850 special {
1851 value {
1852 override {
1853 data = page:uid
1854 if {
1855 isFalse.field = pages
1856 }
1857 }
1858 }
1859 }
1860 stdWrap {
1861 outerWrap = <ul class="csc-menu csc-menu-3">|</ul>
1862 }
1863 1 = TMENU
1864 1 {
1865 sectionIndex = 1
1866 sectionIndex.type = header
1867 NO.wrapItemAndSub = <li class="csc-section">|</li>
1868 }
1869 }
1870
1871 # "Menu of subpages to these pages (with abstract)"
1872 4 < .1
1873 4 {
1874 stdWrap {
1875 prepend.renderObj.wrap = <dt class="csc-nav-bypass">|</dt><dd>&nbsp;</dd>
1876 outerWrap = <dl class="csc-menu csc-menu-4">|</dl>
1877 }
1878 1.NO {
1879 wrapItemAndSub >
1880 linkWrap = <dt>|</dt>
1881 after {
1882 cObject = TEXT
1883 cObject {
1884 data = field : abstract // field : description // field : subtitle
1885 htmlSpecialChars = 1
1886 required = 1
1887 }
1888 ifBlank = &nbsp;
1889 wrap = <dd>|</dd>
1890 }
1891 ATagTitle.field = description // title
1892 }
1893 }
1894
1895 # "Recently updated pages"
1896 5 < .default
1897 5 {
1898 stdWrap {
1899 outerWrap = <ul class="csc-menu csc-menu-5">|</ul>
1900 }
1901 special = updated
1902 special {
1903 maxAge = 3600*24*7
1904 excludeNoSearchPages = 1
1905 }
1906 }
1907
1908 # "Related pages (based on keywords)"
1909 6 < .default
1910 6 {
1911 stdWrap {
1912 outerWrap = <ul class="csc-menu csc-menu-6">|</ul>
1913 }
1914 special = keywords
1915 special {
1916 excludeNoSearchPages = 1
1917 }
1918 }
1919
1920 # "Menu of subpages to these pages + sections - liststyle"
1921 7 < .1
1922 7 {
1923 stdWrap {
1924 outerWrap = <ul class="csc-menu csc-menu-7">|</ul>
1925 }
1926 1.expAll = 1
1927 2 < .1
1928 2 {
1929 sectionIndex = 1
1930 sectionIndex.type = header
1931 wrap = <ul>|</ul>
1932 NO.wrapItemAndSub = <li class="csc-section">|</li>
1933 }
1934 }
1935 # "Sitemaps of selected pages - liststyle"
1936 8 < .2
1937 8 {
1938 special = directory
1939 special.value.field = pages
1940 }
1941 }
1942
1943 20.stdWrap {
1944 wrap {
1945 cObject = COA
1946 cObject {
1947 10 = TEXT
1948 10 {
1949 field = accessibility_title
1950 htmlSpecialChars = 1
1951 dataWrap = <map id="map{field:uid}" title="|">
1952 dataWrap {
1953 override = <map name="map{field:uid}" title="|">
1954 override {
1955 if {
1956 isFalse.data = TSFE:xhtmlDoctype
1957 }
1958 }
1959 }
1960 }
1961
1962 20 = TEXT
1963 20 {
1964 value = |</map>
1965 }
1966 }
1967 if {
1968 isTrue {
1969 field = accessibility_title
1970 }
1971 }
1972 }
1973 editIcons = tt_content: menu_type, pages
1974 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.menuSitemap
1975
1976 prefixComment = 2 | Menu/Sitemap element:
1977 }
1978 }
1979
1980
1981
1982 # ****************
1983 # CType: shortcut
1984 # ****************
1985 # Should be a complete copy from the old static template "content (default)"
1986 tt_content.shortcut = COA
1987 tt_content.shortcut {
1988 20 = CASE
1989 20.key.field = layout
1990 20.0= RECORDS
1991 20.0 {
1992 source.field = records
1993 tables = {$content.shortcut.tables}
1994 }
1995 20.1= RECORDS
1996 20.1 {
1997 source.field = records
1998 tables = {$content.shortcut.tables}
1999 }
2000
2001 20.stdWrap {
2002 editIcons = tt_content: records
2003 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
2004
2005 prefixComment = 2 | Inclusion of other records (by reference):
2006 }
2007 }
2008
2009
2010 # ****************
2011 # CType: list
2012 # ****************
2013 # Should be a complete copy from the old static template "content (default)" (except "lib.stdheader")
2014 tt_content.list = COA
2015 tt_content.list {
2016 10 = < lib.stdheader
2017
2018 20 = CASE
2019 20.key.field = list_type
2020
2021 20.stdWrap {
2022 editIcons = tt_content: list_type, layout, select_key, pages [recursive]
2023 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.plugin
2024
2025 prefixComment = 2 | Plugin inserted:
2026 }
2027 }
2028
2029
2030 # ****************
2031 # CType: div
2032 # ****************
2033 tt_content.div = TEXT
2034 tt_content.div {
2035 value = <hr>
2036 override = <hr />
2037 override.if {
2038 isTrue.data = TSFE:xhtmlDoctype
2039 }
2040 wrap = <div class="divider">|</div>
2041 prefixComment = 2 | Div element
2042 }
2043
2044
2045 # ****************
2046 # CType: html
2047 # ****************
2048 # This truely IS a content object, launched from inside the PHP class of course.
2049 # Should be a complete copy from the old static template "content (default)"
2050 tt_content.html = TEXT
2051 tt_content.html {
2052 field = bodytext
2053
2054 editIcons = tt_content: pages
2055 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.html
2056
2057 prefixComment = 2 | Raw HTML content:
2058 }
2059
2060
2061 # ****************
2062 # Default error msg:
2063 # ****************
2064 tt_content.default = TEXT
2065 tt_content.default {
2066 field = CType
2067 wrap = <p style="background-color: yellow;"><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>
2068
2069 prefixComment = 2 | Unknown element message:
2070 }
2071
2072 # *********************************************************************
2073 # ACCESSIBILTY MODE
2074 # *********************************************************************
2075
2076
2077
2078
2079
2080
2081
2082 plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (
2083 /* Headers */
2084 .csc-header-alignment-center { text-align: center; }
2085 .csc-header-alignment-right { text-align: right; }
2086 .csc-header-alignment-left { text-align: left; }
2087
2088 /* Clear floats after csc-textpic and after csc-textpic-imagerow */
2089 div.csc-textpic, div.csc-textpic div.csc-textpic-imagerow, ul.csc-uploads li { overflow: hidden; }
2090
2091 /* Set padding for tables */
2092 div.csc-textpic .csc-textpic-imagewrap table { border-collapse: collapse; border-spacing: 0; }
2093 div.csc-textpic .csc-textpic-imagewrap table tr td { padding: 0; vertical-align: top; }
2094
2095 /* Settings for figure and figcaption (HTML5) */
2096 div.csc-textpic .csc-textpic-imagewrap figure, div.csc-textpic figure.csc-textpic-imagewrap { margin: 0; display: table; }
2097
2098 /* Captions */
2099 figcaption.csc-textpic-caption { display: table-caption; }
2100 .csc-textpic-caption { text-align: left; caption-side: bottom; }
2101 div.csc-textpic-caption-c .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-c { text-align: center; }
2102 div.csc-textpic-caption-r .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-r { text-align: right; }
2103 div.csc-textpic-caption-l .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-l { text-align: left; }
2104
2105 /* Float the columns */
2106 div.csc-textpic div.csc-textpic-imagecolumn { float: left; }
2107
2108 /* Border just around the image */
2109 {$styles.content.imgtext.borderSelector} {
2110 border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};
2111 padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;
2112 }
2113
2114 div.csc-textpic .csc-textpic-imagewrap img { border: none; display: block; }
2115
2116 /* Space below each image (also in-between rows) */
2117 div.csc-textpic .csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
2118 div.csc-textpic .csc-textpic-imagewrap .csc-textpic-imagerow-last .csc-textpic-image { margin-bottom: 0; }
2119
2120 /* colSpace around image columns, except for last column */
2121 div.csc-textpic-imagecolumn, td.csc-textpic-imagecolumn .csc-textpic-image { margin-right: {$styles.content.imgtext.colSpace}px; }
2122 div.csc-textpic-imagecolumn.csc-textpic-lastcol, td.csc-textpic-imagecolumn.csc-textpic-lastcol .csc-textpic-image { margin-right: 0; }
2123
2124 /* Add margin from image-block to text (in case of "Text w/ images") */
2125 div.csc-textpic-intext-left .csc-textpic-imagewrap,
2126 div.csc-textpic-intext-left-nowrap .csc-textpic-imagewrap {
2127 margin-right: {$styles.content.imgtext.textMargin}px;
2128 }
2129 div.csc-textpic-intext-right .csc-textpic-imagewrap,
2130 div.csc-textpic-intext-right-nowrap .csc-textpic-imagewrap {
2131 margin-left: {$styles.content.imgtext.textMargin}px;
2132 }
2133
2134 /* Positioning of images: */
2135
2136 /* Center (above or below) */
2137 div.csc-textpic-center .csc-textpic-imagewrap, div.csc-textpic-center figure.csc-textpic-imagewrap { overflow: hidden; }
2138 div.csc-textpic-center .csc-textpic-center-outer { position: relative; float: right; right: 50%; }
2139 div.csc-textpic-center .csc-textpic-center-inner { position: relative; float: right; right: -50%; }
2140
2141 /* Right (above or below) */
2142 div.csc-textpic-right .csc-textpic-imagewrap { float: right; }
2143 div.csc-textpic-right div.csc-textpic-text { clear: right; }
2144
2145 /* Left (above or below) */
2146 div.csc-textpic-left .csc-textpic-imagewrap { float: left; }
2147 div.csc-textpic-left div.csc-textpic-text { clear: left; }
2148
2149 /* Left (in text) */
2150 div.csc-textpic-intext-left .csc-textpic-imagewrap { float: left; }
2151
2152 /* Right (in text) */
2153 div.csc-textpic-intext-right .csc-textpic-imagewrap { float: right; }
2154
2155 /* Right (in text, no wrap around) */
2156 div.csc-textpic-intext-right-nowrap .csc-textpic-imagewrap { float: right; }
2157
2158 /* Left (in text, no wrap around) */
2159 div.csc-textpic-intext-left-nowrap .csc-textpic-imagewrap { float: left; }
2160
2161 div.csc-textpic div.csc-textpic-imagerow-last, div.csc-textpic div.csc-textpic-imagerow-none div.csc-textpic-last { margin-bottom: 0; }
2162
2163 /* Browser fixes: */
2164
2165 /* Fix for unordered and ordered list with image "In text, left" */
2166 .csc-textpic-intext-left ol, .csc-textpic-intext-left ul { padding-left: 40px; overflow: auto; }
2167
2168 /* File Links */
2169 ul.csc-uploads { padding: 0; }
2170 ul.csc-uploads li { list-style: none outside none; margin: 1em 0; }
2171 ul.csc-uploads img { float: left; padding-right: 1em; vertical-align: top; }
2172 ul.csc-uploads span { display: block; }
2173 ul.csc-uploads span.csc-uploads-fileName { text-decoration: underline; }
2174
2175 /* Table background colors: */
2176
2177 table.contenttable-color-1 { background-color: {$styles.content.table.backgroundColor.1}; }
2178 table.contenttable-color-2 { background-color: {$styles.content.table.backgroundColor.2}; }
2179 table.contenttable-color-240 { background-color: {$styles.content.table.backgroundColor.240}; }
2180 table.contenttable-color-241 { background-color: {$styles.content.table.backgroundColor.241}; }
2181 table.contenttable-color-242 { background-color: {$styles.content.table.backgroundColor.242}; }
2182 table.contenttable-color-243 { background-color: {$styles.content.table.backgroundColor.243}; }
2183 table.contenttable-color-244 { background-color: {$styles.content.table.backgroundColor.244}; }
2184 )
2185