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