Account specifications

De Wiki.

Sommaire

Instanciation automatique

Le Contrôleur du module, peut être instancié pour gérer le rendu d'une Vue dans le cadre du CMS (avec scripts, styles, etc. inhérents au projet), ou bien en mode brut sans aucun habillage extérieur au module.

La configuration du Controlleur dans le cadre du projet s'effectue dans le fichier /modules/account/core/process.php.

Dans toutes les situations, c'est ce fichier qui est appelé comme point d'entrée du module. Si une utilisation avec habillage CMS s'avère nécessaire, ce fichier prendra en charge la redirection vers la version CMS appropriée.

Y sont déclarés :

  • le chemin du fichier correspondant à la version habillées de l'affichage
 // declare here wrapped mode CMS page
 $wrapped = 'content/'.$_SESSION['rep_travail'].'/outils/gestion_compte.php';
  • La matrice des actions disponible précisant la vue associée et le mode de rendu dans chaque cas :
 // declare here all available views for module interfaces
 // see AccountController for available and verified actions
 $views = array(	'create_form'		=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountCreateForm'),
 			'create_success'	=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountCreateSuccess'),
 			'create_email'		=> array(	'mode'	=> 'raw',
 								'render'=> 'renderAccountCreateEmail'),
 			'create_error'		=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountCreateError'),
 			'activate_success'	=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountActivateSuccess'),
 			'activate_error'	=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountActivateError'),
 			'login_form'		=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountLogInForm'),
 			'login_success'		=> array(	'mode'	=> 'raw',
 								'render'=> 'renderAccountLogInSuccess'),
 			'login_error'		=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountLogInError'),
 			'disconnect'		=> array(	'mode'	=> 'raw',
 								'render'=> ""),
 			'recover_form'		=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountRecoverForm'),
 			'recover_success'	=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountRecoverSuccess'),
 			'recover_email'		=> array(	'mode'	=> 'raw',
 								'render'=> 'renderAccountRecoverEmail'),
 			'recover_error'		=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountRecoverError'),
 			'edit_form'		=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountEditForm'),
 			'edit_success'		=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountEditSuccess'),
 			'edit_email'		=> array(	'mode'	=> 'raw',
 								'render'=> 'renderAccountEditEmail'),
 			'edit_error'		=> array(	'mode'	=> 'wrapped',
 								'render'=> 'renderAccountEditError')		
 );

"raw" correspond à une rendu brut, et "wrapped" à un rendu habillé. A noter que l'action de déconnexion ne nécessite pas systématiquement de rendu.

Par convention, chaque action XXX sera déclinée au besoin en XXX_form, XXX_success, XXX_error et XXX_email.

Le fichier correspondant à la version habillées de l'affichage doit être une page CMS constituée d'une brique contenant simplement :

 <?php
 
 // this instance of the controller should be automatically called when rendering with CMS HTML wrapping is needed
 // $views was already declared in /includes/modules/account/core/process.php
 
 include_once('cms-inc/account/class.AccountController.php');
 $controller = new AccountController($views);
 $controller->build();
 
 ?>

Instanciation ciblée

Pour des besoins spécifiques, le Contrôleur peut aussi être utilisé en lui fournissant une Vue spécifique à traiter immédiatement avec le mode de rendu demandé :

 include_once('cms-inc/account/class.AccountController.php');
 $controller = new AccountController();
 // create new instance (render_class_name, wrapped_mode ?)
 $controller->build('renderInlineLogInForm', true);

Si le mode de rendu n'est pas spécifié, le mode "raw" est préféré par défaut.

Ce mode d'instanciation se détache du fonctionnement automatisé du module et peut peut, par exemple, être utilisé dans une brique de contenu CMS.

Formulaires

Tous les formulaires doivent être soumis vers le point d'entrée du module, /includes/modules/account/core/process.php.

Ils transmettent un champ caché <action> fournissant dans tous les cas l'action cible XXX_success. Le Contrôleur se charge de transformer l'action cible si par exemple une erreur survient.

Les champs des formulaires correspondant aux données POST devant être traitées par le Contrôleur du module doivent être préfixées 'account_' et respecter le nommage suivant :

  • account_gender
  • account_firstname
  • account_lastname
  • account_telephone
  • account_cellphone
  • account_email
  • account_password
  • account_professionnal (Y/N)
  • account_company
  • account_birthdate
  • account_addr_1
  • account_addr_2
  • account_addr_3
  • account_zipcode
  • account_city
  • account_country


Lors de l'authentification, <account_email> et <account_password> sont utilisés.

Lors de la récupération de mot de passe, <account_email> est utilisé.

Lors de la modification du mot de passe du compte, le champ pour le mot de passe actuel doit être nommé <current_password>.

Messages

Le module envoie des messages par email dans les situations suivantes :

  • création de compte (avec ou sans retour de confirmation)
  • modification de compte
  • récupération de compte

Dans tous les cas, le module dispose de messages "par défaut" mais si des Vues spécifiques lui sont fournies, il les utilisera pour générer le contenu des emails. Ces Vues lui sont déclarées dans la matrice sous les noms <create_email>, <edit_email> et <recover_email>