FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Recherche rapide

Vous n'êtes pas identifié(e).

Version 1.4.13 : [.tar.gz][.zip] (maj 20/10/2014)
Pack langue française pour 1.4.x : [.zip] (maj 06/01/2012)

Branche 1.5.x : fluxbb.org
Pack langue française pour 1.5.x : [.zip] (maj 14/01/2016)

Ancienne Version 1.2.24 fr : [.zip] (maj 26/08/2011)

Vous avez un problème ?
Avant de poser votre question sur les forums d'entraide nous vous invitons à consulter :

#1 14-11-2011 15:45:29

thib3113
Habitué très actif
Lieu : Toulouse
Inscription : 11-03-2011
Messages : 542
Site Web

Mettre un lien "Déplacer à la corbeille" sur 1.4 + action inverse

Bonjour, je vous propose une adaptation de la mod corbeille de Winux pour la 1.2 , disponible ici, j'ai changé le bouton par un lien , j'ai ajouté la possibilité de remettre le topic à la place qu'il occupait précédemment ....
tout d’abord, voici une copie du message de WinuX , j'ai enlevé la partie que je vais modifiée :

WinuX a écrit :

Bonjour à tous.

Après avoir cherché durant des heures, j'ai réussi à é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.

Voici un screen pour voir ou serait le bouton :

http://img535.imageshack.us/img535/1624/boutond.png

Il faudra modifier :

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



Dans le fichier french/misc.php

1) Chercher :

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

Ajouter ensuite :

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


Dans le fichier french/common.php

2) Cherche :


// Stuff for the page footer

Ajouter ensuite :

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


Et vouala c'est fini smile
J'espère qu'elle vous sera utile wink


Cordialement, WinuX

voila maintenant les parties que j'ai modifié :

Dans le viewtopic.php

1) Trouver :

		$post_actions[] = '<li class="postreport"><span><a href="misc.php?report='.$cur_post['id'].'">'.$lang_topic['Report'].'</a></span></li>';

Ajouter ensuite (en remplaçant le 8 par l'id de votre forum de corbeille ) :

		if (($post_count + $start_from) == '1' && $cur_topic['forum_id'] != 8){	
		$post_actions[] = '<li class="postdelete"><span><a href="corbeille.php?id='.$cur_post['id'].'">'.$lang_topic['Go bin'].'</a></span></li>';
		}
		if (($post_count + $start_from) == '1' && $cur_topic['forum_id'] == 8){	
		$post_actions[] = '<li class="postdelete"><span><a href="corbeille.php?id='.$cur_post['id'].'&amp;replace=1">sortir de la corbeille</a></span></li>';
		}

Ajouter dans la table "topics", une nouvelle colonne du nom de "last_forum_id"

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

3) Ajouter ceci :

<?php 
    define('PUN_ROOT', './');
    require PUN_ROOT.'include/common.php';

    define('ID_CORBEILLE', 8); /* Mettre l'id du forum "corbeille" */
    
	if (file_exists(PUN_ROOT.'lang/'.$pun_user['language'].'/misc.php'))
	require PUN_ROOT.'lang/'.$pun_user['language'].'/misc.php';
else
	require PUN_ROOT.'lang/English/misc.php';
	
    $arr_lang = array();
    $arr_lang['msg1'] = 'Impossible de recenser les modérateurs';
    $arr_lang['msg2'] = 'On ne peut deplacer le topic !';
    $arr_lang['msg3'] = 'La discussion à bien était déplacée vers la corbeille';
    $arr_lang['msg4'] = $lang_misc['Pas_droit'];
    
    $corbeille_id = ID_CORBEILLE;
	
	$id = intval($_GET['id']);
	if ($id != '' && $_GET['replace'] == '1'){    /* Si on vient par le lien pour replacer */
        $efface_id = (isset($_GET['id'])? intval($_GET['id']) : 0); // On définit la variable $efface_id
        if($efface_id > 0)
        {
            $resultats = $db->query('SELECT * FROM '.$db->prefix.'topics WHERE 	first_post_id='.$efface_id) or error($arr_lang['msg1'], __FILE__, __LINE__, $db->error());
		 
		 if($db->num_rows($resultats))
            {
                $topics = $db->fetch_assoc($resultats);
                $forum_id = $topics['last_forum_id'];
				$is_admmod = ($pun_user['g_id'] == PUN_ADMIN || $pun_user['g_id'] == PUN_MOD || $pun_user['g_moderator']) ? true : false;
			   if ($is_admmod)
                {
                    // Sortir de la corbeille
					$db->query('UPDATE '.$db->prefix.'topics SET forum_id='.$forum_id.' WHERE first_post_id = '.$efface_id) or error('impossible de remettre le post sur le forum last_forum_id=\' '.$corbeille_requete['forum_id'].'\' ', __FILE__, __LINE__, $db->error());
                    update_forum($forum_id);
                    update_forum($corbeille_id);
					
					$resultat = $db->query('SELECT * FROM '.$db->prefix.'posts WHERE id='.$efface_id) or error('impossible de selectionner l\'id du site dans les posts', __FILE__, __LINE__, $db->error());
					$posts = $db->fetch_assoc($resultat);
          
						redirect('viewforum.php?id='.$forum_id, 'la discussion à bien était remise en ligne');  /*On redirige vers la corbeille */
                }
            }
        }
    }
	else{
	$id = intval($_GET['id']);
	if ($id != '')    // Si on vient par le lien
    {
        $efface_id = (isset($_GET['id'])? intval($_GET['id']) : 0); // On définit la variable $efface_id
        if($efface_id > 0)
        {
				$resultat = $db->query('SELECT * FROM '.$db->prefix.'topics WHERE first_post_id='.$efface_id) or error('impossible de selectionner l\'id du site dans les posts', __FILE__, __LINE__, $db->error());
					$topics = $db->fetch_assoc($resultat);
                $forum_id = $topics['forum_id'];
				$is_admmod = ($pun_user['g_id'] == PUN_ADMIN || $pun_user['g_id'] == PUN_MOD || $pun_user['g_moderator']) ? true : false;
			   if ($is_admmod)
                {
                    // Mettre a corbeille
					$db->query('UPDATE '.$db->prefix.'topics SET forum_id='.$corbeille_id.', last_forum_id='.$forum_id.' WHERE first_post_id = '.$efface_id) or error('impossible de supprimer le post sur le forum last_forum_id=\' '.$corbeille_requete['forum_id'].'\' ', __FILE__, __LINE__, $db->error());
                    update_forum($forum_id);
                    update_forum($corbeille_id);
					// mettre dans la corbeille du site
					$resultat = $db->query('SELECT * FROM '.$db->prefix.'posts WHERE id='.$efface_id) or error('impossible de selectionner l\'id du site dans les posts', __FILE__, __LINE__, $db->error());
					$posts = $db->fetch_assoc($resultat);
		         redirect('viewforum.php?id='.$corbeille_id, $arr_lang['msg3']);  /*On redirige vers la corbeille */
                }
            }
        }
    }
    /* si on n'est pas passer par le précédent redirect, on est redirigé vers l'index */
     redirect('index.php', $arr_lang['msg4']);
?>

PS : Pensez à changer l'id du forum corbeille dans les fichiers par l'id de votre forum corbeille à vous wink , à savoir que l'id de notre corbeille est ici "8"

PPS : j'ai personnellement eu pas mal de soucis avec cette mod, si vous remarquez une erreur, merci de m'en informé

Dernière modification par thib3113 (14-11-2011 17:03:42)

Hors ligne

#2 14-11-2011 16:12:54

fanf73
Wik-wiki
Lieu : Lyon
Inscription : 12-09-2006
Messages : 4 432
Site Web

Re : Mettre un lien "Déplacer à la corbeille" sur 1.4 + action inverse

Bonjour,

thib3113 a écrit :

Ajouter dans la table "topics", une nouvelle colonne du nom de "first_post_id"

Le champ "first_post_id" existe déjà dans la table "topics", et permet de stocker l'id du premier message de la discussion wink


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#3 14-11-2011 17:07:49

thib3113
Habitué très actif
Lieu : Toulouse
Inscription : 11-03-2011
Messages : 542
Site Web

Re : Mettre un lien "Déplacer à la corbeille" sur 1.4 + action inverse

j'ai modifié , merci fanf

Hors ligne

#4 01-12-2012 13:09:12

aromate
Régulier
Inscription : 26-11-2012
Messages : 92

Re : Mettre un lien "Déplacer à la corbeille" sur 1.4 + action inverse

Fonctionne pas sur 1.4.8

Hors ligne

#5 01-12-2012 18:20:13

fanf73
Wik-wiki
Lieu : Lyon
Inscription : 12-09-2006
Messages : 4 432
Site Web

Re : Mettre un lien "Déplacer à la corbeille" sur 1.4 + action inverse

On va vachement pouvoir t'aider avec autant de détails sur ce qui ne fonctionne pas...


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#6 01-12-2012 21:26:06

aromate
Régulier
Inscription : 26-11-2012
Messages : 92

Re : Mettre un lien "Déplacer à la corbeille" sur 1.4 + action inverse

tout a été créer et déplacé au bon endroit l'icone mettre à la corbeille ne se mets pas en bas à droite du post

j'ai bien créé le fichier corbeille.php j'ai aussi mis mon id corbeille rien y fait

Dernière modification par aromate (01-12-2012 21:27:00)

Hors ligne

#7 19-12-2012 12:37:29

thib3113
Habitué très actif
Lieu : Toulouse
Inscription : 11-03-2011
Messages : 542
Site Web

Re : Mettre un lien "Déplacer à la corbeille" sur 1.4 + action inverse

je pense que je ne pourrais pas t'aider, ça fait longtemps que je n'ai plus toucher à fluxbb, j'essaye de tout me coder moi même désormais. Désolée, peut etre que quelqu'un qui connais les modifications qui on était apportés à viewtopic.php pourra t'aider. à moins que cela ai était déplacé, ton problème dois ce trouver  dans viewtopic.php

Hors ligne

Pied de page des forums