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