[TASK] Remove content element "textbox"
[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         imgPath = uploads/pics/
663
664         # Single image rendering
665         imgObjNum = 1
666         1 {
667                 file.import.current = 1
668                 file.width.field = imagewidth
669                 imageLinkWrap = 1
670                 imageLinkWrap {
671                         bodyTag = <body style="margin:0; background:#fff;">
672                         wrap = <a href="javascript:close();"> | </a>
673                         width = {$styles.content.imgtext.linkWrap.width}
674                         height = {$styles.content.imgtext.linkWrap.height}
675                         effects = {$styles.content.imgtext.linkWrap.effects}
676
677                         JSwindow = 1
678                         JSwindow.newWindow = {$styles.content.imgtext.linkWrap.newWindow}
679                         JSwindow.if.isFalse = {$styles.content.imgtext.linkWrap.lightboxEnabled}
680
681                         directImageLink = {$styles.content.imgtext.linkWrap.lightboxEnabled}
682
683                         enable.field = image_zoom
684                         enable.ifEmpty.typolink.parameter.field = image_link
685                         enable.ifEmpty.typolink.parameter.listNum.splitChar = 10
686                         enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
687                         enable.ifEmpty.typolink.returnLast = url
688
689                         typolink.parameter.field = image_link
690                         typolink.parameter.listNum.splitChar = 10
691                         typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
692
693                         typolink.target < lib.parseTarget
694                         typolink.target =
695                         typolink.target.override = {$styles.content.links.target}
696
697                         typolink.extTarget < lib.parseTarget
698                         typolink.extTarget =
699                         typolink.extTarget.override = {$styles.content.links.extTarget}
700
701                         linkParams.ATagParams.dataWrap =  class="{$styles.content.imgtext.linkWrap.lightboxCssClass}" rel="{$styles.content.imgtext.linkWrap.lightboxRelAttribute}"
702                 }
703
704                 altText = TEXT
705                 altText {
706                         field = altText
707                         stripHtml = 1
708                         split.token.char = 10
709                         split.token.if.isTrue = {$styles.content.imgtext.imageTextSplit}
710                         split.returnKey.data = register : IMAGE_NUM_CURRENT
711                 }
712
713                 params =
714                 params {
715                         override {
716                                 dataWrap = aria-describedby="csc-longdesc-{field:uid}-{register:IMAGE_NUM_CURRENT}"
717                                 if {
718                                         isTrue {
719                                                 cObject = TEXT
720                                                 cObject {
721                                                         field = imagecaption
722                                                         required = 1
723                                                         parseFunc =< lib.parseFunc
724                                                         split {
725                                                                 token {
726                                                                         char = 10
727                                                                         if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
728                                                                 }
729                                                                 returnKey.data = register : IMAGE_NUM_CURRENT
730                                                         }
731                                                 }
732                                         }
733                                         isFalse = 1
734                                         isFalse {
735                                                 if {
736                                                         isFalse {
737                                                                 cObject = TEXT
738                                                                 cObject {
739                                                                         field = longdescURL
740                                                                         split {
741                                                                                 token {
742                                                                                         char = 10
743                                                                                 }
744                                                                                 returnKey.data = register : IMAGE_NUM_CURRENT
745                                                                         }
746                                                                 }
747                                                         }
748                                                 }
749                                         }
750                                         isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
751                                         value = html5
752                                         equals.data = TSFE:config|config|doctype
753                                 }
754                         }
755                 }
756
757                 titleText < .altText
758                 titleText.field = titleText
759
760                 longdescURL {
761                         parameter {
762                                 field = longdescURL
763                                 split {
764                                         token {
765                                                 char = 10
766                                         }
767                                         returnKey.data = register : IMAGE_NUM_CURRENT
768                                 }
769                         }
770                 }
771
772                 emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling}
773                 titleInLink = {$styles.content.imgtext.titleInLink}
774                 titleInLinkAndImg = {$styles.content.imgtext.titleInLinkAndImg}
775         }
776
777         textPos.field = imageorient
778         maxW = {$styles.content.imgtext.maxW}
779         maxW.override.data = register:maxImageWidth
780         maxWInText = {$styles.content.imgtext.maxWInText}
781         maxWInText.override.data = register:maxImageWidthInText
782
783         equalH.field = imageheight
784
785         image_compression.field = image_compression
786         image_effects.field = image_effects
787
788         noRows.field = image_noRows
789
790         cols.field = imagecols
791         border.field = imageborder
792
793         caption {
794                 1 = COA
795                 1 {
796                         1 = TEXT
797                         1 {
798                                 field = imagecaption
799                                 required = 1
800                                 parseFunc =< lib.parseFunc
801                                 br = 1
802                                 trim = 1
803                                 split.token.char = 10
804                                 split.token.if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
805                                 split.returnKey.data = register : IMAGE_NUM_CURRENT
806                         }
807                         stdWrap {
808                                 required = 1
809                                 typolink {
810                                         parameter {
811                                                 field = longdescURL
812                                                 trim = 1
813                                                 split {
814                                                         token {
815                                                                 char = 10
816                                                         }
817                                                         returnKey.data = register : IMAGE_NUM_CURRENT
818                                                 }
819                                                 if {
820                                                         value = html5
821                                                         equals.data = TSFE:config|config|doctype
822                                                 }
823                                         }
824                                         ATagParams {
825                                                 dataWrap = id="csc-longdesc-{field:uid}-{register:IMAGE_NUM_CURRENT}"
826                                         }
827                                         target = {$styles.content.links.target}
828                                         extTarget = {$styles.content.links.extTarget}
829                                 }
830                         }
831                 }
832         }
833
834         # captionSplit is deprecated, use imageTextSplit instead
835         captionSplit = {$styles.content.imgtext.captionSplit}
836         captionAlign.field = imagecaption_position
837         # caption/alttext/title/longdescURL splitting
838         imageTextSplit = {$styles.content.imgtext.imageTextSplit}
839
840         borderCol = {$styles.content.imgtext.borderColor}
841         borderThick = {$styles.content.imgtext.borderThick}
842         borderClass = {$styles.content.imgtext.borderClass}
843         colSpace = {$styles.content.imgtext.colSpace}
844         rowSpace = {$styles.content.imgtext.rowSpace}
845         textMargin = {$styles.content.imgtext.textMargin}
846
847         borderSpace = {$styles.content.imgtext.borderSpace}
848         separateRows = {$styles.content.imgtext.separateRows}
849         addClasses =
850         addClassesCol =
851         addClassesCol.ifEmpty = csc-textpic-firstcol csc-textpic-lastcol
852         addClassesCol.override = csc-textpic-firstcol |*| |*| csc-textpic-lastcol
853         addClassesCol.override.if {
854                 isGreaterThan.field = imagecols
855                 value = 1
856         }
857
858         addClassesImage = csc-textpic-first |*| |*| csc-textpic-last
859
860         #
861         imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap" style="width:{register:totalwidth}px;"> | </div>
862         imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap"> | </div>
863
864         # if noRows is set, wrap around each column:
865         imageColumnStdWrap.dataWrap = <div class="csc-textpic-imagecolumn" style="width:{register:columnwidth}px;"> | </div>
866
867         layout = CASE
868         layout {
869                 key.field = imageorient
870                 # above-center
871                 default = TEXT
872                 default.value = <div class="csc-textpic csc-textpic-center csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
873                 # above-right
874                 1 = TEXT
875                 1.value = <div class="csc-textpic csc-textpic-right csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
876                 # above-left
877                 2 = TEXT
878                 2.value = <div class="csc-textpic csc-textpic-left csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
879                 # below-center
880                 8 = TEXT
881                 8.value = <div class="csc-textpic csc-textpic-center csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
882                 # below-right
883                 9 = TEXT
884                 9.value = <div class="csc-textpic csc-textpic-right csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
885                 # below-left
886                 10 = TEXT
887                 10.value = <div class="csc-textpic csc-textpic-left csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
888                 # intext-right
889                 17 = TEXT
890                 17.value = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div>
891                 # intext-left
892                 18 = TEXT
893                 18.value = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>
894                 # intext-right-nowrap
895                 25 = TEXT
896                 25.value = <div class="csc-textpic csc-textpic-intext-right-nowrap###CLASSES###">###IMAGES######TEXT###</div>
897                 # intext-left-nowrap
898                 26 = TEXT
899                 26.value = <div class="csc-textpic csc-textpic-intext-left-nowrap###CLASSES###">###IMAGES######TEXT###</div>
900         }
901
902         rendering {
903                 # Single image - No caption
904                 singleNoCaption {
905                         # Choose another rendering for special edge cases
906                         fallbackRendering = COA
907                         fallbackRendering {
908                                 # Single image - Caption
909                                 10 = TEXT
910                                 10 {
911                                         if {
912                                                 isTrue.field = imagecaption
913                                                 value = 1
914                                                 equals.data = register:imageCount
915                                         }
916                                         value = singleCaption
917                                 }
918
919                                 # Multiple images and split caption
920                                 20 = TEXT
921                                 20 {
922                                         if {
923                                                 value = 1
924                                                 isGreaterThan.data = register:imageCount
925                                                 isTrue.if.isFalse.data = register:renderGlobalCaption
926                                                 isTrue.field = imagecaption
927                                         }
928                                         value = splitCaption
929                                 }
930
931                                 # Multiple images and one global caption
932                                 30 = TEXT
933                                 30 {
934                                         if {
935                                                 value = 1
936                                                 isGreaterThan.data = register:imageCount
937                                                 isTrue.if.isTrue.data = register:renderGlobalCaption
938                                                 isTrue.field = imagecaption
939                                         }
940                                         value = globalCaption
941                                 }
942
943                                 # Multiple images and no caption at all
944                                 40 = TEXT
945                                 40 {
946                                         if {
947                                                 value = 1
948                                                 isGreaterThan.data = register:imageCount
949                                                 isFalse.field = imagecaption
950                                         }
951                                         value = noCaption
952                                 }
953                         }
954                         allStdWrap {
955                                 wrap = <div class="csc-textpic-imagewrap"> | </div>
956                                 innerWrap.cObject = CASE
957                                 innerWrap.cObject {
958                                         key.field = imageorient
959                                         # above-center
960                                         0 = TEXT
961                                         0.value = <div class="csc-textpic-center-outer"><div class="csc-textpic-center-inner"> | </div></div>
962                                         # below-center
963                                         8 < .0
964                                 }
965                         }
966                         singleStdWrap {
967                                 wrap = <div class="csc-textpic-image###CLASSES###"> | </div>
968                                 wrap {
969                                         override = <figure class="csc-textpic-image###CLASSES###"> | </figure>
970                                         override {
971                                                 if {
972                                                         value = html5
973                                                         equals.data = TSFE:config|config|doctype
974                                                 }
975                                         }
976                                 }
977                         }
978                         rowStdWrap.wrap = |
979                         noRowsStdWrap.wrap = |
980                         lastRowStdWrap.wrap = |
981                         columnStdWrap.wrap = |
982                         imgTagStdWrap.wrap = |
983                         editIconsStdWrap.wrap = <div> | </div>
984                         caption.wrap = |
985                 }
986                 noCaption {
987                         # Multiple images and no caption at all
988                         fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
989                         allStdWrap.wrap = <div class="csc-textpic-imagewrap"> | </div>
990                         singleStdWrap {
991                                 wrap = <div class="csc-textpic-image###CLASSES###"> | </div>
992                                 wrap {
993                                         override = <figure class="csc-textpic-image###CLASSES###"> | </figure>
994                                 }
995                         }
996                         rowStdWrap.wrap = <div class="csc-textpic-imagerow"> | </div>
997                         noRowsStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-none"> | </div>
998                         lastRowStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last"> | </div>
999                         columnStdWrap.wrap = <div class="csc-textpic-imagecolumn###CLASSES###"> | </div>
1000                 }
1001                 singleCaption {
1002                         # Just one image with a caption
1003                         fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
1004                         singleStdWrap {
1005                                 wrap = <div class="csc-textpic-image###CLASSES###"><table>###CAPTION###<tbody><tr><td> | </td></tr></tbody></table></div>
1006                                 wrap {
1007                                         override = <figure class="csc-textpic-image###CLASSES###">|###CAPTION###</figure>
1008                                         override {
1009                                                 if {
1010                                                         value = html5
1011                                                         equals.data = TSFE:config|config|doctype
1012                                                 }
1013                                         }
1014                                 }
1015                         }
1016                         caption {
1017                                 required = 1
1018                                 wrap = <caption class="csc-textpic-caption###CLASSES###"> | </caption>
1019                                 wrap {
1020                                         override = <figcaption class="csc-textpic-caption###CLASSES###"> | </figcaption>
1021                                         override {
1022                                                 if {
1023                                                         value = html5
1024                                                         equals.data = TSFE:config|config|doctype
1025                                                 }
1026                                         }
1027                                 }
1028                         }
1029                 }
1030                 splitCaption {
1031                         fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
1032                         singleStdWrap {
1033                                 wrap = <div class="csc-textpic-image###CLASSES###"><table>###CAPTION###<tbody><tr><td> | </td></tr></tbody></table></div>
1034                                 wrap {
1035                                         override = <figure class="csc-textpic-image###CLASSES###">|###CAPTION###</figure>
1036                                         override {
1037                                                 if {
1038                                                         value = html5
1039                                                         equals.data = TSFE:config|config|doctype
1040                                                 }
1041                                         }
1042                                 }
1043                         }
1044                         rowStdWrap.wrap = <div class="csc-textpic-imagerow"> | </div>
1045                         noRowsStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-none"> | </div>
1046                         lastRowStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last"> | </div>
1047                         columnStdWrap.wrap = <div class="csc-textpic-imagecolumn###CLASSES###"> | </div>
1048                         caption {
1049                                 required = 1
1050                                 wrap = <caption class="csc-textpic-caption###CLASSES###"> | </caption>
1051                                 wrap {
1052                                         override = <figcaption class="csc-textpic-caption###CLASSES###"> | </figcaption>
1053                                         override {
1054                                                 if {
1055                                                         value = html5
1056                                                         equals.data = TSFE:config|config|doctype
1057                                                 }
1058                                         }
1059                                 }
1060                         }
1061                 }
1062                 globalCaption {
1063                         # Just one image without a caption
1064                         fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
1065                         allStdWrap {
1066                                 wrap = <div class="csc-textpic-imagewrap"><table>###CAPTION###<tbody> | </tbody></table></div>
1067                                 wrap {
1068                                         override = <figure class="csc-textpic-imagewrap"> | ###CAPTION###</figure>
1069                                         override {
1070                                                 if {
1071                                                         value = html5
1072                                                         equals.data = TSFE:config|config|doctype
1073                                                 }
1074                                         }
1075                                 }
1076                         }
1077                         singleStdWrap {
1078                                 wrap = <div class="csc-textpic-image###CLASSES###"> | </div>
1079                                 wrap {
1080                                         override = <div class="csc-textpic-image###CLASSES###"> | </div>
1081                                 }
1082                         }
1083                         rowStdWrap.wrap = <div class="csc-textpic-imagerow"> | </div>
1084                         noRowsStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-none"> | </div>
1085                         lastRowStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last"> | </div>
1086                         columnStdWrap.wrap = <div class="csc-textpic-imagecolumn###CLASSES###"> | </div>
1087                         caption {
1088                                 required = 1
1089                                 wrap = <caption class="csc-textpic-caption"> | </caption>
1090                                 wrap {
1091                                         override = <figcaption class="csc-textpic-caption###CLASSES###"> | </figcaption>
1092                                         override {
1093                                                 if {
1094                                                         value = html5
1095                                                         equals.data = TSFE:config|config|doctype
1096                                                 }
1097                                         }
1098                                 }
1099                         }
1100                 }
1101         }
1102         renderMethod = singleNoCaption
1103
1104         editIcons = tt_content : image [imageorient|imagewidth|imageheight], [imagecols|image_noRows|imageborder],[image_link|image_zoom],[image_compression|image_effects|image_frames],imagecaption[imagecaption_position]
1105         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.images
1106
1107         caption.editIcons = tt_content : imagecaption[imagecaption_position]
1108         caption.editIcons.beforeLastTag=1
1109         caption.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.caption
1110
1111         stdWrap.prefixComment = 2 | Image block:
1112 }
1113
1114 # *****************
1115 # CType: textpic
1116 # *****************
1117 tt_content.textpic = COA
1118 tt_content.textpic {
1119         10 = COA
1120         10.if.value = 25
1121         10.if.isLessThan.field = imageorient
1122         10.10 = < lib.stdheader
1123
1124         20  = < tt_content.image.20
1125         20 {
1126                 text.10 = COA
1127                 text.10 {
1128                         if.value = 24
1129                         if.isGreaterThan.field = imageorient
1130                         10 = < lib.stdheader
1131                         10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
1132                 }
1133                 text.20 = < tt_content.text.20
1134                 text.wrap = <div class="csc-textpic-text"> | </div>
1135         }
1136 }
1137
1138
1139
1140 # *****************
1141 # CType: bullet
1142 # *****************
1143 tt_content.bullets = COA
1144 tt_content.bullets {
1145         10 = < lib.stdheader
1146
1147         20 = TEXT
1148         20 {
1149                 field = bodytext
1150                 trim = 1
1151                 split{
1152                         token.char = 10
1153                         cObjNum = |*|1|| 2|*|
1154                         1.current = 1
1155                         1.parseFunc =< lib.parseFunc
1156                         1.wrap = <li class="odd">|</li>
1157
1158                         2.current = 1
1159                         2.parseFunc =< lib.parseFunc
1160                         2.wrap = <li class="even">|</li>
1161                 }
1162                 dataWrap = <ul class="csc-bulletlist csc-bulletlist-{field:layout}">|</ul>
1163                 editIcons = tt_content: bodytext, [layout]
1164                 editIcons.beforeLastTag = 1
1165                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.php:eIcon.bullets
1166
1167                 prefixComment = 2 | Bullet list:
1168         }
1169 }
1170
1171
1172 # *****************
1173 # CType: uploads
1174 # *****************
1175 tt_content.uploads = COA
1176 tt_content.uploads {
1177         10 = < lib.stdheader
1178
1179         20 = FILES
1180         20 {
1181                 # get from file references:
1182                 references {
1183                         table = tt_content
1184                         uid.field = uid
1185                         fieldName = media
1186                 }
1187
1188                 collections.field = file_collections
1189
1190                 # get from path (backwards compatibility, contains strings like "fileadmin/user_uploads/")
1191                 folders.field = select_key
1192
1193                 # render the files
1194                 renderObj = COA
1195                 renderObj {
1196                         10 = IMAGE
1197                         10 {
1198                                 file.import.data = file:current:originalUid // file:current:uid
1199                                 file.width = 150
1200                                 stdWrap {
1201                                         if.value = 1
1202                                         if.isGreaterThan.field = layout
1203
1204                                         typolink {
1205                                                 parameter.data = file:current:originalUid // file:current:uid
1206                                                 parameter.wrap = file:|
1207                                                 target < lib.parseTarget
1208                                                 target =
1209                                                 target.override = {$styles.content.uploads.target}
1210                                                 removePrependedNumbers = 1
1211
1212                                                 /*
1213                                                 jumpurl = {$styles.content.uploads.jumpurl}
1214                                                 jumpurl {
1215                                                         secure = {$styles.content.uploads.jumpurl_secure}
1216                                                         secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}
1217                                                 }
1218                                                 */
1219                                         }
1220                                 }
1221                         }
1222
1223                         # icon
1224                         15 = IMAGE
1225                         15 {
1226                                 file.import = typo3/gfx/fileicons/
1227                                 file.import.data = file:current:extension
1228                                 file.import.case = lower
1229                                 file.import.wrap = |.gif
1230                                 stdWrap {
1231                                         if {
1232                                                 value = 0
1233                                                 isGreaterThan.field = layout
1234
1235                                                 # only show the icon if we don't have a thumbnail:
1236                                                 isFalse.cObject = IMG_RESOURCE
1237                                                 isFalse.cObject.file < tt_content.uploads.20.renderObj.10.file
1238                                                 isFalse.cObject.stdWrap.if < tt_content.uploads.20.renderObj.10.stdWrap.if
1239                                         }
1240
1241                                         typolink < tt_content.uploads.20.renderObj.10.stdWrap.typolink
1242                                 }
1243                         }
1244
1245                         # filename
1246                         20 = TEXT
1247                         20 {
1248                                 data = file:current:name
1249                                 htmlSpecialChars = 1
1250                                 required = 1
1251
1252                                 replacement {
1253                                         # equivalent to former useSpacesInLinkText = 0; remove using > to disable it
1254                                         10 {
1255                                                 search = _
1256                                                 replace.char = 32
1257                                         }
1258
1259                                         # equivalent to former stripFileExtensionFromLinkText = 0; move "_20" to "20" to enable it. Disabled by default.
1260                                         _20 {
1261                                                 search = /(.*)(\..*)/
1262                                                 replace = \1
1263                                                 useRegExp = 1
1264                                         }
1265                                 }
1266
1267                                 typolink < tt_content.uploads.20.renderObj.10.stdWrap.typolink
1268
1269                                 wrap = <span class="csc-uploads-fileName">|</span>
1270                         }
1271
1272                         # description
1273                         30 = TEXT
1274                         30 {
1275                                 data = file:current:description
1276                                 htmlSpecialChars = 1
1277                                 wrap = <span class="csc-uploads-description">|</span>
1278
1279                                 required = 1
1280                         }
1281
1282                         # file size
1283                         40 = TEXT
1284                         40 {
1285                                 if.isTrue.field = filelink_size
1286                                 data = file:current:size
1287                                 wrap = <span class="csc-uploads-fileSize">|</span>
1288                                 bytes = 1
1289                                 bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
1290                         }
1291
1292                         # wrap of each listed file with odd/even class
1293                         wrap.cObject = COA
1294                         wrap.cObject {
1295                                 10 = LOAD_REGISTER
1296                                 10 {
1297                                         oddEvenClass = li-odd li-first |*| li-even || li-odd
1298                                         elementClass = csc-uploads-element csc-uploads-element-{register:fileExtension}
1299                                         elementClass.insertData = 1
1300                                 }
1301
1302                                 20 = TEXT
1303                                 20 {
1304                                         value = <li class="{register:oddEvenClass} {register:elementClass}">|</li>
1305                                         insertData = 1
1306                                 }
1307                                 30 = RESTORE_REGISTER
1308                         }
1309                 }
1310
1311                 # wrap around whole content element with <ul> and editIcons
1312                 stdWrap {
1313                         editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size
1314                         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.filelist
1315                         prefixComment = 2 | File list:
1316                         dataWrap = <ul class="csc-uploads csc-uploads-{field:layout}">|</ul>
1317                 }
1318         }
1319 }
1320
1321
1322
1323 # *****************
1324 # CType: table
1325 # *****************
1326 # Rendered by a PHP function specifically written to handle CE tables. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
1327 tt_content.table = COA
1328 tt_content.table {
1329         10 = < lib.stdheader
1330
1331         20 = USER
1332         20.userFunc = tx_cssstyledcontent_pi1->render_table
1333         20.field = bodytext
1334
1335         20.color {
1336                 default =
1337                 1 = {$styles.content.table.backgroundColor.1}
1338                 2 = {$styles.content.table.backgroundColor.2}
1339                 200 =
1340                 240 = {$styles.content.table.backgroundColor.240}
1341                 241 = {$styles.content.table.backgroundColor.241}
1342                 242 = {$styles.content.table.backgroundColor.242}
1343                 243 = {$styles.content.table.backgroundColor.243}
1344                 244 = {$styles.content.table.backgroundColor.244}
1345         }
1346         20.tableParams_0 {
1347                 border =
1348                 cellpadding =
1349                 cellspacing =
1350         }
1351         20.tableParams_1 {
1352                 border =
1353                 cellpadding =
1354                 cellspacing =
1355         }
1356         20.tableParams_2 {
1357                 border =
1358                 cellpadding =
1359                 cellspacing =
1360         }
1361         20.tableParams_3 {
1362                 border =
1363                 cellpadding =
1364                 cellspacing =
1365         }
1366         20.innerStdWrap.wrap = |
1367         20.innerStdWrap.parseFunc = < lib.parseFunc
1368
1369         20.stdWrap {
1370                 editIcons = tt_content: cols, bodytext, [layout], [table_bgColor|table_border|table_cellspacing|table_cellpadding]
1371                 editIcons.beforeLastTag = 1
1372                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.table
1373
1374                 prefixComment = 2 | Table:
1375         }
1376 }
1377
1378 # ******************
1379 # CType: multimedia
1380 # ******************
1381 tt_content.multimedia = COA
1382 tt_content.multimedia {
1383         10 = < lib.stdheader
1384
1385         20 = MULTIMEDIA
1386         20.file.field = multimedia
1387         20.file.wrap = uploads/media/
1388         20.file.listNum = 0
1389         20.params.field = bodytext
1390
1391         20.stdWrap {
1392                 editIcons = tt_content: multimedia, bodytext
1393                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1394
1395                 prefixComment = 2 | Multimedia element:
1396         }
1397 }
1398
1399 # *****************
1400 # CType: swfobject
1401 # *****************
1402 tt_content.swfobject = COA
1403 tt_content.swfobject {
1404         10 = < lib.stdheader
1405
1406         20 = SWFOBJECT
1407         20 {
1408                 file =
1409                 width =
1410                 height =
1411
1412                 flexParams.field = pi_flexform
1413
1414                 alternativeContent.field = bodytext
1415
1416                 layout = ###SWFOBJECT###
1417
1418                 video {
1419                         player = {$styles.content.media.videoPlayer}
1420
1421                         defaultWidth  = {$styles.content.media.defaultVideoWidth}
1422                         defaultHeight  = {$styles.content.media.defaultVideoHeight}
1423
1424                         default {
1425                                 params.quality = high
1426                                 params.menu = false
1427                                 params.allowScriptAccess = sameDomain
1428                                 params.allowFullScreen = true
1429                         }
1430                         mapping {
1431
1432                         }
1433                 }
1434
1435                 audio {
1436                         player = {$styles.content.media.audioPlayer}
1437
1438                         defaultWidth = {$styles.content.media.defaultAudioWidth}
1439                         defaultHeight = {$styles.content.media.defaultAudioHeight}
1440
1441                         default {
1442                                 params.quality = high
1443                                 params.allowScriptAccess = sameDomain
1444                                 params.menu = false
1445                         }
1446                         mapping {
1447                                 flashvars.file = soundFile
1448                         }
1449                 }
1450
1451         }
1452         20.stdWrap {
1453                 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1454                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1455
1456                 prefixComment = 2 | SWFobject element:
1457         }
1458 }
1459
1460 # *****************
1461 # CType: qtobject
1462 # *****************
1463 tt_content.qtobject = COA
1464 tt_content.qtobject {
1465         10 = < lib.stdheader
1466
1467         20 = QTOBJECT
1468         20 {
1469                 file =
1470                 width =
1471                 height =
1472
1473                 flexParams.field = pi_flexform
1474
1475                 alternativeContent.field = bodytext
1476
1477                 layout = ###QTOBJECT###
1478
1479                 video {
1480                         player = {$styles.content.media.videoPlayer}
1481
1482                         defaultWidth  = {$styles.content.media.defaultVideoWidth}
1483                         defaultHeight  = {$styles.content.media.defaultVideoHeight}
1484
1485                         default {
1486                                 params.quality = high
1487                                 params.menu = false
1488                                 params.allowScriptAccess = sameDomain
1489                                 params.allowFullScreen = true
1490                         }
1491                         mapping {
1492
1493                         }
1494                 }
1495
1496                 audio {
1497                         player = {$styles.content.media.audioPlayer}
1498
1499                         defaultWidth = {$styles.content.media.defaultAudioWidth}
1500                         defaultHeight = {$styles.content.media.defaultAudioHeight}
1501
1502                         default {
1503                                 params.quality = high
1504                                 params.allowScriptAccess = sameDomain
1505                                 params.menu = false
1506                         }
1507                         mapping {
1508                                 flashvars.file = soundFile
1509                         }
1510                 }
1511         }
1512         20.stdWrap {
1513                 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1514                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1515
1516                 prefixComment = 2 | QTobject element:
1517         }
1518 }
1519
1520 # *****************
1521 # CType: media
1522 # *****************
1523 tt_content.media = COA
1524 tt_content.media {
1525         10 = < lib.stdheader
1526
1527         20 = MEDIA
1528         20 {
1529
1530                 flexParams.field = pi_flexform
1531                 alternativeContent < tt_content.text.20
1532                 alternativeContent.field = bodytext
1533
1534                 type = video
1535                 renderType = auto
1536                 allowEmptyUrl = 0
1537                 forcePlayer = 1
1538
1539                 fileExtHandler {
1540                         default = MEDIA
1541                         avi = MEDIA
1542                         asf = MEDIA
1543                         class = MEDIA
1544                         wmv = MEDIA
1545                         mp3 = SWF
1546                         mp4 = SWF
1547                         m4v = SWF
1548                         swa = SWF
1549                         flv = SWF
1550                         swf = SWF
1551                         mov = QT
1552                         m4v = QT
1553                         m4a = QT
1554                 }
1555
1556                 mimeConf.swfobject < tt_content.swfobject.20
1557                 mimeConf.qtobject < tt_content.qtobject.20
1558                 mimeConf.flowplayer < tt_content.swfobject.20
1559                 mimeConf.flowplayer.audio.player = {$styles.content.media.flowPlayer}
1560                 mimeConf.flowplayer.video.player = {$styles.content.media.flowPlayer}
1561
1562         }
1563         20.stdWrap {
1564                 editIcons = tt_content: pi_flexform, bodytext
1565                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1566
1567                 prefixComment = 2 | Media element:
1568         }
1569 }
1570
1571 # ******************
1572 # CType: mailform
1573 # ******************
1574 tt_content.mailform = COA
1575 tt_content.mailform.10 = < lib.stdheader
1576 tt_content.mailform.20 = FORM
1577 tt_content.mailform.20 {
1578         accessibility = 1
1579         noWrapAttr=1
1580         formName = mailform
1581         dontMd5FieldNames = 1
1582         layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>
1583         labelWrap.wrap = |
1584         commentWrap.wrap = |
1585         radioWrap.wrap = |<br />
1586         radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>
1587         REQ = 1
1588         REQ.labelWrap.wrap = |
1589         COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>
1590         RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>
1591         LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>
1592         target < lib.parseTarget
1593         target =
1594         target.override = {$styles.content.mailform.target}
1595         goodMess = {$styles.content.mailform.goodMess}
1596         badMess = {$styles.content.mailform.badMess}
1597         redirect.field = pages
1598         redirect.listNum = 0
1599         recipient.field = subheader
1600         data.field = bodytext
1601         locationData = 1
1602         hiddenFields.stdWrap.wrap = <div style="display:none;">|</div>
1603
1604         params.radio = class="csc-mailform-radio"
1605         params.check = class="csc-mailform-check"
1606         params.submit = class="csc-mailform-submit"
1607
1608         stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>
1609         stdWrap {
1610                 editIcons = tt_content: bodytext, pages, subheader
1611                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.form
1612
1613                 prefixComment = 2 | Mail form inserted:
1614         }
1615 }
1616
1617
1618 # ******************
1619 # CType: search
1620 # ******************
1621 tt_content.search = COA
1622 tt_content.search.10 = < lib.stdheader
1623 # Result:
1624 tt_content.search.20 = SEARCHRESULT
1625 tt_content.search.20 {
1626         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
1627         languageField.tt_content = sys_language_uid
1628         renderObj = COA
1629         renderObj {
1630
1631                 10 = TEXT
1632                 10.field = pages_title
1633                 10.htmlSpecialChars = 1
1634                 10.typolink {
1635                         parameter.field = uid
1636                         target < lib.parseTarget
1637                         target =
1638                         target.override = {$styles.content.searchresult.resultTarget}
1639                         additionalParams.data = register:SWORD_PARAMS
1640                         additionalParams.required = 1
1641                         additionalParams.wrap = &no_cache=1
1642                 }
1643                 10.htmlSpecialChars = 1
1644                 10.wrap = <h3 class="csc-searchResultHeader">|</h3>
1645
1646                 20 = COA
1647                 20 {
1648                         10 = TEXT
1649                         10.field = tt_content_bodytext
1650                         10.stripHtml = 1
1651                         10.htmlSpecialChars = 1
1652                 }
1653                 20.stdWrap.crop = 200 | ...
1654                 20.stdWrap.wrap = <p class="csc-searchResult">|</p>
1655         }
1656
1657         layout = COA
1658         layout {
1659                 wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###
1660
1661                 10 = TEXT
1662                 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.resultRange
1663                 10.wrap = <td class="csc-searchResultRange"><p>|</p></td>
1664
1665                 20 = TEXT
1666                 20.value = ###PREV###&nbsp;&nbsp;&nbsp;###NEXT###
1667                 20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>
1668         }
1669
1670         noResultObj = COA
1671         noResultObj {
1672                 10 = TEXT
1673                 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.emptySearch
1674                 10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>
1675         }
1676
1677         next = TEXT
1678         next.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultNext
1679
1680         prev = TEXT
1681         prev.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultPrev
1682
1683         target < lib.parseTarget
1684         target =
1685         target.override = {$styles.content.searchresult.target}
1686
1687         range = 20
1688
1689         stdWrap.prefixComment = 2 | Search result:
1690 }
1691
1692 # Form:
1693 tt_content.search.30 < tt_content.mailform.20
1694 tt_content.search.30 {
1695         goodMess = {$styles.content.searchform.goodMess}
1696         redirect >
1697         recipient >
1698         data >
1699         dataArray {
1700                 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchWord
1701                 10.type = sword=input
1702                 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchIn
1703                 20.type = scols=select
1704                 20.valueArray {
1705                         10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.headersKeywords
1706                         10.value = pages.title-subtitle-keywords-description:tt_content.header
1707                         20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.pageContent
1708                         20.value = tt_content.header-bodytext-imagecaption
1709                 }
1710                 30.type = stype=hidden
1711                 30.value = L0
1712                 40.type = submit=submit
1713                 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchButton
1714         }
1715         type.field = pages
1716         type.listNum = 0
1717         locationData = HTTP_POST_VARS
1718         no_cache = 1
1719
1720         stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform">  | </table>
1721         stdWrap {
1722                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.search
1723
1724                 prefixComment = 2 | Search form inserted:
1725         }
1726 }
1727
1728
1729 # ****************
1730 # CType: menu
1731 # ****************
1732 tt_content.menu = COA
1733 tt_content.menu {
1734         10 = < lib.stdheader
1735
1736         20 = CASE
1737         20 {
1738                 key.field = menu_type
1739
1740                 # "Menu of these pages"
1741                 default = HMENU
1742                 default {
1743                         special = list
1744                         special.value.field = pages
1745                         stdWrap {
1746                                 prepend = COA
1747                                 prepend {
1748                                         stdWrap {
1749                                                 if.isTrue.field = accessibility_bypass
1750                                         }
1751                                         10 = LOAD_REGISTER
1752                                         10 {
1753                                                 accessibility_bypass_text = TEXT
1754                                                 accessibility_bypass_text {
1755                                                         field = accessibility_bypass_text
1756                                                 }
1757                                         }
1758                                         20 = CONTENT
1759                                         20 {
1760                                                 table = tt_content
1761                                                 select {
1762                                                         pidInList = this
1763                                                         orderBy = sorting
1764                                                         andWhere {
1765                                                                 dataWrap = sorting>{field:sorting}
1766                                                         }
1767                                                         languageField = sys_language_uid
1768                                                         max = 1
1769                                                 }
1770                                                 renderObj = TEXT
1771                                                 renderObj {
1772                                                         required = 1
1773                                                         data = LLL:EXT:css_styled_content/pi1/locallang.xml:menu.bypassNavigation
1774                                                         override.data = register:accessibility_bypass_text
1775                                                         trim = 1
1776                                                         htmlSpecialChars = 1
1777                                                         typolink {
1778                                                                 parameter {
1779                                                                         field = pid
1780                                                                 }
1781                                                                 section {
1782                                                                         field = uid
1783                                                                 }
1784                                                         }
1785                                                         wrap = <li class="csc-nav-bypass">|</li>
1786                                                 }
1787                                         }
1788                                         30 = RESTORE_REGISTER
1789                                 }
1790                                 outerWrap = <ul class="csc-menu csc-menu-def">|</ul>
1791                                 required = 1
1792                         }
1793                         1 = TMENU
1794                         1 {
1795                                 target < lib.parseTarget
1796                                 target =
1797                                 target.override = {$PAGE_TARGET}
1798                                 NO {
1799                                         stdWrap.htmlSpecialChars = 1
1800                                         wrapItemAndSub = <li>|</li>
1801                                         ATagTitle.field = description // title
1802                                 }
1803                         }
1804                 }
1805
1806                 # "Menu of subpages to these pages"
1807                 1 < .default
1808                 1 {
1809                         special = directory
1810                         stdWrap {
1811                                 outerWrap = <ul class="csc-menu csc-menu-1">|</ul>
1812                         }
1813                 }
1814
1815                 # "Sitemap - liststyle"
1816                 2 = HMENU
1817                 2 {
1818                         stdWrap < tt_content.menu.20.default.stdWrap
1819                         stdWrap {
1820                                 outerWrap = <div class="csc-sitemap">|</div>
1821                         }
1822                         1 = TMENU
1823                         1 {
1824                                 target < lib.parseTarget
1825                                 target =
1826                                 target.override = {$PAGE_TARGET}
1827                                 expAll = 1
1828                                 wrap = <ul>|</ul>
1829                                 NO {
1830                                         stdWrap.htmlSpecialChars = 1
1831                                         wrapItemAndSub = <li>|</li>
1832                                         ATagTitle.field = description // title
1833                                 }
1834                         }
1835                         2 < .1
1836                         3 < .1
1837                         4 < .1
1838                         5 < .1
1839                         6 < .1
1840                         7 < .1
1841                 }
1842
1843                 # "Section index (pagecontent w/Index checked - liststyle)"
1844                 3 < .default
1845                 3 {
1846                         special {
1847                                 value {
1848                                         override {
1849                                                 data = page:uid
1850                                                 if {
1851                                                         isFalse.field = pages
1852                                                 }
1853                                         }
1854                                 }
1855                         }
1856                         stdWrap {
1857                                 outerWrap = <ul class="csc-menu csc-menu-3">|</ul>
1858                         }
1859                         1 = TMENU
1860                         1 {
1861                                 sectionIndex = 1
1862                                 sectionIndex.type = header
1863                                 NO.wrapItemAndSub = <li class="csc-section">|</li>
1864                         }
1865                 }
1866
1867                 # "Menu of subpages to these pages (with abstract)"
1868                 4 < .1
1869                 4 {
1870                         stdWrap {
1871                                 prepend.renderObj.wrap = <dt class="csc-nav-bypass">|</dt><dd>&nbsp;</dd>
1872                                 outerWrap = <dl class="csc-menu csc-menu-4">|</dl>
1873                         }
1874                         1.NO {
1875                                 wrapItemAndSub >
1876                                 linkWrap = <dt>|</dt>
1877                                 after {
1878                                         cObject = TEXT
1879                                         cObject {
1880                                                 data = field : abstract // field : description // field : subtitle
1881                                                 htmlSpecialChars = 1
1882                                                 required = 1
1883                                         }
1884                                         ifBlank = &nbsp;
1885                                         wrap = <dd>|</dd>
1886                                 }
1887                                 ATagTitle.field = description // title
1888                         }
1889                 }
1890
1891                 # "Recently updated pages"
1892                 5 < .default
1893                 5 {
1894                         stdWrap {
1895                                 outerWrap = <ul class="csc-menu csc-menu-5">|</ul>
1896                         }
1897                         special = updated
1898                         special {
1899                                 maxAge = 3600*24*7
1900                                 excludeNoSearchPages = 1
1901                         }
1902                 }
1903
1904                 # "Related pages (based on keywords)"
1905                 6 < .default
1906                 6 {
1907                         stdWrap {
1908                                 outerWrap = <ul class="csc-menu csc-menu-6">|</ul>
1909                         }
1910                         special = keywords
1911                         special {
1912                                 excludeNoSearchPages = 1
1913                         }
1914                 }
1915
1916                 # "Menu of subpages to these pages + sections - liststyle"
1917                 7 < .1
1918                 7 {
1919                         stdWrap {
1920                                 outerWrap = <ul class="csc-menu csc-menu-7">|</ul>
1921                         }
1922                         1.expAll = 1
1923                         2 < .1
1924                         2 {
1925                                 sectionIndex = 1
1926                                 sectionIndex.type = header
1927                                 wrap = <ul>|</ul>
1928                                 NO.wrapItemAndSub = <li class="csc-section">|</li>
1929                         }
1930                 }
1931                 # "Sitemaps of selected pages - liststyle"
1932                 8 < .2
1933                 8 {
1934                         special = directory
1935                         special.value.field = pages
1936                 }
1937         }
1938
1939         20.stdWrap {
1940                 wrap {
1941                         cObject = COA
1942                         cObject {
1943                                 10 = TEXT
1944                                 10 {
1945                                         field = accessibility_title
1946                                         htmlSpecialChars = 1
1947                                         dataWrap = <map id="map{field:uid}" title="|">
1948                                         dataWrap {
1949                                                 override = <map name="map{field:uid}" title="|">
1950                                                 override {
1951                                                         if {
1952                                                                 isFalse.data = TSFE:xhtmlDoctype
1953                                                         }
1954                                                 }
1955                                         }
1956                                 }
1957
1958                                 20 = TEXT
1959                                 20 {
1960                                         value = |</map>
1961                                 }
1962                         }
1963                         if {
1964                                 isTrue {
1965                                         field = accessibility_title
1966                                 }
1967                         }
1968                 }
1969                 editIcons = tt_content: menu_type, pages
1970                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.menuSitemap
1971
1972                 prefixComment = 2 | Menu/Sitemap element:
1973         }
1974 }
1975
1976
1977
1978 # ****************
1979 # CType: shortcut
1980 # ****************
1981 # Should be a complete copy from the old static template "content (default)"
1982 tt_content.shortcut = COA
1983 tt_content.shortcut {
1984         20 = CASE
1985         20.key.field = layout
1986         20.0= RECORDS
1987         20.0 {
1988                 source.field = records
1989                 tables = {$content.shortcut.tables}
1990         }
1991         20.1= RECORDS
1992         20.1 {
1993                 source.field = records
1994                 tables = {$content.shortcut.tables}
1995         }
1996
1997         20.stdWrap {
1998                 editIcons = tt_content: records
1999                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
2000
2001                 prefixComment = 2 | Inclusion of other records (by reference):
2002         }
2003 }
2004
2005
2006 # ****************
2007 # CType: list
2008 # ****************
2009 # Should be a complete copy from the old static template "content (default)" (except "lib.stdheader")
2010 tt_content.list = COA
2011 tt_content.list {
2012         10 = < lib.stdheader
2013
2014         20 = CASE
2015         20.key.field = list_type
2016
2017         20.stdWrap {
2018                 editIcons = tt_content: list_type, layout, select_key, pages [recursive]
2019                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.plugin
2020
2021                 prefixComment = 2 | Plugin inserted:
2022         }
2023 }
2024
2025
2026 # ****************
2027 # CType: div
2028 # ****************
2029 tt_content.div = TEXT
2030 tt_content.div {
2031         value = <hr>
2032         override = <hr />
2033         override.if {
2034                 isTrue.data = TSFE:xhtmlDoctype
2035         }
2036         wrap = <div class="divider">|</div>
2037         prefixComment = 2 | Div element
2038 }
2039
2040
2041 # ****************
2042 # CType: html
2043 # ****************
2044 # This truely IS a content object, launched from inside the PHP class of course.
2045 # Should be a complete copy from the old static template "content (default)"
2046 tt_content.html = TEXT
2047 tt_content.html {
2048         field = bodytext
2049
2050         editIcons = tt_content: pages
2051         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.html
2052
2053         prefixComment = 2 | Raw HTML content:
2054 }
2055
2056
2057 # ****************
2058 # Default error msg:
2059 # ****************
2060 tt_content.default = TEXT
2061 tt_content.default {
2062         field = CType
2063         wrap = <p style="background-color: yellow;"><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>
2064
2065         prefixComment = 2 | Unknown element message:
2066 }
2067
2068 # *********************************************************************
2069 # ACCESSIBILTY MODE
2070 # *********************************************************************
2071
2072
2073
2074
2075
2076
2077
2078 plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (
2079         /* Headers */
2080         .csc-header-alignment-center { text-align: center; }
2081         .csc-header-alignment-right { text-align: right; }
2082         .csc-header-alignment-left { text-align: left; }
2083
2084         /* Clear floats after csc-textpic and after csc-textpic-imagerow */
2085         DIV.csc-textpic, DIV.csc-textpic DIV.csc-textpic-imagerow, UL.csc-uploads LI { overflow: hidden; }
2086
2087         /* Set padding for tables */
2088         DIV.csc-textpic .csc-textpic-imagewrap table { border-collapse: collapse; border-spacing: 0; }
2089         DIV.csc-textpic .csc-textpic-imagewrap table tr td { padding: 0; vertical-align: top; }
2090
2091         /* Settings for figure and figcaption (HTML5) */
2092         DIV.csc-textpic .csc-textpic-imagewrap FIGURE, DIV.csc-textpic FIGURE.csc-textpic-imagewrap { margin: 0; display: table; }
2093
2094         /* Captions */
2095         FIGCAPTION.csc-textpic-caption { display: table-caption; }
2096         .csc-textpic-caption { text-align: left; caption-side: bottom; }
2097         DIV.csc-textpic-caption-c .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-c { text-align: center; }
2098         DIV.csc-textpic-caption-r .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-r { text-align: right; }
2099         DIV.csc-textpic-caption-l .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-l { text-align: left; }
2100
2101         /* Float the columns */
2102         DIV.csc-textpic DIV.csc-textpic-imagecolumn { float: left; }
2103
2104         /* Border just around the image */
2105         {$styles.content.imgtext.borderSelector} {
2106                 border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};
2107                 padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;
2108         }
2109
2110         DIV.csc-textpic .csc-textpic-imagewrap IMG { border: none; display: block; }
2111
2112         /* Space below each image (also in-between rows) */
2113         DIV.csc-textpic .csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
2114         DIV.csc-textpic .csc-textpic-imagewrap .csc-textpic-imagerow-last .csc-textpic-image { margin-bottom: 0; }
2115
2116         /* colSpace around image columns, except for last column */
2117         DIV.csc-textpic-imagecolumn, TD.csc-textpic-imagecolumn .csc-textpic-image { margin-right: {$styles.content.imgtext.colSpace}px; }
2118         DIV.csc-textpic-imagecolumn.csc-textpic-lastcol, TD.csc-textpic-imagecolumn.csc-textpic-lastcol .csc-textpic-image { margin-right: 0; }
2119
2120         /* Add margin from image-block to text (in case of "Text w/ images") */
2121         DIV.csc-textpic-intext-left .csc-textpic-imagewrap,
2122         DIV.csc-textpic-intext-left-nowrap .csc-textpic-imagewrap {
2123                 margin-right: {$styles.content.imgtext.textMargin}px;
2124         }
2125         DIV.csc-textpic-intext-right .csc-textpic-imagewrap,
2126         DIV.csc-textpic-intext-right-nowrap .csc-textpic-imagewrap {
2127                 margin-left: {$styles.content.imgtext.textMargin}px;
2128         }
2129
2130         /* Positioning of images: */
2131
2132         /* Center (above or below) */
2133         DIV.csc-textpic-center .csc-textpic-imagewrap, DIV.csc-textpic-center FIGURE.csc-textpic-imagewrap { overflow: hidden; }
2134         DIV.csc-textpic-center .csc-textpic-center-outer { position: relative; float: right; right: 50%; }
2135         DIV.csc-textpic-center .csc-textpic-center-inner { position: relative; float: right; right: -50%; }
2136
2137         /* Right (above or below) */
2138         DIV.csc-textpic-right .csc-textpic-imagewrap { float: right; }
2139         DIV.csc-textpic-right DIV.csc-textpic-text { clear: right; }
2140
2141         /* Left (above or below) */
2142         DIV.csc-textpic-left .csc-textpic-imagewrap { float: left; }
2143         DIV.csc-textpic-left DIV.csc-textpic-text { clear: left; }
2144
2145         /* Left (in text) */
2146         DIV.csc-textpic-intext-left .csc-textpic-imagewrap { float: left; }
2147
2148         /* Right (in text) */
2149         DIV.csc-textpic-intext-right .csc-textpic-imagewrap { float: right; }
2150
2151         /* Right (in text, no wrap around) */
2152         DIV.csc-textpic-intext-right-nowrap .csc-textpic-imagewrap { float: right; }
2153
2154         /* Left (in text, no wrap around) */
2155         DIV.csc-textpic-intext-left-nowrap .csc-textpic-imagewrap { float: left; }
2156
2157         DIV.csc-textpic DIV.csc-textpic-imagerow-last, DIV.csc-textpic DIV.csc-textpic-imagerow-none DIV.csc-textpic-last { margin-bottom: 0; }
2158
2159         /* Browser fixes: */
2160
2161         /* Fix for unordered and ordered list with image "In text, left" */
2162         .csc-textpic-intext-left ol, .csc-textpic-intext-left ul { padding-left: 40px; overflow: auto; }
2163
2164         /* File Links */
2165         UL.csc-uploads { padding: 0; }
2166         UL.csc-uploads LI { list-style: none outside none; margin: 1em 0; }
2167         UL.csc-uploads IMG { float: left; padding-right: 1em; vertical-align: top; }
2168         UL.csc-uploads SPAN { display: block; }
2169         UL.csc-uploads SPAN.csc-uploads-fileName { text-decoration: underline; }
2170
2171         /* Table background colors: */
2172
2173         TABLE.contenttable-color-1 { background-color: {$styles.content.table.backgroundColor.1}; }
2174         TABLE.contenttable-color-2 { background-color: {$styles.content.table.backgroundColor.2}; }
2175         TABLE.contenttable-color-240 { background-color: {$styles.content.table.backgroundColor.240}; }
2176         TABLE.contenttable-color-241 { background-color: {$styles.content.table.backgroundColor.241}; }
2177         TABLE.contenttable-color-242 { background-color: {$styles.content.table.backgroundColor.242}; }
2178         TABLE.contenttable-color-243 { background-color: {$styles.content.table.backgroundColor.243}; }
2179         TABLE.contenttable-color-244 { background-color: {$styles.content.table.backgroundColor.244}; }
2180 )
2181