Changeset 3006
- Timestamp:
- 03/24/11 14:43:17 (13 years ago)
- Location:
- plugins/newsletter/trunk
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/newsletter/trunk/_admin.php
r2800 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 20 20 'index.php?pf=newsletter/icon.png', 21 21 preg_match('/plugin.php\?p='.newsletterPlugin::pname().'(&.*)?$/', $_SERVER['REQUEST_URI']), 22 $core->auth->check(' usage,admin', $core->blog->id)22 $core->auth->check('newsletter,contentadmin', $core->blog->id) 23 23 ); 24 24 25 // Adding behaviors 26 $core->addBehavior('pluginsBeforeDelete', array('dcBehaviorsNewsletter', 'pluginsBeforeDelete')); 27 $core->addBehavior('adminAfterPostCreate', array('dcBehaviorsNewsletter', 'adminAutosend')); 28 $core->addBehavior('adminAfterPostUpdate', array('dcBehaviorsNewsletter', 'adminAutosendUpdate')); 29 30 // Adding import/export behavior 31 $core->addBehavior('exportFull',array('dcBehaviorsNewsletter','exportFull')); 32 $core->addBehavior('exportSingle',array('dcBehaviorsNewsletter','exportSingle')); 33 $core->addBehavior('importInit',array('dcBehaviorsNewsletter','importInit')); 34 $core->addBehavior('importFull',array('dcBehaviorsNewsletter','importFull')); 35 $core->addBehavior('importSingle',array('dcBehaviorsNewsletter','importSingle')); 36 37 // Dynamic method 38 $core->rest->addFunction('prepareALetter', array('newsletterRest','prepareALetter')); 39 $core->rest->addFunction('sendLetterBySubscriber', array('newsletterRest','sendLetterBySubscriber')); 40 25 // Adding permission 26 $core->auth->setPermissionType('newsletter',__('manage newsletter')); 27 28 if ($core->auth->check('newsletter,contentadmin',$core->blog->id)) { 29 // Adding behaviors 30 $core->addBehavior('pluginsBeforeDelete', array('dcBehaviorsNewsletter', 'pluginsBeforeDelete')); 31 $core->addBehavior('adminAfterPostCreate', array('dcBehaviorsNewsletter', 'adminAutosend')); 32 $core->addBehavior('adminAfterPostUpdate', array('dcBehaviorsNewsletter', 'adminAutosendUpdate')); 33 34 // Adding import/export behavior 35 $core->addBehavior('exportFull',array('dcBehaviorsNewsletter','exportFull')); 36 $core->addBehavior('exportSingle',array('dcBehaviorsNewsletter','exportSingle')); 37 $core->addBehavior('importInit',array('dcBehaviorsNewsletter','importInit')); 38 $core->addBehavior('importFull',array('dcBehaviorsNewsletter','importFull')); 39 $core->addBehavior('importSingle',array('dcBehaviorsNewsletter','importSingle')); 40 41 // Dynamic method 42 $core->rest->addFunction('prepareALetter', array('newsletterRest','prepareALetter')); 43 $core->rest->addFunction('sendLetterBySubscriber', array('newsletterRest','sendLetterBySubscriber')); 44 } 45 41 46 // Loading widget 42 47 require dirname(__FILE__).'/_widgets.php'; … … 293 298 $letter_content .= $post['p_letter_footer']; 294 299 295 $letter_content = newsletterLetter::mb_wordwrap($letter_content);300 //$letter_content = newsletterLetter::mb_wordwrap($letter_content); 296 301 } 297 302 -
plugins/newsletter/trunk/_define.php
r2810 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 16 16 /* Description*/ "Manage your newsletters in Dotclear 2", 17 17 /* Author */ "Benoit de Marne", 18 /* Version */ "3.7.13alpha 2",18 /* Version */ "3.7.13alpha16", 19 19 /* Permissions */ "usage,contentadmin", 20 20 /* Priority */ null -
plugins/newsletter/trunk/_install.php
r2395 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/_prepend.php
r2800 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/_public.php
r2685 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/_uninstall.php
r2390 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/_widgets.php
r2390 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/changelog.txt
r2810 r3006 3 3 * Ticket #545 : page récapitulative des newsletter 4 4 * Ticket #599 : fonctionnement autonome du widget 5 * Ticket #564 : vérification du by6 * Change le format des posts de la newsletter pour éviter un bug d'envoi sur la lettre auto7 ° (post_url_format = {y}/{m}/{d}/{t}/{id})8 * Ticket #588 : ajouter la possibilité de définir les permissions9 * Ticket #597 : bug avec Restreindre l'aperçu à l'extrait des billets10 5 --------- TODO ----------- 11 6 … … 14 9 * Ticket #600 : Statut confirmé à l'inscription 15 10 * Changement des valeurs par défaut 11 * Ticket #564 : vérification du by 12 * Ticket #597 : bug avec Restreindre l'aperçu à l'extrait des billets 13 * Ticket #650 : Newsletter : liens corrompus dans certains envois 14 * Change le format des posts de la newsletter pour éviter un bug d'envoi sur la lettre auto 15 (post_url_format = {y}/{m}/{d}/{t}/{id}) 16 => changement automatique non possible car l'url est fixée par Dotclear 17 * Ticket #622 : (%s) dans le message de suppression d'un abonné 18 * Ticket #588 : ajouter la possibilité de définir les permissions 19 * Ajout d'un onglet avec le nombre d'abonnés 16 20 17 21 Newsletter 3.7.12 - 2010-12-16 -
plugins/newsletter/trunk/inc/class.captcha.php
r2503 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/inc/class.dc.newsletter.php
r2643 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/inc/class.newsletter.admin.php
r2810 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 1398 1398 } 1399 1399 1400 1400 /** 1401 * print statistics 1402 */ 1403 public static function displayTabResume() 1404 { 1405 global $core; 1406 try { 1407 $blog = &$core->blog; 1408 1409 echo newsletterSubscribersList::fieldsetResumeSubscribers(); 1410 echo newsletterLettersList::fieldsetResumeLetters(); 1411 // todo : statistics sending letters 1412 1413 } catch (Exception $e) { 1414 $core->error->add($e->getMessage()); 1415 } 1416 1417 } 1401 1418 } 1402 1419 -
plugins/newsletter/trunk/inc/class.newsletter.core.php
r2810 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 899 899 } else { 900 900 $news_content = text::cutString($news_content,$newsletter_settings->getSizeContentPost()); 901 $news_content = newsletterTools::cutHtmlString($news_content,$newsletter_settings->getSizeContentPost()); 901 //$news_content = newsletterTools::cutHtmlString($news_content,$newsletter_settings->getSizeContentPost()); 902 $news_content = newsletterTools::truncateHtmlString($news_content,$newsletter_settings->getSizeContentPost(),'...',false,true); 902 903 $news_content = html::decodeEntities($news_content); 903 $news_content = preg_replace('/<\/p>$/',"...</p>",$news_content);904 //$news_content = preg_replace('/<\/p>$/',"...</p>",$news_content); 904 905 } 905 906 -
plugins/newsletter/trunk/inc/class.newsletter.cron.php
r2503 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/inc/class.newsletter.letter.php
r2810 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 1118 1118 1119 1119 $replacements[0] .= '<p class="post-info">'; 1120 $replacements[0] .= '('.$rs_attach_posts->getDate($format).' '.__('by 1120 $replacements[0] .= '('.$rs_attach_posts->getDate($format).' '.__('by').' '.$rs_attach_posts->getAuthorCN().')'; 1121 1121 $replacements[0] .= '</p>'; 1122 1122 … … 1214 1214 } else { 1215 1215 //$news_content = text::cutString($news_content,$newsletter_settings->getSizeContentPost()); 1216 $news_content = newsletterTools::cutHtmlString($news_content,$newsletter_settings->getSizeContentPost()); 1216 //$news_content = newsletterTools::cutHtmlString($news_content,$newsletter_settings->getSizeContentPost()); 1217 $news_content = newsletterTools::truncateHtmlString($news_content,$newsletter_settings->getSizeContentPost(),'',false,true); 1217 1218 $news_content = html::decodeEntities($news_content); 1218 $news_content = preg_replace('/<\/p>$/',"...</p>",$news_content);1219 //$news_content = preg_replace('/<\/p>$/',"...</p>",$news_content); 1219 1220 } 1220 1221 … … 1286 1287 { 1287 1288 $replacements[0] .= $rs_attach_posts->post_title.'<br/>'; 1288 $replacements[0] .= '('.$rs_attach_posts->getDate($format).' '.__('by 1289 $replacements[0] .= '('.$rs_attach_posts->getDate($format).' '.__('by').' '.$rs_attach_posts->getAuthorCN().')<br/>'; 1289 1290 1290 1291 // On n'affiche pas les miniatures en mode texte -
plugins/newsletter/trunk/inc/class.newsletter.letters.php
r2645 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 14 14 class newsletterLettersList extends adminGenericList 15 15 { 16 /** 17 * Count letters 18 */ 19 private static function countLetters($state = '1') 20 { 21 global $core; 22 23 $params['post_type'] = 'newsletter'; 24 $params['post_status'] = $state; 25 $params['no_content'] = true; 26 27 $counter = $core->blog->getPosts($params,true); 28 return $counter->f(0); 29 } 30 31 public static function fieldsetResumeLetters() 32 { 33 $state_combo = array( 34 __('pending') => '-2', 35 __('scheduled') => '-1', 36 __('unpublish') => '0', 37 __('publish') => '1' 38 ); 39 40 $resume_content = 41 '<fieldset>'. 42 '<legend>'.__('Statistics letters').'</legend>'. 43 '<table summary="resume_letters" class="minimal">'. 44 '<thead>'. 45 '<tr>'. 46 '<th>'.__('State').'</th>'. 47 '<th>'.__('Count').'</th>'. 48 '</tr>'. 49 '</thead>'. 50 '<tbody id="classes-list">'; 51 52 foreach($state_combo as $k=>$v) { 53 $resume_content .= 54 '<tr class="line">'. 55 '<td>'.$k.'</td>'. 56 '<td>'.self::countLetters($v).'</td>'. 57 '</tr>'. 58 ''; 59 } 60 61 $resume_content .= 62 '</tbody>'. 63 '</table>'. 64 '</fieldset>'. 65 ''; 66 67 return $resume_content; 68 } 69 16 70 /** 17 71 * Display list of newsletters -
plugins/newsletter/trunk/inc/class.newsletter.mail.php
r2800 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 168 168 169 169 $subject = mail::B64Header($_subject); 170 $_body = (function_exists('imap_8bit') ? imap_8bit($_body) : $_body); 170 $_body = (function_exists('imap_8bit') ? imap_8bit($_body) : $_body); 171 171 mail::sendMail($_email, $subject, $_body, $headers); 172 172 return true; -
plugins/newsletter/trunk/inc/class.newsletter.mailing.php
r2800 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/inc/class.newsletter.settings.php
r2810 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/inc/class.newsletter.subscriber.php
r2645 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/inc/class.newsletter.subscribers.php
r2800 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 14 14 class newsletterSubscribersList extends adminGenericList 15 15 { 16 /** 17 * Count subscribers 18 */ 19 private static function countSubscribers($state = 'enabled') 20 { 21 $params['state'] = $state; 22 $counter = newsletterCore::getSubscribers($params,true); 23 return $counter->f(0); 24 } 25 26 public static function fieldsetResumeSubscribers() 27 { 28 $state_combo = array(__('pending') => 'pending', 29 __('enabled') => 'enabled', 30 __('suspended') => 'suspended', 31 __('disabled') => 'disabled'); 32 33 $resume_content = 34 '<fieldset>'. 35 '<legend>'.__('Statistics subscribers').'</legend>'. 36 '<table summary="resume" class="minimal">'. 37 '<thead>'. 38 '<tr>'. 39 '<th>'.__('State').'</th>'. 40 '<th>'.__('Count').'</th>'. 41 '</tr>'. 42 '</thead>'. 43 '<tbody id="classes-list">'; 44 45 foreach($state_combo as $k=>$v) { 46 $resume_content .= 47 '<tr class="line">'. 48 '<td>'.$k.'</td>'. 49 '<td>'.self::countSubscribers($v).'</td>'. 50 '</tr>'. 51 ''; 52 } 53 54 $resume_content .= 55 '</tbody>'. 56 '</table>'. 57 '</fieldset>'. 58 ''; 59 60 return $resume_content; 61 } 62 16 63 /** 17 64 * Display data table for subscribers … … 65 112 66 113 echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 67 68 69 114 } 70 115 } -
plugins/newsletter/trunk/inc/class.newsletter.tools.php
r2800 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 201 201 return($str); 202 202 } 203 204 205 /** 206 * Truncates text. 207 * 208 * Cuts a string to the length of $length and replaces the last characters 209 * with the ending if the text is longer than length. 210 * 211 * @param string $text String to truncate. 212 * @param integer $length Length of returned string, including ellipsis. 213 * @param mixed $ending If string, will be used as Ending and appended to the trimmed string. Can also be an associative array that can contain the last three params of this method. 214 * @param boolean $exact If false, $text will not be cut mid-word 215 * @param boolean $considerHtml If true, HTML tags would be handled correctly 216 * @return string Trimmed string. 217 * 218 * Fonction extraite : http://www.ycerdan.fr/php/tronquer-un-texte-en-conservant-les-tags-html-en-php/ 219 */ 220 221 function truncateHtmlString($text, $length = 100, $ending = '...', $exact = true, $considerHtml = false) { 222 if (is_array($ending)) { 223 extract($ending); 224 } 225 if ($considerHtml) { 226 if (mb_strlen(preg_replace('/<.*?>/', '', $text)) <= $length) { 227 return $text; 228 } 229 $totalLength = mb_strlen($ending); 230 $openTags = array(); 231 $truncate = ''; 232 preg_match_all('/(<\/?([\w+]+)[^>]*>)?([^<>]*)/', $text, $tags, PREG_SET_ORDER); 233 foreach ($tags as $tag) { 234 if (!preg_match('/img|br|input|hr|area|base|basefont|col|frame|isindex|link|meta|param/s', $tag[2])) { 235 if (preg_match('/<[\w]+[^>]*>/s', $tag[0])) { 236 array_unshift($openTags, $tag[2]); 237 } else if (preg_match('/<\/([\w]+)[^>]*>/s', $tag[0], $closeTag)) { 238 $pos = array_search($closeTag[1], $openTags); 239 if ($pos !== false) { 240 array_splice($openTags, $pos, 1); 241 } 242 } 243 } 244 $truncate .= $tag[1]; 245 246 $contentLength = mb_strlen(preg_replace('/&[0-9a-z]{2,8};|&#[0-9]{1,7};|&#x[0-9a-f]{1,6};/i', ' ', $tag[3])); 247 if ($contentLength + $totalLength > $length) { 248 $left = $length - $totalLength; 249 $entitiesLength = 0; 250 if (preg_match_all('/&[0-9a-z]{2,8};|&#[0-9]{1,7};|&#x[0-9a-f]{1,6};/i', $tag[3], $entities, PREG_OFFSET_CAPTURE)) { 251 foreach ($entities[0] as $entity) { 252 if ($entity[1] + 1 - $entitiesLength <= $left) { 253 $left--; 254 $entitiesLength += mb_strlen($entity[0]); 255 } else { 256 break; 257 } 258 } 259 } 260 261 $truncate .= mb_substr($tag[3], 0 , $left + $entitiesLength); 262 break; 263 } else { 264 $truncate .= $tag[3]; 265 $totalLength += $contentLength; 266 } 267 if ($totalLength >= $length) { 268 break; 269 } 270 } 271 272 } else { 273 if (mb_strlen($text) <= $length) { 274 return $text; 275 } else { 276 $truncate = mb_substr($text, 0, $length - strlen($ending)); 277 } 278 } 279 if (!$exact) { 280 $spacepos = mb_strrpos($truncate, ' '); 281 if (isset($spacepos)) { 282 if ($considerHtml) { 283 $bits = mb_substr($truncate, $spacepos); 284 preg_match_all('/<\/([a-z]+)>/', $bits, $droppedTags, PREG_SET_ORDER); 285 if (!empty($droppedTags)) { 286 foreach ($droppedTags as $closingTag) { 287 if (!in_array($closingTag[1], $openTags)) { 288 array_unshift($openTags, $closingTag[1]); 289 } 290 } 291 } 292 } 293 $truncate = mb_substr($truncate, 0, $spacepos); 294 } 295 } 296 297 $truncate .= $ending; 298 299 if ($considerHtml) { 300 foreach ($openTags as $tag) { 301 $truncate .= '</'.$tag.'>'; 302 } 303 } 304 305 return $truncate; 306 } 307 308 203 309 204 310 -
plugins/newsletter/trunk/inc/class.template.php
r2800 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/inc/db-schema.php
r2390 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris -
plugins/newsletter/trunk/index.php
r2810 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009-201 0Benoit de Marne.5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 # Many thanks to Association Dotclear and special thanks to Olivier Le Bris … … 13 13 14 14 if (!defined('DC_CONTEXT_ADMIN')) exit; 15 dcPage::check('usage,admin'); 15 //dcPage::check('usage,admin'); 16 dcPage::check('newsletter,contentadmin'); 16 17 17 18 # Settings compatibility test … … 727 728 case 'delete': 728 729 { 730 $letters_id = array(); 729 731 if(!empty($_POST['letters_id'])) $letters_id = $_POST['letters_id']; 730 732 newsletterLettersList::lettersActions($letters_id); … … 843 845 "dotclear.msg.please_wait = '".html::escapeJS(__('Waiting...'))."';\n". 844 846 "dotclear.msg.subscribers_found = '".html::escapeJS(__('%s subscribers found'))."';\n". 847 "dotclear.msg.confirm_delete_subscribers = '".html::escapeJS(__('Are you sure you want to delete selected subscribers?'))."';\n". 845 848 "\n//]]>\n". 846 849 "</script>\n"; … … 856 859 "//<![CDATA[\n". 857 860 "dotclear.msg.confirm_delete_letters = '".html::escapeJS(__('Are you sure you want to delete selected letters?'))."';\n". 861 "dotclear.msg.confirm_delete_subscribers = '".html::escapeJS(__('Are you sure you want to delete selected subscribers?'))."';\n". 858 862 "\n//]]>\n". 859 863 "</script>\n"; … … 927 931 echo '<p><a href="plugin.php?p=newsletter&m=planning" class="multi-part">'.__('Planning').'</a></p>'; 928 932 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 933 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 929 934 } 930 935 break; … … 942 947 echo '<p><a href="plugin.php?p=newsletter&m=planning" class="multi-part">'.__('Planning').'</a></p>'; 943 948 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 949 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 944 950 } 945 951 break; … … 961 967 echo '<p><a href="plugin.php?p=newsletter&m=planning" class="multi-part">'.__('Planning').'</a></p>'; 962 968 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 969 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 963 970 } 964 971 break; … … 979 986 echo '<p><a href="plugin.php?p=newsletter&m=planning" class="multi-part">'.__('Planning').'</a></p>'; 980 987 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 988 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 981 989 } 982 990 break; … … 996 1004 echo '<p><a href="plugin.php?p=newsletter&m=planning" class="multi-part">'.__('Planning').'</a></p>'; 997 1005 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 1006 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 998 1007 } 999 1008 break; … … 1012 1021 echo '<p><a href="plugin.php?p=newsletter&m=planning" class="multi-part">'.__('Planning').'</a></p>'; 1013 1022 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 1023 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 1014 1024 } 1015 1025 break; … … 1027 1037 echo '<p><a href="plugin.php?p=newsletter&m=planning" class="multi-part">'.__('Planning').'</a></p>'; 1028 1038 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 1039 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 1029 1040 } 1030 1041 break; … … 1042 1053 echo '<p><a href="plugin.php?p=newsletter&m=planning" class="multi-part">'.__('Planning').'</a></p>'; 1043 1054 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 1055 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 1044 1056 } 1045 1057 break; … … 1057 1069 echo '</div>'; 1058 1070 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 1071 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 1059 1072 } 1060 1073 break; … … 1072 1085 tabsNewsletter::displayTabMaintenance(); 1073 1086 echo '</div>'; 1087 echo '<p><a href="plugin.php?p=newsletter&m=resume" class="multi-part">'.__('Resume').'</a></p>'; 1074 1088 } 1075 1089 break; 1090 1091 case 'tab_resume': 1092 { 1093 echo '<p><a href="plugin.php?p=newsletter&m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>'; 1094 echo '<p><a href="plugin.php?p=newsletter&m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>'; 1095 echo '<p><a href="plugin.php?p=newsletter&m=letters" class="multi-part">'.__('Letters').'</a></p>'; 1096 echo '<p><a href="plugin.php?p=newsletter&m=messages" class="multi-part">'.__('Messages').'</a></p>'; 1097 echo '<p><a href="plugin.php?p=newsletter&m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>'; 1098 echo '<p><a href="plugin.php?p=newsletter&m=settings" class="multi-part">'.__('Settings').'</a></p>'; 1099 echo '<p><a href="plugin.php?p=newsletter&m=planning" class="multi-part">'.__('Planning').'</a></p>'; 1100 echo '<p><a href="plugin.php?p=newsletter&m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>'; 1101 echo '<div class="multi-part" id="tab_resume" title="'.__('Resume').'">'; 1102 tabsNewsletter::displayTabResume(); 1103 echo '</div>'; 1104 } 1105 break; 1076 1106 1077 1107 default: -
plugins/newsletter/trunk/js/_newsletter.js
r1635 r3006 9 9 var action=$(this).find('select[name="op"]').val(); 10 10 if(action=='remove'){ 11 return window.confirm(dotclear.msg.confirm_delete_ user);11 return window.confirm(dotclear.msg.confirm_delete_subscribers); 12 12 } 13 13 return true; -
plugins/newsletter/trunk/locales/fr/main.lang.php
r2804 r3006 649 649 #inc/class.newsletter.core.php:1029 650 650 $GLOBALS['__l10n'][', by'] = ', par'; 651 $GLOBALS['__l10n']['by'] = 'par'; 651 652 652 653 #inc/class.newsletter.core.php:1092 … … 1060 1061 #index.php:856 1061 1062 $GLOBALS['__l10n']['Are you sure you want to delete selected letters?'] = 'Êtes-vous sûr de vouloir supprimer les lettres sélectionnées?'; 1063 $GLOBALS['__l10n']['Are you sure you want to delete selected subscribers?'] = 'Êtes-vous sûr de vouloir supprimer les abonnés sélectionnés?'; 1062 1064 1063 1065 #index.php:883 … … 1300 1302 $GLOBALS['__l10n']['Error deleting account!'] = 'Erreur lors de la suppression du compte !'; 1301 1303 1304 $GLOBALS['__l10n']['Statistics subscribers'] = 'Statistiques des abonnés'; 1305 1306 $GLOBALS['__l10n']['Statistics letters'] = 'Statistiques des lettres'; 1307 1308 $GLOBALS['__l10n']['Statistics sending letters'] = 'Statistiques des envois de lettres'; 1309 1310 $GLOBALS['__l10n']['Count'] = 'Total'; 1311 1302 1312 ?> -
plugins/newsletter/trunk/locales/fr/main.po
r2804 r3006 773 773 msgstr "<strong>Attention :</strong> vous êtes priés de sauvegarder votre base de données avant d'utiliser cette option" 774 774 775 msgid "Statistics subscribers" 776 msgstr "Statistiques des abonnés" 777 778 msgid "Statistics letters" 779 msgstr "Statistiques des lettres" 780 781 msgid "Statistics sending letters" 782 msgstr "Statistiques des envois de lettres" 783 784 msgid "Count" 785 msgstr "Total" 786 775 787 #: inc/class.newsletter.admin.php:1261 776 788 #: inc/class.newsletter.admin.php:1262 … … 846 858 msgstr ", par" 847 859 860 msgid "by" 861 msgstr "par" 862 863 848 864 #: inc/class.newsletter.core.php:1092 849 865 #: inc/class.newsletter.core.php:1336 … … 1377 1393 msgid "Are you sure you want to delete selected letters?" 1378 1394 msgstr "Êtes-vous sûr de vouloir supprimer les lettres sélectionnées?" 1395 1396 msgid "Are you sure you want to delete selected subscribers?" 1397 msgstr "Êtes-vous sûr de vouloir supprimer les abonnés sélectionnés?" 1379 1398 1380 1399 #: index.php:883 -
plugins/newsletter/trunk/locales/fr/resources.php
r2021 r3006 3 3 # This file is part of Newsletter, a plugin for Dotclear. 4 4 # 5 # Copyright (c) 2009 Benoit de Marne5 # Copyright (c) 2009-2011 Benoit de Marne. 6 6 # benoit.de.marne@gmail.com 7 7 #
Note: See TracChangeset
for help on using the changeset viewer.