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