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