Dotclear

Changeset 788


Ignore:
Timestamp:
02/18/09 08:19:53 (14 years ago)
Author:
kwon
Message:

Newsletter 3.0.5rc6 : Ticket #65, #67

Location:
plugins/newsletter/trunk
Files:
5 added
1 deleted
10 edited

Legend:

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

    r777 r788  
    3131$core->addBehavior('adminAfterPostUpdate', array('dcBehaviorsNewsletter', 'adminAutosend')); 
    3232 
     33// initialisation du widget 
     34$core->addBehavior('initWidgets', array('dcBehaviorsNewsletter', 'widget')); 
     35 
    3336// ajout de la gestion des url 
    3437$core->url->register('newsletter', 'newsletter', '^newsletter/(.+)$', array('urlNewsletter', 'newsletter')); 
     
    4548class dcBehaviorsNewsletter 
    4649{ 
     50     /** 
     51     * initialisation du widget 
     52     */ 
     53     public static function widget(&$w) 
     54     { 
     55          global $core, $plugin_name; 
     56          try { 
     57               $w->create(pluginNewsletter::pname(), __('Newsletter'), array('WidgetsNewsletter', 'widget')); 
     58 
     59         $w->newsletter->setting('title', __('Title:'), __('Newsletter')); 
     60               $w->newsletter->setting('showtitle', __('Show title'), 1, 'check'); 
     61               $w->newsletter->setting('homeonly', __('Home page only'), 0, 'check'); 
     62               $w->newsletter->setting('inwidget', __('In widget'), 0, 'check'); 
     63               $w->newsletter->setting('insublink', __('In sublink'), 1, 'check'); 
     64               $w->newsletter->setting('subscription_link',__('Title subscription link:'),__('Subscription link')); 
     65            
     66          } catch (Exception $e) {  
     67               $core->error->add($e->getMessage());  
     68          } 
     69     } 
     70     
    4771     /** 
    4872     * avant suppression du plugin par le gestionnaire, on le déinstalle proprement 
  • plugins/newsletter/trunk/_prepend.php

    r777 r788  
    2424$GLOBALS['__autoload']['dcNewsletter'] = dirname(__FILE__).'/class.modele.php'; 
    2525 
    26 require dirname(__FILE__).'/_widgets.php'; 
    27  
    2826?> 
  • plugins/newsletter/trunk/_public.php

    r777 r788  
    5151     * initialisation du widget 
    5252     */ 
    53     public static function widget($w) 
    54     { 
     53     public static function widget($w) 
     54     { 
    5555          global $core; 
    56           try 
    57           { 
     56          try { 
    5857               // prise en compte de l'état d'activation du plugin 
    59                if (!pluginNewsletter::isActive()) return; 
     58               if (!pluginNewsletter::isActive())  
     59                    return; 
    6060 
    6161               // prise en compte paramètre: uniquement sur la page d'accueil 
    6262               $url = &$core->url; 
    63              if ($w->homeonly && $url->type != 'default') return; 
     63               if ($w->homeonly && $url->type != 'default')  { 
     64                    return; 
     65               } 
    6466 
    6567               // paramétrage des variables 
     
    6769               $title = ($w->title) ? html::escapeHTML($w->title) : $plugin_name; 
    6870               $showTitle = ($w->showtitle) ? true : false; 
    69                $subtitle = ($w->subtitle) ? html::escapeHTML($w->subtitle) : __('Subscribe'); 
     71               $subscription_link = ($w->subscription_link) ? html::escapeHTML($w->subscription_link) : __('Subscription link'); 
     72                
    7073               $text = ''; 
    7174 
    7275               // mise en place du contenu du widget dans $text 
    73              if ($w->inwidget) 
    74              { 
    75                 $link = dcNewsletter::url('submit'); 
    76                  $text .= 
    77                          '<form action="'.$link.'" method="post" id="nl_form">'. 
    78                          '<fieldset>'. 
    79                               $core->formNonce(). 
    80                               form::hidden(array('nl_random'),dcNewsletter::getRandom()). 
     76               if ($w->inwidget) { 
     77                    $link = dcNewsletter::url('submit'); 
     78                    $text .= 
     79                    '<form action="'.$link.'" method="post" id="nl_form">'. 
     80                    '<fieldset>'. 
     81                    $core->formNonce(). 
     82                    form::hidden(array('nl_random'),dcNewsletter::getRandom()). 
    8183                               
    82                               '<label for="nl_email">'.__('Email:').'</label>'. 
    83                               form::field(array('nl_email','nl_email'),30,255); 
     84                    '<label for="nl_email">'.__('Email:').'</label>'. 
     85                    form::field(array('nl_email','nl_email'),30,255); 
    8486 
    85                               if (pluginNewsletter::getCaptcha()) 
    86                               { 
    87                                    require_once dirname(__FILE__).'/class.captcha.php';                                  
     87                    if (pluginNewsletter::getCaptcha()) { 
     88                         require_once dirname(__FILE__).'/class.captcha.php';                                  
    8889                                    
    89                                    $as = new Captcha(80, 30, 5); 
    90                                    $as->generate(); 
    91                                    $as->file(); 
    92                                    $as->write(); 
     90                         $as = new Captcha(80, 30, 5); 
     91                         $as->generate(); 
     92                         $as->file(); 
     93                         $as->write(); 
    9394                               
    94                                    $text .= 
    95                                    '<label for="nl_captcha">'.__('Captcha:').'</label>'. 
    96                                    form::field(array('nl_captcha','nl_captcha'),30,255, '', 'style="width:90px; vertical-align:top;'). 
    97                                    '<img src="'.Captcha::www().'/captcha.img.png" style="vertical-align: middle;" alt="'.__('Captcha').'" />'; 
    98                               } 
     95                         $text .= 
     96                         '<label for="nl_captcha">'.__('Captcha:').'</label>'. 
     97                         form::field(array('nl_captcha','nl_captcha'),30,255, '', 'style="width:90px; vertical-align:top;'). 
     98                         '<img src="'.Captcha::www().'/captcha.img.png" style="vertical-align: middle;" alt="'.__('Captcha').'" />'; 
     99                    } 
    99100 
    100                  $text .= 
    101                               '<label>'.form::radio(array('nl_option'),'subscribe', true).__('Subscribe').'</label><br />'. 
    102                               '<label>'.form::radio(array('nl_option'),'unsubscribe').__('Unsubscribe').'</label><br />'. 
    103                               '<input type="submit" name="nl_submit" id="nl_submit" value="'.__('Ok').'" />'. 
    104                          '</fieldset>'. 
    105                          '</form>'; 
    106              } 
    107              else 
    108              { 
    109                 $link = dcNewsletter::url('form'); 
    110                  if ($w->insublink) 
    111                  { 
    112                      $title = str_replace('%I', '<img src="?pf=newsletter/icon.png" alt="" width="16" height="16" style="margin: 0 3px; vertical-align: middle;" />', $title); 
    113                      $text = $w->text ? $w->text : ''; 
     101                    $text .= 
     102                    '<label>'.form::radio(array('nl_option'),'subscribe', true).__('Subscribe').'</label><br />'. 
     103                    '<label>'.form::radio(array('nl_option'),'unsubscribe').__('Unsubscribe').'</label><br />'. 
     104                    '<input type="submit" name="nl_submit" id="nl_submit" value="'.__('Ok').'" />'. 
     105                    '</fieldset>'. 
     106                    '</form>'; 
     107               } else { 
     108                    $link = dcNewsletter::url('form'); 
     109                    if ($w->insublink) { 
     110                         $title = str_replace('%I', '<img src="?pf=newsletter/icon.png" alt="" width="16" height="16" style="margin: 0 3px; vertical-align: middle;" />', $title); 
     111                         $text = $w->text ? $w->text : ''; 
    114112 
    115                      $text .= '<ul><li><a href="'.$link.'">'.$subtitle.'</a></li></ul>'; 
    116                  } 
    117                  else 
    118                  { 
    119                      $title = '<a href="'.$link.'">'.$title.'</a>'; 
    120                      $title = str_replace('%I', '</a><img src="?pf=newsletter/icon.png" alt="newsletter" width="16" height="16" style="margin:0 3px; vertical-align:middle;" /> <a href="'.$link.'">', $title); 
    121                  } 
    122              } 
     113                         $text .= '<ul><li><a href="'.$link.'">'.$subscription_link.'</a></li></ul>'; 
     114                    } else { 
     115                         $title = '<a href="'.$link.'">'.$title.'</a>'; 
     116                         $title = str_replace('%I', '</a><img src="?pf=newsletter/icon.png" alt="newsletter" width="16" height="16" style="margin:0 3px; vertical-align:middle;" /> <a href="'.$link.'">', $title); 
     117                    } 
     118               } 
    123119 
     120               // renvoi du code à afficher pour le widget 
     121               if ($showTitle === true)  
     122                    $title = '<h2>'.$title.'</h2>'; 
     123               else  
     124                    $title = ''; 
    124125                
    125                // renvoi du code à afficher pour le widget 
    126              if ($showTitle === true) $title = '<h2>'.$title.'</h2>'; 
    127              else $title = ''; 
    128              return "\n".'<div id="'.pluginNewsletter::pname().'">'.$title.$text.'</div>'."\n"; 
     126               return "\n".'<div id="'.pluginNewsletter::pname().'">'.$title.$text.'</div>'."\n"; 
     127          } catch (Exception $e) {  
     128               $core->error->add($e->getMessage());  
    129129          } 
    130          catch (Exception $e) { $core->error->add($e->getMessage()); } 
    131130     } 
    132131} 
  • plugins/newsletter/trunk/changelog.txt

    r777 r788  
    33* changement de la gestion de l'aide de la partie admin 
    44* remaniement de l'interface d'administration 
    5 * désactivation pour le moment de la possibilité de s'inscrire par le widget 
    65* désactivation de la fonction de mise à jour pour éviter la redondance avec dotaddict 
    7 * correction du Ticket #47 sur l'affichage d'une page vide lors du submit 
    8 * correction du Ticket #61 sur le problème du caratère '=' dans l'URL 
    9 * correction du Ticket #62 sur un bug dans l'envoi automatique 
    106* ajout d'une période de temps pour les billets de la newsletter (fixée à 1 mois dans cette version)  
    117* remaniement du code 
     8* resolution du Ticket #47 : bug d'affichage d'une page vide lors du submit 
     9* resolution du Ticket #61 : bug avec le caratère '=' dans l'URL 
     10* resolution du Ticket #62 : bug dans l'envoi automatique 
     11* résolution du Ticket #65 : création de templates spécifiques 
     12* résolution du Ticket #67 : définir l'intitulé du bouton "S'abonner"  
    1213 
    13143.4.2 
  • plugins/newsletter/trunk/class.admin.php

    r777 r788  
    315315               $fautosend = pluginNewsletter::getAutosend(); 
    316316               $fcaptcha = pluginNewsletter::getCaptcha(); 
     317               /* 
     318               $f_subscribe_link = pluginNewsletter::getSubscribeLink(); 
     319               //*/ 
    317320               /* for 3.5.1 : add period 
    318321               $fperiod = pluginNewsletter::getPeriod(); 
  • plugins/newsletter/trunk/class.dc.newsletter.php

    r777 r788  
    3939               $GLOBALS['newsletter']['cmd'] = null; 
    4040               $GLOBALS['newsletter']['msg'] = false; 
    41           $GLOBALS['newsletter']['form'] = false; 
    42           $GLOBALS['newsletter']['email'] = null; 
    43           $GLOBALS['newsletter']['code'] = null; 
     41               $GLOBALS['newsletter']['form'] = false; 
     42               $GLOBALS['newsletter']['email'] = null; 
     43               $GLOBALS['newsletter']['code'] = null; 
    4444 
    4545               // décomposition des arguments et aiguillage 
    46           $params = explode('/', $args); 
     46               $params = explode('/', $args); 
    4747               if (isset($params[0]) && !empty($params[0]))  
    4848                    $cmd = (string)html::clean($params[0]); 
  • plugins/newsletter/trunk/class.modele.php

    r777 r788  
    567567               // intervalle de récupération des messages (fixé à 1 mois pour le moment) 
    568568               //$params['sql'] .= ' AND P.post_dt BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW() '; 
    569          $params['sql'] .= ' AND P.post_dt BETWEEN SUBDATE(NOW(), INTERVAL 1 MONTH) AND NOW() '; 
    570           
     569         // $params['sql'] .= ' AND P.post_dt BETWEEN SUBDATE(NOW(), INTERVAL 1 MONTH) AND NOW() '; 
    571570 
    572571               // récupération des billets 
  • plugins/newsletter/trunk/class.plugin.php

    r777 r788  
    158158     * utilisation d'un captcha 
    159159     */ 
    160    public static function getCaptcha()  
    161    {  
    162      return (boolean)self::get('captcha');  
    163    } 
     160     public static function getCaptcha()  
     161     {  
     162          return (boolean)self::get('captcha');  
     163     } 
    164164      
    165165    /** 
     
    282282     * namespace pour le plugin 
    283283     */ 
    284    static protected function namespace()  
    285    {  
    286      return (string)self::pname();  
    287    } 
     284     protected static function namespace()  
     285     {  
     286          return (string)self::pname();  
     287     } 
    288288 
    289289     /** 
    290290     * préfix pour ce plugin 
    291291     */ 
    292    static protected function prefix()  
    293    {  
    294      return (string)self::namespace().'_';  
    295    } 
     292     protected static function prefix()  
     293     {  
     294          return (string)self::namespace().'_';  
     295     } 
    296296 
    297297     /** 
     
    301301     { 
    302302          global $core; 
    303       try { 
    304           $blog = &$core->blog; 
     303          try { 
     304               $blog = &$core->blog; 
    305305               $blog->triggerBlog(); 
    306       } 
    307         catch (Exception $e) {  
    308           $core->error->add($e->getMessage());  
    309         } 
     306          } catch (Exception $e) {  
     307               $core->error->add($e->getMessage());  
     308          } 
    310309     } 
    311310 
     
    316315     { 
    317316          global $core; 
    318       try { 
     317          try { 
    319318               http::redirect($url); 
    320       } 
    321         catch (Exception $e) {  
    322           $core->error->add($e->getMessage());  
    323         } 
     319          } catch (Exception $e) {  
     320               $core->error->add($e->getMessage());  
     321          } 
    324322     } 
    325323 
     
    327325     * lit le paramètre 
    328326     */ 
    329    public static function get($param, $global=false) 
    330    { 
    331           global $core; 
    332       try { 
     327     public static function get($param, $global=false) 
     328     { 
     329          global $core; 
     330          try { 
    333331               $blog = &$core->blog; 
    334            $settings = &$blog->settings; 
    335          if (!$global)  
    336           $settings->setNamespace(self::namespace()); 
    337          return (string)$settings->get(self::prefix().$param); 
    338      } catch (Exception $e) {  
    339           $core->error->add($e->getMessage());  
    340      } 
    341    } 
     332               $settings = &$blog->settings; 
     333               if (!$global) { 
     334                    $settings->setNamespace(self::namespace()); 
     335               } 
     336               return (string)$settings->get(self::prefix().$param); 
     337          } catch (Exception $e) {  
     338               $core->error->add($e->getMessage());  
     339          } 
     340     } 
    342341 
    343342     /** 
     
    347346     { 
    348347          global $core; 
    349       try { 
    350            $blog = &$core->blog; 
    351            $settings = &$blog->settings; 
    352          if (isset($settings->$param))  
    353           return true; 
     348          try { 
     349               $blog = &$core->blog; 
     350               $settings = &$blog->settings; 
     351               if (isset($settings->$param))  
     352                    return true; 
    354353               else  
    355354                    return false; 
    356      } catch (Exception $e) {  
    357           $core->error->add($e->getMessage());  
    358      } 
     355          } catch (Exception $e) {  
     356               $core->error->add($e->getMessage());  
     357          } 
    359358     } 
    360359 
     
    362361     * enregistre une chaine dans le paramètre 
    363362     */ 
    364    public static function setS($param, $val, $global=false) 
    365    { 
    366           global $core; 
    367       try { 
     363     public static function setS($param, $val, $global=false) 
     364     { 
     365          global $core; 
     366          try { 
    368367               $blog = &$core->blog; 
    369            $settings = &$blog->settings; 
    370          $settings->setNamespace(self::namespace()); 
    371          $settings->put((string)self::prefix().$param, (string)$val, 'string', null, true, $global); 
    372      } catch (Exception $e) {  
    373           $core->error->add($e->getMessage());  
    374      } 
     368               $settings = &$blog->settings; 
     369               $settings->setNamespace(self::namespace()); 
     370               $settings->put((string)self::prefix().$param, (string)$val, 'string', null, true, $global); 
     371          } catch (Exception $e) {  
     372               $core->error->add($e->getMessage());  
     373          } 
    375374   } 
    376375 
  • plugins/newsletter/trunk/locales/fr/help/help.html

    r777 r788  
    7474<dl> 
    7575     <dt>Intégration au thème :</dt> 
    76      <dd>Vous pouvez ajouter le code à suivant votre thème pour afficher le formulaire d'abonnement à la newsletter : 
    77      <pre>{{tpl:NewsletterSubscription}}</pre> 
    78      </dd> 
     76     <dd><ul> 
     77     <li><strong>Installer le template spécifique pour votre thème : </strong> 
     78     Copier le fichier depuis le répertoire <pre>plugins/newsletter/adapt_themes/nom_theme.subscribe.newsletter.html</pre> 
     79          qui vous concerne et déposer dans le répertoire tpl de votre theme. <br /> 
     80          Renomer le fichier en subscribe.newsletter.html  
     81          </li> 
     82     <li>Vous pouvez ajouter le code suivant à votre thème pour afficher le formulaire d'abonnement à la newsletter : 
     83          <pre>{{tpl:NewsletterSubscription}}</pre> 
     84     </li> 
     85     </ul></dd> 
    7986</dl> 
    8087<h3>A propos</h3> 
  • plugins/newsletter/trunk/locales/fr/main.lang.php

    r777 r788  
    236236$GLOBALS['__l10n']['Subscribe'] = "S'abonner"; 
    237237$GLOBALS['__l10n']['Unsubscribe'] = "Se désabonner"; 
     238$GLOBALS['__l10n']['Title subscription link:'] = "Titre du lien de souscription:"; 
     239$GLOBALS['__l10n']['Subscription link'] = "S'abonner"; 
    238240 
    239241// _install 
Note: See TracChangeset for help on using the changeset viewer.

Sites map