[3.0.x] Permissions d'affichage dans les templates Difficile

[3.0.x] Permissions d'affichage dans les templates


» 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:
Code: Tout sélectionner
'DEBUG_OUTPUT'            => (defined('DEBUG')) ? $debug_output : ''

Avant, ajoutez:
Code: Tout sélectionner
'S_IS_ADMINISTRATOR'    => ($auth->acl_get('a_') && !empty($user->data['is_registered'])), 


Si vous n'avez besoin d'afficher un élément de votre style uniquement aux modérateurs, alors, faites comme suit:

Cherchez:
Code: Tout sélectionner
'DEBUG_OUTPUT'            => (defined('DEBUG')) ? $debug_output : ''

Avant, ajoutez:
Code: Tout sélectionner
'S_IS_MODERATOR'        => ($auth->acl_get('m_')), 


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:
Code: Tout sélectionner
<!-- IF S_IS_ADMINISTRATOR -->Code visible si administrateur<!-- ELSE -->Code invisible<!-- ENDIF -->


Et si vous souhaitez réservé cela avant tout à un modérateur, il faudra mettre:
Code: Tout sélectionner
<!-- IF S_IS_MODERATOR -->Code visible si Modérateur<!-- ELSE -->Code invisible<!-- ENDIF -->


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 :
Code: Tout sélectionner
'S_IS_UTILISATEUR'        => ($auth->acl_get('u_') && $user->data['user_id'] == 2), 


Et la Variable de template
Code: Tout sélectionner
<!-- IF S_IS_UTILISATEUR -->Code visible si l'id désirée est 2<!-- ELSE -->Code invisible<!-- ENDIF -->


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
Code: Tout sélectionner
'S_IN_GROUPE'            => ($auth->acl_get('u_') && $user->data['group_id'] == 5), 


Et la variable de template
Code: Tout sélectionner
<!-- IF S_IN_GROUPE -->Code visible si le groupe id est 5<!-- ELSE -->Code invisible pour les autres<!-- ENDIF -->


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:
Code: Tout sélectionner
'DEBUG_OUTPUT'            => (defined('DEBUG')) ? $debug_output : ''


Avant, ajoutez:
Code: Tout sélectionner
'S_IN_GROUPE'            => ($auth->acl_get('u_') && $user->data['group_id'] == 5), 


Passons maintenant à la partie template.

Ouvrez le fichier styles/prosilver/index_body.html

Cherchez:
Code: Tout sélectionner
<!-- INCLUDE forumlist_body.html -->>

Avant, ajoutez:
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 : ''

Avant, ajoutez:
Code: Tout sélectionner
'S_IN_GROUPE'            => ($auth->acl_get('u_') && $user->data['group_id'] == 5), 


Passons maintenant à la partie template.

Ouvrez le fichier styles/prosilver/template/index_body.html

Cherchez:
Code: Tout sélectionner
<!-- INCLUDE forumlist_body.html -->

Avant, ajoutez:
Code: Tout sélectionner
<!-- INCLUDE annonce_body.html -->


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:

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


Maintenant, enregistrez la page sous le nom annonce_body.html et vous devez la placer dans le dossier styles/votrethème/template/.

Dakin Quelia
Dieu des floodeurs
Dieu des floodeurs
 
Rédigé le: 24 Mar 2008 à 18:05
Articles: 7
Noter cet article: 123456 Votants: 1
Mots-clés: Permissions, d'affichage, dans, les, templates, 30x

Retourner vers Coding


cron