[TYPO3-german] [TYPO3-calendar] Re: PHP-Fehler Cal 1.3.3 und RealUrl 1.9.4

Jan Bartels j.bartels at arcor.de
Mon Sep 6 23:12:10 CEST 2010


> Es scheint eine von den Cal-Machern schon bestätigte Inkompatibilität
> zwischen RealUrl 1.9.4 und CalendarBase 1.3.3 zu sein. Mal schauen, wie
> sich das weiter entwickelt.
Bisher gab es beim Kalender mit RealURL (vor 1.9) ja häufig mehrere 
unmittelbar aufeinanderfolgende Slashes. Das ist mit der neuen RealURL 
geändert: leere Parameter werden automatisch unterdrückt. Dadurch 
funktioniert die Zuordnung der Parameter nicht mehr richtig. Es hilft, 
die Parameter explizit mit Keywords zu benamen:

'calview'=> array(
	array(
		'GETvar' => 'tx_cal_controller[view]'
	),
),
'calgetdate'=> array(
	array(
		'GETvar' => 'tx_cal_controller[getdate]'
	),
),...

Das ergibt zwar recht lange URLs, aber sie sind immerhin noch 
einigermaßen lesbar. Rein optisch stört tx_cal_controller[lastview] 
sehr. Da ist es evtl. sinnvoll, das zu einer Session-Variablen zu 
machen, sofern das geht. Das habe ich nicht geprüft. 
Real-URL-Beispielkonfiguration siehe unten.

Bei tx_cal_controller[type] habe ich eine valueMap vorgesehen, um die 
unschönen "tx_cal_xxx" in der URL loszuwerden:

'caltype'=> array(
	array(
		'GETvar' => 'tx_cal_controller[type]',
		'valueMap'          => array(
			'ical'          => 'tx_cal_phpicalendar',
			'todo'		=> 'tx_cal_todo',
			'nearby'	=> 'tx_cal_nearby',
			...

Diese Liste ist nicht vollständig. Ich bin mir auch nicht sicher, ob ich 
die Typen überhaupt korrekt ausgeguckt habe. Da müssen vermutlich alle 
Service-Keys aufgeführt werden. Meine wenigen Testfälle werden zumindest 
erfaßt (es sind aber nicht alle Einträge gestestet!). FE-Editing nutzen 
wir derzeit nicht (ist also noch nachzutragen).

Direkt hinter dem type-Parameter folgen die "Übersetzungen" der 
jeweiligen tx_cal_controller[uid] mit der bekannten 
prevValueInList-Bedingung ohne weiteres Keyword.

Vielleicht gelingt es mit diesem Ansatz, hier in der NG eine halbwegs 
vollständige RealURL-Konfiguration zusammenzutragen. Mir fehlen dazu die 
notwendigen Testszenarien. Der Rest dürfte aber nur noch reine 
Fleißarbeit sein. Ergänzungen/Korrekturen sind willkommen.

Ich habe auf meinem Testsystem übrigens cal-1_4_0-dev-r2881 und RealURL 
1.9.4 installiert.

fup2 typo3.projects.calendar

Gruß,

Jan

-----------------------------------
Vorlage für die realurl.conf-Sektion:

'calview'=> array(
	array(
		'GETvar' => 'tx_cal_controller[view]'
	),
),
'calgetdate'=> array(
	array(
		'GETvar' => 'tx_cal_controller[getdate]'
	),
),
'calbrowse'=> array(
	array(
		'GETvar' => 'tx_cal_controller[offset]'
	),
),
'callastview'=> array(
	array(
		'GETvar' => 'tx_cal_controller[lastview]'
	),
),
'caldatum'=> array(
	array(
		'GETvar' => 'tx_cal_controller[year]'
	),
	array(
		'GETvar' => 'tx_cal_controller[month]'
	),
	array(
		'GETvar' => 'tx_cal_controller[day]'
	),
),
'caltype'=> array(
	array(
		'GETvar' => 'tx_cal_controller[type]',
		'valueMap'	=> array(
			'termin'      	=> 'tx_cal_phpicalendar',
			'todo'		=> 'tx_cal_todo',
			'nearby'	=> 'tx_cal_nearby',
			'partner'	=> 'tx_partner_main',
			'organizer'	=> 'tx_cal_organizer',
			'address'	=> 'tx_tt_address',
			'user'		=> 'tx_feuser',
			'ort'		=> 'tx_cal_location',
			'attendee'	=> 'tx_cal_attendee',
			'cal'		=> 'tx_cal_calendar',
			'cat'		=> 'tx_cal_category',
/* Hier fehlen noch weitere Einträge ...*/
		),
	),
	array(
		'cond' => array (
			'prevValueInList' => 'tx_cal_phpicalendar'
				),
		'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(
		'cond' => array (
			'prevValueInList' => 'tx_cal_location'
				),
		'GETvar' => 'tx_cal_controller[uid]',
		'lookUpTable' => array(
			'table' => 'tx_cal_location',
			'id_field' => 'uid',
			'alias_field' => 'name',
			'addWhereClause'  => ' AND NOT deleted',
			'useUniqueCache' => 1,
			'useUniqueCache_conf' => array(
				'strtolower' => 1,
				'spaceCharacter' => '_',
			 ),
		),
	),
	array(
		'cond' => array (
			'prevValueInList' => 'tx_cal_organizer'
				),
		'GETvar' => 'tx_cal_controller[uid]',
		'lookUpTable' => array(
			'table' => 'tx_cal_organizer',
			'id_field' => 'uid',
			'alias_field' => 'name',
			'addWhereClause'  => ' AND NOT deleted',
			'useUniqueCache' => 1,
			'useUniqueCache_conf' => array(
				'strtolower' => 1,
				'spaceCharacter' => '-',
			),
		),
	),
),
'calkat' => array(
	array(
		'GETvar' => 'tx_cal_controller[category]',
		'lookUpTable' => array(
			'table' => 'tx_cal_category',
			'id_field' => 'uid',
			'alias_field' => 'title',
			'addWhereClause'  => ' AND NOT deleted',
			'useUniqueCache' => 1,
			'useUniqueCache_conf' => array(
				'strtolower' => 1,
				'spaceCharacter' => '_',
			 ),
		),
	),
),


More information about the TYPO3-german mailing list