[TASK] Add version 4.5 CSS Styled Content Templates and Compat Version
[Packages/TYPO3.CMS.git] / typo3 / sysext / css_styled_content / static / v4.5 / setup.txt
1 # ***************************************************************************
2 # Notice: "styles." (and "temp.") objects are UNSET after template parsing!
3 # Use "lib." for persisting storage of objects.
4 # ***************************************************************************
5
6 # Clear out any constants in this reserved room!
7 styles.content >
8
9 # get content
10 styles.content.get = CONTENT
11 styles.content.get {
12 table = tt_content
13 select.orderBy = sorting
14 select.where = colPos=0
15 select.languageField = sys_language_uid
16 }
17
18 # get content, left
19 styles.content.getLeft < styles.content.get
20 styles.content.getLeft.select.where = colPos=1
21
22 # get content, right
23 styles.content.getRight < styles.content.get
24 styles.content.getRight.select.where = colPos=2
25
26 # get content, margin
27 styles.content.getBorder < styles.content.get
28 styles.content.getBorder.select.where = colPos=3
29
30 # get news
31 styles.content.getNews < styles.content.get
32 styles.content.getNews.select.pidInList = {$styles.content.getNews.newsPid}
33
34 # Edit page object:
35 styles.content.editPanelPage = COA
36 styles.content.editPanelPage {
37 10 = EDITPANEL
38 10 {
39 allow = toolbar,move,hide
40 label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.page
41 label.wrap = |&nbsp;<b>%s</b>
42 }
43 }
44
45
46
47
48
49
50
51
52
53
54
55 # *********************************************************************
56 # "lib." objects are preserved from unsetting after template parsing
57 # *********************************************************************
58
59 # Creates persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!)
60 lib.parseFunc {
61 makelinks = 1
62 makelinks.http.keep = {$styles.content.links.keep}
63 makelinks.http.extTarget = {$styles.content.links.extTarget}
64 makelinks.mailto.keep = path
65 tags {
66 link = TEXT
67 link {
68 current = 1
69 typolink.parameter.data = parameters : allParams
70 typolink.extTarget = {$styles.content.links.extTarget}
71 typolink.target = {$styles.content.links.target}
72 parseFunc.constants =1
73 }
74 }
75 allowTags = {$styles.content.links.allowTags}
76 denyTags = *
77 sword = <span class="csc-sword">|</span>
78 constants = 1
79
80 nonTypoTagStdWrap.HTMLparser = 1
81 nonTypoTagStdWrap.HTMLparser {
82 keepNonMatchedTags = 1
83 htmlSpecialChars = 2
84 }
85 }
86
87 # good old parsefunc in "styles.content.parseFunc" is created for backwards compatibility. Don't use it, just ignore.
88 styles.content.parseFunc < lib.parseFunc
89
90 # Creates persistent ParseFunc setup for RTE content (which is mainly HTML) based on the "ts_css" transformation.
91 lib.parseFunc_RTE < lib.parseFunc
92 lib.parseFunc_RTE {
93 // makelinks >
94 # Processing <table> and <blockquote> blocks separately
95 externalBlocks = table, blockquote, ol,ul, div
96 externalBlocks {
97 # The blockquote content is passed into parseFunc again...
98 blockquote.stripNL=1
99 blockquote.callRecursive=1
100 blockquote.callRecursive.tagStdWrap.HTMLparser = 1
101 blockquote.callRecursive.tagStdWrap.HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;"
102
103 ol.stripNL=1
104 ol.stdWrap.parseFunc = < lib.parseFunc
105
106 ul.stripNL=1
107 ul.stdWrap.parseFunc = < lib.parseFunc
108
109 table.stripNL=1
110 table.stdWrap.HTMLparser = 1
111 table.stdWrap.HTMLparser.tags.table.fixAttrib.class {
112 default = contenttable
113 always = 1
114 list = contenttable
115 }
116 table.stdWrap.HTMLparser.keepNonMatchedTags = 1
117 table.HTMLtableCells=1
118 table.HTMLtableCells {
119 default.callRecursive=1
120 addChr10BetweenParagraphs=1
121 }
122 div.stripNL = 1
123 div.callRecursive = 1
124 }
125 nonTypoTagStdWrap.encapsLines {
126 encapsTagList = p,pre,h1,h2,h3,h4,h5,h6,hr
127 remapTag.DIV = P
128 nonWrappedTag = P
129 innerStdWrap_all.ifBlank = &nbsp;
130 addAttributes.P.class = bodytext
131 addAttributes.P.class.setOnly=blank
132 }
133 nonTypoTagStdWrap.HTMLparser = 1
134 nonTypoTagStdWrap.HTMLparser {
135 keepNonMatchedTags = 1
136 htmlSpecialChars = 2
137 }
138 }
139
140
141 # Content header:
142 lib.stdheader = COA
143 lib.stdheader {
144
145 # Create align style-attribute for <Hx> tags
146 2 = LOAD_REGISTER
147 2.headerStyle.field = header_position
148 2.headerStyle.required = 1
149 2.headerStyle.noTrimWrap = | style="text-align:|;"|
150
151 # Create class="csc-firstHeader" attribute for <Hx> tags
152 3 = LOAD_REGISTER
153 3.headerClass = csc-firstHeader
154 3.headerClass.if.value=1
155 3.headerClass.if.equals.data = cObj:parentRecordNumber
156 3.headerClass.noTrimWrap = | class="|"|
157
158 # Date format:
159 5 = TEXT
160 5.field = date
161 5.if.isTrue.field = date
162 5.strftime = %x
163 5.wrap = <p class="csc-header-date">|</p>
164 5.prefixComment = 2 | Header date:
165
166 # This CASE cObject renders the header content:
167 # currentValue is set to the header data, possibly wrapped in link-tags.
168 10 = CASE
169 10.setCurrent {
170 field = header
171 htmlSpecialChars = 1
172 typolink.parameter.field = header_link
173 }
174 10.key.field = header_layout
175 10.key.ifEmpty = {$content.defaultHeaderType}
176 10.key.ifEmpty.override.data = register: defaultHeaderType
177
178 10.1 = TEXT
179 10.1.current = 1
180 10.1.insertData = 1
181 10.1.fontTag = <h1{register:headerStyle}{register:headerClass}>|</h1>
182
183 10.2 < .10.1
184 10.2.fontTag = <h2{register:headerStyle}{register:headerClass}>|</h2>
185
186 10.3 < .10.1
187 10.3.fontTag = <h3{register:headerStyle}{register:headerClass}>|</h3>
188
189 10.4 < .10.1
190 10.4.fontTag = <h4{register:headerStyle}{register:headerClass}>|</h4>
191
192 10.5 < .10.1
193 10.5.fontTag = <h5{register:headerStyle}{register:headerClass}>|</h5>
194
195 # Pops the used registers off the stack:
196 98 = RESTORE_REGISTER
197 99 = RESTORE_REGISTER
198
199 # Post-processing:
200 stdWrap.fieldRequired = header
201 stdWrap.if {
202 equals.field = header_layout
203 value = 100
204 negate = 1
205 }
206
207 stdWrap.editIcons = tt_content : header, [header_layout | header_position], [header_link|date]
208 stdWrap.editIcons.beforeLastTag = 1
209 stdWrap.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.header
210
211 stdWrap.dataWrap = <div class="csc-header csc-header-n{cObj:parentRecordNumber}">|</div>
212 stdWrap.prefixComment = 2 | Header:
213 }
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229 #******************************************************
230 # Including library for processing of some elements:
231 #******************************************************
232 includeLibs.tx_cssstyledcontent_pi1 = EXT:css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
233
234
235 #**********************************
236 # tt_content is started
237 #**********************************
238 tt_content >
239 tt_content = CASE
240 tt_content.key.field = CType
241 tt_content.stdWrap {
242 innerWrap.cObject = CASE
243 innerWrap.cObject {
244 key.field = section_frame
245
246 default = COA
247 default {
248 10 = TEXT
249 10 {
250 value = <div id="c{field:uid}"
251 override.cObject = TEXT
252 override.cObject {
253 value = <div
254 if.value = div
255 if.equals.field = CType
256 }
257 insertData = 1
258 }
259
260 15 = TEXT
261 15 {
262 value = csc-default
263 noTrimWrap = | class="|" |
264 required = 1
265 }
266
267 20 = COA
268 20 {
269 10 = COA
270 10 {
271 10 = TEXT
272 10 {
273 value = {$content.spaceBefore}
274 wrap = |+
275 if.isTrue = {$content.spaceBefore}
276 }
277
278 20 = TEXT
279 20 {
280 field = spaceBefore
281 }
282
283 stdWrap {
284 prioriCalc = intval
285 wrap = margin-top:|px;
286 required = 1
287 ifEmpty.value =
288 }
289 }
290
291 20 = COA
292 20 {
293 10 = TEXT
294 10 {
295 value = {$content.spaceAfter}
296 wrap = |+
297 if.isTrue = {$content.spaceAfter}
298 }
299
300 20 = TEXT
301 20 {
302 field = spaceAfter
303 }
304
305 stdWrap {
306 prioriCalc = intval
307 wrap = margin-bottom:|px;
308 required = 1
309 ifEmpty.value =
310 }
311 }
312
313 stdWrap.noTrimWrap = | style="|" |
314 stdWrap.required = 1
315 }
316 30 = TEXT
317 30.value = >|</div>
318 }
319
320 1 =< tt_content.stdWrap.innerWrap.cObject.default
321 1.15.value = csc-frame csc-frame-invisible
322
323 5 =< tt_content.stdWrap.innerWrap.cObject.default
324 5.15.value = csc-frame csc-frame-rulerBefore
325
326 6 =< tt_content.stdWrap.innerWrap.cObject.default
327 6.15.value = csc-frame csc-frame-rulerAfter
328
329 10 =< tt_content.stdWrap.innerWrap.cObject.default
330 10.15.value = csc-frame csc-frame-indent
331
332 11 =< tt_content.stdWrap.innerWrap.cObject.default
333 11.15.value = csc-frame csc-frame-indent3366
334
335 12 =< tt_content.stdWrap.innerWrap.cObject.default
336 12.15.value = csc-frame csc-frame-indent6633
337
338 20 =< tt_content.stdWrap.innerWrap.cObject.default
339 20.15.value = csc-frame csc-frame-frame1
340
341 21 =< tt_content.stdWrap.innerWrap.cObject.default
342 21.15.value = csc-frame csc-frame-frame2
343
344 66 = COA
345 66 {
346 10 = TEXT
347 10 {
348 value = <a id="c{field:uid}"></a>
349 insertData = 1
350 }
351
352 20 = COA
353 20 {
354 10 = TEXT
355 10 {
356 value = {$content.spaceBefore}
357 wrap = |+
358 if.isTrue = {$content.spaceBefore}
359 }
360
361 20 = TEXT
362 20 {
363 field = spaceBefore
364 }
365
366 stdWrap {
367 prioriCalc = intval
368 wrap = margin-top:|px;
369 required = 1
370 ifEmpty.value =
371 wrap2 = <div style="|"></div>
372 }
373 }
374
375 30 = TEXT
376 30 {
377 value = |
378 }
379
380 40 < .20
381 40 {
382 10 {
383 value = {$content.spaceAfter}
384 if.isTrue = {$content.spaceAfter}
385 }
386 20.field = spaceAfter
387 stdWrap.wrap = margin-bottom:|px;
388 }
389 }
390
391 }
392
393 innerWrap2 = | <p class="csc-linkToTop"><a href="#">{LLL:EXT:css_styled_content/pi1/locallang.xml:label.toTop}</a></p>
394 innerWrap2.insertData = 1
395 innerWrap2.fieldRequired = linkToTop
396
397 prepend = TEXT
398 prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>
399 prepend.if.isTrue.field = _LOCALIZED_UID
400
401 editPanel = 1
402 editPanel {
403 allow = move,new,edit,hide,delete
404 line = 5
405 label = %s
406 onlyCurrentPid = 1
407 previewBorder = 4
408 edit.displayRecord = 1
409 }
410
411 prefixComment = 1 | CONTENT ELEMENT, uid:{field:uid}/{field:CType}
412 }
413
414
415
416 # *****************
417 # CType: header
418 # *****************
419 # See Object path "lib.stdheader"
420 tt_content.header = COA
421 tt_content.header {
422 10 = < lib.stdheader
423
424 20 = TEXT
425 20 {
426 field = subheader
427 required = 1
428
429 dataWrap = <p class="csc-subheader csc-subheader-{field:layout}">|</p>
430 htmlSpecialChars = 1
431
432 editIcons = tt_content:subheader,layout
433 editIcons.beforeLastTag = 1
434 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.subheader
435
436 prefixComment = 2 | Subheader:
437 }
438 }
439
440
441
442 # *****************
443 # CType: text
444 # *****************
445 tt_content.text = COA
446 tt_content.text {
447 10 = < lib.stdheader
448
449 20 = TEXT
450 20 {
451 field = bodytext
452 required = 1
453
454 parseFunc = < lib.parseFunc_RTE
455
456 editIcons = tt_content:bodytext, rte_enabled
457 editIcons.beforeLastTag = 1
458 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext
459
460 prefixComment = 2 | Text:
461 }
462 }
463
464
465
466 # *****************
467 # CType: image
468 # *****************
469 # (also used for rendering 'textpic' type):
470 tt_content.image = COA
471 tt_content.image.10 = < lib.stdheader
472 tt_content.image.20 = USER
473 tt_content.image.20 {
474 userFunc = tx_cssstyledcontent_pi1->render_textpic
475
476 # Image source
477 imgList.field = image
478 imgPath = uploads/pics/
479
480 # Single image rendering
481 imgObjNum = 1
482 1 {
483 file.import.current = 1
484 file.width.field = imagewidth
485 imageLinkWrap = 1
486 imageLinkWrap {
487 bodyTag = <body style="margin:0; background:#fff;">
488 wrap = <a href="javascript:close();"> | </a>
489 width = {$styles.content.imgtext.linkWrap.width}
490 height = {$styles.content.imgtext.linkWrap.height}
491 effects = {$styles.content.imgtext.linkWrap.effects}
492
493 JSwindow = 1
494 JSwindow.newWindow = {$styles.content.imgtext.linkWrap.newWindow}
495 JSwindow.if.isFalse = {$styles.content.imgtext.linkWrap.lightboxEnabled}
496
497 directImageLink = {$styles.content.imgtext.linkWrap.lightboxEnabled}
498
499 enable.field = image_zoom
500 enable.ifEmpty.typolink.parameter.field = image_link
501 enable.ifEmpty.typolink.parameter.listNum.splitChar = 10
502 enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
503 enable.ifEmpty.typolink.returnLast = url
504
505 typolink.parameter.field = image_link
506 typolink.parameter.listNum.splitChar = 10
507 typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
508 typolink.target = {$styles.content.links.target}
509 typolink.extTarget = {$styles.content.links.extTarget}
510
511 linkParams.ATagParams.dataWrap = class="{$styles.content.imgtext.linkWrap.lightboxCssClass}" rel="{$styles.content.imgtext.linkWrap.lightboxRelAttribute}"
512 }
513
514 altText = TEXT
515 altText {
516 field = altText
517 stripHtml = 1
518 split.token.char = 10
519 split.token.if.isTrue = {$styles.content.imgtext.imageTextSplit}
520 split.returnKey.data = register : IMAGE_NUM_CURRENT
521 }
522
523 titleText < .altText
524 titleText.field = titleText
525
526 longdescURL < .altText
527 longdescURL.field = longdescURL
528
529 emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling}
530 titleInLink = {$styles.content.imgtext.titleInLink}
531 titleInLinkAndImg = {$styles.content.imgtext.titleInLinkAndImg}
532 }
533
534 textPos.field = imageorient
535 maxW = {$styles.content.imgtext.maxW}
536 maxW.override.data = register:maxImageWidth
537 maxWInText = {$styles.content.imgtext.maxWInText}
538 maxWInText.override.data = register:maxImageWidthInText
539
540 equalH.field = imageheight
541
542 image_compression.field = image_compression
543 image_effects.field = image_effects
544
545 noRows.field = image_noRows
546
547 cols.field = imagecols
548 border.field = imageborder
549
550 caption {
551 1 = TEXT
552 1 {
553 field = imagecaption
554 required = 1
555 parseFunc =< lib.parseFunc
556 br = 1
557 split.token.char = 10
558 split.token.if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
559 split.returnKey.data = register : IMAGE_NUM_CURRENT
560 }
561 }
562 # captionSplit is deprecated, use imageTextSplit instead
563 captionSplit = {$styles.content.imgtext.captionSplit}
564 captionAlign.field = imagecaption_position
565 # caption/alttext/title/longdescURL splitting
566 imageTextSplit = {$styles.content.imgtext.imageTextSplit}
567
568 borderCol = {$styles.content.imgtext.borderColor}
569 borderThick = {$styles.content.imgtext.borderThick}
570 borderClass = {$styles.content.imgtext.borderClass}
571 colSpace = {$styles.content.imgtext.colSpace}
572 rowSpace = {$styles.content.imgtext.rowSpace}
573 textMargin = {$styles.content.imgtext.textMargin}
574
575 borderSpace = {$styles.content.imgtext.borderSpace}
576 separateRows = {$styles.content.imgtext.separateRows}
577 addClasses =
578 addClassesImage =
579 addClassesImage.ifEmpty = csc-textpic-firstcol csc-textpic-lastcol
580 addClassesImage.override = csc-textpic-firstcol |*| |*| csc-textpic-lastcol
581 addClassesImage.override.if {
582 isGreaterThan.field = imagecols
583 value = 1
584 }
585
586 #
587 imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap" style="width:{register:totalwidth}px;"> | </div>
588 imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap"> | </div>
589
590 # if noRows is set, wrap around each column:
591 imageColumnStdWrap.dataWrap = <div class="csc-textpic-imagecolumn" style="width:{register:columnwidth}px;"> | </div>
592
593 layout = CASE
594 layout {
595 key.field = imageorient
596 # above-center
597 default = TEXT
598 default.value = <div class="csc-textpic csc-textpic-center csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
599 # above-right
600 1 = TEXT
601 1.value = <div class="csc-textpic csc-textpic-right csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
602 # above-left
603 2 = TEXT
604 2.value = <div class="csc-textpic csc-textpic-left csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
605 # below-center
606 8 = TEXT
607 8.value = <div class="csc-textpic csc-textpic-center csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
608 # below-right
609 9 = TEXT
610 9.value = <div class="csc-textpic csc-textpic-right csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
611 # below-left
612 10 = TEXT
613 10.value = <div class="csc-textpic csc-textpic-left csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
614 # intext-right
615 17 = TEXT
616 17.value = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div>
617 17.override = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
618 17.override.if.isTrue = {$styles.content.imgtext.addIntextClearer}
619 # intext-left
620 18 = TEXT
621 18.value = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>
622 18.override = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
623 18.override.if.isTrue = {$styles.content.imgtext.addIntextClearer}
624 # intext-right-nowrap
625 25 = TEXT
626 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>
627 25.insertData = 1
628 # intext-left-nowrap
629 26 = TEXT
630 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>
631 26.insertData = 1
632 }
633
634 rendering {
635 dl {
636 # Choose another rendering for special edge cases
637 fallbackRendering = COA
638 fallbackRendering {
639 # Just one image without a caption => don't need the dl-overhead, use the "simple" rendering
640 10 = TEXT
641 10 {
642 if {
643 isFalse.field = imagecaption
644 value = 1
645 equals.data = register:imageCount
646 }
647 value = simple
648 }
649
650 # Multiple images and one global caption => "ul"
651 20 = TEXT
652 20 {
653 if {
654 value = 1
655 isGreaterThan.data = register:imageCount
656 isTrue.if.isTrue.data = register:renderGlobalCaption
657 isTrue.field = imagecaption
658 }
659 value = ul
660 }
661
662 # Multiple images and no caption at all => "ul"
663 30 = TEXT
664 30 {
665 if {
666 value = 1
667 isGreaterThan.data = register:imageCount
668 isFalse.field = imagecaption
669 }
670 value = ul
671 }
672 }
673 imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"> | </div>
674 imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"> | </div>
675 noRowsStdWrap.wrap =
676 oneImageStdWrap.dataWrap = <dl class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </dl>
677 imgTagStdWrap.wrap = <dt> | </dt>
678 editIconsStdWrap.wrap = <dd> | </dd>
679 caption {
680 required = 1
681 wrap = <dd class="csc-textpic-caption"> | </dd>
682 }
683 }
684 ul {
685 # Just one image without a caption => don't need the ul-overhead, use the "simple" rendering
686 fallbackRendering < tt_content.image.20.rendering.dl.fallbackRendering.10
687 imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"><ul> | </ul></div>
688 imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"><ul> | </ul></div>
689 noRowsStdWrap.wrap = <ul> | </ul>
690 oneImageStdWrap.dataWrap = <li class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </li>
691 imgTagStdWrap.wrap =
692 editIconsStdWrap.wrap = <div> | </div>
693 caption.wrap = <div class="csc-textpic-caption"> | </div>
694 }
695 div {
696 # Just one image without a caption => don't need the div-overhead, use the "simple" rendering
697 fallbackRendering < tt_content.image.20.rendering.dl.fallbackRendering.10
698 imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"> | </div>
699 imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"> | </div>
700 noRowsStdWrap.wrap =
701 oneImageStdWrap.dataWrap = <div class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </div>
702 imgTagStdWrap.wrap = <div> | </div>
703 editIconsStdWrap.wrap = <div> | </div>
704 caption.wrap = <div class="csc-textpic-caption"> | </div>
705 }
706 simple {
707 imageRowStdWrap.dataWrap = |
708 imageLastRowStdWrap.dataWrap = |
709 noRowsStdWrap.wrap =
710 oneImageStdWrap.dataWrap = |
711 imgTagStdWrap.wrap = |
712 editIconsStdWrap.wrap = |
713 caption.wrap = <div class="csc-textpic-caption"> | </div>
714 imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap csc-textpic-single-image" style="width:{register:totalwidth}px;"> | </div>
715 imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap csc-textpic-single-image"> | </div>
716 }
717 }
718 renderMethod = dl
719
720 editIcons = tt_content : image [imageorient|imagewidth|imageheight], [imagecols|image_noRows|imageborder],[image_link|image_zoom],[image_compression|image_effects|image_frames],imagecaption[imagecaption_position]
721 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.images
722
723 caption.editIcons = tt_content : imagecaption[imagecaption_position]
724 caption.editIcons.beforeLastTag=1
725 caption.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.caption
726
727 stdWrap.prefixComment = 2 | Image block:
728 }
729
730 # *****************
731 # CType: textpic
732 # *****************
733 tt_content.textpic = COA
734 tt_content.textpic {
735 10 = COA
736 10.if.value = 25
737 10.if.isLessThan.field = imageorient
738 10.10 = < lib.stdheader
739
740 20 = < tt_content.image.20
741 20 {
742 text.10 = COA
743 text.10 {
744 if.value = 24
745 if.isGreaterThan.field = imageorient
746 10 = < lib.stdheader
747 10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
748 }
749 text.20 = < tt_content.text.20
750 text.wrap = <div class="csc-textpic-text"> | </div>
751 }
752 }
753
754
755
756 # *****************
757 # CType: bullet
758 # *****************
759 tt_content.bullets = COA
760 tt_content.bullets {
761 10 = < lib.stdheader
762
763 20 = TEXT
764 20 {
765 field = bodytext
766 trim = 1
767 split{
768 token.char = 10
769 cObjNum = |*|1|| 2|*|
770 1.current = 1
771 1.parseFunc =< lib.parseFunc
772 1.wrap = <li class="odd">|</li>
773
774 2.current = 1
775 2.parseFunc =< lib.parseFunc
776 2.wrap = <li class="even">|</li>
777 }
778 dataWrap = <ul class="csc-bulletlist csc-bulletlist-{field:layout}">|</ul>
779 editIcons = tt_content: bodytext, [layout]
780 editIcons.beforeLastTag = 1
781 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.php:eIcon.bullets
782
783 prefixComment = 2 | Bullet list:
784 }
785 }
786
787
788
789 # *****************
790 # CType: table
791 # *****************
792 # Rendered by a PHP function specifically written to handle CE tables. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
793 tt_content.table = COA
794 tt_content.table {
795 10 = < lib.stdheader
796
797 20 = USER
798 20.userFunc = tx_cssstyledcontent_pi1->render_table
799 20.field = bodytext
800
801 20.color {
802 default =
803 1 = #EDEBF1
804 2 = #F5FFAA
805 }
806 20.tableParams_0 {
807 border =
808 cellpadding =
809 cellspacing =
810 }
811 20.tableParams_1 {
812 border =
813 cellpadding =
814 cellspacing =
815 }
816 20.tableParams_2 {
817 border =
818 cellpadding =
819 cellspacing =
820 }
821 20.tableParams_3 {
822 border =
823 cellpadding =
824 cellspacing =
825 }
826 20.innerStdWrap.wrap = |
827 20.innerStdWrap.parseFunc = < lib.parseFunc
828
829 20.stdWrap {
830 editIcons = tt_content: cols, bodytext, [layout], [table_bgColor|table_border|table_cellspacing|table_cellpadding]
831 editIcons.beforeLastTag = 1
832 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.table
833
834 prefixComment = 2 | Table:
835 }
836 }
837
838
839 # *****************
840 # CType: uploads
841 # *****************
842 # Rendered by a PHP function specifically written to handle CE filelists. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
843 tt_content.uploads = COA
844 tt_content.uploads {
845 10 = < lib.stdheader
846
847 20 = USER
848 20.userFunc = tx_cssstyledcontent_pi1->render_uploads
849 20.field = media
850 20.filePath.field = select_key
851
852 20 {
853 # Rendering for each file (e.g. rows of the table) as a cObject
854 itemRendering = COA
855 itemRendering {
856 wrap = <tr class="tr-odd tr-first">|</tr> |*| <tr class="tr-even">|</tr> || <tr class="tr-odd">|</tr> |*|
857
858 10 = TEXT
859 10.data = register:linkedIcon
860 10.wrap = <td class="csc-uploads-icon">|</td>
861 10.if.isPositive.field = layout
862
863 20 = COA
864 20.wrap = <td class="csc-uploads-fileName">|</td>
865 20.1 = TEXT
866 20.1 {
867 data = register:linkedLabel
868 wrap = <p>|</p>
869 }
870 20.2 = TEXT
871 20.2 {
872 data = register:description
873 wrap = <p class="csc-uploads-description">|</p>
874 required = 1
875 }
876
877 30 = TEXT
878 30.if.isTrue.field = filelink_size
879 30.data = register:fileSize
880 30.wrap = <td class="csc-uploads-fileSize">|</td>
881 30.bytes = 1
882 30.bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
883 }
884 useSpacesInLinkText = 0
885 stripFileExtensionFromLinkText = 0
886 }
887
888 20.color {
889 default =
890 1 = #EDEBF1
891 2 = #F5FFAA
892 }
893 20.tableParams_0 {
894 border =
895 cellpadding =
896 cellspacing =
897 }
898 20.tableParams_1 {
899 border =
900 cellpadding =
901 cellspacing =
902 }
903 20.tableParams_2 {
904 border =
905 cellpadding =
906 cellspacing =
907 }
908 20.tableParams_3 {
909 border =
910 cellpadding =
911 cellspacing =
912 }
913
914 20.linkProc {
915 target = _blank
916 jumpurl = {$styles.content.uploads.jumpurl}
917 jumpurl.secure = {$styles.content.uploads.jumpurl_secure}
918 jumpurl.secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}
919 removePrependedNumbers = 1
920
921 iconCObject = IMAGE
922 iconCObject.file.import.data = register : ICON_REL_PATH
923 iconCObject.file.width = 150
924 }
925
926 20.filesize {
927 bytes = 1
928 bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
929 }
930
931 20.stdWrap {
932 editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size, imagecaption
933 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.filelist
934
935 prefixComment = 2 | File list:
936 }
937 }
938
939
940 # ******************
941 # CType: multimedia
942 # ******************
943 tt_content.multimedia = COA
944 tt_content.multimedia {
945 10 = < lib.stdheader
946
947 20 = MULTIMEDIA
948 20.file.field = multimedia
949 20.file.wrap = uploads/media/
950 20.file.listNum = 0
951 20.params.field = bodytext
952
953 20.stdWrap {
954 editIcons = tt_content: multimedia, bodytext
955 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
956
957 prefixComment = 2 | Multimedia element:
958 }
959 }
960
961 # *****************
962 # CType: swfobject
963 # *****************
964 tt_content.swfobject = COA
965 tt_content.swfobject {
966 10 = < lib.stdheader
967
968 20 = SWFOBJECT
969 20 {
970 file =
971 width =
972 height =
973
974 flexParams.field = pi_flexform
975
976 alternativeContent.field = bodytext
977
978 layout = ###SWFOBJECT###
979
980 video {
981 player = {$styles.content.media.videoPlayer}
982
983 defaultWidth = {$styles.content.media.defaultVideoWidth}
984 defaultHeight = {$styles.content.media.defaultVideoHeight}
985
986 default {
987 params.quality = high
988 params.menu = false
989 params.allowScriptAccess = sameDomain
990 params.allowFullScreen = true
991 }
992 mapping {
993
994 }
995 }
996
997 audio {
998 player = {$styles.content.media.audioPlayer}
999
1000 defaultWidth = {$styles.content.media.defaultAudioWidth}
1001 defaultHeight = {$styles.content.media.defaultAudioHeight}
1002
1003 default {
1004 params.quality = high
1005 params.allowScriptAccess = sameDomain
1006 params.menu = false
1007 }
1008 mapping {
1009 flashvars.file = soundFile
1010 }
1011 }
1012
1013 }
1014 20.stdWrap {
1015 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1016 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1017
1018 prefixComment = 2 | SWFobject element:
1019 }
1020 }
1021
1022 # *****************
1023 # CType: qtobject
1024 # *****************
1025 tt_content.qtobject = COA
1026 tt_content.qtobject {
1027 10 = < lib.stdheader
1028
1029 20 = QTOBJECT
1030 20 {
1031 file =
1032 width =
1033 height =
1034
1035 flexParams.field = pi_flexform
1036
1037 alternativeContent.field = bodytext
1038
1039 layout = ###QTOBJECT###
1040
1041 video {
1042 player = {$styles.content.media.videoPlayer}
1043
1044 defaultWidth = {$styles.content.media.defaultVideoWidth}
1045 defaultHeight = {$styles.content.media.defaultVideoHeight}
1046
1047 default {
1048 params.quality = high
1049 params.menu = false
1050 params.allowScriptAccess = sameDomain
1051 params.allowFullScreen = true
1052 }
1053 mapping {
1054
1055 }
1056 }
1057
1058 audio {
1059 player = {$styles.content.media.audioPlayer}
1060
1061 defaultWidth = {$styles.content.media.defaultAudioWidth}
1062 defaultHeight = {$styles.content.media.defaultAudioHeight}
1063
1064 default {
1065 params.quality = high
1066 params.allowScriptAccess = sameDomain
1067 params.menu = false
1068 }
1069 mapping {
1070 flashvars.file = soundFile
1071 }
1072 }
1073 }
1074 20.stdWrap {
1075 editIcons = tt_content: multimedia, imagewidth, imageheight, pi_flexform, bodytext
1076 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1077
1078 prefixComment = 2 | QTobject element:
1079 }
1080 }
1081
1082 # *****************
1083 # CType: media
1084 # *****************
1085 tt_content.media = COA
1086 tt_content.media {
1087 10 = < lib.stdheader
1088
1089 20 = MEDIA
1090 20 {
1091
1092 flexParams.field = pi_flexform
1093 alternativeContent < tt_content.text.20
1094 alternativeContent.field = bodytext
1095
1096 type = video
1097 renderType = auto
1098 allowEmptyUrl = 0
1099 forcePlayer = 1
1100
1101 fileExtHandler {
1102 default = MEDIA
1103 avi = MEDIA
1104 asf = MEDIA
1105 class = MEDIA
1106 wmv = MEDIA
1107 mp3 = SWF
1108 mp4 = SWF
1109 m4v = SWF
1110 swa = SWF
1111 flv = SWF
1112 swf = SWF
1113 mov = QT
1114 m4v = QT
1115 m4a = QT
1116 }
1117
1118 mimeConf.swfobject < tt_content.swfobject.20
1119 mimeConf.qtobject < tt_content.qtobject.20
1120
1121 }
1122 20.stdWrap {
1123 editIcons = tt_content: pi_flexform, bodytext
1124 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
1125
1126 prefixComment = 2 | Media element:
1127 }
1128 }
1129
1130 # ******************
1131 # CType: mailform
1132 # ******************
1133 tt_content.mailform = COA
1134 tt_content.mailform.10 = < lib.stdheader
1135 tt_content.mailform.20 = FORM
1136 tt_content.mailform.20 {
1137 accessibility = 1
1138 noWrapAttr=1
1139 formName = mailform
1140 dontMd5FieldNames = 1
1141 layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>
1142 labelWrap.wrap = |
1143 commentWrap.wrap = |
1144 radioWrap.wrap = |<br />
1145 radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>
1146 REQ = 1
1147 REQ.labelWrap.wrap = |
1148 COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>
1149 RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>
1150 LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>
1151 target = {$styles.content.mailform.target}
1152 goodMess = {$styles.content.mailform.goodMess}
1153 badMess = {$styles.content.mailform.badMess}
1154 redirect.field = pages
1155 redirect.listNum = 0
1156 recipient.field = subheader
1157 data.field = bodytext
1158 locationData = 1
1159 hiddenFields.stdWrap.wrap = <div style="display:none;">|</div>
1160
1161 params.radio = class="csc-mailform-radio"
1162 params.check = class="csc-mailform-check"
1163 params.submit = class="csc-mailform-submit"
1164
1165 stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>
1166 stdWrap {
1167 editIcons = tt_content: bodytext, pages, subheader
1168 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.form
1169
1170 prefixComment = 2 | Mail form inserted:
1171 }
1172 }
1173
1174
1175 # ******************
1176 # CType: search
1177 # ******************
1178 tt_content.search = COA
1179 tt_content.search.10 = < lib.stdheader
1180 # Result:
1181 tt_content.search.20 = SEARCHRESULT
1182 tt_content.search.20 {
1183 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
1184 languageField.tt_content = sys_language_uid
1185 renderObj = COA
1186 renderObj {
1187
1188 10 = TEXT
1189 10.field = pages_title
1190 10.htmlSpecialChars = 1
1191 10.typolink {
1192 parameter.field = uid
1193 target = {$styles.content.searchresult.resultTarget}
1194 additionalParams.data = register:SWORD_PARAMS
1195 additionalParams.required = 1
1196 additionalParams.wrap = &no_cache=1
1197 }
1198 10.htmlSpecialChars = 1
1199 10.wrap = <h3 class="csc-searchResultHeader">|</h3>
1200
1201 20 = COA
1202 20 {
1203 10 = TEXT
1204 10.field = tt_content_bodytext
1205 10.stripHtml = 1
1206 10.htmlSpecialChars = 1
1207 }
1208 20.stdWrap.crop = 200 | ...
1209 20.stdWrap.wrap = <p class="csc-searchResult">|</p>
1210 }
1211
1212 layout = COA
1213 layout {
1214 wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###
1215
1216 10 = TEXT
1217 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.resultRange
1218 10.wrap = <td class="csc-searchResultRange"><p>|</p></td>
1219
1220 20 = TEXT
1221 20.value = ###PREV###&nbsp;&nbsp;&nbsp;###NEXT###
1222 20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>
1223 }
1224
1225 noResultObj = COA
1226 noResultObj {
1227 10 = TEXT
1228 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.emptySearch
1229 10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>
1230 }
1231
1232 next = TEXT
1233 next.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultNext
1234
1235 prev = TEXT
1236 prev.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultPrev
1237
1238 target = {$styles.content.searchresult.target}
1239 range = 20
1240
1241 stdWrap.prefixComment = 2 | Search result:
1242 }
1243
1244 # Form:
1245 tt_content.search.30 < tt_content.mailform.20
1246 tt_content.search.30 {
1247 goodMess = {$styles.content.searchform.goodMess}
1248 redirect >
1249 recipient >
1250 data >
1251 dataArray {
1252 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchWord
1253 10.type = sword=input
1254 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchIn
1255 20.type = scols=select
1256 20.valueArray {
1257 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.headersKeywords
1258 10.value = pages.title-subtitle-keywords-description:tt_content.header
1259 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.pageContent
1260 20.value = tt_content.header-bodytext-imagecaption
1261 }
1262 30.type = stype=hidden
1263 30.value = L0
1264 40.type = submit=submit
1265 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchButton
1266 }
1267 type.field = pages
1268 type.listNum = 0
1269 locationData = HTTP_POST_VARS
1270 no_cache = 1
1271
1272 stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform"> | </table>
1273 stdWrap {
1274 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.search
1275
1276 prefixComment = 2 | Search form inserted:
1277 }
1278 }
1279
1280
1281 # ******************
1282 # CType: login
1283 # ******************
1284 tt_content.login < tt_content.mailform
1285 tt_content.login.10 = < lib.stdheader
1286 tt_content.login.20 {
1287 goodMess = {$styles.content.loginform.goodMess}
1288 redirect >
1289 recipient >
1290 data >
1291 dataArray {
1292 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
1293 10.type = *user=input
1294 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.password
1295 20.type = *pass=password
1296 30.type = logintype=hidden
1297 30.value = login
1298 40.type = submit=submit
1299 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.login
1300 }
1301 type.field = pages
1302 type.listNum = 0
1303 target = {$styles.content.loginform.target}
1304 locationData = 0
1305 hiddenFields.pid = TEXT
1306 hiddenFields.pid {
1307 value = {$styles.content.loginform.pid}
1308 override.field = pages
1309 override.listNum = 1
1310 }
1311
1312 stdWrap.wrap = <div class="csc-loginform"> | </div>
1313 stdWrap {
1314 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.login
1315
1316 prefixComment = 2 | Login/Logout form:
1317 }
1318 }
1319 [loginUser = *]
1320 tt_content.login.20 {
1321 dataArray >
1322 dataArray {
1323 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
1324 10.label.wrap = |&nbsp;<!--###USERNAME###-->
1325 30.type = logintype=hidden
1326 30.value = logout
1327 40.type = submit=submit
1328 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.logout
1329 }
1330 }
1331 [global]
1332
1333
1334 # ******************
1335 # CType: splash
1336 # ******************
1337 # Deprecated element.
1338 # Still here for backwards compliance with plugins using the "text box" type.
1339 tt_content.splash = CASE
1340 tt_content.splash.key.field = splash_layout
1341 tt_content.splash.stdWrap {
1342 prefixComment = 2 | Textbox inserted (Deprecated)
1343 }
1344 tt_content.splash.default = COA
1345 tt_content.splash.default {
1346 20 = CTABLE
1347 20 {
1348 c.1 = < tt_content.text
1349 lm.1 = IMAGE
1350 lm.1.file {
1351 import = uploads/pics/
1352 import.field = image
1353 import.listNum = 0
1354 maxW.field = imagewidth
1355 maxW.ifEmpty = 200
1356 }
1357 cMargins = 30,0,0,0
1358 }
1359 }
1360 tt_content.splash.1 < tt_content.splash.default
1361 tt_content.splash.1.20.lm.1.file >
1362 tt_content.splash.1.20.lm.1.file = GIFBUILDER
1363 tt_content.splash.1.20.lm.1.file {
1364 XY = [10.w]+10,[10.h]+10
1365 backColor = {$content.splash.bgCol}
1366 backColor.override.data = register:pageColor
1367 format = jpg
1368 5 = BOX
1369 5.dimensions = 3,3,[10.w],[10.h]
1370 5.color = #333333
1371 7 = EFFECT
1372 7.value = blur=99|blur=99|blur=99|blur=99|blur=99|blur=99|blur=99
1373 10 = IMAGE
1374 10.file {
1375 import = uploads/pics/
1376 import.field = image
1377 import.listNum = 0
1378 maxW.field = imagewidth
1379 maxW.ifEmpty = 200
1380 }
1381 }
1382 // The image frames are not available unless TypoScript code from styles.content.imgFrames.x is provided manually:
1383 tt_content.splash.2 < tt_content.splash.default
1384 #tt_content.splash.2.20.lm.1.file.m < styles.content.imgFrames.1
1385 tt_content.splash.3 < tt_content.splash.default
1386 #tt_content.splash.3.20.lm.1.file.m < styles.content.imgFrames.2
1387
1388 // From plugin.postit1, if included:
1389 tt_content.splash.20 = < plugin.postit1
1390
1391
1392
1393 # ****************
1394 # CType: menu
1395 # ****************
1396 tt_content.menu = COA
1397 tt_content.menu {
1398 10 = < lib.stdheader
1399
1400 20 = CASE
1401 20 {
1402 key.field = menu_type
1403
1404 # "Menu of these pages"
1405 default = HMENU
1406 default {
1407 special = list
1408 special.value.field = pages
1409 wrap = <ul class="csc-menu csc-menu-def">|</ul>
1410 1 = TMENU
1411 1 {
1412 target = {$PAGE_TARGET}
1413 NO {
1414 stdWrap.htmlSpecialChars = 1
1415 wrapItemAndSub = <li>|</li>
1416 ATagTitle.field = description // title
1417 }
1418 noBlur = 1
1419 }
1420 }
1421
1422 # "Menu of subpages to these pages"
1423 1 < .default
1424 1 {
1425 special = directory
1426 wrap = <ul class="csc-menu csc-menu-1">|</ul>
1427 }
1428
1429 # "Sitemap - liststyle"
1430 2 = HMENU
1431 2 {
1432 wrap = <div class="csc-sitemap">|</div>
1433 1 = TMENU
1434 1 {
1435 target = {$PAGE_TARGET}
1436 noBlur = 1
1437 expAll = 1
1438 wrap = <ul>|</ul>
1439 NO {
1440 stdWrap.htmlSpecialChars = 1
1441 wrapItemAndSub = <li>|</li>
1442 ATagTitle.field = description // title
1443 }
1444 }
1445 2 < .1
1446 3 < .1
1447 4 < .1
1448 5 < .1
1449 6 < .1
1450 7 < .1
1451 }
1452
1453 # "Section index (pagecontent w/Index checked - liststyle)"
1454 3 < styles.content.get
1455 3 {
1456 wrap = <ul class="csc-menu csc-menu-3">|</ul>
1457 select.andWhere = sectionIndex!=0
1458 select.pidInList.override.field = pages
1459 renderObj = TEXT
1460 renderObj {
1461 fieldRequired = header
1462 trim = 1
1463 field = header
1464 htmlSpecialChars = 1
1465 noBlur = 1
1466 wrap = <li class="csc-section">|</li>
1467 typolink.parameter.field = pid
1468 typolink.section.field = uid
1469 }
1470 }
1471
1472 # "Menu of subpages to these pages (with abstract)"
1473 4 < .1
1474 4 {
1475 wrap = <dl class="csc-menu csc-menu-4">|</dl>
1476 1.NO {
1477 wrapItemAndSub >
1478 linkWrap = <dt>|</dt>
1479 after {
1480 data = field : abstract // field : description // field : subtitle
1481 required = 1
1482 htmlSpecialChars = 1
1483 wrap = <dd>|</dd>
1484 }
1485 ATagTitle.field = description // title
1486 }
1487 }
1488
1489 # "Recently updated pages"
1490 5 < .default
1491 5 {
1492 wrap = <ul class="csc-menu csc-menu-5">|</ul>
1493 special = updated
1494 special {
1495 maxAge = 3600*24*7
1496 excludeNoSearchPages = 1
1497 }
1498 }
1499
1500 # "Related pages (based on keywords)"
1501 6 < .default
1502 6 {
1503 wrap = <ul class="csc-menu csc-menu-6">|</ul>
1504 special = keywords
1505 special {
1506 excludeNoSearchPages = 1
1507 }
1508 }
1509
1510 # "Menu of subpages to these pages + sections - liststyle"
1511 7 < .1
1512 7 {
1513 wrap = <ul class="csc-menu csc-menu-7">|</ul>
1514 1.expAll = 1
1515 2 < .1
1516 2 {
1517 sectionIndex = 1
1518 sectionIndex.type = header
1519 wrap = <ul>|</ul>
1520 NO.wrapItemAndSub = <li class="csc-section">|</li>
1521 }
1522 }
1523 }
1524
1525 20.stdWrap {
1526 editIcons = tt_content: menu_type, pages
1527 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.menuSitemap
1528
1529 prefixComment = 2 | Menu/Sitemap element:
1530 }
1531 }
1532
1533
1534
1535 # ****************
1536 # CType: shortcut
1537 # ****************
1538 # Should be a complete copy from the old static template "content (default)"
1539 tt_content.shortcut = COA
1540 tt_content.shortcut {
1541 20 = CASE
1542 20.key.field = layout
1543 20.0= RECORDS
1544 20.0 {
1545 source.field = records
1546 tables = {$content.shortcut.tables}
1547 # THESE are OLD plugins. Modern plugins registers themselves automatically!
1548 conf.tt_content = < tt_content
1549 conf.tt_address = < tt_address
1550 conf.tt_links = < tt_links
1551 conf.tt_guest = < tt_guest
1552 conf.tt_board = < tt_board
1553 conf.tt_calender = < tt_calender
1554 conf.tt_rating < tt_rating
1555 conf.tt_products = < tt_products
1556 conf.tt_news = < tt_news
1557 conf.tt_poll = < plugin.tt_poll
1558 }
1559 20.1= RECORDS
1560 20.1 {
1561 source.field = records
1562 tables = {$content.shortcut.tables}
1563 conf.tt_poll = < plugin.tt_poll
1564 conf.tt_poll.code = RESULT,SUBMITTEDVOTE
1565 }
1566
1567 20.stdWrap {
1568 editIcons = tt_content: records
1569 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
1570
1571 prefixComment = 2 | Inclusion of other records (by reference):
1572 }
1573 }
1574
1575
1576 # ****************
1577 # CType: list
1578 # ****************
1579 # Should be a complete copy from the old static template "content (default)" (except "lib.stdheader")
1580 tt_content.list = COA
1581 tt_content.list {
1582 10 = < lib.stdheader
1583
1584 20 = CASE
1585 20.key.field = list_type
1586 20 {
1587 # LIST element references (NOT copy of objects!)
1588 # THESE are OLD plugins. Modern plugins registers themselves automatically!
1589 3 = CASE
1590 3.key.field = layout
1591 3.0 = < plugin.tt_guest
1592
1593 4 = CASE
1594 4.key.field = layout
1595 4.0 = < plugin.tt_board_list
1596 4.1 = < plugin.tt_board_tree
1597
1598 2 = CASE
1599 2.key.field = layout
1600 2.0 = < plugin.tt_board_tree
1601
1602 5 = CASE
1603 5.key.field = layout
1604 5.0 = < plugin.tt_products
1605
1606 7 = CASE
1607 7.key.field = layout
1608 7.0 = < plugin.tt_calender
1609
1610 8 = CASE
1611 8.key.field = layout
1612 8.0 = < plugin.tt_rating
1613
1614 9 = CASE
1615 9.key.field = layout
1616 9.0 = < plugin.tt_news
1617
1618 11 = CASE
1619 11.key.field = layout
1620 11.0 = < plugin.tipafriend
1621
1622 20 = CASE
1623 20.key.field = layout
1624 20.0 = < plugin.feadmin.fe_users
1625
1626 21 = CASE
1627 21.key.field = layout
1628 21.0 = < plugin.feadmin.dmailsubscription
1629 }
1630
1631 20.stdWrap {
1632 editIcons = tt_content: list_type, layout, select_key, pages [recursive]
1633 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.plugin
1634
1635 prefixComment = 2 | Plugin inserted:
1636 }
1637 }
1638
1639
1640 # ****************
1641 # CType: script
1642 # ****************
1643 # 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.
1644 tt_content.script = TEXT
1645 tt_content.script {
1646 value =
1647
1648 prefixComment = 2 | Script element (Deprecated)
1649 }
1650
1651
1652 # ****************
1653 # CType: div
1654 # ****************
1655 tt_content.div = TEXT
1656 tt_content.div {
1657 value = <hr />
1658 wrap = <div class="divider">|</div>
1659 prefixComment = 2 | Div element
1660 }
1661
1662
1663 # ****************
1664 # CType: html
1665 # ****************
1666 # This truely IS a content object, launched from inside the PHP class of course.
1667 # Should be a complete copy from the old static template "content (default)"
1668 tt_content.html = TEXT
1669 tt_content.html {
1670 field = bodytext
1671
1672 editIcons = tt_content: pages
1673 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.html
1674
1675 prefixComment = 2 | Raw HTML content:
1676 }
1677
1678
1679 # ****************
1680 # Default error msg:
1681 # ****************
1682 tt_content.default = TEXT
1683 tt_content.default {
1684 field = CType
1685 wrap = <p style="background-color: yellow;"><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>
1686
1687 prefixComment = 2 | Unknown element message:
1688 }
1689
1690 # *********************************************************************
1691 # ACCESSIBILTY MODE
1692 # *********************************************************************
1693
1694
1695
1696
1697
1698
1699
1700 plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (
1701 /* Captions */
1702 DIV.csc-textpic-caption-c .csc-textpic-caption { text-align: center; }
1703 DIV.csc-textpic-caption-r .csc-textpic-caption { text-align: right; }
1704 DIV.csc-textpic-caption-l .csc-textpic-caption { text-align: left; }
1705
1706 /* Needed for noRows setting */
1707 DIV.csc-textpic DIV.csc-textpic-imagecolumn { float: left; display: inline; }
1708
1709 /* Border just around the image */
1710 {$styles.content.imgtext.borderSelector} {
1711 border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};
1712 padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;
1713 }
1714
1715 DIV.csc-textpic-imagewrap { padding: 0; }
1716
1717 DIV.csc-textpic IMG { border: none; }
1718
1719 /* DIV: This will place the images side by side */
1720 DIV.csc-textpic DIV.csc-textpic-imagewrap DIV.csc-textpic-image { float: left; }
1721
1722 /* UL: This will place the images side by side */
1723 DIV.csc-textpic DIV.csc-textpic-imagewrap UL { list-style: none; margin: 0; padding: 0; }
1724 DIV.csc-textpic DIV.csc-textpic-imagewrap UL LI { float: left; margin: 0; padding: 0; }
1725
1726 /* DL: This will place the images side by side */
1727 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image { float: left; }
1728 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DT { float: none; }
1729 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD { float: none; }
1730 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD IMG { border: none; } /* FE-Editing Icons */
1731 DL.csc-textpic-image { margin: 0; }
1732 DL.csc-textpic-image DT { margin: 0; display: inline; }
1733 DL.csc-textpic-image DD { margin: 0; }
1734
1735 /* Clearer */
1736 DIV.csc-textpic-clear { clear: both; }
1737
1738 /* Margins around images: */
1739
1740 /* Pictures on left, add margin on right */
1741 DIV.csc-textpic-left DIV.csc-textpic-imagewrap .csc-textpic-image,
1742 DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
1743 DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap .csc-textpic-image {
1744 display: inline; /* IE fix for double-margin bug */
1745 margin-right: {$styles.content.imgtext.colSpace}px;
1746 }
1747
1748 /* Pictures on right, add margin on left */
1749 DIV.csc-textpic-right DIV.csc-textpic-imagewrap .csc-textpic-image,
1750 DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
1751 DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap .csc-textpic-image {
1752 display: inline; /* IE fix for double-margin bug */
1753 margin-left: {$styles.content.imgtext.colSpace}px;
1754 }
1755
1756 /* Pictures centered, add margin on left */
1757 DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image {
1758 display: inline; /* IE fix for double-margin bug */
1759 margin-left: {$styles.content.imgtext.colSpace}px;
1760 }
1761 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image .csc-textpic-caption { margin: 0; }
1762 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image IMG { margin: 0; vertical-align:bottom; }
1763
1764 /* Space below each image (also in-between rows) */
1765 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1766 DIV.csc-textpic-equalheight DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; display: block; }
1767 DIV.csc-textpic DIV.csc-textpic-imagerow { clear: both; }
1768 DIV.csc-textpic DIV.csc-textpic-single-image IMG { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1769
1770 /* IE7 hack for margin between image rows */
1771 *+html DIV.csc-textpic DIV.csc-textpic-imagerow .csc-textpic-image { margin-bottom: 0; }
1772 *+html DIV.csc-textpic DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1773
1774 /* No margins around the whole image-block */
1775 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-firstcol { margin-left: 0px !important; }
1776 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-lastcol { margin-right: 0px !important; }
1777
1778 /* Add margin from image-block to text (in case of "Text w/ images") */
1779 DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap,
1780 DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap {
1781 margin-right: {$styles.content.imgtext.textMargin}px !important;
1782 }
1783 DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap,
1784 DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap {
1785 margin-left: {$styles.content.imgtext.textMargin}px !important;
1786 }
1787
1788 /* Positioning of images: */
1789
1790 /* Above */
1791 DIV.csc-textpic-above DIV.csc-textpic-text { clear: both; }
1792
1793 /* Center (above or below) */
1794 DIV.csc-textpic-center { text-align: center; /* IE-hack */ }
1795 DIV.csc-textpic-center DIV.csc-textpic-imagewrap { margin: 0 auto; }
1796 DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image { text-align: left; /* Remove IE-hack */ }
1797 DIV.csc-textpic-center DIV.csc-textpic-text { text-align: left; /* Remove IE-hack */ }
1798
1799 /* Right (above or below) */
1800 DIV.csc-textpic-right DIV.csc-textpic-imagewrap { float: right; }
1801 DIV.csc-textpic-right DIV.csc-textpic-text { clear: right; }
1802
1803 /* Left (above or below) */
1804 DIV.csc-textpic-left DIV.csc-textpic-imagewrap { float: left; }
1805 DIV.csc-textpic-left DIV.csc-textpic-text { clear: left; }
1806
1807 /* Left (in text) */
1808 DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap { float: left; }
1809
1810 /* Right (in text) */
1811 DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap { float: right; }
1812
1813 /* Right (in text, no wrap around) */
1814 DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap { float: right; clear: both; }
1815 /* Hide from IE5-mac. Only IE-win sees this. \*/
1816 * html DIV.csc-textpic-intext-right-nowrap .csc-textpic-text { height: 1%; }
1817 /* End hide from IE5/mac */
1818
1819 /* Left (in text, no wrap around) */
1820 DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap { float: left; clear: both; }
1821 /* Hide from IE5-mac. Only IE-win sees this. \*/
1822 * html DIV.csc-textpic-intext-left-nowrap .csc-textpic-text,
1823 * html .csc-textpic-intext-left ol,
1824 * html .csc-textpic-intext-left ul { height: 1%; }
1825 /* End hide from IE5/mac */
1826
1827 DIV.csc-textpic DIV.csc-textpic-imagerow-last { margin-bottom: 0; }
1828
1829 /* Browser fixes: */
1830
1831 /* Fix for unordered and ordered list with image "In text, left" */
1832 .csc-textpic-intext-left ol, .csc-textpic-intext-left ul {padding-left: 40px; overflow: auto; }
1833 )
1834