ToutSurTout.biz
[Réglé] Bouton corbeille


krys31 a écrit :

Ah c'est un punBB soit un FluxBB! On est pas medium hein tu sais ^^
Pourquoi ne pas créer un forum qui serait nommé en poubelle ou corbeille ? Puis lui attribuer des droits d'accès...

établir un bouton qui serait mis en place sur tous les premiers posts de chaque topics qui permettrait de déplacer un topic dans un forum nommé corbeille (comme on le voit souvent sur divers board).
Seule les admin et modérateur verront le bouton et pourront mettre le topic à la corbeille.
L'id du forum "Corbeille" devra être défini dans le fichier corbeille.php.


Il faudra modifier :

- viewtopic.php
- corbeille.php (à créer)
- french/misc.php
- french/common.php

Dans le viewtopic.php

1) Trouver (ligne 327 environ):

Code :

<h3><?php if (($post_count + $start_from) > 1) echo ' Re: '; ?><?php echo pun_htmlspecialchars($cur_topic['subject']) ?></h3> <div class=&quot;postmsg&quot;> <?php echo $cur_post['message'].&quot;n&quot; ?> <?php if ($cur_post['edited'] != '') echo &quot;ttttt&quot;.'<p class=&quot;postedit&quot;>[i]'.$lang_topic['Last edit'].' '.pun_htmlspecialchars($cur_post['edited_by']).' ('.format_time($cur_post['edited']).')[/i]</p>'.&quot;n&quot;; ?> </div> <?php if ($signature != '') echo &quot;tttt&quot;.'<div class=&quot;postsignature&quot;><hr />'.$signature.'</div>'.&quot;n&quot;; ?> </div> <div class=&quot;clearer&quot;></div> <div class=&quot;postfootleft&quot;><?php if ($cur_post['poster_id'] > 1) echo ' '.$is_online.'</p>'; ?></div> Ajouter ensuite :

Ajouter ensuite :

Code :

<?php if ($post_count==1)/* Mettre le bouton que sur le premier post du topic */ { if ($is_admmod) /* Si le membre est un modérateur ou un admin */ { echo &quot;<form action='corbeille.php' method='post'> <p align='right'><input type='submit' name='corbeille' value='&quot;.$lang_common['Corbeille'].&quot;' /> <input type='hidden' name='t_id' value='&quot;.$id.&quot;' /> </p></form>&quot;; /* On affiche le bouton &quot;Mettre à la corbeille&quot; */ }; }; ?>

Dans le fichier corbeille.php (à créer) :

2) Ajouter ceci :

Code :

<?php define('PUN_ROOT', './'); require PUN_ROOT.'include/common.php'; define('ID_CORBEILLE', 9); /* Mettre l'id du forum &quot;corbeille&quot; */ $arr_lang = array(); $arr_lang['msg1'] = 'Impossible de recenser les modérateurs'; $arr_lang['msg2'] = 'On ne peut deplacer le topic !'; $arr_lang['msg3'] = $lang_misc['Move topic redirect']; $arr_lang['msg4'] = $lang_misc['Pas_droit']; $corbeille_id = ID_CORBEILLE; if (isset($_POST['corbeille'])) /* Si on a cliqué sur le bouton */ { $efface_id = (isset($_POST['t_id'])? intval($_POST['t_id']) : 0); /* On définit la variable $efface_id */ if($efface_id > 0) { $result = $db->query('SELECT f.moderators, f.id FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id WHERE t.id='.$efface_id) or error($arr_lang['msg1'], __FILE__, __LINE__, $db->error()); if($db->num_rows($result)) { $corbeille_requete = $db->fetch_assoc($result); $forum_id = $corbeille_requete['id']; $mods_array = ($corbeille_requete['moderators'] != '') ? unserialize($corbeille_requete['moderators']) : array(); $is_admmod = ($pun_user['g_id'] == PUN_ADMIN || ($pun_user['g_id'] == PUN_MOD && array_key_exists($pun_user['username'], $mods_array))) ? true : false; if ($is_admmod) { // Mettre à la corbeille $db->query('UPDATE '.$db->prefix.'topics SET forum_id='.$corbeille_id.' WHERE id = '.$efface_id) or error($arr_lang['msg2'], __FILE__, __LINE__, $db->error()); update_forum($forum_id); update_forum($corbeille_id); redirect('viewforum.php?id='.$corbeille_id, $arr_lang['msg3']); /*On redirige vers la corbeille */ } } } } /* si on n'est pas passé par le précédent redirect, on est redirigé vers l'index */ redirect('index.php', $arr_lang['msg4']); ?>

Dans le fichier french/misc.php

3) Chercher (ligne 58 59 environ) :

Code :

'Stick topic redirect' => 'Discussion épinglée. Redirection ...', 'Unstick topic redirect' => 'Discussion détachée. Redirection ...',

Ajouter ensuite :

Code :

'Pas_droit' => &quot;Vous n'avez pas le droit d'être là, vous allez être redirigé&quot;,

Dans le fichier french/common.php

4) Chercher (ligne 131 environ) :

Code :

// Stuff for the page footer

Ajouter ensuite :

Code :

'Corbeille' => 'Mettre à la corbeille',

PS : Pensez à changer l'id du forum corbeille dans le fichier corbeille par l'id de votre forum corbeille à vous

mdr c'est déjà testé ça je n'ai pas le lien corbeille qui s'affiche ça été récupéré sur fluxbb ce que tu me donnes et c'est déjà testé