TYPO free

home

fighting for TYPO free code

Code highlighter

CSS Styled Content
  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 persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!)
  60. lib.parseFunc {
  61.         makelinks = 1
  62.         makelinks.http.keep = {$styles.content.links.keep}
  63.         makelinks.http.extTarget = {$styles.content.links.extTarget}
  64.         makelinks.mailto.keep = path
  65.         tags {
  66.                 link = TEXT
  67.                 link {
  68.                         current = 1
  69.                         typolink.parameter.data = parameters : allParams
  70.                         typolink.extTarget = {$styles.content.links.extTarget}
  71.                         typolink.target = {$styles.content.links.target}
  72.                         parseFunc.constants =1
  73.                 }
  74.         }
  75.         allowTags = {$styles.content.links.allowTags}
  76.         denyTags = *
  77.         sword = <span class="csc-sword">|</span>
  78.         constants = 1
  79.  
  80.         nonTypoTagStdWrap.HTMLparser = 1
  81.         nonTypoTagStdWrap.HTMLparser {
  82.                 keepNonMatchedTags = 1
  83.                 htmlSpecialChars = 2
  84.         }
  85. }
  86.  
  87. # good old parsefunc in "styles.content.parseFunc" is created for backwards compatibility. Don't use it, just ignore.
  88. styles.content.parseFunc < lib.parseFunc
  89.  
  90. # Creates persistent ParseFunc setup for RTE content (which is mainly HTML) based on the "ts_css" transformation.
  91. lib.parseFunc_RTE < lib.parseFunc
  92. lib.parseFunc_RTE {
  93.         //  makelinks >
  94.         # Processing <table> and <blockquote> blocks separately
  95.         externalBlocks = table, blockquote, ol,ul
  96.         externalBlocks {
  97.                 # The blockquote content is passed into parseFunc again...
  98.                 blockquote.stripNL=1
  99.                 blockquote.callRecursive=1
  100.                 blockquote.callRecursive.tagStdWrap.HTMLparser = 1
  101.                 blockquote.callRecursive.tagStdWrap.HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;"
  102.  
  103.                 ol.stripNL=1
  104.                 ol.stdWrap.parseFunc = < lib.parseFunc
  105.  
  106.                 ul.stripNL=1
  107.                 ul.stdWrap.parseFunc = < lib.parseFunc
  108.  
  109.                 table.stripNL=1
  110.                 table.stdWrap.HTMLparser = 1
  111.                 table.stdWrap.HTMLparser.tags.table.fixAttrib.class {
  112.                         default = contenttable
  113.                         always = 1
  114.                         list = contenttable
  115.                 }
  116.                 table.stdWrap.HTMLparser.keepNonMatchedTags = 1
  117.                 table.HTMLtableCells=1
  118.                 table.HTMLtableCells {
  119.                         default.callRecursive=1
  120.                         addChr10BetweenParagraphs=1
  121.                 }
  122.         }
  123.         nonTypoTagStdWrap.encapsLines {
  124.                 encapsTagList = div,p,pre,h1,h2,h3,h4,h5,h6
  125.                 remapTag.DIV = P
  126.                 nonWrappedTag = P
  127.                 innerStdWrap_all.ifBlank = &nbsp;
  128.                 addAttributes.P.class = bodytext
  129.                 addAttributes.P.class.setOnly=blank
  130.         }
  131.         nonTypoTagStdWrap.HTMLparser = 1
  132.         nonTypoTagStdWrap.HTMLparser {
  133.                 keepNonMatchedTags = 1
  134.                 htmlSpecialChars = 2
  135.         }
  136. }
  137.  
  138.  
  139. # Content header:
  140. lib.stdheader = COA
  141. lib.stdheader {
  142.  
  143.         # Create align style-attribute for <Hx> tags
  144.         2 = LOAD_REGISTER
  145.         2.headerStyle.field = header_position
  146.         2.headerStyle.required = 1
  147.         2.headerStyle.noTrimWrap = | style="text-align:|;"|
  148.  
  149.         # Create class="csc-firstHeader" attribute for <Hx> tags
  150.         3 = LOAD_REGISTER
  151.         3.headerClass = csc-firstHeader
  152.         3.headerClass.if.value=1
  153.         3.headerClass.if.equals.data = cObj:parentRecordNumber
  154.         3.headerClass.noTrimWrap = | class="|"|
  155.  
  156.         # Date format:
  157.         5 = TEXT
  158.         5.field = date
  159.         5.if.isTrue.field = date
  160.         5.date = d/m Y
  161.         5.wrap = <p class="csc-header-date">|</p>
  162.         5.prefixComment = 2 | Header date:
  163.  
  164.         # This CASE cObject renders the header content:
  165.         # currentValue is set to the header data, possibly wrapped in link-tags.
  166.         10 = CASE
  167.         10.setCurrent {
  168.                 field = header
  169.                 htmlSpecialChars = 1
  170.                 typolink.parameter.field = header_link
  171.         }
  172.         10.key.field = header_layout
  173.         10.key.ifEmpty = {$content.defaultHeaderType}
  174.         10.key.ifEmpty.override.data = register: defaultHeaderType
  175.  
  176.         10.1 = TEXT
  177.         10.1.current = 1
  178.         10.1.insertData = 1
  179.         10.1.fontTag = <h1{register:headerStyle}{register:headerClass}>|</h1>
  180.  
  181.         10.2 < .10.1
  182.         10.2.fontTag = <h2{register:headerStyle}{register:headerClass}>|</h2>
  183.  
  184.         10.3 < .10.1
  185.         10.3.fontTag = <h3{register:headerStyle}{register:headerClass}>|</h3>
  186.  
  187.         10.4 < .10.1
  188.         10.4.fontTag = <h4{register:headerStyle}{register:headerClass}>|</h4>
  189.  
  190.         10.5 < .10.1
  191.         10.5.fontTag = <h5{register:headerStyle}{register:headerClass}>|</h5>
  192.  
  193.         # Pops the used registers off the stack:
  194.         98 = RESTORE_REGISTER
  195.         99 = RESTORE_REGISTER
  196.  
  197.         # Post-processing:
  198.         stdWrap.fieldRequired = header
  199.         stdWrap.if {
  200.                 equals.field = header_layout
  201.                 value = 100
  202.                 negate = 1
  203.         }
  204.  
  205.         stdWrap.editIcons = tt_content : header, [header_layout | header_position], [header_link|date]
  206.         stdWrap.editIcons.beforeLastTag = 1
  207.         stdWrap.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.header
  208.  
  209.         stdWrap.dataWrap = <div class="csc-header csc-header-n{cObj:parentRecordNumber}">|</div>
  210.         stdWrap.prefixComment = 2 | Header:
  211. }
  212.  
  213. [compatVersion = 4.2.0]
  214. lib.stdheader.5.date >
  215. lib.stdheader.5.strftime = %x
  216. [end]
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232. #******************************************************
  233. # Including library for processing of some elements:
  234. #******************************************************
  235. includeLibs.tx_cssstyledcontent_pi1 = EXT:css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
  236.  
  237.  
  238. #**********************************
  239. # tt_content is started
  240. #**********************************
  241. tt_content >
  242. tt_content = CASE
  243. tt_content.key.field = CType
  244. tt_content.stdWrap {
  245.  
  246.         spaceBefore.field = spaceBefore
  247.         spaceAfter.field = spaceAfter
  248.         space = {$content.space}
  249.  
  250.         innerWrap.cObject = CASE
  251.         innerWrap.cObject {
  252.                 key.field = section_frame
  253.  
  254.                 1 = TEXT
  255.                 1.value = <div class="csc-frame csc-frame-invisible">|</div>
  256.  
  257.                 5 = TEXT
  258.                 5.value = <div class="csc-frame csc-frame-rulerBefore"></div>|
  259.  
  260.                 6 = TEXT
  261.                 6.value = |<div class="csc-frame csc-frame-rulerAfter"></div>
  262.  
  263.                 10 = TEXT
  264.                 10.value = <div class="csc-frame csc-frame-indent">|</div>
  265.  
  266.                 11 = TEXT
  267.                 11.value = <div class="csc-frame csc-frame-indent3366">|</div>
  268.  
  269.                 12 = TEXT
  270.                 12.value = <div class="csc-frame csc-frame-indent6633">|</div>
  271.  
  272.                 20 = TEXT
  273.                 20.value = <div class="csc-frame csc-frame-frame1">|</div>
  274.  
  275.                 21 = TEXT
  276.                 21.value = <div class="csc-frame csc-frame-frame2">|</div>
  277.         }
  278.  
  279.         innerWrap2 = | <p class="csc-linkToTop"><a href="#">{LLL:EXT:css_styled_content/pi1/locallang.xml:label.toTop}</a></p>
  280.         innerWrap2.insertData = 1
  281.         innerWrap2.fieldRequired = linkToTop
  282.  
  283.         dataWrap = <a id="c{field:uid}"></a> |
  284.  
  285.         prepend = TEXT
  286.         prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>
  287.         prepend.if.isTrue.field = _LOCALIZED_UID
  288.  
  289.         editPanel = 1
  290.         editPanel {
  291.                 allow = move,new,edit,hide,delete
  292.                 line = 5
  293.                 label = %s
  294.                 onlyCurrentPid = 1
  295.                 previewBorder = 4
  296.                 edit.displayRecord = 1
  297.         }
  298.  
  299.         prefixComment = 1 | CONTENT ELEMENT, uid:{field:uid}/{field:CType}
  300.  
  301. }
  302.  
  303. [compatVersion = 4.3.0]
  304. tt_content.stdWrap {
  305.         spaceBefore.field >
  306.         spaceAfter >
  307.         space >
  308.         dataWrap >
  309.         innerWrap.cObject >
  310.  
  311.         innerWrap.cObject = CASE
  312.         innerWrap.cObject {
  313.                 key.field = section_frame
  314.  
  315.                 default = COA
  316.                 default {
  317.                         10 = TEXT
  318.                         10 {
  319.                                 value = <div id="c{field:uid}"
  320.                                 override.cObject = TEXT
  321.                                 override.cObject {
  322.                                         value = <div
  323.                                         if.value = div
  324.                                         if.equals.field = CType
  325.                                 }
  326.                                 insertData = 1
  327.                         }
  328. !REG3XP2!>
  329.                         15 = TEXT
  330.                         15 {
  331.                                 value = csc-default
  332. !!=|=||
  333.                                 required = 1
  334.                         }
  335. !REG3XP2!>
  336.                         20 = COA
  337.                         20 {
  338.                                 10 = COA
  339.                                 10 {
  340.                                         10 = TEXT
  341.                                         10 {
  342.                                                 value = {$content.spaceBefore}
  343. !!=|+
  344.                                                 if.isTrue = {$content.spaceBefore}
  345.                                         }
  346. !REG3XP2!>
  347.                                         20 = TEXT
  348.                                         20 {
  349.                                                 field = spaceBefore
  350.                                         }
  351. !REG3XP2!>
  352.                                         stdWrap {
  353.                                                 prioriCalc = intval
  354. !!=:|
  355.                                                 required = 1
  356.                                                 ifEmpty.value =
  357.                                         }
  358.                                 }
  359. !REG3XP2!>
  360.                                 20 = COA
  361.                                 20 {
  362.                                         10 = TEXT
  363.                                         10 {
  364.                                                 value = {$content.spaceAfter}
  365. !!=|+
  366.                                                 if.isTrue = {$content.spaceAfter}
  367.                                         }
  368. !REG3XP2!>
  369.                                         20 = TEXT
  370.                                         20 {
  371.                                                 field = spaceAfter
  372.                                         }
  373. !REG3XP2!>
  374.                                         stdWrap {
  375.                                                 prioriCalc = intval
  376. !!=:|
  377.                                                 required = 1
  378.                                                 ifEmpty.value =
  379.                                         }
  380.                                 }
  381. !REG3XP2!>
  382.                                 stdWrap.noTrimWrap = | style="|" |
  383.                                 stdWrap.required = 1
  384.                         }
  385.                         30 = TEXT
  386.                         30.value = >|</div>
  387.                 }
  388.  
  389.                 1 =< tt_content.stdWrap.innerWrap.cObject.default
  390.                 1.15.value = csc-frame csc-frame-invisible
  391.  
  392.                 5 =< tt_content.stdWrap.innerWrap.cObject.default
  393.                 5.15.value = csc-frame csc-frame-rulerBefore
  394.  
  395.                 6 =< tt_content.stdWrap.innerWrap.cObject.default
  396.                 6.15.value = csc-frame csc-frame-rulerAfter
  397.  
  398.                 10 =< tt_content.stdWrap.innerWrap.cObject.default
  399.                 10.15.value = csc-frame csc-frame-indent
  400.  
  401.                 11 =< tt_content.stdWrap.innerWrap.cObject.default
  402.                 11.15.value = csc-frame csc-frame-indent3366
  403.  
  404.                 12 =< tt_content.stdWrap.innerWrap.cObject.default
  405.                 12.15.value = csc-frame csc-frame-indent6633
  406.  
  407.                 20 =< tt_content.stdWrap.innerWrap.cObject.default
  408.                 20.15.value = csc-frame csc-frame-frame1
  409.  
  410.                 21 =< tt_content.stdWrap.innerWrap.cObject.default
  411.                 21.15.value = csc-frame csc-frame-frame2
  412.         }
  413. }
  414. [end]
  415.  
  416.  
  417. # *****************
  418. # CType: header
  419. # *****************
  420. # See Object path "lib.stdheader"
  421. tt_content.header = COA
  422. tt_content.header {
  423.         10 = < lib.stdheader
  424.  
  425.         20 = TEXT
  426.         20 {
  427.                 field = subheader
  428.                 required = 1
  429.  
  430.                 dataWrap = <p class="csc-subheader csc-subheader-{field:layout}">|</p>
  431.                 htmlSpecialChars = 1
  432.  
  433.                 editIcons = tt_content:subheader,layout
  434.                 editIcons.beforeLastTag = 1
  435.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.subheader
  436.  
  437.                 prefixComment = 2 | Subheader:
  438.         }
  439. }
  440.  
  441.  
  442. # *****************
  443. # CType: text
  444. # *****************
  445. tt_content.text = COA
  446. tt_content.text {
  447.         10 = < lib.stdheader
  448.  
  449.         20 = TEXT
  450.         20 {
  451.                 field = bodytext
  452.                 required = 1
  453.  
  454.                 parseFunc = < lib.parseFunc_RTE
  455.  
  456.                 editIcons = tt_content:bodytext, rte_enabled
  457.                 editIcons.beforeLastTag = 1
  458.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext
  459.  
  460.                 prefixComment = 2 | Text:
  461.         }
  462. }
  463.  
  464.  
  465. # *****************
  466. # CType: image
  467. # *****************
  468. # (also used for rendering 'textpic' type):
  469. tt_content.image = COA
  470. tt_content.image.10 = < lib.stdheader
  471. tt_content.image.20 = IMGTEXT
  472. tt_content.image.20 {
  473.         imgList.field = image
  474.         textPos.field = imageorient
  475.         imgPath = uploads/pics/
  476.         imgObjNum = 1
  477.         1 {
  478.                 file.import.current = 1
  479.                 file.width.field = imagewidth
  480.                 params = align="top"
  481.                 imageLinkWrap = 1
  482.                 imageLinkWrap {
  483.                         bodyTag = <body bgcolor="black">
  484.                         wrap = !!<=:()> | </a>
  485.                         width = {$styles.content.imgtext.linkWrap.width}
  486.                         height = {$styles.content.imgtext.linkWrap.height}
  487.                         effects = {$styles.content.imgtext.linkWrap.effects}
  488.  
  489.                         JSwindow = 1
  490.                         JSwindow.newWindow = {$styles.content.imgtext.linkWrap.newWindow}
  491.                         JSwindow.expand = 17,20
  492.  
  493.                         enable.field = image_zoom
  494.                         enable.ifEmpty.typolink.parameter.field = image_link
  495.                         enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
  496.                         enable.ifEmpty.typolink.returnLast = url
  497.  
  498.                         typolink.parameter.field = image_link
  499.                         typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
  500.                         typolink.target = {$styles.content.links.target}
  501.                         typolink.extTarget = {$styles.content.links.extTarget}
  502.                 }
  503.  
  504.                 altText = TEXT
  505.                 altText {
  506.                         field = altText
  507.                         stripHtml = 1
  508.                         split.token.char = 10
  509.                         split.token.if.isTrue = {$styles.content.imgtext.imageTextSplit}
  510.                         split.returnKey.data = register : IMAGE_NUM_CURRENT
  511.                 }
  512.  
  513.                 titleText < .altText
  514.                 titleText.field = titleText
  515.  
  516.                 longdescURL < .altText
  517.                 longdescURL.field = longdescURL
  518.  
  519.                 emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling}
  520.                 titleInLink = {$styles.content.imgtext.titleInLink}
  521.                 titleInLinkAndImg = {$styles.content.imgtext.titleInLinkAndImg}
  522.         }
  523.  
  524.         maxW = {$styles.content.imgtext.maxW}
  525.         maxW.override.data = register:maxImageWidth
  526.         maxWInText = {$styles.content.imgtext.maxWInText}
  527.         maxWInText.override.data = register:maxImageWidthInText
  528.  
  529.         equalH.field = imageheight
  530.         spaceBelowAbove = 6
  531.  
  532.         image_compression.field = image_compression
  533.         image_effects.field = image_effects
  534.  
  535.         noRows.field = image_noRows
  536.  
  537.         cols.field = imagecols
  538.         border.field = imageborder
  539.         caption {
  540.                 1 = TEXT
  541.                 1 {
  542.                         field = imagecaption
  543.                         required = 1
  544.                         parseFunc =< lib.parseFunc
  545.                         br = 1
  546.                         fontTag = <p class="csc-caption">|</p>
  547.                         wrapAlign.field = imagecaption_position
  548.                         split.token.char = 10
  549.                         split.token.if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
  550.                         split.returnKey.data = register : IMAGE_NUM_CURRENT
  551.                 }
  552.         }
  553.         # captionSplit is deprecated, use imageTextSplit instead
  554.         captionSplit = {$styles.content.imgtext.captionSplit}
  555.         # caption/alttext/title/longdescURL splitting
  556.         imageTextSplit = {$styles.content.imgtext.imageTextSplit}
  557.  
  558.         borderCol = {$styles.content.imgtext.borderColor}
  559.         borderThick = {$styles.content.imgtext.borderThick}
  560.         colSpace = {$styles.content.imgtext.colSpace}
  561.         rowSpace = {$styles.content.imgtext.rowSpace}
  562.         textMargin = {$styles.content.imgtext.textMargin}
  563.  
  564.         editIcons = tt_content : image [imageorient|imagewidth|imageheight], [imagecols|image_noRows|imageborder],[image_link|image_zoom],[image_compression|image_effects|image_frames],imagecaption[imagecaption_position]
  565.         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.images
  566.  
  567.         caption.editIcons = tt_content : imagecaption[imagecaption_position]
  568.         caption.editIcons.beforeLastTag=1
  569.         caption.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.caption
  570.  
  571.         stdWrap.prefixComment = 2 | Image block:
  572. }
  573.  
  574.  
  575. # *****************
  576. # CType: textpic
  577. # *****************
  578. tt_content.textpic = COA
  579. tt_content.textpic {
  580.         10 = COA
  581.         10.if.value = 25
  582.         10.if.isLessThan.field = imageorient
  583.         10.10 = < lib.stdheader
  584.  
  585.         20  = < tt_content.image.20
  586.         20.text.10 = COA
  587.         20.text.10 {
  588.                 if.value = 24
  589.                 if.isGreaterThan.field = imageorient
  590.                 10 = < lib.stdheader
  591.                 10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
  592.         }
  593.         20.text.20 = < tt_content.text.20
  594. }
  595.  
  596.  
  597. # *****************
  598. # CType: bullet
  599. # *****************
  600. # Rendered by a PHP function specifically written to handle CE bullet lists. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
  601. tt_content.bullets = COA
  602. tt_content.bullets {
  603.         10 = < lib.stdheader
  604.  
  605.         20 = USER
  606.         20.userFunc = tx_cssstyledcontent_pi1->render_bullets
  607.         20.field = bodytext
  608.  
  609.         20.innerStdWrap.parseFunc = < lib.parseFunc
  610.  
  611.         20.stdWrap {
  612.                 editIcons = tt_content: bodytext, [layout]
  613.                 editIcons.beforeLastTag = 1
  614.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bullets
  615.  
  616.                 prefixComment = 2 | Bullet list:
  617.         }
  618. }
  619.  
  620. [compatVersion = 4.2.0]
  621. tt_content.bullets.20 >
  622. tt_content.bullets.20 = TEXT
  623. tt_content.bullets.20 {
  624.         field = bodytext
  625.         trim = 1
  626.         split{
  627.                 token.char = 10
  628.                 cObjNum = |*|1|| 2|*|
  629.                 1.current = 1
  630.                 1.parseFunc =< lib.parseFunc
  631.                 1.wrap = <li class="odd">|</li>
  632.  
  633.                 2.current = 1
  634.                 2.parseFunc =< lib.parseFunc
  635.                 2.wrap = <li class="even">|</li>
  636.         }
  637.         dataWrap = <ul class="csc-bulletlist csc-bulletlist-{field:layout}">|</ul>
  638.         editIcons = tt_content: bodytext, [layout]
  639.         editIcons.beforeLastTag = 1
  640.         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.php:eIcon.bullets
  641.  
  642.         prefixComment = 2 | Bullet list:
  643. }
  644. [end]
  645.  
  646. # *****************
  647. # CType: table
  648. # *****************
  649. # Rendered by a PHP function specifically written to handle CE tables. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
  650. tt_content.table = COA
  651. tt_content.table {
  652.         10 = < lib.stdheader
  653.  
  654.         20 = USER
  655.         20.userFunc = tx_cssstyledcontent_pi1->render_table
  656.         20.field = bodytext
  657.  
  658.         20.color {
  659.                 default =
  660.                 1 = #EDEBF1
  661.                 2 = #F5FFAA
  662.         }
  663.         20.tableParams_0 {
  664.                 border =
  665.                 cellpadding =
  666.                 cellspacing =
  667.         }
  668.         20.tableParams_1 {
  669.                 border =
  670.                 cellpadding =
  671.                 cellspacing =
  672.         }
  673.         20.tableParams_2 {
  674.                 border =
  675.                 cellpadding =
  676.                 cellspacing =
  677.         }
  678.         20.tableParams_3 {
  679.                 border =
  680.                 cellpadding =
  681.                 cellspacing =
  682.         }
  683.         20.innerStdWrap.wrap = <p>|</p>
  684.         20.innerStdWrap.parseFunc = < lib.parseFunc
  685.  
  686.         20.stdWrap {
  687.                 editIcons = tt_content: cols, bodytext, [layout], [table_bgColor|table_border|table_cellspacing|table_cellpadding]
  688.                 editIcons.beforeLastTag = 1
  689.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.table
  690.  
  691.                 prefixComment = 2 | Table:
  692.         }
  693. }
  694.  
  695.  
  696. # *****************
  697. # CType: uploads
  698. # *****************
  699. # Rendered by a PHP function specifically written to handle CE filelists. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
  700. tt_content.uploads = COA
  701. tt_content.uploads {
  702.         10 = < lib.stdheader
  703.  
  704.         20 = USER
  705.         20.userFunc = tx_cssstyledcontent_pi1->render_uploads
  706.         20.field = media
  707.  
  708.         20.color {
  709.                 default =
  710.                 1 = #EDEBF1
  711.                 2 = #F5FFAA
  712.         }
  713.         20.tableParams_0 {
  714.                 border =
  715.                 cellpadding =
  716.                 cellspacing =
  717.         }
  718.         20.tableParams_1 {
  719.                 border =
  720.                 cellpadding =
  721.                 cellspacing =
  722.         }
  723.         20.tableParams_2 {
  724.                 border =
  725.                 cellpadding =
  726.                 cellspacing =
  727.         }
  728.         20.tableParams_3 {
  729.                 border =
  730.                 cellpadding =
  731.                 cellspacing =
  732.         }
  733.  
  734.         20.linkProc {
  735.                 target = _blank
  736.                 jumpurl = {$styles.content.uploads.jumpurl}
  737.                 jumpurl.secure = {$styles.content.uploads.jumpurl_secure}
  738.                 jumpurl.secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}
  739.                 removePrependedNumbers = 1
  740.  
  741.                 iconCObject = IMAGE
  742.                 iconCObject.file.import.data = register : ICON_REL_PATH
  743.                 iconCObject.file.width = 150
  744.         }
  745.  
  746.         20.stdWrap {
  747.                 editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size, imagecaption
  748.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.filelist
  749.  
  750.                 prefixComment = 2 | File list:
  751.         }
  752. }
  753.  
  754.  
  755. # ******************
  756. # CType: multimedia
  757. # ******************
  758. tt_content.multimedia = COA
  759. tt_content.multimedia {
  760.         10 = < lib.stdheader
  761.  
  762.         20 = MULTIMEDIA
  763.         20.file.field = multimedia
  764.         20.file.wrap = uploads/media/
  765.         20.file.listNum = 0
  766.         20.params.field = bodytext
  767.  
  768.         20.stdWrap {
  769.                 editIcons = tt_content: multimedia, bodytext
  770.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
  771.  
  772.                 prefixComment = 2 | Multimedia element:
  773.         }
  774. }
  775.  
  776.  
  777. # ******************
  778. # CType: mailform
  779. # ******************
  780. tt_content.mailform = COA
  781. tt_content.mailform.10 = < lib.stdheader
  782. tt_content.mailform.20 = FORM
  783. tt_content.mailform.20 {
  784.         layout = <tr><td class="csc-form-labelcell">###LABEL###</td><td class="csc-form-fieldcell">###FIELD###</td></tr>
  785.         labelWrap.wrap = <p class="csc-form-label">|</p>
  786.         commentWrap.wrap = <p class="csc-form-comment">|</p>
  787.         radioWrap.wrap = <span class="csc-form-radio">|</span><br />
  788.         REQ = 1
  789.         REQ.labelWrap.wrap = <p class="csc-form-label-req">|</p>
  790.         COMMENT.layout = <tr><td colspan="2" class="csc-form-commentcell">###LABEL###</td></tr>
  791.         target = {$styles.content.mailform.target}
  792.         goodMess = {$styles.content.mailform.goodMess}
  793.         badMess = {$styles.content.mailform.badMess}
  794.         redirect.field = pages
  795.         redirect.listNum = 0
  796.         recipient.field = subheader
  797.         data.field = bodytext
  798.         locationData = 1
  799.  
  800.         stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-mailform">  | </table>
  801.         stdWrap {
  802.                 editIcons = tt_content: bodytext, pages, subheader
  803.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.form
  804.  
  805.                 prefixComment = 2 | Mail form inserted:
  806.         }
  807. }
  808.  
  809.  
  810. # ******************
  811. # CType: search
  812. # ******************
  813. tt_content.search = COA
  814. tt_content.search.10 = < lib.stdheader
  815. # Result:
  816. tt_content.search.20 = SEARCHRESULT
  817. tt_content.search.20 {
  818.         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
  819.         languageField.tt_content = sys_language_uid
  820.         renderObj = COA
  821.         renderObj {
  822.  
  823.                 10 = TEXT
  824.                 10.field = pages_title
  825.                 10.htmlSpecialChars = 1
  826.                 10.typolink {
  827.                         parameter.field = uid
  828.                         target = {$styles.content.searchresult.resultTarget}
  829.                         additionalParams.data = register:SWORD_PARAMS
  830.                         additionalParams.required = 1
  831.                         additionalParams.wrap = &no_cache=1
  832.                 }
  833.                 10.htmlSpecialChars = 1
  834.                 10.wrap = <h3 class="csc-searchResultHeader">|</h3>
  835.  
  836.                 20 = COA
  837.                 20 {
  838.                         10 = TEXT
  839.                         10.field = tt_content_bodytext
  840.                         10.stripHtml = 1
  841.                         10.htmlSpecialChars = 1
  842.                 }
  843.                 20.stdWrap.crop = 200 | ...
  844.                 20.stdWrap.wrap = <p class="csc-searchResult">|</p>
  845.         }
  846.  
  847.         layout = COA
  848.         layout {
  849.                 wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###
  850.  
  851.                 10 = TEXT
  852.                 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.resultRange
  853.                 10.wrap = <td class="csc-searchResultRange"><p>|</p></td>
  854.  
  855.                 20 = TEXT
  856.                 20.value = ###PREV###&nbsp;&nbsp;&nbsp;###NEXT###
  857.                 20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>
  858.         }
  859.  
  860.         noResultObj = COA
  861.         noResultObj {
  862.                 10 = TEXT
  863.                 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.emptySearch
  864.                 10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>
  865.         }
  866.  
  867.         next = TEXT
  868.         next.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultNext
  869.  
  870.         prev = TEXT
  871.         prev.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultPrev
  872.  
  873.         target = {$styles.content.searchresult.target}
  874.         range = 20
  875.  
  876.         stdWrap.prefixComment = 2 | Search result:
  877. }
  878.  
  879. # Form:
  880. tt_content.search.30 < tt_content.mailform.20
  881. tt_content.search.30 {
  882.         goodMess = {$styles.content.searchform.goodMess}
  883.         redirect >
  884.         recipient >
  885.         data >
  886.         dataArray {
  887.                 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchWord
  888.                 10.type = sword=input
  889.                 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchIn
  890.                 20.type = scols=select
  891.                 20.valueArray {
  892.                         10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.headersKeywords
  893.                         10.value = pages.title-subtitle-keywords-description:tt_content.header
  894.                         20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.pageContent
  895.                         20.value = tt_content.header-bodytext-imagecaption
  896.                 }
  897.                 30.type = stype=hidden
  898.                 30.value = L0
  899.                 40.type = submit=submit
  900.                 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchButton
  901.         }
  902.         type.field = pages
  903.         type.listNum = 0
  904.         locationData = HTTP_POST_VARS
  905.         no_cache = 1
  906.  
  907.         stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform">  | </table>
  908.         stdWrap {
  909.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.search
  910.  
  911.                 prefixComment = 2 | Search form inserted:
  912.         }
  913. }
  914.  
  915.  
  916. # ******************
  917. # CType: login
  918. # ******************
  919. tt_content.login < tt_content.mailform
  920. tt_content.login.10 = < lib.stdheader
  921. tt_content.login.20 {
  922.         goodMess = {$styles.content.loginform.goodMess}
  923.         redirect >
  924.         recipient >
  925.         data >
  926.         dataArray {
  927.                 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
  928.                 10.type = *user=input
  929.                 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.password
  930.                 20.type = *pass=password
  931.                 30.type = logintype=hidden
  932.                 30.value = login
  933.                 40.type = submit=submit
  934.                 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.login
  935.         }
  936.         type.field = pages
  937.         type.listNum = 0
  938.         target = {$styles.content.loginform.target}
  939.         locationData = 0
  940.         hiddenFields.pid = TEXT
  941.         hiddenFields.pid {
  942.                 value = {$styles.content.loginform.pid}
  943.                 override.field = pages
  944.                 override.listNum = 1
  945.         }
  946.  
  947.         stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-loginform">  | </table>
  948.         stdWrap {
  949.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.login
  950.  
  951.                 prefixComment = 2 | Login/Logout form:
  952.         }
  953. }
  954. [loginUser = *]
  955. tt_content.login.20 {
  956.         dataArray >
  957.         dataArray {
  958.                 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
  959.                 10.label.wrap = |&nbsp;<!--###USERNAME###-->
  960.                 30.type = logintype=hidden
  961.                 30.value = logout
  962.                 40.type = submit=submit
  963.                 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.logout
  964.         }
  965. }
  966. [global]
  967.  
  968.  
  969. # ******************
  970. # CType: splash
  971. # ******************
  972. # Deprecated element.
  973. # Still here for backwards compliance with plugins using the "text box" type.
  974. tt_content.splash = CASE
  975. tt_content.splash.key.field = splash_layout
  976. tt_content.splash.stdWrap {
  977.         prefixComment = 2 | Textbox inserted (Deprecated)
  978. }
  979. tt_content.splash.default = COA
  980. tt_content.splash.default {
  981.         20 = CTABLE
  982.         20 {
  983.                 c.1 = < tt_content.text
  984.                 lm.1 = IMAGE
  985.                 lm.1.file {
  986.                         import = uploads/pics/
  987.                         import.field = image
  988.                         import.listNum = 0
  989.                         maxW.field = imagewidth
  990.                         maxW.ifEmpty = 200
  991.                 }
  992.                 cMargins = 30,0,0,0
  993.         }
  994. }
  995. tt_content.splash.1 < tt_content.splash.default
  996. tt_content.splash.1.20.lm.1.file >
  997. tt_content.splash.1.20.lm.1.file = GIFBUILDER
  998. tt_content.splash.1.20.lm.1.file {
  999.         XY = [10.w]+10,[10.h]+10
  1000.         backColor = {$content.splash.bgCol}
  1001.         backColor.override.data = register:pageColor
  1002.         format = jpg
  1003.         5 = BOX
  1004.         5.dimensions = 3,3,[10.w],[10.h]
  1005.         5.color = #333333
  1006.         7 = EFFECT
  1007.         7.value = blur=99|blur=99|blur=99|blur=99|blur=99|blur=99|blur=99
  1008.         10 = IMAGE
  1009.         10.file {
  1010.                 import = uploads/pics/
  1011.                 import.field = image
  1012.                 import.listNum = 0
  1013.                 maxW.field = imagewidth
  1014.                 maxW.ifEmpty = 200
  1015.         }
  1016. }
  1017. // The image frames are not available unless TypoScript code from styles.content.imgFrames.x is provided manually:
  1018. tt_content.splash.2 < tt_content.splash.default
  1019. #tt_content.splash.2.20.lm.1.file.m < styles.content.imgFrames.1
  1020. tt_content.splash.3 < tt_content.splash.default
  1021. #tt_content.splash.3.20.lm.1.file.m < styles.content.imgFrames.2
  1022.  
  1023. // From plugin.postit1, if included:
  1024. tt_content.splash.20 = < plugin.postit1
  1025.  
  1026.  
  1027.  
  1028.  
  1029. # ****************
  1030. # CType: menu
  1031. # ****************
  1032. tt_content.menu = COA
  1033. tt_content.menu {
  1034.         10 = < lib.stdheader
  1035.  
  1036.         20 = CASE
  1037.         20 {
  1038.                 key.field = menu_type
  1039.  
  1040.                 # "Menu of these pages"
  1041.                 default = HMENU
  1042.                 default.wrap = <div class="csc-menu csc-menu-def">|</div>
  1043.                 default {
  1044.                         special = list
  1045.                         special.value.field = pages
  1046.                         1 = TMENU
  1047.                         1.NO.allWrap = <p>|</p>
  1048.                         1.NO.stdWrap.htmlSpecialChars = 1
  1049.                         1.target = {$content.pageFrameObj}
  1050.                 }
  1051.  
  1052.                 # "Menu of subpages to these pages"
  1053.                 1 < .default
  1054.                 1.special = directory
  1055.                 1.wrap = <div class="csc-menu csc-menu-1">|</div>
  1056.  
  1057.                 # "Sitemap"
  1058.                 2 = HMENU
  1059.                 2.wrap = <div class="csc-menu csc-menu-2">|</div>
  1060.                 2 {
  1061.                         1 = TMENU
  1062.                         1.NO.allWrap = <p class="csc-sitemap csc-sitemap-level1">|</p>
  1063.                         1.NO.stdWrap.htmlSpecialChars = 1
  1064.                         1.target = {$content.pageFrameObj}
  1065.                         1.expAll = 1
  1066.  
  1067.                         2 < .1
  1068.                         2.NO.allWrap = <p class="csc-sitemap csc-sitemap-level2">|</p>
  1069.  
  1070.                         3 < .1
  1071.                         3.NO.allWrap = <p class="csc-sitemap csc-sitemap-level3">|</p>
  1072.  
  1073.                         4 < .1
  1074.                         4.NO.allWrap = <p class="csc-sitemap csc-sitemap-level4">|</p>
  1075.                         4.expAll = 0
  1076.                 }
  1077.  
  1078.                 # "Section index (pagecontent w/Index checked)"
  1079.                 3 < styles.content.get
  1080.                 3.wrap = <div class="csc-menu csc-menu-3">|</div>
  1081.                 3.select.andWhere = sectionIndex!=0
  1082.                 3.select.pidInList.override.field = pages
  1083.                 3.renderObj = TEXT
  1084.                 3.renderObj {
  1085.                         fieldRequired = header
  1086.                         trim=1
  1087.                         field = header
  1088.                         htmlSpecialChars = 1
  1089.                         wrap = <p class="csc-section">|</p>
  1090.                         typolink.parameter.field = pid
  1091.                         typolink.section.field = uid
  1092.                 }
  1093.  
  1094.                 # "Menu of subpages to these pages (with abstract)"
  1095.                 4 < .1
  1096.                 4.wrap = <div class="csc-menu csc-menu-4">|</div>
  1097.                 4.1.NO {
  1098.                         allWrap = <p>|</p>
  1099.                         after.required = 1
  1100.                         after.data = field : abstract // field : description // field : subtitle
  1101.                         after.htmlSpecialChars = 1
  1102.                         after.wrap = </p><p class="csc-abstract">|
  1103.                 }
  1104.  
  1105.                 # "Recently updated pages"
  1106.                 5 < .default
  1107.                 5.wrap = <div class="csc-menu csc-menu-5">|</div>
  1108.                 5.special = updated
  1109.                 5.special {
  1110.                         maxAge = 3600*24*7
  1111.                         excludeNoSearchPages = 1
  1112.                 }
  1113.  
  1114.                 # "Related pages (based on keywords)"
  1115.                 6 < .default
  1116.                 6.wrap = <div class="csc-menu csc-menu-6">|</div>
  1117.                 6.special = keywords
  1118.                 6.special {
  1119.                         excludeNoSearchPages = 1
  1120.                 }
  1121.  
  1122.                 # "Menu of subpages to these pages + sections"
  1123.                 7 < .1
  1124.                 7.wrap = <div class="csc-menu csc-menu-7">|</div>
  1125.                 7.1.expAll = 1
  1126.                 7.2 < .7.1
  1127.                 7.2.sectionIndex = 1
  1128.                 7.2.sectionIndex.type = header
  1129.                 7.2.NO.allWrap = <p class="csc-section">|</p>
  1130.         }
  1131.  
  1132.         20.stdWrap {
  1133.                 editIcons = tt_content: menu_type, pages
  1134.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.menuSitemap
  1135.  
  1136.                 prefixComment = 2 | Menu/Sitemap element:
  1137.         }
  1138. }
  1139.  
  1140. # Match TYPO3 4.2.0 and later
  1141. [compatVersion = 4.2.0]
  1142. tt_content.menu.20.default.1.target = {$PAGE_TARGET}
  1143. tt_content.menu.20.2.1.target = {$PAGE_TARGET}
  1144. [end]
  1145.  
  1146. # ****************
  1147. # CType: shortcut
  1148. # ****************
  1149. # Should be a complete copy from the old static template "content (default)"
  1150. tt_content.shortcut = COA
  1151. tt_content.shortcut {
  1152.         20 = CASE
  1153.         20.key.field = layout
  1154.         20.0= RECORDS
  1155.         20.0 {
  1156.                 source.field = records
  1157.                 tables = {$content.shortcut.tables}
  1158.                 # THESE are OLD plugins. Modern plugins registers themselves automatically!
  1159.                 conf.tt_content = < tt_content
  1160.                 conf.tt_address = < tt_address
  1161.                 conf.tt_links = < tt_links
  1162.                 conf.tt_guest = < tt_guest
  1163.                 conf.tt_board = < tt_board
  1164.                 conf.tt_calender = < tt_calender
  1165.                 conf.tt_rating < tt_rating
  1166.                 conf.tt_products = < tt_products
  1167.                 conf.tt_news = < tt_news
  1168.                 conf.tt_poll = < plugin.tt_poll
  1169.         }
  1170.         20.1= RECORDS
  1171.         20.1 {
  1172.                 source.field = records
  1173.                 tables = {$content.shortcut.tables}
  1174.                 conf.tt_poll = < plugin.tt_poll
  1175.                 conf.tt_poll.code = RESULT,SUBMITTEDVOTE
  1176.         }
  1177.  
  1178.         20.stdWrap {
  1179.                 editIcons = tt_content: records
  1180.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
  1181.  
  1182.                 prefixComment = 2 | Inclusion of other records (by reference):
  1183.         }
  1184. }
  1185.  
  1186.  
  1187. # ****************
  1188. # CType: list
  1189. # ****************
  1190. # Should be a complete copy from the old static template "content (default)" (except "lib.stdheader")
  1191. tt_content.list = COA
  1192. tt_content.list {
  1193.         10 = < lib.stdheader
  1194.  
  1195.         20 = CASE
  1196.         20.key.field = list_type
  1197.         20 {
  1198.                 # LIST element references (NOT copy of objects!)
  1199.                 # THESE are OLD plugins. Modern plugins registers themselves automatically!
  1200.                 3 = CASE
  1201.                 3.key.field = layout
  1202.                 3.0 = < plugin.tt_guest
  1203.  
  1204.                 4 = CASE
  1205.                 4.key.field = layout
  1206.                 4.0 = < plugin.tt_board_list
  1207.                 4.1 = < plugin.tt_board_tree
  1208.  
  1209.                 2 = CASE
  1210.                 2.key.field = layout
  1211.                 2.0 = < plugin.tt_board_tree
  1212.  
  1213.                 5 = CASE
  1214.                 5.key.field = layout
  1215.                 5.0 = < plugin.tt_products
  1216.  
  1217.                 7 = CASE
  1218.                 7.key.field = layout
  1219.                 7.0 = < plugin.tt_calender
  1220.  
  1221.                 8 = CASE
  1222.                 8.key.field = layout
  1223.                 8.0 = < plugin.tt_rating
  1224.  
  1225.                 9 = CASE
  1226.                 9.key.field = layout
  1227.                 9.0 = < plugin.tt_news
  1228.  
  1229.                 11 = CASE
  1230.                 11.key.field = layout
  1231.                 11.0 = < plugin.tipafriend
  1232.  
  1233.                 20 = CASE
  1234.                 20.key.field = layout
  1235.                 20.0 = < plugin.feadmin.fe_users
  1236.  
  1237.                 21 = CASE
  1238.                 21.key.field = layout
  1239.                 21.0 = < plugin.feadmin.dmailsubscription
  1240.         }
  1241.  
  1242.         20.stdWrap {
  1243.                 editIcons = tt_content: list_type, layout, select_key, pages [recursive]
  1244.                 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.plugin
  1245.  
  1246.                 prefixComment = 2 | Plugin inserted:
  1247.         }
  1248. }
  1249.  
  1250.  
  1251. # ****************
  1252. # CType: script
  1253. # ****************
  1254. # OBSOLETE! Please make extensions instead. The "script" content element was meant for these custom purposes in the past. Today extensions will do the job better.
  1255. tt_content.script = TEXT
  1256. tt_content.script {
  1257.         value =
  1258.  
  1259.         prefixComment = 2 | Script element (Deprecated)
  1260. }
  1261.  
  1262.  
  1263. # ****************
  1264. # CType: div
  1265. # ****************
  1266. tt_content.div = TEXT
  1267. tt_content.div {
  1268.         value =
  1269.         prefixComment = 2 | Div element
  1270. }
  1271.  
  1272.  
  1273. # ****************
  1274. # CType: html
  1275. # ****************
  1276. # This truely IS a content object, launched from inside the PHP class of course.
  1277. # Should be a complete copy from the old static template "content (default)"
  1278. tt_content.html = TEXT
  1279. tt_content.html {
  1280.         field = bodytext
  1281.  
  1282.         editIcons = tt_content: pages
  1283.         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.html
  1284.  
  1285.         prefixComment = 2 | Raw HTML content:
  1286. }
  1287.  
  1288.  
  1289. # ****************
  1290. # Default error msg:
  1291. # ****************
  1292. tt_content.default = TEXT
  1293. tt_content.default {
  1294.         field = CType
  1295.         wrap = !!<=:><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>
  1296.  
  1297.         prefixComment = 2 | Unknown element message:
  1298. }
  1299.  
  1300.  
  1301. # *********************************************************************
  1302. # ACCESSIBILTY MODE
  1303. # *********************************************************************
  1304.  
  1305. # Match TYPO3 3.9.0 and later
  1306. [compatVersion = 3.9.0]
  1307.  
  1308. # switch off <p>-Tags in table cells
  1309. tt_content.table.20.innerStdWrap.wrap = |
  1310.  
  1311. # change mailform to accesssible mode
  1312. tt_content.mailform.20 {
  1313.         accessibility = 1
  1314.         noWrapAttr=1
  1315.         formName = mailform
  1316.         dontMd5FieldNames = 1
  1317.         REQ = 1
  1318.         layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>
  1319.         COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>
  1320.         RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>
  1321.         LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>
  1322.         labelWrap.wrap = |
  1323.         commentWrap.wrap = |
  1324.         radioWrap.wrap = |<br />
  1325.         radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>
  1326.         REQ.labelWrap.wrap = |
  1327.         stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>
  1328.         params.radio = class="csc-mailform-radio"
  1329.         params.check = class="csc-mailform-check"
  1330.         params.submit = class="csc-mailform-submit"
  1331. }
  1332.  
  1333. # accessible menu
  1334. tt_content.menu.20 {
  1335.         # "Menu of these pages"
  1336.         default.wrap = <ul class="csc-menu csc-menu-def">|</ul>
  1337.         default.1.NO.allWrap >
  1338.         default.1.NO.wrapItemAndSub = <li>|</li>
  1339.         default.1.NO.ATagTitle.field = description // title
  1340.  
  1341.         # "Menu of subpages to these pages"
  1342.         1.wrap = <ul class="csc-menu csc-menu-1">|</ul>
  1343.         1.1.NO.allWrap >
  1344.         1.1.NO.wrapItemAndSub = <li>|</li>
  1345.  
  1346.         # "Sitemap - liststyle"
  1347.         2 >
  1348.         2 = HMENU
  1349.         2 {
  1350.                 wrap = <div class="csc-sitemap">|</div>
  1351.                 1 = TMENU
  1352.                 1 {
  1353.                         noBlur=1
  1354.                         expAll=1
  1355.                         wrap = <ul>|</ul>
  1356.                         NO {
  1357.                                 stdWrap.htmlSpecialChars = 1
  1358.                                 wrapItemAndSub = <li>|</li>
  1359.                                 ATagTitle.field = description // title
  1360.                         }
  1361.                 }
  1362.                 2<.1
  1363.                 3<.1
  1364.                 4<.1
  1365.                 5<.1
  1366.                 6<.1
  1367.                 7<.1
  1368.         }
  1369.  
  1370.         # "Section index (pagecontent w/Index checked - liststyle)"
  1371.         3.wrap = <ul class="csc-menu csc-menu-3">|</ul>
  1372.         3.renderObj.noBlur = 1
  1373.         3.renderObj.wrap = <li class="csc-section">|</li>
  1374.  
  1375.         # "Menu of subpages to these pages (with abstract)"
  1376.         4.wrap = <dl class="csc-menu csc-menu-4">|</dl>
  1377.         4.1.NO {
  1378.                 allWrap >
  1379.                 linkWrap = <dt>|</dt>
  1380.                 after.wrap = <dd>|</dd>
  1381.                 ATagTitle.field = description // title
  1382.         }
  1383.  
  1384.         # "Recently updated pages"
  1385.         5.wrap = <ul class="csc-menu csc-menu-5">|</ul>
  1386.         5.1.NO.allWrap >
  1387.         5.1.NO.wrapItemAndSub = <li>|</li>
  1388.  
  1389.         # "Related pages (based on keywords)"
  1390.         6.wrap = <ul class="csc-menu csc-menu-6">|</ul>
  1391.         6.1.NO.allWrap >
  1392.         6.1.NO.wrapItemAndSub = <li>|</li>
  1393.  
  1394.         # "Menu of subpages to these pages + sections - liststyle"
  1395.         7.wrap = <ul class="csc-menu csc-menu-7">|</ul>
  1396.         7.1.NO.allWrap >
  1397.         7.1.NO.wrapItemAndSub = <li>|</li>
  1398.         7.2.wrap = <ul>|</ul>
  1399.         7.2.NO.allWrap >
  1400.         7.2.NO.wrapItemAndSub = <li class="csc-section">|</li>
  1401.         7.2.NO.ATagTitle.field = description // title
  1402. }
  1403.  
  1404. # cObject: Image
  1405.  
  1406. tt_content.image.20 = USER
  1407. tt_content.image.20 {
  1408.         userFunc = tx_cssstyledcontent_pi1->render_textpic
  1409.  
  1410.         1 {
  1411.                 params >
  1412.                 imageLinkWrap {
  1413.                         bodyTag = <body style="margin:0; background:#fff;">
  1414.                         JSwindow.expand =
  1415.                 }
  1416.         }
  1417.  
  1418.         caption.1.wrapAlign >
  1419.         caption.1.fontTag >
  1420.  
  1421.         captionAlign.field = imagecaption_position
  1422.  
  1423.         borderSpace = {$styles.content.imgtext.borderSpace}
  1424.         separateRows = {$styles.content.imgtext.separateRows}
  1425.         addClasses =
  1426.         addClassesImage =
  1427.         addClassesImage.ifEmpty = csc-textpic-firstcol csc-textpic-lastcol
  1428.         addClassesImage.override = csc-textpic-firstcol |*| |*| csc-textpic-lastcol
  1429.         addClassesImage.override.if {
  1430.                 isGreaterThan.field = imagecols
  1431.                 value = 1
  1432.         }
  1433.  
  1434.         #
  1435.         imageStdWrap.dataWrap = !!<==:{:}> | </div>
  1436.         imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap"> | </div>
  1437.  
  1438.         # if noRows is set, wrap around each column:
  1439.         imageColumnStdWrap.dataWrap = !!<==:{:}> | </div>
  1440.  
  1441.         layout = CASE
  1442.         layout {
  1443.                 key.field = imageorient
  1444.                 # above-center
  1445.                 default = TEXT
  1446.                 default.value = <div class="csc-textpic csc-textpic-center csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
  1447.                 # above-right
  1448.                 1 = TEXT
  1449.                 1.value = <div class="csc-textpic csc-textpic-right csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
  1450.                 # above-left
  1451.                 2 = TEXT
  1452.                 2.value = <div class="csc-textpic csc-textpic-left csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
  1453.                 # below-center
  1454.                 8 = TEXT
  1455.                 8.value = <div class="csc-textpic csc-textpic-center csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
  1456.                 # below-right
  1457.                 9 = TEXT
  1458.                 9.value = <div class="csc-textpic csc-textpic-right csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
  1459.                 # below-left
  1460.                 10 = TEXT
  1461.                 10.value = <div class="csc-textpic csc-textpic-left csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
  1462.                 # intext-right
  1463.                 17 = TEXT
  1464.                 17.value = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div>
  1465.                 # intext-left
  1466.                 18 = TEXT
  1467.                 18.value = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>
  1468.                 # intext-right-nowrap
  1469.                 25 = TEXT
  1470.                 25.value = <div class="csc-textpic csc-textpic-intext-right-nowrap###CLASSES###">###IMAGES###!!<=:{:}>###TEXT###</div></div><div class="csc-textpic-clear"><!-- --></div>
  1471.                 25.insertData = 1
  1472.                 # intext-left-nowrap
  1473.                 26 = TEXT
  1474.                 26.value = <div class="csc-textpic csc-textpic-intext-left-nowrap###CLASSES###">###IMAGES###!!<=:{:}>###TEXT###</div></div><div class="csc-textpic-clear"><!-- --></div>
  1475.                 26.insertData = 1
  1476.         }
  1477.  
  1478.         rendering {
  1479.                 dl {
  1480.                         imageRowStdWrap.dataWrap = !!<==:{:}> | </div>
  1481.                         noRowsStdWrap.wrap =
  1482.                         oneImageStdWrap.dataWrap = <dl class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </dl>
  1483.                         imgTagStdWrap.wrap = <dt> | </dt>
  1484.                         editIconsStdWrap.wrap = <dd> | </dd>
  1485.                         caption {
  1486.                                 required = 1
  1487.                                 wrap = <dd class="csc-textpic-caption"> | </dd>
  1488.                         }
  1489.                 }
  1490.                 ul {
  1491.                         imageRowStdWrap.dataWrap = !!<==:{:}><ul> | </ul></div>
  1492.                         noRowsStdWrap.wrap = <ul> | </ul>
  1493.                         oneImageStdWrap.dataWrap = <li class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </li>
  1494.                         imgTagStdWrap.wrap =
  1495.                         editIconsStdWrap.wrap = <div> | </div>
  1496.                         caption.wrap = <div class="csc-textpic-caption"> | </div>
  1497.                 }
  1498.                 div {
  1499.                         imageRowStdWrap.dataWrap = !!<==:{:}> | </div>
  1500.                         noRowsStdWrap.wrap =
  1501.                         oneImageStdWrap.dataWrap = <div class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </div>
  1502.                         imgTagStdWrap.wrap = <div> | </div>
  1503.                         editIconsStdWrap.wrap = <div> | </div>
  1504.                         caption.wrap = <div class="csc-textpic-caption"> | </div>
  1505.                 }
  1506.         }
  1507.         renderMethod = dl
  1508. }
  1509.  
  1510. # cObject: Text with image
  1511.  
  1512. tt_content.textpic.20 =< tt_content.image.20
  1513. tt_content.textpic.20 {
  1514.         text.10 = COA
  1515.         text.10 {
  1516.                 if.value = 24
  1517.                 if.isGreaterThan.field = imageorient
  1518.                 10 = < lib.stdheader
  1519.                 10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
  1520.         }
  1521.         text.20 = < tt_content.text.20
  1522.         text.wrap = <div class="csc-textpic-text"> | </div>
  1523. }
  1524.  
  1525.  
  1526. plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (
  1527.         /* Captions */
  1528.         DIV.csc-textpic-caption-c .csc-textpic-caption { text-align: center; }
  1529.         DIV.csc-textpic-caption-r .csc-textpic-caption { text-align: right; }
  1530.         DIV.csc-textpic-caption-l .csc-textpic-caption { text-align: left; }
  1531.  
  1532.         /* Needed for noRows setting */
  1533.         DIV.csc-textpic DIV.csc-textpic-imagecolumn { float: left; display: inline; }
  1534.  
  1535.         /* Border just around the image */
  1536.         {$styles.content.imgtext.borderSelector} {
  1537.                 border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};
  1538.                 padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;
  1539.         }
  1540.  
  1541.         DIV.csc-textpic-imagewrap { padding: 0; }
  1542.  
  1543.         DIV.csc-textpic IMG { border: none; }
  1544.  
  1545.         /* DIV: This will place the images side by side */
  1546.         DIV.csc-textpic DIV.csc-textpic-imagewrap DIV.csc-textpic-image { float: left; }
  1547.  
  1548.         /* UL: This will place the images side by side */
  1549.         DIV.csc-textpic DIV.csc-textpic-imagewrap UL { list-style: none; margin: 0; padding: 0; }
  1550.         DIV.csc-textpic DIV.csc-textpic-imagewrap UL LI { float: left; margin: 0; padding: 0; }
  1551.  
  1552.         /* DL: This will place the images side by side */
  1553.         DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image { float: left; }
  1554.         DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DT { float: none; }
  1555.         DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD { float: none; }
  1556.         DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD IMG { border: none; } /* FE-Editing Icons */
  1557.         DL.csc-textpic-image { margin: 0; }
  1558.         DL.csc-textpic-image DT { margin: 0; display: inline; }
  1559.         DL.csc-textpic-image DD { margin: 0; }
  1560.  
  1561.         /* Clearer */
  1562.         DIV.csc-textpic-clear { clear: both; }
  1563.  
  1564.         /* Margins around images: */
  1565.  
  1566.         /* Pictures on left, add margin on right */
  1567.         DIV.csc-textpic-left DIV.csc-textpic-imagewrap .csc-textpic-image,
  1568.         DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
  1569.         DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap .csc-textpic-image {
  1570.                 display: inline; /* IE fix for double-margin bug */
  1571.                 margin-right: {$styles.content.imgtext.colSpace}px;
  1572.         }
  1573.  
  1574.         /* Pictures on right, add margin on left */
  1575.         DIV.csc-textpic-right DIV.csc-textpic-imagewrap .csc-textpic-image,
  1576.         DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
  1577.         DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap .csc-textpic-image {
  1578.                 display: inline; /* IE fix for double-margin bug */
  1579.                 margin-left: {$styles.content.imgtext.colSpace}px;
  1580.         }
  1581.  
  1582.         /* Pictures centered, add margin on left */
  1583.         DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image {
  1584.                 display: inline; /* IE fix for double-margin bug */
  1585.                 margin-left: {$styles.content.imgtext.colSpace}px;
  1586.         }
  1587.         DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image .csc-textpic-caption { margin: 0; }
  1588.         DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image IMG { margin: 0; }
  1589.  
  1590.         /* Space below each image (also in-between rows) */
  1591.         DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
  1592.         DIV.csc-textpic-equalheight DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; display: block; }
  1593.         DIV.csc-textpic DIV.csc-textpic-imagerow { clear: both; }
  1594.  
  1595.         /* No margins around the whole image-block */
  1596.         DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-firstcol { margin-left: 0px !important; }
  1597.         DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-lastcol { margin-right: 0px !important; }
  1598.  
  1599.         /* Add margin from image-block to text (in case of "Text w/ images") */
  1600.         DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap,
  1601.         DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap {
  1602.                 margin-right: {$styles.content.imgtext.textMargin}px !important;
  1603.         }
  1604.         DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap,
  1605.         DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap {
  1606.                 margin-left: {$styles.content.imgtext.textMargin}px !important;
  1607.         }
  1608.  
  1609.         /* Positioning of images: */
  1610.  
  1611.         /* Above */
  1612.         DIV.csc-textpic-above DIV.csc-textpic-text { clear: both; }
  1613.  
  1614.         /* Center (above or below) */
  1615.         DIV.csc-textpic-center { text-align: center; /* IE-hack */ }
  1616.         DIV.csc-textpic-center DIV.csc-textpic-imagewrap { margin: 0 auto; }
  1617.         DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image { text-align: left; /* Remove IE-hack */ }
  1618.         DIV.csc-textpic-center DIV.csc-textpic-text { text-align: left; /* Remove IE-hack */ }
  1619.  
  1620.         /* Right (above or below) */
  1621.         DIV.csc-textpic-right DIV.csc-textpic-imagewrap { float: right; }
  1622.         DIV.csc-textpic-right DIV.csc-textpic-text { clear: right; }
  1623.  
  1624.         /* Left (above or below) */
  1625.         DIV.csc-textpic-left DIV.csc-textpic-imagewrap { float: left; }
  1626.         DIV.csc-textpic-left DIV.csc-textpic-text { clear: left; }
  1627.  
  1628.         /* Left (in text) */
  1629.         DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap { float: left; }
  1630.  
  1631.         /* Right (in text) */
  1632.         DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap { float: right; }
  1633.  
  1634.         /* Right (in text, no wrap around) */
  1635.         DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap { float: right; clear: both; }
  1636.         /* Hide from IE5-mac. Only IE-win sees this. \*/
  1637.         * html DIV.csc-textpic-intext-right-nowrap .csc-textpic-text { height: 1%; }
  1638.         /* End hide from IE5/mac */
  1639.  
  1640.         /* Left (in text, no wrap around) */
  1641.         DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap { float: left; clear: both; }
  1642.         /* Hide from IE5-mac. Only IE-win sees this. \*/
  1643.         * html DIV.csc-textpic-intext-left-nowrap .csc-textpic-text { height: 1%; }
  1644.         /* End hide from IE5/mac */
  1645. )
  1646.  
  1647. [END]
  1648.  
  1649. # new IMAGE features with last row configuration
  1650. [compatVersion = 4.2.0]
  1651.  
  1652. plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE := appendString(\nDIV.csc-textpic DIV.csc-textpic-imagerow-last { margin-bottom: 0; })
  1653.  
  1654. tt_content.image.20.rendering {
  1655.         dl.imageLastRowStdWrap.dataWrap = !!<==:{:}> | </div>
  1656.         ul.imageLastRowStdWrap.dataWrap = !!<==:{:}><ul> | </ul></div>
  1657.         div.imageLastRowStdWrap.dataWrap = !!<==:{:}> | </div>
  1658. }
  1659.  
  1660. [END]
  1661.  
  1662. # new RTE indentation using div element
  1663. [compatVersion = 4.2.0]
  1664.  
  1665. lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList := removeFromList(div)
  1666. lib.parseFunc_RTE.externalBlocks := addToList(div)
  1667. lib.parseFunc_RTE.externalBlocks.div.stripNL = 1
  1668. lib.parseFunc_RTE.externalBlocks.div.callRecursive = 1
  1669.  
  1670. [END]
  1671.  
  1672. # TYPO3 SVN ID: $Id: setup.txt 4493 2008-11-27 21:06:50Z steffenk $
  1673.  
  1. <?php
  2. /**
  3.  * PHPoem #3
  4.  * The Big Picture
  5.  *
  6.  * @author  Kasper Skårhøj <[email protected]>
  7.  * Freely interpreted from The Holy Bible
  8.  */
  9.  
  10.  
  11.  
  12. // *******************************************************
  13. // INITIALIZATION, 6 days:
  14. // In the beginning The Programmer
  15. // created the heavens and the earth.
  16. //
  17. // Notice:
  18. // This initialization is outside the scope of what is
  19. // possible within the main loop later on. So don't try
  20. // to explain it away by your limited knowledge!
  21. // *******************************************************
  22.  
  23. // First a series of creation acts. Abbreviated version.
  24. echo "Let there be light\n";    //...and there was light
  25. echo "Let there be an expanse between the waters
  26.      to separate water from water.\n";     // And it was so.
  27. echo "Let the land produce vegetation:
  28.      seed-bearing plants and trees on the land
  29.      that bear fruit with seed in it.\n";     // And it was so.
  30. echo "Let there be lights in the expanse of
  31.      the sky to separate the day from the night.\n";
  32. echo "Let the water teem with living creatures,
  33.      and let birds fly above the earth.\n";
  34. echo "Let the land produce living creatures
  35.      according to their kinds.\n";     // And it was so.
  36.  
  37. // Then to the masterpiece, man and woman:
  38. echo "Let us make man in our image,
  39.      in our likeness.\n";  // So The Programmer created man in his own image!
  40.  
  41. // $man is passed by reference here.
  42. // "free will" is necessary - but risky - because true love requires it.
  43. implementFreeWill(&$man["Adam"],&$man["Eve"]);    
  44.  
  45.      
  46. // The Programmer saw all that he had made, and it was very good.
  47. // At this point the initialization is finished
  48. // and The Programmer took a nap:
  49.  
  50. sleep(1*24*3600);    // The 7th day
  51.  
  52.  
  53. // **************************************************
  54. // WARNING:
  55. // An internal, evil-minded process has rebelled here
  56. // and makes the following execution HIGHLY unstable!
  57. // The predicted effects on the environment will be
  58. // like email-viruses in disguise as apparently innocent
  59. // offers. DON'T ACCEPT SUCH OFFERS!
  60. // **************************************************
  61.  
  62.  
  63.  
  64.  
  65. // ***************************************************
  66. // MAIN loop, endless:
  67. //
  68. // This is the originally intended loop of the program.
  69. // Although the actual main loop is done in the exception
  70. // handler this loop represents the true intention of
  71. // The Programmer from the beginning.
  72. // **************************************************
  73. while(1==1) {
  74.     // Living life to the fullest:
  75.     // This is the perfect, stable state of this application
  76.     // The only requirement is, that any email-virus is NOT opened!
  77.   liveLifeForever();
  78.  
  79.     // This would truely be a sad thing, if that happend...:
  80.   if (virusFromEvilProcessOpened())    {
  81.       // If this happens, the Evil Process must have succeeded
  82.       // to interfere with the objects inside the main loop
  83.     break;    
  84.   }
  85.  
  86.     // The Programmer sustains the creation supernaturally:
  87.   doMaintenance();
  88. }
  89.  
  90.  
  91.  
  92.  
  93. // ***************************************************
  94. // TEMPORARY loop - emergency plan:
  95. //
  96. // About this state, The Programmer says:
  97. //
  98. // Since you are here, you must have opened the email-
  99. // virus I warned you against!
  100. // Because I did warn you and you were tempted by
  101. // the Evil Process to open in anyway, I had to break the
  102. // eternal loop to be consistent with my promise.
  103. //
  104. // However I will initiate an emergency plan, which
  105. // will eventually clean up the system, kill the virus and
  106. // reinstate the eternal loop.
  107. // This plan will be revealed in the code below:
  108. // **************************************************
  109.  
  110.  
  111.   // ****************************************************************
  112.   // First: This changes the environmental settings to "Curse-state":
  113.   // ****************************************************************
  114.  
  115.   // Maintenance withdrawn.
  116.   // By stopping the automatic maintenance all objects
  117.   // will age by time and finally die out.
  118.   // Previously in the eternal loop, this did not happen.
  119. haltAutomaticMaintenance();    
  120.  
  121.   // Make other changes to the initial rules of the system
  122. changePhysicalLawsAsNeeded();
  123.  
  124.   // Adapt objects to the new situation:
  125. accommodateObjectsToCurse();
  126.  
  127.   // The connection from The Programmer to the loop is severely
  128.   // scrambled as well.
  129.   // Most likely the objects (men) inside the loop will not
  130.   // recognize the existence of the Programmer due to this
  131.   // "lack of proof of existence".
  132. reduceSpiritualSignalToNoiseRatio();
  133.  
  134.  
  135.  
  136.   // ****************************************************************
  137.   // Second: The new loop is configured:
  138.   // ****************************************************************
  139.  
  140.   // The actual length of the loop is not known for certain.
  141.   // It's at least 6000 years, but obviously longer yet, because we're
  142.   // still within the temporary loop.
  143. $tempLoopLifeSpan=6000;    
  144.  
  145.   // Prepare array for instruction. Popularly called "The Bible".
  146. $manual=array();
  147.  
  148.  
  149.   // Temp loop:
  150. for($a=0; $a<$tempLoopLifeSpan; $a++)    {
  151.  
  152.       // This executes the living of life under the new
  153.     // limited circumstances of the temporary loop:
  154.   liveExceptionHandler();
  155.  
  156.     // This adds instructions to the manual during the loop as needed.
  157.     // This is the ultimate info-booth with authoritative answers
  158.   if ($a<4000)    {
  159.     addInstructionsDuringLifeSpan(&$manual);
  160.   }
  161.  
  162.  
  163.     // IMPORTANT break point in the loop:
  164.     // After approximately 4000 loops the secret weapon
  165.     // is revealed here: Jesus Christ
  166.   if ($a==4000)  {
  167.     introduceJesusChrist();    // Christ was born
  168.   }
  169.   if ($a==4030)  {
  170.  
  171.        // The MAIN event is here!
  172.        // Christ was unset at this point by the "man" objects
  173.        // (The actual method called was 'doCrusify("Christ")' ),
  174.        // but The Programmer intervened and un-did this action!
  175.        // This was indeed an unusual and supernatural thing to do!
  176.        // By doing that The Programmer initiated Christ's status
  177.        // as an abstraction layer that would present a clean
  178.        // interface of any object calling the method
  179.        // acceptChrist() no matter how messy the object was
  180.        // internally.
  181.        //
  182.        // The point was, that if the "man" objects is to
  183.        // persist all the way into the future eternal loop,
  184.        // they must be "clean". However this is not possible
  185.        // by any inherent methods, so The Programmer introduced
  186.        // the acceptChrist() method by calling resurrectChristFromTheDead()
  187.        //
  188.        // And after this point in the loop, any "man" object
  189.        // calling acceptChrist() will also exist in the future
  190.        // eternal loop!
  191.        // So easy and ingenious that many has tried to make
  192.        // it more complicate unfortunately.
  193.        
  194.     resurrectChristFromTheDead();    
  195.  
  196.       // New rules for getting into eternal loop is applied
  197.     applyNewRules();    
  198.   }
  199.   if ($a>4030 && $a>4110)    {
  200.       // This adds description of the new rules for
  201.       // the rest of the loop:
  202.     addInstructionsDuringLifeSpan(&$manual);
  203.   }
  204.  
  205.  
  206. }
  207.  
  208.  
  209.  
  210.  
  211. // ***************************************************
  212. // ETERNAL LOOP reinstated:
  213. //
  214. // This part of the program is not known yet.
  215. // But I assure you it will be ready in time.
  216. // The only question is how many of the "man" objects
  217. // that will enter the new loop. This depends on their
  218. // own free will to call the method acceptChrist()
  219. //
  220. // One thing I'm very exited about is to experience the
  221. // original eternal loop running again.
  222. // But I also wonder how The Programmer will manage to
  223. // prevent processes from becoming evil like it happend
  224. // in the first place. That is a mystery
  225. // we will see solved later on.
  226. //
  227. // If anyone wants to know more about the API of the
  228. // acceptChrist() method, I have a lot of links to good
  229. // resources. Just mail me: [email protected]
  230. //
  231. // May The Programmer fill your internal $joy-array this Easter!
  232. // - kasper
  233. //
  234. // **************************************************
  235.  
  236. ?>

# *************************************************************************** # Notice: "styles." (and "temp.") objects are UNSET after template parsing! # Use "lib." for persisting storage of objects. # *************************************************************************** # Clear out any constants in this reserved room! styles.content > # get content styles.content.get = CONTENT styles.content.get {     table = tt_content     select.orderBy = sorting     select.where = colPos=0     select.languageField = sys_language_uid } # get content, left styles.content.getLeft < styles.content.get styles.content.getLeft.select.where = colPos=1 # get content, right styles.content.getRight < styles.content.get styles.content.getRight.select.where = colPos=2 # get content, margin styles.content.getBorder < styles.content.get styles.content.getBorder.select.where = colPos=3 # get news styles.content.getNews < styles.content.get styles.content.getNews.select.pidInList = {$styles.content.getNews.newsPid} # Edit page object: styles.content.editPanelPage = COA styles.content.editPanelPage {     10 = EDITPANEL     10 {         allow = toolbar,move,hide         label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.page         label.wrap = |&nbsp;<b>%s</b>     } } # ********************************************************************* # "lib." objects are preserved from unsetting after template parsing # ********************************************************************* # Creates persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!) lib.parseFunc {     makelinks = 1     makelinks.http.keep = {$styles.content.links.keep}     makelinks.http.extTarget = {$styles.content.links.extTarget}     makelinks.mailto.keep = path     tags {         link = TEXT         link {             current = 1             typolink.parameter.data = parameters : allParams             typolink.extTarget = {$styles.content.links.extTarget}             typolink.target = {$styles.content.links.target}             parseFunc.constants =1         }     }     allowTags = {$styles.content.links.allowTags}     denyTags = *     sword = <span class="csc-sword">|</span>     constants = 1     nonTypoTagStdWrap.HTMLparser = 1     nonTypoTagStdWrap.HTMLparser {         keepNonMatchedTags = 1         htmlSpecialChars = 2     } } # good old parsefunc in "styles.content.parseFunc" is created for backwards compatibility. Don't use it, just ignore. styles.content.parseFunc < lib.parseFunc # Creates persistent ParseFunc setup for RTE content (which is mainly HTML) based on the "ts_css" transformation. lib.parseFunc_RTE < lib.parseFunc lib.parseFunc_RTE {     //  makelinks >     # Processing <table> and <blockquote> blocks separately     externalBlocks = table, blockquote, ol,ul, div     externalBlocks {         # The blockquote content is passed into parseFunc again...         blockquote.stripNL=1         blockquote.callRecursive=1         blockquote.callRecursive.tagStdWrap.HTMLparser = 1         blockquote.callRecursive.tagStdWrap.HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;"         ol.stripNL=1         ol.stdWrap.parseFunc = < lib.parseFunc         ul.stripNL=1         ul.stdWrap.parseFunc = < lib.parseFunc         table.stripNL=1         table.stdWrap.HTMLparser = 1         table.stdWrap.HTMLparser.tags.table.fixAttrib.class {             default = contenttable             always = 1             list = contenttable         }         table.stdWrap.HTMLparser.keepNonMatchedTags = 1         table.HTMLtableCells=1         table.HTMLtableCells {             default.callRecursive=1             addChr10BetweenParagraphs=1         }         div.stripNL = 1         div.callRecursive = 1     }     nonTypoTagStdWrap.encapsLines {         encapsTagList = p,pre,h1,h2,h3,h4,h5,h6,hr         remapTag.DIV = P         nonWrappedTag = P         innerStdWrap_all.ifBlank = &nbsp;         addAttributes.P.class = bodytext         addAttributes.P.class.setOnly=blank     }     nonTypoTagStdWrap.HTMLparser = 1     nonTypoTagStdWrap.HTMLparser {         keepNonMatchedTags = 1         htmlSpecialChars = 2     } } # Content header: lib.stdheader = COA lib.stdheader {     # Create align style-attribute for <Hx> tags     2 = LOAD_REGISTER     2.headerStyle.field = header_position     2.headerStyle.required = 1     2.headerStyle.noTrimWrap = | style="text-align:|;"|     # Create class="csc-firstHeader" attribute for <Hx> tags     3 = LOAD_REGISTER     3.headerClass = csc-firstHeader     3.headerClass.if.value=1     3.headerClass.if.equals.data = cObj:parentRecordNumber     3.headerClass.noTrimWrap = | class="|"|     # Date format:     5 = TEXT     5.field = date     5.if.isTrue.field = date     5.strftime = %x     5.wrap = <p class="csc-header-date">|</p>     5.prefixComment = 2 | Header date:     # This CASE cObject renders the header content:     # currentValue is set to the header data, possibly wrapped in link-tags.     10 = CASE     10.setCurrent {         field = header         htmlSpecialChars = 1         typolink.parameter.field = header_link     }     10.key.field = header_layout     10.key.ifEmpty = {$content.defaultHeaderType}     10.key.ifEmpty.override.data = register: defaultHeaderType     10.1 = TEXT     10.1.current = 1     10.1.insertData = 1     10.1.fontTag = <h1{register:headerStyle}{register:headerClass}>|</h1>     10.2 < .10.1     10.2.fontTag = <h2{register:headerStyle}{register:headerClass}>|</h2>     10.3 < .10.1     10.3.fontTag = <h3{register:headerStyle}{register:headerClass}>|</h3>     10.4 < .10.1     10.4.fontTag = <h4{register:headerStyle}{register:headerClass}>|</h4>     10.5 < .10.1     10.5.fontTag = <h5{register:headerStyle}{register:headerClass}>|</h5>     # Pops the used registers off the stack:     98 = RESTORE_REGISTER     99 = RESTORE_REGISTER     # Post-processing:     stdWrap.fieldRequired = header     stdWrap.if {         equals.field = header_layout         value = 100         negate = 1     }     stdWrap.editIcons = tt_content : header, [header_layout | header_position], [header_link|date]     stdWrap.editIcons.beforeLastTag = 1     stdWrap.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.header     stdWrap.dataWrap = <div class="csc-header csc-header-n{cObj:parentRecordNumber}">|</div>     stdWrap.prefixComment = 2 | Header: } #****************************************************** # Including library for processing of some elements: #****************************************************** includeLibs.tx_cssstyledcontent_pi1 = EXT:css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php #********************************** # tt_content is started #********************************** tt_content > tt_content = CASE tt_content.key.field = CType tt_content.stdWrap {     innerWrap.cObject = CASE     innerWrap.cObject {         key.field = section_frame         default = COA         default {             10 = TEXT             10 {                 value = <div id="c{field:uid}"                 override.cObject = TEXT                 override.cObject {                     value = <div                     if.value = div                     if.equals.field = CType                 }                 insertData = 1             }             15 = TEXT             15 {                 value = csc-default                 noTrimWrap = | class="|" |                 required = 1             }             20 = COA             20 {                 10 = COA                 10 {                     10 = TEXT                     10 {                         value = {$content.spaceBefore}                         wrap = |+                         if.isTrue = {$content.spaceBefore}                     }                     20 = TEXT                     20 {                         field = spaceBefore                     }                      stdWrap {                         prioriCalc = intval                         wrap = margin-top:|px;                         required = 1                         ifEmpty.value =                     }                 }                 20 = COA                 20 {                     10 = TEXT                     10 {                         value = {$content.spaceAfter}                         wrap = |+                         if.isTrue = {$content.spaceAfter}                     }                     20 = TEXT                     20 {                         field = spaceAfter                     }                     stdWrap {                         prioriCalc = intval                         wrap = margin-bottom:|px;                         required = 1                         ifEmpty.value =                     }                 }                 stdWrap.noTrimWrap = | style="|" |                 stdWrap.required = 1             }             30 = TEXT             30.value = >|</div>         }         1 =< tt_content.stdWrap.innerWrap.cObject.default         1.15.value = csc-frame csc-frame-invisible         5 =< tt_content.stdWrap.innerWrap.cObject.default         5.15.value = csc-frame csc-frame-rulerBefore         6 =< tt_content.stdWrap.innerWrap.cObject.default         6.15.value = csc-frame csc-frame-rulerAfter         10 =< tt_content.stdWrap.innerWrap.cObject.default         10.15.value = csc-frame csc-frame-indent         11 =< tt_content.stdWrap.innerWrap.cObject.default         11.15.value = csc-frame csc-frame-indent3366         12 =< tt_content.stdWrap.innerWrap.cObject.default         12.15.value = csc-frame csc-frame-indent6633         20 =< tt_content.stdWrap.innerWrap.cObject.default         20.15.value = csc-frame csc-frame-frame1         21 =< tt_content.stdWrap.innerWrap.cObject.default         21.15.value = csc-frame csc-frame-frame2         66 = COA         66 {             10 = TEXT             10 {                 value = <a id="c{field:uid}"></a>                 insertData = 1             }             20 = COA             20 {                 10 = TEXT                 10 {                     value = {$content.spaceBefore}                     wrap = |+                     if.isTrue = {$content.spaceBefore}                 }                 20 = TEXT                 20 {                     field = spaceBefore                 }                  stdWrap {                     prioriCalc = intval                     wrap = margin-top:|px;                     required = 1                     ifEmpty.value =                     wrap2 = <div style="|"></div>                 }             }             30 = TEXT             30 {                 value = |             }             40 < .20             40 {                 10 {                     value = {$content.spaceAfter}                     if.isTrue = {$content.spaceAfter}                 }                 20.field = spaceAfter                 stdWrap.wrap = margin-bottom:|px;             }         }     }     innerWrap2 = | <p class="csc-linkToTop"><a href="#">{LLL:EXT:css_styled_content/pi1/locallang.xml:label.toTop}</a></p>     innerWrap2.insertData = 1     innerWrap2.fieldRequired = linkToTop     prepend = TEXT     prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>     prepend.if.isTrue.field = _LOCALIZED_UID     editPanel = 1     editPanel {         allow = move,new,edit,hide,delete         line = 5         label = %s         onlyCurrentPid = 1         previewBorder = 4         edit.displayRecord = 1     }     prefixComment = 1 | CONTENT ELEMENT, uid:{field:uid}/{field:CType} } # ***************** # CType: header # ***************** # See Object path "lib.stdheader" tt_content.header = COA tt_content.header {     10 = < lib.stdheader     20 = TEXT     20 {         field = subheader         required = 1         dataWrap = <p class="csc-subheader csc-subheader-{field:layout}">|</p>         htmlSpecialChars = 1         editIcons = tt_content:subheader,layout         editIcons.beforeLastTag = 1         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.subheader         prefixComment = 2 | Subheader:     } } # ***************** # CType: text # ***************** tt_content.text = COA tt_content.text {     10 = < lib.stdheader     20 = TEXT     20 {         field = bodytext         required = 1         parseFunc = < lib.parseFunc_RTE         editIcons = tt_content:bodytext, rte_enabled         editIcons.beforeLastTag = 1         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext         prefixComment = 2 | Text:     } } # ***************** # CType: image # ***************** # (also used for rendering 'textpic' type): tt_content.image = COA tt_content.image.10 = < lib.stdheader tt_content.image.20 = USER tt_content.image.20 {     userFunc = tx_cssstyledcontent_pi1->render_textpic     # Image source     imgList.field = image     imgPath = uploads/pics/     # Single image rendering     imgObjNum = 1     1 {         file.import.current = 1         file.width.field = imagewidth         imageLinkWrap = 1         imageLinkWrap {             bodyTag = <body style="margin:0; background:#fff;">             wrap = <a href="javascript:close();"> | </a>             width = {$styles.content.imgtext.linkWrap.width}             height = {$styles.content.imgtext.linkWrap.height}             effects = {$styles.content.imgtext.linkWrap.effects}             JSwindow = 1             JSwindow.newWindow = {$styles.content.imgtext.linkWrap.newWindow}             JSwindow.if.isFalse = {$styles.content.imgtext.linkWrap.lightboxEnabled}             directImageLink = {$styles.content.imgtext.linkWrap.lightboxEnabled}             enable.field = image_zoom             enable.ifEmpty.typolink.parameter.field = image_link             enable.ifEmpty.typolink.parameter.listNum.splitChar = 10             enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT             enable.ifEmpty.typolink.returnLast = url             typolink.parameter.field = image_link             typolink.parameter.listNum.splitChar = 10             typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT             typolink.target = {$styles.content.links.target}             typolink.extTarget = {$styles.content.links.extTarget}             linkParams.ATagParams.dataWrap =  class="{$styles.content.imgtext.linkWrap.lightboxCssClass}" rel="{$styles.content.imgtext.linkWrap.lightboxRelAttribute}"         }         altText = TEXT         altText {             field = altText             stripHtml = 1             split.token.char = 10             split.token.if.isTrue = {$styles.content.imgtext.imageTextSplit}             split.returnKey.data = register : IMAGE_NUM_CURRENT         }         titleText < .altText         titleText.field = titleText         longdescURL < .altText         longdescURL.field = longdescURL         emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling}         titleInLink = {$styles.content.imgtext.titleInLink}         titleInLinkAndImg = {$styles.content.imgtext.titleInLinkAndImg}     }     textPos.field = imageorient     maxW = {$styles.content.imgtext.maxW}     maxW.override.data = register:maxImageWidth     maxWInText = {$styles.content.imgtext.maxWInText}     maxWInText.override.data = register:maxImageWidthInText     equalH.field = imageheight     image_compression.field = image_compression     image_effects.field = image_effects     noRows.field = image_noRows     cols.field = imagecols     border.field = imageborder     caption {         1 = TEXT         1 {             field = imagecaption             required = 1             parseFunc =< lib.parseFunc             br = 1             split.token.char = 10             split.token.if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}             split.returnKey.data = register : IMAGE_NUM_CURRENT         }     }     # captionSplit is deprecated, use imageTextSplit instead     captionSplit = {$styles.content.imgtext.captionSplit}     captionAlign.field = imagecaption_position     # caption/alttext/title/longdescURL splitting     imageTextSplit = {$styles.content.imgtext.imageTextSplit}     borderCol = {$styles.content.imgtext.borderColor}     borderThick = {$styles.content.imgtext.borderThick}     borderClass = {$styles.content.imgtext.borderClass}     colSpace = {$styles.content.imgtext.colSpace}     rowSpace = {$styles.content.imgtext.rowSpace}     textMargin = {$styles.content.imgtext.textMargin}     borderSpace = {$styles.content.imgtext.borderSpace}     separateRows = {$styles.content.imgtext.separateRows}     addClasses =     addClassesImage =     addClassesImage.ifEmpty = csc-textpic-firstcol csc-textpic-lastcol     addClassesImage.override = csc-textpic-firstcol |*| |*| csc-textpic-lastcol     addClassesImage.override.if {         isGreaterThan.field = imagecols         value = 1     }     #     imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap" style="width:{register:totalwidth}px;"> | </div>     imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap"> | </div>     # if noRows is set, wrap around each column:     imageColumnStdWrap.dataWrap = <div class="csc-textpic-imagecolumn" style="width:{register:columnwidth}px;"> | </div>     layout = CASE     layout {         key.field = imageorient         # above-center         default = TEXT         default.value = <div class="csc-textpic csc-textpic-center csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>         # above-right         1 = TEXT         1.value = <div class="csc-textpic csc-textpic-right csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>         # above-left         2 = TEXT         2.value = <div class="csc-textpic csc-textpic-left csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>         # below-center         8 = TEXT         8.value = <div class="csc-textpic csc-textpic-center csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>         # below-right         9 = TEXT         9.value = <div class="csc-textpic csc-textpic-right csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>         # below-left         10 = TEXT         10.value = <div class="csc-textpic csc-textpic-left csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>         # intext-right         17 = TEXT         17.value = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div>         17.override = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>         17.override.if.isTrue = {$styles.content.imgtext.addIntextClearer}         # intext-left         18 = TEXT         18.value = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>         18.override = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>         18.override.if.isTrue = {$styles.content.imgtext.addIntextClearer}         # intext-right-nowrap         25 = TEXT         25.value = <div class="csc-textpic csc-textpic-intext-right-nowrap###CLASSES###">###IMAGES###<div style="margin-right:{register:rowWidthPlusTextMargin}px;">###TEXT###</div></div><div class="csc-textpic-clear"><!-- --></div>         25.insertData = 1         # intext-left-nowrap         26 = TEXT         26.value = <div class="csc-textpic csc-textpic-intext-left-nowrap###CLASSES###">###IMAGES###<div style="margin-left:{register:rowWidthPlusTextMargin}px;">###TEXT###</div></div><div class="csc-textpic-clear"><!-- --></div>         26.insertData = 1     }     rendering {         dl {             # Choose another rendering for special edge cases             fallbackRendering = COA             fallbackRendering {                 # Just one image without a caption => don't need the dl-overhead, use the "simple" rendering                 10 = TEXT                 10 {                     if {                         isFalse.field = imagecaption                         value = 1                         equals.data = register:imageCount                     }                     value = simple                 }                 # Multiple images and one global caption => "ul"                 20 = TEXT                 20 {                     if {                         value = 1                         isGreaterThan.data = register:imageCount                         isTrue.if.isTrue.data = register:renderGlobalCaption                         isTrue.field = imagecaption                     }                     value = ul                 }                 # Multiple images and no caption at all => "ul"                 30 = TEXT                 30 {                     if {                         value = 1                         isGreaterThan.data = register:imageCount                         isFalse.field = imagecaption                     }                     value = ul                 }             }             imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"> | </div>             imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"> | </div>             noRowsStdWrap.wrap =             oneImageStdWrap.dataWrap = <dl class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </dl>             imgTagStdWrap.wrap = <dt> | </dt>             editIconsStdWrap.wrap = <dd> | </dd>             caption {                 required = 1                 wrap = <dd class="csc-textpic-caption"> | </dd>             }         }         ul {             # Just one image without a caption => don't need the ul-overhead, use the "simple" rendering             fallbackRendering < tt_content.image.20.rendering.dl.fallbackRendering.10             imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"><ul> | </ul></div>             imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"><ul> | </ul></div>             noRowsStdWrap.wrap = <ul> | </ul>             oneImageStdWrap.dataWrap = <li class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </li>             imgTagStdWrap.wrap =             editIconsStdWrap.wrap = <div> | </div>             caption.wrap = <div class="csc-textpic-caption"> | </div>         }         div {             # Just one image without a caption => don't need the div-overhead, use the "simple" rendering             fallbackRendering < tt_content.image.20.rendering.dl.fallbackRendering.10             imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"> | </div>             imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"> | </div>             noRowsStdWrap.wrap =             oneImageStdWrap.dataWrap = <div class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </div>             imgTagStdWrap.wrap = <div> | </div>             editIconsStdWrap.wrap = <div> | </div>             caption.wrap = <div class="csc-textpic-caption"> | </div>         }         simple {             imageRowStdWrap.dataWrap = |             imageLastRowStdWrap.dataWrap = |             noRowsStdWrap.wrap =             oneImageStdWrap.dataWrap = |             imgTagStdWrap.wrap = |             editIconsStdWrap.wrap = |             caption.wrap = <div class="csc-textpic-caption"> | </div>             imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap csc-textpic-single-image" style="width:{register:totalwidth}px;"> | </div>             imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap csc-textpic-single-image"> | </div>         }     }     renderMethod = dl     editIcons = tt_content : image [imageorient|imagewidth|imageheight], [imagecols|image_noRows|imageborder],[image_link|image_zoom],[image_compression|image_effects|image_frames],imagecaption[imagecaption_position]     editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.images     caption.editIcons = tt_content : imagecaption[imagecaption_position]     caption.editIcons.beforeLastTag=1     caption.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.caption     stdWrap.prefixComment = 2 | Image block: } # ***************** # CType: textpic # ***************** tt_content.textpic = COA tt_content.textpic {     10 = COA     10.if.value = 25     10.if.isLessThan.field = imageorient     10.10 = < lib.stdheader     20  = < tt_content.image.20     20 {         text.10 = COA         text.10 {             if.value = 24             if.isGreaterThan.field = imageorient             10 = < lib.stdheader             10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>         }         text.20 = < tt_content.text.20         text.wrap = <div class="csc-textpic-text"> | </div>     } } # ***************** # CType: bullet # ***************** tt_content.bullets = COA tt_content.bullets {     10 = < lib.stdheader     20 = TEXT     20 {         field = bodytext         trim = 1         split{             token.char = 10             cObjNum = |*|1|| 2|*|             1.current = 1             1.parseFunc =< lib.parseFunc             1.wrap = <li class="odd">|</li>             2.current = 1             2.parseFunc =< lib.parseFunc             2.wrap = <li class="even">|</li>         }         dataWrap = <ul class="csc-bulletlist csc-bulletlist-{field:layout}">|</ul>          editIcons = tt_content: bodytext, [layout]          editIcons.beforeLastTag = 1          editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.php:eIcon.bullets          prefixComment = 2 | Bullet list:     } } # ***************** # CType: table # ***************** # Rendered by a PHP function specifically written to handle CE tables. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php tt_content.table = COA tt_content.table {     10 = < lib.stdheader     20 = USER     20.userFunc = tx_cssstyledcontent_pi1->render_table     20.field = bodytext     20.color {         default =         1 = #EDEBF1         2 = #F5FFAA     }     20.tableParams_0 {         border =         cellpadding =         cellspacing =     }     20.tableParams_1 {         border =         cellpadding =         cellspacing =     }     20.tableParams_2 {         border =         cellpadding =         cellspacing =     }     20.tableParams_3 {         border =         cellpadding =         cellspacing =     }     20.innerStdWrap.wrap = |     20.innerStdWrap.parseFunc = < lib.parseFunc     20.stdWrap {         editIcons = tt_content: cols, bodytext, [layout], [table_bgColor|table_border|table_cellspacing|table_cellpadding]         editIcons.beforeLastTag = 1         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.table         prefixComment = 2 | Table:     } } # ***************** # CType: uploads # ***************** # Rendered by a PHP function specifically written to handle CE filelists. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php tt_content.uploads = COA tt_content.uploads {     10 = < lib.stdheader     20 = USER     20.userFunc = tx_cssstyledcontent_pi1->render_uploads     20.field = media     20.filePath.field = select_key     20 {         # Rendering for each file (e.g. rows of the table) as a cObject         itemRendering = COA         itemRendering {             wrap = <tr class="tr-odd tr-first">|</tr> |*| <tr class="tr-even">|</tr> || <tr class="tr-odd">|</tr> |*|             10 = TEXT             10.data = register:linkedIcon             10.wrap = <td class="csc-uploads-icon">|</td>             10.if.isPositive.field = layout             20 = COA             20.wrap = <td class="csc-uploads-fileName">|</td>             20.1 = TEXT             20.1 {                 data = register:linkedLabel                 wrap = <p>|</p>             }             20.2 = TEXT             20.2 {                 data = register:description                 wrap = <p class="csc-uploads-description">|</p>                 required = 1             }             30 = TEXT             30.if.isTrue.field = filelink_size             30.data = register:fileSize             30.wrap = <td class="csc-uploads-fileSize">|</td>             30.bytes = 1             30.bytes.labels = {$styles.content.uploads.filesizeBytesLabels}         }         useSpacesInLinkText = 0         stripFileExtensionFromLinkText = 0     }     20.color {         default =         1 = #EDEBF1         2 = #F5FFAA     }     20.tableParams_0 {         border =         cellpadding =         cellspacing =     }     20.tableParams_1 {         border =         cellpadding =         cellspacing =     }     20.tableParams_2 {         border =         cellpadding =         cellspacing =     }     20.tableParams_3 {         border =         cellpadding =         cellspacing =     }     20.linkProc {         target = _blank         jumpurl = {$styles.content.uploads.jumpurl}         jumpurl.secure = {$styles.content.uploads.jumpurl_secure}         jumpurl.secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}         removePrependedNumbers = 1         iconCObject = IMAGE         iconCObject.file.import.data = register : ICON_REL_PATH         iconCObject.file.width = 150     }     20.filesize {         bytes = 1         bytes.labels = {$styles.content.uploads.filesizeBytesLabels}     }     20.stdWrap {         editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size, imagecaption         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.filelist         prefixComment = 2 | File list:     } } # ****************** # CType: multimedia # ****************** tt_content.multimedia = COA tt_content.multimedia {     10 = < lib.stdheader     20 = MULTIMEDIA     20.file.field = multimedia     20.file.wrap = uploads/media/     20.file.listNum = 0     20.params.field = bodytext     20.stdWrap {         editIcons = tt_content: multimedia, bodytext         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia         prefixComment = 2 | Multimedia element:     } } # ***************** # CType: swfobject # ***************** tt_content.swfobject = COA tt_content.swfobject {     10 = < lib.stdheader     20 = SWFOBJECT     20 {         file =         width =         height =         flexParams.field = pi_flexform         alternativeContent.field = bodytext         layout = ###SWFOBJECT###         video {             player = {$styles.content.media.videoPlayer}             defaultWidth  = {$styles.content.media.defaultVideoWidth}             defaultHeight  = {$styles.content.media.defaultVideoHeight}             default {                 params.quality = high                 params.menu = false                 params.allowScriptAccess = sameDomain                 params.allowFullScreen = true             }             mapping {             }         }         audio {             player = {$styles.content.media.audioPlayer}             defaultWidth = {$styles.content.media.defaultAudioWidth}             defaultHeight = {$styles.content.media.defaultAudioHeight}             default {                 params.quality = high                 params.allowScriptAccess = sameDomain                 params.menu = false             }             mapping {                 flashvars.file = soundFile             }         }     }     20.stdWrap {         editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia         prefixComment = 2 | SWFobject element:     } } # ***************** # CType: qtobject # ***************** tt_content.qtobject = COA tt_content.qtobject {     10 = < lib.stdheader     20 = QTOBJECT     20 {         file =         width =         height =         flexParams.field = pi_flexform         alternativeContent.field = bodytext         layout = ###QTOBJECT###         video {             player = {$styles.content.media.videoPlayer}             defaultWidth  = {$styles.content.media.defaultVideoWidth}             defaultHeight  = {$styles.content.media.defaultVideoHeight}             default {                 params.quality = high                 params.menu = false                 params.allowScriptAccess = sameDomain                 params.allowFullScreen = true             }             mapping {             }         }         audio {             player = {$styles.content.media.audioPlayer}             defaultWidth = {$styles.content.media.defaultAudioWidth}             defaultHeight = {$styles.content.media.defaultAudioHeight}             default {                 params.quality = high                 params.allowScriptAccess = sameDomain                 params.menu = false             }             mapping {                 flashvars.file = soundFile             }         }     }     20.stdWrap {         editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia         prefixComment = 2 | QTobject element:     } } # ***************** # CType: media # ***************** tt_content.media = COA tt_content.media {     10 = < lib.stdheader     20 = MEDIA     20 {         flexParams.field = pi_flexform         alternativeContent < tt_content.text.20         alternativeContent.field = bodytext         type = video         renderType = auto         allowEmptyUrl = 0         forcePlayer = 1         fileExtHandler {             default = MEDIA             avi = MEDIA             asf = MEDIA             class = MEDIA             wmv = MEDIA             mp3 = SWF             mp4 = SWF             m4v = SWF             swa = SWF             flv = SWF             swf = SWF             mov = QT             m4v = QT             m4a = QT         }         mimeConf.swfobject < tt_content.swfobject.20         mimeConf.qtobject < tt_content.qtobject.20     }     20.stdWrap {         editIcons = tt_content: pi_flexform, bodytext         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia         prefixComment = 2 | Media element:     } } # ****************** # CType: mailform # ****************** tt_content.mailform = COA tt_content.mailform.10 = < lib.stdheader tt_content.mailform.20 = FORM tt_content.mailform.20 {     accessibility = 1     noWrapAttr=1     formName = mailform     dontMd5FieldNames = 1     layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>     labelWrap.wrap = |     commentWrap.wrap = |     radioWrap.wrap = |<br />     radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>     REQ = 1     REQ.labelWrap.wrap = |     COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>     RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>     LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>     target = {$styles.content.mailform.target}     goodMess = {$styles.content.mailform.goodMess}     badMess = {$styles.content.mailform.badMess}     redirect.field = pages     redirect.listNum = 0     recipient.field = subheader     data.field = bodytext     locationData = 1     hiddenFields.stdWrap.wrap = <div style="display:none;">|</div>     params.radio = class="csc-mailform-radio"     params.check = class="csc-mailform-check"     params.submit = class="csc-mailform-submit"     stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>     stdWrap {         editIcons = tt_content: bodytext, pages, subheader         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.form         prefixComment = 2 | Mail form inserted:     } } # ****************** # CType: search # ****************** tt_content.search = COA tt_content.search.10 = < lib.stdheader # Result: tt_content.search.20 = SEARCHRESULT tt_content.search.20 {     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     languageField.tt_content = sys_language_uid     renderObj = COA     renderObj {         10 = TEXT         10.field = pages_title         10.htmlSpecialChars = 1         10.typolink {             parameter.field = uid             target = {$styles.content.searchresult.resultTarget}             additionalParams.data = register:SWORD_PARAMS             additionalParams.required = 1             additionalParams.wrap = &no_cache=1         }         10.htmlSpecialChars = 1         10.wrap = <h3 class="csc-searchResultHeader">|</h3>         20 = COA         20 {             10 = TEXT             10.field = tt_content_bodytext             10.stripHtml = 1             10.htmlSpecialChars = 1         }         20.stdWrap.crop = 200 | ...         20.stdWrap.wrap = <p class="csc-searchResult">|</p>     }     layout = COA     layout {         wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###         10 = TEXT         10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.resultRange         10.wrap = <td class="csc-searchResultRange"><p>|</p></td>         20 = TEXT         20.value = ###PREV###&nbsp;&nbsp;&nbsp;###NEXT###         20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>     }     noResultObj = COA     noResultObj {         10 = TEXT         10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.emptySearch         10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>     }     next = TEXT     next.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultNext     prev = TEXT     prev.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultPrev     target = {$styles.content.searchresult.target}     range = 20     stdWrap.prefixComment = 2 | Search result: } # Form: tt_content.search.30 < tt_content.mailform.20 tt_content.search.30 {     goodMess = {$styles.content.searchform.goodMess}     redirect >     recipient >     data >     dataArray {         10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchWord         10.type = sword=input         20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchIn         20.type = scols=select         20.valueArray {             10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.headersKeywords             10.value = pages.title-subtitle-keywords-description:tt_content.header             20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.pageContent             20.value = tt_content.header-bodytext-imagecaption         }         30.type = stype=hidden         30.value = L0         40.type = submit=submit         40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchButton     }     type.field = pages     type.listNum = 0     locationData = HTTP_POST_VARS     no_cache = 1     stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform">  | </table>     stdWrap {         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.search         prefixComment = 2 | Search form inserted:     } } # ****************** # CType: login # ****************** tt_content.login < tt_content.mailform tt_content.login.10 = < lib.stdheader tt_content.login.20 {     goodMess = {$styles.content.loginform.goodMess}     redirect >     recipient >     data >     dataArray {         10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username         10.type = *user=input         20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.password         20.type = *pass=password         30.type = logintype=hidden         30.value = login         40.type = submit=submit         40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.login     }     type.field = pages     type.listNum = 0     target = {$styles.content.loginform.target}     locationData = 0     hiddenFields.pid = TEXT     hiddenFields.pid {         value = {$styles.content.loginform.pid}         override.field = pages         override.listNum = 1     }     stdWrap.wrap = <div class="csc-loginform"> | </div>     stdWrap {         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.login         prefixComment = 2 | Login/Logout form:     } } [loginUser = *] tt_content.login.20 {     dataArray >     dataArray {         10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username         10.label.wrap = |&nbsp;<!--###USERNAME###-->         30.type = logintype=hidden         30.value = logout         40.type = submit=submit         40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.logout     } } [global] # ****************** # CType: splash # ****************** # Deprecated element. # Still here for backwards compliance with plugins using the "text box" type. tt_content.splash = CASE tt_content.splash.key.field = splash_layout tt_content.splash.stdWrap {     prefixComment = 2 | Textbox inserted (Deprecated) } tt_content.splash.default = COA tt_content.splash.default {     20 = CTABLE     20 {         c.1 = < tt_content.text         lm.1 = IMAGE         lm.1.file {             import = uploads/pics/             import.field = image             import.listNum = 0             maxW.field = imagewidth             maxW.ifEmpty = 200         }         cMargins = 30,0,0,0     } } tt_content.splash.1 < tt_content.splash.default tt_content.splash.1.20.lm.1.file > tt_content.splash.1.20.lm.1.file = GIFBUILDER tt_content.splash.1.20.lm.1.file {     XY = [10.w]+10,[10.h]+10     backColor = {$content.splash.bgCol}     backColor.override.data = register:pageColor     format = jpg     5 = BOX     5.dimensions = 3,3,[10.w],[10.h]     5.color = #333333     7 = EFFECT     7.value = blur=99|blur=99|blur=99|blur=99|blur=99|blur=99|blur=99     10 = IMAGE     10.file {         import = uploads/pics/         import.field = image         import.listNum = 0         maxW.field = imagewidth         maxW.ifEmpty = 200     } } // The image frames are not available unless TypoScript code from styles.content.imgFrames.x is provided manually: tt_content.splash.2 < tt_content.splash.default #tt_content.splash.2.20.lm.1.file.m < styles.content.imgFrames.1 tt_content.splash.3 < tt_content.splash.default #tt_content.splash.3.20.lm.1.file.m < styles.content.imgFrames.2 // From plugin.postit1, if included: tt_content.splash.20 = < plugin.postit1 # **************** # CType: menu # **************** tt_content.menu = COA tt_content.menu {     10 = < lib.stdheader     20 = CASE     20 {         key.field = menu_type         # "Menu of these pages"         default = HMENU         default {             special = list             special.value.field = pages             wrap = <ul class="csc-menu csc-menu-def">|</ul>             1 = TMENU             1 {                 target = {$PAGE_TARGET}                 NO {                     stdWrap.htmlSpecialChars = 1                     wrapItemAndSub = <li>|</li>                     ATagTitle.field = description // title                 }                 noBlur = 1             }         }         # "Menu of subpages to these pages"         1 < .default         1 {             special = directory             wrap = <ul class="csc-menu csc-menu-1">|</ul>         }         # "Sitemap - liststyle"         2 = HMENU         2 {             wrap = <div class="csc-sitemap">|</div>             1 = TMENU             1 {                 target = {$PAGE_TARGET}                 noBlur = 1                 expAll = 1                 wrap = <ul>|</ul>                 NO {                     stdWrap.htmlSpecialChars = 1                     wrapItemAndSub = <li>|</li>                     ATagTitle.field = description // title                 }             }             2 < .1             3 < .1             4 < .1             5 < .1             6 < .1             7 < .1         }         # "Section index (pagecontent w/Index checked - liststyle)"         3 < styles.content.get         3 {             wrap = <ul class="csc-menu csc-menu-3">|</ul>             select.andWhere = sectionIndex!=0             select.pidInList.override.field = pages             renderObj = TEXT             renderObj {                 fieldRequired = header                 trim = 1                 field = header                 htmlSpecialChars = 1                 noBlur = 1                 wrap = <li class="csc-section">|</li>                 typolink.parameter.field = pid                 typolink.section.field = uid             }         }         # "Menu of subpages to these pages (with abstract)"         4 < .1         4 {             wrap = <dl class="csc-menu csc-menu-4">|</dl>             1.NO {                 wrapItemAndSub >                 linkWrap = <dt>|</dt>                 after {                     data = field : abstract // field : description // field : subtitle                     required = 1                     htmlSpecialChars = 1                     wrap = <dd>|</dd>                 }                 ATagTitle.field = description // title             }         }         # "Recently updated pages"         5 < .default         5 {             wrap = <ul class="csc-menu csc-menu-5">|</ul>             special = updated             special {                 maxAge = 3600*24*7                 excludeNoSearchPages = 1             }         }         # "Related pages (based on keywords)"         6 < .default         6 {             wrap = <ul class="csc-menu csc-menu-6">|</ul>             special = keywords             special {                 excludeNoSearchPages = 1             }         }         # "Menu of subpages to these pages + sections - liststyle"         7 < .1         7 {             wrap = <ul class="csc-menu csc-menu-7">|</ul>             1.expAll = 1             2 < .1             2 {                 sectionIndex = 1                 sectionIndex.type = header                 wrap = <ul>|</ul>                 NO.wrapItemAndSub = <li class="csc-section">|</li>             }         }     }     20.stdWrap {         editIcons = tt_content: menu_type, pages         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.menuSitemap         prefixComment = 2 | Menu/Sitemap element:     } } # **************** # CType: shortcut # **************** # Should be a complete copy from the old static template "content (default)" tt_content.shortcut = COA tt_content.shortcut {     20 = CASE     20.key.field = layout     20.0= RECORDS     20.0 {         source.field = records         tables = {$content.shortcut.tables}         # THESE are OLD plugins. Modern plugins registers themselves automatically!         conf.tt_content = < tt_content         conf.tt_address = < tt_address         conf.tt_links = < tt_links         conf.tt_guest = < tt_guest         conf.tt_board = < tt_board         conf.tt_calender = < tt_calender         conf.tt_rating < tt_rating         conf.tt_products = < tt_products         conf.tt_news = < tt_news         conf.tt_poll = < plugin.tt_poll     }     20.1= RECORDS     20.1 {         source.field = records         tables = {$content.shortcut.tables}         conf.tt_poll = < plugin.tt_poll         conf.tt_poll.code = RESULT,SUBMITTEDVOTE     }     20.stdWrap {         editIcons = tt_content: records         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList         prefixComment = 2 | Inclusion of other records (by reference):     } } # **************** # CType: list # **************** # Should be a complete copy from the old static template "content (default)" (except "lib.stdheader") tt_content.list = COA tt_content.list {     10 = < lib.stdheader     20 = CASE     20.key.field = list_type     20 {         # LIST element references (NOT copy of objects!)         # THESE are OLD plugins. Modern plugins registers themselves automatically!         3 = CASE         3.key.field = layout         3.0 = < plugin.tt_guest         4 = CASE         4.key.field = layout         4.0 = < plugin.tt_board_list         4.1 = < plugin.tt_board_tree         2 = CASE         2.key.field = layout         2.0 = < plugin.tt_board_tree         5 = CASE         5.key.field = layout         5.0 = < plugin.tt_products         7 = CASE         7.key.field = layout         7.0 = < plugin.tt_calender         8 = CASE         8.key.field = layout         8.0 = < plugin.tt_rating         9 = CASE         9.key.field = layout         9.0 = < plugin.tt_news         11 = CASE         11.key.field = layout         11.0 = < plugin.tipafriend         20 = CASE         20.key.field = layout         20.0 = < plugin.feadmin.fe_users         21 = CASE         21.key.field = layout         21.0 = < plugin.feadmin.dmailsubscription     }     20.stdWrap {         editIcons = tt_content: list_type, layout, select_key, pages [recursive]         editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.plugin         prefixComment = 2 | Plugin inserted:     } } # **************** # CType: script # **************** # OBSOLETE! Please make extensions instead. The "script" content element was meant for these custom purposes in the past. Today extensions will do the job better. tt_content.script = TEXT tt_content.script {     value =     prefixComment = 2 | Script element (Deprecated) } # **************** # CType: div # **************** tt_content.div = TEXT tt_content.div {     value = <hr />     wrap = <div class="divider">|</div>     prefixComment = 2 | Div element } # **************** # CType: html # **************** # This truely IS a content object, launched from inside the PHP class of course. # Should be a complete copy from the old static template "content (default)" tt_content.html = TEXT tt_content.html {     field = bodytext     editIcons = tt_content: pages     editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.html     prefixComment = 2 | Raw HTML content: } # **************** # Default error msg: # **************** tt_content.default = TEXT tt_content.default {     field = CType     wrap = <p style="background-color: yellow;"><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>     prefixComment = 2 | Unknown element message: } # ********************************************************************* # ACCESSIBILTY MODE # ********************************************************************* plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (     /* Captions */     DIV.csc-textpic-caption-c .csc-textpic-caption { text-align: center; }     DIV.csc-textpic-caption-r .csc-textpic-caption { text-align: right; }     DIV.csc-textpic-caption-l .csc-textpic-caption { text-align: left; }     /* Needed for noRows setting */     DIV.csc-textpic DIV.csc-textpic-imagecolumn { float: left; display: inline; }     /* Border just around the image */     {$styles.content.imgtext.borderSelector} {         border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};         padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;     }     DIV.csc-textpic-imagewrap { padding: 0; }     DIV.csc-textpic IMG { border: none; }     /* DIV: This will place the images side by side */     DIV.csc-textpic DIV.csc-textpic-imagewrap DIV.csc-textpic-image { float: left; }     /* UL: This will place the images side by side */     DIV.csc-textpic DIV.csc-textpic-imagewrap UL { list-style: none; margin: 0; padding: 0; }     DIV.csc-textpic DIV.csc-textpic-imagewrap UL LI { float: left; margin: 0; padding: 0; }     /* DL: This will place the images side by side */     DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image { float: left; }     DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DT { float: none; }     DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD { float: none; }     DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD IMG { border: none; } /* FE-Editing Icons */     DL.csc-textpic-image { margin: 0; }     DL.csc-textpic-image DT { margin: 0; display: inline; }     DL.csc-textpic-image DD { margin: 0; }     /* Clearer */     DIV.csc-textpic-clear { clear: both; }     /* Margins around images: */     /* Pictures on left, add margin on right */     DIV.csc-textpic-left DIV.csc-textpic-imagewrap .csc-textpic-image,     DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,     DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap .csc-textpic-image {         display: inline; /* IE fix for double-margin bug */         margin-right: {$styles.content.imgtext.colSpace}px;     }     /* Pictures on right, add margin on left */     DIV.csc-textpic-right DIV.csc-textpic-imagewrap .csc-textpic-image,     DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,     DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap .csc-textpic-image {         display: inline; /* IE fix for double-margin bug */         margin-left: {$styles.content.imgtext.colSpace}px;     }     /* Pictures centered, add margin on left */     DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image {         display: inline; /* IE fix for double-margin bug */         margin-left: {$styles.content.imgtext.colSpace}px;     }     DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image .csc-textpic-caption { margin: 0; }     DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image IMG { margin: 0; vertical-align:bottom; }     /* Space below each image (also in-between rows) */     DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }     DIV.csc-textpic-equalheight DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; display: block; }     DIV.csc-textpic DIV.csc-textpic-imagerow { clear: both; }     DIV.csc-textpic DIV.csc-textpic-single-image IMG { margin-bottom: {$styles.content.imgtext.rowSpace}px; }     /* IE7 hack for margin between image rows */     *+html DIV.csc-textpic DIV.csc-textpic-imagerow .csc-textpic-image { margin-bottom: 0; }     *+html DIV.csc-textpic DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; }     /* No margins around the whole image-block */     DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-firstcol { margin-left: 0px !important; }     DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-lastcol { margin-right: 0px !important; }     /* Add margin from image-block to text (in case of "Text w/ images") */     DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap,     DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap {         margin-right: {$styles.content.imgtext.textMargin}px !important;     }     DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap,     DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap {         margin-left: {$styles.content.imgtext.textMargin}px !important;     }     /* Positioning of images: */     /* Above */     DIV.csc-textpic-above DIV.csc-textpic-text { clear: both; }     /* Center (above or below) */     DIV.csc-textpic-center { text-align: center; /* IE-hack */ }     DIV.csc-textpic-center DIV.csc-textpic-imagewrap { margin: 0 auto; }     DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image { text-align: left; /* Remove IE-hack */ }     DIV.csc-textpic-center DIV.csc-textpic-text { text-align: left; /* Remove IE-hack */ }     /* Right (above or below) */     DIV.csc-textpic-right DIV.csc-textpic-imagewrap { float: right; }     DIV.csc-textpic-right DIV.csc-textpic-text { clear: right; }     /* Left (above or below) */     DIV.csc-textpic-left DIV.csc-textpic-imagewrap { float: left; }     DIV.csc-textpic-left DIV.csc-textpic-text { clear: left; }     /* Left (in text) */     DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap { float: left; }     /* Right (in text) */     DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap { float: right; }     /* Right (in text, no wrap around) */     DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap { float: right; clear: both; }     /* Hide from IE5-mac. Only IE-win sees this. \*/     * html DIV.csc-textpic-intext-right-nowrap .csc-textpic-text { height: 1%; }     /* End hide from IE5/mac */     /* Left (in text, no wrap around) */     DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap { float: left; clear: both; }     /* Hide from IE5-mac. Only IE-win sees this. \*/     * html DIV.csc-textpic-intext-left-nowrap .csc-textpic-text,     * html .csc-textpic-intext-left ol,     * html .csc-textpic-intext-left ul { height: 1%; }     /* End hide from IE5/mac */     DIV.csc-textpic DIV.csc-textpic-imagerow-last { margin-bottom: 0; }     /* Browser fixes: */     /* Fix for unordered and ordered list with image "In text, left" */     .csc-textpic-intext-left ol, .csc-textpic-intext-left ul {padding-left: 40px; overflow: auto; } ) # TYPO3 SVN ID: $Id: setup.txt 10117 2011-01-18 19:06:48Z lolli $