[TYPO3-UG Dutch] Normale output vervangen met RSS

Patrick Broens patrick at patrickbroens.nl
Tue Jul 31 09:19:56 CEST 2007


Hi William,

Het beste was om gebruik te maken van type, omdat dit namelijk een 
standaard feature binnen TYPO3 is. Onderstaande code laat dit zien. Deze 
TS wordt opgenomen in de TS van de extensie. Zoals je ziet wordt XML 
gegenereerd als de pagina opgeroepen wordt met type=500. Alle standaard 
headercode wordt uitgezet, de XML charset wordt op utf-8 gezet, en 
vervolgens worden wat additionele headers meegestuurd. In mijn voorbeeld 
haal ik wat gegevens uit tt_content voor die bewuste pagina en toon die 
als XML. Alles gaat door dezelfde controller als voor normale pagina's, 
alleen controleer ik in de controller of type=500 aangeroepen wordt. Op 
dat moment retourneer ik alleen de XML.

Wat jij doet is typeNum=0 aanroepen, wat voor TYPO3 wil zeggen dat er 
een gewone pagina gegeneerd moet worden. Dit doet ie dan ook keurig. 
Niet alleen de content van je plugin wordt dan gerenderd, maar de hele 
pagina.

export_xml >
export_xml = PAGE
export_xml {
	typeNum=500
	config.disableAllHeaderCode = 1
	config.metaCharset = utf-8
	config.additionalHeaders = Content-Type:text/xml;charset=utf-8

	10 = CONTENT
	10 {
		table = tt_content
		select {
			pidInList = this
			max = 1
			andWhere = list_type='extensie_controller'
		}

		renderObj = COA
		renderObj {
			10 < plugin.tx_extensie_controller
			10.userFunc = tx_extensie_controller->main
		}
	}
}

Patrick

William Parr wrote:
> Hallo iedereen,
> 
> Ik heb een extensie ontwikkeld welke aan de hand van een meegestuurde categorie ID tt_news items uit de database haalt en vervolgens een RSS template vult met de resultaten van de queries in de database.
> 
> Ik heb hiervoor op de parent pagina van heel de tree (waarvan alle pagina's in de tree van deze een subpagina zijn) bij template het volgende staan:
> plugin.<extensie>.templateFile = fileadmin/template/<template>.tmpl
> page.50 < plugin.tx_<extensie>_pi1
> 
> Dit wordt dus geërfd door de rest van de pagina's en wanneer er een variabele mee wordt gegeven in de URL ("&feed=1") wordt alle er code in de extensie uitgevoerd. Alles gaat goed wat dit betreft, want wanneer je in de broncode van de pagina kijkt staan helemaal onderaan alle RSS tags met alle content erin wat erin hoort te staan. Op de pagina zelf verschijnt alle data wat binnen de tags hoort als tekst achter elkaar, onderaan de pagina (logisch, want XML tags worden in HTML niet getoond).
> 
> Het is dus bijna goed, maar wat er nog moet gebeuren is dat wanneer die variabele in de URL wordt meegegeven en de template voor RSS output wordt gevuld, alles wat normaal gesproken op de pagina zou verschijnen, dat niet moet doen, zodat enkel mijn RSS output overblijft en de pagina zich daardoor als een RSS pagina presenteert en niet als een HTML pagina met een lange rits tekst onderaan.
> 
> Heeft iemand enig idee hoe ik Typo3 zo ver kan krijgen om dit te doen?
> 
> Ik heb al wat gespeeld met RSS in tt_news en er wordt dan met bijvoorbeeld "&type=100" wel een RSS pagina getoond, maar zodra ik categoryMode en categorySelection gebruik in de TS setup (van xmlnews { }), komt er helemaal geen content meer op die pagina, terwijl ik juist tt_news items op categorie moet kunnen pakken.
> 
> Hopelijk weet iemand hier iets op!
> 
> Groetjes,
> William


More information about the TYPO3-UG-dutch mailing list