Zum Inhalt springen

fremde Extension in eigene Extension einbinden -> Problem

Erstellt am 17. Oktober 2007 · 2 Antworten · letzte Antwort am 18. Oktober 2007

Tags: Frage

Jehu ·

Hallo Leute,

ich versuche gerade die Extension 'fileupload' in eine eigene Extension zu integrieren.
typoscript für die fileupload-Ext hab ich gesetzt und die Variablen sind auch in meinem Plugin auslesbar.

require_once(t3lib_extMgm::extPath('fileupload').'pi1/class.tx_fileupload_pi1.php');

.
.
.

$obj = t3lib_div::makeInstance('tx_fileupload_pi1');
$cdata .= $obj->main($content='',$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_fileupload_pi1.']);

Fehler im Frontend:
Fatal error: Call to a member function cObjGetSingle() on a non-object in /home/marco/www/blubber/typo3conf/ext/fileupload/pi1/class.tx_fileupload_pi1.php on line 59

Die besagte Zeile im Plugin:

$content = $this->cObj->cObjGetSingle($this->conf['uploadformcObject'],$this->conf['uploadformcObject.']);

Kann mich jmd. aufklären?

Dank und Gruß
Jehu

jan.​wege ·

Für die von dir erstellte Instanz der fileupload Extension existiert das cObj Objekt nicht. Oder zumindest nicht in dem Scope auf den die Instanz Zugriff hat.
Daher kann die Methode cObjGetSingle() auch nicht aufgerufen werden.
Das würde ich aus der Fehlermeldung schließen.

Lösungsansätze... puuh... evtl musst du das cObj beim Aufruf übergeben oder es dir zur Laufzeit holen.
Vieleicht hilft dir dieser Beitrag hier weiter:
#61663

Alles nur Vermutungen, wenn du einen Lösung gefunden hast würde mich der Weg auch interessieren.

Gibt doch bitte noch ein paar mehr Infos. Ist deine Ext denn auch eine FE Extension oder ein Backend Modul? Usw...

Grüße.

Jehu ·

Vielen Dank, auch für den Link. Den habe ich bei der Recherche nicht gefunden.
In dem von dir genannten Link stand die Lösung:

Ich musste im Plugin fileupload folgenden Eintrag ergänzen:

    global $TSFE;
    $this->cObj = $TSFE->cObj;

Und in meinem dann

require_once(t3lib_extMgm::extPath('fileupload').'pi1/class.tx_fileupload_pi1.php');

.
.
.


    $obj = t3lib_div::makeInstance('tx_fileupload_pi1');
    $cdata .= $obj->main(NULL,$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_fileupload_pi1.']);

So klappts.

Da das Plugin 'fileupload' ziemlich klein ist habe ich es aber gestern komplett in meine Extension integriert. Ich musste sowieso ein paar Anpassungen vornehmen (Bilder müssen bei mir nach uploads/pics/ statt nach fileadmin/... und noch so ein paar Sachen.).

Vielen Dank für die Hilfe!

Gruß
Jehu