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