TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

Wraps entfernen wegen RSS-Ausgabe


Autor Nachricht
Verfasst am: 05. 08. 2010 [11:20]
pow
Themenersteller
Dabei seit: 30.10.2008
Beiträge: 717
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:

HTML
<div id="c449" class="csc-default" ><h1>Aktuelles RSS</h1>
 
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
...


Mein TYPOSCRIPT:

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
	  	}
	}
}
Profil
Verfasst am: 09. 08. 2010 [13:56]
Shark1982
Dabei seit: 29.06.2006
Beiträge: 43
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

TYPOSCRIPT
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>
                )
          }
 
 
}


Mitglied in der www.mediengarage.de
ProfilWWW
Verfasst am: 09. 08. 2010 [16:16]
pow
Themenersteller
Dabei seit: 30.10.2008
Beiträge: 717
Puhh...nicht das ich deine Antwort nicht zu schätz weis, aber das ist schon ziemlich komplex wenn man es selbst nicht gebaut hat icon_wink.gif 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 icon_wink.gif

Ging das nicht einfach mit "styles.content >" oder so ähnlich?

Grüße & Danke
Profil
Verfasst am: 09. 08. 2010 [19:33]
Shark1982
Dabei seit: 29.06.2006
Beiträge: 43

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


Mitglied in der www.mediengarage.de
ProfilWWW
Verfasst am: 11. 08. 2010 [13:24]
pow
Themenersteller
Dabei seit: 30.10.2008
Beiträge: 717
Hi,

ich habs jetzt geschafft, jetzt ist nur noch der Anker drin, den bekomm ich nicht weg:

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 = 122
      }
  }  
}


Ergibt:

HTML
<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!
Profil
Verfasst am: 11. 08. 2010 [14:28]
Shark1982
Dabei seit: 29.06.2006
Beiträge: 43
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

TYPOSCRIPT
tt_content.prepend = TEXT
tt_content.prepend.dataWrap = <a id="c{field:_LOCALIZED_UID}"></a>
tt_content.prepend.if.isTrue.field = _LOCALIZED_UID


Mitglied in der www.mediengarage.de
ProfilWWW
Verfasst am: 11. 08. 2010 [16:42]
pow
Themenersteller
Dabei seit: 30.10.2008
Beiträge: 717
So gehts aber auch nicht

TYPOSCRIPT
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 >
  }  
}
Profil
Verfasst am: 16. 08. 2010 [09:58]
pow
Themenersteller
Dabei seit: 30.10.2008
Beiträge: 717
Ok, ich probier es nun ganz anderst, ich lese es direkt aus der DB.
Jetzt hakt es nur noch an den fehlenden Umbrücken.

TYPOSCRIPT
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:

HTML
<?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
Profil
Verfasst am: 16. 08. 2010 [12:12]
pow
Themenersteller
Dabei seit: 30.10.2008
Beiträge: 717
Hat sich erledigt! ich hatte einen Rechtschreibfehler im <item></iitem>

jetzt funktionierts!

Danke für die Geduld!
Profil