[TYPO3-german] nur bestimmte Elemente in der List-View anzeigen
Andre 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