[TYPO3-german] Eigene Extension / Caching Problem

Stefan Frömken firma at sfroemken.de
Wed Jul 21 11:08:06 CEST 2010


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