• Inhalt als PDF-Datei herunterladen
  • Optimierter Druck
Unbeantwortetes Thema

Hooks: mehrere


Autor Nachricht
Verfasst am: 24. 03. 2011 [12:44]
Jacques
Jens
Dabei seit: 24.02.2011
Beiträge: 20
Hallo Dirk,

[EDIT]

Das unten beschriebene Problem existiert zwar, konnte aber durch die neuen BR_-Hooks umgangen werden.
Zu den BR_-Hooks aber auch noch eine Meldung:
Wie es aussieht muss es zu beiden Hooks in der eigenen extension eine entsprechende Funktion geben.
Mein Code sieht wie folgt aus:
PHP
function BR_TemplateElementsHook($obj)
	{
		// you may manipulate $obj->_elements in place
		$row = &$obj->_elements;
		$this->fill_fields($row);
		if (1)
		{
			debug($obj->_elements, '$obj->_elements', __LINE__, __FILE__);
		}
	}
function BR_TemplateElementsTransformedHook() {
  // nur eine leere Funktion, da es sonst eine Fehlermeldung gibt.
}

Hier die Meldung:
Fatal error: Call to undefined method tx_dbstravelextension_pi1::BR_TemplateElementsTransformedHook() in /home/www/t3_dbstest/www/typo3conf/ext/browser/pi1/class.tx_browser_pi1_template.php on line 3398

inf die ext_localconf.php habe ich nur den BR_TemplateElementsHook aufgenommen. Hier ein Codeauszug:
PHP
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['browser']['BR_TemplateElementsHook'][] = 
	'EXT:dbs_travelextension/pi1/class.tx_dbstravelextension_pi1.php:tx_dbstravelextension_pi1->BR_TemplateElementsHook';
 
//	$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['browser']['BR_TemplateElementsTransformedHook'][] = 
//	'EXT:dbs_travelextension/pi1/class.tx_dbstravelextension_pi1.php:tx_dbstravelextension_pi1';

Sobald ich die leere Funktion ausdokumentiere, gibt es die oben genannte Meldung.
So, das war es dann erstmal von mir. Ich hoffe, das waren jetzt nicht zu viele Infos auf einen Schlag.

[/EDIT]
im Zusammenhang mit den ListView-Hook ist mir noch folgender Bug aufgefallen:
Wie schon unter "Browser-Fragen" geschrieben, werden die Werte aus meiner Extension auf den Folgeseiten nicht angezeigt. Das ist das eine Problem. Das andere ist, dass auf allen Folgeseiten "überzählige" Datensätze auftauchen. Und zwar genau so viele, wie es Datensätze auf der jeweiligen Folgeseite gibt.
Beispiel: Insgesamt 19 Datensätze. Einstellung je Seite: 10 Ds
1. Seite: alles korrekt
2. Seite: 9 Datensätze mit den Inhalten aus der Datenbank, 9 weitere Datensätze in denen die berechneten Felder angezeigt werden. Da aber nicht auf die eigentlichen Daten zurückgegriffen wird, sind die Berechnungen auch falsch bzw. es wird "0" (Ziffer 0) ausgegeben.
Hier der Code aus meine extension:

PHP
function vardump_rows(&$params, &$pObj)	{
		// If you like to var_dump the rows from the browser list view, please enable the next line
		// var_dump(__METHOD__ . ' (line '. __LINE__ . ')', $pObj->pObj->rows);
 
		$cnt_rows = count($pObj->pObj->rows);
		for ($i=0;$i< $cnt_rows;$i++) {
			$row = &$pObj->pObj->rows[$i];
			$this->fill_fields($row); // Berechnung der Felder
		}
 
	}

Auffällig ist der Datensatzzähler. Wenn ich die Zeile anpasse und z.B. statt
PHP
$cnt_rows = count($pObj->pObj->rows);
folgendes schreibe:
$cnt_rows = count($pObj->pObj->rows)-8;

dann gibt es auf der 2. Seite nur noch einen "überzähligen" Datensatz.

Ich hoffe, das Problem lässt sich irgendwie lösen.

[Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 24.03.2011 um 13:49.]

MfG
Jacques



Powered by TYPO3 und mm_forum Extension

  • Inhalt als PDF-Datei herunterladen
  • Optimierter Druck