Changeset 788
- Timestamp:
- 02/18/09 08:19:53 (14 years ago)
- Location:
- plugins/newsletter/trunk
- Files:
-
- 5 added
- 1 deleted
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/newsletter/trunk/_admin.php
r777 r788 31 31 $core->addBehavior('adminAfterPostUpdate', array('dcBehaviorsNewsletter', 'adminAutosend')); 32 32 33 // initialisation du widget 34 $core->addBehavior('initWidgets', array('dcBehaviorsNewsletter', 'widget')); 35 33 36 // ajout de la gestion des url 34 37 $core->url->register('newsletter', 'newsletter', '^newsletter/(.+)$', array('urlNewsletter', 'newsletter')); … … 45 48 class dcBehaviorsNewsletter 46 49 { 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 47 71 /** 48 72 * avant suppression du plugin par le gestionnaire, on le déinstalle proprement -
plugins/newsletter/trunk/_prepend.php
r777 r788 24 24 $GLOBALS['__autoload']['dcNewsletter'] = dirname(__FILE__).'/class.modele.php'; 25 25 26 require dirname(__FILE__).'/_widgets.php';27 28 26 ?> -
plugins/newsletter/trunk/_public.php
r777 r788 51 51 * initialisation du widget 52 52 */ 53 54 53 public static function widget($w) 54 { 55 55 global $core; 56 try 57 { 56 try { 58 57 // prise en compte de l'état d'activation du plugin 59 if (!pluginNewsletter::isActive()) return; 58 if (!pluginNewsletter::isActive()) 59 return; 60 60 61 61 // prise en compte paramètre: uniquement sur la page d'accueil 62 62 $url = &$core->url; 63 if ($w->homeonly && $url->type != 'default') return; 63 if ($w->homeonly && $url->type != 'default') { 64 return; 65 } 64 66 65 67 // paramétrage des variables … … 67 69 $title = ($w->title) ? html::escapeHTML($w->title) : $plugin_name; 68 70 $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 70 73 $text = ''; 71 74 72 75 // 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()). 81 83 82 83 84 '<label for="nl_email">'.__('Email:').'</label>'. 85 form::field(array('nl_email','nl_email'),30,255); 84 86 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'; 88 89 89 90 91 92 90 $as = new Captcha(80, 30, 5); 91 $as->generate(); 92 $as->file(); 93 $as->write(); 93 94 94 95 96 97 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 } 99 100 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 : ''; 114 112 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 } 123 119 120 // renvoi du code à afficher pour le widget 121 if ($showTitle === true) 122 $title = '<h2>'.$title.'</h2>'; 123 else 124 $title = ''; 124 125 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()); 129 129 } 130 catch (Exception $e) { $core->error->add($e->getMessage()); }131 130 } 132 131 } -
plugins/newsletter/trunk/changelog.txt
r777 r788 3 3 * changement de la gestion de l'aide de la partie admin 4 4 * remaniement de l'interface d'administration 5 * désactivation pour le moment de la possibilité de s'inscrire par le widget6 5 * 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 submit8 * correction du Ticket #61 sur le problème du caratère '=' dans l'URL9 * correction du Ticket #62 sur un bug dans l'envoi automatique10 6 * ajout d'une période de temps pour les billets de la newsletter (fixée à 1 mois dans cette version) 11 7 * 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" 12 13 13 14 3.4.2 -
plugins/newsletter/trunk/class.admin.php
r777 r788 315 315 $fautosend = pluginNewsletter::getAutosend(); 316 316 $fcaptcha = pluginNewsletter::getCaptcha(); 317 /* 318 $f_subscribe_link = pluginNewsletter::getSubscribeLink(); 319 //*/ 317 320 /* for 3.5.1 : add period 318 321 $fperiod = pluginNewsletter::getPeriod(); -
plugins/newsletter/trunk/class.dc.newsletter.php
r777 r788 39 39 $GLOBALS['newsletter']['cmd'] = null; 40 40 $GLOBALS['newsletter']['msg'] = false; 41 42 43 41 $GLOBALS['newsletter']['form'] = false; 42 $GLOBALS['newsletter']['email'] = null; 43 $GLOBALS['newsletter']['code'] = null; 44 44 45 45 // décomposition des arguments et aiguillage 46 46 $params = explode('/', $args); 47 47 if (isset($params[0]) && !empty($params[0])) 48 48 $cmd = (string)html::clean($params[0]); -
plugins/newsletter/trunk/class.modele.php
r777 r788 567 567 // intervalle de récupération des messages (fixé à 1 mois pour le moment) 568 568 //$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() '; 571 570 572 571 // récupération des billets -
plugins/newsletter/trunk/class.plugin.php
r777 r788 158 158 * utilisation d'un captcha 159 159 */ 160 161 162 return (boolean)self::get('captcha');163 160 public static function getCaptcha() 161 { 162 return (boolean)self::get('captcha'); 163 } 164 164 165 165 /** … … 282 282 * namespace pour le plugin 283 283 */ 284 static protectedfunction namespace()285 286 return (string)self::pname();287 284 protected static function namespace() 285 { 286 return (string)self::pname(); 287 } 288 288 289 289 /** 290 290 * préfix pour ce plugin 291 291 */ 292 static protectedfunction prefix()293 294 295 292 protected static function prefix() 293 { 294 return (string)self::namespace().'_'; 295 } 296 296 297 297 /** … … 301 301 { 302 302 global $core; 303 304 $blog = &$core->blog;303 try { 304 $blog = &$core->blog; 305 305 $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 } 310 309 } 311 310 … … 316 315 { 317 316 global $core; 318 317 try { 319 318 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 } 324 322 } 325 323 … … 327 325 * lit le paramètre 328 326 */ 329 330 331 global $core; 332 try {327 public static function get($param, $global=false) 328 { 329 global $core; 330 try { 333 331 $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 } 342 341 343 342 /** … … 347 346 { 348 347 global $core; 349 try {350 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; 354 353 else 355 354 return false; 356 } catch (Exception $e) {357 $core->error->add($e->getMessage());358 }355 } catch (Exception $e) { 356 $core->error->add($e->getMessage()); 357 } 359 358 } 360 359 … … 362 361 * enregistre une chaine dans le paramètre 363 362 */ 364 365 366 global $core; 367 363 public static function setS($param, $val, $global=false) 364 { 365 global $core; 366 try { 368 367 $blog = &$core->blog; 369 370 371 372 373 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 } 375 374 } 376 375 -
plugins/newsletter/trunk/locales/fr/help/help.html
r777 r788 74 74 <dl> 75 75 <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> 79 86 </dl> 80 87 <h3>A propos</h3> -
plugins/newsletter/trunk/locales/fr/main.lang.php
r777 r788 236 236 $GLOBALS['__l10n']['Subscribe'] = "S'abonner"; 237 237 $GLOBALS['__l10n']['Unsubscribe'] = "Se désabonner"; 238 $GLOBALS['__l10n']['Title subscription link:'] = "Titre du lien de souscription:"; 239 $GLOBALS['__l10n']['Subscription link'] = "S'abonner"; 238 240 239 241 // _install
Note: See TracChangeset
for help on using the changeset viewer.