6f0dcfb06995327461c8ac8856b1a5661af8b6a0
[Packages/TYPO3.CMS.git] / typo3 / sysext / css_styled_content / static / v4.2 / 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
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
243 spaceBefore.field = spaceBefore
244 spaceAfter.field = spaceAfter
245 space = {$content.space}
246
247 innerWrap.cObject = CASE
248 innerWrap.cObject {
249 key.field = section_frame
250
251 1 = TEXT
252 1.value = <div class="csc-frame csc-frame-invisible">|</div>
253
254 5 = TEXT
255 5.value = <div class="csc-frame csc-frame-rulerBefore"></div>|
256
257 6 = TEXT
258 6.value = |<div class="csc-frame csc-frame-rulerAfter"></div>
259
260 10 = TEXT
261 10.value = <div class="csc-frame csc-frame-indent">|</div>
262
263 11 = TEXT
264 11.value = <div class="csc-frame csc-frame-indent3366">|</div>
265
266 12 = TEXT
267 12.value = <div class="csc-frame csc-frame-indent6633">|</div>
268
269 20 = TEXT
270 20.value = <div class="csc-frame csc-frame-frame1">|</div>
271
272 21 = TEXT
273 21.value = <div class="csc-frame csc-frame-frame2">|</div>
274 }
275
276 innerWrap2 = | <p class="csc-linkToTop"><a href="#">{LLL:EXT:css_styled_content/pi1/locallang.xml:label.toTop}</a></p>
277 innerWrap2.insertData = 1
278 innerWrap2.fieldRequired = linkToTop
279
280 dataWrap = <a id="c{field:uid}"></a> |
281
282 prepend = TEXT
283 prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>
284 prepend.if.isTrue.field = _LOCALIZED_UID
285
286 editPanel = 1
287 editPanel {
288 allow = move,new,edit,hide,delete
289 line = 5
290 label = %s
291 onlyCurrentPid = 1
292 previewBorder = 4
293 edit.displayRecord = 1
294 }
295
296 prefixComment = 1 | CONTENT ELEMENT, uid:{field:uid}/{field:CType}
297
298 }
299
300
301
302 # *****************
303 # CType: header
304 # *****************
305 # See Object path "lib.stdheader"
306 tt_content.header = COA
307 tt_content.header {
308 10 = < lib.stdheader
309
310 20 = TEXT
311 20 {
312 field = subheader
313 required = 1
314
315 dataWrap = <p class="csc-subheader csc-subheader-{field:layout}">|</p>
316 htmlSpecialChars = 1
317
318 editIcons = tt_content:subheader,layout
319 editIcons.beforeLastTag = 1
320 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.subheader
321
322 prefixComment = 2 | Subheader:
323 }
324 }
325
326
327
328 # *****************
329 # CType: text
330 # *****************
331 tt_content.text = COA
332 tt_content.text {
333 10 = < lib.stdheader
334
335 20 = TEXT
336 20 {
337 field = bodytext
338 required = 1
339
340 parseFunc = < lib.parseFunc_RTE
341
342 editIcons = tt_content:bodytext, rte_enabled
343 editIcons.beforeLastTag = 1
344 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext
345
346 prefixComment = 2 | Text:
347 }
348 }
349
350
351
352 # *****************
353 # CType: image
354 # *****************
355 # (also used for rendering 'textpic' type):
356 tt_content.image = COA
357 tt_content.image.10 = < lib.stdheader
358 tt_content.image.20 = USER
359 tt_content.image.20 {
360 userFunc = tx_cssstyledcontent_pi1->render_textpic
361
362 # Image source
363 imgList.field = image
364 imgPath = uploads/pics/
365
366 # Single image rendering
367 imgObjNum = 1
368 1 {
369 file.import.current = 1
370 file.width.field = imagewidth
371 imageLinkWrap = 1
372 imageLinkWrap {
373 bodyTag = <body style="margin:0; background:#fff;">
374 wrap = <a href="javascript:close();"> | </a>
375 width = {$styles.content.imgtext.linkWrap.width}
376 height = {$styles.content.imgtext.linkWrap.height}
377 effects = {$styles.content.imgtext.linkWrap.effects}
378
379 JSwindow = 1
380 JSwindow.newWindow = {$styles.content.imgtext.linkWrap.newWindow}
381
382 enable.field = image_zoom
383 enable.ifEmpty.typolink.parameter.field = image_link
384 enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
385 enable.ifEmpty.typolink.returnLast = url
386
387 typolink.parameter.field = image_link
388 typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
389 typolink.target = {$styles.content.links.target}
390 typolink.extTarget = {$styles.content.links.extTarget}
391 }
392
393 altText = TEXT
394 altText {
395 field = altText
396 stripHtml = 1
397 split.token.char = 10
398 split.token.if.isTrue = {$styles.content.imgtext.imageTextSplit}
399 split.returnKey.data = register : IMAGE_NUM_CURRENT
400 }
401
402 titleText < .altText
403 titleText.field = titleText
404
405 longdescURL < .altText
406 longdescURL.field = longdescURL
407
408 emptyTitleHandling = {$styles.content.imgtext.emptyTitleHandling}
409 titleInLink = {$styles.content.imgtext.titleInLink}
410 titleInLinkAndImg = {$styles.content.imgtext.titleInLinkAndImg}
411 }
412
413 textPos.field = imageorient
414 maxW = {$styles.content.imgtext.maxW}
415 maxW.override.data = register:maxImageWidth
416 maxWInText = {$styles.content.imgtext.maxWInText}
417 maxWInText.override.data = register:maxImageWidthInText
418
419 equalH.field = imageheight
420
421 image_compression.field = image_compression
422 image_effects.field = image_effects
423
424 noRows.field = image_noRows
425
426 cols.field = imagecols
427 border.field = imageborder
428
429 caption {
430 1 = TEXT
431 1 {
432 field = imagecaption
433 required = 1
434 parseFunc =< lib.parseFunc
435 br = 1
436 split.token.char = 10
437 split.token.if.isPositive = {$styles.content.imgtext.imageTextSplit} + {$styles.content.imgtext.captionSplit}
438 split.returnKey.data = register : IMAGE_NUM_CURRENT
439 }
440 }
441 # captionSplit is deprecated, use imageTextSplit instead
442 captionSplit = {$styles.content.imgtext.captionSplit}
443 captionAlign.field = imagecaption_position
444 # caption/alttext/title/longdescURL splitting
445 imageTextSplit = {$styles.content.imgtext.imageTextSplit}
446
447 borderCol = {$styles.content.imgtext.borderColor}
448 borderThick = {$styles.content.imgtext.borderThick}
449 colSpace = {$styles.content.imgtext.colSpace}
450 rowSpace = {$styles.content.imgtext.rowSpace}
451 textMargin = {$styles.content.imgtext.textMargin}
452
453 borderSpace = {$styles.content.imgtext.borderSpace}
454 separateRows = {$styles.content.imgtext.separateRows}
455 addClasses =
456 addClassesImage =
457 addClassesImage.ifEmpty = csc-textpic-firstcol csc-textpic-lastcol
458 addClassesImage.override = csc-textpic-firstcol |*| |*| csc-textpic-lastcol
459 addClassesImage.override.if {
460 isGreaterThan.field = imagecols
461 value = 1
462 }
463
464 #
465 imageStdWrap.dataWrap = <div class="csc-textpic-imagewrap" style="width:{register:totalwidth}px;"> | </div>
466 imageStdWrapNoWidth.wrap = <div class="csc-textpic-imagewrap"> | </div>
467
468 # if noRows is set, wrap around each column:
469 imageColumnStdWrap.dataWrap = <div class="csc-textpic-imagecolumn" style="width:{register:columnwidth}px;"> | </div>
470
471 layout = CASE
472 layout {
473 key.field = imageorient
474 # above-center
475 default = TEXT
476 default.value = <div class="csc-textpic csc-textpic-center csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
477 # above-right
478 1 = TEXT
479 1.value = <div class="csc-textpic csc-textpic-right csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
480 # above-left
481 2 = TEXT
482 2.value = <div class="csc-textpic csc-textpic-left csc-textpic-above###CLASSES###">###IMAGES######TEXT###</div><div class="csc-textpic-clear"><!-- --></div>
483 # below-center
484 8 = TEXT
485 8.value = <div class="csc-textpic csc-textpic-center csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
486 # below-right
487 9 = TEXT
488 9.value = <div class="csc-textpic csc-textpic-right csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
489 # below-left
490 10 = TEXT
491 10.value = <div class="csc-textpic csc-textpic-left csc-textpic-below###CLASSES###">###TEXT######IMAGES###</div><div class="csc-textpic-clear"><!-- --></div>
492 # intext-right
493 17 = TEXT
494 17.value = <div class="csc-textpic csc-textpic-intext-right###CLASSES###">###IMAGES######TEXT###</div>
495 # intext-left
496 18 = TEXT
497 18.value = <div class="csc-textpic csc-textpic-intext-left###CLASSES###">###IMAGES######TEXT###</div>
498 # intext-right-nowrap
499 25 = TEXT
500 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>
501 25.insertData = 1
502 # intext-left-nowrap
503 26 = TEXT
504 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>
505 26.insertData = 1
506 }
507
508 rendering {
509 dl {
510 imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"> | </div>
511 imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"> | </div>
512 noRowsStdWrap.wrap =
513 oneImageStdWrap.dataWrap = <dl class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </dl>
514 imgTagStdWrap.wrap = <dt> | </dt>
515 editIconsStdWrap.wrap = <dd> | </dd>
516 caption {
517 required = 1
518 wrap = <dd class="csc-textpic-caption"> | </dd>
519 }
520 }
521 ul {
522 imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"><ul> | </ul></div>
523 imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"><ul> | </ul></div>
524 noRowsStdWrap.wrap = <ul> | </ul>
525 oneImageStdWrap.dataWrap = <li class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </li>
526 imgTagStdWrap.wrap =
527 editIconsStdWrap.wrap = <div> | </div>
528 caption.wrap = <div class="csc-textpic-caption"> | </div>
529 }
530 div {
531 imageRowStdWrap.dataWrap = <div class="csc-textpic-imagerow" style="width:{register:rowwidth}px;"> | </div>
532 imageLastRowStdWrap.dataWrap = <div class="csc-textpic-imagerow csc-textpic-imagerow-last" style="width:{register:rowwidth}px;"> | </div>
533 noRowsStdWrap.wrap =
534 oneImageStdWrap.dataWrap = <div class="csc-textpic-image###CLASSES###" style="width:{register:imagespace}px;"> | </div>
535 imgTagStdWrap.wrap = <div> | </div>
536 editIconsStdWrap.wrap = <div> | </div>
537 caption.wrap = <div class="csc-textpic-caption"> | </div>
538 }
539 }
540 renderMethod = dl
541
542 editIcons = tt_content : image [imageorient|imagewidth|imageheight], [imagecols|image_noRows|imageborder],[image_link|image_zoom],[image_compression|image_effects|image_frames],imagecaption[imagecaption_position]
543 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.images
544
545 caption.editIcons = tt_content : imagecaption[imagecaption_position]
546 caption.editIcons.beforeLastTag=1
547 caption.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.caption
548
549 stdWrap.prefixComment = 2 | Image block:
550 }
551
552
553
554 # *****************
555 # CType: textpic
556 # *****************
557 tt_content.textpic = COA
558 tt_content.textpic {
559 10 = COA
560 10.if.value = 25
561 10.if.isLessThan.field = imageorient
562 10.10 = < lib.stdheader
563
564 20 = < tt_content.image.20
565 20 {
566 text.10 = COA
567 text.10 {
568 if.value = 24
569 if.isGreaterThan.field = imageorient
570 10 = < lib.stdheader
571 10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
572 }
573 text.20 = < tt_content.text.20
574 text.wrap = <div class="csc-textpic-text"> | </div>
575 }
576 }
577
578
579
580 # *****************
581 # CType: bullet
582 # *****************
583 tt_content.bullets = COA
584 tt_content.bullets {
585 10 = < lib.stdheader
586
587 20 = TEXT
588 20 {
589 field = bodytext
590 trim = 1
591 split{
592 token.char = 10
593 cObjNum = |*|1|| 2|*|
594 1.current = 1
595 1.parseFunc =< lib.parseFunc
596 1.wrap = <li class="odd">|</li>
597
598 2.current = 1
599 2.parseFunc =< lib.parseFunc
600 2.wrap = <li class="even">|</li>
601 }
602 dataWrap = <ul class="csc-bulletlist csc-bulletlist-{field:layout}">|</ul>
603 editIcons = tt_content: bodytext, [layout]
604 editIcons.beforeLastTag = 1
605 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.php:eIcon.bullets
606
607 prefixComment = 2 | Bullet list:
608 }
609 }
610
611
612
613 # *****************
614 # CType: table
615 # *****************
616 # Rendered by a PHP function specifically written to handle CE tables. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
617 tt_content.table = COA
618 tt_content.table {
619 10 = < lib.stdheader
620
621 20 = USER
622 20.userFunc = tx_cssstyledcontent_pi1->render_table
623 20.field = bodytext
624
625 20.color {
626 default =
627 1 = #EDEBF1
628 2 = #F5FFAA
629 }
630 20.tableParams_0 {
631 border =
632 cellpadding =
633 cellspacing =
634 }
635 20.tableParams_1 {
636 border =
637 cellpadding =
638 cellspacing =
639 }
640 20.tableParams_2 {
641 border =
642 cellpadding =
643 cellspacing =
644 }
645 20.tableParams_3 {
646 border =
647 cellpadding =
648 cellspacing =
649 }
650 20.innerStdWrap.wrap = |
651 20.innerStdWrap.parseFunc = < lib.parseFunc
652
653 20.stdWrap {
654 editIcons = tt_content: cols, bodytext, [layout], [table_bgColor|table_border|table_cellspacing|table_cellpadding]
655 editIcons.beforeLastTag = 1
656 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.table
657
658 prefixComment = 2 | Table:
659 }
660 }
661
662
663 # *****************
664 # CType: uploads
665 # *****************
666 # Rendered by a PHP function specifically written to handle CE filelists. See css_styled_content/pi1/class.tx_cssstyledcontent_pi1.php
667 tt_content.uploads = COA
668 tt_content.uploads {
669 10 = < lib.stdheader
670
671 20 = USER
672 20.userFunc = tx_cssstyledcontent_pi1->render_uploads
673 20.field = media
674
675 20 {
676 # Rendering for each file (e.g. rows of the table) as a cObject
677 itemRendering = COA
678 itemRendering {
679 wrap = <tr class="tr-odd tr-first">|</tr> |*| <tr class="tr-even">|</tr> || <tr class="tr-odd">|</tr> |*|
680
681 10 = TEXT
682 10.data = register:linkedIcon
683 10.wrap = <td class="csc-uploads-icon">|</td>
684 10.if.isPositive.field = layout
685
686 20 = COA
687 20.wrap = <td class="csc-uploads-fileName">|</td>
688 20.1 = TEXT
689 20.1 {
690 data = register:linkedLabel
691 wrap = <p>|</p>
692 }
693 20.2 = TEXT
694 20.2 {
695 data = register:description
696 wrap = <p class="csc-uploads-description">|</p>
697 required = 1
698 }
699
700 30 = TEXT
701 30.if.isTrue.field = filelink_size
702 30.data = register:fileSize
703 30.wrap = <td class="csc-uploads-fileSize">|</td>
704 30.bytes = 1
705 30.bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
706 }
707 }
708
709 20.color {
710 default =
711 1 = #EDEBF1
712 2 = #F5FFAA
713 }
714 20.tableParams_0 {
715 border =
716 cellpadding =
717 cellspacing =
718 }
719 20.tableParams_1 {
720 border =
721 cellpadding =
722 cellspacing =
723 }
724 20.tableParams_2 {
725 border =
726 cellpadding =
727 cellspacing =
728 }
729 20.tableParams_3 {
730 border =
731 cellpadding =
732 cellspacing =
733 }
734
735 20.linkProc {
736 target = _blank
737 jumpurl = {$styles.content.uploads.jumpurl}
738 jumpurl.secure = {$styles.content.uploads.jumpurl_secure}
739 jumpurl.secure.mimeTypes = {$styles.content.uploads.jumpurl_secure_mimeTypes}
740 removePrependedNumbers = 1
741
742 iconCObject = IMAGE
743 iconCObject.file.import.data = register : ICON_REL_PATH
744 iconCObject.file.width = 150
745 }
746
747 20.filesize {
748 bytes = 1
749 bytes.labels = {$styles.content.uploads.filesizeBytesLabels}
750 }
751
752 20.stdWrap {
753 editIcons = tt_content: media, layout [table_bgColor|table_border|table_cellspacing|table_cellpadding], filelink_size, imagecaption
754 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.filelist
755
756 prefixComment = 2 | File list:
757 }
758 }
759
760
761 # ******************
762 # CType: multimedia
763 # ******************
764 tt_content.multimedia = COA
765 tt_content.multimedia {
766 10 = < lib.stdheader
767
768 20 = MULTIMEDIA
769 20.file.field = multimedia
770 20.file.wrap = uploads/media/
771 20.file.listNum = 0
772 20.params.field = bodytext
773
774 20.stdWrap {
775 editIcons = tt_content: multimedia, bodytext
776 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.multimedia
777
778 prefixComment = 2 | Multimedia element:
779 }
780 }
781
782
783 # ******************
784 # CType: mailform
785 # ******************
786 tt_content.mailform = COA
787 tt_content.mailform.10 = < lib.stdheader
788 tt_content.mailform.20 = FORM
789 tt_content.mailform.20 {
790 accessibility = 1
791 noWrapAttr=1
792 formName = mailform
793 dontMd5FieldNames = 1
794 layout = <div class="csc-mailform-field">###LABEL### ###FIELD###</div>
795 labelWrap.wrap = |
796 commentWrap.wrap = |
797 radioWrap.wrap = |<br />
798 radioWrap.accessibilityWrap = <fieldset###RADIO_FIELD_ID###><legend>###RADIO_GROUP_LABEL###</legend>|</fieldset>
799 REQ = 1
800 REQ.labelWrap.wrap = |
801 COMMENT.layout = <div class="csc-mailform-label">###LABEL###</div>
802 RADIO.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-radio">###FIELD###</span></div>
803 LABEL.layout = <div class="csc-mailform-field">###LABEL### <span class="csc-mailform-label">###FIELD###</span></div>
804 target = {$styles.content.mailform.target}
805 goodMess = {$styles.content.mailform.goodMess}
806 badMess = {$styles.content.mailform.badMess}
807 redirect.field = pages
808 redirect.listNum = 0
809 recipient.field = subheader
810 data.field = bodytext
811 locationData = 1
812
813 params.radio = class="csc-mailform-radio"
814 params.check = class="csc-mailform-check"
815 params.submit = class="csc-mailform-submit"
816
817 stdWrap.wrap = <fieldset class="csc-mailform"> | </fieldset>
818 stdWrap {
819 editIcons = tt_content: bodytext, pages, subheader
820 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.form
821
822 prefixComment = 2 | Mail form inserted:
823 }
824 }
825
826
827 # ******************
828 # CType: search
829 # ******************
830 tt_content.search = COA
831 tt_content.search.10 = < lib.stdheader
832 # Result:
833 tt_content.search.20 = SEARCHRESULT
834 tt_content.search.20 {
835 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
836 languageField.tt_content = sys_language_uid
837 renderObj = COA
838 renderObj {
839
840 10 = TEXT
841 10.field = pages_title
842 10.htmlSpecialChars = 1
843 10.typolink {
844 parameter.field = uid
845 target = {$styles.content.searchresult.resultTarget}
846 additionalParams.data = register:SWORD_PARAMS
847 additionalParams.required = 1
848 additionalParams.wrap = &no_cache=1
849 }
850 10.htmlSpecialChars = 1
851 10.wrap = <h3 class="csc-searchResultHeader">|</h3>
852
853 20 = COA
854 20 {
855 10 = TEXT
856 10.field = tt_content_bodytext
857 10.stripHtml = 1
858 10.htmlSpecialChars = 1
859 }
860 20.stdWrap.crop = 200 | ...
861 20.stdWrap.wrap = <p class="csc-searchResult">|</p>
862 }
863
864 layout = COA
865 layout {
866 wrap = <table border="0" cellspacing="0" cellpadding="2" class="csc-searchResultInfo"><tr> | </tr></table> ###RESULT###
867
868 10 = TEXT
869 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.resultRange
870 10.wrap = <td class="csc-searchResultRange"><p>|</p></td>
871
872 20 = TEXT
873 20.value = ###PREV###&nbsp;&nbsp;&nbsp;###NEXT###
874 20.wrap = <td class="csc-searchResultPrevNext"><p>|</p></td>
875 }
876
877 noResultObj = COA
878 noResultObj {
879 10 = TEXT
880 10.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.emptySearch
881 10.wrap = <h3 class="csc-noSearchResultMsg">|</h3>
882 }
883
884 next = TEXT
885 next.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultNext
886
887 prev = TEXT
888 prev.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchResultPrev
889
890 target = {$styles.content.searchresult.target}
891 range = 20
892
893 stdWrap.prefixComment = 2 | Search result:
894 }
895
896 # Form:
897 tt_content.search.30 < tt_content.mailform.20
898 tt_content.search.30 {
899 goodMess = {$styles.content.searchform.goodMess}
900 redirect >
901 recipient >
902 data >
903 dataArray {
904 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchWord
905 10.type = sword=input
906 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchIn
907 20.type = scols=select
908 20.valueArray {
909 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.headersKeywords
910 10.value = pages.title-subtitle-keywords-description:tt_content.header
911 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.pageContent
912 20.value = tt_content.header-bodytext-imagecaption
913 }
914 30.type = stype=hidden
915 30.value = L0
916 40.type = submit=submit
917 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:search.searchButton
918 }
919 type.field = pages
920 type.listNum = 0
921 locationData = HTTP_POST_VARS
922 no_cache = 1
923
924 stdWrap.wrap = <table border="0" cellspacing="1" cellpadding="1" class="csc-searchform"> | </table>
925 stdWrap {
926 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.search
927
928 prefixComment = 2 | Search form inserted:
929 }
930 }
931
932
933 # ******************
934 # CType: login
935 # ******************
936 tt_content.login < tt_content.mailform
937 tt_content.login.10 = < lib.stdheader
938 tt_content.login.20 {
939 goodMess = {$styles.content.loginform.goodMess}
940 redirect >
941 recipient >
942 data >
943 dataArray {
944 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
945 10.type = *user=input
946 20.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.password
947 20.type = *pass=password
948 30.type = logintype=hidden
949 30.value = login
950 40.type = submit=submit
951 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.login
952 }
953 type.field = pages
954 type.listNum = 0
955 target = {$styles.content.loginform.target}
956 locationData = 0
957 hiddenFields.pid = TEXT
958 hiddenFields.pid {
959 value = {$styles.content.loginform.pid}
960 override.field = pages
961 override.listNum = 1
962 }
963
964 stdWrap.wrap = <div class="csc-loginform"> | </div>
965 stdWrap {
966 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.login
967
968 prefixComment = 2 | Login/Logout form:
969 }
970 }
971 [loginUser = *]
972 tt_content.login.20 {
973 dataArray >
974 dataArray {
975 10.label.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.username
976 10.label.wrap = |&nbsp;<!--###USERNAME###-->
977 30.type = logintype=hidden
978 30.value = logout
979 40.type = submit=submit
980 40.value.data = LLL:EXT:css_styled_content/pi1/locallang.xml:login.logout
981 }
982 }
983 [global]
984
985
986 # ******************
987 # CType: splash
988 # ******************
989 # Deprecated element.
990 # Still here for backwards compliance with plugins using the "text box" type.
991 tt_content.splash = CASE
992 tt_content.splash.key.field = splash_layout
993 tt_content.splash.stdWrap {
994 prefixComment = 2 | Textbox inserted (Deprecated)
995 }
996 tt_content.splash.default = COA
997 tt_content.splash.default {
998 20 = CTABLE
999 20 {
1000 c.1 = < tt_content.text
1001 lm.1 = IMAGE
1002 lm.1.file {
1003 import = uploads/pics/
1004 import.field = image
1005 import.listNum = 0
1006 maxW.field = imagewidth
1007 maxW.ifEmpty = 200
1008 }
1009 cMargins = 30,0,0,0
1010 }
1011 }
1012 tt_content.splash.1 < tt_content.splash.default
1013 tt_content.splash.1.20.lm.1.file >
1014 tt_content.splash.1.20.lm.1.file = GIFBUILDER
1015 tt_content.splash.1.20.lm.1.file {
1016 XY = [10.w]+10,[10.h]+10
1017 backColor = {$content.splash.bgCol}
1018 backColor.override.data = register:pageColor
1019 format = jpg
1020 5 = BOX
1021 5.dimensions = 3,3,[10.w],[10.h]
1022 5.color = #333333
1023 7 = EFFECT
1024 7.value = blur=99|blur=99|blur=99|blur=99|blur=99|blur=99|blur=99
1025 10 = IMAGE
1026 10.file {
1027 import = uploads/pics/
1028 import.field = image
1029 import.listNum = 0
1030 maxW.field = imagewidth
1031 maxW.ifEmpty = 200
1032 }
1033 }
1034 // The image frames are not available unless TypoScript code from styles.content.imgFrames.x is provided manually:
1035 tt_content.splash.2 < tt_content.splash.default
1036 #tt_content.splash.2.20.lm.1.file.m < styles.content.imgFrames.1
1037 tt_content.splash.3 < tt_content.splash.default
1038 #tt_content.splash.3.20.lm.1.file.m < styles.content.imgFrames.2
1039
1040 // From plugin.postit1, if included:
1041 tt_content.splash.20 = < plugin.postit1
1042
1043
1044
1045 # ****************
1046 # CType: menu
1047 # ****************
1048 tt_content.menu = COA
1049 tt_content.menu {
1050 10 = < lib.stdheader
1051
1052 20 = CASE
1053 20 {
1054 key.field = menu_type
1055
1056 # "Menu of these pages"
1057 default = HMENU
1058 default {
1059 special = list
1060 special.value.field = pages
1061 wrap = <ul class="csc-menu csc-menu-def">|</ul>
1062 1 = TMENU
1063 1 {
1064 target = {$PAGE_TARGET}
1065 NO.wrapItemAndSub = <li>|</li>
1066 NO.ATagTitle.field = description // title
1067 }
1068 }
1069
1070 # "Menu of subpages to these pages"
1071 1 < .default
1072 1 {
1073 special = directory
1074 wrap = <ul class="csc-menu csc-menu-1">|</ul>
1075 }
1076
1077 # "Sitemap - liststyle"
1078 2 = HMENU
1079 2 {
1080 wrap = <div class="csc-sitemap">|</div>
1081 1 = TMENU
1082 1 {
1083 target = {$PAGE_TARGET}
1084 noBlur = 1
1085 expAll = 1
1086 wrap = <ul>|</ul>
1087 NO {
1088 stdWrap.htmlSpecialChars = 1
1089 wrapItemAndSub = <li>|</li>
1090 ATagTitle.field = description // title
1091 }
1092 }
1093 2 < .1
1094 3 < .1
1095 4 < .1
1096 5 < .1
1097 6 < .1
1098 7 < .1
1099 }
1100
1101 # "Section index (pagecontent w/Index checked - liststyle)"
1102 3 < styles.content.get
1103 3 {
1104 wrap = <ul class="csc-menu csc-menu-3">|</ul>
1105 select.andWhere = sectionIndex!=0
1106 select.pidInList.override.field = pages
1107 renderObj = TEXT
1108 renderObj {
1109 fieldRequired = header
1110 trim = 1
1111 field = header
1112 htmlSpecialChars = 1
1113 noBlur = 1
1114 wrap = <li class="csc-section">|</li>
1115 typolink.parameter.field = pid
1116 typolink.section.field = uid
1117 }
1118 }
1119
1120 # "Menu of subpages to these pages (with abstract)"
1121 4 < .1
1122 4 {
1123 wrap = <dl class="csc-menu csc-menu-4">|</dl>
1124 1.NO {
1125 wrapItemAndSub >
1126 linkWrap = <dt>|</dt>
1127 after {
1128 data = field : abstract // field : description // field : subtitle
1129 required = 1
1130 htmlSpecialChars = 1
1131 wrap = <dd>|</dd>
1132 }
1133 ATagTitle.field = description // title
1134 }
1135 }
1136
1137 # "Recently updated pages"
1138 5 < .default
1139 5 {
1140 wrap = <ul class="csc-menu csc-menu-5">|</ul>
1141 special = updated
1142 special {
1143 maxAge = 3600*24*7
1144 excludeNoSearchPages = 1
1145 }
1146 }
1147
1148 # "Related pages (based on keywords)"
1149 6 < .default
1150 6 {
1151 wrap = <ul class="csc-menu csc-menu-6">|</ul>
1152 special = keywords
1153 special {
1154 excludeNoSearchPages = 1
1155 }
1156 }
1157
1158 # "Menu of subpages to these pages + sections - liststyle"
1159 7 < .1
1160 7 {
1161 wrap = <ul class="csc-menu csc-menu-7">|</ul>
1162 1.expAll = 1
1163 2 < .1
1164 2 {
1165 sectionIndex = 1
1166 sectionIndex.type = header
1167 wrap = <ul>|</ul>
1168 NO.wrapItemAndSub = <li class="csc-section">|</li>
1169 }
1170 }
1171 }
1172
1173 20.stdWrap {
1174 editIcons = tt_content: menu_type, pages
1175 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.menuSitemap
1176
1177 prefixComment = 2 | Menu/Sitemap element:
1178 }
1179 }
1180
1181
1182
1183 # ****************
1184 # CType: shortcut
1185 # ****************
1186 # Should be a complete copy from the old static template "content (default)"
1187 tt_content.shortcut = COA
1188 tt_content.shortcut {
1189 20 = CASE
1190 20.key.field = layout
1191 20.0= RECORDS
1192 20.0 {
1193 source.field = records
1194 tables = {$content.shortcut.tables}
1195 # THESE are OLD plugins. Modern plugins registers themselves automatically!
1196 conf.tt_content = < tt_content
1197 conf.tt_address = < tt_address
1198 conf.tt_links = < tt_links
1199 conf.tt_guest = < tt_guest
1200 conf.tt_board = < tt_board
1201 conf.tt_calender = < tt_calender
1202 conf.tt_rating < tt_rating
1203 conf.tt_products = < tt_products
1204 conf.tt_news = < tt_news
1205 conf.tt_poll = < plugin.tt_poll
1206 }
1207 20.1= RECORDS
1208 20.1 {
1209 source.field = records
1210 tables = {$content.shortcut.tables}
1211 conf.tt_poll = < plugin.tt_poll
1212 conf.tt_poll.code = RESULT,SUBMITTEDVOTE
1213 }
1214
1215 20.stdWrap {
1216 editIcons = tt_content: records
1217 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.recordList
1218
1219 prefixComment = 2 | Inclusion of other records (by reference):
1220 }
1221 }
1222
1223
1224 # ****************
1225 # CType: list
1226 # ****************
1227 # Should be a complete copy from the old static template "content (default)" (except "lib.stdheader")
1228 tt_content.list = COA
1229 tt_content.list {
1230 10 = < lib.stdheader
1231
1232 20 = CASE
1233 20.key.field = list_type
1234 20 {
1235 # LIST element references (NOT copy of objects!)
1236 # THESE are OLD plugins. Modern plugins registers themselves automatically!
1237 3 = CASE
1238 3.key.field = layout
1239 3.0 = < plugin.tt_guest
1240
1241 4 = CASE
1242 4.key.field = layout
1243 4.0 = < plugin.tt_board_list
1244 4.1 = < plugin.tt_board_tree
1245
1246 2 = CASE
1247 2.key.field = layout
1248 2.0 = < plugin.tt_board_tree
1249
1250 5 = CASE
1251 5.key.field = layout
1252 5.0 = < plugin.tt_products
1253
1254 7 = CASE
1255 7.key.field = layout
1256 7.0 = < plugin.tt_calender
1257
1258 8 = CASE
1259 8.key.field = layout
1260 8.0 = < plugin.tt_rating
1261
1262 9 = CASE
1263 9.key.field = layout
1264 9.0 = < plugin.tt_news
1265
1266 11 = CASE
1267 11.key.field = layout
1268 11.0 = < plugin.tipafriend
1269
1270 20 = CASE
1271 20.key.field = layout
1272 20.0 = < plugin.feadmin.fe_users
1273
1274 21 = CASE
1275 21.key.field = layout
1276 21.0 = < plugin.feadmin.dmailsubscription
1277 }
1278
1279 20.stdWrap {
1280 editIcons = tt_content: list_type, layout, select_key, pages [recursive]
1281 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.plugin
1282
1283 prefixComment = 2 | Plugin inserted:
1284 }
1285 }
1286
1287
1288 # ****************
1289 # CType: script
1290 # ****************
1291 # 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.
1292 tt_content.script = TEXT
1293 tt_content.script {
1294 value =
1295
1296 prefixComment = 2 | Script element (Deprecated)
1297 }
1298
1299
1300 # ****************
1301 # CType: div
1302 # ****************
1303 tt_content.div = TEXT
1304 tt_content.div {
1305 value =
1306 prefixComment = 2 | Div element
1307 }
1308
1309
1310 # ****************
1311 # CType: html
1312 # ****************
1313 # This truely IS a content object, launched from inside the PHP class of course.
1314 # Should be a complete copy from the old static template "content (default)"
1315 tt_content.html = TEXT
1316 tt_content.html {
1317 field = bodytext
1318
1319 editIcons = tt_content: pages
1320 editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.html
1321
1322 prefixComment = 2 | Raw HTML content:
1323 }
1324
1325
1326 # ****************
1327 # Default error msg:
1328 # ****************
1329 tt_content.default = TEXT
1330 tt_content.default {
1331 field = CType
1332 wrap = <p style="background-color: yellow;"><b>ERROR:</b> Content Element type "|" has no rendering definition!</p>
1333
1334 prefixComment = 2 | Unknown element message:
1335 }
1336
1337 # *********************************************************************
1338 # ACCESSIBILTY MODE
1339 # *********************************************************************
1340
1341
1342
1343
1344
1345
1346
1347 plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE (
1348 /* Captions */
1349 DIV.csc-textpic-caption-c .csc-textpic-caption { text-align: center; }
1350 DIV.csc-textpic-caption-r .csc-textpic-caption { text-align: right; }
1351 DIV.csc-textpic-caption-l .csc-textpic-caption { text-align: left; }
1352
1353 /* Needed for noRows setting */
1354 DIV.csc-textpic DIV.csc-textpic-imagecolumn { float: left; display: inline; }
1355
1356 /* Border just around the image */
1357 {$styles.content.imgtext.borderSelector} {
1358 border: {$styles.content.imgtext.borderThick}px solid {$styles.content.imgtext.borderColor};
1359 padding: {$styles.content.imgtext.borderSpace}px {$styles.content.imgtext.borderSpace}px;
1360 }
1361
1362 DIV.csc-textpic-imagewrap { padding: 0; }
1363
1364 DIV.csc-textpic IMG { border: none; }
1365
1366 /* DIV: This will place the images side by side */
1367 DIV.csc-textpic DIV.csc-textpic-imagewrap DIV.csc-textpic-image { float: left; }
1368
1369 /* UL: This will place the images side by side */
1370 DIV.csc-textpic DIV.csc-textpic-imagewrap UL { list-style: none; margin: 0; padding: 0; }
1371 DIV.csc-textpic DIV.csc-textpic-imagewrap UL LI { float: left; margin: 0; padding: 0; }
1372
1373 /* DL: This will place the images side by side */
1374 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image { float: left; }
1375 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DT { float: none; }
1376 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD { float: none; }
1377 DIV.csc-textpic DIV.csc-textpic-imagewrap DL.csc-textpic-image DD IMG { border: none; } /* FE-Editing Icons */
1378 DL.csc-textpic-image { margin: 0; }
1379 DL.csc-textpic-image DT { margin: 0; display: inline; }
1380 DL.csc-textpic-image DD { margin: 0; }
1381
1382 /* Clearer */
1383 DIV.csc-textpic-clear { clear: both; }
1384
1385 /* Margins around images: */
1386
1387 /* Pictures on left, add margin on right */
1388 DIV.csc-textpic-left DIV.csc-textpic-imagewrap .csc-textpic-image,
1389 DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
1390 DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap .csc-textpic-image {
1391 display: inline; /* IE fix for double-margin bug */
1392 margin-right: {$styles.content.imgtext.colSpace}px;
1393 }
1394
1395 /* Pictures on right, add margin on left */
1396 DIV.csc-textpic-right DIV.csc-textpic-imagewrap .csc-textpic-image,
1397 DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap .csc-textpic-image,
1398 DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap .csc-textpic-image {
1399 display: inline; /* IE fix for double-margin bug */
1400 margin-left: {$styles.content.imgtext.colSpace}px;
1401 }
1402
1403 /* Pictures centered, add margin on left */
1404 DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image {
1405 display: inline; /* IE fix for double-margin bug */
1406 margin-left: {$styles.content.imgtext.colSpace}px;
1407 }
1408 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image .csc-textpic-caption { margin: 0; }
1409 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image IMG { margin: 0; }
1410
1411 /* Space below each image (also in-between rows) */
1412 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-image { margin-bottom: {$styles.content.imgtext.rowSpace}px; }
1413 DIV.csc-textpic-equalheight DIV.csc-textpic-imagerow { margin-bottom: {$styles.content.imgtext.rowSpace}px; display: block; }
1414 DIV.csc-textpic DIV.csc-textpic-imagerow { clear: both; }
1415
1416 /* No margins around the whole image-block */
1417 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-firstcol { margin-left: 0px !important; }
1418 DIV.csc-textpic DIV.csc-textpic-imagewrap .csc-textpic-lastcol { margin-right: 0px !important; }
1419
1420 /* Add margin from image-block to text (in case of "Text w/ images") */
1421 DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap,
1422 DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap {
1423 margin-right: {$styles.content.imgtext.textMargin}px !important;
1424 }
1425 DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap,
1426 DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap {
1427 margin-left: {$styles.content.imgtext.textMargin}px !important;
1428 }
1429
1430 /* Positioning of images: */
1431
1432 /* Above */
1433 DIV.csc-textpic-above DIV.csc-textpic-text { clear: both; }
1434
1435 /* Center (above or below) */
1436 DIV.csc-textpic-center { text-align: center; /* IE-hack */ }
1437 DIV.csc-textpic-center DIV.csc-textpic-imagewrap { margin: 0 auto; }
1438 DIV.csc-textpic-center DIV.csc-textpic-imagewrap .csc-textpic-image { text-align: left; /* Remove IE-hack */ }
1439 DIV.csc-textpic-center DIV.csc-textpic-text { text-align: left; /* Remove IE-hack */ }
1440
1441 /* Right (above or below) */
1442 DIV.csc-textpic-right DIV.csc-textpic-imagewrap { float: right; }
1443 DIV.csc-textpic-right DIV.csc-textpic-text { clear: right; }
1444
1445 /* Left (above or below) */
1446 DIV.csc-textpic-left DIV.csc-textpic-imagewrap { float: left; }
1447 DIV.csc-textpic-left DIV.csc-textpic-text { clear: left; }
1448
1449 /* Left (in text) */
1450 DIV.csc-textpic-intext-left DIV.csc-textpic-imagewrap { float: left; }
1451
1452 /* Right (in text) */
1453 DIV.csc-textpic-intext-right DIV.csc-textpic-imagewrap { float: right; }
1454
1455 /* Right (in text, no wrap around) */
1456 DIV.csc-textpic-intext-right-nowrap DIV.csc-textpic-imagewrap { float: right; clear: both; }
1457 /* Hide from IE5-mac. Only IE-win sees this. \*/
1458 * html DIV.csc-textpic-intext-right-nowrap .csc-textpic-text { height: 1%; }
1459 /* End hide from IE5/mac */
1460
1461 /* Left (in text, no wrap around) */
1462 DIV.csc-textpic-intext-left-nowrap DIV.csc-textpic-imagewrap { float: left; clear: both; }
1463 /* Hide from IE5-mac. Only IE-win sees this. \*/
1464 * html DIV.csc-textpic-intext-left-nowrap .csc-textpic-text { height: 1%; }
1465 /* End hide from IE5/mac */
1466
1467 DIV.csc-textpic DIV.csc-textpic-imagerow-last { margin-bottom: 0; }
1468
1469 /* Browser fixes: */
1470
1471 /* Fix for unordered and ordered list with image "In text, left" */
1472 .csc-textpic-intext-left ol, .csc-textpic-intext-left ul {padding-left: 40px; overflow: auto; height: 1%; }
1473 )
1474
1475