############################### ########## Constants ########## ############################### # cat=advanced/enable; type=boolean; label=Render content RTE compliant?: When this is set, the content will be rendered with each line wrapped in

-tags regardless of using stylesheets or not. This is necessary in order to make the content compliant with the Rich Text Editors align-ment functions. content.RTE_compliant = 1 content.RTE_compliant.mode = fontwrap content { # cat=content/cHeader/h0; type=int[1-5]; label=Default Header type: Enter the number of the header layout to be used by default. defaultHeaderType = 1 # cat=content/cHeader/a; type=wrap; label=Header wrap: This is the wrap around the headers regardless of individual wraps. wrap.header = |
# cat=content/cHeader/h1; type=wrap; label=Header "Layout1" wrap.header1 = | # cat=content/cHeader/h2; type=wrap; label=Header "Layout2" wrap.header2 = | # cat=content/cHeader/h3; type=wrap; label=Header "Layout3" wrap.header3 = | # cat=content/cHeader/h4; type=wrap; label=Header "Layout4" wrap.header4 = | case.header1 = case.header2 = wrap2.header1 = wrap2.header2 = wrap2.header3 = # cat=content/cHeader/x; type=wrap; label=Headerdate: The optional date shown above the header wrap.headerDate = |:
# cat=content/cHeader/s0; type=int[1-3]; label=Default Subheader type: Enter the number of the subheader layout to be used by default. defaultSubHeaderType = 3 # cat=content/cHeader/s1; type=wrap; label=Subheader "Layout 1" wrap.subheader1 = | # cat=content/cHeader/s2; type=wrap; label=Subheader "Layout 2" wrap.subheader2 = | # cat=content/cHeader/s3; type=wrap; label=Subheader "Layout 3" wrap.subheader3 = | # cat=content/cBullets; type=; label=Bulletlist "Layout 2" bulletImages.2 = # cat=content/cBullets; type=; label=Bulletlist "Layout 3" bulletImages.3 = headerSpace = 0|5 space = 0|10 # cat=content/cText/b; type=wrap; label=Bodytext wrap: This is the wrap around the whole bodytext part of a content element wrap.bodytext = |
# cat=content/cText/a; type=small; label=Bodytext linebreak: This is the tag used for linebreaks at the end of every paragraph in the bodytext. break.bodytext =
# An alternative body text linebreak code, because this will substitue nl-chars ONLY in the plain bodytext whereas the above will substituted it in all content including the returned content from any typo-tags. break.bodytext_parseFunc = # cat=content/cTable; type=color; label=Tables Cellcolor: The color of the tablecells of ordinary tables tableCellColor = silver tableCellWrap = # cat=content/cSplash; type=color; label="Textbox" Background color: This is the background color of the graphical elements in the "Textbox" content element. Normally set this to the color of the page background splash.bgCol = white # cat=content/cMenu; type=wrap; label="Menu" content element: Elementwrap for the items in the content element type "Menu" menuWrap = | # cat=content/cMenu; type=wrap; label="Menu" content element, sub: Elementwrap for the subitems in the content element type "Menu". Used by the links to page-sections. subMenuWrap = | menuAllWrap = |
# cat=content/language; type=; label="To top" Link: HTML-code used to create a link to the top of the page, if that is enabled for a content element linkToTop = To top
# cat=advanced/links; type=small; label=Pageframe object: The name of the "contentframe". Normally set to "page" if the site has a frameset. Otherwise it should be an empty value. This is important, as it determines the target of internal links! pageFrameObj = page shortcut.tables = tt_content,tt_address,tt_links,tt_guest,tt_board,tt_calender,tt_products,tt_news,tt_rating,tt_poll } ############################### ############ SETUP ############# ############################### # # Object preserved from unsetting after template parsing # These are meant for referencing # lib.stdheader = COA lib.stdheader { stdWrap.wrapAlign.field = header_position stdWrap.typolink.parameter.field = header_link stdWrap.fieldRequired = header stdWrap.editIcons = tt_content : header, [header_layout | header_position], [header_link|date] stdWrap.editIcons.beforeLastTag=1 stdWrap.editIcons.iconTitle=Edit header stdWrap.if { equals.field = header_layout value = 100 negate = 1 } 5 = TEXT 5.field = date 5.if.isTrue.field = date 5.date = d/m Y 5.wrap = {$content.wrap.headerDate} 10 = CASE 10.setCurrent { field = header parseFunc < styles.content.parseFunc parseFunc.if.value = 5 parseFunc.if.equals { field = header_layout ifEmpty = {$content.defaultHeaderType} ifEmpty.override.data = register: defaultHeaderType } parseFunc.if.negate = 1 } 10.key.field = header_layout 10.key.ifEmpty = {$content.defaultHeaderType} 10.key.ifEmpty.override.data = register: defaultHeaderType 10.stdWrap.wrap = {$content.wrap.header} 10.1 = TEXT 10.1.current = 1 10.1.fontTag = {$content.wrap.header1} 10.1.case = {$content.case.header1} 10.1.wrap2 = {$content.wrap2.header1} 10.2 = TEXT 10.2.current = 1 10.2.fontTag = {$content.wrap.header2} 10.2.case = {$content.case.header2} 10.2.wrap2 = {$content.wrap2.header2} 10.3 = TEXT 10.3.current = 1 10.3.fontTag = {$content.wrap.header3} 10.3.wrap2 = {$content.wrap2.header3} 10.4 = TEXT 10.4.current = 1 10.4.fontTag = {$content.wrap.header4} 10.5 < styles.header.gfx1 stdWrap.space = {$content.headerSpace} } # # Configuring of language for backwards compatibility # {$comment_DK} config.language = dk # # tt_content is started # tt_content > tt_content = CASE tt_content.stdWrap { spaceBefore.field = spaceBefore spaceAfter.field = spaceAfter space = {$content.space} innerWrap.cObject < styles.content.frames innerWrap2 = | {$content.linkToTop} innerWrap2.fieldRequired = linkToTop dataWrap = editPanel = 1 editPanel { allow = move,new,edit,hide,delete line=5 label = %s onlyCurrentPid = 1 previewBorder=4 edit.displayRecord = 1 } } tt_content.key.field = CType # CType: header tt_content.header = COA tt_content.header { 10 = < lib.stdheader 20 = CASE 20.stdWrap.fieldRequired = subheader 20.stdWrap.parseFunc < styles.content.parseFunc 20.key.field = layout 20.stdWrap.wrap = |
20.stdWrap.editIcons = tt_content:subheader,layout 20.stdWrap.editIcons.beforeLastTag=1 20.stdWrap.editIcons.iconTitle=Edit subheader 20.1 = TEXT 20.1.field = subheader 20.1.fontTag = {$content.wrap.subheader1} 20.2 = TEXT 20.2.field = subheader 20.2.fontTag = {$content.wrap.subheader2} 20.3 = TEXT 20.3.field = subheader 20.3.fontTag = {$content.wrap.subheader3} 20.default < .20.{$content.defaultSubHeaderType} } # CType: bullet tt_content.bullets = COA tt_content.bullets { 10 = < lib.stdheader 20 = CASE 20.setCurrent.field = bodytext 20.key.field = layout 20 { default < styles.content.bulletlist_gr 1 < styles.content.bulletlist 2 < styles.content.bulletlist_gr 2.split.1.wrap = {$content.bulletImages.2} | 3 < styles.content.bulletlist_gr 3.split.1.wrap = {$content.bulletImages.3} | } 20.stdWrap.editIcons = tt_content:layout, bodytext [text_align | text_face | text_size | text_color],[text_properties] 20.stdWrap.editIcons.beforeLastTag=1 20.stdWrap.editIcons.iconTitle=Edit bulletlist } # CType: table tt_content.table = COA tt_content.table { 10 = < lib.stdheader 20 = CASE 20.setCurrent.field = bodytext 20.key.field = layout 20 { default < styles.content.table 1 < styles.content.table 1.split.1.split.1.wrap = | 1.split.1.split.1.innerWrap = {$content.tableCellWrap} 1.split.1.split.2.wrap = | 1.split.1.split.2.innerWrap = {$content.tableCellWrap} 2 < styles.content.table 2.split.1.split.1.wrap = | 2.split.1.split.1.innerWrap = {$content.tableCellWrap} 2.split.2.split.1.wrap = | 2.split.2.split.1.innerWrap = {$content.tableCellWrap} 3 < .1 3.split.2.split.1.wrap = | 3.split.2.split.1.innerWrap = {$content.tableCellWrap} } 20.stdWrap.editIcons = tt_content:layout [cols|table_bgColor|table_border|table_cellspacing|table_cellpadding], bodytext [text_align | text_face | text_size | text_color],[text_properties] 20.stdWrap.editIcons.beforeLastTag=1 20.stdWrap.editIcons.iconTitle=Edit table } # CType: text tt_content.text = COA tt_content.text { 10 = < lib.stdheader 20 = TEXT 20 { #debugFunc = 2 fieldRequired = bodytext wrap = {$content.wrap.bodytext} brTag = {$content.break.bodytext} field = bodytext textStyle < styles.content.textStyle parseFunc < styles.content.parseFunc parseFunc.nonTypoTagStdWrap.brTag = {$content.break.bodytext_parseFunc} editIcons = tt_content:bodytext [text_align | text_face | text_size | text_color],[text_properties], rte_enabled editIcons.beforeLastTag=1 editIcons.iconTitle=Edit bodytext } 20.parseFunc.tags { typolist < tt_content.bullets.20 typolist.stripNL = 1 typolist { // Overriding values: key.field > key.data = parameters : type setCurrent > stdWrap.if.isTrue.current = 1 } typohead < lib.stdheader typohead.stripNL = 1 typohead { stdWrap.wrapAlign.field > stdWrap.wrapAlign.data = parameters : align stdWrap.typolink.parameter.field > stdWrap.typolink.parameter.data = parameters : link stdWrap.fieldRequired > stdWrap.if > stdWrap.if.isTrue.current = 1 stdWrap.wrap =
| stdWrap.editIcons > 10.key.field > 10.key.data = parameters : type 10.setCurrent.field > 10.setCurrent.current = 1 } typocode = TEXT typocode.current = 1 typocode.htmlSpecialChars = 1 typocode.br = 1 } } # Configures the content for compliancy with the RTE [globalVar=LIT:0<{$content.RTE_compliant}] # Make sure nonTypoTagStdWrap operates on content outside and only: tt_content.text.20.parseFunc.tags { typolist.breakoutTypoTagContent = 1 typohead.breakoutTypoTagContent = 1 typohead.stdWrap.wrap > } # Processing and
blocks separately tt_content.text.20.parseFunc.externalBlocks = table, blockquote tt_content.text.20.parseFunc.externalBlocks { # The blockquote content is passed into parseFunc again... blockquote.callRecursive=1 blockquote.callRecursive.tagStdWrap.HTMLparser = 1 blockquote.callRecursive.tagStdWrap.HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;" blockquote.stripNL=1 table.stripNL=1 table.HTMLtableCells=1 table.HTMLtableCells { default.callRecursive=1 addChr10BetweenParagraphs=1 } } # Setting up nonTypoTagStdWrap to wrap the text with P-tags tt_content.text.20.parseFunc.nonTypoTagStdWrap > tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines < styles.content.RTE_encaps_{$content.RTE_compliant.mode} # finally removing the old textstyle formatting on the whole bodytext part. tt_content.text.20.textStyle > tt_content.text.20.wrap > tt_content.text.20.brTag > [global] # CType: image tt_content.image = COA tt_content.image { 10 = < lib.stdheader 20 < styles.content.imgtext } # 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 < styles.content.imgtext 20.text.10 = COA 20.text.10 { if.value = 24 if.isGreaterThan.field = imageorient 10 = < lib.stdheader } 20.text.20 = < tt_content.text.20 } # CType: rte tt_content.rte = COA tt_content.rte { 10 = < lib.stdheader 20 = TEXT 20.field = bodytext 20.editIcons = tt_content:bodytext 20.editIcons.beforeLastTag=1 20.editIcons.iconTitle=Edit Rich Text content } # CType: uploads tt_content.uploads = COA tt_content.uploads { 10 = < lib.stdheader 20 = CASE 20 { setCurrent.field = media key.field = layout default < styles.content.uploads 1 < styles.content.uploads_icons 2 < styles.content.uploads_imgicons 3 < styles.content.uploads_imgicons 3.split.1.filelink.icon.wrap > } 20.stdWrap.editIcons = tt_content:media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding],filelink_size,imagecaption 20.stdWrap.editIcons.iconTitle=Edit filelist } # CType: menu tt_content.menu = COA tt_content.menu { 10 = < lib.stdheader 20 = CASE 20 { key.field = menu_type default = HMENU default { special = list special.value.field = pages 1 = TMENU 1.NO.linkWrap = {$content.menuWrap} 1.NO.allWrap = {$content.menuAllWrap} 1.NO.ATagBeforeWrap = 1 1.target = {$content.pageFrameObj} } 1 < .default 1.special = directory 2 < styles.sitemap.text 3 < styles.insertContent 3.select.andWhere = sectionIndex!=0 3.select.pidInList.override.field = pages 3.renderObj = TEXT 3.renderObj { fieldRequired = header trim=1 field = header wrap = {$content.menuWrap} typolink.parameter.field = pid typolink.section.field = uid wrap2 = |
} 4 < .1 4.1.NO { after.data = field : abstract // field : description // field : subtitle after.htmlSpecialChars = 1 afterWrap =
{$content.subMenuWrap} } 5 < .default 5.special = updated 5.special { maxAge = 3600*24*7 excludeNoSearchPages = 1 } 6 < .default 6.special = keywords 6.special { excludeNoSearchPages = 1 } 7 < .1 7.1.expAll = 1 7.1.wrap = |
7.2 < .7.1 7.2.sectionIndex = 1 7.2.sectionIndex.type = header 7.2.NO.linkWrap = {$content.subMenuWrap} } 20.stdWrap.editIcons = tt_content: menu_type,pages 20.stdWrap.editIcons.iconTitle=Edit linkmenu } # CType: shortcut tt_content.shortcut = COA tt_content.shortcut { # 10 = < lib.stdheader 20 = CASE 20.key.field = layout 20.0= RECORDS 20.0 { source.field = records tables = {$content.shortcut.tables} 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 20.stdWrap.editIcons.iconTitle=Edit recordlist } # CType: list # The keys for the CASE-cObject is supplied by including static_templates which is configured to fill out these positions. Examples are "content.tt_products" and "content.tt_calendar" tt_content.list = COA tt_content.list.10 = < lib.stdheader tt_content.list.20 = CASE tt_content.list.20.key.field = list_type tt_content.list.20 { # LIST element references (NOT copy of objects!) 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 } tt_content.list { 20.stdWrap.editIcons = tt_content: list_type, layout, select_key, pages [recursive] 20.stdWrap.editIcons.iconTitle=Edit recordlist } # 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 } # CType: splash tt_content.splash = CASE tt_content.splash.key.field = splash_layout 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 } } 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: mailform tt_content.mailform = COA tt_content.mailform { 10 = < lib.stdheader 20 < styles.content.mailform 20.stdWrap.editIcons = tt_content: bodytext,pages,subheader 20.stdWrap.editIcons.iconTitle=Edit multimedia element } # CType: search tt_content.search = COA tt_content.search { 10 = < lib.stdheader 20 < styles.content.searchresult 30 < styles.content.searchform 30.stdWrap.editIcons = tt_content: pages 30.stdWrap.editIcons.iconTitle=Edit search element } # CType: login tt_content.login = COA tt_content.login { 10 = < lib.stdheader 20 < styles.content.loginform 20.stdWrap.editIcons = tt_content: pages 20.stdWrap.editIcons.iconTitle=Edit login element } # CType: html tt_content.html = TEXT tt_content.html.field = bodytext tt_content.html.editIcons = tt_content: pages tt_content.html.editIcons.iconTitle=Edit pure HTML content # CType: script tt_content.script = TEXT tt_content.script.value = # CType: script tt_content.div = TEXT tt_content.div.value = # Default error msg: tt_content.default = TEXT tt_content.default.field = CType tt_content.default.wrap = CTYPE "|" not defined! Editor Config # Setting up the CSS Editor CSS_editor = Template Styles CSS_editor.ch { BODY = General BODY.selector = BODY BODY.attribs = font-family, background-color BODY.example = Plan text outside of any tags written in the page-body. A = Links A.selector = A A.attribs = LINKS,font-weight A.example = This is a link to the page top. A.exampleStop=1 A.ch { hover = Mouseover links hover.selector = + :hover hover.attribs = LINKS active = Active links active.selector = + :active active.attribs = LINKS visited = Visited links visited.selector = + :visited visited.attribs = LINKS } content = < tt_content.CSS_editor } tt_content.CSS_editor = General content tt_content.CSS_editor { title.dk = Generelt Indhold }