1 # ***************************************************************************
2 # Notice: "styles." (and "temp.") objects are UNSET after template parsing!
3 # Use "lib." for persisting storage of objects.
4 # ***************************************************************************
6 # Clear out any constants in this reserved room!
10 styles.content.get = CONTENT
13 select.orderBy = sorting
14 select.where = colPos=0
15 select.languageField = sys_language_uid
19 styles.content.getLeft < styles.content.get
20 styles.content.getLeft.select.where = colPos=1
23 styles.content.getRight < styles.content.get
24 styles.content.getRight.select.where = colPos=2
27 styles.content.getBorder < styles.content.get
28 styles.content.getBorder.select.where = colPos=3
31 styles.content.getNews < styles.content.get
32 styles.content.getNews.select.pidInList = {$styles.content.getNews.newsPid}
35 styles.content.editPanelPage = COA
36 styles.content.editPanelPage {
39 allow = toolbar,move,hide
40 label.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.page
41 label.wrap = | <b>%s</b>
55 # *********************************************************************
56 # "lib." objects are preserved from unsetting after template parsing
57 # *********************************************************************
59 # Creates a condition for targets. Not allowed in XHTML except for xhtml frames DTD
63 isTrue.data = TSFE:dtdAllowsFrames
67 # Creates persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!)
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
79 typolink.parameter.data = parameters : allParams
80 typolink.extTarget < lib.parseTarget
82 typolink.extTarget.override = {$styles.content.links.extTarget}
83 typolink.target < lib.parseTarget
85 typolink.target.override = {$styles.content.links.target}
86 parseFunc.constants =1
89 allowTags = {$styles.content.links.allowTags}
91 sword = <span class="csc-sword">|</span>
94 nonTypoTagStdWrap.HTMLparser = 1
95 nonTypoTagStdWrap.HTMLparser {
96 keepNonMatchedTags = 1
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
104 # Creates persistent ParseFunc setup for RTE content (which is mainly HTML) based on the "ts_css" transformation.
105 lib.parseFunc_RTE < lib.parseFunc
108 # Processing <table> and <blockquote> blocks separately
109 externalBlocks = article, aside, blockquote, div, dd, dl, footer, header, nav, ol, section, table, ul
111 # The blockquote content is passed into parseFunc again...
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;"
118 table.stdWrap.HTMLparser = 1
119 table.stdWrap.HTMLparser.tags.table.fixAttrib.class {
120 default = contenttable
124 table.stdWrap.HTMLparser.keepNonMatchedTags = 1
125 table.HTMLtableCells=1
126 table.HTMLtableCells {
127 # Recursive call to self but without wrapping non-wrapped cell content
129 parseFunc =< lib.parseFunc_RTE
130 parseFunc.nonTypoTagStdWrap.encapsLines.nonWrappedTag =
132 addChr10BetweenParagraphs=1
135 div.callRecursive = 1
149 li.stdWrap.parseFunc < lib.parseFunc
151 nonTypoTagStdWrap.encapsLines {
152 encapsTagList = p,pre,h1,h2,h3,h4,h5,h6,hr,dt,li
155 innerStdWrap_all.ifBlank =
156 addAttributes.P.class = bodytext
157 addAttributes.P.class.setOnly=blank
159 nonTypoTagStdWrap.HTMLparser = 1
160 nonTypoTagStdWrap.HTMLparser {
161 keepNonMatchedTags = 1
171 # Create class attribute for <Hx> tags
177 # Create alignment class for <Hx> tags
180 field = header_position
182 noTrimWrap = |csc-header-alignment-| |
184 # Create "csc-firstHeader" class for <Hx> tags
187 value = csc-firstHeader
190 equals.data = cObj:parentRecordNumber
195 noTrimWrap = | class="|"|
202 # Date format (not HTML5)
214 equals.data = TSFE:config|config|doctype
219 wrap = <p class="csc-header-date">|</p>
220 prefixComment = 2 | Header date:
223 # This CASE cObject renders the header content:
224 # currentValue is set to the header data, possibly wrapped in link-tags.
229 typolink.parameter.field = header_link
231 10.key.field = header_layout
232 10.key.ifEmpty = {$content.defaultHeaderType}
233 10.key.ifEmpty.override.data = register: defaultHeaderType
237 10.1.dataWrap = <h1{register:headerClass}>|</h1>
240 10.2.dataWrap = <h2{register:headerClass}>|</h2>
243 10.3.dataWrap = <h3{register:headerClass}>|</h3>
246 10.4.dataWrap = <h4{register:headerClass}>|</h4>
249 10.5.dataWrap = <h5{register:headerClass}>|</h5>
255 field = header_layout
284 equals.data = TSFE:config|config|doctype
285 # Hide subheader for old style form element (it is used for recipient mail)
289 if.equals.field = CType
300 wrap = <p class="csc-header-date">|</p>
310 noTrimWrap = | datetime="|"|
332 equals.data = TSFE:config|config|doctype
336 # Pops the used registers off the stack:
337 98 = RESTORE_REGISTER
340 stdWrap.fieldRequired = header
342 equals.field = header_layout
347 stdWrap.editIcons = tt_content : header, [header_layout | header_position], [header_link|date]
348 stdWrap.editIcons.beforeLastTag = 1
349 stdWrap.editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.header
352 dataWrap = <div class="csc-header csc-header-n{cObj:parentRecordNumber}">|</div>
354 override = <header class="csc-header csc-header-n{cObj:parentRecordNumber}">|</header>
361 equals.data = TSFE:config|config|doctype
366 stdWrap.prefixComment = 2 | Header:
373 #**********************************
374 # tt_content is started
375 #**********************************
378 tt_content.key.field = CType
380 innerWrap.cObject = CASE
382 key.field = section_frame
394 value = <div id="c{field:uid}"
404 override = <nav id="c{field:uid}"
408 equals.data = TSFE:config|config|doctype
418 # Create default class for content
425 # Create class for space before content
428 userFunc = TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController->renderSpace
430 constant = {$content.spaceBefore}
433 noTrimWrap = |csc-space-before-| |
436 # Create class for space after content
439 userFunc = TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController->renderSpace
441 constant = {$content.spaceAfter}
444 noTrimWrap = |csc-space-after-| |
449 noTrimWrap = | class="|"|
471 equals.data = TSFE:config|config|doctype
479 1 =< tt_content.stdWrap.innerWrap.cObject.default
480 1.20.10.value = csc-frame csc-frame-invisible
482 5 =< tt_content.stdWrap.innerWrap.cObject.default
483 5.20.10.value = csc-frame csc-frame-rulerBefore
485 6 =< tt_content.stdWrap.innerWrap.cObject.default
486 6.20.10.value = csc-frame csc-frame-rulerAfter
488 10 =< tt_content.stdWrap.innerWrap.cObject.default
489 10.20.10.value = csc-frame csc-frame-indent
491 11 =< tt_content.stdWrap.innerWrap.cObject.default
492 11.20.10.value = csc-frame csc-frame-indent3366
494 12 =< tt_content.stdWrap.innerWrap.cObject.default
495 12.20.10.value = csc-frame csc-frame-indent6633
497 20 =< tt_content.stdWrap.innerWrap.cObject.default
498 20.20.10.value = csc-frame csc-frame-frame1
500 21 =< tt_content.stdWrap.innerWrap.cObject.default
501 21.20.10.value = csc-frame csc-frame-frame2
507 value = <a id="c{field:uid}"></a>
510 # Create div with class for space before content
515 userFunc = TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController->renderSpace
517 constant = {$content.spaceBefore}
520 wrap = csc-space-before-|
524 wrap = <div class="|"></div>
534 # Create div with class for space after content
539 constant = {$content.spaceAfter}
542 wrap = csc-space-after-|
549 innerWrap2 = | <p class="csc-linkToTop"><a href="#">{LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:label.toTop}</a></p>
550 innerWrap2.insertData = 1
551 innerWrap2.fieldRequired = linkToTop
554 prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>
555 prepend.if.isTrue.field = _LOCALIZED_UID
559 allow = move,new,edit,hide,delete
564 edit.displayRecord = 1
567 prefixComment = 1 | CONTENT ELEMENT, uid:{field:uid}/{field:CType}
575 # See Object path "lib.stdheader"
576 tt_content.header = COA
585 dataWrap = <p class="csc-subheader csc-subheader-{field:layout}">|</p>
590 equals.data = TSFE:config|config|doctype
594 editIcons = tt_content:subheader,layout
595 editIcons.beforeLastTag = 1
596 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.subheader
598 prefixComment = 2 | Subheader:
607 tt_content.text = COA
616 parseFunc = < lib.parseFunc_RTE
618 editIcons = tt_content:bodytext
619 editIcons.beforeLastTag = 1
620 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.bodytext
622 prefixComment = 2 | Text:
631 # (also used for rendering 'textpic' type):
632 tt_content.image = COA
633 tt_content.image.10 = < lib.stdheader
634 tt_content.image.20 = USER
635 tt_content.image.20 {
636 userFunc = TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController->render_textpic
639 // To optimize performance we load all image captions into a register
640 // because we need to know if at least one image has a caption at
641 // multiple places to determine the render method.
642 allImageCaptions.cObject = FILES
643 allImageCaptions.cObject {
649 renderObj.data = file:current:description
654 imgList.cObject = FILES
656 references < tt_content.image.20.preRenderRegisters.allImageCaptions.cObject.references
658 renderObj.data = file:current:uid
661 imgPath = uploads/pics/
663 // This needs to be set because the UID list generated in the imgList
664 // setting contains UIDs of file references (not files).
665 imgListContainsReferenceUids = 1
667 # Single image rendering
670 file.import.data = file:current:uid
671 file.treatIdAsReference = 1
672 file.width.field = imagewidth
674 layoutKey = {$styles.content.imgtext.layoutKey}
677 element = <img src="###SRC###" width="###WIDTH###" height="###HEIGHT###"###PARAMS######ALTPARAMS######BORDER######SELFCLOSINGTAGSLASH###>
680 element = <img src="###SRC###" srcset="###SOURCECOLLECTION###"###PARAMS######ALTPARAMS######SELFCLOSINGTAGSLASH###>
681 source = |*|###SRC### ###SRCSETCANDIDATE###,|*|###SRC### ###SRCSETCANDIDATE###
684 element = <picture>###SOURCECOLLECTION###<img src="###SRC###"###PARAMS######ALTPARAMS######SELFCLOSINGTAGSLASH###></picture>
685 source = <source srcset="###SRC###" media="###MEDIAQUERY###"###SELFCLOSINGTAGSLASH###>
688 element = <img src="###SRC###"###SOURCECOLLECTION######PARAMS######ALTPARAMS######SELFCLOSINGTAGSLASH###>
689 source = data-###DATAKEY###="###SRC###"
690 source.noTrimWrap = ; ;;
691 source.noTrimWrap.splitChar = ;
694 # Default sourceCollection as an example
695 # Please write your own sourceCollection (highly recommended)
700 srcsetCandidate = 600w
701 mediaQuery = (max-device-width: 600px)
706 value = {$styles.content.imgtext.layoutKey}
714 srcsetCandidate = 600w 2x
715 mediaQuery = (max-device-width: 600px) AND (min-resolution: 192dpi)
716 dataKey = smallRetina
722 bodyTag = <body style="margin:0; background:#fff;">
723 wrap = <a href="javascript:close();"> | </a>
724 width = {$styles.content.imgtext.linkWrap.width}
725 height = {$styles.content.imgtext.linkWrap.height}
726 effects = {$styles.content.imgtext.linkWrap.effects}
729 JSwindow.newWindow = {$styles.content.imgtext.linkWrap.newWindow}
730 JSwindow.if.isFalse = {$styles.content.imgtext.linkWrap.lightboxEnabled}
732 directImageLink = {$styles.content.imgtext.linkWrap.lightboxEnabled}
734 enable.field = image_zoom
735 enable.ifEmpty.typolink.parameter.data = file:current:link
736 enable.ifEmpty.typolink.returnLast = url
738 typolink.parameter.data = file:current:link
740 typolink.target < lib.parseTarget
742 typolink.target.override = {$styles.content.links.target}
744 typolink.extTarget < lib.parseTarget
746 typolink.extTarget.override = {$styles.content.links.extTarget}
748 linkParams.ATagParams.dataWrap = class="{$styles.content.imgtext.linkWrap.lightboxCssClass}" rel="{$styles.content.imgtext.linkWrap.lightboxRelAttribute}"
753 data = file:current:alternative
758 titleText.data = file:current:title
767 returnKey.data = register : IMAGE_NUM_CURRENT
772 emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling}
773 titleInLink = {$styles.content.imgtext.titleInLink}
774 titleInLinkAndImg = {$styles.content.imgtext.titleInLinkAndImg}
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
783 equalH.field = imageheight
785 image_compression.field = image_compression
786 image_effects.field = image_effects
788 noRows.field = image_noRows
790 cols.field = imagecols
791 border.field = imageborder
798 data = file:current:description
806 captionAlign.field = imagecaption_position
808 // This needs to be set to TRUE because otherwise render_textpic will
809 // render a global caption which we do not have.
812 borderThick = {$styles.content.imgtext.borderThick}
813 borderClass = {$styles.content.imgtext.borderClass}
814 colSpace = {$styles.content.imgtext.colSpace}
815 textMargin = {$styles.content.imgtext.textMargin}
817 borderSpace = {$styles.content.imgtext.borderSpace}
818 separateRows = {$styles.content.imgtext.separateRows}
821 addClassesCol.ifEmpty = csc-textpic-firstcol csc-textpic-lastcol
822 addClassesCol.override = csc-textpic-firstcol |*| |*| csc-textpic-lastcol
823 addClassesCol.override.if {
824 isGreaterThan.field = imagecols
828 addClassesImage = csc-textpic-first |*| |*| csc-textpic-last
831 imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap" style="width:{register:totalwidth}px;"> | </div>
832 imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap"> | </div>
834 # if noRows is set, wrap around each column:
835 imageColumnStdWrap.dataWrap = <div class="csc-textpic-imagecolumn" style="width:{register:columnwidth}px;"> | </div>
839 key.field = imageorient
843 value = <div class="csc-textpic csc-textpic-center csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
844 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-center csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
848 equals = {$styles.content.imgtext.layoutKey}
856 value = <div class="csc-textpic csc-textpic-right csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
857 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-right csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
861 equals = {$styles.content.imgtext.layoutKey}
869 value = <div class="csc-textpic csc-textpic-left csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
870 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-left csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div>
874 equals = {$styles.content.imgtext.layoutKey}
882 value = <div class="csc-textpic csc-textpic-center csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
883 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-center csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
887 equals = {$styles.content.imgtext.layoutKey}
895 value = <div class="csc-textpic csc-textpic-right csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
896 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-right csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
900 equals = {$styles.content.imgtext.layoutKey}
908 value = <div class="csc-textpic csc-textpic-left csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
909 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-left csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div>
913 equals = {$styles.content.imgtext.layoutKey}
921 value = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div>
922 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div>
926 equals = {$styles.content.imgtext.layoutKey}
934 value = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>
935 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>
939 equals = {$styles.content.imgtext.layoutKey}
944 # intext-right-nowrap
947 value = <div class="csc-textpic csc-textpic-intext-right-nowrap###CLASSES###">###IMAGES######TEXT###</div>
948 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-intext-right-nowrap###CLASSES###">###IMAGES######TEXT###</div>
952 equals = {$styles.content.imgtext.layoutKey}
960 value = <div class="csc-textpic csc-textpic-intext-left-nowrap###CLASSES###">###IMAGES######TEXT###</div>
961 override = <div class="csc-textpic csc-textpic-responsive csc-textpic-intext-left-nowrap###CLASSES###">###IMAGES######TEXT###</div>
965 equals = {$styles.content.imgtext.layoutKey}
973 # Single image - No caption
975 # Choose another rendering for special edge cases
976 fallbackRendering = COA
978 # Single image - Caption
982 isTrue.data = file:current:description
984 equals.data = register:imageCount
986 value = singleCaption
989 # Multiple images and split caption
994 isGreaterThan.data = register:imageCount
995 isTrue.if.isFalse.data = register:renderGlobalCaption
996 isTrue.data = register:allImageCaptions
1001 # Multiple images and no caption at all
1006 isGreaterThan.data = register:imageCount
1007 isFalse.data = register:allImageCaptions
1013 dataWrap = <div class="csc-textpic-imagewrap"> | </div>
1015 override = <div class="csc-textpic-imagewrap" data-csc-images="{register:imageCount}" data-csc-cols="{field:imagecols}"> | </div>
1019 equals.data = TSFE:config|config|doctype
1023 innerWrap.cObject = CASE
1025 key.field = imageorient
1028 0.value = <div class="csc-textpic-center-outer"><div class="csc-textpic-center-inner"> | </div></div>
1034 wrap = <div class="csc-textpic-image###CLASSES###"> | </div>
1036 override = <figure class="csc-textpic-image###CLASSES###"> | </figure>
1040 equals.data = TSFE:config|config|doctype
1046 noRowsStdWrap.wrap = |
1047 lastRowStdWrap.wrap = |
1048 columnStdWrap.wrap = |
1049 imgTagStdWrap.wrap = |
1050 editIconsStdWrap.wrap = <div> | </div>
1054 # Multiple images and no caption at all
1055 fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
1057 dataWrap = <div class="csc-textpic-imagewrap"> | </div>
1059 override = <div class="csc-textpic-imagewrap" data-csc-images="{register:imageCount}" data-csc-cols="{field:imagecols}"> | </div>
1063 equals.data = TSFE:config|config|doctype
1069 wrap = <div class="csc-textpic-image###CLASSES###"> | </div>
1071 override = <figure class="csc-textpic-image###CLASSES###"> | </figure>
1074 rowStdWrap.wrap = <div class="csc-textpic-imagerow"> | </div>
1075 noRowsStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-none"> | </div>
1076 lastRowStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last"> | </div>
1077 columnStdWrap.wrap = <div class="csc-textpic-imagecolumn###CLASSES###"> | </div>
1080 # Just one image with a caption
1081 fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
1083 wrap = <div class="csc-textpic-image###CLASSES###"><table>###CAPTION###<tbody><tr><td> | </td></tr></tbody></table></div>
1085 override = <figure class="csc-textpic-image###CLASSES###">|###CAPTION###</figure>
1089 equals.data = TSFE:config|config|doctype
1096 wrap = <caption class="csc-textpic-caption###CLASSES###"> | </caption>
1098 override = <figcaption class="csc-textpic-caption###CLASSES###"> | </figcaption>
1102 equals.data = TSFE:config|config|doctype
1109 fallbackRendering < tt_content.image.20.rendering.singleNoCaption.fallbackRendering.10
1111 wrap = <div class="csc-textpic-image###CLASSES###"><table>###CAPTION###<tbody><tr><td> | </td></tr></tbody></table></div>
1113 override = <figure class="csc-textpic-image###CLASSES###">|###CAPTION###</figure>
1117 equals.data = TSFE:config|config|doctype
1122 rowStdWrap.wrap = <div class="csc-textpic-imagerow"> | </div>
1123 noRowsStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-none"> | </div>
1124 lastRowStdWrap.wrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last"> | </div>
1125 columnStdWrap.wrap = <div class="csc-textpic-imagecolumn###CLASSES###"> | </div>
1128 wrap = <caption class="csc-textpic-caption###CLASSES###"> | </caption>
1130 override = <figcaption class="csc-textpic-caption###CLASSES###"> | </figcaption>
1134 equals.data = TSFE:config|config|doctype
1141 renderMethod = singleNoCaption
1143 editIcons = tt_content : image [imageorient|imagewidth|imageheight],[imagecols|image_noRows|imageborder],[image_zoom],[image_compression|image_effects|image_frames],[imagecaption_position]
1144 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.images
1146 caption.editIcons = tt_content : imagecaption_position
1147 caption.editIcons.beforeLastTag=1
1148 caption.editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.caption_position
1150 stdWrap.prefixComment = 2 | Image block:
1156 tt_content.textpic = COA
1157 tt_content.textpic {
1160 10.if.isLessThan.field = imageorient
1161 10.10 = < lib.stdheader
1163 20 = < tt_content.image.20
1168 if.isGreaterThan.field = imageorient
1169 10 = < lib.stdheader
1170 10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
1172 text.20 = < tt_content.text.20
1173 text.wrap = <div class="csc-textpic-text"> | </div>
1182 tt_content.bullets = COA
1183 tt_content.bullets {
1184 10 = < lib.stdheader
1192 cObjNum = |*|1|| 2|*|
1194 1.htmlSpecialChars = 1
1195 1.wrap = <li class="odd">|</li>
1198 2.htmlSpecialChars = 1
1199 2.wrap = <li class="even">|</li>
1201 dataWrap = <ul class="csc-bulletlist csc-bulletlist-{field:layout}">|</ul>
1202 editIcons = tt_content: bodytext, [layout]
1203 editIcons.beforeLastTag = 1
1204 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xlf:eIcon.bullets
1206 prefixComment = 2 | Bullet list:
1214 tt_content.uploads = COA
1215 tt_content.uploads {
1216 10 = < lib.stdheader
1220 # get from file references:
1226 collections.field = file_collections
1228 # get from path (backwards compatibility, contains strings like "fileadmin/user_uploads/")
1229 folders.field = select_key
1231 sorting.field = filelink_sorting
1238 file.import.data = file:current:originalUid // file:current:uid
1242 if.isGreaterThan.field = layout
1245 parameter.data = file:current:originalUid // file:current:uid
1246 parameter.wrap = file:|
1247 fileTarget < lib.parseTarget
1249 fileTarget.override = {$styles.content.uploads.target}
1250 fileTarget.override.override.field = target
1251 removePrependedNumbers = 1
1254 data = file:current:title
1255 htmlSpecialChars = 1
1259 jumpurl = {$styles.content.uploads.jumpurl}
1261 secure = {$styles.content.uploads.jumpurl_secure}
1262 secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}
1272 file.import = typo3/sysext/frontend/Resources/Public/Icons/FileIcons/
1273 file.import.data = file:current:extension
1274 file.import.case = lower
1275 file.import.wrap = |.gif
1279 isGreaterThan.field = layout
1281 # only show the icon if we don't have a thumbnail:
1282 isFalse.cObject = IMG_RESOURCE
1283 isFalse.cObject.file < tt_content.uploads.20.renderObj.10.file
1284 isFalse.cObject.stdWrap.if < tt_content.uploads.20.renderObj.10.stdWrap.if
1287 typolink < tt_content.uploads.20.renderObj.10.stdWrap.typolink
1294 data = file:current:title // file:current:name
1295 htmlSpecialChars = 1
1299 # equivalent to former useSpacesInLinkText = 0; remove using > to disable it
1305 # equivalent to former stripFileExtensionFromLinkText = 0; move "_20" to "20" to enable it. Disabled by default.
1307 search = /(.*)(\..*)/
1313 typolink < tt_content.uploads.20.renderObj.10.stdWrap.typolink
1315 wrap = <span class="csc-uploads-fileName">|</span>
1321 data = file:current:description
1322 htmlSpecialChars = 1
1323 wrap = <span class="csc-uploads-description">|</span>
1331 if.isTrue.field = filelink_size
1332 data = file:current:size
1333 wrap = <span class="csc-uploads-fileSize">|</span>
1335 bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
1338 # wrap of each listed file with odd/even class
1343 oddEvenClass = li-odd li-first |*| li-even || li-odd
1344 elementClass = csc-uploads-element csc-uploads-element-{file:current:extension}
1345 elementClass.insertData = 1
1350 value = <li class="{register:oddEvenClass} {register:elementClass}">|</li>
1353 30 = RESTORE_REGISTER
1357 # wrap around whole content element with <ul> and editIcons
1359 editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size
1360 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.filelist
1361 prefixComment = 2 | Filelist:
1362 dataWrap = <ul class="csc-uploads csc-uploads-{field:layout}">|</ul>
1372 # Rendered by a PHP function specifically written to handle CE tables. See EXT:css_styled_content/Classes/Controller/CssStyledContentController.php
1373 tt_content.table = COA
1375 10 = < lib.stdheader
1378 20.userFunc = TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController->render_table
1383 1 = {$styles.content.table.backgroundColor.1}
1384 2 = {$styles.content.table.backgroundColor.2}
1386 240 = {$styles.content.table.backgroundColor.240}
1387 241 = {$styles.content.table.backgroundColor.241}
1388 242 = {$styles.content.table.backgroundColor.242}
1389 243 = {$styles.content.table.backgroundColor.243}
1390 244 = {$styles.content.table.backgroundColor.244}
1412 20.innerStdWrap.wrap = |
1413 20.innerStdWrap.htmlSpecialChars = 1
1414 20.innerStdWrap.br = 1
1417 editIcons = tt_content: cols, bodytext, [layout], [table_bgColor|table_border|table_cellspacing|table_cellpadding]
1418 editIcons.beforeLastTag = 1
1419 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.table
1421 prefixComment = 2 | Table:
1425 # ******************
1427 # ******************
1428 tt_content.multimedia = COA
1429 tt_content.multimedia {
1430 10 = < lib.stdheader
1433 20.file.field = multimedia
1434 20.file.wrap = uploads/media/
1436 20.params.field = bodytext
1439 editIcons = tt_content: multimedia, bodytext
1440 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.multimedia
1442 prefixComment = 2 | Multimedia element:
1449 tt_content.swfobject = COA
1450 tt_content.swfobject {
1451 10 = < lib.stdheader
1459 flexParams.field = pi_flexform
1461 alternativeContent.field = bodytext
1463 layout = ###SWFOBJECT###
1466 player = {$styles.content.media.videoPlayer}
1468 defaultWidth = {$styles.content.media.defaultVideoWidth}
1469 defaultHeight = {$styles.content.media.defaultVideoHeight}
1472 params.quality = high
1474 params.allowScriptAccess = sameDomain
1475 params.allowFullScreen = true
1483 player = {$styles.content.media.audioPlayer}
1485 defaultWidth = {$styles.content.media.defaultAudioWidth}
1486 defaultHeight = {$styles.content.media.defaultAudioHeight}
1489 params.quality = high
1490 params.allowScriptAccess = sameDomain
1494 flashvars.file = soundFile
1500 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1501 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.multimedia
1503 prefixComment = 2 | SWFobject element:
1510 tt_content.qtobject = COA
1511 tt_content.qtobject {
1512 10 = < lib.stdheader
1520 flexParams.field = pi_flexform
1522 alternativeContent.field = bodytext
1524 layout = ###QTOBJECT###
1527 player = {$styles.content.media.videoPlayer}
1529 defaultWidth = {$styles.content.media.defaultVideoWidth}
1530 defaultHeight = {$styles.content.media.defaultVideoHeight}
1533 params.quality = high
1535 params.allowScriptAccess = sameDomain
1536 params.allowFullScreen = true
1544 player = {$styles.content.media.audioPlayer}
1546 defaultWidth = {$styles.content.media.defaultAudioWidth}
1547 defaultHeight = {$styles.content.media.defaultAudioHeight}
1550 params.quality = high
1551 params.allowScriptAccess = sameDomain
1555 flashvars.file = soundFile
1560 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1561 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.multimedia
1563 prefixComment = 2 | QTobject element:
1570 tt_content.media = COA
1572 10 = < lib.stdheader
1577 flexParams.field = pi_flexform
1578 alternativeContent < tt_content.text.20
1579 alternativeContent.field = bodytext
1603 mimeConf.swfobject < tt_content.swfobject.20
1604 mimeConf.qtobject < tt_content.qtobject.20
1605 mimeConf.flowplayer < tt_content.swfobject.20
1606 mimeConf.flowplayer.audio.player = {$styles.content.media.flowPlayer}
1607 mimeConf.flowplayer.video.player = {$styles.content.media.flowPlayer}
1611 editIcons = tt_content: pi_flexform, bodytext
1612 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.multimedia
1614 prefixComment = 2 | Media element:
1618 # ******************
1620 # ******************
1621 tt_content.mailform = COA
1622 tt_content.mailform.10 = < lib.stdheader
1623 tt_content.mailform.20 = FORM
1624 tt_content.mailform.20 {
1625 useDefaultContentObject = 1
1629 dontMd5FieldNames = 1
1630 layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>
1632 commentWrap.wrap = |
1633 radioWrap.wrap = |<br />
1634 radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>
1636 REQ.labelWrap.wrap = |
1637 COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>
1638 RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>
1639 LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>
1640 target < lib.parseTarget
1642 target.override = {$styles.content.mailform.target}
1643 goodMess = {$styles.content.mailform.goodMess}
1644 badMess = {$styles.content.mailform.badMess}
1645 redirect.field = pages
1646 redirect.listNum = 0
1647 recipient.field = subheader
1648 data.field = bodytext
1650 hiddenFields.stdWrap.wrap = <div style="display:none;">|</div>
1652 params.radio = class="csc-mailform-radio"
1653 params.check = class="csc-mailform-check"
1654 params.submit = class="csc-mailform-submit"
1656 stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>
1658 editIcons = tt_content: bodytext, pages, subheader
1659 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.form
1661 prefixComment = 2 | Mail form inserted:
1666 # ******************
1668 # ******************
1669 tt_content.search = COA
1670 tt_content.search.10 = < lib.stdheader
1672 tt_content.search.20 = SEARCHRESULT
1673 tt_content.search.20 {
1674 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
1675 languageField.tt_content = sys_language_uid
1680 10.field = pages_title
1681 10.htmlSpecialChars = 1
1683 parameter.field = uid
1684 target < lib.parseTarget
1686 target.override = {$styles.content.searchresult.resultTarget}
1687 additionalParams.data = register:SWORD_PARAMS
1688 additionalParams.required = 1
1689 additionalParams.wrap = &no_cache=1
1691 10.htmlSpecialChars = 1
1692 10.wrap = <h3 class="csc-searchResultHeader">|</h3>
1697 10.field = tt_content_bodytext
1699 10.htmlSpecialChars = 1
1701 20.stdWrap.crop = 200 | ...
1702 20.stdWrap.wrap = <p class="csc-searchResult">|</p>
1707 wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###
1710 10.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:search.resultRange
1711 10.wrap = <td class="csc-searchResultRange"><p>|</p></td>
1714 20.value = ###PREV### ###NEXT###
1715 20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>
1721 10.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:search.emptySearch
1722 10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>
1726 next.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:search.searchResultNext
1729 prev.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:search.searchResultPrev
1731 target < lib.parseTarget
1733 target.override = {$styles.content.searchresult.target}
1737 stdWrap.prefixComment = 2 | Search result:
1741 tt_content.search.30 < tt_content.mailform.20
1742 tt_content.search.30 {
1743 goodMess = {$styles.content.searchform.goodMess}
1748 10.label.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:search.searchWord
1749 10.type = sword=input
1750 20.label.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:search.searchIn
1751 20.type = scols=select
1753 10.label.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:search.headersKeywords
1754 10.value = pages.title-subtitle-keywords-description:tt_content.header
1755 20.label.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:search.pageContent
1756 20.value = tt_content.header-bodytext-imagecaption
1758 30.type = stype=hidden
1760 40.type = submit=submit
1761 40.value.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:search.searchButton
1765 locationData = HTTP_POST_VARS
1768 stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform"> | </table>
1770 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.search
1772 prefixComment = 2 | Search form inserted:
1780 tt_content.menu = COA
1782 10 = < lib.stdheader
1786 key.field = menu_type
1788 # "Menu of these pages"
1792 special.value.field = pages
1797 if.isTrue.field = accessibility_bypass
1801 accessibility_bypass_text = TEXT
1802 accessibility_bypass_text {
1803 field = accessibility_bypass_text
1813 dataWrap = sorting>{field:sorting}
1815 languageField = sys_language_uid
1821 data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:menu.bypassNavigation
1822 override.data = register:accessibility_bypass_text
1824 htmlSpecialChars = 1
1833 wrap = <li class="csc-nav-bypass">|</li>
1836 30 = RESTORE_REGISTER
1838 outerWrap = <ul class="csc-menu csc-menu-def">|</ul>
1843 target < lib.parseTarget
1845 target.override = {$PAGE_TARGET}
1847 stdWrap.htmlSpecialChars = 1
1848 wrapItemAndSub = <li>|</li>
1849 ATagTitle.field = description // title
1854 # "Menu of subpages to these pages"
1859 outerWrap = <ul class="csc-menu csc-menu-1">|</ul>
1863 # "Sitemap - liststyle"
1866 stdWrap < tt_content.menu.20.default.stdWrap
1868 outerWrap = <div class="csc-sitemap">|</div>
1872 target < lib.parseTarget
1874 target.override = {$PAGE_TARGET}
1878 stdWrap.htmlSpecialChars = 1
1879 wrapItemAndSub = <li>|</li>
1880 ATagTitle.field = description // title
1891 # "Section index (pagecontent w/Index checked - liststyle)"
1899 isFalse.field = pages
1905 outerWrap = <ul class="csc-menu csc-menu-3">|</ul>
1910 sectionIndex.type = header
1911 NO.wrapItemAndSub = <li class="csc-section">|</li>
1915 # "Menu of subpages to these pages (with abstract)"
1919 prepend.20.renderObj.wrap = <dt class="csc-nav-bypass">|</dt><dd> </dd>
1920 outerWrap = <dl class="csc-menu csc-menu-4">|</dl>
1924 linkWrap = <dt>|</dt>
1928 data = field : abstract // field : description // field : subtitle
1929 htmlSpecialChars = 1
1935 ATagTitle.field = description // title
1939 # "Recently updated pages"
1943 outerWrap = <ul class="csc-menu csc-menu-5">|</ul>
1948 excludeNoSearchPages = 1
1952 # "Related pages (based on keywords)"
1956 outerWrap = <ul class="csc-menu csc-menu-6">|</ul>
1960 excludeNoSearchPages = 1
1964 # "Menu of subpages to these pages + sections - liststyle"
1968 outerWrap = <ul class="csc-menu csc-menu-7">|</ul>
1974 sectionIndex.type = header
1976 NO.wrapItemAndSub = <li class="csc-section">|</li>
1980 # "Sitemaps of selected pages - liststyle"
1984 special.value.field = pages
1987 # Menu of categorized pages
1988 categorized_pages < .default
1990 special = categories
1991 special.value.field = selected_categories
1992 special.relation.field = category_field
1993 special.sorting = title
1996 outerWrap = <ul class="csc-menu csc-menu-categorized-pages">|</ul>
2000 # Menu of categorized content elements
2001 categorized_content = RECORDS
2002 categorized_content {
2003 categories.field = selected_categories
2004 categories.relation.field = category_field
2006 conf.tt_content = TEXT
2009 typolink.parameter = {field:pid}#{field:uid}
2010 typolink.parameter.insertData = 1
2023 field = accessibility_title
2024 htmlSpecialChars = 1
2025 dataWrap = <map id="map{field:uid}" title="|">
2027 override = <map name="map{field:uid}" title="|">
2030 isFalse.data = TSFE:xhtmlDoctype
2043 field = accessibility_title
2047 editIcons = tt_content: menu_type, pages
2048 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.menuSitemap
2050 prefixComment = 2 | Menu/Sitemap element:
2059 # Should be a complete copy from the old static template "content (default)"
2060 tt_content.shortcut = COA
2061 tt_content.shortcut {
2065 source.field = records
2066 tables = {$content.shortcut.tables}
2070 editIcons = tt_content: records
2071 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.recordList
2073 prefixComment = 2 | Inclusion of other records (by reference):
2081 # Should be a complete copy from the old static template "content (default)" (except "lib.stdheader")
2082 tt_content.list = COA
2084 10 = < lib.stdheader
2087 20.key.field = list_type
2090 editIcons = tt_content: list_type, layout, select_key, pages [recursive]
2091 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.plugin
2093 prefixComment = 2 | Plugin inserted:
2101 tt_content.div = TEXT
2106 isTrue.data = TSFE:xhtmlDoctype
2108 wrap = <div class="divider">|</div>
2109 prefixComment = 2 | Div element
2116 # This truely IS a content object, launched from inside the PHP class of course.
2117 # Should be a complete copy from the old static template "content (default)"
2118 tt_content.html = TEXT
2122 editIcons = tt_content:bodytext
2123 editIcons.beforeLastTag = 1
2124 editIcons.iconTitle.data = LLL:EXT:css_styled_content/Resources/Private/Language/locallang.xlf:eIcon.html
2126 prefixComment = 2 | Raw HTML content:
2131 # Default error msg:
2133 tt_content.default = TEXT
2134 tt_content.default {
2136 wrap = <p style="background-color: yellow;"><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>
2137 htmlSpecialChars = 1
2139 prefixComment = 2 | Unknown element message:
2142 # *********************************************************************
2144 # *********************************************************************
2152 plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (
2154 .csc-header-alignment-center { text-align: center; }
2155 .csc-header-alignment-right { text-align: right; }
2156 .csc-header-alignment-left { text-align: left; }
2158 div.csc-textpic-responsive, div.csc-textpic-responsive * { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
2160 /* Clear floats after csc-textpic and after csc-textpic-imagerow */
2161 div.csc-textpic, div.csc-textpic div.csc-textpic-imagerow, ul.csc-uploads li { overflow: hidden; }
2163 /* Set padding for tables */
2164 div.csc-textpic .csc-textpic-imagewrap table { border-collapse: collapse; border-spacing: 0; }
2165 div.csc-textpic .csc-textpic-imagewrap table tr td { padding: 0; vertical-align: top; }
2167 /* Settings for figure and figcaption (HTML5) */
2168 div.csc-textpic .csc-textpic-imagewrap figure, div.csc-textpic figure.csc-textpic-imagewrap { margin: 0; display: table; }
2171 figcaption.csc-textpic-caption { display: table-caption; }
2172 .csc-textpic-caption { text-align: left; caption-side: bottom; }
2173 div.csc-textpic-caption-c .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-c { text-align: center; }
2174 div.csc-textpic-caption-r .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-r { text-align: right; }
2175 div.csc-textpic-caption-l .csc-textpic-caption, .csc-textpic-imagewrap .csc-textpic-caption-l { text-align: left; }
2177 /* Float the columns */
2178 div.csc-textpic div.csc-textpic-imagecolumn { float: left; }
2180 /* Border just around the image */
2181 {$styles.content.imgtext.borderSelector} {
2182 border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};
2183 padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;
2186 div.csc-textpic .csc-textpic-imagewrap img { border: none; display: block; }
2188 /* Space below each image (also in-between rows) */
2189 div.csc-textpic .csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
2190 div.csc-textpic .csc-textpic-imagewrap .csc-textpic-imagerow-last .csc-textpic-image { margin-bottom: 0; }
2192 /* colSpace around image columns, except for last column */
2193 div.csc-textpic-imagecolumn, td.csc-textpic-imagecolumn .csc-textpic-image { margin-right: {$styles.content.imgtext.colSpace}px; }
2194 div.csc-textpic-imagecolumn.csc-textpic-lastcol, td.csc-textpic-imagecolumn.csc-textpic-lastcol .csc-textpic-image { margin-right: 0; }
2196 /* Add margin from image-block to text (in case of "Text & Images") */
2197 div.csc-textpic-intext-left .csc-textpic-imagewrap,
2198 div.csc-textpic-intext-left-nowrap .csc-textpic-imagewrap {
2199 margin-right: {$styles.content.imgtext.textMargin}px;
2201 div.csc-textpic-intext-right .csc-textpic-imagewrap,
2202 div.csc-textpic-intext-right-nowrap .csc-textpic-imagewrap {
2203 margin-left: {$styles.content.imgtext.textMargin}px;
2206 /* Positioning of images: */
2208 /* Center (above or below) */
2209 div.csc-textpic-center .csc-textpic-imagewrap, div.csc-textpic-center figure.csc-textpic-imagewrap { overflow: hidden; }
2210 div.csc-textpic-center .csc-textpic-center-outer { position: relative; float: right; right: 50%; }
2211 div.csc-textpic-center .csc-textpic-center-inner { position: relative; float: right; right: -50%; }
2213 /* Right (above or below) */
2214 div.csc-textpic-right .csc-textpic-imagewrap { float: right; }
2215 div.csc-textpic-right div.csc-textpic-text { clear: right; }
2217 /* Left (above or below) */
2218 div.csc-textpic-left .csc-textpic-imagewrap { float: left; }
2219 div.csc-textpic-left div.csc-textpic-text { clear: left; }
2221 /* Left (in text) */
2222 div.csc-textpic-intext-left .csc-textpic-imagewrap { float: left; }
2224 /* Right (in text) */
2225 div.csc-textpic-intext-right .csc-textpic-imagewrap { float: right; }
2227 /* Right (in text, no wrap around) */
2228 div.csc-textpic-intext-right-nowrap .csc-textpic-imagewrap { float: right; }
2230 /* Left (in text, no wrap around) */
2231 div.csc-textpic-intext-left-nowrap .csc-textpic-imagewrap { float: left; }
2233 div.csc-textpic div.csc-textpic-imagerow-last, div.csc-textpic div.csc-textpic-imagerow-none div.csc-textpic-last { margin-bottom: 0; }
2235 /* Browser fixes: */
2237 /* Fix for unordered and ordered list with image "In text, left" */
2238 .csc-textpic-intext-left ol, .csc-textpic-intext-left ul { padding-left: 40px; overflow: auto; }
2241 ul.csc-uploads { padding: 0; }
2242 ul.csc-uploads li { list-style: none outside none; margin: 1em 0; }
2243 ul.csc-uploads img { float: left; margin-right: 1em; vertical-align: top; }
2244 ul.csc-uploads span { display: block; }
2245 ul.csc-uploads span.csc-uploads-fileName { text-decoration: underline; }
2247 /* Table background colors: */
2249 table.contenttable-color-1 { background-color: {$styles.content.table.backgroundColor.1}; }
2250 table.contenttable-color-2 { background-color: {$styles.content.table.backgroundColor.2}; }
2251 table.contenttable-color-240 { background-color: {$styles.content.table.backgroundColor.240}; }
2252 table.contenttable-color-241 { background-color: {$styles.content.table.backgroundColor.241}; }
2253 table.contenttable-color-242 { background-color: {$styles.content.table.backgroundColor.242}; }
2254 table.contenttable-color-243 { background-color: {$styles.content.table.backgroundColor.243}; }
2255 table.contenttable-color-244 { background-color: {$styles.content.table.backgroundColor.244}; }