Problem:
Wenn man die Newloginbox per TypoScript integriert (beispielsweise, um sie auf jeder Seite zu integrieren), werden einige Konfigurationsvariablen nicht erkannt. Ein Beispiel ist die im Manual angegebene Variable 'showForgotPassword', welche mit deutscher Einstellung einen Link 'Passwort vergessen?' anzeigt.
Analyse:
Wenn man die Datei 'typo3conf/ext/newloginbox/pi1/class.tx_newloginbox_pi1.php' (bei lokaler Installation) öffnet, kann man nach dem String '$this->pi_getFFvalue($this->cObj->data['pi_flexform']' suchen. Hier werden Abfragen formuliert, die das Vorhandensein eines Formulars erfordern. Diese Abfragen sind Quatsch, da die entsprechenden Variablen aus dem FlexForm ebensogut über TypoScript vergeben werden können.
Lösung:
Die Abfragen sollten sinnvoll geändert werden. Ich habe folgende Änderungen vorgenommen:
Zeile 275, geändert von
zuCode:if ($this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'show_forgot_password', 'sDEF')) {
Zeile 280, geändert vonCode:if ($this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'show_forgot_password', 'sDEF') || $this->conf['showForgotPassword'] == 1) {
zuCode:if ($this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'show_permalogin', 'sDEF') && ($GLOBALS['TYPO3_CONF_VARS']['FE']['permalogin'] == 0 || $GLOBALS['TYPO3_CONF_VARS']['FE']['permalogin'] == 1) && $GLOBALS['TYPO3_CONF_VARS']['FE']['lifetime'] > 0) {
Die Änderung weiterer Zeilen kann sinnvoll sein, wird momentan aber von mir persönlich nicht benötigt.Code:if (($this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'show_permalogin', 'sDEF') || $GLOBALS['TYPO3_CONF_VARS']['FE']['permalogin'] == 1 || $this->conf['show_permalogin'] == 1) && $GLOBALS['TYPO3_CONF_VARS']['FE']['lifetime'] > 0) {
Kommentar:
Mit einer zentralen sinnvollen Zuweisung der Variablen habe ich mich nicht aufgehalten, aber dies sollte von den Programmierern der Extension ins Auge gefaßt werden. Der momentane Code (Version 3.0.0) ist nicht korrekt und die Abfrage in Zeile 280 enthält außerdem sinnlosen Code.
Geändert von david (20.12.2006 um 13:16 Uhr)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen