1
16

Espace client

BD

Dans la table role de la BD, ajouter le rôle client :

INSERT INTO `izendsms_role` (`role_id`, `name`) VALUES (NULL, 'client');

IMPORTANT : Changez le préfixe des tables de la BD si ce n'est pas izendsms_.

Code

Renommez le fichier actions/home.php actions/main.php.

Éditez le fichier actions/main.php. Renommez la fonction main.

Recréez le fichier actions/home.php avec le contenu suivant :

  1. require_once 'userhasrole.php';
  2.  
  3. function home($lang) {
  4.     if (user_has_role('client')) {
  5.         return run('client', $lang);
  6.     }
  7.  
  8.     return run('main', $lang);
  9. }

Exécute l'action client si l'utilisateur est connecté en tant que client ou l'action main par défaut.

Créez le fichier actions/client.php avec le contenu suivant :

  1. function client($lang) {
  2.     head('title', translate('client:title', $lang));
  3.  
  4.     $banner = build('banner', $lang);
  5.  
  6.     $info = build('clientinfo', $lang);
  7.  
  8.     $content=view('client', $lang, compact('info'));
  9.  
  10.     $output = layout('standard', compact('banner', 'content'));
  11.  
  12.     return $output;
  13. }

Ajoutez la traduction du titre de la page dans le fichier includes/strings.inc en français et en anglais :

  1.         'client:title'          => 'Client',
  1.         'client:title'          => 'Client',

Le bloc clientinfo détaille un compte client. Créez le fichier blocks/clientinfo.php avec le contenu suivant :

  1. require_once 'userprofile.php';
  2.  
  3. function clientinfo($lang) {
  4.     $name=user_profile('name');
  5.     $mail=user_profile('mail');
  6.  
  7.     $account_page=url('account', $lang);
  8.  
  9.     $output = view('clientinfo', $lang, compact('name', 'mail', 'account_page'));
  10.  
  11.     return $output;
  12. }

Ajoutez le fichier views/fr/clientinfo.phtml :

  1. <p><span id="clientname" title="Identification"><?php echo $name; ?></span>
  2. <img src="<?php echo $base_path; ?>/avatars/<?php echo $name; ?>.png" alt="" title="<?php echo $name; ?>" />
  3. <span id="clientmail" title="Email"><?php echo $mail; ?></span></p>
  4. <p class="info noprint">Pour modifier votre identifiant, votre email ou changer votre mot de passe, <a href="<?php echo $account_page; ?>" title="Modifiez vos informations personnelles">cliquez ici</a>.</p>

Ajoutez le fichier views/en/clientinfo.phtml :

  1. <p><span id="clientname" title="Identification"><?php echo $name; ?></span>
  2. <img src="<?php echo $base_path; ?>/avatars/<?php echo $name; ?>.png" alt="" title="<?php echo $name; ?>" />
  3. <span id="clientmail" title="Email"><?php echo $mail; ?></span></p>
  4. <p class="info noprint">To modify your identifier, your email or change your password, <a href="<?php echo $account_page; ?>" title="Modify your personal information">click here</a>.</p>

Ajoutez le CSS pour l'identifiant et l'adresse d'email à la fin du fichier css/theme.css :

Ajoutez le fichier views/fr/client.phtml :

  1. <h3>Votre compte</h3>
  2. <?php echo $info; ?>

Ajoutez le fichier views/en/client.phtml :

  1. <h3>Your account</h3>
  2. <?php echo $info; ?>

Ajoutez le rôle client au paramètre de configuration $supported_roles dans includes/config.inc :

  1. $supported_roles=array('administrator', 'writer', 'reader', 'moderator', 'client');

Ajoutez la traduction du rôle client dans les fichiers views/fr/useredit.phtml et views/en/useredit.phtml :

  1. <?php $rolename=array('administrator' => 'administrateur', 'writer' => 'rédacteur', 'reader' => 'lecteur', 'moderator' => 'modérateur', 'client' => 'client'); ?>
  1. <?php $rolename=array('administrator' => 'administrator', 'writer' => 'writer', 'reader' => 'reader', 'moderator' => 'moderator', 'client' => 'client'); ?>

Autorisez la modification de son mot de passe par un utilisateur dans le fichier blocks/useredit.php :

  1.     $with_newpassword=($user_id != 1 and $is_owner);

Créez systématiquement un compte utilisateur pour un client dans le fichier blocks/register.php :

  1.             $user_id = $r;
  2.  
  3.             user_set_role($user_id, 'client');
Test

Connectez-vous en tant qu'administrateur. Entrez dans la partie administrative du site.

Créez un compte pour l'utilisateur barfoo avec le mot de passe barf00.

Revenez dans la partie administrative. Cherchez l'utilisateur barfoo et éditez son profil. Vérifiez que le rôle client est coché.

 administrateur  rédacteur  lecteur  modérateur  client

Connectez-vous en tant que client avec l'identifiant barfoo. La page d'accueil du site affiche l'espace du client.

Votre compte

barfoo barfoo@izendsms.com

Pour modifier votre identifiant, votre email ou changer votre mot de passe, cliquez ici.

Git
  1. /izendsms.com
    1. avatars
      1. barfoo.png
    2. actions
      1. client.php
      2. home.php
      3. main.php
    3. blocks
      1. clientinfo.php
      2. register.php
      3. useredit.php
    4. css
      1. theme.css
    5. includes
      1. config.inc
      2. strings.inc
    6. views
      1. en
        1. client.phtml
        2. clientinfo.phtml
        3. useredit.phtml
      2. fr
        1. client.phtml
        2. clientinfo.phtml
        3. useredit.phtml

Commettez cette version :

$ git status
$ git add --update
$ git commit -m'Creates client space'

IMPORTANT : Éditez le connecteur à la BD défini dans le fichier includes/db.inc.

Commentaires

Votre commentaire :
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip aide 2000

Entrez un maximum de 2000 caractères.
Améliorez la présentation de votre texte avec les balises de formatage suivantes :
[p]paragraphe[/p], [b]gras[/b], [i]italique[/i], [u]souligné[/u], [s]barré[/s], [quote]citation[/quote], [pre]tel quel[/pre], [br]à la ligne,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]commande[/code], [code=langage]code source en c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].