Dernière mise à jour : 29/04/2017 à 14h06
Table des matières
Préalables
Ce tuto est exclusivement destiné aux utilisateurs de phpboost 5.1 car la balise member ou moderator est une nouveauté.
Rappel
Comme nous l'avons vu dans l'article sur le bbcode, les deux messages d'accès restreint sont les suivants :
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
- 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)'; |
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(); } |
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'; |
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'; |
|
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'; |
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; } |
|
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; } |
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 ''; }