1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"

Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.

Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.

Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.


Note de ce sujet :
  • Moyenne : 5 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Tutoriel] Préremplir le champ de message.
Mots-clés » tutoriel, préremplir, champ, message
27-12-2011, 3:24, (Modification du message : 06-09-2014, 14:03 par Saphir.)
#1
Smile  [Tutoriel] Préremplir le champ de message.
Dans ce tutoriel, nous allons apprendre à préremplir le champ d'écriture de messages.

Ceci vous permet de proposer un modèle de message à vos membres.
Vous pouvez utiliser ce modèle, soit sur la page de création d'une nouvelle discussion, soit sur la page de rédaction d'une réponse à une discussion existante, soit aux deux.
Vous pouvez également restreindre l'affichage de ce modèle à certains sous-forums uniquement, mais pour cela, il vous faudra un plugin permettant d'utiliser le code PHP dans les templates (téléchargeable ici : http://mybbhacks.zingaburga.com/showthread.php?tid=260).

Étape 1 : Appliquer le préremplissage à un ou plusieurs sous-forums spécifiques.

Si vous souhaitez que le préremplissage soit appliqué à toutes les nouvelles discussions ou nouvelles réponses, ignorez cette étape.

Vérifiez que le plugin cité précédemment est installé et activé.

Relevez les identifiants des sous-forums dans lesquels vous souhaitez activer le préremplissage en vous rendant par exemple dans la liste des sous-forums du panneau d'administration. En cliquant sur le sous-forum choisi, vous verrez apparaître à la fin de la barre d'adresse "fid=X", avec un nombre à la place du X : il s'agit de l'identifiant en question.

Pour ma part, j'ai créé un sous-forum "Présentations", et il a pour identifiant 3.

Si vous souhaitez activer le préremplissage dans le cas de l'ouverture d'une nouvelle discussion, vous devrez modifier le template "newthread" ; si vous souhaitez activer le préremplissage dans le cas d'une réponse à une discussion existante, vous devrez modifier le template "newreply".
Évidemment, si vous souhaitez l'activer dans les deux cas, il faudra modifier les deux templates.

Localisez le code suivant :
Code PHP :
<textarea name="message" id="message" rows="20" cols="70" tabindex="2">{$message}</textarea
(Pour une raison qui m'échappe, sur le template "newreply", par défaut, il y a une espace après "tabindex="2"" qui n'est pas dans "newthread"...)

Dans les codes ci-dessous, le "ICI" montre une position qui sera utilisée dans la seconde étape.

Pour appliquer le préremplissage à un seul sous-forum, remplacez cette ligne par :
Code PHP :
<textarea id="message" name="message" rows="20" cols="70" tabindex="2"><if $_GET['fid'] == X then>ICI</if>{$message}</textarea

Pour appliquer un préremplissage identique à plusieurs sous-forums, utilisez la ligne ci-dessous :
Code PHP :
<textarea id="message" name="message" rows="20" cols="70" tabindex="2"><if $_GET['fid'] == OR $_GET['fid'] == Y then>ICI</if>{$message}</textarea
Vous pouvez ajouter des " OR $_GET['fid'] == Z" à volonté entre la position du Y et le "then".

Pour appliquer un préremplissage différent pour plusieurs sous-forums, utilisez le code suivant :
Code PHP :
<textarea id="message" name="message" rows="20" cols="70" tabindex="2"><if $_GET['fid'] == X then>ICI<elseif $_GET['fid'] == Y then>ICI</if>{$message}</textarea
Vous pouvez rajouter des "<elseif $_GET['fid'] == Z then>ICI" à volonté en les plaçant juste avant le "</if>" pour augmenter le nombre de cas.
Si vous avez quelques notions de PHP, vous pouvez également combiner les deux types de codes pour appliquer un certain remplissage à deux sous-forums et un autre à un autre sous-forum, comme sur l'exemple ci-dessous :
Code PHP :
<textarea id="message" name="message" rows="20" cols="70" tabindex="2"><if $_GET['fid'] == OR $_GET['fid'] == Y then>ICI<elseif $_GET['fid'] == Z then>ICI</if>{$message}</textarea

Étape 2 : Choisir le texte qui préremplira le champ.

Ici aussi, si vous souhaitez activer le préremplissage dans le cas de l'ouverture d'une nouvelle discussion, vous devrez modifier le template "newthread" ; si vous souhaitez activer le préremplissage dans le cas d'une réponse à une discussion existante, vous devrez modifier le template "newreply".
Évidemment, si vous souhaitez l'activer dans les deux cas, il faudra modifier les deux templates.

Si vous n'avez pas suivi la première étape, la position qui sera utilisée dans la suite du tutoriel est celle-ci :
Code PHP :
<textarea name="message" id="message" rows="20" cols="70" tabindex="2">ICI{$message}</textarea
Si vous avez suivi la première étape, il peut y avoir un ou plusieurs ICI, auquel cas c'est ceux-ci qu'il faudra utiliser.

À la place du ICI, vous allez pouvoir écrire le texte de votre choix.
Le texte que vous allez entrer sera interpréter comme du texte simple, le code HTML sera donc affiché tel quel.

Mon Exemple : Une présentation en bonne et due forme.

J'ai mis le tutoriel en oeuvre en même temps que je l'ai écrit sur mon forum de test.

Lors de la création d'une nouvelle discussion dans le sous-forum "Présentations" (identifiant 3), je veux qu'un "squelette" de présentation soit disponible pour que la personne qui veut se présenter n'ait plus qu'à entrer les informations de son choix.

Je vais vous donner mon template "newthread" complet :
Code PHP :
<html>
<
head>
<
title>{$lang->newthread_in}</title>
{
$headerinclude}
<
script type="text/javascript" src="jscripts/post.js?ver=1400"></script>
</head>
<body>
{$header}
{$preview}
{$thread_errors}
{$attacherror}
<form action="newthread.php?fid={$fid}&amp;processed=1" method="post" enctype="multipart/form-data" name="input">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->post_new_thread}</strong></td>
</tr>
{$loginbox}
<tr>
<td class="trow2" width="20%"><strong>{$lang->thread_subject}</strong></td>
<td class="trow2">{$prefixselect}<input type="text" class="textbox" name="subject" size="40" maxlength="85" value="<if $_GET['fid'] == 3 AND !($subject) then>Présentation de {$mybb->user['username']}<else/>{$subject}</if>" tabindex="1" /></td>
</tr>
{$posticons}
<tr>
<td class="trow2" valign="top"><strong>{$lang->your_message}</strong>{$smilieinserter}</td>
<td class="trow2">
<textarea name="message" id="message" rows="20" cols="70" tabindex="2"><if $_GET['fid'] == 3 AND !($message) then>Pseudonyme : {$mybb->user['username']}
Prénom : 
Nom : 
Âge : 
Sexe : 
Ville : 
Présentation :
<else/>{$message}</if></textarea>
{$codebuttons}
{$multiquote_external}
</td>
</tr>
<tr>
<td class="trow1" valign="top"><strong>{$lang->post_options}</strong></td>
<td class="trow1"><span class="smalltext">
<label><input type="checkbox" class="checkbox" name="postoptions[signature]" value="1" tabindex="7"{$postoptionschecked['signature']} /> {$lang->options_sig}</label>
{$disablesmilies}</span></td>
</tr>
{$modoptions}
{$subscriptionmethod}
{$pollbox}
{$captcha}
</table>
{$attachbox}
<br />
<div style="text-align:center"><input type="submit" class="button" name="submit" value="{$lang->post_thread}" tabindex="4" accesskey="s" />  <input type="submit" class="button" name="previewpost" value="{$lang->preview_post}" tabindex="5" />{$savedraftbutton}</div>
<input type="hidden" name="action" value="do_newthread" />
<input type="hidden" name="posthash" value="{$posthash}" />
<input type="hidden" name="attachmentaid" value="" />
<input type="hidden" name="attachmentact" value="" />
<input type="hidden" name="quoted_ids" value="{$quoted_ids}" />
<input type="hidden" name="tid" value="{$tid}" />
{$editdraftpid}
</form>
{$forumrules}
{$footer}
</body>
</html> 
Comme vous pouvez le constater, il y a quelques petites choses en plus, en réalité, je lui ai demandé de n'afficher le préremplissage que s'il n'y a rien de mieux à afficher : cela permet, lorsque l'utilisateur a demandé une prévisualisation de son message, d'afficher le texte qu'il avait précédemment entré au lieu du squelette vide.

Ceci n'est pas réalisable sans le plugin nécessaire pour l'étape 1, et j'ai préféré ne pas vous l'apprendre pour éviter d'embrouiller les plus néophytes d'entre vous. Les personnes ayant des bases en PHP comprendront aisément ce bout de code.

J'ai également utilisé un code similaire pour préremplir le titre du sujet, si vous avez quelques connaissances, vous pouvez également vous en inspirer.

Enfin, {$mybb->user['username']} est remplacé par le nom de l'utilisateur, tout simplement ! Wink

Annexe : Petites traductions de code pour ceux qui veulent mieux comprendre...

Code PHP :
<td class="trow2">{$prefixselect}<input type="text" class="textbox" name="subject" size="40" maxlength="85" value="<if $_GET['fid'] == 3 AND !($subject) then>Présentation de {$mybb->user['username']}<else/>{$subject}</if>" tabindex="1" /></td
Cette ligne gère l'affichage des champs préfixe de discussion et titre du sujet.
Code PHP :
value="<if $_GET['fid'] == 3 AND !($subject) then>Présentation de {$mybb->user['username']}<else/>{$subject}</if>" 
Signifie que la valeur par défaut du champ titre du sujet est :
SI l'on se trouve dans le sous-forum ayant l'identifiant 3 ET que le sujet n'a pas déjà été précisé dans une prévisualisation précédente, ALORS, afficher "Présentation de {$mybb->user['username']}", SINON, afficher "{$subject}".
{$mybb->user['username']} est automatiquement remplacé par le nom de l'utilisateur et {$subject} par le sujet précisé dans la prévisualisation précédente.

Code PHP :
<textarea name="message" id="message" rows="20" cols="70" tabindex="2"><if $_GET['fid'] == AND !($messagethen>Pseudonyme : {$mybb->user['username']}
Prénom 
Nom 
Âge 
Sexe 
Ville 
Présentation :
<else/>{
$message}</if></textarea
Cette ligne gère l'affichage du champ texte du message. Elle détermine la taille du champ, mais définit aussi le texte par défaut du champ comme étant :
SI l'on se trouve dans le sous-forum ayant l'identifiant 3 ET que le message n'a pas déjà été précisé dans une prévisualisation précédente, ALORS, "Pseudonyme : {$mybb->user['username']}
Prénom :
Nom :
Âge :
Sexe :
Ville :
Présentation :
", SINON, "{$message}".
{$mybb->user['username']} est automatiquement remplacé par le nom de l'utilisateur et {$message} par le message précisé dans la prévisualisation précédente.

Captures d'Écran : L'affichage du squelette et un exemple de présentation utilisant le squelette.

La première capture d'écran vous montre que le squelette s'affiche effectivement lorsqu'on crée une nouvelle discussion dans le sous-forum "Présentations" (sinon, il ne s'affiche pas), y compris dans le titre de la discussion ("Présentation de Saphir").
   


Conclusion

Voila, un tutoriel un peu long, mais il fallait au moins ça pour le détailler un minimum.

Si vous avez des questions ou des remarques, je reste à votre disposition !

[Image: 88x31.png]


Pièces jointes Miniature(s)
   

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
27-12-2011, 20:38,
#2
RE: [Tutoriel] Préremplir le champ de message.
Merci du partage Saphir :d
Répondre
28-01-2012, 2:10,
#3
RE: [Tutoriel] Préremplir le champ de message.
Merci du partage , je vais essayez ...
Répondre
22-07-2012, 4:43,
#4
RE: [Tutoriel] Préremplir le champ de message.
Merci, cela marche Smile
Répondre
10-08-2012, 18:22,
#5
RE: [Tutoriel] Préremplir le champ de message.
Merci
Répondre
12-08-2012, 22:31,
#6
RE: [Tutoriel] Préremplir le champ de message.
Bonjour,

J'ai tout suivi et installé le plugin, seul bémol :

[Image: 2MPPP.png]

J'ai bien vérifié et il est activé, un soucis dans le code ?

Wink
Répondre
12-08-2012, 23:43,
#7
RE: [Tutoriel] Préremplir le champ de message.
Bonsoir Saachaa.

Pouvez-vous me donner le code complet de votre template tel qu'il pose problème ?

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
13-08-2012, 18:41,
#8
RE: [Tutoriel] Préremplir le champ de message.
Bonjour Saphir,

Désolé du dérangement, aujourd'hui tout marche pour le mieux...

Je n'en vois pas la cause, mais tant mieux ! Désolé du dérangement Wink

A bientôt...
Répondre
16-08-2012, 15:39,
#9
RE: [Tutoriel] Préremplir le champ de message.
Désoler de crrytiquer ton travail mais c'est trop compliqué pour moi .

N'y à t'il pas un moyen plus facile du genre aller dans le panneau d'administration, configurer 2 3 truc et c'est bon ?
Répondre
16-08-2012, 16:43,
#10
RE: [Tutoriel] Préremplir le champ de message.
Non.

Si vous n'êtes pas capable de suivre un tutoriel, je vous invite à chercher un addon qui corresponde à vos besoin, ou à demander à un développeur d'en coder un, généralement, moyennant finance.

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
16-08-2012, 17:37,
#11
RE: [Tutoriel] Préremplir le champ de message.
N'ayant jamais administrer, je le trouve pour ma part très simple...

Il suffit de se mettre dedans même si au départ, cela donne réticence...

Répondre
18-01-2014, 12:23,
#12
RE: [Tutoriel] Préremplir le champ de message.
Bonjour,

Super ce Tutoriel, mais je viens de tester, alors au niveaux du prérenplisage du titre du post sa marche impeck, mais au niveaux du message rien ne s'affiche.

je vous et mis un imprime écran en pièce jointe Smile


Pièces jointes Miniature(s)
   

[Image: logo.png]
Répondre
18-01-2014, 12:52,
#13
RE: [Tutoriel] Préremplir le champ de message.
Peut être parce que vous n'utilisez pas l'un des éditeurs par défaut de MyBB. Pouvez-vous me donner le code de votre template ?

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
18-01-2014, 12:56, (Modification du message : 18-01-2014, 12:57 par badmetal.)
#14
RE: [Tutoriel] Préremplir le champ de message.
Bonjour,

Merci pour votre réponse, voilà le code Smile



Code :
<head>
<title>{$lang->newthread_in}</title>
{$headerinclude}
<script type="text/javascript" src="jscripts/post.js?ver=1400"></script>
</head>
<body>
{$header}
{$preview}
{$thread_errors}
{$attacherror}
<form action="newthread.php?fid={$fid}&amp;processed=1" method="post" enctype="multipart/form-data" name="input">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="2"><strong>{$lang->post_new_thread}</strong></td>
</tr>
{$loginbox}
<tr>
<td class="trow2" width="20%"><strong>{$lang->thread_subject}</strong></td>
<td class="trow2">{$prefixselect}<input type="text" class="textbox" name="subject" size="40" maxlength="85" value="<if $_GET['fid'] == 16 AND !($subject) then>Présentation {$mybb->user['username']}<else/>{$subject}</if>" tabindex="1" />

</td>
</tr>
{$posticons}
<tr>
<td class="trow2" valign="top"><strong>{$lang->your_message}</strong>{$smilieinserter}</td>
<td class="trow2">
<textarea name="message" id="message" rows="20" cols="70" tabindex="2"><if $_GET['fid'] == 16 AND !($message) then>Pseudonyme : {$mybb->user['username']}
Prénom :
Nom :
Âge :
Sexe :
Ville :
Présentation :
<else/>{$message}</if></textarea>

{$codebuttons}
{$multiquote_external}
</td>
</tr><!-- InputTags --><tr>
<td class="trow2" width="20%"><strong>Tags:</strong><br /><span class="smalltext">écrire 5 mots minimal avec une virgule en chaque.</span></td>
<td class="trow2"><input type="text" class="textbox" name="tags" size="40" maxlength="85" value="{$mybb->input['tags']}" tabindex="1" /></td>
</tr><!-- /InputTags -->
<tr>
<td class="trow1" valign="top"><strong>{$lang->post_options}</strong></td>
<td class="trow1"><span class="smalltext">
{$option_signature}
{$disablesmilies}</span></td>
</tr>
{$modoptions}
{$subscriptionmethod}
{$pollbox}
{$captcha}
</table>
{$attachbox}
<br />
<div style="text-align:center"><input type="submit" class="button" name="submit" value="{$lang->post_thread}" tabindex="4" accesskey="s" />  <input type="submit" class="button" name="previewpost" value="{$lang->preview_post}" tabindex="5" />{$savedraftbutton}</div>
<input type="hidden" name="action" value="do_newthread" />
<input type="hidden" name="posthash" value="{$posthash}" />
<input type="hidden" name="attachmentaid" value="" />
<input type="hidden" name="attachmentact" value="" />
<input type="hidden" name="quoted_ids" value="{$quoted_ids}" />
<input type="hidden" name="tid" value="{$tid}" />
{$editdraftpid}
</form>
{$forumrules}
{$footer}



[Image: logo.png]
Répondre
18-01-2014, 13:58,
#15
RE: [Tutoriel] Préremplir le champ de message.
Le code me semble bon.
Pouvez-vous essayer avec l'un des éditeurs par défaut ?

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
19-01-2014, 11:34,
#16
RE: [Tutoriel] Préremplir le champ de message.
Bonjour,

Merci, j'ai testé sans éditeurs, sa marche impeck,

Avez-vous une idée de comment je pourrais faire marché cette astuce avec mon éditeur actuel ?

[Image: logo.png]
Répondre
19-01-2014, 11:49,
#17
RE: [Tutoriel] Préremplir le champ de message.
Dans la mesure où j'ignore comment votre éditeur actuel fonctionne, non.
Essayez d'en comprendre le fonctionnement si vous avez des connaissances en HTML et JavaScript.

Cordialement,
Saphir,
Modérateur MyBB.support.
Répondre
01-09-2014, 20:39, (Modification du message : 01-09-2014, 21:07 par sheron.)
#18
RE: [Tutoriel] Préremplir le champ de message.
salut a tous ! j'ai suivis le tuto ça fonctionne lorsque que l'on post un nouveau message mais pour newreply pas de resultat voici le code :
Code :
<textarea id="message" name="message" rows="20" cols="70" tabindex="2" ><if $_GET['fid'] == 5 then>
Date de la partie :

Lieux :

Organisateur :

Camp du jeux :

Votre commentaire :

</if>{$message}</textarea>

forum regroupant toutes les parties d'airsoft en Bretagne: http://bretagneairsoft.fr/forum/
Répondre
01-09-2014, 22:34,
#19
RE: [Tutoriel] Préremplir le champ de message.
J'essayerais avec :
Code PHP :
<if $fid == 5 then

Administrateur de MyBBCodes.com
Cool " Ce n'est pas ce que vous savez qui est important, c'est ce que vous faites ou ne faites pas!"
Obtenez plus de 175 plugins pour MyBB ici...
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
06-09-2014, 12:36, (Modification du message : 06-09-2014, 12:37 par sheron.)
#20
RE: [Tutoriel] Préremplir le champ de message.
d'accord merci et aussi j'aimerais bien un préformatage donc comme celui que j'ai posté plus haut pour le sous forum "retex" donc forum 5 avec le titre pré rempli "Retex de la partie..."
et un autre pré remplissage pour le sous forum "presentation" donc forum 2 avec un titre prérempli "Présentation de"
mais la ça devient un peu plus compliquer ^^

j'ai vue qu'il fallais utiliser

Code :
<textarea id="message" name="message" rows="20" cols="70" tabindex="2"><if $_GET['fid'] == X then>ICI<elseif $_GET['fid'] == Y then>ICI</if>{$message}</textarea>

donc dans mon cas:

Code :
<textarea id="message" name="message" rows="20" cols="70" tabindex="2"><if $_GET['fid'] == 5 then>
Lieux :

Organisateur :

Camp du jeux :

Nombre de participants:

Votre commentaire : <elseif $_GET['fid'] == 2 then>
Ton âge :
Ton prénom :
Profession :
Ville :
Pourquoi pratiquer l'airsoft ? :
Pourquoi s'inscrire sur ce forum ? :
Tes répliques:
Tenues :
Loisirs autres que l'airsoft :
Association ou team dont tu dépends :
Ton film culte : </if>{$message}</textarea>

pour ces lignes je pense que c'est bon?
mais pour la ligne de préremplissage du titre (je l'avais deja modier pour retex mais j'aimerais ajouter aussi pour presentation) :

Code :
<td class="trow2">{$prefixselect}<input type="text" class="textbox" name="subject" size="40" maxlength="85" value="<if $_GET['fid'] == 5 AND !($subject) then>Retex de la partie<else/>{$subject}</if>" tabindex="1" /></td>

forum regroupant toutes les parties d'airsoft en Bretagne: http://bretagneairsoft.fr/forum/
Répondre




Utilisateur(s) parcourant ce sujet :

Contact | MyBB.support | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS
 Utilitaire de traduction fourni par Regentronique