MyBB.support, le portail francophone de MyBB

Version complète : Tutoriel : Comment interdire les nouveaux utilisateurs de changer de titre ?
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Tutoriel : Comment interdire les nouveaux utilisateurs de changer de titre ?

Bonjour à tous, sur mon forum d'essai je m'amuse beaucoup à changer les templates et faire de nouvelles options, bref...
Aujourd'hui je vais vous partager une astuce pour bloquer le changement de titre aux utilisateurs sans utiliser de plug-in en dehors de celui pour activer le php dans les templates, mais il va vous servir pour bien d'autres tâches automatisées !
POUR CE TUTORIEL IL EST OBLIGATOIRE D'AVOIR CE PLUG-IN. (pour activer le php dans les templates)

Première étape : allez dans "Administration > Templates et Style > Templates > Rechercher/Remplacer"
En bas de la page, vous allez voir un cadre "Rechercher titre template", dans le champ "Rechercher" tapez : usercp_profile_customtitle et cliquez sur le bouton "Rechercher templates"
Vous avez maintenant plusieurs templates "usercp_profile_customtitle" si vous avez installer plusieurs thèmes. Ouvrez celui de votre thème actuel

Deuxième étape : vous avez quelque chose comme ça :
Code PHP :
<fieldset class="trow2">
<
legend><strong>{$lang->custom_usertitle}</strong></legend>
<
table cellspacing="0" cellpadding="{$theme['tablespace']}">
<
tr>
<
td><span class="smalltext">{$lang->custom_usertitle_note}</span></td>
</
tr>
<
tr>
<
td><span class="smalltext">{$lang->default_usertitle}</span></td>
</
tr>
<
tr>
<
td><span class="smalltext"><strong>{$defaulttitle}</strong></span></td>
</
tr>
<
tr>
<
td><span class="smalltext">{$lang->current_custom_usertitle}</span></td>
</
tr>
<
tr>
<
td><span class="smalltext"><strong>{$user['usertitle']}</strong></span></td>
</
tr>
<
tr><td><span class="smalltext">{$lang->new_custom_usertitle}</span></td>
</
tr>
<
tr>
<
td><input type="text" class="textbox" name="usertitle" size="25" maxlength="{$mybb->settings['customtitlemaxlength']}value="{$newtitle}/></td>
</
tr>
<
tr>
<
td><span class="smalltext"><input type="checkbox" name="reverttitle" id="reverttitle" class="checkbox" /> {$lang->revert_usertitle}</span></td>
</
tr>
</
table>
</
fieldset>
<
br /> 

Remplacez maintenant :
Code PHP :
<td><span class="smalltext">{$lang->new_custom_usertitle}</span></td>
</
tr>
<
tr>
<
td><input type="text" class="textbox" name="usertitle" size="25" maxlength="{$mybb->settings['customtitlemaxlength']}value="{$newtitle}/></td>
</
tr>
<
tr>
<
td><span class="smalltext"><input type="checkbox" name="reverttitle" id="reverttitle" class="checkbox" /> {$lang->revert_usertitle}</span></td>
</
tr

par :
Code PHP :
<if ($mybb->user['postnum'] >= 25then><td><span class="smalltext">{$lang->new_custom_usertitle}</span></td>
</
tr>
<
tr>
<
td><input type="text" class="textbox" name="usertitle" size="25" maxlength="{$mybb->settings['customtitlemaxlength']}value="{$newtitle}/></td>
</
tr>
<
tr>
<
td><span class="smalltext"><input type="checkbox" name="reverttitle" id="reverttitle" class="checkbox" /> {$lang->revert_usertitle}</span></td>
</
tr>
<else><
tr><td><span style="color: red"><b>Vous devez avoir au moins <u>25</umessages pour pouvoir personnaliser votre titre.</b></span></td></tr>
</if> 

Et voilà ! Vous n'avez plus qu'à enregistrer.
Dans le cas ci-dessus : si l'utilisateur n'as pas 25 messages ou plus, un message semblable à celui-ci s'affiche :
Citation :Vous devez avoir au moins 25 messages pour pouvoir personnaliser votre titre.

Si l'utilisateur a 25 messages ou plus, il peut changer son titre.
Bien sur, vous pouvez changer "postnum" par n'importe quel argument de la table "users" de votre forum, en changeant le signe.

Si vous avez des problèmes, je vous répondrez avec grand plaisir, et si vous cherchez un système différent : message privé.
Merci pour ton tutoriel,
Il est super bien fait et me sera très utile (un peu modifié :p !)
Considérant que du PHP n'a strictement rien à faire dans des templates (sinon ce ne sont plus des templates... x)), je pense préferrable de réaliser ça avec groupes et promotions de groupes.
Oui, mais dans le cas du php c'est beaucoup plus utile. Et puis sans php, c'est vraiment pas top :/
(13-03-2013, 14:22)Jules a écrit : [ -> ]Oui, mais dans le cas du php c'est beaucoup plus utile. Et puis sans php, c'est vraiment pas top :/

Je partage en partie l'opinion de JWH Smith en ce qui concerne la sécurité des forums. S'il n'est pas vraiment nécessaire d'utiliser du PHP dans les templates c'est vraiment mieux de le faire par un autre moyen lorsque disponible.

C'est le cas ici en contrôlant par le groupe, par défaut il suffit de supprimer les titres personnalisés dans le groupe initial et de le permettre dans un autre groupe qui sera attribué automatiquement en promotion.

Les sections d'importance étant :
Panneau d'Administration -> Utilisateurs et Groupes -> Groupes -> Utilisateurs et permissions -> Gestion du compte -> Peut utiliser des titres personnalisés ?

Panneau d'Administration -> Utilisateurs et Groupes -> Promotions de groupe -> Ajouter une promotion :
Ensuite il suffirait de choisir "Nombre de messages" ou une autre condition de promotion...

Et bien puisque notre cher exdiogene nous a donner un moyen plus simple de faire pratiquement le même résultat, inutile de mettre mon tutoriel en ligne.
Au contraire, il est possible que ce tutoriel donne de bonnes idées à d'autres membres pour accomplir des fonctions similaires pour des raisons différentes nécessitant du PHP.

De plus nos réponses serviront à guider les membres afin qu'ils fassent les meilleurs choix... Wink

Édition : Je viens tout juste de voir que le tutoriel a été supprimé, ce qui est fort malheureux... Sad

Édition #2 : J'avais gardé un onglet ouvert avec cette discussion, il contient encore le tutoriel original. Si Jules le permet, il serait bien de le remettre en ligne pour aider nos membres. J'attends une réponse avant de décider si je dois le copier, le reformater et le coller dans le message original...
Bon d'accord, je le remet... J'en est une copie sur mon forum d'essai Wink

Édition : pour information j'utilise beaucoup de php, car cela me permet de remettre directement les fonctions de mon forum d'essai sur le forum officiel en copiant les templates
Merci a toi pour ce tutoriel,
Sa m'as trop aidé
 Utilitaire de traduction fourni par Regentronique