Dotclear

Changeset 1906


Ignore:
Timestamp:
11/25/09 12:10:07 (14 years ago)
Author:
kwon
Message:

Newsletter 3.7.0 alpha001

Location:
plugins/newsletter/trunk
Files:
1 deleted
12 edited

Legend:

Unmodified
Added
Removed
  • plugins/newsletter/trunk/_admin.php

    r1848 r1906  
    3535 
    3636// Dynamic method 
    37 $core->rest->addFunction('letterGetSubscribersUp', array('newsletterRest','letterGetSubscribersUp')); 
    3837$core->rest->addFunction('prepareALetter', array('newsletterRest','prepareALetter')); 
    39 $core->rest->addFunction('sendALetter', array('newsletterRest','sendALetter')); 
    40 $core->rest->addFunction('sendLetter', array('newsletterRest','sendLetter')); 
    4138$core->rest->addFunction('sendLetterBySubscriber', array('newsletterRest','sendLetterBySubscriber')); 
    4239 
     
    6562     public static function adminAutosend($cur, $post_id) 
    6663     { 
    67           newsletterCore::autosendNewsletter(); 
     64          global $core; 
     65 
     66          // recupere le contenu du billet 
     67          $params = array(); 
     68          $params['post_id'] = (integer) $post_id; 
     69      
     70          $rs = $core->blog->getPosts($params); 
     71           
     72          if (!$rs->isEmpty() && $rs->post_status == 1) { 
     73               newsletterCore::autosendNewsletter(); 
     74          } 
    6875     } 
    6976 
     
    146153class newsletterRest  
    147154{ 
    148       
    149      // select 
    150      public static function prepareALetter(dcCore $core,$get,$post) { 
    151  
     155     // Prepare the xml tree 
     156     public static function prepareALetter(dcCore $core,$get,$post)  
     157     { 
    152158          if (empty($get['letterId'])) { 
    153159               throw new Exception('No letter selected'); 
     
    161167          $letterTag = $nltr->getXmlLetterById(); 
    162168           
    163           /*$params = array(); 
    164           $params['post_type'] = 'newsletter'; 
    165           $params['post_id'] = $letterId; 
    166       
    167           $post = $core->blog->getPosts($params); 
    168            
    169           if ($post->isEmpty()) 
    170           { 
    171                throw new Exception(__('This newsletter does not exist.')); 
    172           } 
    173           else 
    174           { 
    175                $post_id = $post->post_id; 
    176                $post_dt = date('Y-m-d H:i',strtotime($post->post_dt)); 
    177                $post_format = $post->post_format; 
    178                $post_password = $post->post_password; 
    179                $post_url = $post->post_url; 
    180                $post_lang = $post->post_lang; 
    181                $post_title = $post->post_title; 
    182                $post_excerpt = $post->post_excerpt; 
    183                $post_excerpt_xhtml = $post->post_excerpt_xhtml; 
    184                $post_content = $post->post_content; 
    185                $post_content_xhtml = $post->post_content_xhtml; 
    186                $post_status = $post->post_status; 
    187                $post_position = (integer) $post->post_position; 
    188                $post_open_comment = (boolean) $post->post_open_comment; 
    189                $post_open_tb = (boolean) $post->post_open_tb; 
    190           } 
    191           */ 
    192  
    193           // retrieve lists of active subscribers 
     169          // set status to publish 
     170          $status = 1; 
     171          $core->blog->updPostStatus((integer) $letterId,$status); 
     172           
     173          // retrieve lists of active subscribers or selected  
    194174          $subscribers_up = array(); 
    195           $subscribers_up = newsletterCore::getlist(true); 
     175 
     176          if (empty($get['subscribersId'])) { 
     177               $subscribers_up = newsletterCore::getlist(true);   
     178          } else { 
     179                
     180               $sub_tmp=array(); 
     181               $sub_tmp = explode(",", $get['subscribersId']); 
     182                
     183               $params['subscriber_id'] = $sub_tmp; 
     184                      
     185               $params['state'] = "enabled"; 
     186               $subscribers_up = newsletterCore::getSubscribers($params); 
     187          } 
    196188 
    197189          if (empty($subscribers_up)) { 
     
    200192 
    201193          $rsp = new xmlTag(); 
    202  
    203194          $rsp->insertNode($letterTag); 
    204195 
    205196          $subscribers_up->moveStart();       
    206197          while ($subscribers_up->fetch()) {  
    207                //$core->blog->dcNewsletter->addError($subscribers_up->email); 
    208198               $subscriberTag = new xmlTag('subscriber'); 
    209                 
    210199               $subscriberTag->id=$subscribers_up->subscriber_id; 
    211200               $subscriberTag->email=$subscribers_up->email; 
    212                 
    213                //$subscriberTag->letter_id=$letterId; 
    214                //$subscriberTag->letter_title=$post_title; 
    215                 
     201 
    216202               $rsp->insertNode($subscriberTag); 
    217203          }          
    218204          return $rsp;              
    219            
    220      } 
    221       
    222       
    223       
     205     } 
     206           
    224207     /** 
    225208     * Rest send letter 
     
    245228          } 
    246229           
    247            
    248            
    249 /*                  p_sub_id: p_sub_id,  
    250                     p_sub_email: p_sub_email,  
    251                     p_letter_id: p_letter_id,  
    252                     p_letter_subject: p_letter_subject,  
    253                     p_letter_header: p_letter_header, 
    254                     p_letter_footer: p_letter_footer, 
    255                     p_letter_body: p_letter_body 
    256 */         
     230          // define content 
     231          $scontent = newsletterLetter::renderingSubscriber($post['p_letter_body'], $post['p_sub_email']); 
     232           
    257233          // send letter to user 
    258234          $mail = new newsletterMail($core); 
    259           $mail->setMessage($post['p_sub_id'],$post['p_sub_email'],$post['p_letter_subject'],$post['p_letter_body'],'html'); 
     235          $mail->setMessage($post['p_sub_id'],$post['p_sub_email'],$post['p_letter_subject'],$scontent,'html'); 
     236          //throw new Exception('content='.$scontent); 
    260237          $mail->send(); 
    261238          $result = $mail->getState(); 
     
    268245     } 
    269246 
    270      /** 
    271      * Rest send letter 
    272      */    
    273      public static function sendSubscriberLetter(dcCore $core,$get,$post) { 
    274            
    275           /*if (empty($post['letterId'])) { 
    276                throw new Exception('No letter selected'); 
    277           }*/ 
    278           //$core->meta = new dcMeta($core); 
    279           //$core->newsletter = new dcNewsletter($core); 
    280           //$redo = $core->gallery->refreshGallery($post['galId']); 
    281           //$redo = $core->newsletter->sendLetter($post['letterId']); 
    282           //$result = $core->newsletter->sendSubscriberLetter(); 
    283           //$result = newsletterSubscribersList::sendSubscriberLetter(); 
    284            
    285           $result = newsletterSubscribersList::sendSubscriberLetter($post['letterId']); 
    286            
    287            
    288           //$redo = true; 
    289           /*if ($redo) { 
    290                $rsp = new xmlTag(); 
    291                $redoTag = new xmlTag('redo'); 
    292                $redoTag->value="1"; 
    293                $rsp->insertNode($redoTag); 
    294                return $rsp; 
    295           } else {*/ 
    296                return $result; 
    297           //} 
    298      } 
    299  
    300  
    301247} // end class newsletterRest 
    302248?> 
  • plugins/newsletter/trunk/_define.php

    r1848 r1906  
    1515     /* Description*/    "Manager newsletter", 
    1616     /* Author */        "Benoit de Marne", 
    17      /* Version */       "3.7.0dev0016", 
     17     /* Version */       "3.7.0alpha001", 
    1818     /* Permissions */   "usage,contentadmin", 
    1919     /* Priority */      null 
  • plugins/newsletter/trunk/changelog.txt

    r1848 r1906  
    11TODO 
     2NB : Liste des mots cles 
     3LISTPOSTS 
     4USER_DELETE 
     5USER_SUSPEND 
    26 
    37Note de dev : 
     8- permettre la modification du fichier CSS depuis l'interface d'admin 
    49- le format du message doit etre en xhtml pour l'envoi (a prevoir la transfo) 
    510 
    6 Part III 
    7 - statistiques sur les abonnés 
    8 - statistiques sur les newsletters 
    9  
    10 Part IV 
    11 - page par defaut (cf. plugin defaultpost) 
    12  
     11-- Statistiques 
     12Algo 
     13before sending => initialize status = error 
     14si user=enabled && status_sent=1 => error 
     15si user=enabled && status_sent=0 => success 
     16stockage des statistiques dans la lettre ? 
     17after sending => print statistiques 
     18  => compte rendu lors de l'envoi 
    1319 
    1420Newsletter 3.7.0 - 2009-xx-xx 
    1521=========================================================== 
    16 * ... 
    1722* Ticket #103 : création d'une interface de saisie améliorée de la newsletter 
    1823* Gestion des newsletter dans la table post de type newsletter 
     
    2025* Ticket #163 : permettre la selection des billets dans une lettre 
    2126* Prise en compte des modifications proposées par Kozlika 
    22 * Parcours de la liste des abonnés en Ajax pour les envois de newsletters 
     27* Ticket #127, #198 : parcours de la liste des abonnés en Ajax pour les envois manuels 
    2328* Ajout d'une nouvelle librairie pour l'envoi des mails par Ajax 
    24  
    25 * in progress ... Permettre le remplacement de balises dans la newsletter 
    26  
    27  
     29* Permettre le remplacement de balises dans la newsletter 
     30* Mise en conformité avec l'ancien système d'envoi des lettres 
     31* Ticket #274 : envoi automatique de la lettre que si le billet est àl'état publié 
    2832 
    2933Newsletter 3.6.0 - 2009-10-07 
  • plugins/newsletter/trunk/inc/class.dc.newsletter.php

    r1848 r1906  
    122122     } 
    123123 
    124      ############################################### 
    125      # MAILING 
    126      ############################################### 
    127       
    128      /** 
    129       * Send the letter 
    130      */ 
    131      public static function sendLetter($sub_email, $letter_id) 
    132      { 
    133           global $core; 
    134            
    135           /* 
    136           $obj_letter = new newsletterLetter($core,$letter_id); 
    137           $letter = $obj_letter->getLetter(); 
    138           */ 
    139            
    140           /*$obj_letter->formattingLetter(); 
    141           $obj_letter->sending();*/ 
    142            
    143           /*$core->blog->dcNewsletter->addError('titre='.$letter->post_title); 
    144           $core->blog->dcNewsletter->addError('send to user='.$sub_email);*/ 
    145            
    146  
    147           return true; 
    148      } 
    149  
    150124} // end class dcNewsletter 
    151125 
  • plugins/newsletter/trunk/inc/class.newsletter.admin.php

    r1754 r1906  
    1818{ 
    1919     /** 
    20      * désinstallation du plugin 
     20     * uninstall plugin 
    2121     */ 
    2222     public static function uninstall() 
    2323     { 
    24           // suppression du schéma 
     24          // delete schema 
    2525          global $core; 
    2626          try { 
    27                // désactivation du plugin 
     27               // disable plugin 
    2828               newsletterPlugin::inactivate(); 
    2929                
    30                // suppression des paramètres par défaut 
     30               // delete parameters 
    3131               newsletterPlugin::deleteSettings(); 
    3232               newsletterPlugin::delete_version(); 
     
    4646 
    4747     /** 
    48      * export du contenu du schéma 
     48     * export the schema content 
    4949     */ 
    5050     public static function Export($onlyblog = true, $outfile = null) 
     
    5555               $blogid = (string)$blog->id; 
    5656 
    57                // générer le contenu du fichier à partir des données 
     57               // generate the content of file from data 
    5858               if (isset($outfile)) { 
    5959                    $filename = $outfile; 
     
    7373                         $elems = array(); 
    7474 
    75                          // génération des élements de données 
     75                         // generate component 
    7676                         $elems[] = $datas->subscriber_id; 
    7777                         $elems[] = base64_encode($datas->blog_id); 
     
    8989               } 
    9090 
    91                // écrire le contenu dans le fichier 
     91               // write in file 
    9292               if(@file_put_contents($filename, $content)) { 
    9393                    return $msg = __('Datas exported in file').' '.$filename; 
     
    103103 
    104104     /** 
    105      * import du contenu du schéma 
     105     * import the schema content 
    106106     */ 
    107107     public static function Import($onlyblog = true, $infile = null) 
     
    112112          $blogid = (string)$blog->id; 
    113113         
    114           // lire le contenu du fichier à partir des données 
     114          // read the content of file 
    115115          if (isset($infile))  
    116116               $filename = $infile; 
     
    122122          } 
    123123 
    124           // ouverture du fichier 
     124          // open file 
    125125          $fh = @fopen($filename, "r"); 
    126126          if ($fh === FALSE)  
    127127               throw new Exception(__('File not readable').' '.$filename); 
    128128          else { 
    129                // boucle de lecture sur les lignes du fichier 
     129               // loop reading lines from file 
    130130               $err = false; 
    131131               while (!feof($fh)) { 
     
    474474                                   form::checkbox('f_check_notification',1,$f_check_notification). 
    475475                              '</p>'. 
    476                          '</fieldset>'. 
    477                          '<fieldset id="advanced">'. 
    478                               '<legend>'.__('Content settings').'</legend>'. 
    479  
    480                               '<p class="field">'. 
    481                                    '<label for="fautosend" class="classic">'.__('Automatic send').'</label>'. 
    482                                    form::checkbox('fautosend',1,$fautosend). 
    483                               '</p>'. 
    484                          '<p class="field">'. 
    485                                    '<label for="fminposts" class="classic">'.__('Minimum posts').'</label>'. 
    486                                    form::field('fminposts',4,4,$fminposts). 
    487                               '</p>'. 
    488                               '<p class="field">'. 
    489                                    '<label for="fmaxposts" class="classic">'.__('Maximum posts').'</label>'. 
    490                                    form::field('fmaxposts',4,4,$fmaxposts). 
    491                               '</p>'. 
    492476                              '<p class="field">'. 
    493477                                   '<label for="f_view_content_post" class="classic">'.__('View contents posts').'</label>'. 
     
    497481                                   '<label for="f_size_content_post" class="classic">'.__('Size contents posts').'</label>'. 
    498482                                   form::field('f_size_content_post',4,4,$f_size_content_post). 
    499                               '</p>'. 
    500                               '<p class="field">'. 
    501                                    '<label for="f_category" class="classic">'.__('Category').'</label>'. 
    502                                    form::combo('f_category',$categories,$f_category). 
    503                               '</p>'. 
    504                               '<p class="field">'. 
    505                                    '<label for="f_check_subcategories" class="classic">'.__('Include sub-categories').'</label>'. 
    506                                    form::checkbox('f_check_subcategories',1,$f_check_subcategories). 
    507483                              '</p>'. 
    508484                              '<p class="field">'. 
     
    515491                              '</p>'.                             
    516492                         '</fieldset>'. 
     493 
     494                         '<fieldset id="advanced">'. 
     495                              '<legend>'.__('Settings for auto letter').'</legend>'. 
     496                              '<p class="field">'. 
     497                                   '<label for="fautosend" class="classic">'.__('Automatic send').'</label>'. 
     498                                   form::checkbox('fautosend',1,$fautosend). 
     499                              '</p>'. 
     500                              '<p class="field">'. 
     501                                   '<label for="fminposts" class="classic">'.__('Minimum posts').'</label>'. 
     502                                   form::field('fminposts',4,4,$fminposts). 
     503                              '</p>'. 
     504                              '<p class="field">'. 
     505                                   '<label for="fmaxposts" class="classic">'.__('Maximum posts').'</label>'. 
     506                                   form::field('fmaxposts',4,4,$fmaxposts). 
     507                              '</p>'. 
     508                              '<p class="field">'. 
     509                                   '<label for="f_category" class="classic">'.__('Category').'</label>'. 
     510                                   form::combo('f_category',$categories,$f_category). 
     511                              '</p>'. 
     512                              '<p class="field">'. 
     513                                   '<label for="f_check_subcategories" class="classic">'.__('Include sub-categories').'</label>'. 
     514                                   form::checkbox('f_check_subcategories',1,$f_check_subcategories). 
     515                              '</p>'. 
     516                         '</fieldset>'.                                
    517517                         // boutons du formulaire 
    518518                         '<p>'. 
  • plugins/newsletter/trunk/inc/class.newsletter.core.php

    r1754 r1906  
    373373          } 
    374374 
     375          if (!empty($params['subscriber_id'])) { 
     376               if (is_array($params['subscriber_id'])) { 
     377                    array_walk($params['subscriber_id'],create_function('&$v,$k','if($v!==null){$v=(integer)$v;}')); 
     378               } else { 
     379                    $params['subscriber_id'] = array((integer) $params['subscriber_id']); 
     380               } 
     381               $strReq .= 'AND N.subscriber_id '.$con->in($params['subscriber_id']); 
     382          } 
     383      
    375384          if (!$count_only) 
    376385          { 
     
    866875                         case 'newsletter': 
    867876                              self::prepareMessagesNewsletter($ids,$newsletter_mailing,$newsletter_settings); 
     877                              self::insertMessageNewsletter($newsletter_mailing,$newsletter_settings); 
    868878                              break; 
    869879                         case 'confirm': 
     
    10131023 
    10141024     /** 
     1025      * Prepare le contenu des messages de type newsletter 
     1026      * Modifie l'objet newsletterMailing fourni en parametre 
     1027      * 
     1028      * @param:     $ids                     array 
     1029      * @param:     $newsletter_mailing      newsletterMailing 
     1030      * 
     1031      * @return:    boolean 
     1032      */ 
     1033     public static function insertMessageNewsletter($newsletter_mailing, newsletterSettings $newsletter_settings) 
     1034     { 
     1035          global $core; 
     1036          // initialisation des variables de travail 
     1037          $mode = $newsletter_settings->getSendMode(); 
     1038          $subject = text::toUTF8($newsletter_settings->getNewsletterSubject()); 
     1039          $minPosts = $newsletter_settings->getMinPosts(); 
     1040 
     1041          // initialisation du moteur de template 
     1042          self::BeforeSendmailTo($newsletter_settings->getPresentationMsg(), $newsletter_settings->getConcludingMsg()); 
     1043 
     1044          // recuperation des billets 
     1045          $newsletter_posts = self::getNewsletterPosts(); 
     1046 
     1047          if(count($newsletter_posts) < $minPosts) { 
     1048               ; 
     1049          } else { 
     1050               $body = ''; 
     1051 
     1052               // intégration dans le template des billets en génération du rendu 
     1053               nlTemplate::assign('posts', $newsletter_posts); 
     1054 
     1055               $body = nlTemplate::render('newsletter', $mode); 
     1056                               
     1057               if($mode == 'text') { 
     1058                    $convert = new html2text(); 
     1059                    $convert->set_html($body); 
     1060                    $convert->labelLinks = __('Links:'); 
     1061                    $body = $convert->get_text(); 
     1062               } 
     1063                               
     1064               // ajoute le message dans la liste d'envoi 
     1065               $old_nltr = new newsletterLetter($core); 
     1066               $old_nltr->insertOldLetter($subject,$body); 
     1067                
     1068          } 
     1069 
     1070          return $old_nltr->getLetterId(); 
     1071     } 
     1072      
     1073     /** 
    10151074      * Prepare le contenu des messages de type confirm 
    10161075      * Modifie l'objet newsletterMailing fourni en parametre 
  • plugins/newsletter/trunk/inc/class.newsletter.letter.php

    r1848 r1906  
    1111# -- END LICENSE BLOCK ------------------------------------ 
    1212 
     13define("POST_TYPE","newsletter"); 
     14 
    1315if (!defined('DC_CONTEXT_ADMIN')) { return; } 
    1416 
    1517class newsletterLetter 
    1618{ 
    17      // Variables 
    1819     protected $core; 
    1920     protected $blog; 
     
    2223      
    2324     protected $letter_subject; 
    24      //protected $letter_header; 
     25     protected $letter_header; 
    2526     protected $letter_body; 
    26      //protected $letter_footer; 
     27     protected $letter_footer; 
    2728      
     29     protected $post_id; 
     30     protected $cat_id; 
     31     protected $post_dt; 
     32     protected $post_format; 
     33     protected $post_password; 
     34     protected $post_url; 
     35     protected $post_lang; 
     36     protected $post_title; 
     37     protected $post_excerpt; 
     38     protected $post_excerpt_xhtml; 
     39     protected $post_content; 
     40     protected $post_content_xhtml; 
     41     protected $post_notes; 
     42     protected $post_status; 
     43     protected $post_selected; 
     44     protected $post_open_comment; 
     45     protected $post_open_tb; 
     46     protected $post_meta; 
     47      
     48     private static $post_type = 'newsletter'; 
     49 
     50     /** 
     51      * Class constructor. Sets new letter object 
     52      * @param dcCore $core 
     53      * @param $letter_id 
     54      */ 
     55     public function __construct(dcCore $core,$letter_id=null) 
     56     { 
     57          $this->core = $core; 
     58          $this->blog = $core->blog; 
     59           
     60          $this->meta = new dcMeta($core); 
     61 
     62          $this->init(); 
     63          $this->setLetterId($letter_id); 
     64          $this->letter_subject = ''; 
     65          $this->letter_header = ''; 
     66          $this->letter_body = ''; 
     67          $this->letter_footer = ''; 
     68     } 
     69 
     70     private function init() 
     71     { 
     72          $this->post_id = ''; 
     73          $this->cat_id = ''; 
     74          $this->post_dt = ''; 
     75          $this->post_format = $this->core->auth->getOption('post_format'); 
     76          $this->post_password = ''; 
     77          $this->post_url = ''; 
     78          $this->post_lang = $this->core->auth->getInfo('user_lang'); 
     79          $this->post_title = ''; 
     80          $this->post_excerpt = ''; 
     81          $this->post_excerpt_xhtml = ''; 
     82          $this->post_content = ''; 
     83          $this->post_content_xhtml = ''; 
     84          $this->post_notes = ''; 
     85          $this->post_status = $this->core->auth->getInfo('user_post_status'); 
     86          $this->post_selected = false; 
     87          $this->post_open_comment = false; 
     88          $this->post_open_tb = false; 
     89           
     90          $this->post_media = array(); 
     91          $this->post_meta = array(); 
     92     } 
    2893      
    2994     /** 
    30       * Class constructor. Sets new letter object 
    31       * 
    32       * @param:     $core     dcCore 
     95      * Set id of the letter 
     96      * @param $letter_id 
    3397      */ 
    34      public function __construct(dcCore $core,$letter_id=null) 
    35      { 
    36           $this->core = $core; 
    37           $this->blog = $core->blog; 
    38            
    39           $this->meta = new dcMeta($core); 
    40  
    41           $this->setLetterId($letter_id); 
    42      } 
    43  
    4498     public function setLetterId($letter_id=null) 
    4599     { 
     
    49103     } 
    50104 
     105     /** 
     106      * Get id of the letter 
     107      * @return integer 
     108      */ 
    51109     public function getLetterId() 
    52110     { 
    53           return $this->letter_id; 
    54      } 
    55  
    56      public function getLetter() 
    57      { 
    58           global $core; 
    59            
    60           $params['post_type'] = 'newsletter'; 
     111          return (integer) $this->letter_id; 
     112     } 
     113 
     114     /** 
     115      * Get the ressource mysql result for the current letter 
     116      * @return mysql result 
     117      */ 
     118     public function getRSLetter() 
     119     { 
     120          $params['post_type'] = $this->post_type; 
    61121          $params['post_id'] = $this->letter_id; 
    62122                
    63           $letter = $core->blog->getPosts($params); 
    64                 
    65           if ($letter->isEmpty()) 
    66           { 
    67                $core->error->add(__('This letter does not exist.')); 
    68           } 
    69           else 
    70           { 
    71                return $letter; 
    72                /* 
    73                $post_id = $post->post_id; 
    74                $cat_id = $post->cat_id; 
    75                $post_dt = date('Y-m-d H:i',strtotime($post->post_dt)); 
    76                $post_format = $post->post_format; 
    77                $post_password = $post->post_password; 
    78                $post_url = $post->post_url; 
    79                $post_lang = $post->post_lang; 
    80                $post_title = $post->post_title; 
    81                $post_excerpt = $post->post_excerpt; 
    82                $post_excerpt_xhtml = $post->post_excerpt_xhtml; 
    83                $post_content = $post->post_content; 
    84                $post_content_xhtml = $post->post_content_xhtml; 
    85                $post_notes = $post->post_notes; 
    86                $post_status = $post->post_status; 
    87                $post_selected = (boolean) $post->post_selected; 
    88                $post_open_comment = (boolean) $post->post_open_comment; 
    89                $post_open_tb = (boolean) $post->post_open_tb; 
    90                $post_meta = $post->post_meta; 
    91                */ 
    92           } 
    93      } 
    94       
    95       
    96      public function getLetterToSend(){ 
    97            
    98            
    99            
    100      } 
    101       
     123          $rs_letter = $this->core->blog->getPosts($params); 
     124                
     125          if ($rs_letter->isEmpty()) { 
     126               $this->core->error->add(__('This letter does not exist.')); 
     127          } else { 
     128               return $rs_letter; 
     129          } 
     130     } 
    102131      
    103132     public function displayTabLetter()  
     
    141170          $next_link = $prev_link = $next_headlink = $prev_headlink = null; 
    142171           
    143           # If user can't publish 
     172          /* 
     173           # If user can't publish 
    144174          if (!$can_publish) { 
    145175               $post_status = -2; 
    146176          } 
     177          //*/ 
     178          # Default value 
     179          $post_status = -2; 
    147180 
    148181          # Status combo 
     
    625658     } 
    626659 
    627      /** 
    628       */ 
    629      public function getPostsLetter($letter_id)  
    630      { 
    631           global $core; 
    632  
    633           $meta = new dcMeta($core); 
     660     public function getPostsLetter()  
     661     { 
     662          $meta = new dcMeta($this->core); 
     663          $newsletter_settings = new newsletterSettings($this->core); 
    634664 
    635665          $params=array(); 
    636666          $params['no_content'] = true; 
    637667 
    638           $params['meta_id'] = $letter_id; 
     668          $params['meta_id'] = (integer) $this->letter_id; 
    639669          $params['meta_type'] = 'letter_post'; 
    640670          $params['post_type'] = ''; 
    641671           
    642672          $rs = $meta->getPostsByMeta($params); 
    643           return $rs; 
     673          unset($params); 
     674           
     675          // paramétrage de la récupération des billets 
     676          $params = array(); 
     677 
     678          while ($rs->fetch()) { 
     679               $params['post_id'][] = $rs->post_id; 
     680          } 
     681 
     682          // sélection du contenu 
     683          $params['no_content'] = ($newsletter_settings->getViewContentPost() ? false : true);  
     684          // sélection des billets 
     685          $params['post_type'] = 'post'; 
     686          // uniquement les billets publiés, sans mot de passe 
     687          $params['post_status'] = 1; 
     688          // sans mot de passe 
     689          $params['sql'] = ' AND P.post_password IS NULL'; 
     690                
     691          // définition du tris des enregistrements et filtrage dans le temps 
     692          $params['order'] = ' P.'.$newsletter_settings->getOrderDate().' DESC'; 
     693                
     694          // récupération des billets 
     695          $rs = $this->blog->getPosts($params, false); 
     696 
     697          //throw new Exception('value is ='.$rs->count()); 
     698                     
     699          return($rs->isEmpty()?null:$rs); 
    644700     } 
    645701 
     
    661717          $this->core->error->add($link_id.',letter_post,'.$letter_id); 
    662718     } 
     719 
     720 
     721 
     722     ############################################### 
     723     # ACTIONS 
     724     ############################################### 
    663725 
    664726     /** 
     
    728790     } 
    729791 
    730      /** 
    731       * Display tab to select associate posts with letter 
    732       */ 
    733      public function displayTabLetterAssociate()  
    734      { 
    735           global $core; 
    736            
    737           $redir_url = 'plugin.php?p=newsletter&m=letter'; 
    738  
    739           $letter_id = !empty($_GET['post_id']) ? (integer) $_GET['post_id'] : null; 
    740            
    741           if ($letter_id) { 
    742                $post = $core->blog->getPosts(array('post_id'=>$letter_id,'post_type'=>'')); 
    743                if ($post->isEmpty()) { 
    744                     $letter_id = null; 
    745                } 
    746                $post_title = $post->post_title; 
    747                $post_type = $post->post_type; 
    748                unset($post); 
    749  
    750                echo  
    751                '<fieldset>'. 
    752                '<legend>'.__('Associate posts for this letter').'</legend>'; 
    753                echo '<h3>'.__('Title of letter :').' '.$post_title.'</h3>'; 
    754  
    755                self::displayPostsList($letter_id); 
    756  
    757                echo '</fieldset>'; 
    758                echo '<p><a class="back" href="'.html::escapeURL($redir_url).'&amp;id='.$letter_id.'">'.__('back').'</a></p>';      
    759  
    760           } else { 
    761                echo  
    762                     '<fieldset>'. 
    763                     '<legend>'.__('Associate posts for this letter').'</legend>'. 
    764                     'no letter active'. 
    765                     '</fieldset>'; 
    766                echo '<p><a class="back" href="'.html::escapeURL('plugin.php?p=newsletter&m=letters').'">'.__('back').'</a></p>'; 
    767           } 
    768      } 
    769  
    770  
    771      /** 
    772       * Display list of posts for associate 
    773       */ 
    774      private static function displayPostsList($letter_id = null) 
    775      { 
    776           global $core; 
    777  
    778           # Getting categories 
    779           try { 
    780                $categories = $core->blog->getCategories(array('post_type'=>'post')); 
    781           } catch (Exception $e) { 
    782                $core->error->add($e->getMessage()); 
    783           } 
    784            
    785           # Getting authors 
    786           try { 
    787                $users = $core->blog->getPostsUsers(); 
    788           } catch (Exception $e) { 
    789                $core->error->add($e->getMessage()); 
    790           } 
    791            
    792           # Getting dates 
    793           try { 
    794                $dates = $core->blog->getDates(array('type'=>'month')); 
    795           } catch (Exception $e) { 
    796                $core->error->add($e->getMessage()); 
    797           } 
    798            
    799           # Getting langs 
    800           try { 
    801                $langs = $core->blog->getLangs(); 
    802           } catch (Exception $e) { 
    803                $core->error->add($e->getMessage()); 
    804           } 
    805            
    806           # Creating filter combo boxes 
    807           if (!$core->error->flag()) 
    808           { 
    809                # Filter form we'll put in html_block 
    810                $users_combo = $categories_combo = array(); 
    811                $users_combo['-'] = $categories_combo['-'] = ''; 
    812                while ($users->fetch()) 
    813                { 
    814                     $user_cn = dcUtils::getUserCN($users->user_id,$users->user_name, 
    815                     $users->user_firstname,$users->user_displayname); 
    816                      
    817                     if ($user_cn != $users->user_id) { 
    818                          $user_cn .= ' ('.$users->user_id.')'; 
    819                     } 
    820                      
    821                     $users_combo[$user_cn] = $users->user_id;  
    822                } 
    823                 
    824                while ($categories->fetch()) { 
    825                     $categories_combo[str_repeat('&nbsp;&nbsp;',$categories->level-1).'&bull; '. 
    826                          html::escapeHTML($categories->cat_title). 
    827                          ' ('.$categories->nb_post.')'] = $categories->cat_id; 
    828                } 
    829                 
    830                $status_combo = array( 
    831                '-' => '' 
    832                ); 
    833                foreach ($core->blog->getAllPostStatus() as $k => $v) { 
    834                     $status_combo[$v] = (string) $k; 
    835                } 
    836                 
    837                $selected_combo = array( 
    838                '-' => '', 
    839                __('selected') => '1', 
    840                __('not selected') => '0' 
    841                ); 
    842                 
    843                # Months array 
    844                $dt_m_combo['-'] = ''; 
    845                while ($dates->fetch()) { 
    846                     $dt_m_combo[dt::str('%B %Y',$dates->ts())] = $dates->year().$dates->month(); 
    847                } 
    848                 
    849                $lang_combo['-'] = ''; 
    850                while ($langs->fetch()) { 
    851                     $lang_combo[$langs->post_lang] = $langs->post_lang; 
    852                } 
    853                 
    854                $sortby_combo = array( 
    855                __('Date') => 'post_dt', 
    856                __('Title') => 'post_title', 
    857                __('Category') => 'cat_title', 
    858                __('Author') => 'user_id', 
    859                __('Status') => 'post_status', 
    860                __('Selected') => 'post_selected' 
    861                ); 
    862                 
    863                $order_combo = array( 
    864                __('Descending') => 'desc', 
    865                __('Ascending') => 'asc' 
    866                ); 
    867           } 
    868            
    869           # Actions combo box 
    870           $combo_action = array(); 
    871            
    872           if ($core->auth->check('admin',$core->blog->id)) { 
    873                $combo_action[__('associate')] = 'associate'; 
    874           } 
    875            
    876           # --BEHAVIOR-- adminPostsActionsCombo 
    877           $core->callBehavior('adminLetterActionsCombo',array(&$combo_action)); 
    878            
    879           /* Get posts 
    880           -------------------------------------------------------- */ 
    881           $user_id = !empty($_GET['user_id']) ?   $_GET['user_id'] : ''; 
    882           $cat_id = !empty($_GET['cat_id']) ?     $_GET['cat_id'] : ''; 
    883           $status = isset($_GET['status']) ? $_GET['status'] : ''; 
    884           $selected = isset($_GET['selected']) ?  $_GET['selected'] : ''; 
    885           $month = !empty($_GET['month']) ?       $_GET['month'] : ''; 
    886           $lang = !empty($_GET['lang']) ?         $_GET['lang'] : ''; 
    887           $sortby = !empty($_GET['sortby']) ?     $_GET['sortby'] : 'post_dt'; 
    888           $order = !empty($_GET['order']) ?       $_GET['order'] : 'desc'; 
    889            
    890           $show_filters = false; 
    891            
    892           $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 
    893           $nb_per_page =  30; 
    894            
    895           if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) { 
    896                if ($nb_per_page != $_GET['nb']) { 
    897                     $show_filters = true; 
    898                } 
    899                $nb_per_page = (integer) $_GET['nb']; 
    900           } 
    901            
    902           $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); 
    903           $params['no_content'] = true; 
    904            
    905           # - User filter 
    906           if ($user_id !== '' && in_array($user_id,$users_combo)) { 
    907                $params['user_id'] = $user_id; 
    908                $show_filters = true; 
    909           } 
    910            
    911           # - Categories filter 
    912           if ($cat_id !== '' && in_array($cat_id,$categories_combo)) { 
    913                $params['cat_id'] = $cat_id; 
    914                $show_filters = true; 
    915           } 
    916            
    917           # - Status filter 
    918           if ($status !== '' && in_array($status,$status_combo)) { 
    919                $params['post_status'] = $status; 
    920                $show_filters = true; 
    921           } 
    922            
    923           # - Selected filter 
    924           if ($selected !== '' && in_array($selected,$selected_combo)) { 
    925                $params['post_selected'] = $selected; 
    926                $show_filters = true; 
    927           } 
    928            
    929           # - Month filter 
    930           if ($month !== '' && in_array($month,$dt_m_combo)) { 
    931                $params['post_month'] = substr($month,4,2); 
    932                $params['post_year'] = substr($month,0,4); 
    933                $show_filters = true; 
    934           } 
    935            
    936           # - Lang filter 
    937           if ($lang !== '' && in_array($lang,$lang_combo)) { 
    938                $params['post_lang'] = $lang; 
    939                $show_filters = true; 
    940           } 
    941            
    942           # - Sortby and order filter 
    943           if ($sortby !== '' && in_array($sortby,$sortby_combo)) { 
    944                if ($order !== '' && in_array($order,$order_combo)) { 
    945                     $params['order'] = $sortby.' '.$order; 
    946                } 
    947                 
    948                if ($sortby != 'post_dt' || $order != 'desc') { 
    949                     $show_filters = true; 
    950                } 
    951           } 
    952            
    953           # Get posts 
    954           try { 
    955                $posts = $core->blog->getPosts($params); 
    956                $counter = $core->blog->getPosts($params,true); 
    957                $post_list = new adminPostList($core,$posts,$counter->f(0)); 
    958           } catch (Exception $e) { 
    959                $core->error->add($e->getMessage()); 
    960           } 
    961            
    962           if (!$core->error->flag()) 
    963           { 
    964                if (!$show_filters) { 
    965                     echo '<p><a id="filter-control" class="form-control" href="#">'. 
    966                     __('Filters').'</a></p>'; 
    967                } 
    968                 
    969                echo 
    970                '<form action="plugin.php" method="get" id="filters-form">'. 
    971                //'<form action="posts.php" method="get" id="filters-form">'. 
    972                 
    973                 
    974                '<fieldset><legend>'.__('Filters').'</legend>'. 
    975                '<div class="three-cols">'. 
    976                '<div class="col">'. 
    977                '<label>'.__('Author:'). 
    978                form::combo('user_id',$users_combo,$user_id).'</label> '. 
    979                '<label>'.__('Category:'). 
    980                form::combo('cat_id',$categories_combo,$cat_id).'</label> '. 
    981                '<label>'.__('Status:'). 
    982                form::combo('status',$status_combo,$status).'</label> '. 
    983                '</div>'. 
    984                 
    985                '<div class="col">'. 
    986                '<label>'.__('Selected:'). 
    987                form::combo('selected',$selected_combo,$selected).'</label> '. 
    988                '<label>'.__('Month:'). 
    989                form::combo('month',$dt_m_combo,$month).'</label> '. 
    990                '<label>'.__('Lang:'). 
    991                form::combo('lang',$lang_combo,$lang).'</label> '. 
    992                '</div>'. 
    993                 
    994                '<div class="col">'. 
    995                '<p><label>'.__('Order by:'). 
    996                form::combo('sortby',$sortby_combo,$sortby).'</label> '. 
    997                '<label>'.__('Sort:'). 
    998                form::combo('order',$order_combo,$order).'</label></p>'. 
    999                '<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '. 
    1000                __('Entries per page').'</label> '. 
    1001                '<input type="hidden" name="p" value="'.newsletterPlugin::pname().'" />'. 
    1002                '<input type="hidden" name="m" value="letter_associate" />'. 
    1003                '<input type="hidden" name="post_id" value='.$letter_id.' />'. 
    1004                '<input type="submit" value="'.__('filter').'" /></p>'. 
    1005                '</div>'. 
    1006                '</div>'. 
    1007                '<br class="clear" />'. //Opera sucks 
    1008                '</fieldset>'. 
    1009                '</form>'; 
    1010                 
    1011                # Show posts 
    1012                $post_list->display($page,$nb_per_page, 
    1013                '<form action="plugin.php?p=newsletter&amp;m=letter" method="post" id="letter_associate">'. 
    1014                 
    1015                '%s'. 
    1016                 
    1017                '<div class="two-cols">'. 
    1018                '<p class="col checkboxes-helpers"></p>'. 
    1019                 
    1020                '<p class="col right">'.__('Selected entries action:').' '. 
    1021                form::combo('action',$combo_action). 
    1022                '<input type="submit" value="'.__('ok').'" /></p>'. 
    1023                 
    1024                form::hidden(array('m'),'letter'). 
    1025                form::hidden(array('p'),newsletterPlugin::pname()).     
    1026                form::hidden(array('id'),$letter_id). 
    1027                $core->formNonce(). 
    1028                '</div>'. 
    1029                '</form>' 
    1030                ); 
    1031           } 
    1032      } 
    1033  
     792     ############################################### 
     793     # FORMATTING LETTER FOR MAILING 
     794     ############################################### 
     795 
     796     public static function renderingSubscriber($scontent, $sub_email) 
     797     { 
     798          //$newsletter_settings = new newsletterSettings($this->core); 
     799           
     800          /* Remplacement des liens pour les users */ 
     801          // remplace USER_DELETE par l'url correspondante 
     802          $patterns[0] = '/USER_DELETE/'; 
     803          $replacements[0] = newsletterCore::url('disable/'.newsletterTools::base64_url_encode($sub_email)); 
     804          $patterns[1] = '/USER_SUSPEND/'; 
     805          $replacements[1] = newsletterCore::url('suspend/'.newsletterTools::base64_url_encode($sub_email)); 
     806           
     807          /* chaine initiale */ 
     808          $count = 0; 
     809          $scontent = preg_replace($patterns, $replacements, $scontent, 1, $count);        
     810           
     811          return $scontent;         
     812     } 
     813      
     814     public function letter_style() { 
     815          $css_style = '<style type="text/css">'; 
     816          $css_style .= 'p{'; 
     817          $css_style .= 'color: #943f3b;'; 
     818          $css_style .= 'font: 1.0em Verdana, sans-serif;'; 
     819          $css_style .= 'margin:0 0 20px 0; padding:10px;'; 
     820          $css_style .= '}'; 
     821          $css_style .= 'a:link { color:#33cc33; text-decoration:none; outline: none; }'; 
     822          $css_style .= '</style>'; 
     823           
     824          return $css_style;  
     825     } 
     826      
    1034827     public function letter_header($title)  { 
     828 
    1035829          $res  = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'; 
    1036830          $res .= '<html>'; 
     
    1039833          $res .= '<meta name="MSSmartTagsPreventParsing" content="TRUE" />'; 
    1040834          $res .= '<title>'.$title.'</title>'; 
     835          $res .= $this->letter_style(); 
    1041836          $res .= '</head>'; 
    1042837          $res .= '<body>'; 
     
    1051846 
    1052847 
    1053      public function rendering($body = null) { 
    1054            
     848     /** 
     849      * Replace keywords 
     850      * @param String $scontent 
     851      * @return String 
     852      */ 
     853     public function rendering($scontent = null)  
     854     { 
     855          $newsletter_settings = new newsletterSettings($this->core); 
     856           
     857          $format = ''; 
     858          if (!empty($attr['format'])) { 
     859               $format = addslashes($attr['format']); 
     860          }               
     861           
     862          /* Preparation de la liste des billets associes */ 
     863          $rs_attach_posts = $this->getPostsLetter(); 
     864           
     865          if (!$rs_attach_posts->isEmpty()) 
     866          { 
     867               $replacements[0]= ''; 
     868               while ($rs_attach_posts->fetch()) 
     869               { 
     870                    $replacements[0] .= '<p>'; 
     871                    $replacements[0] .= '<b><a href="'.$rs_attach_posts->getURL().'">'.$rs_attach_posts->post_title.'</a></b><br/>'; 
     872                    $replacements[0] .= '('.$rs_attach_posts->getDate($format).'&nbsp;'.__('by').'&nbsp;'.$rs_attach_posts->getAuthorCN().')<br/>'; 
     873                    $replacements[0] .= html::escapeHTML(newsletterTools::cutString(html::decodeEntities(html::clean($rs_attach_posts->getExcerpt().$rs_attach_posts->getContent())),$newsletter_settings->getSizeContentPost())).'<br/>'; 
     874                    $replacements[0] .= '</p>'; 
     875               } 
     876          } 
     877 
     878          /* Liste des chaines a remplacer */ 
    1055879          $patterns[0] = '/LISTPOSTS/'; 
    1056           $replacements[0] = 'liste des billets'; 
    1057  
    1058           $scontent=$body; 
    1059            
     880          //$replacements[0] = 'liste des billets'; 
     881 
     882          // Lancement du traitement 
    1060883          $count = 0; 
    1061884          $scontent = preg_replace($patterns, $replacements, $scontent, 1, $count); 
     
    1066889      * 2 - formatte les champs de la letter pour l'envoi 
    1067890      * 3 - creation de l'arbre xml correspondant 
     891      */ 
     892      
     893      
     894     /** 
     895      * - define the letter's content 
     896      * - format the letter 
     897      * - create the XML tree corresponding to the newsletter 
     898      * @return xmlTag 
    1068899      */ 
    1069900     public function getXmlLetterById() 
     
    1086917          // formatte les champs de la letter pour l'envoi 
    1087918          $subject=text::toUTF8($rs->post_title); 
    1088           $header=self::letter_header($rs->post_title); 
    1089           $footer=self::letter_footer(); 
    1090           $body=self::rendering($rs->post_content); 
     919          $header=$this->letter_header($rs->post_title); 
     920          $footer=$this->letter_footer(); 
     921          //$footer=self::letter_footer(); 
     922          $body=$this->rendering($rs->post_content); 
    1091923          $body=text::toUTF8($body); 
    1092924 
     
    1095927          $rsp->letter_id = $rs->post_id; 
    1096928           
    1097           //$rsp->letter_subject = $subject; 
    1098929          $rsp->letter_subject($subject); 
    1099930          $rsp->letter_header($header); 
     
    1149980          return $rsp; 
    1150981     }     
    1151       
     982 
     983     /** 
     984      * Display tab to select associate posts with letter 
     985      */ 
     986     public function displayTabLetterAssociate()  
     987     { 
     988          global $core; 
     989           
     990          $redir_url = 'plugin.php?p=newsletter&m=letter'; 
     991 
     992          $letter_id = !empty($_GET['post_id']) ? (integer) $_GET['post_id'] : null; 
     993           
     994          if ($letter_id) { 
     995               $post = $core->blog->getPosts(array('post_id'=>$letter_id,'post_type'=>'')); 
     996               if ($post->isEmpty()) { 
     997                    $letter_id = null; 
     998               } 
     999               $post_title = $post->post_title; 
     1000               $post_type = $post->post_type; 
     1001               unset($post); 
     1002 
     1003               echo  
     1004               '<fieldset>'. 
     1005               '<legend>'.__('Associate posts for this letter').'</legend>'; 
     1006               echo '<h3>'.__('Title of letter :').' '.$post_title.'</h3>'; 
     1007 
     1008               self::displayPostsList($letter_id); 
     1009 
     1010               echo '</fieldset>'; 
     1011               echo '<p><a class="back" href="'.html::escapeURL($redir_url).'&amp;id='.$letter_id.'">'.__('back').'</a></p>';      
     1012 
     1013          } else { 
     1014               echo  
     1015                    '<fieldset>'. 
     1016                    '<legend>'.__('Associate posts for this letter').'</legend>'. 
     1017                    'no letter active'. 
     1018                    '</fieldset>'; 
     1019               echo '<p><a class="back" href="'.html::escapeURL('plugin.php?p=newsletter&m=letters').'">'.__('back').'</a></p>'; 
     1020          } 
     1021     } 
     1022 
     1023 
     1024     /** 
     1025      * Display list of posts for associate 
     1026      */ 
     1027     private static function displayPostsList($letter_id = null) 
     1028     { 
     1029          global $core; 
     1030 
     1031          # Getting categories 
     1032          try { 
     1033               $categories = $core->blog->getCategories(array('post_type'=>'post')); 
     1034          } catch (Exception $e) { 
     1035               $core->error->add($e->getMessage()); 
     1036          } 
     1037           
     1038          # Getting authors 
     1039          try { 
     1040               $users = $core->blog->getPostsUsers(); 
     1041          } catch (Exception $e) { 
     1042               $core->error->add($e->getMessage()); 
     1043          } 
     1044           
     1045          # Getting dates 
     1046          try { 
     1047               $dates = $core->blog->getDates(array('type'=>'month')); 
     1048          } catch (Exception $e) { 
     1049               $core->error->add($e->getMessage()); 
     1050          } 
     1051           
     1052          # Getting langs 
     1053          try { 
     1054               $langs = $core->blog->getLangs(); 
     1055          } catch (Exception $e) { 
     1056               $core->error->add($e->getMessage()); 
     1057          } 
     1058           
     1059          # Creating filter combo boxes 
     1060          if (!$core->error->flag()) 
     1061          { 
     1062               # Filter form we'll put in html_block 
     1063               $users_combo = $categories_combo = array(); 
     1064               $users_combo['-'] = $categories_combo['-'] = ''; 
     1065               while ($users->fetch()) 
     1066               { 
     1067                    $user_cn = dcUtils::getUserCN($users->user_id,$users->user_name, 
     1068                    $users->user_firstname,$users->user_displayname); 
     1069                     
     1070                    if ($user_cn != $users->user_id) { 
     1071                         $user_cn .= ' ('.$users->user_id.')'; 
     1072                    } 
     1073                     
     1074                    $users_combo[$user_cn] = $users->user_id;  
     1075               } 
     1076                
     1077               while ($categories->fetch()) { 
     1078                    $categories_combo[str_repeat('&nbsp;&nbsp;',$categories->level-1).'&bull; '. 
     1079                         html::escapeHTML($categories->cat_title). 
     1080                         ' ('.$categories->nb_post.')'] = $categories->cat_id; 
     1081               } 
     1082                
     1083               $status_combo = array( 
     1084               '-' => '' 
     1085               ); 
     1086               foreach ($core->blog->getAllPostStatus() as $k => $v) { 
     1087                    $status_combo[$v] = (string) $k; 
     1088               } 
     1089                
     1090               $selected_combo = array( 
     1091               '-' => '', 
     1092               __('selected') => '1', 
     1093               __('not selected') => '0' 
     1094               ); 
     1095                
     1096               # Months array 
     1097               $dt_m_combo['-'] = ''; 
     1098               while ($dates->fetch()) { 
     1099                    $dt_m_combo[dt::str('%B %Y',$dates->ts())] = $dates->year().$dates->month(); 
     1100               } 
     1101                
     1102               $lang_combo['-'] = ''; 
     1103               while ($langs->fetch()) { 
     1104                    $lang_combo[$langs->post_lang] = $langs->post_lang; 
     1105               } 
     1106                
     1107               $sortby_combo = array( 
     1108               __('Date') => 'post_dt', 
     1109               __('Title') => 'post_title', 
     1110               __('Category') => 'cat_title', 
     1111               __('Author') => 'user_id', 
     1112               __('Status') => 'post_status', 
     1113               __('Selected') => 'post_selected' 
     1114               ); 
     1115                
     1116               $order_combo = array( 
     1117               __('Descending') => 'desc', 
     1118               __('Ascending') => 'asc' 
     1119               ); 
     1120          } 
     1121           
     1122          # Actions combo box 
     1123          $combo_action = array(); 
     1124           
     1125          if ($core->auth->check('admin',$core->blog->id)) { 
     1126               $combo_action[__('associate')] = 'associate'; 
     1127          } 
     1128           
     1129          # --BEHAVIOR-- adminPostsActionsCombo 
     1130          $core->callBehavior('adminLetterActionsCombo',array(&$combo_action)); 
     1131           
     1132          /* Get posts 
     1133          -------------------------------------------------------- */ 
     1134          $user_id = !empty($_GET['user_id']) ?   $_GET['user_id'] : ''; 
     1135          $cat_id = !empty($_GET['cat_id']) ?     $_GET['cat_id'] : ''; 
     1136          $status = isset($_GET['status']) ? $_GET['status'] : ''; 
     1137          $selected = isset($_GET['selected']) ?  $_GET['selected'] : ''; 
     1138          $month = !empty($_GET['month']) ?       $_GET['month'] : ''; 
     1139          $lang = !empty($_GET['lang']) ?         $_GET['lang'] : ''; 
     1140          $sortby = !empty($_GET['sortby']) ?     $_GET['sortby'] : 'post_dt'; 
     1141          $order = !empty($_GET['order']) ?       $_GET['order'] : 'desc'; 
     1142           
     1143          $show_filters = false; 
     1144           
     1145          $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 
     1146          $nb_per_page =  30; 
     1147           
     1148          if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) { 
     1149               if ($nb_per_page != $_GET['nb']) { 
     1150                    $show_filters = true; 
     1151               } 
     1152               $nb_per_page = (integer) $_GET['nb']; 
     1153          } 
     1154           
     1155          $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); 
     1156          $params['no_content'] = true; 
     1157           
     1158          # - User filter 
     1159          if ($user_id !== '' && in_array($user_id,$users_combo)) { 
     1160               $params['user_id'] = $user_id; 
     1161               $show_filters = true; 
     1162          } 
     1163           
     1164          # - Categories filter 
     1165          if ($cat_id !== '' && in_array($cat_id,$categories_combo)) { 
     1166               $params['cat_id'] = $cat_id; 
     1167               $show_filters = true; 
     1168          } 
     1169           
     1170          # - Status filter 
     1171          if ($status !== '' && in_array($status,$status_combo)) { 
     1172               $params['post_status'] = $status; 
     1173               $show_filters = true; 
     1174          } 
     1175           
     1176          # - Selected filter 
     1177          if ($selected !== '' && in_array($selected,$selected_combo)) { 
     1178               $params['post_selected'] = $selected; 
     1179               $show_filters = true; 
     1180          } 
     1181           
     1182          # - Month filter 
     1183          if ($month !== '' && in_array($month,$dt_m_combo)) { 
     1184               $params['post_month'] = substr($month,4,2); 
     1185               $params['post_year'] = substr($month,0,4); 
     1186               $show_filters = true; 
     1187          } 
     1188           
     1189          # - Lang filter 
     1190          if ($lang !== '' && in_array($lang,$lang_combo)) { 
     1191               $params['post_lang'] = $lang; 
     1192               $show_filters = true; 
     1193          } 
     1194           
     1195          # - Sortby and order filter 
     1196          if ($sortby !== '' && in_array($sortby,$sortby_combo)) { 
     1197               if ($order !== '' && in_array($order,$order_combo)) { 
     1198                    $params['order'] = $sortby.' '.$order; 
     1199               } 
     1200                
     1201               if ($sortby != 'post_dt' || $order != 'desc') { 
     1202                    $show_filters = true; 
     1203               } 
     1204          } 
     1205           
     1206          # Get posts 
     1207          try { 
     1208               $posts = $core->blog->getPosts($params); 
     1209               $counter = $core->blog->getPosts($params,true); 
     1210               $post_list = new adminPostList($core,$posts,$counter->f(0)); 
     1211          } catch (Exception $e) { 
     1212               $core->error->add($e->getMessage()); 
     1213          } 
     1214           
     1215          if (!$core->error->flag()) 
     1216          { 
     1217               if (!$show_filters) { 
     1218                    echo '<p><a id="filter-control" class="form-control" href="#">'. 
     1219                    __('Filters').'</a></p>'; 
     1220               } 
     1221                
     1222               echo 
     1223               '<form action="plugin.php" method="get" id="filters-form">'. 
     1224               //'<form action="posts.php" method="get" id="filters-form">'. 
     1225                
     1226                
     1227               '<fieldset><legend>'.__('Filters').'</legend>'. 
     1228               '<div class="three-cols">'. 
     1229               '<div class="col">'. 
     1230               '<label>'.__('Author:'). 
     1231               form::combo('user_id',$users_combo,$user_id).'</label> '. 
     1232               '<label>'.__('Category:'). 
     1233               form::combo('cat_id',$categories_combo,$cat_id).'</label> '. 
     1234               '<label>'.__('Status:'). 
     1235               form::combo('status',$status_combo,$status).'</label> '. 
     1236               '</div>'. 
     1237                
     1238               '<div class="col">'. 
     1239               '<label>'.__('Selected:'). 
     1240               form::combo('selected',$selected_combo,$selected).'</label> '. 
     1241               '<label>'.__('Month:'). 
     1242               form::combo('month',$dt_m_combo,$month).'</label> '. 
     1243               '<label>'.__('Lang:'). 
     1244               form::combo('lang',$lang_combo,$lang).'</label> '. 
     1245               '</div>'. 
     1246                
     1247               '<div class="col">'. 
     1248               '<p><label>'.__('Order by:'). 
     1249               form::combo('sortby',$sortby_combo,$sortby).'</label> '. 
     1250               '<label>'.__('Sort:'). 
     1251               form::combo('order',$order_combo,$order).'</label></p>'. 
     1252               '<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '. 
     1253               __('Entries per page').'</label> '. 
     1254               '<input type="hidden" name="p" value="'.newsletterPlugin::pname().'" />'. 
     1255               '<input type="hidden" name="m" value="letter_associate" />'. 
     1256               '<input type="hidden" name="post_id" value='.$letter_id.' />'. 
     1257               '<input type="submit" value="'.__('filter').'" /></p>'. 
     1258               '</div>'. 
     1259               '</div>'. 
     1260               '<br class="clear" />'. //Opera sucks 
     1261               '</fieldset>'. 
     1262               '</form>'; 
     1263                
     1264               # Show posts 
     1265               $post_list->display($page,$nb_per_page, 
     1266               '<form action="plugin.php?p=newsletter&amp;m=letter" method="post" id="letter_associate">'. 
     1267                
     1268               '%s'. 
     1269                
     1270               '<div class="two-cols">'. 
     1271               '<p class="col checkboxes-helpers"></p>'. 
     1272                
     1273               '<p class="col right">'.__('Selected entries action:').' '. 
     1274               form::combo('action',$combo_action). 
     1275               '<input type="submit" value="'.__('ok').'" /></p>'. 
     1276                
     1277               form::hidden(array('m'),'letter'). 
     1278               form::hidden(array('p'),newsletterPlugin::pname()).     
     1279               form::hidden(array('id'),$letter_id). 
     1280               $core->formNonce(). 
     1281               '</div>'. 
     1282               '</form>' 
     1283               ); 
     1284          } 
     1285     } 
     1286 
     1287     public function insertOldLetter($subject,$body) 
     1288     { 
     1289          global $core; 
     1290           
     1291          # Create or update post 
     1292          $cur = $core->con->openCursor($core->prefix.'post'); 
     1293          $cur->post_type = 'newsletter'; 
     1294          $cur->post_title = $subject; 
     1295          $cur->post_content = $body; 
     1296          $cur->post_status = 1; 
     1297                
     1298          $cur->user_id = $core->auth->userID(); 
     1299                     
     1300          try 
     1301          { 
     1302               # --BEHAVIOR-- adminBeforeLetterCreate 
     1303               $core->callBehavior('adminBeforeLetterCreate',$cur); 
     1304                          
     1305               $return_id = $core->blog->addPost($cur); 
     1306                          
     1307               # --BEHAVIOR-- adminAfterLetterCreate 
     1308               $core->callBehavior('adminAfterLetterCreate',$cur,$return_id); 
     1309                          
     1310               //http::redirect($redir_url.'&id='.$return_id.'&crea=1'); 
     1311               $this->letter_id = $cur->post_id; 
     1312          } 
     1313          catch (Exception $e) 
     1314          { 
     1315               $core->error->add($e->getMessage()); 
     1316          } 
     1317     } 
     1318           
    11521319} 
    11531320 
  • plugins/newsletter/trunk/inc/class.newsletter.letters.php

    r1848 r1906  
    129129          if (!newsletterPlugin::isInstalled()) { 
    130130               return; 
    131           }          
     131          } 
    132132           
    133133          try { 
     
    292292     { 
    293293          global $core; 
    294  
     294           
    295295          $params = array(); 
     296 
     297          /* Get posts 
     298          -------------------------------------------------------- */ 
     299          $user_id = !empty($_POST['user_id']) ? $_POST['user_id'] : ''; 
     300          $cat_id = !empty($_POST['cat_id']) ? $_POST['cat_id'] : ''; 
     301          $status = isset($_POST['status']) ?     $_POST['status'] : ''; 
     302          $selected = isset($_POST['selected']) ? $_POST['selected'] : ''; 
     303          $month = !empty($_POST['month']) ? $_POST['month'] : ''; 
     304          $lang = !empty($_POST['lang']) ? $_POST['lang'] : ''; 
     305          $sortby = !empty($_POST['sortby']) ? $_POST['sortby'] : ''; 
     306          $order = !empty($_POST['order']) ? $_POST['order'] : ''; 
     307          $page = !empty($_POST['page']) ? (integer) $_POST['page'] : 1; 
     308          $nb = !empty($_POST['nb']) ? trim($_POST['nb']) : 0; 
    296309           
    297310          /* Actions 
     
    305318               } else { 
    306319                    $redir = 
    307                     'posts.php?user_id='.$_POST['user_id']. 
    308                     '&cat_id='.$_POST['cat_id']. 
    309                     '&status='.$_POST['status']. 
    310                     '&selected='.$_POST['selected']. 
    311                     '&month='.$_POST['month']. 
    312                     '&lang='.$_POST['lang']. 
    313                     '&sortby='.$_POST['sortby']. 
    314                     '&order='.$_POST['order']. 
    315                     '&page='.$_POST['page']. 
    316                     '&nb='.$_POST['nb']; 
     320                    'posts.php?user_id='.$user_id. 
     321                    '&cat_id='.$cat_id. 
     322                    '&status='.$status. 
     323                    '&selected='.$selected. 
     324                    '&month='.$month. 
     325                    '&lang='.$lang. 
     326                    '&sortby='.$sortby. 
     327                    '&order='.$order. 
     328                    '&page='.$page. 
     329                    '&nb='.$nb; 
    317330               } 
    318331                
     
    402415                         $core->error->add($e->getMessage()); 
    403416                    } 
    404                } elseif ($action == 'send' && $core->auth->check('admin',$core->blog->id)) { 
     417               } elseif (($action == 'send' || $action == 'send_old')  
     418                              && $core->auth->check('admin',$core->blog->id)) { 
    405419                    echo '<fieldset>'; 
    406420                    echo '<legend>'.__('Send letters').'</legend>'; 
     
    425439          } else { 
    426440               $hidden_fields .= 
    427                form::hidden(array('user_id'),$_POST['user_id']). 
    428                form::hidden(array('cat_id'),$_POST['cat_id']). 
    429                form::hidden(array('status'),$_POST['status']). 
    430                form::hidden(array('selected'),$_POST['selected']). 
    431                form::hidden(array('month'),$_POST['month']). 
    432                form::hidden(array('lang'),$_POST['lang']). 
    433                form::hidden(array('sortby'),$_POST['sortby']). 
    434                form::hidden(array('order'),$_POST['order']). 
    435                form::hidden(array('page'),$_POST['page']). 
    436                form::hidden(array('nb'),$_POST['nb']); 
     441               form::hidden(array('user_id'),$user_id). 
     442               form::hidden(array('cat_id'),$cat_id). 
     443               form::hidden(array('status'),$status). 
     444               form::hidden(array('selected'),$selected). 
     445               form::hidden(array('month'),$month). 
     446               form::hidden(array('lang'),$lang). 
     447               form::hidden(array('sortby'),$sortby). 
     448               form::hidden(array('order'),$order). 
     449               form::hidden(array('page'),$page). 
     450               form::hidden(array('nb'),$nb); 
    437451          } 
    438452           
     
    443457          # --BEHAVIOR-- adminPostsActionsContent 
    444458          $core->callBehavior('adminPostsActionsContent',$core,$action,$hidden_fields); 
    445            
    446459           
    447460          if ($action == 'author' && $core->auth->check('admin',$core->blog->id)) { 
  • plugins/newsletter/trunk/inc/class.newsletter.settings.php

    r1754 r1906  
    689689     */ 
    690690     public function getNewsletterSubject() 
    691      {  
    692           return (string)$this->getParameter('newsletter_subject'); 
     691     { 
     692          $time = time() + dt::getTimeOffset($this->core->blog->settings->blog_timezone); 
     693          $format = $this->core->blog->settings->date_format; 
     694          $date_sent = dt::str( 
     695               $format, 
     696               $time 
     697          ); 
     698          return (string)$this->getParameter('newsletter_subject').' du '.$date_sent; 
    693699     } 
    694700      
  • plugins/newsletter/trunk/inc/class.newsletter.subscribers.php

    r1754 r1906  
    310310          $params = array(); 
    311311 
     312          # Getting letters 
     313          try { 
     314               $params = array( 
     315                    'post_type' => 'newsletter', 
     316                    'post_status' => 1, 
     317               ); 
     318                
     319               $rs_letters = $core->blog->getPosts($params); 
     320               $counter = $core->blog->getPosts($params,true); 
     321          } catch (Exception $e) { 
     322               $core->error->add($e->getMessage()); 
     323          }          
     324 
     325          $letters_combo = array();           
     326          $letters_combo['-'] = ''; 
     327           
     328          while ($rs_letters->fetch()) { 
     329               $letters_combo[html::escapeHTML($rs_letters->post_title).' ('.$rs_letters->post_id.')'] = $rs_letters->post_id; 
     330          }          
     331           
    312332          /* Actions 
    313333          -------------------------------------------------------- */ 
    314334          if (!empty($_POST['op']) && !empty($_POST['subscriber'])) 
    315335          { 
    316                $entries = $_POST['subscriber']; 
     336               //$entries = $_POST['subscriber']; 
    317337               $action = $_POST['op']; 
    318            
    319                foreach ($entries as $k => $v) { 
    320                     $entries[$k] = (integer) $v; 
    321                } 
    322                      
    323                if ($action == 'send' && $core->auth->check('admin',$core->blog->id)) 
    324                { 
    325                     echo  
    326                     '<fieldset>'. 
    327                     '<legend>'.__('Send letter').'</legend>'; 
    328  
    329                     echo '<p><input type="button" id="cancel" value="'.__('cancel').'" /></p>'; 
    330                     echo '<h3>'.__('Actions').'</h3>'; 
    331                     echo '<table id="process"><tr class="keepme"><th>ID</th><th>Action</th><th>Status</th></tr></table>'; 
    332       
    333                     echo '</fieldset>'; 
    334  
    335                     echo '<p><a class="back" href="plugin.php?p=newsletter&amp;m=subscribers">'.__('back').'</a></p>'; 
    336                } 
    337  
    338  
    339           }  
     338 
     339               if ($action == 'send' && $core->auth->check('admin',$core->blog->id)) { 
     340                
     341                    $entries = $_POST['subscriber']; 
     342                    foreach ($entries as $k => $v) { 
     343                     
     344                    // check if users are enabled 
     345                    if ($subscriber = newsletterCore::get((integer) $v)){ 
     346                         if ($subscriber->state == 'enabled') { 
     347                              $subscribers_id[$k] = (integer) $v; 
     348                         } 
     349                    } 
     350               }               
     351                
     352               //$core->error->add('Launch lettersActions on '.count($subscribers_id)); 
     353                
     354               $hidden_fields = ''; 
     355               foreach ($subscribers_id as $k => $v) { 
     356                    $hidden_fields .= form::hidden(array('subscribers_id[]'),(integer) $v); 
     357               }               
     358                
     359               $letters_id = array(); 
     360               echo '<fieldset>'; 
     361               echo '<legend>'.__('Select letter to send').'</legend>'; 
     362               echo '<form action="plugin.php?p=newsletter&amp;m=letters" method="post">'; 
     363                
     364               echo  
     365               '<p><label class="classic">'.__('Letter:').'&nbsp;'. 
     366               form::combo(array('letters_id[]'),$letters_combo,$letters_id). 
     367               '</label> '. 
     368               '</p>'; 
     369                
     370               echo  
     371               $hidden_fields. 
     372               $core->formNonce(). 
     373               form::hidden(array('action'),'send'). 
     374               form::hidden(array('m'),'letters'). 
     375               form::hidden(array('p'),newsletterPlugin::pname()). 
     376               form::hidden(array('post_type'),'newsletter'). 
     377               form::hidden(array('redir'),html::escapeHTML($_SERVER['REQUEST_URI'])). 
     378               '<input type="submit" value="'.__('send').'" /></p>'; 
     379               echo '</form>'; 
     380               echo '</fieldset>'; 
     381                
     382               echo '<fieldset>'; 
     383               echo '<legend>'.__('Send auto letter').'</legend>'; 
     384               echo '<form action="plugin.php?p=newsletter&amp;m=letters" method="post">'; 
     385 
     386               echo  
     387               $hidden_fields. 
     388               $core->formNonce(). 
     389               form::hidden(array('action'),'send_old'). 
     390               form::hidden(array('m'),'letters'). 
     391               form::hidden(array('p'),newsletterPlugin::pname()). 
     392               form::hidden(array('post_type'),'newsletter'). 
     393               form::hidden(array('redir'),html::escapeHTML($_SERVER['REQUEST_URI'])). 
     394               '<input type="submit" value="'.__('send').'" /></p>'; 
     395 
     396               echo '</form>'; 
     397               echo '</fieldset>'; 
     398                
     399               echo '<p><a class="back" href="plugin.php?p=newsletter&amp;m=subscribers">'.__('back').'</a></p>';   
     400          } 
     401           
     402          } 
    340403           
    341404     } 
    342405      
    343      public static function sendLetter()  
     406     public static function sendOldLetter()  
    344407     { 
    345           // retrieve selected letter 
    346            
    347           // prepare letter 
    348            
    349           // retrieve selected users 
    350            
    351            
    352            
    353            
     408          if (empty($post['userId'])) { 
     409               throw new Exception('No subscriber selected'); 
     410          } 
     411           
     412          if (empty($entries)) { 
     413               throw new Exception('secNo subscriber selected'); 
     414          } 
     415           
     416          $subscriber = $post['userId']; 
     417                     
    354418          // send letter to selected users 
    355  
    356  
     419          //$msg = newsletterCore::send($subscribers,'newsletter'); 
    357420           
    358421          //return true; 
  • plugins/newsletter/trunk/index.php

    r1848 r1906  
    459459     case 'send': 
    460460     { 
    461           if (is_array($_POST['subscriber'])) { 
     461          //$core->error->add('Launch lettersActions on '.count($letters_id)); 
     462           
     463          /*    
     464          "var letters = [".implode(',',$letters_id)."];\n". 
     465               "var subscribers = [".implode(',',$subscribers_id)."];\n". 
     466          */ 
     467          /* Creation de la lettre */ 
     468           
     469          // bidouille en attendant 
     470          if(!empty($_POST['subscriber'])) { 
     471               $subscribers_id = array(); 
     472               $subscribers_id = $_POST['subscriber']; 
     473               //if (is_array($_POST['subscriber'])) { 
     474                
    462475               $ids = array(); 
    463476               foreach ($_POST['subscriber'] as $k => $v) { 
     
    469482                    } 
    470483               } 
    471                 
    472                $entries = array(); 
    473                $entries = $ids; 
    474                 
    475                if(!empty($_POST['id'])) $id = $_POST['id'];  
    476                 
    477                //$core->error->add('Launch subcribersActions on '.count($entries)); 
     484 
     485               $subscribers_id = $ids; 
     486                
     487               /* Create old newsletter to send */ 
     488               /*$msg = newsletterCore::send($ids,'newsletter'); 
     489               newsletterTools::redirection($m,$msg);*/ 
     490                
     491               //if(!empty($_POST['id'])) $id = $_POST['id'];     
     492 
     493               //$core->error->add('Launch subcribersActions on '.count($subscribers_id)); 
    478494               //newsletterSubscribersList::subcribersActions(); 
    479495                
     
    657673     break; 
    658674 
     675     case 'send_old': 
     676     { 
     677          //$core->error->add('Launch lettersActions on '.count($subscribers_id)); 
     678          //$core->error->add('Launch lettersActions on '.count($letters_id)); 
     679          $subscribers_id = array(); 
     680          $letters_id = array(); 
     681          $newsletter_mailing = new newsletterMailing($core); 
     682          $newsletter_settings = new newsletterSettings($core); 
     683          $letters_id[] = newsletterCore::insertMessageNewsletter($newsletter_mailing,$newsletter_settings); 
     684          if(!empty($_POST['subscribers_id'])) $subscribers_id = $_POST['subscribers_id']; 
     685     } 
     686     break; 
     687      
    659688     case 'send': 
    660689     case 'author': 
    661           //$core->error->add('Launch lettersActions on '.count($letters_id)); 
     690     { 
     691          $subscribers_id = array(); 
    662692          if(!empty($_POST['letters_id'])) $letters_id = $_POST['letters_id']; 
     693          if(!empty($_POST['subscribers_id'])) $subscribers_id = $_POST['subscribers_id']; 
     694     } 
    663695     break; 
    664696      
     
    715747          echo dcPage::jsPageTabs($plugin_tab); 
    716748      
    717      } else if ($plugin_tab == 'tab_letters' && $action == 'send') { 
     749     } else if (($plugin_tab == 'tab_letters' || $plugin_tab == 'tab_subscribers')  
     750                    && ($action == 'send' || $action == 'send_old')) { 
    718751          echo  
    719752               dcPage::jsLoad(DC_ADMIN_URL.'?pf=newsletter/js/_sequential_ajax.js'). 
     
    735768          echo dcPage::jsPageTabs($plugin_tab); 
    736769 
    737      } else if ($plugin_tab == 'tab_subscribers' && $plugin_op == 'send') { 
    738           echo  
    739                dcPage::jsLoad(DC_ADMIN_URL.'?pf=newsletter/js/_sequential_ajax.js'). 
    740                dcPage::jsLoad(DC_ADMIN_URL.'?pf=newsletter/js/_subscribers_actions.js'); 
    741            
    742           echo  
    743                '<script type="text/javascript">'."\n". 
    744                "//<![CDATA[\n". 
    745                "var subscribers = [".implode(',',$entries)."];\n". 
    746                "dotclear.msg.send_letters = '".html::escapeJS(__('Send letter'))."';\n". 
    747                "\n//]]>\n". 
    748                "</script>\n"; 
    749            
    750           echo dcPage::jsPageTabs($plugin_tab); 
    751       
    752770     } else if ($plugin_tab == 'tab_subscribers' || $plugin_tab == 'tab_letters') { 
    753771          echo  
     
    851869          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>'; 
    852870          echo '<div class="multi-part" id="tab_letters" title="'.__('Letters').'">'; 
    853           if($action == 'author' || $action == 'send') { 
     871          if($action == 'author' || $action == 'send' || $action == 'send_old') { 
    854872               newsletterLettersList::lettersActions($letters_id); 
    855873          } else { 
  • plugins/newsletter/trunk/js/_letters_actions.js

    r1848 r1906  
    3838} 
    3939 
    40  
     40function statsLetter(data) { 
     41     var retrieve = retrieves[currentRetrieve-1]; 
     42     $("#"+retrieve.line_id).html('... not yet available ...&nbsp;'); 
     43     doProcess(); 
     44} 
     45      
    4146$("input#cancel").click(function() { 
    4247     cancel = true; 
     
    4954currentRetrieve=0; 
    5055nbActions=0; 
    51 retrieves=[] 
     56retrieves=[]; 
    5257 
    5358for (var i=0; i<letters.length; i++) { 
    5459     var action_id = addLine(requestid,dotclear.msg.search_subscribers_for_letter,'id='+letters[i], dotclear.msg.please_wait); 
    55      //retrieves.push({line_id: action_id, request: {f: 'letterGetSubscribersUp', letterId: letters[i]}, callback: processSendALetter}); 
    56      //retrieves.push({line_id: action_id, request: {f: 'prepareALetter', letterId: letters[i]}, callback: processSendALetter}); 
    57      retrieves.push({line_id: action_id, request: {f: 'prepareALetter', letterId: letters[i]}, callback: processSendALetter}); 
    58 }          
     60     retrieves.push({line_id: action_id, request: {f: 'prepareALetter', letterId: letters[i], subscribersId: subscribers.join(',')}, callback: processSendALetter}); 
     61      
     62//   var action2_id = addLine(requestid,"Statistiques sur la lettre d'informations",'id='+letters[i], dotclear.msg.please_wait);   
     63//   retrieves.push({line_id: action2_id, params: {f: "statsLetter", letterId: letters[i]}, callback: statsLetter});     
     64} 
    5965doProcess(); 
    6066 
     67 
     68 
    6169}); 
Note: See TracChangeset for help on using the changeset viewer.

Sites map