Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour
Voici mon problème:
Nous recevons des notes de service par Mel, je veux les stocker sur un forum.
Carrière
Orientation etc....
Je vais créer des catégories etc
Je voudrais que la secrétaire puisse les poster directement de la messagerie sur le forum en transférant.
Est ce possible avec fluxbb ?
Je peux le faire avec tumblr mais c'est pas top....Evernote aussi mais pas de classement....
Postie le fait avec wordpress mais pas de catégorie.
Merci
Hors ligne
Je voudrais que la secrétaire puisse les poster directement de la messagerie sur le forum en transférant.
Est ce possible avec fluxbb ?
Bonjour,
De base, NON.
Et je ne me souviens pas d'une mod le permettant…
=> donc développement spécifique…
(me semble assez compliqué).
Hors ligne
Si vous avez les fonctions imap ( et une adresse email qui serait accessible par imap, par exemple moi j'ai utilisé gmail ), vous pourriez surement ajouter ceci à la fin de include/common.php :
// Pour que le fichier soit checké juste une fois sur 20 affichages de page
if(!rand(0,20))
{
$mail= array(
// Le fichier dans lequel sera écrit la dernière date de vérification
'file' => PUN_ROOT.'MAIL_LAST_CHECK.txt',
// Le host imap ou pop3, ici par exemple pour gmail
'host' => '{imap.gmail.com:993/imap/ssl}INBOX',
// Le nom d'utilisateur sur le client mail
'username' => 'nom-utilisateur',
// Le mot de passe sur le client mail
'password' => 'mot-de-passe',
// Le numéro du forum dans lequel les nouveaux sujets devront être postés
'forum_id' => 13,
// Le nombre de minute minimum ( si personne ne va sur le forum pendant 3 mois il n'y aura pas de vérif ) entre 2 vérif de nouveau mail
'sync_min' => 10,
// Le nom du posteur
'poster' => 'Secrétaire'
);
// Si le fichier indiquant la dernière date de réception de mail n'existe pas on le crée avec 0 comme valeur
if(!file_exists($mail['file']))
{
$fp= fopen($mail['file'],'w');
fwrite($fp,'0');
fclose($fp);
}
// Sinon on check
else
{
// On ouvre et lock le fichier avec la date de dernier check
$fp= fopen($mail['file'],'r+');
flock($fp,LOCK_EX);
$mail['last_check']= intval(fread($fp, filesize($mail['file'])));
// Si c'est plus que sync min on check les nouveaux mails
if($mail['last_check']<time()-(60*$mail['sync_min']))
{
// On met à jour la date de dernier check
rewind($fp);
fwrite($fp,time());
fclose($fp);
if($inbox=@imap_open($mail['host'], $mail['username'], $mail['password']))
{
// On prend les emails depuis la dernière date de vérification, et on prend seulement les non lu
$emails= imap_search($inbox,'SINCE "'.date('Y-m-d',$mail['last_check']).'" UNSEEN');
if($emails) foreach($emails as $email_number){
$message_overview = imap_fetch_overview($inbox,$email_number,0);
// Ce dont on a besoin pour poster le sujet
$cur_mail= array(
'subject' => imap_utf8($message_overview[0]->subject),
'message' => quoted_printable_decode(imap_fetchbody($inbox,$email_number,1)),
'date' => strtotime($message_overview[0]->date),
'now' => time()
);
// On insère le sujet avec la date actuel ( pour que les membres voient que c'est nouveau )
if($db->query('INSERT INTO '.$db->prefix.'topics (poster, subject, posted, last_post, last_poster, sticky, forum_id) VALUES(\''.$db->escape($mail['poster']).'\', \''.$db->escape($cur_mail['subject']).'\', '.$cur_mail['now'].', '.$cur_mail['now'].', \''.$db->escape($mail['poster']).'\', 0, '.$mail['forum_id'].')'))
{
$new_tid = $db->insert_id();
// On insère le message avec la bonne date ( pour que la bonne date d'envoi du mail y soit )
if($db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_ip, poster_email, message, hide_smilies, posted, topic_id) VALUES(\''.$db->escape($mail['poster']).'\', \'127.0.0.1\', NULL, \''.$db->escape($cur_mail['message']).'\', 1, '.$cur_mail['date'].', '.$new_tid.')'))
{
$new_pid = $db->insert_id();
// On met à jour le topic avec le dernier message ( qu'on vient de poster )
$db->query('UPDATE '.$db->prefix.'topics SET last_post_id='.$new_pid.', first_post_id='.$new_pid.' WHERE id='.$new_tid) or error('Unable to update topic', __FILE__, __LINE__, $db->error());
if(!function_exists('update_search_index'))
require PUN_ROOT.'include/search_idx.php';
update_search_index('post', $new_pid, $cur_mail['message'], $cur_mail['subject']);
update_forum($mail['forum_id']);
}
}
}
}
}
else
fclose($fp);
}
unset($mail);
}donc ça prendrait les nouveaux messages ( pas encore "vu" ) et ça les mettrais dans la section voulue ( en tant qu'invité avec le pseudo voulu ), j'ai testé avec un compte gmail et ça marchait.
Hors ligne
Pages : 1