Zum Inhalt springen

Backend Extension - $this->cObj->data liefert keine Ergebnisse

Erstellt am 19. November 2013 · 2 Antworten · letzte Antwort am 20. November 2013

Tags: PHP, TYPO3 4.x, Frage

freeatweb ·

Hallo,
ich entwickle gerade eine TYPO3-Extension mit folgender Class

class [classname] extends tslib_pibase {  
	var $extKey = [extkey]';
	var $prefixId = [prefixID];
	var $scriptRelPath = [relPath];
	var $pi_checkCHash = true;
	var $conf = array();
	var $lang = array();
	var $extConf = array();
	var $feUsersTca = array();
	var $userId = 0;
	var $contentUid = 0;
	var $storagePid = 0;
	
	public function main($content, $conf) {
	    ...
	    $contentID = $this->cObj->data['uid'];
	    echo t3lib_div::debug($contentID);
            ....

$contentID soll mir die UID des jeweiligen Backend-Datarecords (in diesem Falle FE-User)liefern.
Leider klappt es nicht bzw. es wird keine UID zurückgegeben.

Kann mir bei diesem Problem jemand weiterhelfen - wäre echt super!

Beste Grüße

Julian.​Hofmann · · Beste Antwort

Hallo.

Du musst umdenken: Backend-Programmierung != Frontend-Programmierung
Vieles, was aus der Frontend-Programmierung bekannt ist, ist im Backend (ganz) anders.

Die Klasse tslib_pibase z.B. beschreibt sich selbst wie folgt: "This script contains the parent class, 'pibase', providing an API with the most basic methods for frontend plugins". Für ein BE-Plugin diese Klasse zu erweitern dürfte daher Stolpersteine mit sich bringen. Der erste ist hierbei sicherlich, dass Dir $GLOBALS['TSFE'] komplett fehlt.

Viele Grüße
Julian

freeatweb ·

Hallo Julian,

vielen Dank für deine rasche Antwort!

Da hatte ich ja einen groben Denkfehler (tslib_pibase betreffend) 🙁

Dank deines Denkanstosses habe ich die tsref erneut durchforstet und bin auf die schöne Dokumentation gestossen: https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/User/Index.html.

Für Leute die vor der selben oder ähnlichen Herausforderung stehen - so habe ich meine Class jetzt umgesetzt:

Auszug aus der TCA:

'[field_name]' => array (
			'exclude' => 0,
			'label' => '[path_to_label]',
			'config' => array (
		            'type' => 'user',
			    'size' => '30',
			    'userFunc' => '[EXT:path]/[name_php_datei]:[name of class]->main',
			    'parameters' => array(
				'[parameter1]' => ...,
			    )
			),
	),
class [classname] {  
	public function main($PA, $fObj) {
            ...
	    $data_record = $PA['row'];
            $record_id = $data_record['uid'];

Vielen Dank nochmal an Julian!

Beste Grüße