Hallo allesamt!
Heute habe ich mich ein wenig mit der Aufgabe beschäftigt das FE-Login Formular in einer Modal-Box unterzubringen. Das heißt aber, dass nach einem Fehler oder bei der Passwort-Vergessen Funktion die Modal-Box automatisch wieder aufgerufen werden muss.
Hierfür habe ich mir fix einen ViewHelper zusammengebastelt, der mir austüftelt ob die Modal-Box angezeigt werden soll oder nicht.
class ShowLoginModalViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper {
/**
* @return string
*/
public function render() {
$id = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP( 'id' );
$felogin = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP( 'tx_felogin_pi1' );
$logintype = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP( 'logintype' );
if ( ( !empty( $felogin ) && $felogin['forgot'] == 1 ) || ( $id == 1 && !empty( $logintype ) && $logintype == 'login' ) )
return $this->renderThenChild();
else
return $this->renderElseChild();
}
}
Wenn die Bedingungen zutreffen und $this->renderThenChild() ausgeführt wird, wird ein Javascript Snippet eingefügt, das nach Laden der Seite die Modal-Box öffnet.
<!-- Login Form Modal -->
<sf:showLoginModal>
<f:then>
<!-- Modal Auto Open -->
<script>
$(window).load(function(){
$('#login').modal('show');
});
</script>
</f:then>
<f:else>
<!-- Modal Closed -->
</f:else>
</sf:showLoginModal>
<div class="modal fade" id="login" tabindex="-1" role="dialog" aria-labelledby="Login Form">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
</div>
<v:content.render contentUids="{0: settings.uid.loginform}" />
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
Funktioniert auch alles wunderbar solange der Cache auf der Seite deaktiviert ist.
Sobald ich den Haken für's Deaktivieren des Caches entferne und alles ausprobiere, funktioniert die Evaluierung nicht mehr und die Modal-Box öffnet sich nicht mehr automatisch.
Hat jemand eine Idee wie man entweder das Problem mit dem Cache löst?
Oder gibt es gar noch einen besseren Weg das FE-Login Formular in einer Modal-Box zu handeln?
TYPO3: 6.2.4
Vielen Dank und schönes Wochenende!
Grüße,
Philipp