[TYPO3-german] Eigene Extension / Caching Problem

Chris Bernhard chris at dreamride.de
Wed Jul 21 11:20:08 CEST 2010


Hi Stefan,

genau das hidden inputfield hatte ich übersehen.
Deswegen hats auch in den anderen Extensions ohne Probs
funktioniert.

Okay, vielen Dank für den Ratschlag, das Buch werde ich mir
nebst de Kochbüchern von Jo + Lochbacher noch holen.

Gute Idee, ich danke Dir für Deine Mühe!

Viele Grüße vom Chris

Am 21.07.2010 11:08, schrieb Stefan Frömken:
> Du hast Recht...auch dann klappt es nicht.
>
> 3 Möglichkeiten laut dem Buch von Dmitry Dulepov:
>
> 1.) Füge ein <input type="hidden" name="no_cache" value="1"> in dein
> Template ein
> 2.) In den Seiteneigenschaften "no cache" aktivieren.
> 3.) Programmiertechnisch in PHP mit einigen Angaben in setup.txt nur die
> Ergebnisseite cachen. Aber das schreib ich jetzt nicht alles ab. Hol Dir
> dazu lieber selbst das Buch...ich glaub darüber würd er sich mehr
> freuen, als dass ich jetzt hier sein Buch zitiere :-)
>
> Stefan
>
> Chris Bernhard schrieb:
>> Hi Stefan,
>>
>> ich habe Deinen Vorschlag auch schon in die Tat umgesetzt und das Ganze
>> sieht dann wie folgt aus, leider kommen die Variablen aus dem Formular
>> immer noch nicht an. Irgendwas seltsames passiert hier, wahrscheinlich
>> hab ichs einfach nur falsch gemacht. Siehe:
>>
>> /**
>> * The main method of the PlugIn
>> *
>> * @param string $content: The PlugIn content
>> * @param array $conf: The PlugIn configuration
>> * @return The content that is displayed on the website
>> */
>> function main($content, $conf) {
>> $this->conf = $conf;
>> $this->pi_setPiVarDefaults();
>> $this->pi_loadLL();
>> $this->init(); // call the flexform plugin configuration
>> $ftpuser = $this->piVars['ftpuser'];
>> $ftppass = $this->piVars['ftppass'];
>>
>> if (isset($ftpuser)) {
>> $this->ftpConnect($ftpuser, $ftppass);
>> }
>> else {
>> $content .= $this->renderLogin($this->lConf['contentarea']);
>> }
>> return $this->pi_wrapInBaseClass($content);
>> }
>>
>> /**
>> * The renderLogin function
>> *
>> * @param string $contentarea: The place in which the plugin is displayed
>> * @return The Loginform
>> */
>> function renderLogin($contentarea) {
>>
>> switch ($contentarea) {
>> // if plugin is in contentarea content
>> case 'content':
>> $loginbox .= '
>> <div class="loginbox">
>>
>> <form action="' . $this->pi_getPageLink($GLOBALS['TSFE']->id) . '"
>> class="login" method="post">
>> <div>
>> <div class="inputrow"><label
>> for="ftpuser"><span>Benutzerkennung</span><input type="text"
>> id="ftpuser" name="tx_ftpconnect_pi1[ftpuser]" value="' .
>> $this->piVars['ftpuser'] . '" class="text" /></label></div>
>> <div class="inputrow"><label for="ftppass"><span>Passwort</span><input
>> type="text" id="ftppass" name="tx_ftpconnect_pi1[ftppass]" value="' .
>> $this->piVars['ftppass'] . '" class="text" /></label></div>
>> <div class="spacer"></div>
>> </a></span>
>> <button type="submit" name="start"
>> class="login"><span>Login</span></button>
>> </div>
>> </form>
>> </div>
>> ';
>> break;
>> }
>>
>> return $loginbox;
>> }
>>
>> Vielen Dank für Deine Antwort und allerbeste Grüße vom Chris
>>
>> Am 21.07.2010 10:03, schrieb Stefan Frömken:
>>> Hi Chris,
>>>
>>> wen Du anfängst immer mehr Extension zu schreiben, dann solltest Du
>>> vermehrt die Funktionen von TYPO3 verwenden.
>>>
>>> Dazu gehört, dass du im Formular Deinen Feldern folgende Namen gibst:
>>>
>>> <input id="ftpuser" name="tx_myextension_pi1[ftpuser]" value="" />
>>> <input id="ftppass" name="tx_myextension_pi1[ftppass]" value="" />
>>>
>>> im PHP Code greifst du dann mit
>>>
>>> $ftpuser = $this->piVars['ftpuser'];
>>> $ftppass = $this->piVars['ftppass'];
>>>
>>> darauf zu.
>>>
>>> Das wäre zumindest der korrekte Weg und ich hoffe dass sich dadurch auch
>>> Dein Cachingproblem auflöst.
>>>
>>> Stefan
>>>
>>> Chris Bernhard schrieb:
>>>> Hi zusammen,
>>>>
>>>> habe jetzt schon ein paar kleien Extensions programmiert
>>>> und bin bislang von folgendem Problem verschont geblieben,
>>>> das mich beinahe in den Wahnsinn treibt.
>>>>
>>>> Zwar rufe ich in der Main Klasse der Extension folgendes auf:
>>>>
>>>> $this->conf = $conf;
>>>> $this->pi_setPiVarDefaults();
>>>> $this->pi_loadLL();
>>>> $this->init(); // call the flexform plugin configuration
>>>>
>>>> //var_dump($_POST);
>>>>
>>>> $ftpuser = t3lib_div::_POST('ftpuser');
>>>> $ftppass = t3lib_div::_POST('ftppass');
>>>>
>>>> wobei ftpuser und ftppass einfach beim Abschicken
>>>> des Formulars leer bleiben. Die Variablen im Form
>>>> sind haargenau die selben.
>>>>
>>>> Schalte ich das Caching der kompletten Seite aus, funktionierts
>>>> auf einmal, sprich, die _POST Variablen kommen entsprechend bei mir
>>>> raus.
>>>>
>>>> Ansonsten ergibt ja ein var_dump($_POST); auch die richtigen Werte.
>>>> Nur t3lib_div::_POST('ftpuser'); scheint überhaupt kein Ergebnis
>>>> zurückzuliefern.
>>>>
>>>> In ner anderen Extension von mir funktioniert das einwandfrei, deswegen
>>>> auch meine momentane Ratlosigkeit.
>>>>
>>>> Hat vielleicht von Euch jemand ne Idee, was nun hier anderst läuft?
>>>>
>>>> Vielen Dank und allerbeste Grüße vom Chris
>>



More information about the TYPO3-german mailing list