Eine Extension in anderer Extension aufrufen, $this->cObj ist nicht gesetzt [Gelöst]

  • typo3tester typo3test...
    Jedi-Meister
    0 x
    260 Beiträge
    0 Hilfreiche Beiträge
    15. 03. 2010, 18:03

    Ich rufe eine Extension aus einer anderen Extension heraus auf:

    1. require_once (t3lib_extMgm::extPath("myExtension")."pi1/class.tx_myExtension_pi1.php");
    2. $tx_myExtension_pi1 =& new tx_myExtension_pi1();
    3. $tx_myExtension_pi1->conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_myExtension_pi1.'] ;
    4. $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?


  • 1
  • typo3tester typo3test...
    Jedi-Meister
    0 x
    260 Beiträge
    0 Hilfreiche Beiträge
    15. 03. 2010, 18:22

    Es hat diese Zeile gefehlt vor Aufruf der Funktion main()

    1. $tx_myExtension_pi1->cObj = t3lib_div::makeInstance('tslib_cObj');

    Jetza funktionierts.

  • icy icy
    Sternenflotten-Admiral
    0 x
    170 Beiträge
    0 Hilfreiche Beiträge
    29. 03. 2010, 21:13

    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

  • typo3tester typo3test...
    Jedi-Meister
    0 x
    260 Beiträge
    0 Hilfreiche Beiträge
    30. 03. 2010, 07:29

    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.

  • bobosch bobosch
    T3PO
    0 x
    13 Beiträge
    0 Hilfreiche Beiträge
    23. 03. 2012, 16:56

    Klappt auch:

    TS
    plugin.tx_myext_pi1.abc < plugin.tx_otherext_pi1

    EXT:
    $this->cObj->cObjGetSingle($this->conf['abc'],$this->conf['abc.'])

  • 1