Project

General

Profile

Feature #19948 » 10320_split_css_styled_content_v3.patch

Administrator Admin, 2009-02-22 11:01

View differences:

t3lib/class.t3lib_extmgm.php (working copy)
if ($afterStaticUid) {
$TYPO3_CONF_VARS['FE']['defaultTypoScript_'.$type.'.'][$afterStaticUid].=$content;
if ($afterStaticUid==43) { // If 'content (default)' is targeted, also add to other 'content rendering templates', eg. css_styled_content
$TYPO3_CONF_VARS['FE']['defaultTypoScript_'.$type.'.']['cssstyledcontent/static/'].=$content;
$TYPO3_CONF_VARS['FE']['defaultTypoScript_'.$type.'.']['cssstyledcontent/static/current/'].=$content;
$TYPO3_CONF_VARS['FE']['defaultTypoScript_'.$type.'.']['cssstyledcontent/static/v4.2/'].=$content;
$TYPO3_CONF_VARS['FE']['defaultTypoScript_'.$type.'.']['cssstyledcontent/static/v3.9/'].=$content;
$TYPO3_CONF_VARS['FE']['defaultTypoScript_'.$type.'.']['cssstyledcontent/static/v3.8/'].=$content;
}
} else {
$TYPO3_CONF_VARS['FE']['defaultTypoScript_'.$type].=$content;
typo3/sysext/css_styled_content/ext_tables.php (working copy)
--div--;LLL:EXT:cms/locallang_ttc.xml:CType.I.5, layout;;10;;3-3-3, cols, bodytext;;9;nowrap:wizards[table], text_properties, pi_flexform,
--div--;LLL:EXT:cms/locallang_tca.xml:pages.tabs.access, starttime, endtime';
t3lib_extMgm::addStaticFile($_EXTKEY,'static/','CSS Styled Content');
t3lib_extMgm::addStaticFile($_EXTKEY,'static/current/','CSS Styled Content');
t3lib_extMgm::addStaticFile($_EXTKEY,'static/v3.8/','CSS Styled Content TYPO3 v3.8');
t3lib_extMgm::addStaticFile($_EXTKEY,'static/v3.9/','CSS Styled Content TYPO3 v3.9');
t3lib_extMgm::addStaticFile($_EXTKEY,'static/v4.2/','CSS Styled Content TYPO3 v4.2');
?>
typo3/sysext/css_styled_content/static/constants.txt (working copy)
# Clear out any constants in this reserved room!
styles.content >
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=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
# cat=content/other/c; type=wrap; label= Content Element margins: Space above / below each content element (pixels of a clear-gif) in versions below TYPO3 4.3.0.
space = 0|0
splash.bgCol = white
}
[compatVersion = 4.3.0]
# cat=content/other/a; type=small; label= Content Element margins (before): Space before each content element.
content.spaceBefore = 0
# cat=content/other/b; type=small; label= Content Element margins (after): Space after each content element.
content.spaceAfter = 0
[global]
# cat=advanced; type=int+; label= News Content PID: If your template has a column with "news"-content fetched from another page-id, this is where you enter the id-number of that page!
styles.content.getNews.newsPid = 0
styles.content.links {
keep = path
# cat=content/links; type=small; label= Target for external links
extTarget = _blank
target = {$PAGE_TARGET}
allowTags = b,i,u,a,img,br,div,center,pre,font,hr,sub,sup,p,strong,em,li,ul,ol,blockquote,strike,span,h1,h2,h3,h4,h5,h6
}
[compatVersion = 4.2.0]
styles.content.links.allowTags := addToList(address)
[global]
styles.content.imgtext {
# TIP! if register[maxImageWidth] is set, this will override maxW
# cat=content,basic/cImage/a_maxw1; type=int+; label= Max Image Width: This indicates that maximum number of pixels (width) a block of images inserted as content is allowed to consume.
maxW = 600
# cat=content/cImage/a_maxw2; type=int+; label= Max Image Width (Text): Same as above, but this is the maximum width when text is wrapped around an imageblock. Default is 50% of the normal Max Image Width
maxWInText =
# cat=content/cImage/b; type=color; label= Image border color: Bordercolor of images in content elements when "Border"-option for element is set.
borderColor = black
# cat=content/cImage/b; type=int[0-100]; label= Image border thickness: Thickness of border around images in content elements when "Border"-option for element is set.
borderThick = 2
# cat=content/cImage/x; type=int[0-100]; label= Advanced, Column space: Horizontal distance between images in a block in content elements of type "Image" or "Text w/Image".
colSpace = 10
# cat=content/cImage/x; type=int[0-100]; label= Advanced, Row space: Vertical distance between images in a block in content elements of type "Image" or "Text w/Image".
rowSpace = 10
# cat=content/cImage/x; type=int[0-100]; label= Advanced, Margin to text: Horizontal distance between an imageblock and text in content elements of type "Text w/Image".
textMargin = 10
linkWrap.width = 800m
linkWrap.height = 600m
linkWrap.effects =
# cat=content/cImage/x; type=boolean; label= Advanced, New window: If set, every click-enlarged image will open in it's own popup window and not the current popup window (which may have a wrong size for the image to fit in)
linkWrap.newWindow = 0
# cat=content/cImage/c; type=boolean; label= Images, caption split: If this is checked, then the image caption will be split by each line and they will appear underneath the corresponding image in the imagelist.
captionSplit = 0
# cat=content/cImage/c1; type=boolean; label= Images, text split: If this is checked, then the image text (alt, title, longdesc) will be split by each line and they will appear on the corresponding images in the imagelist.
imageTextSplit = 0
# cat=content/cImage/c2; type=string; label= Images, empty title handling: How will the 'title' attribute be handled if no title is given for an image. Possible choices: "keepEmpty", "useAlt" or "removeAttr". Recommended for accessibility is "removeAttr". For correct tooltips on IE, use "keepEmpty". For previous TYPO3 behaviour, use "useAlt".
emptyTitleHandling = useAlt
titleInLink = 0
titleInLinkAndImg = 0
}
styles.content.uploads {
jumpurl_secure =
jumpurl_secure_mimeTypes = pdf=application/pdf, doc=application/msword
jumpurl =
}
styles.content.mailform {
target = {$PAGE_TARGET}
# cat=content/cMailform; type=; label= Message, Formmail OK: This is the message (if any) that is popped-up (JavaScript) when a user clicks "send" with an email-form
goodMess =
# cat=content/cMailform; type=; label= Message, Formmail Missing: This is the message that is popped-up when a user has NOT filled required fields in an email-form
badMess =
}
styles.content.loginform {
target = _top
# cat=content/cLogin; type=int+; label= PID of user archive: Enter the page-uid number (PID) of the sysFolder where you keep your fe_users that are supposed to login on this site. This setting is necessary, if login is going to work!
pid =
# cat=content/cLogin; type=; label= Message, Login: This is the message (if any) that is popped-up when a user logs in as a front-end user
goodMess =
}
styles.content.searchform {
# cat=content/cSearch; type=; label= Message, Searchform: This is the message (if any) that is popped-up when a user performs a search
goodMess =
}
styles.content.searchresult {
resultTarget = {$PAGE_TARGET}
target = {$PAGE_TARGET}
}
# cat=advanced/links; type=small; label= Target for internal links: Should match the name of the content PAGE-object in TypoScript when used with frames. Most cases: Set to "page" if you have frames in the template. If not, set to "" (empty)
PAGE_TARGET = page
[compatVersion = 4.2.0]
# cat=advanced/links; type=small; label= Target for internal links: Should match the name of the content PAGE-object in TypoScript when used with frames. Most cases: set to "" (empty). If you have frames in the template set to "page"
PAGE_TARGET =
content.pageFrameObj =
[end]
[compatVersion = 3.9.0]
styles.content.imgtext >
styles.content.imgtext {
# TIP! if register[maxImageWidth] is set, this will override maxW
# cat=content/cImage/b1; type=int+; label= Max Image Width: This indicates that maximum number of pixels (width) a block of images inserted as content is allowed to consume.
maxW = 600
# cat=content/cImage/b2; type=int+; label= Max Image Width (Text): Same as above, but this is the maximum width when text is wrapped around an imageblock. Default is 50% of the normal Max Image Width.
maxWInText =
# cat=content/cImage/c1; type=int+; label= Default Image Width: This indicates that default number of pixels (width) a block of images inserted as content will consume, if the user didn't specify otherwise in the content object.
linkWrap.width = 800m
linkWrap.height = 600m
linkWrap.effects =
# cat=content/cImage/x; type=boolean; label= Advanced, New window: If set, every click-enlarged image will open in it's own popup window and not the current popup window (which may have a wrong size for the image to fit in)
linkWrap.newWindow = 0
captionSplit = 0
# cat=content/cImage/e1; type=boolean; label= Images, text split: If this is checked, then the image text (caption, alt, title, longdesc) will be split by each line and they will appear on the corresponding images in the imagelist.
imageTextSplit = 1
# cat=content/cImage/e2; type=string; label= Images, empty title handling: How will the 'title' attribute be handled if no title is given for an image. Possible choices: "keepEmpty", "useAlt" or "removeAttr". Recommended for accessibility is "removeAttr". For correct tooltips on IE, use "keepEmpty". For previous TYPO3 behaviour, use "useAlt".
emptyTitleHandling = removeAttr
# cat=content/cImage/e3; type=boolean; label= Images, title in link: Do you want the 'title' attribute to be added to the surrounding <a> tag, if present? Recommended for accessibility is "true".
titleInLink = 1
# cat=content/cImage/e4; type=boolean; label= Images, title in link and IMG: If you have the title in the <a>-tag (titleInLink=true), you don't get the 'title' in the <img>-tag. IE will not show the tooltip anymore. So to get the 'title' in <img> too (to keep IE happy), set this too. Recommended for accessibility is "false". For correct tooltips on IE, set this to "true".
titleInLinkAndImg = 0
# cat=content/cImage/g1; type=int[0-100]; label= Advanced, Column space: Horizontal distance between images in a block in content elements of type "Image" or "Text w/Image". If you change this manually in your CSS, you need to adjust this setting accordingly.
colSpace = 10
# cat=content/cImage/g2; type=int[0-100]; label= Advanced, Row space: Vertical distance between images in a block in content elements of type "Image" or "Text w/Image". If you change this manually in your CSS, you need to adjust this setting accordingly.
rowSpace = 5
# cat=content/cImage/g3; type=int[0-100]; label= Advanced, Margin to text: Horizontal distance between an imageblock and text in content elements of type "Text w/Image".
textMargin = 10
# cat=content/cImage/i1; type=color; label= Image border, color: Bordercolor of images in content elements when "Border"-option for element is set.
borderColor = black
# cat=content/cImage/i2; type=int[0-100]; label= Image border, thickness: Thickness of border around images in content elements when "Border"-option for element is set.
borderThick = 2
# cat=content/cImage/i3; type=int+; label= Image border, padding: Padding left and right to the image, around the border.
borderSpace = 0
# cat=content/cImage/i4; type=string; label= Image border CSS-selector: If you want your border to apply elsewhere, change this setting. E.g. to apply to the whole image+caption, use 'DIV.csc-textpic-border DIV.csc-textpic-imagewrap .csc-textpic-image'.
borderSelector = DIV.csc-textpic-border DIV.csc-textpic-imagewrap .csc-textpic-image IMG
# cat=content/cImage/i5; type=boolean; label= Image row separation: Whether images should be rendered/wrapped in separated rows, e.g. inside a DIV.csc-textpic-imagerow element
separateRows = 0
}
[END]
# TYPO3 SVN ID: $Id$
typo3/sysext/css_styled_content/static/setup.txt (working copy)
# ***************************************************************************
# 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
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
}
}
nonTypoTagStdWrap.encapsLines {
encapsTagList = div,p,pre,h1,h2,h3,h4,h5,h6
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.date = d/m Y
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:
}
[compatVersion = 4.2.0]
lib.stdheader.5.date >
lib.stdheader.5.strftime = %x
[end]
#******************************************************
# 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 {
spaceBefore.field = spaceBefore
spaceAfter.field = spaceAfter
space = {$content.space}
innerWrap.cObject = CASE
innerWrap.cObject {
key.field = section_frame
1 = TEXT
1.value = <div class="csc-frame csc-frame-invisible">|</div>
5 = TEXT
5.value = <div class="csc-frame csc-frame-rulerBefore"></div>|
6 = TEXT
6.value = |<div class="csc-frame csc-frame-rulerAfter"></div>
10 = TEXT
10.value = <div class="csc-frame csc-frame-indent">|</div>
11 = TEXT
11.value = <div class="csc-frame csc-frame-indent3366">|</div>
12 = TEXT
12.value = <div class="csc-frame csc-frame-indent6633">|</div>
20 = TEXT
20.value = <div class="csc-frame csc-frame-frame1">|</div>
21 = TEXT
21.value = <div class="csc-frame csc-frame-frame2">|</div>
}
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
dataWrap = <a id="c{field:uid}"></a> |
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}
}
[compatVersion = 4.3.0]
tt_content.stdWrap {
spaceBefore.field >
spaceAfter >
space >
dataWrap >
innerWrap.cObject >
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
}
}
[end]
# *****************
# 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 = IMGTEXT
tt_content.image.20 {
imgList.field = image
textPos.field = imageorient
imgPath = uploads/pics/
imgObjNum = 1
1 {
file.import.current = 1
file.width.field = imagewidth
params = align="top"
imageLinkWrap = 1
imageLinkWrap {
bodyTag = <body bgcolor="black">
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.expand = 17,20
enable.field = image_zoom
enable.ifEmpty.typolink.parameter.field = image_link
enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
enable.ifEmpty.typolink.returnLast = url
typolink.parameter.field = image_link
typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
typolink.target = {$styles.content.links.target}
typolink.extTarget = {$styles.content.links.extTarget}
}
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}
}
maxW = {$styles.content.imgtext.maxW}
maxW.override.data = register:maxImageWidth
maxWInText = {$styles.content.imgtext.maxWInText}
maxWInText.override.data = register:maxImageWidthInText
equalH.field = imageheight
spaceBelowAbove = 6
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
fontTag = <p class="csc-caption">|</p>
wrapAlign.field = imagecaption_position
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}
# caption/alttext/title/longdescURL splitting
imageTextSplit = {$styles.content.imgtext.imageTextSplit}
borderCol = {$styles.content.imgtext.borderColor}
borderThick = {$styles.content.imgtext.borderThick}
colSpace = {$styles.content.imgtext.colSpace}
rowSpace = {$styles.content.imgtext.rowSpace}
textMargin = {$styles.content.imgtext.textMargin}
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
20.text.10 {
if.value = 24
if.isGreaterThan.field = imageorient
10 = < lib.stdheader
10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
}
20.text.20 = < tt_content.text.20
}
# *****************
# CType: bullet
# *****************
# Rendered by a PHP function specifically written to handle CE bullet lists. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
tt_content.bullets = COA
tt_content.bullets {
10 = < lib.stdheader
20 = USER
20.userFunc = tx_cssstyledcontent_pi1->render_bullets
20.field = bodytext
20.innerStdWrap.parseFunc = < lib.parseFunc
20.stdWrap {
editIcons = tt_content: bodytext, [layout]
editIcons.beforeLastTag = 1
editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bullets
prefixComment = 2 | Bullet list:
}
}
[compatVersion = 4.2.0]
tt_content.bullets.20 >
tt_content.bullets.20 = TEXT
tt_content.bullets.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:
}
[end]
# *****************
# 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 = <p>|</p>
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.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.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: mailform
# ******************
tt_content.mailform = COA
tt_content.mailform.10 = < lib.stdheader
tt_content.mailform.20 = FORM
tt_content.mailform.20 {
layout = <tr><td class="csc-form-labelcell">###LABEL###</td><td class="csc-form-fieldcell">###FIELD###</td></tr>
labelWrap.wrap = <p class="csc-form-label">|</p>
commentWrap.wrap = <p class="csc-form-comment">|</p>
radioWrap.wrap = <span class="csc-form-radio">|</span><br />
REQ = 1
REQ.labelWrap.wrap = <p class="csc-form-label-req">|</p>
COMMENT.layout = <tr><td colspan="2" class="csc-form-commentcell">###LABEL###</td></tr>
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
stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-mailform"> | </table>
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 = <table border="0" cellspacing="1" cellpadding="1" class="csc-loginform"> | </table>
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.wrap = <div class="csc-menu csc-menu-def">|</div>
default {
special = list
special.value.field = pages
1 = TMENU
1.NO.allWrap = <p>|</p>
1.NO.stdWrap.htmlSpecialChars = 1
1.target = {$content.pageFrameObj}
}
# "Menu of subpages to these pages"
1 < .default
1.special = directory
1.wrap = <div class="csc-menu csc-menu-1">|</div>
# "Sitemap"
2 = HMENU
2.wrap = <div class="csc-menu csc-menu-2">|</div>
2 {
1 = TMENU
1.NO.allWrap = <p class="csc-sitemap csc-sitemap-level1">|</p>
1.NO.stdWrap.htmlSpecialChars = 1
1.target = {$content.pageFrameObj}
1.expAll = 1
2 < .1
2.NO.allWrap = <p class="csc-sitemap csc-sitemap-level2">|</p>
3 < .1
3.NO.allWrap = <p class="csc-sitemap csc-sitemap-level3">|</p>
4 < .1
4.NO.allWrap = <p class="csc-sitemap csc-sitemap-level4">|</p>
4.expAll = 0
}
# "Section index (pagecontent w/Index checked)"
3 < styles.content.get
3.wrap = <div class="csc-menu csc-menu-3">|</div>
3.select.andWhere = sectionIndex!=0
3.select.pidInList.override.field = pages
3.renderObj = TEXT
3.renderObj {
fieldRequired = header
trim=1
field = header
htmlSpecialChars = 1
wrap = <p class="csc-section">|</p>
typolink.parameter.field = pid
typolink.section.field = uid
}
# "Menu of subpages to these pages (with abstract)"
4 < .1
4.wrap = <div class="csc-menu csc-menu-4">|</div>
4.1.NO {
allWrap = <p>|</p>
after.required = 1
after.data = field : abstract // field : description // field : subtitle
after.htmlSpecialChars = 1
after.wrap = </p><p class="csc-abstract">|
}
# "Recently updated pages"
5 < .default
5.wrap = <div class="csc-menu csc-menu-5">|</div>
5.special = updated
5.special {
maxAge = 3600*24*7
excludeNoSearchPages = 1
}
# "Related pages (based on keywords)"
6 < .default
6.wrap = <div class="csc-menu csc-menu-6">|</div>
6.special = keywords
6.special {
excludeNoSearchPages = 1
}
# "Menu of subpages to these pages + sections"
7 < .1
7.wrap = <div class="csc-menu csc-menu-7">|</div>
7.1.expAll = 1
7.2 < .7.1
7.2.sectionIndex = 1
7.2.sectionIndex.type = header
7.2.NO.allWrap = <p class="csc-section">|</p>
}
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:
}
}
# Match TYPO3 4.2.0 and later
[compatVersion = 4.2.0]
tt_content.menu.20.default.1.target = {$PAGE_TARGET}
tt_content.menu.20.2.1.target = {$PAGE_TARGET}
[end]
# ****************
# 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 =
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>
... This diff was truncated because it exceeds the maximum size that can be displayed.
(2-2/3)