Add article submission system for community letter
[platal.git] / include / comletter.inc.php
1 <?php
2 /***************************************************************************
3 * Copyright (C) 2003-2013 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22 // {{{ class ComLArticle
23
24 class ComLArticle
25 {
26 // {{{ properties
27
28 public $aid;
29 public $cid;
30 public $pos;
31 public $title;
32 public $body;
33 public $append;
34
35 // }}}
36 // {{{ constructor
37
38 function __construct($title='', $body='', $append='', $aid=-1, $cid=0, $pos=0)
39 {
40 $this->body = $body;
41 $this->title = $title;
42 $this->append = $append;
43 $this->aid = $aid;
44 $this->cid = $cid;
45 $this->pos = $pos;
46 }
47
48 // }}}
49 // {{{ function title()
50
51 public function title()
52 { return trim($this->title); }
53
54 // }}}
55 // {{{ function body()
56
57 public function body()
58 { return trim($this->body); }
59
60 // }}}
61 // {{{ function append()
62
63 public function append()
64 { return trim($this->append); }
65
66 // }}}
67 // {{{ function toText()
68
69 public function toText($hash = null, $login = null)
70 {
71 $title = '*'.$this->title().'*';
72 $body = MiniWiki::WikiToText($this->body, true);
73 $app = MiniWiki::WikiToText($this->append, false, 4);
74 $text = trim("$title\n\n$body\n\n$app")."\n";
75 if (!is_null($hash) && !is_null($login)) {
76 $text = str_replace('%HASH%', "$hash/$login", $text);
77 } else {
78 $text = str_replace('%HASH%', '', $text);
79 }
80 return $text;
81 }
82
83 // }}}
84 // {{{ function toHtml()
85
86 public function toHtml($hash = null, $login = null)
87 {
88 $title = "<h2 class='xorg_nl'><a id='art{$this->aid}'></a>".pl_entities($this->title()).'</h2>';
89 $body = MiniWiki::WikiToHTML($this->body);
90 $app = MiniWiki::WikiToHTML($this->append);
91
92 $art = "$title\n";
93 $art .= "<div class='art'>\n$body\n";
94 if ($app) {
95 $art .= "<div class='app'>$app</div>";
96 }
97 $art .= "</div>\n";
98 if (!is_null($hash) && !is_null($login)) {
99 $art = str_replace('%HASH%', "$hash/$login", $art);
100 } else {
101 $art = str_replace('%HASH%', '', $art);
102 }
103
104 return $art;
105 }
106
107 // }}}
108 }
109
110 // }}}
111
112 // vim:set et sw=4 sts=4 sws=4 enc=utf-8:
113 ?>