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 -->