Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[SUPPORT]Redirection

VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
Message édité 1 fois, dernière édition par Grummfy, 10 Janvier 2008, 0:32     Lien vers ce message 13 Février 2005, 23:03
Le support de ce MOD s'effectue uniquement à la suite de ce topic, afin de regrouper au maximum les réponses aux problèmes posés.
  1. [size=18]Données du MOD :[/size]
    1. Nom : Redirection
    2. Version : 1.0.0
    3. Installation : 10 minute(s)
    4. Cache : non
    5. Requètes SQL : oui
    6. Description : le choix est donné à l'utilisateur de laisser une redirection ou pas dans le forum d'origine
      sous la forme d'un sujet vide (marqué par une icone spéciale) qui pointe automatiquement
      vers le sujet deplacé.

    7. Fiche du MOD : http://www.fire-soft-board.com/fiche_mods.php?mod=31
    8. Télécharger le MOD : http://www.fire-soft-board.com/telecharger_mod.php?mod=31




  2. [size=18]Données de l'auteur :[/size]
    1. Auteur : flash666
    2. Contact : http://www.fire-soft-board.com/images/mail.gif http://www.fire-soft-board.com/images/mp.gif


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 13 Février 2005, 23:19
Ok merci je regarde ça demain.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
  Lien vers ce message 14 Février 2005, 11:09
Je propose d'ajouter dans le mod proposé les actions suivantes qui n'avaient pas été prévues :

proposition des differents cas de traitements pour un sujet 
qui a déjà  été deplacé au moins une fois

cas 1 : Soit un sujet qui a été dèjà  déplacé on le déplace à  nouveau 

  sous cas A : deplacement avec redirection demandée

    => on vire toutes les anciennes redirections
       car sinon il faudrait vérifié qu'on ne le mets pas dans son forum d'origine

  sous cas B : deplacement sans redirection demandée

    => on vire toutes les anciennes redirections


cas 2 : Soit un sujet qui a été dèjà  déplacé on supprime le sujet deplacé

    => on vire toutes les anciennes redirections


cas 3 : Soit un sujet qui a été dèjà  déplacé 

        on poste dans et on lit le sujet déplacé
        => aucun impact sur la redirection si elle existe
        
cas 4 : Soit un sujet qui a été dèjà  déplacé

        on le verrouille ou on le déverrouille
        => aucun impact sur la redirection si elle existe


de plus rajouter un message sur la page de modération de déplacement
indiquant simplement :

"si votre sujet à  déjà  été déplacé les anciennes redirections seront supprimées"



je pense pouvoir poster ces modifications complèmentaires ce soir.


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
  Lien vers ce message 14 Février 2005, 11:42
PS : le MOD proposé en début de ce sujet fonctionne mais il oubli les tà¢ches suivantes pour le moment :

mise à jour des nombres de sujet et de messages pour le forum ou est mise la redirection

surement aussi la mise à jour du nombre de post des membres concernés, mais j'en suis pas sur

le fonctionnement des indicateurs de lectures du forum ou est mise la redirection.

enfin tout cela pour dire que si on veut que ce MOD soit "propre" et n'enlève rien aux indicateurs actuel, il reste encore du boublot à faire

par ailleurs, il serait souhaitable dans le cas d'un sujet ou il n'y a que le message du sujet lui meme, de revoir la suppression :

cas 1 on clique sur le bouton suppression du sujet en bas c'est OK

cas 2 on clique sur le bouton dans le corps du message cela devrait diriger vers l'écran suppression du sujet et non de message si on veut rester logique

ou pour éviter le cas 2 enlever le bouton supprimer message dans ce cas

je vais essayer de comprendre le fonctionnement la totalite du source "moderation.php", y a du boulot.
ps je pense vu rapidemment qu'il y a certaines choses inutile dans ce sources comme traité dans les messages affiches le deplacement de plusieurs sujets ou alors il y a un bouton spécial que je n'ai pas vu, ou le traitement est utilisé par une autre fonction ailleurs ou à venir comme dans la partie admin, style supprimer tous les sujets d'un forum?...

patience et prudence de rigueur.


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 14 Février 2005, 12:24
A la base j'avais prévu de gérer la multi modération, mais finalement ca sera fait en MOD, donc j'ai laissé les boucles (qui ne cxonsoment pas plus de ressources) comme ça lorsque la multimodération arrivera ça sera simple à installer ;)


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
  Lien vers ce message 14 Février 2005, 12:32
bien, pour le moment j'en suis pas à la multi modération, et je pense pas avoir prévu le cas dans mon MOD, je vais regarder si je peux faire en sorte que cela marche avec une multimodération.

genova es tu d'accord avec les traitements proposés pour les différents traitements cas1,2,..

je suis au boulot actuellement, mais je travaille sur le sujet pendant la pause repas.


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 14 Février 2005, 12:40
Bah oui, je te conseille de ne garder qu'une seule redirection à la fois :) DOnc supprime les anciennes inutiles.
Ca répond à ta question ?


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
  Lien vers ce message 14 Février 2005, 14:36
OUI

voici le MOD complet avec tous les cas de figures que je résumerai ce soir

DSL pour la longueur mais étant au travail j'ai pas accès à mon FTP pour uploader le fichier

/*******************************************************************************
*   SUJET DEPLACER : version 1.0.0   testé avec FSB 1.0.0 beta
*
*   ---------- Auteur --------------------------------------------------------
*   Auteur :           flash666
*   Email :            flash_fr@msn.com
*   Site Web :         http://www.fire-soft-board.com/bthivent
*
*   ---------- Mod -----------------------------------------------------------
*   Nom :                   additif pour deplacer sujet
*   Version :               1.0.0
*   Compatible :            FSB 1.0.0 beta
*
*   Description :           Dans le fonction déplacer sujet selon choix (OUI/NON)
                            ajoute un sujet fictif avec lien de redirection vers le sujet déplacé
*
*   Temps d'installation :  10 minutes
*   Requete :               Oui
*   Cache :                 Non
*   Fichiers joints :         0
*   Fichiers à  modifier :     4
*
*   ---------- Note ----------------------------------------------------------
*   Aucune note
*
*   ---------- Historique ----------------------------------------------------
*   Commencé :            Le 13 / 2 / 2005
*   Dernière modification :   Le 13 / 2 / 2005
*
*
*******************************************************************************/

#
# [1] ---------- requete SQL ----------------------------------------------------
#
ALTER TABLE fsb_sujets ADD `sujet_deplace` INT( 11 ) NOT NULL ;
#
# [2] ---------- ouvrir ---------------------------------------------------------
#
langues/fr/langue_forum.php
#
# [3] ---------- chercher -------------------------------------------------------
#
$langue['deplacer_sujet'] = 'Déplacer un sujet';
#
# [4] ---------- apres, ajouter -------------------------------------------------
#
$langue['deplacer_sujet_msg'] = 'Sujet déplacé->';
$langue['deplacer_sujet_choix'] = 'Laisser redirection? si OUI cocher la case';
$langue['deplacer_sujet_aide'] = 'si votre sujet à  déjà  été déplacé les anciennes redirections seront supprimées';
#
# [6] ---------- ouvrir ---------------------------------------------------------
#
sujet.php
#
# [7] ---------- chercher -------------------------------------------------------
#
	$sql = 'SELECT * FROM ' . SUJETS_TABLE . '
			WHERE sujet_id = \'' . $sujet_id . '\'';
#
# [8] ---------- apres, ajouter -------------------------------------------------
#
  if ( ! $result = $bdd->requete($sql) )
  {
  	info($langue['er_titre'], sprintf($langue['er_select'], 'sujets'), __LINE__, __FILE__, $sql);
  }
    $copie = $bdd->tableau($result);
    if($copie['sujet_deplace'] <> 0)
    {
    	$sujet_id=$copie['sujet_deplace'];
    	$sql = 'SELECT * FROM ' . SUJETS_TABLE . '
    			WHERE sujet_id = \'' . $sujet_id . '\'';
    }
#
# [9] ---------- ouvrir ---------------------------------------------------------
#
moderation.php
#
# [10] ---------- chercher -------------------------------------------------------
#
					'L_ANNULER' =>	$langue['annuler'],
#
# [11] ---------- apres, ajouter -------------------------------------------------
#
					'L_CHOIX' =>	$langue['deplacer_sujet_choix'],
					'L_AIDE' =>	$langue['deplacer_sujet_aide'],
#
# [12] ---------- chercher -------------------------------------------------------
#
						$sql = 'UPDATE ' . MESSAGES_LUS_TABLE . '
								SET forum_id = \'' . $nouv_forum_id . '\'
								WHERE sujet_id IN(' . $sql_suite . ')';
						if ( ! $bdd->requete($sql) )
						{
							info($langue['er_titre'], sprintf($langue['er_update'], 'messages'), __LINE__, __FILE__, $sql);
						}
					}
#
# [13] ---------- apres, ajouter -------------------------------------------------
#
          $sqldeplace = 'DELETE FROM ' . SUJETS_TABLE . '
  						WHERE sujet_deplace IN(' . $sql_suite . ')';
  				if ( ! $result = $bdd->requete($sqldeplace) )
  				{
  					info($langue['er_titre'], sprintf($langue['er_delete'], 'sujets'), __LINE__, __FILE__, $sql);
  				}
          if ( isset($HTTP_POST_VARS['deplacer_redirection']))
          {
            foreach ($sujet_t_id as $sujet_t_id) {
  
            	$sqllecture = 'SELECT * FROM ' . SUJETS_TABLE . '	WHERE sujet_id = ' . $sujet_t_id ;
    				  if ( ! $result = $bdd->requete($sqllecture) )
    					{
    						info($langue['er_titre'], sprintf($langue['er_update'], 'sujets'), __LINE__, __FILE__, $sql);
    					}
    					$copie = $bdd->tableau($result);
              $Dsujet_nom=$langue['deplacer_sujet_msg'].$copie['sujet_nom'];
              if (strlen($Dsujet_nom)>250)
              {
                $Dsujet_nom=substr($Dsujet_nom,0,249);
              }
      				$sql = 'INSERT INTO ' . SUJETS_TABLE . '
      						(forum_id, membre_id , sujet_nom , dernier_message_id , premier_message_id, sujet_type, sujet_status, sujet_deplace  )
      						VALUES(\'' . $forum_id . '\', \'' . $copie['membre_id'] . '\', \'' . $Dsujet_nom . '\',\'' . $copie['dernier_message_id'] . '\',\'' . $copie['premier_message_id'] . '\',\'' . $copie['sujet_type'] . '\',\'' . $copie['sujet_status'] . '\' ,\'' . $copie['sujet_id'] . '\')';
    					if ( ! $bdd->requete($sql) )
    					{
    						info($langue['er_titre'], sprintf($langue['er_update'], 'sujets'), __LINE__, __FILE__, $sql);
    					}
            }
          }
#
# [14] ---------- chercher -------------------------------------------------------
#       pour fonction suppression sujet
#
				$sql = 'DELETE FROM ' . MESSAGES_TABLE . '
						WHERE sujet_id IN(' . $sql_suite .')';
				if ( ! $result = $bdd->requete($sql) )
				{
					info($langue['er_titre'], sprintf($langue['er_delete'], 'messages'), __LINE__, __FILE__, $sql);
				}
#
# [15] ---------- apres, ajouter -------------------------------------------------
#
        $sql = 'DELETE FROM ' . SUJETS_TABLE . '
						WHERE sujet_deplace IN(' . $sql_suite .')';
				if ( ! $result = $bdd->requete($sql) )
				{
					info($langue['er_titre'], sprintf($langue['er_delete'], 'sujets'), __LINE__, __FILE__, $sql);
				}
#
# [16] ---------- chercher -------------------------------------------------------
#       pour fonction suppression message
#
			if ( isset($HTTP_POST_VARS['confirm_oui']) )
			{
				$sql = 'DELETE FROM ' . MESSAGES_TABLE . ' 
						WHERE message_id = \'' . $message_id . '\'';
				if ( ! $bdd->requete($sql) )
				{
					info($langue['er_titre'], sprintf($langue['er_delete'], 'messages'), __LINE__, __FILE__, $sql);
				}

				if ( $unique_message )
				{
#
# [17] ---------- apres, ajouter -------------------------------------------------
#
          $sql = 'DELETE FROM ' . SUJETS_TABLE . '
  						WHERE sujet_deplace = \'' . $message['sujet_id'] . '\'';
  				if ( ! $result = $bdd->requete($sql) )
  				{
  					info($langue['er_titre'], sprintf($langue['er_delete'], 'sujets'), __LINE__, __FILE__, $sql);
  				}
#
# [18] ---------- ouvrir ---------------------------------------------------------
#
theme/IceCold/deplacer_sujet.tpl
#
# [19] ---------- chercher -------------------------------------------------------
#
			{ERREUR}<br />{LISTE}<br /><br />
#
# [20] ---------- apres, ajouter -------------------------------------------------
#
			{L_CHOIX} <input type="checkbox" name="deplacer_redirection"  /><br />{L_AIDE}<br /><br />
#



#
# [fin]  --------------------------------------------------------------------------
#







# correction du message si on change pas le sujet de forum dans la fonction deplacer sujet
# juste pour la forme, je mets le message : "Vous n'avez pas changé de forum!"
# "au lieu de Le sujet a été déplacé"

# [X0] ---------- ouvrir ---------------------------------------------------------
#
moderation.php
#
# [X1] ---------- chercher -------------------------------------------------------
#
        }
				$l_deplacer = ( $total_sujet_t > 1 ) ? $langue['sujets_deplacers'] : $langue['sujet_deplacer'];
#
# [X2] ---------- remplacer par --------------------------------------------------
#
				  $l_deplacer = ( $total_sujet_t > 1 ) ? $langue['sujets_deplacers'] : $langue['sujet_deplacer'];
        }
        else 
        {
  				$l_deplacer = $langue['sujets_pas_deplacer'];
        }
#
# [X3] ---------- ouvrir ---------------------------------------------------------
#
langues/fr/langue_forum.php
#
# [X4] ---------- chercher -------------------------------------------------------
#
$langue['sujets_deverrouillers'] = 'Les sujets ont été déverrouillés';
#
# [X5] ---------- apres, ajouter -------------------------------------------------
#
$langue['sujets_pas_deplacer'] = 'Vous n\'avez pas changé de forum!';



voilà j'espère ne pas avoir oublier de transféré mes modifs, j'ai testé en local ca marche, pas pu tester pour la multimodération mais c'est prévu


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
  Lien vers ce message 14 Février 2005, 22:36
voilà les fonctionnalités promises :

Citation
Fonctionnalités du mod : redirection après deplacement d'un sujet

le choix est donné à l'utilisateur de laisser une redirection ou pas dans le forum d'origine
sous la forme d'un sujet vide (qui reprend le titre d'origine précèdés du message : "Sujet déplacé->"
qui pointe automatiquement vers le sujet à l'endroit ou il a été deplacé.

pas d'interférences avec les sujets lus ou pas, ni avec les nombres de messages postés par un utilisateur,
ni le nombre des sujets ou messages du forum, les nombres des vues et de réponses pour un sujet

quelque soit le cas de figure lorsqu'on fait un déplacement de sujet avec redirection ou pas
l'ancienne redirection du sujet si il y en avait une est éffacée.


cela devrait aussi fonctionner avec le déplacement multiple de sujet
(multimodération ou déplacement d'un forum complet) bien que ces fonctions
ne soient pas encore mises en service dans FSB, mais malgré tout implémantées dans le code.


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
  Lien vers ce message 15 Février 2005, 12:58
voir mon message avec une question dans le sujet "messages non lus" du forum "rapport de bugs"

je suis en train de paufiner ce module dans la présentation de l'affichage.

de meme j'enleverai du même coup la partie :

(Mar 15 Fév 2005, 12:51)
flash666 ->

qui se trouve en fin de ligne du sujet dans la liste des sujets.

à voir si cela devient un module ou si vous l'intégrez dans la version de base car il ne ralentit en rien l'utilisation courante du forum.

suggestion : les modules qui ne ralentissent pas l'utilisation courante (hors fonctions de modération et d'admin) du forum, devrait être intégrés d'office dans le forum de base du forum.


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 15 Février 2005, 13:57
Ouep à la limite pourquoi pas, le problème n'est pas d'intégrer des fonctions qui ralentissent le frum, mais des fonction indispensable. la tracage des sujets est certe utile, mais pas non plus indispensable, mais utile j'en convient. j'en parlerais aux autres pour avoir leur avi.
Dit moi quand tu en es à la version définitive, je testerai à ce moment là .


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
  Lien vers ce message 15 Février 2005, 20:06
version finale du mod à télécharger par le lien ci-dessous

http://www.mcphp.com/fsb/MOD_redirection_1.0.0.zip

testeur à vos clavier

MOD testé en local avec uniquement la version de FSB 1.0.0 beta installée


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
  Lien vers ce message 15 Février 2005, 22:55
j'ai corrigé le fichier en téléchargement le lien est toujours valable j'avais oublié de copié une modification que j'avais faite
la correction apportée porte sur le point 22


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
Brasier
Avatar de DDril
  • Messages : 727
  • Inscrit : 03 Janvier 2005
  Lien vers ce message 16 Février 2005, 17:27
Il y a une erreur dans ton mod :

#
# [11] ---------- chercher -------------------------------------------------------
#
						$sql = 'UPDATE ' . MESSAGES_LUS_TABLE . '
								SET forum_id = \'' . $nouv_forum_id . '\'
								WHERE sujet_id IN(' . $sql_suite . ')';
						if ( ! $bdd->requete($sql) )
						{
							info($langue['er_titre'], sprintf($langue['er_update'], 'messages'), __LINE__, __FILE__, $sql);
						}
					}
#
# [12] ---------- apres, ajouter -------------------------------------------------
#
          $sqldeplace = 'DELETE FROM ' . SUJETS_TABLE . '
  						WHERE id_sujet_deplace IN(' . $sql_suite . ')';
  				if ( ! $result = $bdd->requete($sqldeplace) )
  				{
  					info($langue['er_titre'], sprintf($langue['er_delete'], 'sujets'), __LINE__, __FILE__, $sql);
  				}
          if ( isset($HTTP_POST_VARS['deplacer_redirection']))
          {
            foreach ($sujet_t_id as $sujet_t_id) {
  
            	$sqllecture = 'SELECT * FROM ' . SUJETS_TABLE . '	WHERE sujet_id = ' . $sujet_t_id ;
    				  if ( ! $result = $bdd->requete($sqllecture) )
    					{
    						info($langue['er_titre'], sprintf($langue['er_update'], 'sujets'), __LINE__, __FILE__, $sql);
    					}
    					$copie = $bdd->tableau($result);
      				$sql = 'INSERT INTO ' . SUJETS_TABLE . '
      						(forum_id, membre_id , sujet_nom , dernier_message_id , premier_message_id, sujet_type, sujet_status, id_sujet_deplace,dernier_message_temps   )
      						VALUES(\'' . $forum_id . '\', \'' . $copie['membre_id'] . '\', \'' . $copie['sujet_nom'] . '\',\'' . $copie['dernier_message_id'] . '\',\'' . $copie['premier_message_id'] . '\',\'' . $copie['sujet_type'] . '\',\'' . $copie['sujet_status'] . '\' ,\'' . $copie['sujet_id'] . '\',\'' . $copie['dernier_message_temps'] . '\')';
    					if ( ! $bdd->requete($sql) )
    					{
    						info($langue['er_titre'], sprintf($langue['er_update'], 'sujets'), __LINE__, __FILE__, $sql);
    					}
            }
          }


ce que nous devons chercher n'existes pas...


Webmaster de l'Organisation Très Secrète
 
VIP
Avatar de flash666
  • Messages : 2006
  • Inscrit : 01 Février 2005
  Lien vers ce message 16 Février 2005, 19:54
bizarre as tu la même version que moi?
je me suis basé sur le FSB 1.0.0 beta téléchargée ce weekend


moi je trouve bien dans le fichier moderation.php
à partir de la ligne 401

						$sql = 'UPDATE ' . MESSAGES_LUS_TABLE . '
								SET forum_id = \'' . $nouv_forum_id . '\'
								WHERE sujet_id IN(' . $sql_suite . ')';
						if ( ! $bdd->requete($sql) )
						{
							info($langue['er_titre'], sprintf($langue['er_update'], 'messages'), __LINE__, __FILE__, $sql);
						}
					}




il n'y a que moi qui arrive à trouver?

si tu lance une recherche avec un editeur de texte je te conseille de chercher :
$sql = 'UPDATE ' . MESSAGES_LUS_TABLE . ' et de vérifier si le reste correspond.


ne remets pas à demain ce que tu peux faire faire aujourd'hui par un autre
 
Répondre


.