Zum Inhalt springen

.XML Daten anzeigen.

Erstellt am 11. August 2011 · 4 Antworten · letzte Antwort am 19. August 2011

Tags: Frage

marlohse ·

Also ich versuche eine recht simple .XML Datei die:
- alle 4 Stunden generiert wird
- direkt auf dem Server gespeichert wird
auszuwerten und direkt in Tabellenform darzustellen

In diese Richtung habe ich ein HowTo für RSS Feeds gefunden und habe versucht, dies auf meine Bedürfnisse anzupassen.

Im Backend habe ich nun ein neues Template angelegt, dort unter constants:

# rss template einbinden
<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/REPORTS/template.ts">
# rss feed erstellen

rss200 = PAGE
rss200 {
  typeNum = 200
  config {
    # keine header daten aus TYPO3
    disableAllHeaderCode = 1
    # type und charset anpassen
    additionalHeaders = Content-type:text/xml;charset=utf-8
    # nicht zwingend noetig...
    linkVars = L,debug
    # seite darf nicht gecacht werden
    no_cache = 1
    # cleaning deaktivieren
    xhtml_cleaning = 0
    # kein adminpanel anzeigen
    admPanel = 1
  }
  # template einbinden
  10 < temp.rssTemplate
}

Die template.ts sieht wie folgt aus:

# rss template erstellen

temp.rssTemplate = COA
temp.rssTemplate {

  1 = LOAD_REGISTER
  1 {
  # config
    # type, welche auf URL passt : index.php?type=200
    type = 200
    # hier die ID von Seite angeben, bei welcher das Content Element zu finden ist
    pageid = 75 ( <= zahl angeben )
    # hier die ID von Content Element angeben
    contentid = 192 ( <= zahl angeben )
    title = Titel des RSS Feeds
    description = Beschreibung zum RSS Feed
    copyright = copyright angaben
    # sprache festlegen
    language = de
    # icon angaben
    image_width = 128
    image_height = 128
    image_description = Beschreibung zum RSS Feed
    image_url = fileadmin/REPORTS/ico_rss.png
    # default wert, wenn es nicht bei den eigenschaften der seite (item) hinterlegt ist
    item_author = author
    item_author_email = author@example.ch
  }
  10 = TEMPLATE
  10 {
    # template einbinden
    template = FILE
    template.file = fileadmin/REPORTS/rss.xml
    marks {
      RSS_title = TEXT
      RSS_title.data = register:title
      RSS_description = TEXT
      RSS_description.data = register:description
      RSS_link = TEXT
      RSS_link.value = {getIndpEnv:TYPO3_SITE_URL}index.php?type={register:type}
      RSS_link.insertData = 1
      RSS_copyright = TEXT
      RSS_copyright.data = register:copyright
      RSS_language = TEXT
      RSS_language.data = register:language
      RSS_image_url = TEXT
      RSS_image_url.value = {getIndpEnv:TYPO3_SITE_URL}{register:image_url}
      RSS_image_url.insertData = 1
      RSS_image_link = TEXT
      RSS_image_link.value = {getIndpEnv:TYPO3_SITE_URL}index.php?type={register:type}
      RSS_image_link.insertData = 1
      RSS_image_width = TEXT
      RSS_image_width.data = register:image_width
      RSS_image_height = TEXT
      RSS_image_height.data = register:image_height
      RSS_image_description = TEXT
      RSS_image_description.data = register:image_description
      RSS_pubDate = TEXT
      RSS_pubDate {
        data = register:SYS_LASTCHANGED
        date = r
      }
      RSS_lastBuildDate = TEXT
      RSS_lastBuildDate {
        data = register:SYS_LASTCHANGED
        date = r
      }
      RSS_ITEMS = COA
      RSS_ITEMS {

        1 = LOAD_REGISTER
        1 {
          # auslesen den Content Elements (Menü dieser Seiten)
          pages.cObject = CONTENT
          pages.cObject {
            table = tt_content
            select {
              pidInList.dataWrap = {register:pageid}
              where.dataWrap = uid= {register:contentid}
              languageField = sys_language_uid
              insertData = 1

            }

            renderObj = TEXT
            renderObj {
              field = pages
            }
          }
        }

        # zum erstellen der ITEMS wird ein HMENU verwendet
        10 = HMENU

        10 {
          special = list
          special.value.data = register:pages
          wrap = |

          1 = TMENU

          1 {
            target = {$PAGE_TARGET}
            noBlur = 1
            NO {

              doNotLinkIt = 1
              doNotShowLink = 1

              stdWrap2 {

                # diverese informationen aufbereiten

                cObject = COA
                cObject {

                  1 = LOAD_REGISTER

                  1 {

                    title {
                      field = title
                      htmlSpecialChars = 1
                    }

                    subtitle {
                      field = subtitle
                      noTrimWrap = | : | |
                      required = 1
                      htmlSpecialChars = 1
                    }

                    link_and_guid {
                      typolink {
                        parameter.field = uid
                        returnLast = url
                      }
                      wrap = {getIndpEnv:TYPO3_SITE_URL}|
                      insertData = 1
                    }

                    guid.cObject = TEXT
                    guid.cObject {
                      value = {getIndpEnv:TYPO3_SITE_URL}index.php?id={field:uid}
                      insertData = 1
                    }

                    page_author_email {

                      data = field:author_email // register:item_author_email
                    }
                  }

                  10 = TEXT

                  10 {
                    data = field:abstract // field:description
                    wrap = <description><![CDATA[|]]></description>
                    required = 1
                    htmlSpecialChars = 1
                    # output kosmetik
                    prepend = TEXT
                    prepend.char = 10
                    append = TEXT
                    append.char = 10

                  }

                  15 = TEXT
                  15 {
                    data = field:author // register:item_author
                    wrap = <author>{register:page_author_email} (|)</author>
                    insertData = 1
                    required = 1
                    # output kosmetik
                    append = TEXT
                    append.char = 10
                  }
                  40 = TEXT
                  40 {
                    wrap = <pubDate>|</pubDate>
                    data = field:lastUpdated // field:tstamp // field:crdate
                    date = r
                    # output kosmetik
                    append = TEXT
                    append.char = 10
                  }
                }
              }
              allWrap (
              <item>
                <title>{register:title}{register:subtitle}</title>
                <link>{register:link_and_guid}</link>
                <guid>{register:guid}</guid>
                |
              </item>
              )
              allWrap.insertData = 1
            }
          }
        }
      }
    }
  }
}

Die IDs:

- /TEST [75]
- Seiteninhalt [192]

Die RSS Datei (Während meiner Testphase ist es noch das Original aus dem Tutorial):

<rss version="2.0"><channel><atom:link href="###RSS_link###" rel="self" type="application/rss+xml"/><title>###RSS_title###</title><link>###RSS_link###</link><description>###RSS_description###</description><copyright>###RSS_copyright###</copyright><language>###RSS_language###</language><image><title>###RSS_title###</title><url>###RSS_image_url###</url><link>###RSS_image_link###</link><width>###RSS_image_width###</width><height>###RSS_image_height###</height><description>###RSS_image_description###</description></image><docs>http://blogs.law.harvard.edu/tech/rss</docs><pubDate>###RSS_pubDate###</pubDate><lastBuildDate>###RSS_lastBuildDate###</lastBuildDate>
    ###RSS_ITEMS###
  </channel></rss>

...aber auf meine Seite wird rein gar nichts angezeigt.

Kann mir jemand bei der Suche des Problems bitte helfen #angry#

marlohse ·

hmmm...
- zu schwer?
- zu leicht?
- oder ist es einer dieser "Schonmal die Suchfunktion im Forum versucht?" Lösung?