Annonce

#1 2004-02-26 08:19:37

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : [fixed] Modèle réutilisable

le fonctionnement est:

Si on part de rien ou d'une sauvegarde, lors de l'envoi, le statut de cette lettre est mis sur 'envoi en cours". A la fin de l'envoi, il est positionné sur 'envoyé' (archive)

Si on part d'un modèle, une copie est créé lors de l'envoi et c'est à partir de celle ci que les changements de statut vont se faire.

Si on modifie une modèle puis qu'on le sauvegarde en tant que lettre de diffusion normale, une copie est créé et c'est celle la qui contient les dernières modifications sauvegardées, pas le modèle.
L'inverse n'est pas vrai. Une sauvegarde précédente qui l'on enregistre ultérieurement comme étant un modèle voit son statut changé pour 'modèle'. (pas de copie)

Dans tous les cas, les modèles ne sont pas supprimés.
Le seul cas où ils le sont, c'est quand on en charge un puis qu'on clique sur le bouton 'supprimer'.

Quelle est la version du script que vous utilisez ?


PHP et MySQL, un duo gagnant !

Hors ligne

#2 2005-11-29 17:18:12

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : [fixed] Modèle réutilisable

Effectivement, j'ai pu reproduire le bug avec la version 2.2.8…
Ça peut être assez génant  sad


PHP et MySQL, un duo gagnant !

Hors ligne

#3 2005-11-29 17:50:45

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : [fixed] Modèle réutilisable

Même bug potentiel lorsqu'on supprime une pièce jointe.


PHP et MySQL, un duo gagnant !

Hors ligne

#4 2005-12-03 00:33:29

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : [fixed] Modèle réutilisable

Le problème est corrigé sur les branches 2.2 et 2.3.

Voilà le différentiel entre le fichier envoi.php de la version 2.2.8 et celui de la branche de développement intégrant le correctif:

--- 2.2.8/admin/envoi.php    2005-11-14 01:22:12.000000000 +0100
+++ branche_2.2/admin/envoi.php    2005-11-29 17:32:30.000000000 +0100
@@ -34,8 +34,6 @@
 
 $listdata = $auth->listdata[$admindata['session_liste']];
 
-$mode = ( !empty($_REQUEST['mode']) ) ? $_REQUEST['mode'] : '';
-
 $logdata = array();
 $logdata['log_id']        = ( !empty($_REQUEST['id']) ) ? intval($_REQUEST['id']) : 0;
 $logdata['log_subject']   = ( !empty($_POST['subject']) ) ? trim($_POST['subject']) : '';
@@ -43,6 +41,9 @@
 $logdata['log_body_html'] = ( !empty($_POST['body_html']) ) ? trim($_POST['body_html']) : '';
 $logdata['log_status']    = ( !empty($_POST['log_status']) ) ? STATUS_HANDLE : STATUS_WRITING;
 
+$mode = ( !empty($_REQUEST['mode']) ) ? $_REQUEST['mode'] : '';
+$prev_status = ( isset($_POST['prev_status']) ) ? intval($_POST['prev_status']) : $logdata['log_status'];
+
 if( isset($_POST['cancel']) )
 {
     Location('envoi.php?mode=load&id=' . $logdata['log_id']);
@@ -114,6 +115,7 @@
             if( $row = $db->fetch_array($result) )
             {
                 $logdata = $row;
+                $prev_status = $row['log_status'];
             }
             else
             {
@@ -342,7 +344,6 @@
             
             if( !$error )
             {
-                $prev_status    = ( isset($_POST['prev_status']) ) ? $_POST['prev_status'] : 0;
                 $sql_where      = '';
                 $duplicate_log  = false;
                 $duplicate_file = false;
@@ -462,6 +463,7 @@
                 }
                 
                 $logdata['log_id'] = $tmp_id;
+                $prev_status = $logdata['log_status'];
                 unset($tmp_id);
                 
                 if( $mode == 'save' || $mode == 'send' )
@@ -685,7 +687,7 @@
 $output->addScript($waroot . 'templates/admin/editor.js');
 
 $output->addHiddenField('id'         , $logdata['log_id']);
-$output->addHiddenField('prev_status', $logdata['log_status']);
+$output->addHiddenField('prev_status', $prev_status);
 $output->addHiddenField('sessid'     , $session->session_id);
 
 $output->page_header();

Les indications entre @@ sont les numéros de ligne (en gros). Les lignes précédées d'un signe moins sont à supprimer et celles précédées d'un signe plus doivent être ajoutées.
Pas le temps de faire plus clair dans l'immédiat.


PHP et MySQL, un duo gagnant !

Hors ligne

Pied de page des forums