X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fcomletter.php;h=9c759c5551add28bd69c3950bc3243c0c4b73a8d;hb=27492fde1b530ce8631dea8b408e7e09231d966a;hp=103adefd6baac4c34981945153635e4285a66edb;hpb=26cba39a939c4a9eb60b88a9bf71f1737d14e3f0;p=platal.git diff --git a/modules/comletter.php b/modules/comletter.php index 103adef..9c759c5 100644 --- a/modules/comletter.php +++ b/modules/comletter.php @@ -1,6 +1,6 @@ $this->make_hook('nl', AUTH_COOKIE, 'user'), + 'comletter/submit' => $this->make_hook('coml_submit', AUTH_PASSWD, 'user'), + 'comletter/remaining' => $this->make_hook('coml_remaining', AUTH_PASSWD, 'user'), 'comletter/out' => $this->make_hook('out', AUTH_PUBLIC), 'comletter/show' => $this->make_hook('nl_show', AUTH_COOKIE, 'user'), 'comletter/search' => $this->make_hook('nl_search', AUTH_COOKIE, 'user'), @@ -49,6 +52,46 @@ class ComLetterModule extends NewsletterModule return NewsLetter::forGroup(NewsLetter::GROUP_COMMUNITY); } + function handler_coml_submit($page) + { + $page->changeTpl('comletter/submit.tpl'); + + $nl = $this->getNl(); + if (!$nl) { + return PL_NOT_FOUND; + } + + $wp = new PlWikiPage('Xorg.LettreCommunaute'); + $wp->buildCache(); + + if (Post::has('see') || (Post::has('valid') && (!trim(Post::v('title')) || !trim(Post::v('body'))))) { + if (!Post::has('see')) { + $page->trigError("L'article doit avoir un titre et un contenu"); + } + $art = new ComLArticle(Post::v('title'), Post::v('body'), Post::v('append')); + $page->assign('art', $art); + } elseif (Post::has('valid')) { + $art = new ComLReq(S::user(), Post::v('title'), + Post::v('body'), Post::v('append')); + $art->submit(); + $page->assign('submited', true); + } + $page->addCssLink($nl->cssFile()); + } + + function handler_coml_remaining($page) + { + pl_content_headers('text/html'); + $page->changeTpl('newsletter/remaining.tpl', NO_SKIN); + + $article = new ComLArticle('', Post::t('body'), ''); + $rest = $article->remain(); + + $page->assign('too_long', $rest['remaining_lines'] < 0); + $page->assign('last_line', ($rest['remaining_lines'] == 0)); + $page->assign('remaining', ($rest['remaining_lines'] == 0) ? $rest['remaining_characters_for_last_line'] : $rest['remaining_lines']); + } + function handler_out($page, $hash = null, $issue_id = null) { if (!$hash) { @@ -60,5 +103,5 @@ class ComLetterModule extends NewsletterModule } } -// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8: ?>