- $refs = ( isset($post->headers['references']) ? $post->headers['references']." " : "" );
- $msg .= "References: $refs{$post->headers['message-id']}\n";
- }
-
- $body_headers = $this->custom_plain;
- $body = wrap($body, "");
-
- // include attachment in the body
- $uploaded = $this->_upload('newpj');
- switch ($uploaded['error']) {
- case UPLOAD_ERR_OK:
- $this->custom = $this->custom_mp.$this->custom;
- $body = $this->_make_part($body_headers, $body);
- $file_head = 'Content-Type: '.$uploaded['type'].'; name="'.$uploaded['name']."\"\n"
- . 'Content-Transfer-Encoding: '.$uploaded['encoding']."\n"
- . 'Content-Disposition: attachment; filename="'.$uploaded['name']."\"\n";
- $body .= $this->_make_part($file_head, $uploaded['data']);
- $body .= "\n--".$this->boundary.'--';
- break;
-
- case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE:
- return '<p class="error">'._b_('Fichier trop gros pour être envoyé : ')
- .$uploaded['name'].'</p>'.$this->action_showThread($group, $artid);
-
- case UPLOAD_ERR_PARTIAL:
- return '<p class="error">'._b_('Erreur lors de l\'upload de ')
- .$uploaded['name'].'</p>'.$this->action_showThread($group, $artid);
-
- case UPLOAD_ERR_NO_FILE:
- return '<p class="error">'._b_('Le fichier spécifié n\'existe pas : ')
- .$uploaded['name'].'</p>'.$this->action_showThread($group, $artid);
-
- case UPLOAD_ERR_NO_TMP_DIR:
- return '<p class="error">'._b_('Une erreur est survenue sur le serveur lors de l\'upload de ')
- .$uploaded['name'].'</p>'.$this->action_showThread($group, $artid);
-
- default:
- $this->custom = $body_headers.$this->custom;
- }
-
- // finalise and post the message
- $msg .= $this->custom.$this->profile['customhdr']."\n".$body;
-
- if ($this->nntp->post($msg)) {
- $dir = Array('group' => $group);
- if ($artid != -1) {
- $dir['first'] = $artid;
+ $msg = null;
+ if (empty($hdr_values['Subject'])) {
+ Banana::$page->trig(_b_('Le message doit avoir un sujet'));
+ } elseif (Banana::$msgedit_canattach && isset($_FILES['attachment'])) {
+ $uploaded = $_FILES['attachment'];
+ if (!is_uploaded_file($uploaded['tmp_name'])) {
+ Banana::$page->trig(_b_('Une erreur est survenue lors du téléchargement du fichier'));
+ } else {
+ $msg = BananaMessage::newMessage($hdr_values, $_POST['body'], $uploaded);
+ }
+ } else {
+ $msg = BananaMessage::newMessage($hdr_values, $_POST['body']);
+ }
+ if (!is_null($msg)) {
+ if (Banana::$protocole->send($msg)) {
+ Banana::$page->redirect(array('group' => $group, 'artid' => $artid));
+ }
+ Banana::$page->trig(_b_('Une erreur est survenue lors de l\'envoi du message :') . '<br />'
+ . Banana::$protocole->lastError());