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#