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