[TYPO3-german] nur bestimmte Elemente in der List-View anzeigen

AndrŽe Scheper typo3 at andrescheper.de
Thu Jul 24 13:05:05 CEST 2008


Hallo zusammen,
inzwischen bin ich mir ziemlich sicher den richtigen Hook [1] für mein 
Problem gefunden zu haben. Allerdings häng ich gerade bei der 
Implementierung fest.
Ich habe eine per kickstarter eine neue Extension erstellt 
(modifiy_listview). In dem Wurzelverzeichnis der Extension ist eine PHP 
  Klasse modifiy [2] und die ext_localconf.php [3].
Wenn ich über Web>List eine Seite öffne (egal, ob Typ Seite oder 
SysFolder) erhalte ich folgende Fehlermeldung:

|Class 'modify' was not prepended with 'user_'|

Fatal error: Uncaught exception 'UnexpectedValueException' with message 
'$hookObject must implement interface t3lib_localRecordListGetTableHook' 
in /Users/andrescheper/Sites/eulinger/typo3/class.db_list_extra.inc:377 
Stack trace: #0 
/Users/andrescheper/Sites/eulinger/typo3/class.db_list.inc(268): 
localRecordList->getTable('pages', 11, '') #1 
/Users/andrescheper/Sites/eulinger/typo3/db_list.php(295): 
recordList->generateList() #2 
/Users/andrescheper/Sites/eulinger/typo3/db_list.php(451): 
SC_db_list->main() #3 {main} thrown in 
/Users/andrescheper/Sites/eulinger/typo3/class.db_list_extra.inc on line 377


Hat von euch jemand eine Idee wo das Problem liegen könnte?


sonnige Grüße
André



[1] //  /typo3/class.db_list_extra.inc, Zeile 372ff
if(is_array($TYPO3_CONF_VARS['SC_OPTIONS']['typo3/class.db_list_extra.inc']['getTable'])) 
{
		 
foreach($TYPO3_CONF_VARS['SC_OPTIONS']['typo3/class.db_list_extra.inc']['getTable'] 
as $classData) {
				$hookObject = &t3lib_div::getUserObj($classData);

				if(!($hookObject instanceof t3lib_localRecordListGetTableHook)) {
					throw new UnexpectedValueException('$hookObject must implement 
interface t3lib_localRecordListGetTableHook', 1195114460);
				}

				$hookObject->getDBlistQuery($table, $id, $addWhere, $selFieldList, 
$this);
				
			}
		}




[2] //class.modiy.php
require_once(PATH_t3lib.'interfaces/interface.t3lib_localrecordlistgettablehook.php');

class modify implements t3lib_localRecordListGetTableHook {
	public function getDBlistQuery($table, $pageId, 
&$additionalWhereClause, &$selectedFieldsList, &$parentObject) {
		if($table == 'tx_cal_event') {
			$additionalWhereClause .= ' AND tx_cal_event.start_date > '.date(Ymd);
		}
	}
}


[3] //ext_localconf.php
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/class.db_list_extra.inc']['getTable'][] 
= 'EXT:modify_listview/class.modify.php:modify';

typo3 at andrescheper.de schrieb:
> Hallo,
> einen vermutlich passenden Hook habe ich gefunden:
> /typo3/class.db_list_extra.inc,
> Methode getTable(). Bei mir (TYPO3 4.2.1) ist der Hook in Zeile 364ff.
> 
> Allerdings haperts bei mir gerade an der Umsetzung.
> Im Prinzip müsste ich nur gucken, ob in $table meine Kalendertabelle
> drin ist und dann die where Klausel um " and starttime > $jetzt"
> erweitern. In der Quick'n'Dirty-Programmierung (direkt die Klasse
> bearbeiten) funktioniert das, bis auf wiederkehrende Termine.
> 
> 
> 
> André
> 
> 
> 


More information about the TYPO3-german mailing list