- 0Réputation du message : 100% (8 votes)
par Self Dim 19 Oct 2014 - 11:50
| Poster un sujet directement verrouillé | |
| Avant toute modification, assurez-vous que votre forum respecte les conditions suivantes : - Ne pas avoir installé l'astuce Redirection immédiate ; - Vous devez être le fondateur du forum pour avoir accès aux templates de celui-ci ; - Votre forum doit être en version PhpBB2, PhpBB3, PunBB ou Invision . |
Cette astuce vous permettra de choisir de verrouiller directement un sujet en le postant :
Modifications du template
Panneau d'administration Affichage Templates - Poster & messages privés
Editez le template posting_body en cliquant sur l'icône face au template correspondant.
Tout à la fin du template, après la variable {SCEDITOR}, insérez le code suivant :
- Code:
<script type="text/javascript"> (function($){ var mode = $('form[name="post"]').find('input[name="mode"]').attr('value'), l = $('#lock'), lvl = _userdata.user_level; if(mode == 'newtopic'){ if(lvl == 0 || lvl > 2) l.parent().remove(); $('form[name="post"]').on('submit', function(){ if(l.is(':checked')) sessionStorage.setItem('lock', true); sessionStorage.setItem('tid', $('input[name="tid"]').val()); }) }else{ l.parent().remove(); } })(jQuery); </script>
Ensuite, recherchez (CTRL + F) la ligne suivante <!-- BEGIN switch_html_checkbox --> puis ajouter le code (en fonction de la version de votre forum) :
- Si votre forum est en version PhpBB2, ajoutez le code suivant juste après :
- Code:
<tr> <td colspan="2"><input id="lock" type="checkbox" name="lock" /> <span class="gen">Verrouiller le sujet</span></td> </tr>
- Si votre forum est en version PhpBB3, PunBB ou Invision, ajoutez le code suivant juste après :
- Code:
<label><input id="lock" type="checkbox" name="lock" /> Verrouiller le sujet<br /></label>
N’oubliez pas de publier le template en cliquant sur .
Création du script
Panneau d'administration Modules HTML & JAVASCRIPT - Gestion des codes Javascript
Assurez-vous que la gestion des codes Javascript soit activée, puis créez un nouveau javascript ayant pour titre "Verrouiller un sujet" et pour placement "Sur toutes les pages" (plus d'informations sur la gestion des scripts).
- Code:
if (location.pathname == "/post") jQuery(function($) { if (!window.localStorage || !sessionStorage.lock) return; var a = $('a[href^="/viewtopic"]'); if (a.length != 0) { var topic = a.attr('href').match(/t=[0-9]*/); var lock = sessionStorage.getItem('lock'); var tid = sessionStorage.getItem('tid'); if (lock == 'true') { $.get('/modcp?mode=lock&' + topic + '&tid=' + tid).done(function() { console.log('done'); sessionStorage.removeItem('lock'); }); } } else { $("#lock").prop("checked", true).click(function() { sessionStorage.removeItem('lock'); }); } });
N'oubliez pas de cliquer sur le bouton Valider pour sauvegarder les modifications.
|