[FEATURE] Add categories-based menu
[Packages/TYPO3.CMS.git] / typo3 / sysext / css_styled_content / static / v6.0 / 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 classStdWrap {
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 classStdWrap {
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 imgList.override.field = image_fileUids
670 imgPath = uploads/pics/
671
672 # Single image rendering
673 imgObjNum = 1
674 1 {
675 file.import.current = 1
676 file.width.field = imagewidth
677 imageLinkWrap = 1
678 imageLinkWrap {
679 bodyTag = <body style="margin:0; background:#fff;">
680 wrap = <a href="javascript:close();"> | </a>
681 width = {$styles.content.imgtext.linkWrap.width}
682 height = {$styles.content.imgtext.linkWrap.height}
683 effects = {$styles.content.imgtext.linkWrap.effects}
684
685 JSwindow = 1
686 JSwindow.newWindow = {$styles.content.imgtext.linkWrap.newWindow}
687 JSwindow.if.isFalse = {$styles.content.imgtext.linkWrap.lightboxEnabled}
688
689 directImageLink = {$styles.content.imgtext.linkWrap.lightboxEnabled}
690
691 enable.field = image_zoom
692 enable.ifEmpty.typolink.parameter.field = image_link
693 enable.ifEmpty.typolink.parameter.listNum.splitChar = 10
694 enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
695 enable.ifEmpty.typolink.returnLast = url
696
697 typolink.parameter.field = image_link
698 typolink.parameter.listNum.splitChar = 10
699 typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
700
701 typolink.target < lib.parseTarget
702 typolink.target =
703 typolink.target.override = {$styles.content.links.target}
704
705 typolink.extTarget < lib.parseTarget
706 typolink.extTarget =
707 typolink.extTarget.override = {$styles.content.links.extTarget}
708
709 linkParams.ATagParams.dataWrap = class="{$styles.content.imgtext.linkWrap.lightboxCssClass}" rel="{$styles.content.imgtext.linkWrap.lightboxRelAttribute}"
710 }
711
712 altText = TEXT
713 altText {
714 field = altText
715 stripHtml = 1
716 split.token.char = 10
717 split.token.if.isTrue = {$styles.content.imgtext.imageTextSplit}
718 split.returnKey.data = register : IMAGE_NUM_CURRENT
719 }
720
721 params =
722 params {
723 override {
724 dataWrap = aria-describedby="csc-longdesc-{field:uid}-{register:IMAGE_NUM_CURRENT}"
725 if {
726 isTrue {
727 cObject = TEXT
728 cObject {
729 field = imagecaption
730 required = 1
731 parseFunc =< lib.parseFunc
732 split {
733 token {
734 char = 10
735 if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
736 }
737 returnKey.data = register : IMAGE_NUM_CURRENT
738 }
739 }
740 }
741 isFalse = 1
742 isFalse {
743 if {
744 isFalse {
745 cObject = TEXT
746 cObject {
747 field = longdescURL
748 split {
749 token {
750 char = 10
751 }
752 returnKey.data = register : IMAGE_NUM_CURRENT
753 }
754 }
755 }
756 }
757 }
758 isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
759 value = html5
760 equals.data = TSFE:config|config|doctype
761 }
762 }
763 }
764
765 titleText < .altText
766 titleText.field = titleText
767
768 longdescURL {
769 parameter {
770 field = longdescURL
771 split {
772 token {
773 char = 10
774 }
775 returnKey.data = register : IMAGE_NUM_CURRENT
776 }
777 }
778 }
779
780 emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling}
781 titleInLink = {$styles.content.imgtext.titleInLink}
782 titleInLinkAndImg = {$styles.content.imgtext.titleInLinkAndImg}
783 }
784
785 textPos.field = imageorient
786 maxW = {$styles.content.imgtext.maxW}
787 maxW.override.data = register:maxImageWidth
788 maxWInText = {$styles.content.imgtext.maxWInText}
789 maxWInText.override.data = register:maxImageWidthInText
790
791 equalH.field = imageheight
792
793 image_compression.field = image_compression
794 image_effects.field = image_effects
795
796 noRows.field = image_noRows
797
798 cols.field = imagecols
799 border.field = imageborder
800
801 caption {
802 1 = COA
803 1 {
804 1 = TEXT
805 1 {
806 field = imagecaption
807 required = 1
808 parseFunc =< lib.parseFunc
809 br = 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 # CType: uploads
1181 # *****************
1182 tt_content.uploads = COA
1183 tt_content.uploads {
1184 10 = < lib.stdheader
1185
1186 20 = FILES
1187 20 {
1188 # get from file references:
1189 references {
1190 table = tt_content
1191 fieldName = media
1192 }
1193
1194 collections.field = file_collections
1195
1196 # get from path (backwards compatibility, contains strings like "fileadmin/user_uploads/")
1197 folders.field = select_key
1198
1199 # render the files
1200 renderObj = COA
1201 renderObj {
1202 10 = IMAGE
1203 10 {
1204 file.import.data = file:current:originalUid // file:current:uid
1205 file.width = 150
1206 stdWrap {
1207 if.value = 1
1208 if.isGreaterThan.field = layout
1209
1210 typolink {
1211 parameter.data = file:current:originalUid // file:current:uid
1212 parameter.wrap = file:|
1213 target < lib.parseTarget
1214 target =
1215 target.override = {$styles.content.uploads.target}
1216 removePrependedNumbers = 1
1217
1218 /*
1219 jumpurl = {$styles.content.uploads.jumpurl}
1220 jumpurl {
1221 secure = {$styles.content.uploads.jumpurl_secure}
1222 secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}
1223 }
1224 */
1225 }
1226 }
1227 }
1228
1229 # icon
1230 15 = IMAGE
1231 15 {
1232 file.import = typo3/gfx/fileicons/
1233 file.import.data = file:current:extension
1234 file.import.case = lower
1235 file.import.wrap = |.gif
1236 stdWrap {
1237 if {
1238 value = 0
1239 isGreaterThan.field = layout
1240
1241 # only show the icon if we don't have a thumbnail:
1242 isFalse.cObject = IMG_RESOURCE
1243 isFalse.cObject.file < tt_content.uploads.20.renderObj.10.file
1244 isFalse.cObject.stdWrap.if < tt_content.uploads.20.renderObj.10.stdWrap.if
1245 }
1246
1247 typolink < tt_content.uploads.20.renderObj.10.stdWrap.typolink
1248 }
1249 }
1250
1251 # filename
1252 20 = TEXT
1253 20 {
1254 data = file:current:name
1255 htmlSpecialChars = 1
1256 required = 1
1257
1258 replacement {
1259 # equivalent to former useSpacesInLinkText = 0; remove using > to disable it
1260 10 {
1261 search = _
1262 replace.char = 32
1263 }
1264
1265 # equivalent to former stripFileExtensionFromLinkText = 0; move "_20" to "20" to enable it. Disabled by default.
1266 _20 {
1267 search = /(.*)(\..*)/
1268 replace = \1
1269 useRegExp = 1
1270 }
1271 }
1272
1273 typolink < tt_content.uploads.20.renderObj.10.stdWrap.typolink
1274
1275 wrap = <span class="csc-uploads-fileName">|</span>
1276 }
1277
1278 # description
1279 30 = TEXT
1280 30 {
1281 data = file:current:description
1282 htmlSpecialChars = 1
1283 wrap = <span class="csc-uploads-description">|</span>
1284
1285 required = 1
1286 }
1287
1288 # file size
1289 40 = TEXT
1290 40 {
1291 if.isTrue.field = filelink_size
1292 data = file:current:size
1293 wrap = <span class="csc-uploads-fileSize">|</span>
1294 bytes = 1
1295 bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
1296 }
1297
1298 # wrap of each listed file with odd/even class
1299 wrap.cObject = COA
1300 wrap.cObject {
1301 10 = LOAD_REGISTER
1302 10 {
1303 oddEvenClass = li-odd li-first |*| li-even || li-odd
1304 elementClass = csc-uploads-element csc-uploads-element-{file:current:extension}
1305 elementClass.insertData = 1
1306 }
1307
1308 20 = TEXT
1309 20 {
1310 value = <li class="{register:oddEvenClass} {register:elementClass}">|</li>
1311 insertData = 1
1312 }
1313 30 = RESTORE_REGISTER
1314 }
1315 }
1316
1317 # wrap around whole content element with <ul> and editIcons
1318 stdWrap {
1319 editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size
1320 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.filelist
1321 prefixComment = 2 | File list:
1322 dataWrap = <ul class="csc-uploads csc-uploads-{field:layout}">|</ul>
1323 }
1324 }
1325 }
1326
1327
1328
1329 # *****************
1330 # CType: table
1331 # *****************
1332 # Rendered by a PHP function specifically written to handle CE tables. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
1333 tt_content.table = COA
1334 tt_content.table {
1335 10 = < lib.stdheader
1336
1337 20 = USER
1338 20.userFunc = tx_cssstyledcontent_pi1->render_table
1339 20.field = bodytext
1340
1341 20.color {
1342 default =
1343 1 = {$styles.content.table.backgroundColor.1}
1344 2 = {$styles.content.table.backgroundColor.2}
1345 200 =
1346 240 = {$styles.content.table.backgroundColor.240}
1347 241 = {$styles.content.table.backgroundColor.241}
1348 242 = {$styles.content.table.backgroundColor.242}
1349 243 = {$styles.content.table.backgroundColor.243}
1350 244 = {$styles.content.table.backgroundColor.244}
1351 }
1352 20.tableParams_0 {
1353 border =
1354 cellpadding =
1355 cellspacing =
1356 }
1357 20.tableParams_1 {
1358 border =
1359 cellpadding =
1360 cellspacing =
1361 }
1362 20.tableParams_2 {
1363 border =
1364 cellpadding =
1365 cellspacing =
1366 }
1367 20.tableParams_3 {
1368 border =
1369 cellpadding =
1370 cellspacing =
1371 }
1372 20.innerStdWrap.wrap = |
1373 20.innerStdWrap.parseFunc = < lib.parseFunc
1374
1375 20.stdWrap {
1376 editIcons = tt_content: cols, bodytext, [layout], [table_bgColor|table_border|table_cellspacing|table_cellpadding]
1377 editIcons.beforeLastTag = 1
1378 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.table
1379
1380 prefixComment = 2 | Table:
1381 }
1382 }
1383
1384 # ******************
1385 # CType: multimedia
1386 # ******************
1387 tt_content.multimedia = COA
1388 tt_content.multimedia {
1389 10 = < lib.stdheader
1390
1391 20 = MULTIMEDIA
1392 20.file.field = multimedia
1393 20.file.wrap = uploads/media/
1394 20.file.listNum = 0
1395 20.params.field = bodytext
1396
1397 20.stdWrap {
1398 editIcons = tt_content: multimedia, bodytext
1399 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1400
1401 prefixComment = 2 | Multimedia element:
1402 }
1403 }
1404
1405 # *****************
1406 # CType: swfobject
1407 # *****************
1408 tt_content.swfobject = COA
1409 tt_content.swfobject {
1410 10 = < lib.stdheader
1411
1412 20 = SWFOBJECT
1413 20 {
1414 file =
1415 width =
1416 height =
1417
1418 flexParams.field = pi_flexform
1419
1420 alternativeContent.field = bodytext
1421
1422 layout = ###SWFOBJECT###
1423
1424 video {
1425 player = {$styles.content.media.videoPlayer}
1426
1427 defaultWidth = {$styles.content.media.defaultVideoWidth}
1428 defaultHeight = {$styles.content.media.defaultVideoHeight}
1429
1430 default {
1431 params.quality = high
1432 params.menu = false
1433 params.allowScriptAccess = sameDomain
1434 params.allowFullScreen = true
1435 }
1436 mapping {
1437
1438 }
1439 }
1440
1441 audio {
1442 player = {$styles.content.media.audioPlayer}
1443
1444 defaultWidth = {$styles.content.media.defaultAudioWidth}
1445 defaultHeight = {$styles.content.media.defaultAudioHeight}
1446
1447 default {
1448 params.quality = high
1449 params.allowScriptAccess = sameDomain
1450 params.menu = false
1451 }
1452 mapping {
1453 flashvars.file = soundFile
1454 }
1455 }
1456
1457 }
1458 20.stdWrap {
1459 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1460 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1461
1462 prefixComment = 2 | SWFobject element:
1463 }
1464 }
1465
1466 # *****************
1467 # CType: qtobject
1468 # *****************
1469 tt_content.qtobject = COA
1470 tt_content.qtobject {
1471 10 = < lib.stdheader
1472
1473 20 = QTOBJECT
1474 20 {
1475 file =
1476 width =
1477 height =
1478
1479 flexParams.field = pi_flexform
1480
1481 alternativeContent.field = bodytext
1482
1483 layout = ###QTOBJECT###
1484
1485 video {
1486 player = {$styles.content.media.videoPlayer}
1487
1488 defaultWidth = {$styles.content.media.defaultVideoWidth}
1489 defaultHeight = {$styles.content.media.defaultVideoHeight}
1490
1491 default {
1492 params.quality = high
1493 params.menu = false
1494 params.allowScriptAccess = sameDomain
1495 params.allowFullScreen = true
1496 }
1497 mapping {
1498
1499 }
1500 }
1501
1502 audio {
1503 player = {$styles.content.media.audioPlayer}
1504
1505 defaultWidth = {$styles.content.media.defaultAudioWidth}
1506 defaultHeight = {$styles.content.media.defaultAudioHeight}
1507
1508 default {
1509 params.quality = high
1510 params.allowScriptAccess = sameDomain
1511 params.menu = false
1512 }
1513 mapping {
1514 flashvars.file = soundFile
1515 }
1516 }
1517 }
1518 20.stdWrap {
1519 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1520 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1521
1522 prefixComment = 2 | QTobject element:
1523 }
1524 }
1525
1526 # *****************
1527 # CType: media
1528 # *****************
1529 tt_content.media = COA
1530 tt_content.media {
1531 10 = < lib.stdheader
1532
1533 20 = MEDIA
1534 20 {
1535
1536 flexParams.field = pi_flexform
1537 alternativeContent < tt_content.text.20
1538 alternativeContent.field = bodytext
1539
1540 type = video
1541 renderType = auto
1542 allowEmptyUrl = 0
1543 forcePlayer = 1
1544
1545 fileExtHandler {
1546 default = MEDIA
1547 avi = MEDIA
1548 asf = MEDIA
1549 class = MEDIA
1550 wmv = MEDIA
1551 mp3 = SWF
1552 mp4 = SWF
1553 m4v = SWF
1554 swa = SWF
1555 flv = SWF
1556 swf = SWF
1557 mov = QT
1558 m4v = QT
1559 m4a = QT
1560 }
1561
1562 mimeConf.swfobject < tt_content.swfobject.20
1563 mimeConf.qtobject < tt_content.qtobject.20
1564 mimeConf.flowplayer < tt_content.swfobject.20
1565 mimeConf.flowplayer.audio.player = {$styles.content.media.flowPlayer}
1566 mimeConf.flowplayer.video.player = {$styles.content.media.flowPlayer}
1567
1568 }
1569 20.stdWrap {
1570 editIcons = tt_content: pi_flexform, bodytext
1571 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1572
1573 prefixComment = 2 | Media element:
1574 }
1575 }
1576
1577 # ******************
1578 # CType: mailform
1579 # ******************
1580 tt_content.mailform = COA
1581 tt_content.mailform.10 = < lib.stdheader
1582 tt_content.mailform.20 = FORM
1583 tt_content.mailform.20 {
1584 accessibility = 1
1585 noWrapAttr=1
1586 formName = mailform
1587 dontMd5FieldNames = 1
1588 layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>
1589 labelWrap.wrap = |
1590 commentWrap.wrap = |
1591 radioWrap.wrap = |<br />
1592 radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>
1593 REQ = 1
1594 REQ.labelWrap.wrap = |
1595 COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>
1596 RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>
1597 LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>
1598 target < lib.parseTarget
1599 target =
1600 target.override = {$styles.content.mailform.target}
1601 goodMess = {$styles.content.mailform.goodMess}
1602 badMess = {$styles.content.mailform.badMess}
1603 redirect.field = pages
1604 redirect.listNum = 0
1605 recipient.field = subheader
1606 data.field = bodytext
1607 locationData = 1
1608 hiddenFields.stdWrap.wrap = <div style="display:none;">|</div>
1609
1610 params.radio = class="csc-mailform-radio"
1611 params.check = class="csc-mailform-check"
1612 params.submit = class="csc-mailform-submit"
1613
1614 stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>
1615 stdWrap {
1616 editIcons = tt_content: bodytext, pages, subheader
1617 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.form
1618
1619 prefixComment = 2 | Mail form inserted:
1620 }
1621 }
1622
1623
1624 # ******************
1625 # CType: search
1626 # ******************
1627 tt_content.search = COA
1628 tt_content.search.10 = < lib.stdheader
1629 # Result:
1630 tt_content.search.20 = SEARCHRESULT
1631 tt_content.search.20 {
1632 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
1633 languageField.tt_content = sys_language_uid
1634 renderObj = COA
1635 renderObj {
1636
1637 10 = TEXT
1638 10.field = pages_title
1639 10.htmlSpecialChars = 1
1640 10.typolink {
1641 parameter.field = uid
1642 target < lib.parseTarget
1643 target =
1644 target.override = {$styles.content.searchresult.resultTarget}
1645 additionalParams.data = register:SWORD_PARAMS
1646 additionalParams.required = 1
1647 additionalParams.wrap = &no_cache=1
1648 }
1649 10.htmlSpecialChars = 1
1650 10.wrap = <h3 class="csc-searchResultHeader">|</h3>
1651
1652 20 = COA
1653 20 {
1654 10 = TEXT
1655 10.field = tt_content_bodytext
1656 10.stripHtml = 1
1657 10.htmlSpecialChars = 1
1658 }
1659 20.stdWrap.crop = 200 | ...
1660 20.stdWrap.wrap = <p class="csc-searchResult">|</p>
1661 }
1662
1663 layout = COA
1664 layout {
1665 wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###
1666
1667 10 = TEXT
1668 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.resultRange
1669 10.wrap = <td class="csc-searchResultRange"><p>|</p></td>
1670
1671 20 = TEXT
1672 20.value = ###PREV###&nbsp;&nbsp;&nbsp;###NEXT###
1673 20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>
1674 }
1675
1676 noResultObj = COA
1677 noResultObj {
1678 10 = TEXT
1679 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.emptySearch
1680 10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>
1681 }
1682
1683 next = TEXT
1684 next.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultNext
1685
1686 prev = TEXT
1687 prev.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultPrev
1688
1689 target < lib.parseTarget
1690 target =
1691 target.override = {$styles.content.searchresult.target}
1692
1693 range = 20
1694
1695 stdWrap.prefixComment = 2 | Search result:
1696 }
1697
1698 # Form:
1699 tt_content.search.30 < tt_content.mailform.20
1700 tt_content.search.30 {
1701 goodMess = {$styles.content.searchform.goodMess}
1702 redirect >
1703 recipient >
1704 data >
1705 dataArray {
1706 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchWord
1707 10.type = sword=input
1708 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchIn
1709 20.type = scols=select
1710 20.valueArray {
1711 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.headersKeywords
1712 10.value = pages.title-subtitle-keywords-description:tt_content.header
1713 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.pageContent
1714 20.value = tt_content.header-bodytext-imagecaption
1715 }
1716 30.type = stype=hidden
1717 30.value = L0
1718 40.type = submit=submit
1719 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchButton
1720 }
1721 type.field = pages
1722 type.listNum = 0
1723 locationData = HTTP_POST_VARS
1724 no_cache = 1
1725
1726 stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform"> | </table>
1727 stdWrap {
1728 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.search
1729
1730 prefixComment = 2 | Search form inserted:
1731 }
1732 }
1733
1734
1735 # ****************
1736 # CType: menu
1737 # ****************
1738 tt_content.menu = COA
1739 tt_content.menu {
1740 10 = < lib.stdheader
1741
1742 20 = CASE
1743 20 {
1744 key.field = menu_type
1745
1746 # "Menu of these pages"
1747 default = HMENU
1748 default {
1749 special = list
1750 special.value.field = pages
1751 stdWrap {
1752 prepend = COA
1753 prepend {
1754 stdWrap {
1755 if.isTrue.field = accessibility_bypass
1756 }
1757 10 = LOAD_REGISTER
1758 10 {
1759 accessibility_bypass_text = TEXT
1760 accessibility_bypass_text {
1761 field = accessibility_bypass_text
1762 }
1763 }
1764 20 = CONTENT
1765 20 {
1766 table = tt_content
1767 select {
1768 pidInList = this
1769 orderBy = sorting
1770 andWhere {
1771 dataWrap = sorting>{field:sorting}
1772 }
1773 languageField = sys_language_uid
1774 max = 1
1775 }
1776 renderObj = TEXT
1777 renderObj {
1778 required = 1
1779 data = LLL:EXT:css_styled_content/pi1/locallang.xml:menu.bypassNavigation
1780 override.data = register:accessibility_bypass_text
1781 trim = 1
1782 htmlSpecialChars = 1
1783 typolink {
1784 parameter {
1785 field = pid
1786 }
1787 section {
1788 field = uid
1789 }
1790 }
1791 wrap = <li class="csc-nav-bypass">|</li>
1792 }
1793 }
1794 30 = RESTORE_REGISTER
1795 }
1796 outerWrap = <ul class="csc-menu csc-menu-def">|</ul>
1797 required = 1
1798 }
1799 1 = TMENU
1800 1 {
1801 target < lib.parseTarget
1802 target =
1803 target.override = {$PAGE_TARGET}
1804 NO {
1805 stdWrap.htmlSpecialChars = 1
1806 wrapItemAndSub = <li>|</li>
1807 ATagTitle.field = description // title
1808 }
1809 }
1810 }
1811
1812 # "Menu of subpages to these pages"
1813 1 < .default
1814 1 {
1815 special = directory
1816 stdWrap {
1817 outerWrap = <ul class="csc-menu csc-menu-1">|</ul>
1818 }
1819 }
1820
1821 # "Sitemap - liststyle"
1822 2 = HMENU
1823 2 {
1824 stdWrap < tt_content.menu.20.default.stdWrap
1825 stdWrap {
1826 outerWrap = <div class="csc-sitemap">|</div>
1827 }
1828 1 = TMENU
1829 1 {
1830 target < lib.parseTarget
1831 target =
1832 target.override = {$PAGE_TARGET}
1833 expAll = 1
1834 wrap = <ul>|</ul>
1835 NO {
1836 stdWrap.htmlSpecialChars = 1
1837 wrapItemAndSub = <li>|</li>
1838 ATagTitle.field = description // title
1839 }
1840 }
1841 2 < .1
1842 3 < .1
1843 4 < .1
1844 5 < .1
1845 6 < .1
1846 7 < .1
1847 }
1848
1849 # "Section index (pagecontent w/Index checked - liststyle)"
1850 3 < .default
1851 3 {
1852 special {
1853 value {
1854 override {
1855 data = page:uid
1856 if {
1857 isFalse.field = pages
1858 }
1859 }
1860 }
1861 }
1862 stdWrap {
1863 outerWrap = <ul class="csc-menu csc-menu-3">|</ul>
1864 }
1865 1 = TMENU
1866 1 {
1867 sectionIndex = 1
1868 sectionIndex.type = header
1869 NO.wrapItemAndSub = <li class="csc-section">|</li>
1870 }
1871 }
1872
1873 # "Menu of subpages to these pages (with abstract)"
1874 4 < .1
1875 4 {
1876 stdWrap {
1877 prepend.renderObj.wrap = <dt class="csc-nav-bypass">|</dt><dd>&nbsp;</dd>
1878 outerWrap = <dl class="csc-menu csc-menu-4">|</dl>
1879 }
1880 1.NO {
1881 wrapItemAndSub >
1882 linkWrap = <dt>|</dt>
1883 after {
1884 cObject = TEXT
1885 cObject {
1886 data = field : abstract // field : description // field : subtitle
1887 htmlSpecialChars = 1
1888 required = 1
1889 }
1890 ifBlank = &nbsp;
1891 wrap = <dd>|</dd>
1892 }
1893 ATagTitle.field = description // title
1894 }
1895 }
1896
1897 # "Recently updated pages"
1898 5 < .default
1899 5 {
1900 stdWrap {
1901 outerWrap = <ul class="csc-menu csc-menu-5">|</ul>
1902 }
1903 special = updated
1904 special {
1905 maxAge = 3600*24*7
1906 excludeNoSearchPages = 1
1907 }
1908 }
1909
1910 # "Related pages (based on keywords)"
1911 6 < .default
1912 6 {
1913 stdWrap {
1914 outerWrap = <ul class="csc-menu csc-menu-6">|</ul>
1915 }
1916 special = keywords
1917 special {
1918 excludeNoSearchPages = 1
1919 }
1920 }
1921
1922 # "Menu of subpages to these pages + sections - liststyle"
1923 7 < .1
1924 7 {
1925 stdWrap {
1926 outerWrap = <ul class="csc-menu csc-menu-7">|</ul>
1927 }
1928 1.expAll = 1
1929 2 < .1
1930 2 {
1931 sectionIndex = 1
1932 sectionIndex.type = header
1933 wrap = <ul>|</ul>
1934 NO.wrapItemAndSub = <li class="csc-section">|</li>
1935 }
1936 }
1937
1938 # "Sitemaps of selected pages - liststyle"
1939 8 < .2
1940 8 {
1941 special = directory
1942 special.value.field = pages
1943 }
1944
1945 # Menu of categorized pages
1946 9 < .default
1947 9 {
1948 special = categories
1949 special.value.field = selected_categories
1950 special.sorting = title
1951 special.order = asc
1952 stdWrap {
1953 outerWrap = <ul class="csc-menu csc-menu-9">|</ul>
1954 }
1955 }
1956 }
1957
1958 20.stdWrap {
1959 wrap {
1960 cObject = COA
1961 cObject {
1962 10 = TEXT
1963 10 {
1964 field = accessibility_title
1965 htmlSpecialChars = 1
1966 dataWrap = <map id="map{field:uid}" title="|">
1967 dataWrap {
1968 override = <map name="map{field:uid}" title="|">
1969 override {
1970 if {
1971 isFalse.data = TSFE:xhtmlDoctype
1972 }
1973 }
1974 }
1975 }
1976
1977 20 = TEXT
1978 20 {
1979 value = |</map>
1980 }
1981 }
1982 if {
1983 isTrue {
1984 field = accessibility_title
1985 }
1986 }
1987 }
1988 editIcons = tt_content: menu_type, pages
1989 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.menuSitemap
1990
1991 prefixComment = 2 | Menu/Sitemap element:
1992 }
1993 }
1994
1995
1996
1997 # ****************
1998 # CType: shortcut
1999 # ****************
2000 # Should be a complete copy from the old static template "content (default)"
2001 tt_content.shortcut = COA
2002 tt_content.shortcut {
2003 20 = CASE
2004 20.key.field = layout
2005 20.0= RECORDS
2006 20.0 {
2007 source.field = records
2008 tables = {$content.shortcut.tables}
2009 }
2010 20.1= RECORDS
2011 20.1 {
2012 source.field = records
2013 tables = {$content.shortcut.tables}
2014 }
2015
2016 20.stdWrap {
2017 editIcons = tt_content: records
2018 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
2019
2020 prefixComment = 2 | Inclusion of other records (by reference):
2021 }
2022 }
2023
2024
2025 # ****************
2026 # CType: list
2027 # ****************
2028 # Should be a complete copy from the old static template "content (default)" (except "lib.stdheader")
2029 tt_content.list = COA
2030 tt_content.list {
2031 10 = < lib.stdheader
2032
2033 20 = CASE
2034 20.key.field = list_type
2035
2036 20.stdWrap {
2037 editIcons = tt_content: list_type, layout, select_key, pages [recursive]
2038 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.plugin
2039
2040 prefixComment = 2 | Plugin inserted:
2041 }
2042 }
2043
2044
2045 # ****************
2046 # CType: div
2047 # ****************
2048 tt_content.div = TEXT
2049 tt_content.div {
2050 value = <hr>
2051 override = <hr />
2052 override.if {
2053 isTrue.data = TSFE:xhtmlDoctype
2054 }
2055 wrap = <div class="divider">|</div>
2056 prefixComment = 2 | Div element
2057 }
2058
2059
2060 # ****************
2061 # CType: html
2062 # ****************
2063 # This truely IS a content object, launched from inside the PHP class of course.
2064 # Should be a complete copy from the old static template "content (default)"
2065 tt_content.html = TEXT
2066 tt_content.html {
2067 field = bodytext
2068
2069 editIcons = tt_content: pages
2070 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.html
2071
2072 prefixComment = 2 | Raw HTML content:
2073 }
2074
2075
2076 # ****************
2077 # Default error msg:
2078 # ****************
2079 tt_content.default = TEXT
2080 tt_content.default {
2081 field = CType
2082 wrap = <p style="background-color: yellow;"><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>
2083
2084 prefixComment = 2 | Unknown element message:
2085 }
2086
2087 # *********************************************************************
2088 # ACCESSIBILTY MODE
2089 # *********************************************************************
2090
2091
2092
2093
2094
2095
2096
2097 plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (
2098 /* Headers */
2099 .csc-header-alignment-center { text-align: center; }
2100 .csc-header-alignment-right { text-align: right; }
2101 .csc-header-alignment-left { text-align: left; }
2102
2103 /* Clear floats after csc-textpic and after csc-textpic-imagerow */
2104 DIV.csc-textpic, DIV.csc-textpic DIV.csc-textpic-imagerow, UL.csc-uploads LI { overflow: hidden; }
2105
2106 /* Set padding for tables */
2107 DIV.csc-textpic .csc-textpic-imagewrap table { border-collapse: collapse; border-spacing: 0; }
2108 DIV.csc-textpic .csc-textpic-imagewrap table tr td { padding: 0; vertical-align: top; }
2109
2110 /* Settings for figure and figcaption (HTML5) */
2111 DIV.csc-textpic .csc-textpic-imagewrap FIGURE, DIV.csc-textpic FIGURE.csc-textpic-imagewrap { margin: 0; display: table; }
2112
2113 /* Captions */
2114 FIGCAPTION.csc-textpic-caption { display: table-caption; }
2115 .csc-textpic-caption { text-align: left; caption-side: bottom; }
2116 DIV.csc-textpic-caption-c .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-c { text-align: center; }
2117 DIV.csc-textpic-caption-r .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-r { text-align: right; }
2118 DIV.csc-textpic-caption-l .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-l { text-align: left; }
2119
2120 /* Float the columns */
2121 DIV.csc-textpic DIV.csc-textpic-imagecolumn { float: left; }
2122
2123 /* Border just around the image */
2124 {$styles.content.imgtext.borderSelector} {
2125 border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};
2126 padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;
2127 }
2128
2129 DIV.csc-textpic .csc-textpic-imagewrap IMG { border: none; display: block; }
2130
2131 /* Space below each image (also in-between rows) */
2132 DIV.csc-textpic .csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
2133 DIV.csc-textpic .csc-textpic-imagewrap .csc-textpic-imagerow-last .csc-textpic-image { margin-bottom: 0; }
2134
2135 /* colSpace around image columns, except for last column */
2136 DIV.csc-textpic-imagecolumn, TD.csc-textpic-imagecolumn .csc-textpic-image { margin-right: {$styles.content.imgtext.colSpace}px; }
2137 DIV.csc-textpic-imagecolumn.csc-textpic-lastcol, TD.csc-textpic-imagecolumn.csc-textpic-lastcol .csc-textpic-image { margin-right: 0; }
2138
2139 /* Add margin from image-block to text (in case of "Text w/ images") */
2140 DIV.csc-textpic-intext-left .csc-textpic-imagewrap,
2141 DIV.csc-textpic-intext-left-nowrap .csc-textpic-imagewrap {
2142 margin-right: {$styles.content.imgtext.textMargin}px;
2143 }
2144 DIV.csc-textpic-intext-right .csc-textpic-imagewrap,
2145 DIV.csc-textpic-intext-right-nowrap .csc-textpic-imagewrap {
2146 margin-left: {$styles.content.imgtext.textMargin}px;
2147 }
2148
2149 /* Positioning of images: */
2150
2151 /* Center (above or below) */
2152 DIV.csc-textpic-center .csc-textpic-imagewrap, DIV.csc-textpic-center FIGURE.csc-textpic-imagewrap { overflow: hidden; }
2153 DIV.csc-textpic-center .csc-textpic-center-outer { position: relative; float: right; right: 50%; }
2154 DIV.csc-textpic-center .csc-textpic-center-inner { position: relative; float: right; right: -50%; }
2155
2156 /* Right (above or below) */
2157 DIV.csc-textpic-right .csc-textpic-imagewrap { float: right; }
2158 DIV.csc-textpic-right DIV.csc-textpic-text { clear: right; }
2159
2160 /* Left (above or below) */
2161 DIV.csc-textpic-left .csc-textpic-imagewrap { float: left; }
2162 DIV.csc-textpic-left DIV.csc-textpic-text { clear: left; }
2163
2164 /* Left (in text) */
2165 DIV.csc-textpic-intext-left .csc-textpic-imagewrap { float: left; }
2166
2167 /* Right (in text) */
2168 DIV.csc-textpic-intext-right .csc-textpic-imagewrap { float: right; }
2169
2170 /* Right (in text, no wrap around) */
2171 DIV.csc-textpic-intext-right-nowrap .csc-textpic-imagewrap { float: right; }
2172
2173 /* Left (in text, no wrap around) */
2174 DIV.csc-textpic-intext-left-nowrap .csc-textpic-imagewrap { float: left; }
2175
2176 DIV.csc-textpic DIV.csc-textpic-imagerow-last, DIV.csc-textpic DIV.csc-textpic-imagerow-none DIV.csc-textpic-last { margin-bottom: 0; }
2177
2178 /* Browser fixes: */
2179
2180 /* Fix for unordered and ordered list with image "In text, left" */
2181 .csc-textpic-intext-left ol, .csc-textpic-intext-left ul { padding-left: 40px; overflow: auto; }
2182
2183 /* File Links */
2184 UL.csc-uploads { padding: 0; }
2185 UL.csc-uploads LI { list-style: none outside none; margin: 1em 0; }
2186 UL.csc-uploads IMG { float: left; padding-right: 1em; vertical-align: top; }
2187 UL.csc-uploads SPAN { display: block; }
2188 UL.csc-uploads SPAN.csc-uploads-fileName { text-decoration: underline; }
2189
2190 /* Table background colors: */
2191
2192 TABLE.contenttable-color-1 { background-color: {$styles.content.table.backgroundColor.1}; }
2193 TABLE.contenttable-color-2 { background-color: {$styles.content.table.backgroundColor.2}; }
2194 TABLE.contenttable-color-240 { background-color: {$styles.content.table.backgroundColor.240}; }
2195 TABLE.contenttable-color-241 { background-color: {$styles.content.table.backgroundColor.241}; }
2196 TABLE.contenttable-color-242 { background-color: {$styles.content.table.backgroundColor.242}; }
2197 TABLE.contenttable-color-243 { background-color: {$styles.content.table.backgroundColor.243}; }
2198 TABLE.contenttable-color-244 { background-color: {$styles.content.table.backgroundColor.244}; }
2199 )
2200