FlexForm Konfiguration leer in eigenem Page Type?
| Autor | Nachricht |
|---|---|
|
Verfasst am: 05. 08. 2008 [00:16]
|
|
|
SeveQ
Themenersteller
Dabei seit: 31.05.2005
Beiträge: 101
|
Hi Leute, ich hab für einen Ajax Request einer eigenen Extension folgendermaßen eine Response Page gebaut. EXT:blubb/pi1/static/setup.txt: TYPOSCRIPT includeLibs.blubbediblubb = EXT:blubb/pi1/class.tx_blubb_pi1.php blubb_page > blubb_page = PAGE blubb_page { typeNum = 12345 config { language = de locale_all = de_DE disableAllHeaderCode = 1 sendNoCacheHeaders = 1 metaCharset = utf-8 no_cache = 1 admPanel = 0 xhtml_cleaning = 0 additionalHeaders = Content-Type:text/plain;charset=utf-8 } 10 < plugin.tx_blubb_pi1 10.userFunc = tx_blubb_pi1->getAjaxResponse } Das funktioniert soweit auch schon sehr gut. Bis auf eine Sache: ich hab im Kontext dieser Seite aus irgendeinem Grund keine Werte aus der FlexForm Konfiguration zur Verfügung. Ich lese die FlexForm Config in einer eigenen Funktion ein. PHP function initFF()
{
$content = "";
$this->pi_initPIflexForm();
$this->lConf = array();
$piFlexForm = $this->cObj->data['pi_flexform'];
foreach($piFlexForm['data'] as $sheet => $data)
{
foreach( $data as $lang => $value )
{
foreach( $value as $key => $val )
{
$this->lConf[$key] = $this->pi_getFFvalue($piFlexForm, $key, $sheet);
}
}
}
return $content;
}Im Kontext der Hauptseite funktioniert das zu 100%. Im Kontext der Response Seite ist $this->cObj->data['pi_flexform']; nicht existent. Wie kommt das? Und wie erreiche ich, daß auch im Kontext der Response Page die Konfiguration zur Verfügung steht? Danke Grüße, Hendrik |
|
Verfasst am: 05. 08. 2008 [02:28]
|
|
|
SeveQ
Themenersteller
Dabei seit: 31.05.2005
Beiträge: 101
|
Mir isses gerade wie Schuppen von den Augen gefallen: weil es gar keine Konfiguration für diese Page gibt. Die vorgenommenen Einstellungen sind nicht für das Plugin global, sondern nur für ein spezifisches Contentitem gültig... Oh man! |
|
Verfasst am: 05. 08. 2008 [06:10]
|
|
|
just2b
Moderator
Dabei seit: 04.08.2004
Beiträge: 19047
|
und damit du zugriff auf das TS hast, müsstest du noch den Parameter $conf übergeben, so wie in deinem plugin georg => TYPO3 - inspiring people to share <= aber kein Support per PM!
=> in eigener Sache: · inspiring people to share your location Trag dich in die TYPO3 Weltkarte ein und zeige wie groß die TYPO3 Community ist - vielen Dank!<= |
|
Verfasst am: 03. 03. 2009 [15:48]
|
|
|
michelfontaine
Dabei seit: 24.08.2004
Beiträge: 161
|
Ich habe das gleiche Problem und die Schuppen sind bei mir noch auf den Augen. Was bedeutet denn Die vorgenommenen Einstellungen sind nicht für das Plugin global, sondern nur für ein spezifisches Contentitem gültig ?Warum steht $this->cObj->data['pi_flexform'] in meinem Plugin nur bei Pagetype 0 zur Verfügung (während andere Werte aus dem data-Array auch bei anderen Pagetypes zur Verfügung stehen)? Wo wird die Auswahl getroffen? Und wo muss ich $conf übergeben? Im TS oder wo? Bin leider aus Euren Aussagen nicht schlau geworden... Viele Grüße Mic Es gibt keinen Standart!
http://www.k-faktor.com/standart/ |
|
Verfasst am: 04. 05. 2010 [17:08]
|
|
|
tylfaril
Dabei seit: 04.05.2010
Beiträge: 2
|
hi. ich hab leider ein ähnliches, um nicht zu sagen identes problem. ich hab auf meiner hauptseite einen datenbankzugriff der von einem paramter aus einer flexform abhängig ist. mache ich dann einen ajax call kann die flexform nicht mehr initialisiert werden und meine abfrage geht in der datenbank ins leere. mein typoscript für meine extension sieht so aus: TYPOSCRIPT #AJAX call ajaxCall = PAGE ajaxCall { typeNum = 5001 10 < plugin.tx_infproject_pi1 10.pid_list > 10.pid_list = 37 config { disableAllHeaderCode = 1 xhtml_cleaning = 0 admPanel = 0 debug = 0 no_cache = 1 } } jetzt soll die 37 aber aus der aktuellen $conf['pidList'] kommen. bei meinem AjaxCall füge ich dann der URL "&type=5001" hinzu. [javascript] $.ajax({ type: "POST", url: document.URL + '&type=5001', [/javascript] mir ist leider nicht klar wie ich den Parameter $conf übergeben soll, so wie just2b meinte bzw wie ich die Konfiguration für mein Objekt mit der typeNum 5001 von meiner hauptseite übernehmen kann. einen weiteren Lösungsansatz habe ich mit eID unternommen. obwohl ich den noch nicht zum Laufen gebracht habe und daher nicht weiß ob mir auf diesem weg die $this->piVars bzw $conf erhalten bleibt. bei meiner JS behandlung füge ich dann ein "&eID=ajaxCall" hinzu. [javascript] $.ajax({ type: "POST", url: document.URL + '&eID=ajaxCall', [/javascript] in meiner ext_localconf.php hab ich ebenfalls die Zeile PHP $GLOBALS ['TYPO3_CONF_VARS']['FE']['eID_include']['ajaxCall'] = 'EXT:inf_project/ajaxCall.php'; hinzugefügt. jedoch gibt mein php script ajaxCall.php ( PHP <?php echo "ajaxCall.php"; ?> nichts zurück. Hat jemand Erfahrungen gemacht? Oder sogar eine Lösung? Ich bräuchte nach dem Ajax Aufruf einen Zugriff auf die Daten in der FlexForm. lg Matthias |
|
Verfasst am: 18. 07. 2011 [11:45]
|
|
|
Shark1982
Dabei seit: 29.06.2006
Beiträge: 43
|
Gibts es denn dafür jetzt eine Möglichkeit ? Stehe vor dem gleichen Problem. Zitat: und damit du zugriff auf das TS hast, müsstest du noch den Parameter $conf übergeben, so wie in deinem plugin Wo genau muss ich den Parameter $conf übergeben in PHP oder TS steh auf dem Schlauch ? Mitglied in der www.mediengarage.de
|
|
Verfasst am: 21. 07. 2011 [14:26]
|
|
|
tylfaril
Dabei seit: 04.05.2010
Beiträge: 2
|
also bei mir rufe ich einfach $this->initPIflexForm(); auf ich schätze das habe ich aus der tt_news: PHP $this->pi_initPIflexform();
// Copy the flexform data to a new object
$piFlexForm = $this->cObj->data['pi_flexform'];
// Combine FlexForm and TS values
if ($piFlexForm['data']) {
foreach ($piFlexForm['data'] as $sheet => $data) {
foreach ($data as $lang => $value) {
foreach ($value as $key => $val) {
$val = $this->pi_getFFvalue($piFlexForm, $key, $sheet);
/* If value exists in Flexform, overwrite existing Typoscript value or create new array entry */
if ($val != null) {
$this->conf[$key] = $val;
}
}
}
}
}die flexform daten sind dann richtig gefüllt wenn der ajaxCall richtig eingerichtet ist sollten die variablen normal befüllt sein und zur verfügung stehen. oder war das nicht genau das problem? |



