[TYPO3-german] Erweitertes tt_news Template nutzen
Markus Deckmann
Markus.Deckmann79 at web.de
Thu Dec 18 16:53:51 CET 2008
Hi,
> Hooks können verschiedene Funktionen erfüllen, was Du auch an ve_guestbook
> sehen kannst. Je nach Funktion werden dann auch die Namen und die Namen der
> zugehörigen Funktionen gewählt. Das Grundprinzip wie der Hook implementiert
> wird ist immer gleich, welche Funktion er in welcher Form und mit welchen
> Parametern erfüllt ist aber abhängig vom Autor der Erweiterung.
Jetzt hat der Autor glaub ich einen Fehler in tt_news gefunden. Meine
eigene Erweiterung ruft im Konstruktor jetzt die Methode initTemplate
meiner eigenen Erweiterung auf. In dieser Methode passiert folgendes:
function initTemplate() {
// Auslesen des Templates aus der Flexform-Konfiguration
$_templatePath = $this->getFFConf("PluginTemplate", "sGeneral");
$this->templateCode = $this->cObj->fileResource($_templatePath);
// Setzen des Hooks
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraCodesHook'][]='tx_spuhledm_pi1->StandardRendering';
// Konfiguration von tt_news
$tt_news_conf['code'] = "";
$tt_news_conf['defaultCode'] = "";
// Generieren der tt_news-Instanz
$tt_news_obj = & t3lib_div::makeInstance('tx_ttnews');
$content .= $tt_news_obj->main_news($this->templateCode, $tt_news_conf);
}
Leider funktioniert das noch nicht zufriedenstellend. Ich bekomme
folgenden Fehler:
Fatal error: Call to a member function enableFields() on a non-object in
D:\Programme\xampp\htdocs\xampp\4.2.3\typo3conf\ext\tt_news\pi\class.tx_ttnews.php
on line 223
Dieser resultiert scheinbar daraus das beim Aufruf der main_news in der
letzten Zeile meiner Methode der Konstruktor von tt_news aufgerufen wird
und darin die Methode init() der tt_news-Erweiterung.
In der genannten Zeile befindet sich der folgende Aufruf:
$this->enableFields = $this->cObj->enableFields('tt_news');
Und genau hier meine ich einen Fehler gefunden zu haben. Das Objekt
"$this->cObj" existiert nicht, da es im Konstruktor der
tt_news-Erweiterung nirgends gesetzt wird und demnach über $this->...
auch nicht erreichbar ist.
Im Konstruktor wird allerdings eine Referenz auf "$this->local_cObj"
gesetzt was durch die folgende Zeile passiert:
$this->local_cObj = t3lib_div::makeInstance('tslib_cObj');
Wie mir scheint wird innerhalb der Methode init() versucht auf
$this->cObj zuzugreifen obwohl der korrekte Aufruf eigentlich
$this->local_cObj sein müsste.
Bin ich hier einem Fehler auf der Spur oder habe ich nur noch irgendwas
bei Aufruf oder Übergabe der Parameter falsch gemacht?
Ciao Markus
More information about the TYPO3-german
mailing list