class Banana
{
var $maxspool = 3000;
- var $maxfilesize = 100000;
var $hdecode = array('from','name','organization','subject');
var $parse_hdr = array('content-disposition', 'content-transfer-encoding', 'content-type', 'date', 'followup-to', 'from',
/** Favorites MIMEtypes to use, by order for reading multipart messages
*/
var $body_mime = array('text/plain', 'text/html', 'text/richtext');
+ /** Indicate wether posting attachment is allowed
+ */
+ var $can_attach = true;
+ /** Maximum allowed file size for attachment
+ */
+ var $maxfilesize = 100000;
+ /** Indicate wether posting html messages is allowed
+ */
+ var $can_html = false;
+
+ /** Regexp for selecting newsgroups to show (if empty, match all newsgroups)
+ * ex : '^xorg\..*' for xorg.*
+ */
+ var $grp_pattern;
var $tbefore = 5;
var $tafter = 5;
var $wrap = 74;
+ /** Boundary for multipart messages
+ */
var $boundary = "bananaBoundary42";
+ /** Global headers to use for text/plain messages
+ */
var $custom = "Content-Type: text/plain; charset=utf-8\nMime-Version: 1.0\nContent-Transfer-Encoding: 8bit\nUser-Agent: Banana @VERSION@\n";
+ /** Global headers to use from multipart messages
+ */
var $custom_mp = "Content-Type: multipart/mixed; boundary=\"bananaBoundary42\"\nContent-Transfer-Encoding: 7bit\nUser-Agent: Banana @VERSION@\n";
+ /** Body part headers to use from multipart messages
+ */
var $custom_bd = "Content-Type: text/plain; charset=utf-8\nContent-Transfert-Encoding: 8bit";
+ /** News serveur to use
+ */
var $host = 'news://localhost:119/';
+ /** User profile
+ */
var $profile = Array( 'name' => 'Anonymous <anonymouse@example.com>', 'sig' => '', 'org' => '',
'customhdr' =>'', 'display' => 0, 'lastnews' => 0, 'locale' => 'fr_FR', 'subscribe' => array());
function run($class = 'Banana')
{
global $banana;
+
Banana::_require('misc');
$banana = new $class();
if (isset($_GET['action']) && $_GET['action'] == 'view') {
$action = true;
}
- return $banana->action_getAttachment($group, $artid, $_GET['pj'], $action);
+ $att = $banana->action_getAttachment($group, $artid, $_GET['pj'], $action);
+ if ($att != "") {
+ return $res.$att;
+ }
+ return "";
}
return $res . $banana->action_showArticle($group, $artid, $partid);
// include attachment in the body
$uploaded = $this->_upload('newpj');
- if ($uploaded['error'] == 0) {
- $this->custom = $this->custom_mp;
- $body = "\n--".$this->boundary."\n".$this->custom_bd."\n\n".$body."\n--".$this->boundary."\n";
-
- $body .= 'Content-Type: '.$uploaded['type'].'; name="'.$uploaded['name']."\"\n";
- $body .= 'Content-Transfer-Encoding: '.$uploaded['encoding']."\n\n";
- $body .= 'Content-Disposition: attachment; filename="'.$uploaded['name']."\"\n";
- $body .= $uploaded['data'];
- $body .= '--'.$this->boundary.'--';
+ switch ($uploaded['error']) {
+ case UPLOAD_ERR_OK:
+ $this->custom = $this->custom_mp;
+ $body = "\n--".$this->boundary."\n".$this->custom_bd."\n\n".$body."\n--".$this->boundary."\n";
+
+ $body .= 'Content-Type: '.$uploaded['type'].'; name="'.$uploaded['name']."\"\n";
+ $body .= 'Content-Transfer-Encoding: '.$uploaded['encoding']."\n\n";
+ $body .= 'Content-Disposition: attachment; filename="'.$uploaded['name']."\"\n";
+ $body .= $uploaded['data'];
+ $body .= '--'.$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);
}
- #TODO:afficher les erreurs lorsque l'upload ne marche pas
// finalise and post the message
$msg .= $this->custom.$this->profile['customhdr']."\n".$body;