[TYPO3-english] Tips/hints for debugging

Robert Wildling rowild at gmx.net
Mon May 12 17:11:37 CEST 2014


Hi,

When updating from TYPO3 4.5.17 to 4.5.18, a Typoscript that reads 
tt_news entries from 2 SysFolders and outputs them as XML (pageType 
123), suddenly only outputs the first element only.

I am trying to debug, but do so in a manner of trial&error. Do you have 
any hints how I could focus? EG what's the place to look for the XML 
page type renderer?

Thanks!
Robert

This is my TS:
(In case somebody wonders why a new XML with tt_news: it is needed for a 
Screen Info, where the software on the other side needs the 
enclosure-tag...)

xmlPage = PAGE
xmlPage {
   typeNum = 123

   config {
     disableAllHeaderCode = 1
     additionalHeaders = Content-type:text/xml
     xhtml_cleaning = 0
     metaCharset = utf-8
     absRefPrefix = {$absRefPrefix}
     baseURL >
     language = {$language}
     locale_all = {$locale_all}
   }

   10 = TEXT
   10.value = <?xml version="1.0" encoding="utf-8" standalone="yes" ?>

   #selectFields = tt_news_cat.title AS cat_title
   #selectFields = 
tt_news.title,tt_news.category,tt_news.image,tt_news.short,tt_news.bodytext,tt_news.datetime,tt_news.author,tt_news.author_email,tt_news_cat.title 
AS cat_title

   20 = COA
   20 {
     10 = CONTENT
     10.stdWrap.dataWrap = <root>|</root>
     10 {
       table = tt_news
       select {
         selectFields = *,tt_news.title AS news_title,tt_news_cat.title 
AS cat_title,tt_news.image AS news_image, tt_news_cat.image AS cat_image
         pidInList = {$pidInList}
         orderBy = tt_news.datetime DESC
         leftjoin = tt_news_cat_mm ON 
(tt_news.uid=tt_news_cat_mm.uid_local) LEFT JOIN tt_news_cat ON 
(tt_news_cat_mm.uid_foreign = tt_news_cat.uid)
         max = {$maxNewsItems}
       }

       renderObj = COA
       renderObj {

         ### OPEN ITEM NODE (this is NOT the root tag of the XML file, 
but the one that wraps ONE news entry!) ###

         1 = TEXT
         1.value = <item>


         ### CATEGORY & CATEGORY IMAGE ###

         2 = TEXT
         2.value = <category>

         3 = TEXT
         3.field = cat_title
         3.wrap = <title>|</title>

         4 = TEXT
         4.value = <image>

         6 = TEXT
         6.field = cat_image
         6.split {
           token = ,
           cObjNum = 1

           1 = COA
           1 {
             10 = IMG_RESOURCE
             10.file {
               import.current = 1
               import = uploads/pics/
             }
             10.stdWrap.dataWrap = <enclosure url="{$mainUrl}|" 
length="" type="image/{TSFE:lastImgResourceInfo|2}"></enclosure>

             30 = TEXT
             30.data = TSFE:lastImgResourceInfo|0
             30.wrap = <width>|</width>

             40 = TEXT
             40.data = TSFE:lastImgResourceInfo|1
             40.wrap = <height>|</height>

             45 = TEXT
             45.data = TSFE:lastImgResourceInfo|2
             45.wrap = <type>|</type>

             50 = TEXT
             50.data = TSFE:lastImgResourceInfo|3
             50.wrap = <path>|</path>

             60 = TEXT
             60.if.isLessThan.data = TSFE:lastImgResourceInfo|0
             60.if.value.data = TSFE:lastImgResourceInfo|1
             60.value = portrait
             60.wrap = <format>|</format>

             61 = TEXT
             61.if.isLessThan.data = TSFE:lastImgResourceInfo|1
             61.if.value.data = TSFE:lastImgResourceInfo|0
             61.value = landscape
             61.wrap = <format>|</format>
           }
         }

         7 = TEXT
         7.value = </image>

         8 = TEXT
         8.value = </category>



         ### THE VARIOUS TEXT FIELDS: TITLE, SHORT, BODYTEXT ###

         10 = TEXT
         10.field = news_title
         10.wrap = <title><![CDATA[|]]></title>

         11 = TEXT
         11 {
           field = short
           stripHtml = 1
           htmlSpecialChars = 1
           htmlSpecialChars.preserveEntities = 1
           crop >
           wrap = <short><![CDATA[|]]></short>
         }

         12 = TEXT
         12 {
           field = bodytext
           stripHtml = 0
           htmlSpecialChars = 0
           htmlSpecialChars.preserveEntities = 0
           wrap = <bodytext><![CDATA[|]]></bodytext>
         }

         13 = TEXT
         13 {
           field = keywords
           wrap = <keywords>|</keywords>
         }

         ### IMAGES ###

         19 = TEXT
         19.value = <images>

         20 = TEXT
         20.field = news_image
         20.split {
           token = ,
           cObjNum = 1

           1 = COA
           1 {
             stdWrap.wrap = <image>|</image>

             10 = IMG_RESOURCE
             10.file {
               import.current = 1
               import = uploads/pics/
             }
             #10.stdWrap.wrap = <source>physik.univie.ac.at/|</source>
             10.stdWrap.dataWrap = <enclosure url="{$mainUrl}|" 
length="123123123" type="image/{TSFE:lastImgResourceInfo|2}"></enclosure>


             20 = TEXT
             20 {
               field = imagecaption
               # split saves the index in REGISTER:SPLIT_COUNT
               listNum.stdWrap.data = REGISTER:SPLIT_COUNT
               listNum.splitChar = 10
               wrap = <caption>|</caption>
             }

             21 = TEXT
             21 {
               field = imagecaption
               # split saves the index in REGISTER:SPLIT_COUNT
               listNum.stdWrap.data = REGISTER:SPLIT_COUNT
               listNum.splitChar = 10
               wrap = <imagealttext>|</imagealttext>
             }

             22 = TEXT
             22 {
               field = imagecaption
               # split saves the index in REGISTER:SPLIT_COUNT
               listNum.stdWrap.data = REGISTER:SPLIT_COUNT
               listNum.splitChar = 10
               wrap = <imagetitletext>|</imagetitletext>
             }

             30 = TEXT
             30.data = TSFE:lastImgResourceInfo|0
             30.wrap = <width>|</width>

             40 = TEXT
             40.data = TSFE:lastImgResourceInfo|1
             40.wrap = <height>|</height>

             45 = TEXT
             45.data = TSFE:lastImgResourceInfo|2
             45.wrap = <type>|</type>

             50 = TEXT
             50.data = TSFE:lastImgResourceInfo|3
             50.wrap = <path>|</path>

             60 = TEXT
             60.if.isLessThan.data = TSFE:lastImgResourceInfo|0
             60.if.value.data = TSFE:lastImgResourceInfo|1
             60.value = portrait
             60.wrap = <format>|</format>

             61 = TEXT
             61.if.isLessThan.data = TSFE:lastImgResourceInfo|1
             61.if.value.data = TSFE:lastImgResourceInfo|0
             61.value = landscape
             61.wrap = <format>|</format>
           }
         }

         21 = TEXT
         21.value = </images>



         # Images aus Dateien-Feld (Sonderwunsch der Physik: es werden 
nur Images in dieses Feld geladen)

         22 = TEXT
         22.value = <images_from_news_files>

         23 = TEXT
         23.field = news_files
         23.split {
           token = ,
           cObjNum = 1

           1 = COA
           1 {
             stdWrap.wrap = <image>|</image>

             10 = IMG_RESOURCE
             10.file {
               import.current = 1
               import = uploads/media/
             }
             10.stdWrap.dataWrap = <enclosure url="{$mainUrl}|" 
length="123123123" type="image/{TSFE:lastImgResourceInfo|2}"></enclosure>

             30 = TEXT
             30.data = TSFE:lastImgResourceInfo|0
             30.wrap = <width>|</width>

             40 = TEXT
             40.data = TSFE:lastImgResourceInfo|1
             40.wrap = <height>|</height>

             45 = TEXT
             45.data = TSFE:lastImgResourceInfo|2
             45.wrap = <type>|</type>

             50 = TEXT
             50.data = TSFE:lastImgResourceInfo|3
             50.wrap = <path>|</path>

             60 = TEXT
             60.if.isLessThan.data = TSFE:lastImgResourceInfo|0
             60.if.value.data = TSFE:lastImgResourceInfo|1
             60.value = portrait
             60.wrap = <format>|</format>

             61 = TEXT
             61.if.isLessThan.data = TSFE:lastImgResourceInfo|1
             61.if.value.data = TSFE:lastImgResourceInfo|0
             61.value = landscape
             61.wrap = <format>|</format>
           }
         }

         24 = TEXT
         24.value = </images_from_news_files>


         ### DATE, TIME, DAY, MONTH, AGE ###

         25 = TEXT
         25.value = <datetime>

         26 = TEXT
         26.field = datetime
         26.strftime = %B
         26.wrap = <month>|</month>

         27 = TEXT
         27.field = datetime
         27.strftime = %A
         27.wrap = <day>|</day>

         28 = TEXT
         28.field = datetime
         28.date = d.m.Y
         28.wrap = <date>|</date>

         29 = TEXT
         29.field = datetime
         29.date = H:i
         29.wrap = <time>|</time>



         30 = TEXT
         30.value = <datetime_single_values>

         32 = TEXT
         32.field = datetime
         32.date = d
         32.wrap = <single_day>|</single_day>

         33 = TEXT
         33.field = datetime
         33.date = m
         33.wrap = <single_month>|</single_month>

         34 = TEXT
         34.field = datetime
         34.date = y
         34.wrap = <single_year>|</single_year>

         35 = TEXT
         35.field = datetime
         35.date = H
         35.wrap = <single_hour>|</single_hour>

         36 = TEXT
         36.field = datetime
         36.date = i
         36.wrap = <single_minute>|</single_minute>

         37 = TEXT
         37.value = </datetime_single_values>

         38 = TEXT
         38.field = datetime
         38.age = " Minuten | Stunden | Tage | Jahre | Minute | Stunde | 
Tag | Jahr"
         38.wrap = <age>|</age>



         39 = TEXT
         39.value = </datetime>

         40 = TEXT
         40.field = author
         40.wrap = <author>|</author>
         #40.required = 1

         50 = TEXT
         50.field = author_email
         50.wrap = <author_email>|</author_email>
         #50.required = 1


         ### RELATED NEWS ###

         60 = COA
         60 {
           10 = CONTENT
           10 {
             table = tt_news
             select {
               pidInList = {$pidInList}
               #uidInList.field = uid
               leftjoin = tt_news_related_mm ON 
tt_news.uid=tt_news_related_mm.uid_foreign AND tablenames='tt_news'
               andWhere.dataWrap = 
tt_news.uid=tt_news_related_mm.uid_foreign AND 
tt_news_related_mm.uid_local = {field:uid}
               orderBy = tt_news.datetime DESC
               # Max. Anzahl an verwandten Beiträgen
               max = 5
             }
             renderObj = COA
             renderObj {
               10 = TEXT
               10.field = title
               10.dataWrap = <header 
url="{$mainUrl}index.php?id={field:uid}">|</header>

               wrap = <newsitem>|</newsitem>
             }

           }

           wrap = <related>|</related>
         }



         # CLOSE ITEM TAG (this is NOT the root tag of the XML file!)

         9999 = TEXT
         9999.value = </item>
       }
     }
   }
}


More information about the TYPO3-english mailing list