Ich rufe eine Extension aus einer anderen Extension heraus auf:
require_once (t3lib_extMgm::extPath("myExtension")."pi1/class.tx_myExtension_pi1.php");
$tx_myExtension_pi1 =& new tx_myExtension_pi1();
$tx_myExtension_pi1->conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_myExtension_pi1.'] ;
$tx_myExtension_pi1->main (&$this->content, $tx_myExtension_pi1->conf);
Das Objekt $tx_myExtension_pi1->cObj ist dann NULL.
Deshalb kommt es bei der Funktion init() der Klasse tx_myExtension_pi1 zu einer Fehlermeldung.
Welcher Schritt fehlt mir noch, damit cObj korrekt gesetzt wird?
Es hat diese Zeile gefehlt vor Aufruf der Funktion main()
$tx_myExtension_pi1->cObj = t3lib_div::makeInstance('tslib_cObj');
Jetza funktionierts.
Hi, ich stehe grade vor einem sehr ähnlichen Problem. Ist das alles der Code, der in der Extension, nennen wir sie mal MyExt2, die die andere Extension, nennen wir sie mal wie in Deinem Beispiel myExtension, aufrufen soll?
Oder habe ich da was völlig falsch verstanden?
Grüße, Ines
Hallo Ines,
gut daß Du mich daran erinnerst, die Lösung zu posten!
require_once (t3lib_extMgm::extPath("extension2")."pi1/class.tx_extension2_pi1.php");
$tx_extension2_pi1 =& new tx_extension2_pi1();
$tx_extension2_pi1->cObj = t3lib_div::makeInstance('tslib_cObj');
$tx_extension2_pi1->conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_extension2_pi1.'] ;
$markerArray['###MEINMARKER###'] = $tx_extension2_pi1->main (&$this->content, $tx_extension2_pi1->conf);
Das ist Alles. Damit kann ich den Code, der in der Extension 2 erzeugt wird in der Extension 1 in einen Marker übergeben.
Klappt auch:
TS
plugin.tx_myext_pi1.abc < plugin.tx_otherext_pi1
EXT:
$this->cObj->cObjGetSingle($this->conf['abc'],$this->conf['abc.'])