Theme pages privees

De Cms Made Simple France
Aller à : navigation, rechercher

Les Page Privées

Ce document est basée sur le document Hiding Private Content in CMS Made Simple de calguy1000 mais également du travail de traduction et de mise en forme de Jce76350


Le but est de créer des pages privées (réservées a certains utilisateurs) à 2 niveaux

  • niveau 1 des pages réservées aux utilisateur Enregistrés de l'association
  • niveau 2 des pages réservées aux utilisateur Administrateurs de l'association (auront aussi la possibilité de voir les pages niveau 1)
Sys Info.png
Compléments ou modifications ? inscrivez vous sur le WiKi


Les modules à télécharger

  • Soit directement sur le site dev.cmsmadesimple.org
  • Soit en installant le module ModuleManager (dans admin Extensions/Modules) puis Extensions/Gestionnaire de Modules / Modules disponibles / Chercher les modules

Dépendances : CMSMailer [installé par défaut] et CGExtensions [obligatoire] CGExtensions sur ce Wiki

  • CustomContent (Permet de créer une page différente selon la personne qui la regarde)

Dépendances : FrontEndUser

  • Éventuellement SelfRegistration (Enregistrement automatique des membres) NON traité ici

Configuration et installation

  • 1 Configurer CMSMailer : Méthode d'envoi des emails : soit en SMTP ou Mail (A tester)
  • 2 Installer CGExtensions
  • 3 Installer FrontEndUsers
  • 4 Installer CustomContent

Exemple (à titre indicatif) niveau 1 des pages réservées aux utilisateur Enregistrés de l'association

A Création de la page login

Création d'une page servant à la connexion login/logout

  • Titre : Login Réservé aux utilisateurs déjà enregistrés
  • Texte du menu : Accès réservé In/Out
  • Contenu : {FrontEndUsers lang="fr_FR"}
  • Gabarit : Left simple navigation + 1 column
  • Alias de page : login


B Utilisateurs/Groupes

Création de :
Utilisateurs/Groupes/Gestion des utilisateurs du site

  • 1 Créer des propriétés dans l'onglet Propriétés de l'utilisateur / Ajouter une propriété
    • Nom : nom Invité : Votre Nom Type : texte Longueur : 45 Longueur maximale : 50
    • Nom : email Invité : Votre adresse email Type : texte Longueur : 50 Longueur maximale : 80
    • Nom : prenom Invité : Votre Prénom Type : texte Longueur : 50 Longueur maximale : 50
    • Nom : cp Invité : Code Postal Type : texte Longueur : 10 Longueur maximale : 10
    • Nom : ville Invité : Votre ville Type : texte Longueur : 50 Longueur maximale : 80
    • Nom : Civilit Invité : Civilité Type : boutons Radio
    • Label des boutons Radio : Femme=f Homme=m Demoiselle=d
  • 2 Créer un groupe dans l'onglet groupe / Ajouter un groupe
    • Nom : Enregistrés Description : Utilisateurs Enregistrés
    • ET cocher -> Statut du champ (requis sauf civilit) + Demande lors de la récupération de l'identifiant

Page priv groupe enristr.jpg

  • 3 Créer utilisateurs dans l'onglet Utilisateurs
    • Ajouter un utilisateur avec : Adresse email : [email protected] Mot de passe=monpass ET Cocher Groupes "Enregistrés" à droite
    • faire Suivant et remplir les informations


C Gabarit

Dans le gabarit Left simple navigation + 1 column En partant d'un gabarit standard AJOUTER après la balise <body>

{page_attr key='extra1' assign='extra1'}
 {if !$ccuser->memberof('Enregistrés') and $extra1 == 'restricted'}
 {redirect_page page='login'}
 {/if}

et après

<h2 class="accessibility">Navigation</h2>
{*menu template='simple_navigation.tpl' collapse='1'*} {* ligne à supprimer *}
{ menu template='simple_restric' collapse='1'} {* ligne à ajouter *}


D Menu

Dans - Disposition/Gestion de Menu Ajouter un gabarit

  • Nom du nouveau gabarit : simple_restric
  • Contenu du gabarit :
{*Modification pour pages privées (réservées a certains utilisateurs) à 2 niveaux *}
{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}
{if ($node->extra1 == 'restricted' and $ccuser->memberof('Enregistrés')) or $node->extra1== '' } 
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent"><a class="menuactive menuparent" href="{$node->url}"><span>{$node->menutext}</span></a>
{elseif $node->haschildren == true and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="parent"><a class="parent" href="{$node->url}"><span>{$node->menutext}</span></a>
{elseif $node->current == true}
<li class="currentpage"><h3><span>{$node->menutext}</span></h3>
{elseif $node->type == 'sectionheader'}
<li class="sectionheader"><span>{$node->menutext}</span>
{elseif $node->type == 'separator'}
<li class="separator" style="list-style-type: none;"> <hr />
{else}
<li><a href="{$node->url}"><span>{$node->menutext}</span></a>
{/if}
{/if}{* node->extra1 *}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}

E Créer une Page Accès Restreint

  • Titre : Accès Restreint
  • Texte du menu : Accès Restreint
  • Contenu  : c'est une page réservée avec accès restreint .... réservée ....
  • Gabarit : Left simple navigation + 1 column
  • Alias de page : acces-restreint
  • Attribut supplémentaire 1 de la page : restricted
    • Nota : On se sert de Attribut supplémentaire 1 pour définir si l'accès est restreint ou Non

Il est bien sur possible de faire d'autres pages ou sous-pages mais il faut à chaque fois indiquer Attribut supplémentaire 1 de la page : restricted


F Tester ... niveau 1

  • je me logue ...
  • Si le lien "Accès Restreint" est visible, il renvoi vers la page de "Accès réservé In/Out"

Page priv login01.jpg

  • Et je peux voir la page Accès Restreint

Page priv page restr1.jpg


La suite ... niveau 2

  • niveau 2 des pages réservées aux utilisateur Administrateurs de l'association (auront aussi la possibilité de voir les pages niveau 1)


G Modification gabarit

  • 1- Dans le gabarit Left simple navigation + 1 column

Supprimer et remplacer

<h2 class="accessibility">Navigation</h2>
{menu template='simple_restric' collapse='1'} {* ligne à supprimer *}
 {* lignes ci-desous à ajouter *}
{if $ccuser->loggedin() && $ccuser->memberof('admin')}
{menu template='simple_restric' collapse='1'}
{else}
{menu template='simple_restric' collapse='1' excludeprefix="admin_"} {* exclu les menus de page contenant  l'alias admin_  pour  niveau 2 *}
{/if}
  • 2- Faire la même modification DANS TOUS LES autres GABARITS affichant des menu


H Créer une Page réservée Admin

réservées aux utilisateur Administrateurs de l'association

Titre : Réservé Admin Texte du menu : Réservé Admin

  • Contenu : Cette page est une simulation de ..... page réservée aux admin
  • Gabarit : Left simple navigation + 1 column
  • Alias de page : admin_0
  • Attribut supplémentaire 1 de la page : restricted

Nota : Alias de page : admin_0 (ou admi=xxxx) ET Attribut supplémentaire 1 de la page : restricted Cette page et le menu ne seront visible que par les membres du groupe admin qui seront ligués


I Utilisateurs/Groupes

  • 1- Créer un groupe dans l'onglet groupe / Ajouter un groupe
    • Nom : admin Description : les administrateurs de l'association
    • ET cocher -> Statut du champ (requis sauf civilit) + Demande lors de la récupération de l'identifiant

comme en B2

  • 2- Créer utilisateurs dans l'onglet Utilisateurs
    • Ajouter un utilisateur
    • Adresse email : [email protected] Mot de passe=adminpass Cocher Groupes "admin" ET "Enregistrés" à droite
    • faire Suivant et remplir les informations

ATTENTION bien cocher Cocher Groupes "admin" ET "Enregistrés". Sinon aucun menus réservés et admin sera visible !


J Tester ... niveau 2

  • je me logue ...
  • le lien vers "Réservé Admin" est NON visible

Page priv login02.jpg

  • Et je peux voir la page Accès Restreint et la page Réservé Admin

Page priv page admin1.jpg



Sys Info.png
Un soucis sur cette page ?
Vous pouvez à tout moment signaler une erreur, un oublis ou une nouveauté sur cette page en cliquant à droite sur le bouton rouge "commentaires"