488e04701472a20f08a22a57c2a09f0891eeb31d
[banana.git] / thread.php
1 <?php
2 /********************************************************************************
3 * thread.php : group overview
4 * ------------
5 *
6 * This file is part of the banana distribution
7 * Copyright: See COPYING files that comes with this distribution
8 ********************************************************************************/
9
10 require_once("include/banana.inc.php");
11 require_once("include/header.inc.php");
12
13 if (isset($_REQUEST['group'])) {
14 $group = htmlentities(strtolower($_REQUEST['group']));
15 } else {
16 $group = htmlentities(strtolower(strtok(str_replace(" ","",$_REQUEST['newsgroups']),",")));
17 }
18
19 if (isset($_REQUEST['id'])) {
20 $id=htmlentities(strtolower($_REQUEST['id']));
21 }
22
23 echo $banana->action_showThread($group, $_REQUEST['first'] ? $_REQUEST['first'] : 1);
24
25 if (isset($_REQUEST['action']) && (isset($_REQUEST['type']))
26 && (isset($_SESSION['bananapostok'])) && ($_SESSION['bananapostok']))
27 {
28 switch ($_REQUEST['type']) {
29 case 'cancel':
30 $mid = array_search($id, $banana->spool->ids);
31 $banana->newPost($id);
32
33 if ($banana->post && $banana->post->checkcancel()) {
34 $message = 'From: '.$banana->profile['name']."\n"
35 ."Newsgroups: $group\n"
36 ."Subject: cmsg $mid\n"
37 .$banana->custom
38 ."Control: cancel $mid\n"
39 ."\n"
40 ."Message canceled with Banana";
41 if ($banana->nntp->post($message)) {
42 $banana->spool->delid($id);
43 $text = "<p class=\"normal\">"._b_('Message annulé')."</p>";
44 } else {
45 $text = "<p class=\"error\">"._b_('Impossible d\'annuler le message')."</p>";
46 }
47 } else {
48 $text = "<p class=\"error\">\n\t"._b_('Vous n\'avez pas les permissions pour annuler ce message')."\n</p>";
49 }
50 break;
51
52 case 'new':
53 $body = preg_replace("/\n\.[ \t\r]*\n/m","\n..\n",$_REQUEST['body']);
54 $message = 'From: '.$banana->profile['name']."\n"
55 ."Newsgroups: ".str_replace(" ","", $_REQUEST['newsgroups'])."\n"
56 ."Subject: ".$_REQUEST['subject']."\n"
57 .(isset($banana->profile['org'])?"Organization: ".$banana->profile['org']."\n":"")
58 .($_REQUEST['followup']!=''?'Followup-To: '.$_REQUEST['followup']."\n":"")
59 .$banana->custom
60 ."\n"
61 .wrap($body, "", $banana->wrap);
62 if ($banana->nntp->post($message)) {
63 $text = "<p class=\"normal\">"._b_('Message posté')."</p>";
64 } else {
65 $text = "<p class=\"error\">"._b_('Impossible de poster le message')."</p>";
66 }
67 break;
68
69 case 'followupok':
70 $banana->newPost($id);
71 if ($banana->post) {
72 $refs = (isset($banana->post->headers['references'])?
73 $banana->post->headers['references']." ":"").$banana->post->headers['message-id'];
74 }
75
76 $body = preg_replace("/\n\.[ \t\r]*\n/m","\n..\n",$_REQUEST['body']);
77 $message = 'From: '.$banana->profile['name']."\n"
78 ."Newsgroups: ".$_REQUEST['newsgroups']."\n"
79 ."Subject: ".$_REQUEST['subject']."\n"
80 .(isset($banana->profile['org'])?"Organization: ".$banana->profile['org']."\n":"")
81 .($_REQUEST['followup']!=''?'Followup-To: '.$_REQUEST['followup']."\n":"")
82 ."References: $refs\n"
83 .$banana->custom
84 .$banana->profile['customhdr']
85 ."\n"
86 .wrap($body, "", $banana->wrap);
87 if ($banana->nntp->post($message)) {
88 $text = "<p class=\"normal\">"._b_('Message posté')."</p>";
89 } else {
90 $text = "<p class=\"error\">"._b_('Impossible de poster le message')."</p>";
91 }
92 break;
93 }
94 $_SESSION['bananapostok']=false;
95 $banana->newSpool($group, $banana->profile['display'], $banana->profile['lastnews']);
96 }
97
98 require_once("include/footer.inc.php");
99 ?>