VI. Tutoriels communautaires

Balise member-moderator - Modification du message de restriction d'accès

Dernière mise à jour : 29/04/2017 à 14h06

Préalables








tag_51

Ce tuto est exclusivement destiné aux utilisateurs de phpboost 5.1 car la balise member ou moderator est une nouveauté.


  • Les exemples de modifications expliqués ci-dessous sur la balise member peuvent être appliqués à l'identique sur la balise moderator
  • Les modifications dans le dossier de langue french devront aussi être appliquée dans le dossier de langue english avec les traductions respectives.
  • Lors de vos essais, utilisez le raffraichissement du navigateur avec ctrl + F5 pour actualiser votre page.
  • En cas de mise à jour, il vous faudra peut-être refaire ces modifications donc veillez à conserver une copie de vos fichiers personnalisés afin de ré-appliquer vos changements dans les fichiers mis à jour.





Rappel






Comme nous l'avons vu dans l'article sur le bbcode, les deux messages d'accès restreint sont les suivants :



Message destiné aux membres

Message destiné aux modérateurs



Les fichiers à modifier






Les fichiers à modifier font partie du noyau de PHPBoost donc toutes les modifications doivent être faites avec précaution.

Les changements s'opèreront sur 3 fichiers :



- ContentSecondParser.class.php qui se trouve dans RACINE_DE_VOTRE_SITE\kernel\framework\content\formatting\parser\



- status-messages-common.php qui se trouve dans RACINE_DE_VOTRE_SITE\lang\french\

Et pour que le travail soit parfait, tous les changements effectués sur ces fichiers devront l'être aussi dans RACINE_DE_VOTRE_SITE\lang\french\status-messages-common.php



Toutes les modifications dans le fichier RACINE_DE_VOTRE_SITE\lang\french\status-messages-common.php devront être appliquées aussi, mais en anglais cette fois, dans le fichier RACINE_DE_VOTRE_SITE\lang\english\status-messages-common.php



- global.css via l'administration du site



Modification du texte affiché






\lang\french\status-messages-common.php -> Ligne 114



status-messages-common.php :
//BBcode
$lang['bbcode_member'] = 'Message destiné aux membres';
$lang['bbcode_moderator'] = 'Message destiné aux modérateurs';




Exemple :



CODE RESULTAT
status-messages-common.php :
//BBcode
$lang['bbcode_member'] = 'Pour visualiser ce contenu, vous devez être membre';
$lang['bbcode_moderator'] = 'Accès réservé au(x) modérateur(s)';
Pour visualiser ce contenu, vous devez être membre

Accès réservé au(x) modérateur(s)




Modification du style






\kernel\framework\content\formatting\parser\ContentSecondParser.class.php -> Ligne 255



ContentSecondParser.class.php :
private function callback_member_tag($matches)
{
if(AppContext::get_current_user()->check_level(User::MEMBER_LEVEL))
{
return $matches[1];
}
return MessageHelper::display(LangLoader::get_message('bbcode_member','status-messages-common'),MessageHelper::WARNING)->render();
}
private function callback_moderator_tag($matches)
{
if(AppContext::get_current_user()->check_level(User::MODERATOR_LEVEL))
{
return $matches[1];
}
return MessageHelper::display(LangLoader::get_message('bbcode_moderator','status-messages-common'),MessageHelper::WARNING)->render();
}




Pour modifier le style du message, il vous faudra modifier MessageHelper::WARNING avec au choix ERROR, NOTICE, QUESTION ou SUCCESS.

Bien-sûr, les styles SUCCESS et QUESTION ne sont pas appropriés si nous parlons de restriction, mais je vous donne l'ensemble des possibilités.



Exemple avec combinaison - changement du texte et du style :



CODE RESULTAT
ContentSecondParser.class.php :
private function callback_member_tag($matches)
{
if(AppContext::get_current_user()->check_level(User::MEMBER_LEVEL))
{
return $matches[1];
}
return MessageHelper::display(LangLoader::get_message('bbcode_member','status-messages-common'),MessageHelper::ERROR)->render();
}
private function callback_moderator_tag($matches)
{
if(AppContext::get_current_user()->check_level(User::MODERATOR_LEVEL))
{
return $matches[1];
}
return MessageHelper::display(LangLoader::get_message('bbcode_moderator','status-messages-common'),MessageHelper::NOTICE)->render();
}
Pour visualiser ce contenu, vous devez être membre

Accès réservé au(x) modérateur(s)




Personnalisation






Html






Nous avons la possibilité d'ajouter du code html dans nos variables de langue.

Cela va nous permettre d'afficher une image ( préalablement uploadée dans le dossier /upload de votre serveur ) ou une icône fa par exemple.



Avantages : technique assez rapide avec quelques connaissances html

Inconvénients : modification d'un fichier php et passage obligé par le transfert ftp.



Tout d'abord, nous allons supprimer le style pour ne garder que l'affichage du texte de notre restriction d'accès, modification du ContentSecondParser.class.php :



Changez :



ContentSecondParser.class.php :
 
return MessageHelper::display(LangLoader::get_message('bbcode_moderator','status-messages-common'),MessageHelper::WARNING)->render();




par :



ContentSecondParser.class.php :
 
return LangLoader::get_message('bbcode_member','status-messages-common');
 




Exemple avec une image :



CODE RESULTAT
status-messages-common.php :
$lang['bbcode_member'] = '<img src="/upload/acces_interdit.png" height="30px"> Accès réservé aux membres';
acces_img




Exemples avec une icône fa :



CODE RESULTAT
status-messages-common.php :
$lang['bbcode_member'] = '<i class="fa fa-minus-circle fa-2x" style="color:red;"></i> Accès réservé aux membres';
acces_fa_02

status-messages-common.php :
$lang['bbcode_member'] = '<i class="fa fa-user-circle fa-2x" style="color:blue;"></i> Accès réservé aux membres';
 
acces_fa_01





Css






Avantages : Peu de modifications des fichiers php. Les paramètres css se modifient via l'interface administrateur. Ajout d'un style ( facultatif ) sur le texte

Inconvénients : Connaissances en Css.



Modification du fichier status-messages-common.php en ajoutant un span et une class :



status-messages-common.php :
$lang['bbcode_member'] = '<span class="member-access"> Accès réservé aux membres</span>';
 




Ensuite nous allons ajouter quelques lignes css à la fin du fichier global.css via l'administration de votre site.



Exemples :



CODE RESULTAT
Affichage d'une image :

global.css :
/* -- member access -- */
/* -------------------- */
.member-access {
  text-shadow: 1px 0px 3px black;
  color: rgb(255, 255, 255);
}
.member-access:before {
   background-image: url('/upload/acces_interdit.png');
   display: inline-block;
   background-size: 30px 30px;
   width: 30px; 
   height: 30px;
   content:"";
   position: relative;
   top: 10px;
}
acces_img_class

Affichage d'une icône fa :

global.css :
/* -- member access -- */
/* -------------------- */
.member-access {
  text-shadow: 1px 0px 3px black;
  color: rgb(255, 255, 255);
}
.member-access:before {
  content: "\f056";
  font-family: FontAwesome;
  font-size: 2em;
  position: relative;
  top: 4px;
  color: red;
}
acces_fa_class





Comme nous pouvons le constater, nous appelons notre fa dans le css via son unicode. Pour plus d'informations sur la class fa et pour connaitre l'ensemble des unicodes correspondants aux class fa, veuillez consulter l'article La bibliothèque Font Awesome



Vide






Vous avez aussi la possibilité de n'afficher aucun message et donc de laisser le champ vide.

Pour cela, changer :



ContentSecondParser.class.php :
private function callback_member_tag($matches)
{
if(AppContext::get_current_user()->check_level(User::MEMBER_LEVEL))
{
return $matches[1];
}
return MessageHelper::display(LangLoader::get_message('bbcode_member','status-messages-common'),MessageHelper::ERROR)->render();
}




par :



ContentSecondParser.class.php :
private function callback_member_tag($matches)
{
if(AppContext::get_current_user()->check_level(User::MEMBER_LEVEL))
{
return $matches[1];
}
return '';
}
Cette page a été vue 4345 fois