Zum Inhalt springen

Mehrere RSS Feeds und Realurl

Erstellt am 29. Mai 2009 · 14 Antworten · letzte Antwort am 10. Juni 2009

Tags: RealURL, tt_news, Frage

soundstorm ·

Hallo Leute

Ich habe einen RSS Feed, der funkt wunderbar:
http://www.infoklick.ch/rss.xml

Nun möchte ich einen 2. Feed erstellen, das gelang mir auch mit Hilfe von

  10.categorySelection = 4
  10.categoryMode = 1

Beispiel:
http://infoklick.ch/index.php?id=2123&type=100
Das ist für die News von der Kategorie Basel.

In der localconfig steht

				'rss.xml' => array(
                    'keyValues' => array(
                        'type' => 100,
                    ),

Wenn ich aber nun die Basel-Seite mit ihrem RealUrl Namen aufrufe, http://infoklick.ch/rssbasel.xml(das ist die Seite 2123 von oben), dann kommen leider alle Kategorien (wie bei rss.xml).

Habe 2 Stunden recherchiert, bin aber nicht weitergekommen. 😢
Ich denke es, hat mit RealUrl zu tun, oder in welche Richtung muss ich den Fehler suchen?

Danke für eure Hilfe und Tipps!

vixe ·

Hallo soundstorm,

bisher hast du ja nur lediglich folgende auf Feeds bezogene RealURL - Config:

'rss.xml' => array(
                    'keyValues' => array(
                        'type' => 100,
                    ),

D.h. es wird nun alles was mit type=100 in der URL matcht auf rss.xml umgemünzt bzw. auch andersrum. Du brauchst also noch ein Unterscheidungskriterium entweder die PID oder falls vorhanden eine News-Kategorie-ID o.ä., falls der 2. Feed auch über type=100 angesprochen wird. Wie sieht den der Aufruf ohne RealURL für den 2. Feed aus.

Grüße

soundstorm ·

Ciao Vixe

Danke für deine Hilfe.

Also, den 2. Aufruf habe ich angegeben:
infoklick.ch/index.php?id=2123&type=100
Der Link würde funktionieren, ich hätte aber gerne DATEI.rss...
:o

Kann ich den einen anderen pagetype angeben? Dachte halt 100 ist vorgegeben von tt_news für xml Feeds?
Eigentlich sind es nur Kategorien, ja. Aber ich weiss wirklich nicht, wie ich das per RealUrl ansprechen könnte...

vixe ·

Hi nochmal,

ah hab ich irgendwie überlesen, dachte das war der Aufruf für den 1. Feed. :o
Du musst nicht zwingend den Wert für den "pagetype" ändern (was aber sicherlich gehen sollte). Es reicht vielleicht aus, die RealURL - Config so anzupassen (die PID unter "'id' => '...'" muss natürlich auf den 1. Feed angepasst werden):

'rss.xml' => array (
	'keyValues' => array (
		'id' => ' => '...',
		'type' => '100',
		),
	),
'datei.xml' => array (
	'keyValues' => array (
		'id' => ' => '2123',
		'type' => '100',
		),
	),

Funzt allerdings nur wenn sich die PIDs der Feeds unterscheiden und getestet hab ich es auch nicht.

Grüße

soundstorm ·

Ok, habs probiert:

'rss.xml' => array(
                    'keyValues' => array(
                        'id' =>  '581',
                        'type' => 100,
                    ),
                ),
				

'rssbasel.xml' => array(
                    'keyValues' => array(
			'id' =>  '2123',
                        'type' => 100,
                    ),
                ),

(Bei deinem Code war was doppelt, gab Fehler, also habe ich etwas gekürzt)

Hat leider nicht funktioniert:
http://infoklick.ch/rss.xml (seite 581)
http://infoklick.ch/rssbasel.xml (seite 2123)

Basel zeigt immer noch alles an, obwohl 2123 richtig knofiguriert ist:
http://infoklick.ch/index.php?id=2123&type=100

Was ich nicht verstehe, wieso kann man die Seite nicht einfach so aufrufen, wie sie heisst? Die Seiten heissen drum wirklich auch so (rss + rssbasel). wenn ich also rssbasel.xml aufrufe, sollte einfach die seite aber mit pagetype 100 ausgeben werden, wie es in der RealURL steht...
http://infoklick.ch/rssbasel/ und http://infoklick.ch/rss/ geht ja auch. #paralyzed# Aber irgendwo mach ich einen Denkfehler wahrscheinlich.

soundstorm ·

Hey Vixe!

Danke dass du dir die Zeit nimmst.

Schäme mich zwar für das Chaos, bin nur schon froh, dass RealUrl einigermassen funkt, also hier bitte:

$TYPO3_CONF_VARS['EXTCONF'] ['realurl'] ['_DEFAULT'] = array(
   	'init' => array(
//			'useCHashCache' => '0',
      		'enableCHashCache' => 1,
      		'enableUrlDecodeCache' => 1,
      		'enableUrlEncodeHash' => 1,
		'appendMissingSlash' => 'ifNotFile',
   	),

	
			
		'pagePath' => array(
   		'type' => 'user',
//		'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
//		'userFunc' => 'fileadmin/scripts/class.tx_realurl_jk.php:&tx_realurl_advanced->main',
		'userFunc' => 'EXT:aoe_realurlpath/class.tx_aoerealurlpath_pagepath.php:&tx_aoerealurlpath_pagepath->main',
//		'excludeDoktypes' => array(5,254),
//		'excludeUids' => array( 6), //pageIds die im Pfad nicht angezeigt werden
   		'spaceCharacter' => '-',
		 'segTitleFieldList'=>'alias,tx_aoerealurlpath_overridesegment,nav_title,title,subtitle',
   	//	'languageGetVar' => 'L',
   		'expireDays' => 3,
   		'rootpage_id' => '1'
	),
		
		'fixedPostVarSets' => array(
	   ),
	   

   	'postVarSets' => array(
      		'_DEFAULT' => array(
			'action' => array(
					array(
					'GETvar' => 'tx_ablinklist_pi1[action]',
						'valueMap' => array(
							'show-category' => 'getviewcategory',
							'propose-a-new-link' => 'getviewaddnewlink', 
							'open-link' => 'getviewclickedlink', 
							'show-details-for-link' => 'getviewdetailsforlink', 
							'report-broken-link' => 'getviewreportbrokenlink',
							'rate-link' => 'getviewratelink',
						),
					),
				),
				
				
				
				
				//// STart Cal
			'cal'=> array(
                                        array(
                                                'GETvar' => 'tx_cal_controller[type]'
                                        ),
										array(
                                                'GETvar' => 'tx_cal_controller[view]'
                                        ),
                                        array(
                                                'GETvar' => 'tx_cal_controller[getdate]'
                                        ),
                                        array(
                                                'GETvar' => 'tx_cal_controller[gettime]'
                                        ),
                                        array(
                                               'GETvar' => 'tx_cal_controller[lastview]'
                                        ),

                                        array(
                                                'GETvar' => 'tx_cal_controller[uid]',
                                                'lookUpTable' => array(
                                                        'table' => 'tx_cal_event',
                                                        'id_field' => 'uid',
                                                        'alias_field' => 'title',
                                                        'addWhereClause'  => ' AND NOT deleted',
                                                        'useUniqueCache' => 1,
                                                        'useUniqueCache_conf' => array(
                                                                'strtolower' => 1,
                                                                'spaceCharacter' => '_',
                                                        ),
                                                ),
                                        ),
                                        array(
										'condPrevValue' => '2',
                                                'GETvar' => 'tx_cal_controller[gettime]'
                                        ),
                                        array(
										'condPrevValue' => '2',
                                                'GETvar' => 'tx_cal_controller[preview]'
                                        ),
										

 
                                ),	
			
////Ende Cal


				'category' => array(
					array(
						'GETvar' => 'tx_ablinklist_pi1[category_uid]',
						'valueMap' => array(
							'home' => '0',
						),
						'lookUpTable' => array(
							'table' => 'tx_ablinklist_category',
							'id_field' => 'uid',
							'alias_field' => 'label',
							'addWhereClause' => ' AND NOT deleted',
							'useUniqueCache' => 1,
							'useUniqueCache_conf' => array(
								'strtolower' => 1,
								'spaceCharacter' => '-',
							),
						),
					),
				),
				'link' => array(
					array(
						'GETvar' => 'tx_ablinklist_pi1[uid]',
						'lookUpTable' => array(
							'table' => 'tx_ablinklist_link',
							'id_field' => 'uid',
							'alias_field' => 'label',
							'addWhereClause' => ' AND NOT deleted',
							'useUniqueCache' => 1,
							'useUniqueCache_conf' => array(
								'strtolower' => 1,
								'spaceCharacter' => '-',
							),
						),
					),

				),
				
							//		array(
			//			'GETvar' => 'cHash',
			//		),
			
			//	'pointer' => array(
			//		array(
			//			'GETvar' => 'tx_ablinklist_pi1[pointer]',
			//			),
			//		),
					
			
			
			
			//NEWS///
			

				
	  // 			'browse' => array (
     // 				array (
       //  					'GETvar' => 'tx_ttnews[pointer]',
      //				),
		//	   ),
		   			'select' => array (
     				array (
        					'GETvar' => 'tx_ttnews[cat]',
       					'lookUpTable' => array (
            						'table' => 'tt_news_cat',
            						'id_field' => 'uid',
            						'alias_field' => 'title',
            						'addWhereClause'=> 'AND NOT deleted',
           						'useUniqueCache'=> 1,
            						'useUniqueCache_conf' => array (
               							'strtolower' => 1,
               							'spaceCharacter' => '-',
            						),
        	 				),
      				),
			   ),
					
					
					
				'article' => array( 
				  	 
					 
			
			//		   array (
      		//			'GETvar' => 'tx_ttnews[backPid]',
     		//			 ),
   	
				
				
				                    array(
                        'GETvar' => 'tx_ttnews[year]',
                    ),
                    array(
                        'GETvar' => 'tx_ttnews[month]' ,
                    ),
                    array(
                        'GETvar' => 'tx_ttnews[day]',
                    ),
					
					
					
				
				   array (
      					'GETvar' => 'tx_ttnews[tt_news]',
					      'lookUpTable' => array (
      						'table' => 'tt_news',
      						'id_field' => 'uid',
      						'alias_field' => 'title',

      					//	'maxLength' => 12,
      						'addWhereClause'=> 'AND NOT deleted',
      						'useUniqueCache'=> 1,
      						'useUniqueCache_conf' => array (
         							'strtolower' => 1,
         							'spaceCharacter' => '-',
      						),
					   ),
				),
			),
		),
	), 

	 
	   'preVars' => array(
	   
//	   		    array(
 //      'GETvar' => 'no_cache',
//		'noMatch' => 'bypass',
//     ),
   ),
		  

	   'fileName' => array (
		   'defaultToHTMLsuffixOnPrev' => 0,
   		'index' => array(
     			'page.html' => array(
      				'keyValues' => array (
          					'type' => 1,
    				),
				),
				
				'rss.xml' => array(
                    'keyValues' => array(
					'id' =>  '581',
                        'type' => 100,
                    ),
                ),
				

								'rssbasel.xml' => array(
                    'keyValues' => array(
					'id' =>  '2123',
                        'type' => 100,
                    ),
                ),
				
				
   		),
	),
	  
	

);

Hoffe, du erkennst was, wen nicht räum ich ein wenig auf... 😃

vixe ·

Hi soundstorm,

habe mir deine RealURL-Config angeschaut, selbst mal etwas rumgetestet und nochmal die Doku durchstöbert und bin zu dem Schluss gekommen, dass meine vorgeschlagene Lösung (war auch nur 'ne Theorie :o ) so nicht funktionieren kann.

Die Angabe zum fileName dienen nur zur Codierung / Mapping der URL-GET-Params in bestimmte Dateinamen und nicht andersrum. D.h. der Aufruf von rss.xml sorgt nun dafür, dass im Hintergrund quasi type=100 gesetzt wird (zumindestens würde ich das nun laut Doku und Tests so interpretieren).

Da nun beide XML - Feeds über den gleichen pagetype angesprochen werden, greift bei Dir immer der zuerst konfigurierte und somit landet der Aufruf der rssbasel.xml immer bei rss.xml.

Mir fällt nun momentan leider nur die Lösung ein, für den 2. Feed einen weiteren pagetype zu definieren.

Viele Grüße

soundstorm ·

Hey Vixe! Danke für deine Mühe! War ne coole Idee! 🙂

Ja genau, ***.xml veranlasst Pagetype 100 zu nehmen. Aber genau deswegen müsste man doch die Config so machen können, dass wenn ich XML anhänge, pagetype 100 genommen wird, EGAL welche Seite ich aufrufe....

Also, ich meine die Seite infoklick.ch/rss/ und infoklick.ch/rssbasel/ kann ich ja aufrufen und wird mit dem Pagetype 1 ausgegeben. Jetzt hänge ich ein XML dran (also eben rss.xml oder rssbasel.xml) und so sollte 100 genommen werden.

Also wie bei normalen Seiten:

#
'fileName' => array (
                      'defaultToHTMLsuffixOnPrev' => 0,
                      'index' => array(
                                'page.html' => array(
                                            'keyValues' => array (
                                                 'type' => 1,
                    ),  
                                ),

So sollte doch das klappen, tut es aber nicht:

#
'fileName' => array (
                      'defaultToHTMLsuffixOnPrev' => 0,
                      'index' => array(
                                'page.html' => array(
                                            'keyValues' => array (
                                                 'type' => 1,
                                'page.xml' => array(
                                            'keyValues' => array (
                                                 'type' => 100,
                    ),  
                                ),

Ich versuche mal mit nem anderen Pagetype. Hoffe, das das der TT_News egal ist...

vixe ·

Hallo soundstorm,

du kannst den pagetype mit 100 nur einmal auf einen bestimmten fileName (wie z.B. rss.xml) "mappen". Du könntest die fileName - Eigenschaft "defaultToHTMLsuffixOnPrev" dahingehend anpassen, dass das letzte Pfad-Segment als Dateiname behandelt wird (z.B. http://www.infoclic.ch/svizzera-italiana/ wird http://www.infoclic.ch/svizzera-italiana.html). Dies gilt dann aber generell für alle Pages und da du für die Endung .xml hier eine Sonderbehandlung brauchst, geht das nur mit einem exklusiv definierten fileName (aus meiner Sicht).

Viele Grüße

soundstorm ·

Ciao Vixe

Ja, das ist mir klar mit dem Dateinamen, dann würde es wahrscheinlich klappen. Aber das geht leider nicht, muss bei der URL Struktur von jetzt bleiben (ohne Endung bezw. mit "/").

Habe jetzt pagetype 101 hinzugefügt im Template auf der Seite 2123 und in der realconfig einen 2. Eintrag:

				'rss.xml' => array(
                    'keyValues' => array(
                        'type' => 100,
                    ),
                ),
				
				
'rssbasel.xml' => array(
                    'keyValues' => array(
                        'type' => 101,
                    ),
                ),

Geht: http://infoklick.ch/index.php?id=2123&type=101
Geht nicht: http://www.infoklick.ch/rssbasel.xml
(The page is not configured! [type= 101][]) #angry#

Ist aber doch konfiguriert, nicht? Sonst könnte ich den Link ....pagetype=101 nicht aufrufen oder wie? Ich schnall's nicht.. 😢 Habe auch versucht, ein 2. Static Setup/Constants (News Feed) einzubinden auf 2123, aber das hilft nicht. Es wird immer auf der Root Seite geschaut und dort muss das normale Static Feed eingeschlossen sein. Wenn ich das wegnehme oder ein 2. hintue gehts nicht mehr. Irgendwie seh ich nicht, wie man ein 2. einschliessen muss.

Ausser du hast die Jahrhundert Idee #giggle# werde ich einfach den Link http://infoklick.ch/index.php?id=2123&type=101 publizieren. Geht ja auch.

vixe ·

Hi soundstorm,

das verstehe ich jetzt aber auch nicht, müsste eigentlich so funzen. Also entweder ist Deine RealURL - Version "Buggy" oder du hast einen Fehler in der RealURL-Config. Habe es bei mir mit 2 verschiedenen pagetypes probiert und es hat funktioniert.

Habe folgende Config bezgl. "fileName" verwendet:

'fileName' => array (
		'defaultToHTMLsuffixOnPrev' => 1,
		'index' => array (
			'rss.xml' => array (
				'keyValues' => array (
					'type' => '100',
				),
			),
			'rss2.xml' => array (
				'keyValues' => array (
					'type' => '200',
				),
			),
		),
	),
soundstorm ·

Aha ok, aber ich habe dies

'defaultToHTMLsuffixOnPrev' => 1,

halt nicht geändert bezw. auf "0", weil ich ja keine Endungen haben will. Geht wohl nur mit "1". Oder kann ich das verschachteln bezw. nur für XML aktivieren? Denke nicht...

vixe ·

Mit 'defaultToHTMLsuffixOnPrev' kannst du nur, wie bereits kurz beschrieben, die Endung .html anhängen bzw. das letzt Pfadsegment wird dann halt als HTML - Datei behandelt und nicht als Verzeichnis. Diese Einstellung hat aber keine Auswirkung bezgl. Deiner "XML-Dateinamen-Definitionen". Es geht hier auch nicht das irgendwie umzukonfigurieren, ausser du programmierst die Extension um.

Ich habe dies bei mir aber auch noch mal getestet und es funktioniert bei mir genauso mit:

'defaultToHTMLsuffixOnPrev' => 0,
soundstorm ·

Ok, dann stimmt wohl bei mir irgendwas nicht, bezw. bei meinem Typo3. #giggle# 😢
Muss wohl den Fehler noch woanders suchen gehen.

Ich danke Dir vielmals für deine Bemühungen, Vixe! :p