[TYPO3-german] Flexforms dynamisch / Datensatzseite auslesen

Basti Baumann donillo at gmail.com
Thu Oct 4 12:53:54 CEST 2007


Basti Baumann schrieb:
> Mathias Schreiber [TYPO3] schrieb:
>> Basti Baumann schrieb:
>>> also irgendwie glaube ich meinst du was anderes als ich ;)
>>> Wie ich meine Daten aus dem Flexform Array raus und rein bekomme und 
>>> verarbeite ist mir klar.
>>> Mir ging es aber darum wie ich in meine Abfrage in der Klasse, die 
>>> mir meine dynamischen Felder liefert noch die pid des Ordner bekommem 
>>> in der ich die Records gespeichert habe und die ich in den 
>>> Seiteneigenschaften angegeben habe.
>>
>> Ah, weil in deinem Beispiel hattest du "$this->cObj->pages" benutzt.
>> Und das steht dir in meinem Beispiel ja in $row['pages'] zur verfügung.
>>
>> Schau mal hier:
>> http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.1.0/view/4/3/ 
>>
>>
>> Suche nach ###STORAGE_PID###
>>
>> Das müßte sein, was du suchst (dann auch ohne UserFunc).
>>
> 
> Hi,
> 
> dein Link hat mir zwar nicht wirklich weiter geholfen, aber er hat mich 
> auf die richtige Spur gebracht.
> 
> Ich wollte das nun über eine Zusatzfunktion von hier lösen: 
> http://www.typo3wizard.com/de/artikel/flexible-content-templavoila-anzeige-im-content-element-wizard.html 
> 
> 
> function getStorageFolderPid() {
>     $positionPid = t3lib_div::_GET('id');
>     // Negative PID values is pointing to a page on the same level as 
> the current.
>     if ($positionPid<0) {
>     $pidRow = t3lib_BEfunc::getRecord('pages',abs($positionPid),'pid');
>     $positionPid = $pidRow['pid'];
>     }
>     $row = t3lib_BEfunc::getRecord('pages',$positionPid);
>     $TSconfig = t3lib_BEfunc::getTCEFORM_TSconfig('pages',$row);
>     return intval($TSconfig['_STORAGE_PID']);
>     }
> 
> Damit habe ich die pid und kann alles ausgeben. Allerdings bekomme ich 
> die $positionPid = t3lib_div::_GET('id'); nicht, weil TYPO3 die Url, die 
> aufgerufen wird umwandelt: 
> alt_doc.php?&returnUrl=db_list.php%3Fid%3D253%26table%3D&edit[tt_content][895]=edit 
> 
> 
> Und dann kann ich nicht mit der Standardfunktion t3lib_div::_GET('id') 
> die id auslesen. Wenn ich die Adresse manuell so eintippe:
> alt_doc.php?&returnUrl=db_list.php&id=253&table=edit[tt_content][895]=edit
> dann klappts natürlich. Gibts da irgendeinen Trick oder warum wandelt 
> das t3 so komisch um?
> 
> Grüße Basti

Moin,

nun habe ich  es gelöst, bin mir aber nicht sicher ob das nicht auch 
eleganter geht. Wenn ich keine SeitenId per get Variable auslesen kann, 
dann zerlege ich einfach die Werte der Url:
	$positionPid = t3lib_div::htmlspecialchars_decode(t3lib_div::_GET('id'));
	if(empty($positionPid)){
		$siteid = t3lib_div::_GET('returnUrl');
		$siteid = t3lib_div::explodeUrl2Array($siteid);
		$siteid = $siteid['db_list.php?id'];
		$positionPid = $siteid;
	}

Ist zwar ein wenig umständlicher, aber klappt nun endlich.

Grüße
Basti


More information about the TYPO3-german mailing list