<?php
/***************************************************************************
- * Copyright (C) 2003-2009 Polytechnique.org *
+ * Copyright (C) 2003-2010 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
$page->setTitle('Lettres mensuelles');
switch ($action) {
- case 'out': Newsletter::unsubscribe(); break;
- case 'in': Newsletter::subscribe(); break;
+ case 'out': NewsLetter::unsubscribe(); break;
+ case 'in': NewsLetter::subscribe(); break;
default: ;
}
- $page->assign('nls', Newsletter::subscriptionState());
- $page->assign('nl_list', Newsletter::listSent());
+ $page->assign('nls', NewsLetter::subscriptionState());
+ $page->assign('nl_list', NewsLetter::listSent());
}
function handler_nl_show(&$page, $nid = 'last')
try {
$nl = new NewsLetter($nid);
+ $user =& S::user();
if (Get::has('text')) {
- $nl->toText($page, S::v('prenom'), S::v('nom'), S::v('femme'));
+ $nl->toText($page, $user);
} else {
- $nl->toHtml($page, S::v('prenom'), S::v('nom'), S::v('femme'));
+ $nl->toHtml($page, $user);
}
if (Post::has('send')) {
- $res = XDB::query("SELECT hash
- FROM newsletter_ins
- WHERE user_id = {?}",
- S::i('uid'));
- $nl->sendTo(S::user()->login(), S::user()->bestEmail(),
- S::v('prenom'), S::v('nom'),
- S::v('femme'), S::v('mail_fmt') != 'texte',
- $res->fetchOneCell());
+ $nl->sendTo($user);
}
} catch (MailNotFound $e) {
return PL_NOT_FOUND;
require_once("newsletter.inc.php");
if($new) {
- Newsletter::create();
+ NewsLetter::create();
pl_redirect("admin/newsletter");
}
- $page->assign('nl_list', Newsletter::listAll());
+ $page->assign('nl_list', NewsLetter::listAll());
}
function handler_admin_nl_edit(&$page, $nid = 'last', $aid = null, $action = 'edit') {
$page->changeTpl('newsletter/edit.tpl');
$page->addCssLink('nl.css');
- $page->setTitle('Administration - Newsletter : Edition');
- require_once("newsletter.inc.php");
+ $page->setTitle('Administration - Newsletter : Édition');
+ require_once 'newsletter.inc.php';
- $nl = new NewsLetter($nid);
+ $nl = new NewsLetter($nid);
if($action == 'delete') {
$nl->delArticle($aid);
}
if($aid == 'update') {
- $nl->_title = Post::v('title');
- $nl->_title_mail= Post::v('title_mail');
- $nl->_date = Post::v('date');
- $nl->_head = Post::v('head');
- $nl->_shortname = strlen(Post::v('shortname')) ? Post::v('shortname') : null;
+ $nl->_title = Post::v('title');
+ $nl->_title_mail = Post::v('title_mail');
+ $nl->_date = Post::v('date');
+ $nl->_head = Post::v('head');
+ $nl->_shortname = strlen(Post::v('shortname')) ? Post::v('shortname') : null;
if (preg_match('/^[-a-z0-9]*$/i', $nl->_shortname) && !is_numeric($nl->_shortname)) {
$nl->save();
} else {
- $page->trigError('Le nom de la NL n\'est pas valide');
+ $page->trigError("Le nom de la NL n'est pas valide.");
pl_redirect('admin/newsletter/edit/' . $nl->_id);
}
}
if(Post::v('save')) {
$art = new NLArticle(Post::v('title'), Post::v('body'), Post::v('append'),
- $aid, Post::v('cid'), Post::v('pos'));
+ $aid, Post::v('cid'), Post::v('pos'));
$nl->saveArticle($art);
pl_redirect("admin/newsletter/edit/$nid");
}
- if($action == 'edit' && $aid != 'update') {
+ if ($action == 'edit' && $aid != 'update') {
$eaid = $aid;
- if(Post::has('title')) {
+ if (Post::has('title')) {
$art = new NLArticle(Post::v('title'), Post::v('body'), Post::v('append'),
- $eaid, Post::v('cid'), Post::v('pos'));
+ $eaid, Post::v('cid'), Post::v('pos'));
} else {
- $art = ($eaid == 'new') ? new NLArticle() : $nl->getArt($eaid);
+ $art = ($eaid == 'new') ? new NLArticle() : $nl->getArt($eaid);
+ }
+ if ($art && !$art->check()) {
+ $page->trigError("Cet article est trop long.");
}
$page->assign('art', $art);
}
- $page->assign_by_ref('nl',$nl);
+ if ($aid == 'blacklist_check') {
+ global $globals;
+ $ips_to_check = array();
+ $blacklist_host_resolution_count = 0;
+
+ foreach ($nl->_arts as $key => $articles) {
+ foreach ($articles as $article) {
+ $article_ips = $article->getLinkIps($blacklist_host_resolution_count);
+ if (!empty($article_ips)) {
+ $ips_to_check[$article->title()] = $article_ips;
+ }
+ }
+ }
+
+ $page->assign('ips_to_check', $ips_to_check);
+ if ($blacklist_host_resolution_count >= $globals->mail->blacklist_host_resolution_limit) {
+ $page->trigError("Toutes les url et adresses emails de la lettre"
+ . " n'ont pas été prises en compte car la"
+ . " limite du nombre de résolutions DNS"
+ . " autorisée a été atteinte.");
+ }
+ }
+
+ $page->assign_by_ref('nl', $nl);
}
function handler_admin_nl_cat(&$page, $action = 'list', $id = null) {