Système de template pour la page de login
Il est possible d'utiliser un "template" de description de la page login alternatif (en le définissant avec l'option "ALT_LOGIN_TEMPLATE" du fichier de configuration d'affichage "config_display.inc.ini.php") afin de personnaliser l'affichage de la page login. Il est cependant à noter qu'un minimum de connaissance en développement web (html, php) est nécessaire.
La suite est purement technique.
Pour la génération du template personnaliser, l'utilisation du template par défaut (login_template.php situé à la racine du site) peut être utile.
Depuis le fichier du template, les constantes de traduction sont disponibles.
Les différentes informations utiles sont transmise au template via tableau $aTemplateLoginInfo :
- bExtranet : booléen, le mode extranet est-il activé ?
- bHaveCssForOverload : booléen, un fichier de surcharge css est-il défini dans le fichier de configuration d'affichage
- sCssForOverload : string, chemin vers le fichier de surcharge css
- bAltBg : booléen, un fond alternatif est-il défini dans le fichier de configuration d'affichage
- sAltBg : string, chemin vers le fond alternatif
- bHaveError : booléen, as t ont une levé d'erreur
- sErrorMess : string, éventuel message d'erreur
- bDisplayLangBloc : booléen, doit-on afficher le bloc de sélection de langue (a-t-on plusieurs langues disponible)
- aLangAutorised : array, liste des langues disponible (fr => booleen,es => booléen, en => booléen) (les différente valeurs peuvent ne pas être initialisé).
- sLoginFormAction : string, l'action du formulaire de connexion à exécuter.
- sLogin : string, éventuel login récupéré (ex : via certificat)
- bIsPassRegen : booléen, as on affaire à une régénération de mot de passe
- bDebug : booléen, est-on en mode debug
- sRemoteAddr : string, adresse du serveur web (disponible en mode debug uniquement)
- sServiceLocation : string, adresse du web service (disponible en mode debug uniquement)
Le formulaire de connexion doit être en méthode POST et avoir comme action "?action=<?php echo $aTemplateLoginInfo['sLoginFormAction'];?>"
Il doit posséder les champs "uLogin" pour le login et "uPasswd" pour le mot de passe.
Exemple de page reproduisant la page de login originale avec toutes ses fonctionnalités:
Les blocs gérant les fichiers CSS alternatifs, le fond alternatif, ainsi que le mode debug, semble dans le cas d'une page login personnalisé, assez peu utile, mais ils ont été mis dans cet exemple.
c<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="<?php echo IDS_LANG; ?>">
<head>
<title>SIMAX</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr,en,es" />
<link rel="shortcut icon" href="./ressources/style/img/favicon.ico" />
<link rel="stylesheet" href="./ressources/style/css/layout.inc.css?<?php echo STR_CACHE_VERSION;?>" type="text/css" media="all" />
<link rel="stylesheet" href="./ressources/style/css/form.inc.css?<?php echo STR_CACHE_VERSION;?>" type="text/css" media="all" />
<link rel="stylesheet" href="./ressources/style/css/graph.inc.css?<?php echo STR_CACHE_VERSION;?>" type="text/css" media="all" />
<link rel="stylesheet" href="./ressources/style/css/plugins.css?<?php echo STR_CACHE_VERSION;?>" type="text/css" media="all" />
<link rel="stylesheet" href="./ressources/style/css/site.min.css?<?php echo STR_CACHE_VERSION;?>" type="text/css" media="all" />
<link rel="stylesheet" href="./ressources/style/css/login<?php if ($aTemplateLoginInfo['bExtranet']) echo '-extranet'; ?>.min.css?<?php echo STR_CACHE_VERSION;?>" type="text/css" media="all" />
<link rel="stylesheet" href="./ressources/style/css/login-commun.inc.css?<?php echo STR_CACHE_VERSION;?>" type="text/css" media="all" />
<?php if ($aTemplateLoginInfo['bHaveCssForOverload']) : ?>
<!-- Gestion css definit dans le fichier de config -->
<link rel="stylesheet" href="<?php echo $aTemplateLoginInfo['sCssForOverload']; ?>?<?php echo STR_CACHE_VERSION;?>" type="text/css" media="all" />
<?php endif; ?>
<?php if($aTemplateLoginInfo['bAltBg']) : ?>
<!-- background alternatif defini par fichier config. -->
<style type="text/css" media="all">
#container{
background: url( <?php echo $aTemplateLoginInfo['sAltBg']; ?> ) no-repeat top left;
</style>
<?php endif; ?>
</head>
<body class="cssLoginBody">
<div id="container">
<div id="form-login-wrapper">
<!-- bloc erreur -->
<?php if ($aTemplateLoginInfo['bHaveError']) : ?>
<div id="result">
<p class="error">
<?php echo $aTemplateLoginInfo['sErrorMess']; ?>
</p>
</div>
<div class="reset-login-form"> </div>
<?php endif;?>
<!-- bloc selection langue -->
<?php if ($aTemplateLoginInfo['bDisplayLangBloc']) : ?>
<?php if ( $aTemplateLoginInfo['aLangAutorised']['fr'] ) : ?>
<a href='login.php?lang=fr'><img src='./ressources/style/img/flag/fr.png' alt='fr' title='fr' /></a>
<?php
endif;
if ( $aTemplateLoginInfo['aLangAutorised']['es'] ) :
?>
<a href='login.php?lang=es'><img src='./ressources/style/img/flag/es.png' alt='es' title='es' /></a>
<?php
endif;
if ( $aTemplateLoginInfo['aLangAutorised']['en'] ) :
?>
<a href='login.php?lang=en'><img src='./ressources/style/img/flag/gb.png' alt='en' title='en' /></a>
<?php endif; ?>
<?php endif; ?>
<!-- form de login a proprement parler -->
<form id="login-form" class="niceform" action="<?php echo $_SERVER['PHP_SELF'];?>?action=<?php echo $aTemplateLoginInfo['sLoginFormAction'];?>" method='post'>
<div class="line-form">
<div class="labels">
<label for="uLogin" class="login-label"><?php echo IDS_LOGIN; ?></label>
</div>
<div class="inputs">
<input size="29" class="input-text" type="text" id="uLogin" name="uLogin" value="<?php echo $aTemplateLoginInfo['sLogin']; ?>" />
<?php if ($aTemplateLoginInfo['bIsPassRegen']) : ?>
<a href="login.php" class="loginForget"> <?php echo IDS_PASSWORD_REGEN_BACK; ?> </a>
<?php endif; ?>
</div>
</div>
<?php if(!$aTemplateLoginInfo['bIsPassRegen']) : ?>
<div class="line-form">
<div class="labels">
<label for="uPasswd" class="login-label"><?php echo IDS_PASSWORD; ?></label>
</div>
<div class="inputs">
<input size="29" class="input-text" type="password" id="uPasswd" name="uPasswd" />
<?php if(!$aTemplateLoginInfo['bExtranet']) : ?>
<a href="login.php?forget=pwd" class="loginForget"><?php echo IDS_PASSWORD_FORGET; ?></a>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<div class="line-form btn">
<input type="submit" value="<?php echo $sButtonText; ?>">
</div>
</form>
</div>
<!-- information pour le mode debug -->
<?php if ($aTemplateLoginInfo['bDebug'] ) : ?>
<div style="padding-top:100px; ">
From : <?php echo $aTemplateLoginInfo['sRemoteAddr']; ?><br />
WSDL : <?php echo $aTemplateLoginInfo['sServiceLocation']?>
</div>
<?php endif; ?>
<!-- block d'affichage numeros version -->
<div class="version">
<div>
<?php echo IDS_VERSION_SIMAX . $aStreamInfos['sSimaxVersion'] ; ?>
<br />
<?php echo IDS_VERSION_SITE . STR_VERSION_NUMBER ; ?>
<br />
<div class="changeDisplayMode">
<a href="./mobile/index.php?changeMode=true"> <?php echo IDS_MOBILE_MODE; ?> </a>
</div>
</div>
</div>
</div>
<!-- inclusion fichier js -->
<script type="text/javascript" src="./vendors/jquery/jquery.min.js?<?php echo STR_CACHE_VERSION;?>"></script>
<script type="text/javascript" src="./vendors/jquery/plugins/jnice/jquery.jnice.min.js?<?php echo STR_CACHE_VERSION;?>"></script>
<script type="text/javascript" src="./ressources/jscripts/apply-jnice.js?<?php echo STR_CACHE_VERSION;?>"></script>
</body>
</html>
Mis à jour

