Hallo zusammen
Ich wollte die News so erweitern, dass man jeder News-Kategorei eine CSS-Klasse mitgeben kann, die dann eine individulle Darstellung der einzelnen Beiträge in der List- und Latest-Ansicht ermöglicht.
Ausgabe in der Art (Pseudo-HTML):
<div class="cat1">Newstext</div>
<div class="cat2">Newstext</div>
<div class="cat1">Newstext</div>
Das ganze wollt ich sauber mittels Hooks machen, damit ein Update der News möglich ist.
Nach dem erstellen der Extension erhalte ich aber die Fehlermeldung:"
Warning: Cannot modify header information - headers already sent by (output started at ...typo3conf/ext/dgc_newsext/pi1/class.tx_dgc_newsext.php:15) in ...typo3/sysext/cms/tslib/class.tslib_fe.php on line 2952"
Was ich bis jetz gemacht habe:
- Extension angelegt (dgc_newsext)
- class.tx_newsext.php angeleft
- ext_localconf.php angelegt
class.tx_newsext.php
<?php
class tx_dgc_newsext{
function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj) {
$this->pObj=&$pObj;
$markerArray['###NEWS_CSS###'] = 'xx';
return $markerArray;
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dgc_newsext/pi1/class.tx_dgc_newsext.php']){
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dgc_newsext/pi1/class.tx_dgc_newsext.php']);
}
?>
ext_localconf.php
<?php
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraItemMarkerHook'][] = 'EXT:dgc_newsext/pi1/class.tx_dgc_newsext.php:tx_dgc_newsext';
?>
Kann mir jemand sagen was ich falsch gemacht habe?
Besten Dank
GreenBanana
greenbanana schrieb
class.tx_newsext.php
<?php
class tx_dgc_newsext{
function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj) {
$this->pObj=&$pObj;
Zeile 4 ist Quatsch (wo bitteschön wird &$pObj definiert ?) und führt zu einer Fehlermeldung.
Diese wiederum führt zur altbekannten Warning: Cannot modify header information - headers already sent by -Warnung.
Tip: benutze öfter mal ein debug(), z.B. debug($this->pObj,'$this->pObj');
😉
Halllo Jenses
Vielen Dank für deine Antwort. Am Aufruf "$this->pObj=&$pObj;" kann es leider nicht liegen. Die Fehlermeldung erscheint trotz dem Entfernen dieser Zeile:
<?php
class tx_dgc_newsext{
function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj) {
$markerArray['###NEWS_CSS###'] = 'xx';
return $markerArray;
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dgc_newsext/pi1/class.tx_dgc_newsext.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dgc_newsext/pi1/class.tx_dgc_newsext.php']);
}
?>
Was ich nicht verstehe ist, dass im Grunde ja alles funktioniert. Der Marker ###NEWS_CSS### wird mit "xx" gefüllt und ausgegeben.
Es ist ja nicht zwingend, dass eine bestehende Funktion erweitert wird, oder?
greenbanana schrieb
Warning: Cannot modify header information - headers already sent by (output started at ...typo3conf/ext/dgc_newsext/pi1/class.tx_dgc_newsext.php:15) ...
Wo und was steht denn eigentlich in Zeile 15 ???
Ja, dass ist ja eben das "gespenstische"... das File (class.tx_newsext.php) hat nur 11 Zeilen (im Moment). Wollte zum testen ja nur mal die "xx" einem Marker in tt_news übergeben.
Und es ist also auch nicht so, dass nach dem ?> noch irgendwelche leeren Zeilen drin sind.
...und es hatte trotzdem noch eine Leerzeile. #angry#
Damit hätte sich mein Problem gelöst. Ich danke Dir viel mal für Deine Hilfe.
Gruss