MyBB.support, le portail francophone de MyBB

Version complète : préfixe obligatoire
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2

salutations Smile

Peut on mettre un préfixe par défaut?
edit: petite précision, le préfixe par défaut est "pas de préfixe", je souhaiterai que ce soit "francais" à la place (un préfixe déja créé).

J'ai trouvé une solution en modifiant le fichier function.php
Code :
$prefixselect .= "<option value=\"0\"".$default_selected.">".$lang->no_prefix."</option>\n";
par
Code :
$prefixselect .= "<option value=\"0\"".$default_selected.">".$lang->francais."</option>\n";

et modifier les fichiers de langue mais c'est assez fastidieux de modifier tout les fichiers de langue puis de modifier la base de donnée donc je cherche une solution plus simple
Modifier les fichiers système est toujours une très mauvaise idée. La modification sera perdue à la prochaine mise à jour.

Dans ce cas précis il n'est pas sii fastidieux de modifier les fichiers de langue.
Il y en a 4 à retoucher en tout et pour tout.
Ce sont :
- inc/languages/french/edit_post.lang.php (ligne 30 pour 1.6.15)
- inc/languages/french/newthread.lang.php (ligne 34 pour 1.6.15)
- inc/languages/french/search.lang.php (ligne 62 pour 1.6.15)
- inc/languages/french/admin/config_mod_tools.lang.php (ligne 63 pour 1.6.15)
Ce sera bien plus "propre".
Donc plutôt que de modifier le fichier système que propose tu comme alternative ( j'ai pas vu de mod pour ca Sad )
J'ai dû mal m'exprimer ? Tongue
Pourquoi un mod pour si peu de chose :? Huh
Juste 4 modifs dans les fichiers de langue cités plus haut dans lesquels tu remplaces :
Code :
$l['no_prefix'] = "Pas de préfixe";
par
Code :
$l['no_prefix'] = "Ce que tu veux";
moi aussi J'ai dû mal m'exprimer Tongue, le préfixe est un texte dans le choix du préfixe et fait afficher une image dans le titre du message (le préfixe "français" correspond au drapeau français)
bon j'ai trouvé la solution la plus simple à mon gout:

fichier: newthread.php
ligne: 751

Code :
$mybb->input['threadprefix'] = 0;

par
Code :
$mybb->input['threadprefix'] = 2;
(le "2" correspond au numero du préfix)


Seul problème c'est que c'est un fichier système Sad


Si c'était juste un préfixe textuel ("résolut" par exemple) la modification des fichiers langue cité ci-dessus suffisent. si quelqu'un trouve une solution pour un préfixe sous forme d'image ou de smiley je suis encore preneur d'une autre solution qui ne touche pas aux fichiers système
Il y aurait bien une solution, mais elle n'est pas très propre...

Avec ce plugin de ZiNgA BuRgA : PHP in Templates / Complex Templates, vous pourrez insérer du code PHP dans les templates de MyBB.

Dans le template "newthread", ajoutez, en haut, l'un des deux codes suivants :
Code :
<?php $mybb->input['threadprefix'] == 0 ? $mybb->input['threadprefix'] = 2 : void; ?>
OU
Code :
<?php if($mybb->input['threadprefix'] == 0) {
    $mybb->input['threadprefix'] = 2;
} ?>

Les deux codes font la même chose, sauf que le premier ne prend qu'une ligne et que le second est plus facile à lire.
ce code fonctionne avec le plugin?
Après avoir installé et activé le plugin, ajoutez l'un des deux codes dans le template "newthread".
ok merci Smile
heu question, quel est la différence avec la solution que j'ai proposé a part un plugin en plus?
Elle ne modifie pas les fichiers système, la modification est donc conservée entre chaque mise à jour de MyBB.
Edit : c'est tout, et c'est tout de même un peu plus propre que modifier le fichier système. Smile
P.S. : Et avant que exdiogene ne me le signale... Angel

Le code suivant sera plus correct et peut-être plus sécurisé :
Code :
<?php !intval($mybb->input['threadprefix']) ? $mybb->input['threadprefix'] == 2 : void; ?>
OU
Code :
if(!intval($mybb->input['threadprefix'])) {
    $mybb->input['threadprefix'] = 2;
}
bon je sais ce qu'il me reste a faire alors Smile merci des renseignements
Je la met en haut mais ou: avant la balise html ou head?
Peu importe, tant que c'est avant cette ligne :
Code :
<td class="trow2">{$prefixselect}<input type="text" class="textbox" name="subject" size="40" maxlength="85" value="{$subject}" tabindex="1" /></td>

Le mieux reste de la mettre avant html pour la retrouver facilement au cas où... Smile
hum... ca ne fonctionne pas Sad ca me ralentit juste le chargement je crois
Je viens de rentrer du travail, et avec le code devant les yeux, c'est un peu plus facile...
Il manque juste le morceau qui permet de (re)construire la boîte de sélection.

Voici le code correct pour MyBB 1.6.x :
Code :
<?php if(!intval($mybb->input['threadprefix'])) {
    $mybb->input['threadprefix'] = 2;
    $prefixselect = build_prefix_select($forum['fid'], $mybb->input['threadprefix']);
} ?>

Évidemment, ce n'est pas très propre, puisque la variable $prefixselect sera construite deux fois, mais ça reste plus sûr que de modifier directement la source.

Allez, pour me faire pardonner, je sors ma boule de cristal : pour que le code reste correct sous MyBB 1.8.x, il faudra sûrement le remplacer par celui-ci :
Code :
<?php if(!$mybb->get_input('threadprefix', 1)) {
    $mybb->input['threadprefix'] = 2;
    $prefixselect = build_prefix_select($forum['fid'], $mybb->get_input('threadprefix', 1));
} ?>
Parse error: syntax error, unexpected $end in /home/prohy185/public_html/leforum/newthread.php(973) : eval()'d code(4) : eval()'d code on line 3
}
Pourtant je me relis...
Le ?> n'était pas au bon endroit.
Je l'ai corrigé dans mon message précédent. Désolé. ^ ̮^'
C'est cool ca marche Smile merci Smile
Pages : 1 2
 Utilitaire de traduction fourni par Regentronique