| 1 | #!/usr/bin/php |
|---|
| 2 | <? |
|---|
| 3 | include ('../includes/includes.inc.php'); |
|---|
| 4 | include ('../includes/config/global.inc.php'); |
|---|
| 5 | |
|---|
| 6 | $db =& DB::connect($dsn); |
|---|
| 7 | if (DB::isError($db)) |
|---|
| 8 | error_log($_SERVER['HTTP_HOST'].' | '.__FILE__.' | Connexion SQL impossible : '.$db->getMessage()); |
|---|
| 9 | |
|---|
| 10 | $db->setFetchMode(DB_FETCHMODE_ASSOC); |
|---|
| 11 | |
|---|
| 12 | $messages_r = $db->query('SELECT id, id_mess, id_from, from_str, type, dest, subject, message, date FROM message WHERE box=? ORDER BY id_from', 'outbox'); |
|---|
| 13 | while($message = $messages_r->fetchRow()) |
|---|
| 14 | { |
|---|
| 15 | switch($message['dest']) |
|---|
| 16 | { |
|---|
| 17 | case 'one': |
|---|
| 18 | $message_values= array ( |
|---|
| 19 | 'dest' => $message['dest'], |
|---|
| 20 | 'id' => $message['id'], |
|---|
| 21 | 'subject' => $message['subject'], |
|---|
| 22 | 'message' => $message['message'], |
|---|
| 23 | 'date' => $message['date'], |
|---|
| 24 | 'id_from' => $message['id_from'], |
|---|
| 25 | 'from_str' => $message['from_str'], |
|---|
| 26 | 'type' => 'message', |
|---|
| 27 | 'box' => 'inbox' ); |
|---|
| 28 | $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT); |
|---|
| 29 | |
|---|
| 30 | $message_values['box'] = 'send'; |
|---|
| 31 | $message_values['flag'] = 'read'; |
|---|
| 32 | $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT); |
|---|
| 33 | |
|---|
| 34 | $db->query('DELETE FROM message WHERE id_mess=?', $message['id_mess']); |
|---|
| 35 | |
|---|
| 36 | if(get_setting($message['id'], 'messages_sent_directly_to_me') == 'email') |
|---|
| 37 | auto_mail( $message['id_from'], |
|---|
| 38 | $message['id'], |
|---|
| 39 | $message['subject'], |
|---|
| 40 | $message['message'] |
|---|
| 41 | ); |
|---|
| 42 | break; |
|---|
| 43 | |
|---|
| 44 | case 'friends': |
|---|
| 45 | $friends_id = split(',', $db->getOne("SELECT friends_id FROM cache_user WHERE id='".$message['id_from']."'")); |
|---|
| 46 | |
|---|
| 47 | foreach($friends_id as $friend_id) |
|---|
| 48 | { |
|---|
| 49 | $message_values= array ( |
|---|
| 50 | 'dest' => $message['dest'], |
|---|
| 51 | 'id' => $friend_id, |
|---|
| 52 | 'subject' => $message['subject'], |
|---|
| 53 | 'message' => $message['message'], |
|---|
| 54 | 'date' => $message['date'], |
|---|
| 55 | 'id_from' => $message['id_from'], |
|---|
| 56 | 'from_str' => $message['from_str'], |
|---|
| 57 | 'type' => 'message', |
|---|
| 58 | 'box' => 'inbox' ); |
|---|
| 59 | |
|---|
| 60 | $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT); |
|---|
| 61 | |
|---|
| 62 | if(get_setting($message['id'], 'messages_sent_to_friends') == 'email') |
|---|
| 63 | auto_mail( $message['id_from'], |
|---|
| 64 | $friend_id, |
|---|
| 65 | $message['subject'], |
|---|
| 66 | $message['message'] |
|---|
| 67 | ); |
|---|
| 68 | |
|---|
| 69 | } |
|---|
| 70 | |
|---|
| 71 | unset($message_values['id']); |
|---|
| 72 | $message_values['box'] = 'send'; |
|---|
| 73 | $message_values['flag'] = 'read'; |
|---|
| 74 | $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT); |
|---|
| 75 | |
|---|
| 76 | $db->query('DELETE FROM message WHERE id_mess=?', $message['id_mess']); |
|---|
| 77 | |
|---|
| 78 | break; |
|---|
| 79 | |
|---|
| 80 | case 'friends_of_friends': |
|---|
| 81 | $friends_list = $db->getOne("SELECT friends_id FROM cache_user WHERE id='".$message['id_from']."'"); |
|---|
| 82 | $foaf_id = split(',', $friends_list); |
|---|
| 83 | $foaf_id[] = $message['id_from']; |
|---|
| 84 | |
|---|
| 85 | foreach($foaf_id as $key=>$value) |
|---|
| 86 | { |
|---|
| 87 | $foaf_id2[$key] = "'$value'"; |
|---|
| 88 | } |
|---|
| 89 | $foaf_id = implode(',',$foaf_id2); |
|---|
| 90 | |
|---|
| 91 | $foaf_id = $db->getCol('SELECT DISTINCT relation.id_friend FROM relation LEFT JOIN user ON relation.id_friend = user.id WHERE relation.id IN ('.$foaf_id.') AND relation.id_friend <>?',0, $message['id_from']); |
|---|
| 92 | |
|---|
| 93 | foreach($foaf_id as $friend_id) |
|---|
| 94 | { |
|---|
| 95 | $message_values= array ( |
|---|
| 96 | 'dest' => $message['dest'], |
|---|
| 97 | 'id' => $friend_id, |
|---|
| 98 | 'subject' => $message['subject'], |
|---|
| 99 | 'message' => $message['message'], |
|---|
| 100 | 'date' => $message['date'], |
|---|
| 101 | 'id_from' => $message['id_from'], |
|---|
| 102 | 'from_str' => $message['from_str'], |
|---|
| 103 | 'type' => 'message', |
|---|
| 104 | 'box' => 'inbox' ); |
|---|
| 105 | $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT); |
|---|
| 106 | |
|---|
| 107 | if(get_setting($message['id'], 'messages_sent_to_friends_of_friends') == 'email') |
|---|
| 108 | auto_mail( $message['id_from'], |
|---|
| 109 | $friend_id, |
|---|
| 110 | $message['subject'], |
|---|
| 111 | $message['message'] |
|---|
| 112 | ); |
|---|
| 113 | |
|---|
| 114 | |
|---|
| 115 | } |
|---|
| 116 | |
|---|
| 117 | unset($message_values['id']); |
|---|
| 118 | $message_values['box'] = 'send'; |
|---|
| 119 | $message_values['flag'] = 'read'; |
|---|
| 120 | $db->autoExecute("message", $message_values, DB_AUTOQUERY_INSERT); |
|---|
| 121 | |
|---|
| 122 | $db->query('DELETE FROM message WHERE id_mess=?', $message['id_mess']); |
|---|
| 123 | |
|---|
| 124 | break; |
|---|
| 125 | } |
|---|
| 126 | } |
|---|
| 127 | |
|---|
| 128 | $db->disconnect(); |
|---|
| 129 | ?> |
|---|