Zum Inhalt springen

TS: Werte aus select in userfunc nutzen

Erstellt am 4. September 2008 · 2 Antworten · letzte Antwort am 13. Juli 2010

Tags: Frage

bobsomoto ·

Hallo,
ich lese per Typoscript select die fe_user tabelle aus und gebe Werte per zb:

10 = TEXT
10.field = username

aus. Jetzt muss ich allerdings die uid auslesen um diese einer userfunc zu übergeben, leider haben alle meine Lösungsansätze nicht funktioniert. Ein Posting in der Mailinglist hat zum Ergebnis gehabt, daß ich in meiner userfunc per cObjectgetSingle auf die Datensätze zugreifen kann, leider ohne Erklärung wie genau im TS der Wert (in meinem Fall die uid) an die Funktion übergeben wird oder wie er ins cObject gelangt und dann in php per cObjectgetSingle ausgelesen werden kann. Vielleicht kann mir jemand einen Ansatz oder ein kleines Snippet erklären/erstellen um mein Problem zu lösen. Ich bin für jede Hilfe dankbar, da ich leider nichts finden kann.

Gruss
Boris

sirobbob ·

Hallo, ich habe jetzt folgendes nach Kommunikation mit einem Coremitglied...lol das klappt nur leider nicht. Hier mein Code:

includeLibs.usericons = fileadmin/template/php/usericons.php
temp.icons = USER
temp.icons {
	userFunc = user_icons->getIcons
	user = TEXT
	user.data = register:fe_user_uid
}

temp.v3User = TEMPLATE
temp.v3User { 
	template = FILE
	template.file = {$html}user.html
	workOnSubpart = BODY
	marks {
		IMAGE < temp.userImage
		NAME = TEXT
		NAME.field = username
		GENUSS < temp.icons
		SHORT = TEXT
		SHORT.field = comments
		SHORT.crop = 44 | ... | 1
	}	
}

temp.startUser = CONTENT
temp.startUser {
		table = fe_users
		select.max = 3
		select.where = 1=1
		select.andWhere = usergroup=2
		select.pidInList = 19
		select.sorting = crdate
		renderObj = COA
		renderObj {
			10 = LOAD_REGISTER
			10.fe_user_uid.field = uid
			20 < temp.v3User
			30 = RESTORE_REGISTER			
		}
}

hier die zugehörige userfunc zu testzwecken:

<?php
class user_icons {
	var $cObj;
	
	function getIcons($content, $conf) {
		$cObj = t3lib_div::makeInstance('tslib_cObj');
		$cObj->start(array());
		$result = $cObj->cObjGetSingle($conf['user'], $conf['user']);
		
		$content .= $result;
		return $content;
	}
}
?>

Ich bekomme in der Ausgabe immer den Anfangsbuchstaben des Contenttyps von user...
user = TEXT -> T, user = COA -> C
also übergibt er mir nicht den aus dem Register ausgelesenen Wert. Kann mir jemand sagen was da falsch läuft?

Gruss
Boris

Julian.​Hofmann ·

Spät, aber vielleicht für die Nachwelt ein Hinweis:

Hier fehlt definitiv ein Punkt am Ende des Key des zweiten Parameters. Ansonsten wird mit $conf['user'] nur der String "TEXT" (bzw. Typ des CE) übergeben, statt eines Config-Arrays, welches in $conf['user.'] steckt.

$result = $cObj->cObjGetSingle($conf['user'], $conf['user']);

Müsste sein

$result = $cObj->cObjGetSingle($conf['user'], $conf['user.']);