[phpBB 3.0.x] Permissions d'affichage dans les templates
Posté : lun. 7 déc. 2009 18:16
» Permissions d'affichage dans les templates
Le tutorial a pour but de vous apprendre à créer des conditions de template. Cela vous permettra de définir la permission requise pour afficher un élément du style.
Définir la condition
Ouvrez le fichier includes/functions.php
Si vous souhaitez afficher un élément de votre style uniquement aux administrateurs, alors, il vous faudra, procéder comme suit:
Cherchez:
Avant, ajoutez:
Si vous n'avez besoin d'afficher un élément de votre style uniquement aux modérateurs, alors, faites comme suit:
Cherchez:
Avant, ajoutez:
Ajouter dans le template la condition
On a défini nos conditions (côté PHP) mais cela n'est pas tout. Il faut pouvoir les utiliser et pour les utiliser, il vous faudra faire comme ci-dessous:
Ouvrez le fichier template. (Exemple: stylest/prosilver/overall_header.html)
Si vous souhaitez qu'un morceau de code ou un bouton ne soit vu que par l'administrateur, alors:
Ajoutez:
Et si vous souhaitez réservé cela avant tout à un modérateur, il faudra mettre:
Dans ce morceau de code, le ELSE n'est pas obligatoire. Mais cela vous permet d'ajouter un message pour les autres utilisateurs qui n'ont pas la permission requise pour voir l'élément du style.
Autres variantes
On peut créer d'autres variantes à celles de l'administrateur ou du modérateur.
Si vous voulez par exemple qu'un seul utilisateur voit l'élément de votre style, la Variable côté PHP sera :
Et la Variable de template
Si vous souhaitez que cela soit visible uniquement un groupe précis qui ait accès à un message, alors ajoutez cette variable côté PHP
Et la variable de template
Exemple concret
Vous voulez voir une application concrète du tutorial? Bien, allons-y dans ce cas. Dans cet exemple, nous allons vous expliquer le principe pour afficher un message uniquement à un certain groupe.
Commençons par la partie php:
Ouvrez le fichier includes/functions.php:
Cherchez:
Avant, ajoutez:
Passons maintenant à la partie template.
Ouvrez le fichier styles/prosilver/index_body.html
Cherchez:
Avant, ajoutez:
Vous êtes libre de modifier le message. Ceci est un exemple de ce que l'on peut faire grâce au tutorial. Si vous n'êtes pas du groupe 5, vous ne verrez pas ce message. Lors de mes tests, le groupe 5 correspondait au groupe des adminstrateurs donc SEULS ces derniers pouvaient voir le message.
Bien sûr, on peut tout à fait créer une page entière pour le message annonce. Dans ce cas, il nous faudra procéder comme suit:
Tout d'abord, effectuons la modification côté php:
Ouvrez le fichier includes/functions.php:
Cherchez:
Avant, ajoutez:
Passons maintenant à la partie template.
Ouvrez le fichier styles/prosilver/template/index_body.html
Cherchez:
Avant, ajoutez:
Mais on n'a pas créé la page, donc il faut la créer. Pour ce faire, créer un nouveau document avec le code ci-dessous:
Maintenant, enregistrez la page sous le nom annonce_body.html et vous devez la placer dans le dossier styles/votrethème/template/.
Le tutorial a pour but de vous apprendre à créer des conditions de template. Cela vous permettra de définir la permission requise pour afficher un élément du style.
Définir la condition
Ouvrez le fichier includes/functions.php
Si vous souhaitez afficher un élément de votre style uniquement aux administrateurs, alors, il vous faudra, procéder comme suit:
Cherchez:
Code : Tout sélectionner
'DEBUG_OUTPUT' => (defined('DEBUG')) ? $debug_output : '',
Code : Tout sélectionner
'S_IS_ADMINISTRATOR' => ($auth->acl_get('a_') && !empty($user->data['is_registered'])),
Cherchez:
Code : Tout sélectionner
'DEBUG_OUTPUT' => (defined('DEBUG')) ? $debug_output : '',
Code : Tout sélectionner
'S_IS_MODERATOR' => ($auth->acl_get('m_')),
On a défini nos conditions (côté PHP) mais cela n'est pas tout. Il faut pouvoir les utiliser et pour les utiliser, il vous faudra faire comme ci-dessous:
Ouvrez le fichier template. (Exemple: stylest/prosilver/overall_header.html)
Si vous souhaitez qu'un morceau de code ou un bouton ne soit vu que par l'administrateur, alors:
Ajoutez:
Code : Tout sélectionner
<!-- IF S_IS_ADMINISTRATOR -->Code visible si administrateur<!-- ELSE -->Code invisible<!-- ENDIF -->
Code : Tout sélectionner
<!-- IF S_IS_MODERATOR -->Code visible si Modérateur<!-- ELSE -->Code invisible<!-- ENDIF -->
Autres variantes
On peut créer d'autres variantes à celles de l'administrateur ou du modérateur.
Si vous voulez par exemple qu'un seul utilisateur voit l'élément de votre style, la Variable côté PHP sera :
Code : Tout sélectionner
'S_IS_UTILISATEUR' => ($auth->acl_get('u_') && $user->data['user_id'] == 2),
Code : Tout sélectionner
<!-- IF S_IS_UTILISATEUR -->Code visible si l'id désirée est 2<!-- ELSE -->Code invisible<!-- ENDIF -->
Code : Tout sélectionner
'S_IN_GROUPE' => ($auth->acl_get('u_') && $user->data['group_id'] == 5),
Code : Tout sélectionner
<!-- IF S_IN_GROUPE -->Code visible si le groupe id est 5<!-- ELSE -->Code invisible pour les autres<!-- ENDIF -->
Vous voulez voir une application concrète du tutorial? Bien, allons-y dans ce cas. Dans cet exemple, nous allons vous expliquer le principe pour afficher un message uniquement à un certain groupe.
Commençons par la partie php:
Ouvrez le fichier includes/functions.php:
Cherchez:
Code : Tout sélectionner
'DEBUG_OUTPUT' => (defined('DEBUG')) ? $debug_output : '',
Code : Tout sélectionner
'S_IN_GROUPE' => ($auth->acl_get('u_') && $user->data['group_id'] == 5),
Ouvrez le fichier styles/prosilver/index_body.html
Cherchez:
Code : Tout sélectionner
<!-- INCLUDE forumlist_body.html -->>
Code : Tout sélectionner
<!-- IF S_IN_GROUPE -->
<div class="forabg">
<div class="inner"><span class="corners-top"><span></span></span>
<ul class="topiclist">
<li class="header">
<dl class="icon">
<dt>TEST</dt>
</dl>
</li>
</ul>
<ul class="topiclist forums">
<li>
<dl>
<dd>Message visible uniquement au groupe 5</dd>
</dl>
</li>
</ul>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- ENDIF -->
Vous êtes libre de modifier le message. Ceci est un exemple de ce que l'on peut faire grâce au tutorial. Si vous n'êtes pas du groupe 5, vous ne verrez pas ce message. Lors de mes tests, le groupe 5 correspondait au groupe des adminstrateurs donc SEULS ces derniers pouvaient voir le message.
Bien sûr, on peut tout à fait créer une page entière pour le message annonce. Dans ce cas, il nous faudra procéder comme suit:
Tout d'abord, effectuons la modification côté php:
Ouvrez le fichier includes/functions.php:
Cherchez:
Code : Tout sélectionner
'DEBUG_OUTPUT' => (defined('DEBUG')) ? $debug_output : '',
Code : Tout sélectionner
'S_IN_GROUPE' => ($auth->acl_get('u_') && $user->data['group_id'] == 5),
Ouvrez le fichier styles/prosilver/template/index_body.html
Cherchez:
Code : Tout sélectionner
<!-- INCLUDE forumlist_body.html -->
Code : Tout sélectionner
<!-- INCLUDE annonce_body.html -->
Code : Tout sélectionner
<!-- IF S_IN_GROUPE -->
<div class="forabg">
<div class="inner"><span class="corners-top"><span></span></span>
<ul class="topiclist">
<li class="header">
<dl class="icon">
<dt>ANNONCE</dt>
</dl>
</li>
</ul>
<ul class="topiclist forums">
<li>
<dl>
<dd>Bienvenue aux administrateurs. Vous vous efforcerez de maintenir l'ordre sur ce forum</dd>
</dl>
</li>
</ul>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- ENDIF -->