Project

General

Profile

Feature #19948 » bug10320-v6.patch

Administrator Admin, 2009-03-30 20:54

View differences:

NEWS.txt (working copy)
is on the same host because it will only slow down the process. However if MySQL
is on another host, this option may improve performance significally.
* CSS styled content was split into separate files for each compatibility versions of TYPO3
(3.8, 3.9, 4.2 and current). When including the static template of css_styled_content,
a specific version must be chosen (also see Compatibility below).
Compatibility
=============
......
* The help modules "about" and "cshmanual" were extracted into separate system extensions with the same name.
* As mentioned in "Frontend" CSS styled content has been split into several files.
The update wizard can switch the versions of the static includes by refering to
the TYPO3 compatibility version.
Development
===========
t3lib/class.t3lib_extmgm.php (working copy)
'.$content;
if ($afterStaticUid) {
$TYPO3_CONF_VARS['FE']['defaultTypoScript_'.$type.'.'][$afterStaticUid].=$content;
// TODO: find a dynamic way to add default TS to all versions of css_style_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/v3.9/constants.txt (revision 0)
# 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
}
# 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
}
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 = 1
}
styles.content.uploads {
jumpurl_secure =
jumpurl_secure_mimeTypes = pdf=application/pdf, doc=application/msword
jumpurl =
# cat=content/cUploads; type=string; label=Labels of file sizes: The labels for bytes, kilobytes, megabytes and gigabytes
filesizeBytesLabels = " | K| M| G"
}
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
# TYPO3 SVN ID: $Id: constants.txt 4493 2008-11-27 21:06:50Z steffenk $
typo3/sysext/css_styled_content/static/v3.9/setup.txt (revision 0)
# ***************************************************************************
# 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:
}
#******************************************************
# 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}
}
# *****************
# 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}
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
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}
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>
# intext-left
18 = TEXT
18.value = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>
# 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 {
imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" 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 {
imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" 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 {
imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" 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>
}
}
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
# *****************
# 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:
}
}
# *****************
# 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.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: 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
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 = <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 {
special = list
special.value.field = pages
wrap = <ul class="csc-menu csc-menu-def">|</ul>
1 = TMENU
1 {
target = {$PAGE_TARGET}
NO.wrapItemAndSub = <li>|</li>
NO.ATagTitle.field = description // title
}
}
# "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 =
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; }
... This diff was truncated because it exceeds the maximum size that can be displayed.
(3-3/3)