Hallo,
ich steh momentan auf dem Schlauch. Ich verwende für dieses Projekt Templavoila, wobei ich denke das es damit nichts mehr zu tun hat.
Vielleicht liegts auch am neuen TYPO 4.4.
Ich möchte via Plugin einen RSS-Feed erzeugen. Funktioniert, bis auf das der Inhalt noch mit DIVs umzogen ist:
<div id="c449" class="csc-default" ><h1>Aktuelles RSS</h1>
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
...
Mein TYPOSCRIPT:
RSSpage = PAGE
RSSpage {
typeNum = 888
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
disablePrefixComment = 1
language = de
locale_all = de_DE
linkVars = L
sys_language_uid = 0
sys_language_mode = strict
sys_language_overlay = hideNonTranslated
}
30 = COA
30 {
10 = CONTENT
10.table = tt_content
10.select {
where = uid = 449
pidInList = 46
}
}
}
Denke auch das TV hiermit nicht zu tun hat
Für dein Problem gibt es mehrere Alternativen
Du kannst mittels stdWrap.stripHtml = 1 auf das CONTENT Objekt auch komplett die Inhalte von HTML befreien
Eine andere Alterantive ist mit CDATA Blöcken zu arbeiten tust innerhalb der Wraps.
Ich hab unten mal ein Beispiel von einer meiner Projekte dran gehängt wo es drum ging eine RSS Feed Ansicht einer Extension zu generiern.
Damit wird es denk ich transparenter
xml = PAGE
xml.typeNum = 0
xml {
config {
disableCharsetHeader = 1
disableAllHeaderCode = 1
admPanel = 0
additionalHeaders = Content-Type: application/xml; charset=UTF-8
doctype = none
}
stdWrap.wrap3 (
<?xml version="1.0" encoding="UTF-8"?>|
)
stdWrap.wrap2 (
<rss version="2.0">
<channel>
|
</channel>
</rss>
)
10 = CONTENT
10.table = tx_julleevents_events
10.select {
pidInList = {$plugin.tx_julleevents_pi1.dataStorage}
where = uid > 0
orderBy = date ASC
andWhere {
data = date:U
wrap = tx_julleevents_events.date > |
}
}
10.stdWrap.prepend = COA
10.stdWrap.prepend {
10 = TEXT
10.value (
<title>{$plugin.tx_julleevents_pi1.rssTitle}</title>
<link>{$plugin.tx_julleevents_pi1.rssSiteLink}</link>
<description>Wir bieten ihnen exklusiv auch unser Veranstaltungsprogramm als RSS Feed an</description>
<language>de</language>
)
10.postCObject = TEXT
10.postCObject.data = date: d. m. Y
10.postCObject.wrap (
<pubDate>|</pubDate>
)
10.insertData = 1
}
10.renderObj = COA
10.renderObj {
5 = LOAD_REGISTER
5 {
desc.cObject = TEXT
desc.cObject.field = teaser
desc.cObject.HTMLparser = 1
desc.cObject.HTMLparser {
keepNonMatchedTags = 1
allowTags = *
removeTags = font, br
tags {
h2.remap = h3
}
}
desc.cObject.wrap = <![CDATA[<blockquote>|</blockquote><hr>]]>
datum.cObject = TEXT
datum.cObject.field = date
datum.cObject.date = d. m. Y
title.cObject = TEXT
title.cObject.field = title
title.cObject.htmlSpecialChars = 1
}
10 = TEXT
10.dataWrap (
<item>
<title>
{register:datum} : {register:title}
</title>
<description>
{register:desc}
</description>
</item>
)
}
}
Puhh...nicht das ich deine Antwort nicht zu schätz weis, aber das ist schon ziemlich komplex wenn man es selbst nicht gebaut hat 😉 das auf meine Extension umzumodeln.
Wenn ich dem Ziel nicht schon so nahe wäre, würde ich das probieren.
Es geht lediglich um 2 Divs ;-)
Ging das nicht einfach mit "styles.content >" oder so ähnlich?
Grüße & Danke
Wenns dir nur um das geht
<div id="c449" class="csc-default" ><h1>Aktuelles RSS</h1>
tt_content.header > und so das solltest du dann in eine Condition alles einbauen.
Mein Beispiel war garnicht so komplex find ich, natürlich sollte nab TS und seine Möglichkeiten schon verstehen
Hi,
ich habs jetzt geschafft, jetzt ist nur noch der Anker drin, den bekomm ich nicht weg:
RSSpage = PAGE
RSSpage {
typeNum = 888
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
disablePrefixComment = 1
language = de
locale_all = de_DE
linkVars = L
sys_language_uid = 0
sys_language_mode = strict
sys_language_overlay = hideNonTranslated
}
30 = COA
30 {
10 = CONTENT
10.table = tt_content
10.select {
where = uid = 449
pidInList = 122
}
}
}
Ergibt:
<a id="c449"></a>
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<item>
<title>Testtest</title>
...
</item>
</channel>
</rss>
Und ich habe schon mit "tt_content.stdWrap.dataWrap = " gespielt, aber keine Chance.
Ich kenn mich mit Typoscript schon aus, nur verwirrt mich das CONTENT Object, und ich weis nicht woher er das gewrape zugewiesen bekommt. Auch mit "css_styled_content >" funktioniert es nicht alles abzuschalten.
Grüße!
Für Sowas gibts den Template Analyzer ja auch.
Probier doch mal so steht das zumindest in ner 4.2 bei mir . Kann sein das noch stdWrap davor muss ist aber nen TEXT Objekt da ist das nicht nötig
tt_content.prepend = TEXT
tt_content.prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>
tt_content.prepend.if.isTrue.field = _LOCALIZED_UID
So gehts aber auch nicht
RSSpage = PAGE
RSSpage {
tt_content.prepend.dataWrap >
typeNum = 888
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
disablePrefixComment = 1
language = de
locale_all = de_DE
linkVars = L
sys_language_uid = 0
sys_language_mode = strict
sys_language_overlay = hideNonTranslated
}
30 = COA
30 {
10 = CONTENT
10.table = tt_content
10.select {
where = uid = 449
pidInList = 122
}
10.tt_content.prepend.dataWrap >
10.prepend.dataWrap >
}
}
Ok, ich probier es nun ganz anderst, ich lese es direkt aus der DB.
Jetzt hakt es nur noch an den fehlenden Umbrücken.
CRSS= PAGE
CRSS{
typeNum = 888
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
disablePrefixComment = 1
language = de
locale_all = de_DE
linkVars = L
sys_language_uid = 0
sys_language_mode = strict
sys_language_overlay = hideNonTranslated
}
30 = COA
30 {
5 = TEXT
5.value (
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
)
10 = CONTENT
10.table = tx_custref_reference
10.select.pidInList = 45
10.select.orderBy = uid
10.renderObj = TEXT
10.renderObj.dataWrap (
<title><![CDATA[{field:title}]]></title>
<link>http://www.demo.de/index.php?id?={field:uid}</link>
<pubDate><![CDATA[{field:tstamp}]]></pubDate>
)
100 = TEXT
100.value (
</channel>
</rss>
)
}
}
Ergibt:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[Überschrift]]></title>
<link>http://www.demo.de/index.php?id?=10</link>
<pubDate><![CDATA[1277205941]]></pubDate><title><![CDATA[Überschrift]]></title>
<link>http://www.demo.de/index.php?id?=11</link>
<pubDate><![CDATA[1260454993]]></pubDate><title><![CDATA[Überschrift]]></title>
<link>http://www.demo.de/index.php?id?=12</link>
<pubDate><![CDATA[1260547765]]></pubDate><title><![CDATA[Überschrift]]></title>
<link>http://www.demo.de/index.php?id?=13</link>
<pubDate><![CDATA[1260545164]]></pubDate>
</channel>
</rss>
Wie schaffe ich es das er nach dem pubDate immer einen Absatz einfügt?
Grüße
Hat sich erledigt! ich hatte einen Rechtschreibfehler im <item></iitem>
jetzt funktionierts!
Danke für die Geduld!