Changeset 93618 in spip-zone
- Timestamp:
- Dec 13, 2015, 11:48:12 AM (5 years ago)
- Location:
- _core_/plugins/organiseur
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
_core_/plugins/organiseur/action/effacer_messagerecu.php
r93092 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 … … 19 21 * @return void 20 22 */ 21 function action_effacer_messagerecu_dist($id_auteur = null, $id_message = null) {22 if (is_null($id_auteur) OR is_null($id_message)) {23 $securiser_action = charger_fonction('securiser_action', 'inc');23 function action_effacer_messagerecu_dist($id_auteur = null, $id_message = null) { 24 if (is_null($id_auteur) OR is_null($id_message)) { 25 $securiser_action = charger_fonction('securiser_action', 'inc'); 24 26 $arg = $securiser_action(); 25 list($id_auteur, $id_message) = explode('-',$arg);27 list($id_auteur, $id_message) = explode('-', $arg); 26 28 } 27 29 28 30 29 31 include_spip('inc/autoriser'); 30 if (autoriser('effacer', 'messagerecu',$id_message,null,array('id_auteur'=>$id_auteur))){32 if (autoriser('effacer', 'messagerecu', $id_message, null, array('id_auteur' => $id_auteur))) { 31 33 include_spip('inc/messages'); 32 messagerie_effacer_message_recu($id_auteur, $id_message);34 messagerie_effacer_message_recu($id_auteur, $id_message); 33 35 } 34 36 } -
_core_/plugins/organiseur/action/envoyer_message.php
r93092 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 … … 18 20 * @return void 19 21 */ 20 function action_envoyer_message_dist($id_message = null) {22 function action_envoyer_message_dist($id_message = null) { 21 23 22 if (is_null($id_message)) {23 $securiser_action = charger_fonction('securiser_action', 'inc');24 if (is_null($id_message)) { 25 $securiser_action = charger_fonction('securiser_action', 'inc'); 24 26 $id_message = $securiser_action(); 25 27 } … … 27 29 include_spip('inc/autoriser'); 28 30 if (intval($id_message) 29 AND $type=sql_getfetsel('type','spip_messages','id_message='.intval($id_message)) 30 AND autoriser('envoyermessage',$type, $id_message)){ 31 AND $type = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message)) 32 AND autoriser('envoyermessage', $type, $id_message) 33 ) { 31 34 32 35 include_spip('action/editer_objet'); 33 objet_modifier('message', $id_message,array('statut'=>'publie'));36 objet_modifier('message', $id_message, array('statut' => 'publie')); 34 37 } 35 38 -
_core_/plugins/organiseur/action/quete_autocomplete.php
r89285 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 function action_quete_autocomplete_dist() {16 $securiser_action = charger_fonction('securiser_action', 'inc');17 function action_quete_autocomplete_dist() { 18 $securiser_action = charger_fonction('securiser_action', 'inc'); 17 19 $arg = $securiser_action(); 18 20 if ($arg 19 AND $arg==$GLOBALS['visiteur_session']['id_auteur']){ 21 AND $arg == $GLOBALS['visiteur_session']['id_auteur'] 22 ) { 20 23 include_spip('inc/actions'); 21 24 include_spip('inc/json'); 22 25 echo ajax_retour( 23 recuperer_fond('prive/squelettes/inclure/organiseur-autocomplete-auteur', array('term'=>_request('term'))),26 recuperer_fond('prive/squelettes/inclure/organiseur-autocomplete-auteur', array('term' => _request('term'))), 24 27 'application/json' 25 28 ); -
_core_/plugins/organiseur/action/quete_calendrier_prive.php
r89285 r93618 15 15 * 16 16 * @package SPIP\Organiseur\Action 17 **/17 **/ 18 18 19 if (!defined('_ECRIRE_INC_VERSION')) return; 19 if (!defined('_ECRIRE_INC_VERSION')) { 20 return; 21 } 20 22 21 23 /** 22 24 * Fournir une liste d'"evenements" entre deux dates start et end 23 25 * au format json 24 * 26 * 25 27 * Utilisé pour l'affichage du calendrier privé et public 26 28 * … … 30 32 * @uses convert_fullcalendar_quete_calendrier_interval_rv() 31 33 * @uses convert_fullcalendar_quete_calendrier_interval() 32 * 34 * 33 35 * @return void 34 36 */ 35 function action_quete_calendrier_prive_dist() {36 $securiser_action = charger_fonction('securiser_action', 'inc');37 function action_quete_calendrier_prive_dist() { 38 $securiser_action = charger_fonction('securiser_action', 'inc'); 37 39 $securiser_action(); 38 40 … … 46 48 47 49 // recuperer la liste des evenements au format ics 48 $start = date('Y-m-d H:i:s', $start);49 $end = date('Y-m-d H:i:s', $end);50 $limites = array(sql_quote($start), sql_quote($end));50 $start = date('Y-m-d H:i:s', $start); 51 $end = date('Y-m-d H:i:s', $end); 52 $limites = array(sql_quote($start), sql_quote($end)); 51 53 52 54 // on fonction de quoi on récupère : tout (rv + publication) ou l'un ou l'autre. 53 55 $entier = $duree = array(); 54 56 55 if (!$quoi OR $quoi =='rv') {57 if (!$quoi OR $quoi == 'rv') { 56 58 $duree = quete_calendrier_interval_rv(reset($limites), end($limites)); 57 59 $evt = convert_fullcalendar_quete_calendrier_interval_rv($duree, $evt); 58 60 } 59 61 60 if (!$quoi OR $quoi =='publication') {62 if (!$quoi OR $quoi == 'publication') { 61 63 list($entier,) = quete_calendrier_interval($limites); 62 64 $evt = convert_fullcalendar_quete_calendrier_interval($entier, $evt); … … 67 69 $evt = pipeline('quete_calendrier_prive', 68 70 array( 69 'args' => array('start' => $start, 'end' => $end, 'quoi' =>$quoi),71 'args' => array('start' => $start, 'end' => $end, 'quoi' => $quoi), 70 72 'data' => $evt, 71 73 ) … … 80 82 * Convertir une date au format ical renvoyée par quete_calendrier_interval 81 83 * dans le format attendu par fullcalendar : yyyy-mm-dd H:i:s 82 * 84 * 83 85 * @param $dateical 84 86 * @return string 85 87 */ 86 function convert_dateical($dateical) {87 $d = explode('T', $dateical);88 function convert_dateical($dateical) { 89 $d = explode('T', $dateical); 88 90 $amj = reset($d); 89 $s = substr($amj, 0,4).'-'.substr($amj,4,2).'-'.substr($amj,6,2);90 if (count($d) >1){91 $s = substr($amj, 0, 4) . '-' . substr($amj, 4, 2) . '-' . substr($amj, 6, 2); 92 if (count($d) > 1) { 91 93 $his = end($d); 92 $s .= ' ' .substr($his,0,2).":".substr($his,2,2).":".substr($his,4,2);94 $s .= ' ' . substr($his, 0, 2) . ":" . substr($his, 2, 2) . ":" . substr($his, 4, 2); 93 95 } 96 94 97 return $s; 95 98 } … … 105 108 * @return array 106 109 * Les événements au format fullcalendar 107 **/110 **/ 108 111 function convert_fullcalendar_quete_calendrier_interval($messages, $evt = array()) { 109 if (!$messages) return $evt; 112 if (!$messages) { 113 return $evt; 114 } 110 115 111 116 // la retransformer au format attendu par fullcalendar 112 117 // facile : chaque evt n'est mentionne qu'une fois, a une date 113 foreach ($messages as $amj=>$l){114 $date = substr($amj, 0,4).'-'.substr($amj,4,2).'-'.substr($amj,6,2);115 foreach ($l as $e){118 foreach ($messages as $amj => $l) { 119 $date = substr($amj, 0, 4) . '-' . substr($amj, 4, 2) . '-' . substr($amj, 6, 2); 120 foreach ($l as $e) { 116 121 $evt[] = array( 117 122 'id' => 0, … … 120 125 'start' => $date, 121 126 'end' => $date, 122 'url' => str_replace('&', '&',$e['URL']),123 'className' => "calendrier-event " .$e['CATEGORIES'],127 'url' => str_replace('&', '&', $e['URL']), 128 'className' => "calendrier-event " . $e['CATEGORIES'], 124 129 'description' => $e['DESCRIPTION'], 125 130 ); … … 135 140 * 136 141 * @use convert_dateical() 137 * 142 * 138 143 * @param array $messages 139 144 * Les événements / messages au format issu de la quete calendrier_interval_rv … … 142 147 * @return array 143 148 * Les événements au format fullcalendar 144 **/149 **/ 145 150 function convert_fullcalendar_quete_calendrier_interval_rv($messages, $evt = array()) { 146 if (!$messages) return $evt; 151 if (!$messages) { 152 return $evt; 153 } 147 154 148 155 // ici il faut faire attention : un evt apparait N fois … … 155 162 } 156 163 157 foreach ($messages as $amj=>$l){158 foreach ($l as $id=>$e){159 $url = str_replace('&', '&',$e['URL']);164 foreach ($messages as $amj => $l) { 165 foreach ($l as $id => $e) { 166 $url = str_replace('&', '&', $e['URL']); 160 167 if (!isset($seen[$url])) { 161 168 $evt[] = array( … … 166 173 'end' => convert_dateical($e['DTEND']), // Ymd\THis 167 174 'url' => $url, 168 'className' => "calendrier-event " .$e['CATEGORIES'],175 'className' => "calendrier-event " . $e['CATEGORIES'], 169 176 'description' => $e['DESCRIPTION'], 170 177 ); -
_core_/plugins/organiseur/action/supprimer_message.php
r93092 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 … … 18 20 * @return void 19 21 */ 20 function action_supprimer_message_dist($id_message = null) {21 if (is_null($id_message)) {22 $securiser_action = charger_fonction('securiser_action', 'inc');22 function action_supprimer_message_dist($id_message = null) { 23 if (is_null($id_message)) { 24 $securiser_action = charger_fonction('securiser_action', 'inc'); 23 25 $id_message = $securiser_action(); 24 26 } … … 26 28 27 29 include_spip('inc/autoriser'); 28 if (autoriser('supprimer', 'message',$id_message)){30 if (autoriser('supprimer', 'message', $id_message)) { 29 31 include_spip('action/editer_objet'); 30 objet_modifier('message', $id_message,array('statut'=>'poub'));32 objet_modifier('message', $id_message, array('statut' => 'poub')); 31 33 } 32 34 } -
_core_/plugins/organiseur/base/organiseur.php
r89285 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 … … 20 22 * @return array 21 23 */ 22 function organiseur_declarer_tables_objets_sql($tables) {24 function organiseur_declarer_tables_objets_sql($tables) { 23 25 24 26 $tables['spip_auteurs']['field']["imessage"] = "VARCHAR(3)"; … … 26 28 27 29 $tables['spip_messages'] = array( 28 'page' => false,30 'page' => false, 29 31 'texte_modifier' => 'icone_modifier_message', 30 32 'texte_creer' => 'icone_ecrire_nouveau_message', 31 33 'texte_objets' => 'organiseur:messages', 32 34 'texte_objet' => 'organiseur:message', 33 'info_aucun_objet' => 'info_aucun_message',35 'info_aucun_objet' => 'info_aucun_message', 34 36 'info_1_objet' => 'info_1_message', 35 37 'info_nb_objets' => 'info_nb_messages', 36 38 37 39 'principale' => 'oui', 38 'champs_editables' => array('titre', 'texte', 'type', 'date_heure', 'date_fin', 'rv', 'id_auteur', 'destinataires'),40 'champs_editables' => array('titre', 'texte', 'type', 'date_heure', 'date_fin', 'rv', 'id_auteur', 'destinataires'), 39 41 'field' => array( 40 "id_message" 41 "titre" 42 "texte" 42 "id_message" => "bigint(21) NOT NULL", 43 "titre" => "text DEFAULT '' NOT NULL", 44 "texte" => "longtext DEFAULT '' NOT NULL", 43 45 // normal, 44 46 // pb (pense bete) 45 47 // affich (annonce publique) 46 "type" 47 "date_heure" 48 "date_fin" 49 "rv" 50 "statut" 51 "id_auteur" 48 "type" => "varchar(6) DEFAULT '' NOT NULL", 49 "date_heure" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", 50 "date_fin" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", 51 "rv" => "varchar(3) DEFAULT '' NOT NULL", 52 "statut" => "varchar(6) DEFAULT '0' NOT NULL", 53 "id_auteur" => "bigint(21) DEFAULT 0 NOT NULL", 52 54 "destinataires" => "text DEFAULT '' NOT NULL", 53 "maj" 55 "maj" => "TIMESTAMP" 54 56 ), 55 57 'key' => array( 56 "PRIMARY KEY" 57 "KEY id_auteur" 58 "PRIMARY KEY" => "id_message", 59 "KEY id_auteur" => "id_auteur" 58 60 ), 59 61 'titre' => "titre, '' AS lang", … … 64 66 'publie' => 'publie', 65 67 'previsu' => '!', 66 'exception' => array('statut', 'tout')68 'exception' => array('statut', 'tout') 67 69 ), 68 70 ), 69 71 'rechercher_champs' => array( 70 'titre' => 8, 'texte' => 1 72 'titre' => 8, 73 'texte' => 1 71 74 ), 72 75 … … 74 77 75 78 return $tables; 76 79 77 80 } 78 81 … … 83 86 * @return array 84 87 */ 85 function organiseur_declarer_tables_interfaces($interfaces) {86 $interfaces['table_des_tables']['messages'] ='messages';88 function organiseur_declarer_tables_interfaces($interfaces) { 89 $interfaces['table_des_tables']['messages'] = 'messages'; 87 90 88 91 return $interfaces; -
_core_/plugins/organiseur/calendrier_quete.json_fonctions.php
r93092 r93618 1 1 <?php 2 2 3 if (!defined('_ECRIRE_INC_VERSION')) return; 3 if (!defined('_ECRIRE_INC_VERSION')) { 4 return; 5 } 4 6 5 7 include_spip('inc/json'); 6 8 7 function todate($t) {return date('Y-m-d H:i:s', $t);}9 function todate($t) { return date('Y-m-d H:i:s', $t); } 8 10 9 11 ?> -
_core_/plugins/organiseur/formulaires/configurer_messagerie_agenda.php
r89285 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 function formulaires_configurer_messagerie_agenda_charger_dist() {16 foreach (array(17 "messagerie_agenda",18 ) as $m)17 function formulaires_configurer_messagerie_agenda_charger_dist() { 18 foreach (array( 19 "messagerie_agenda", 20 ) as $m) { 19 21 $valeurs[$m] = $GLOBALS['meta'][$m]; 22 } 20 23 21 24 return $valeurs; … … 23 26 24 27 25 function formulaires_configurer_messagerie_agenda_traiter_dist(){ 26 $res = array('editable'=>true); 27 foreach(array( 28 "messagerie_agenda", 29 ) as $m) 30 if (!is_null($v=_request($m))) 31 ecrire_meta($m, $v=='oui'?'oui':'non'); 28 function formulaires_configurer_messagerie_agenda_traiter_dist() { 29 $res = array('editable' => true); 30 foreach (array( 31 "messagerie_agenda", 32 ) as $m) { 33 if (!is_null($v = _request($m))) { 34 ecrire_meta($m, $v == 'oui' ? 'oui' : 'non'); 35 } 36 } 32 37 33 38 $res['message_ok'] = _T('config_info_enregistree'); 39 34 40 return $res; 35 41 } -
_core_/plugins/organiseur/formulaires/editer_message.php
r93092 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 include_spip('inc/editer'); 16 18 17 19 18 function formulaires_editer_message_charger_dist($id_message = 'new', $type = 'message', $retour = '', $accepter_email = 'oui', $destinataires = '', $titre = '', $texte = ''){ 20 function formulaires_editer_message_charger_dist( 21 $id_message = 'new', 22 $type = 'message', 23 $retour = '', 24 $accepter_email = 'oui', 25 $destinataires = '', 26 $titre = '', 27 $texte = '' 28 ) { 19 29 include_spip('inc/autoriser'); 20 30 if ( 21 (!intval($id_message) AND !autoriser('envoyermessage', $type))31 (!intval($id_message) AND !autoriser('envoyermessage', $type)) 22 32 OR 23 (intval($id_message) AND !autoriser('modifier', 'message',$id_message))24 ) 33 (intval($id_message) AND !autoriser('modifier', 'message', $id_message)) 34 ) { 25 35 return false; 26 27 $valeurs = formulaires_editer_objet_charger('message',$id_message,0,0,$retour,''); 36 } 37 38 $valeurs = formulaires_editer_objet_charger('message', $id_message, 0, 0, $retour, ''); 28 39 29 40 // les destinataires sont stockes en chaine separe par une virgule dans la base 30 if (strlen($valeurs['destinataires'])) 31 $valeurs['destinataires'] = explode(",",$valeurs['destinataires']); 32 33 if (!intval($id_message)){ 41 if (strlen($valeurs['destinataires'])) { 42 $valeurs['destinataires'] = explode(",", $valeurs['destinataires']); 43 } 44 45 if (!intval($id_message)) { 34 46 $valeurs['type'] = $type; 35 $valeurs['destinataires'] = ($destinataires ? explode(",", $destinataires):array());47 $valeurs['destinataires'] = ($destinataires ? explode(",", $destinataires) : array()); 36 48 $valeurs['titre'] = $titre; 37 49 $valeurs['texte'] = $texte; 38 $t =time();39 $valeurs["date_heure"] = date('Y-m-d H:i:00', $t);40 $valeurs["date_fin"] = date('Y-m-d H:i:00', $t+3600);50 $t = time(); 51 $valeurs["date_heure"] = date('Y-m-d H:i:00', $t); 52 $valeurs["date_fin"] = date('Y-m-d H:i:00', $t+3600); 41 53 $valeurs["rv"] = ""; 42 54 } 43 55 44 45 if ( autoriser('voir','message',$id_message_origine) ){46 $v = formulaires_editer_objet_charger('message',$id_message_origine,0,0,$retour,'');47 $valeurs['titre'] = _T("organiseur:re")." : ".$v['titre'];48 $valeurs['texte'] = "<quote>".$v['texte']."</quote>";49 50 56 $id_message_origine = intval(_request("id_message_origine")); 57 if (autoriser('voir', 'message', $id_message_origine)) { 58 $v = formulaires_editer_objet_charger('message', $id_message_origine, 0, 0, $retour, ''); 59 $valeurs['titre'] = _T("organiseur:re") . " : " . $v['titre']; 60 $valeurs['texte'] = "<quote>" . $v['texte'] . "</quote>"; 61 } 62 51 63 // dispatcher date et heure 52 list($valeurs["date_debut"],$valeurs["heure_debut"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_heure"]))); 53 list($valeurs["date_fin"],$valeurs["heure_fin"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_fin"]))); 54 55 if (in_array($valeurs['type'],array('pb','affich'))) 64 list($valeurs["date_debut"], $valeurs["heure_debut"]) = explode(' ', 65 date('d/m/Y H:i', strtotime($valeurs["date_heure"]))); 66 list($valeurs["date_fin"], $valeurs["heure_fin"]) = explode(' ', date('d/m/Y H:i', strtotime($valeurs["date_fin"]))); 67 68 if (in_array($valeurs['type'], array('pb', 'affich'))) { 56 69 $valeurs['_destiner'] = ''; 57 else70 } else { 58 71 $valeurs['_destiner'] = ' '; 72 } 59 73 60 74 return $valeurs; … … 62 76 63 77 64 function formulaires_editer_message_verifier_dist($id_message = 'new', $type = 'message', $retour = '', $accepter_email = 'oui', $destinataires = '', $titre = '', $texte = ''){ 78 function formulaires_editer_message_verifier_dist( 79 $id_message = 'new', 80 $type = 'message', 81 $retour = '', 82 $accepter_email = 'oui', 83 $destinataires = '', 84 $titre = '', 85 $texte = '' 86 ) { 65 87 66 88 $oblis = array('titre'); 67 if (!_request('draft')) 89 if (!_request('draft')) { 68 90 $oblis[] = 'texte'; 69 if (intval($id_message) AND $t=sql_getfetsel('type','spip_messages','id_message='.intval($id_message))) 91 } 92 if (intval($id_message) AND $t = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message))) { 70 93 $type = $t; 71 if (!in_array($type,array('pb','affich')) 94 } 95 if (!in_array($type, array('pb', 'affich')) 72 96 // pas de destinataire obligatoire pour un brouillon 73 AND !_request('draft')) 97 AND !_request('draft') 98 ) { 74 99 $oblis['destinataires'] = 'destinataires'; 75 76 if ($d=_request('destinataires')) 77 set_request('destinataires',implode(',',$d)); 78 $erreurs = formulaires_editer_objet_verifier('message',$id_message,$oblis); 79 if ($d) 80 set_request('destinataires',$d); 100 } 101 102 if ($d = _request('destinataires')) { 103 set_request('destinataires', implode(',', $d)); 104 } 105 $erreurs = formulaires_editer_objet_verifier('message', $id_message, $oblis); 106 if ($d) { 107 set_request('destinataires', $d); 108 } 81 109 include_spip('inc/messages'); 82 110 if ( 83 (!isset($erreurs['destinataires']) OR !$erreurs['destinataires']) 84 AND isset($oblis['destinataires']) 85 AND $e = messagerie_verifier_destinataires(_request('destinataires'),array('accepter_email'=>($accepter_email=='oui')))) 86 $erreurs['destinataires'] = implode(', ',$e); 87 88 if (_request('rv')=='oui'){ 111 (!isset($erreurs['destinataires']) OR !$erreurs['destinataires']) 112 AND isset($oblis['destinataires']) 113 AND $e = messagerie_verifier_destinataires(_request('destinataires'), 114 array('accepter_email' => ($accepter_email == 'oui'))) 115 ) { 116 $erreurs['destinataires'] = implode(', ', $e); 117 } 118 119 if (_request('rv') == 'oui') { 89 120 include_spip('inc/date_gestion'); 90 $date_debut = verifier_corriger_date_saisie('debut', true,$erreurs);91 $date_fin = verifier_corriger_date_saisie('fin', true,$erreurs);92 93 if ($date_debut AND $date_fin AND $date_fin <$date_debut)121 $date_debut = verifier_corriger_date_saisie('debut', true, $erreurs); 122 $date_fin = verifier_corriger_date_saisie('fin', true, $erreurs); 123 124 if ($date_debut AND $date_fin AND $date_fin < $date_debut) { 94 125 $erreurs['date_fin'] = _T('organiseur:erreur_date_avant_apres'); 95 } 96 else 97 set_request('rv',''); 126 } 127 } else { 128 set_request('rv', ''); 129 } 98 130 99 131 return $erreurs; 100 132 } 101 133 102 function formulaires_editer_message_traiter_dist($id_message = 'new', $type = 'message', $retour = '', $accepter_email = 'oui', $destinataires = '', $titre = '', $texte = ''){ 134 function formulaires_editer_message_traiter_dist( 135 $id_message = 'new', 136 $type = 'message', 137 $retour = '', 138 $accepter_email = 'oui', 139 $destinataires = '', 140 $titre = '', 141 $texte = '' 142 ) { 103 143 // preformater le post 104 144 // fixer le type de message 105 145 // sans modifier le type d'un message existant 106 if (intval($id_message) AND $t =sql_getfetsel('type','spip_messages','id_message='.intval($id_message)))146 if (intval($id_message) AND $t = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message))) { 107 147 $type = $t; 108 set_request('type',$type); 148 } 149 set_request('type', $type); 109 150 110 151 // formater les destinataires 111 152 $d = _request('destinataires'); 112 if (!$d) 153 if (!$d) { 113 154 $d = array(); 155 } 114 156 include_spip('inc/messages'); 115 157 $d = messagerie_nettoyer_destinataires($d); 116 158 // si email non acceptes, extraire les seuls id_auteur de la liste proposee 117 if ($accepter_email !=='oui'){159 if ($accepter_email !== 'oui') { 118 160 // separer id_auteur et email 119 161 $d = messagerie_destiner($d); … … 122 164 } 123 165 // reinjecter sous forme de chaine 124 set_request('destinataires', implode(',',$d));166 set_request('destinataires', implode(',', $d)); 125 167 126 168 // fixer l'auteur ! 127 set_request('id_auteur', $GLOBALS['visiteur_session']['id_auteur']);128 129 if (_request('rv') =='oui'){169 set_request('id_auteur', $GLOBALS['visiteur_session']['id_auteur']); 170 171 if (_request('rv') == 'oui') { 130 172 include_spip('inc/date_gestion'); 131 173 $erreurs = array(); 132 $date_debut = verifier_corriger_date_saisie('debut',true,$erreurs); 133 $date_fin = verifier_corriger_date_saisie('fin',true,$erreurs); 134 set_request('date_heure',date('Y-m-d H:i:s',$date_debut)); 135 set_request('date_fin',date('Y-m-d H:i:s',$date_fin)); 136 } 137 else { 174 $date_debut = verifier_corriger_date_saisie('debut', true, $erreurs); 175 $date_fin = verifier_corriger_date_saisie('fin', true, $erreurs); 176 set_request('date_heure', date('Y-m-d H:i:s', $date_debut)); 177 set_request('date_fin', date('Y-m-d H:i:s', $date_fin)); 178 } else { 138 179 set_request('date_heure'); 139 180 set_request('date_fin'); … … 143 184 // la diffusion du message se fait par pipeline post_edition sur instituer 144 185 // et notification 145 $res = formulaires_editer_objet_traiter('message', $id_message,0,0,$retour,'');186 $res = formulaires_editer_objet_traiter('message', $id_message, 0, 0, $retour, ''); 146 187 147 188 if ($id_message = $res['id_message'] 148 AND !_request('draft')){ 189 AND !_request('draft') 190 ) { 149 191 include_spip('action/editer_objet'); 150 objet_modifier('message', $id_message,array('statut'=>'publie', 'date_heure' => _request('date_heure')));192 objet_modifier('message', $id_message, array('statut' => 'publie', 'date_heure' => _request('date_heure'))); 151 193 // apres en message envoyes, retourner sur la boite d'envoi plutot que sur le message 152 if (isset($res['redirect']) and ($res['redirect'] == generer_url_ecrire('message', 'id_message='.$id_message))) {153 $res['redirect'] = generer_url_ecrire('messages', 'quoi=envoi');194 if (isset($res['redirect']) and ($res['redirect'] == generer_url_ecrire('message', 'id_message=' . $id_message))) { 195 $res['redirect'] = generer_url_ecrire('messages', 'quoi=envoi'); 154 196 } 155 197 } 156 198 157 set_request('destinataires',explode(',',_request('destinataires'))); 199 set_request('destinataires', explode(',', _request('destinataires'))); 200 158 201 return $res; 159 202 } -
_core_/plugins/organiseur/inc/date_gestion.php
r93092 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 /** … … 21 23 * @return int 22 24 */ 23 function verifier_corriger_date_saisie($suffixe, $horaire, &$erreurs) {25 function verifier_corriger_date_saisie($suffixe, $horaire, &$erreurs) { 24 26 include_spip('inc/filtres'); 25 $date = _request("date_$suffixe") .($horaire?' '.trim(_request("heure_$suffixe")).':00':'');27 $date = _request("date_$suffixe") . ($horaire ? ' ' . trim(_request("heure_$suffixe")) . ':00' : ''); 26 28 $date = recup_date($date); 27 if (!$date) 29 if (!$date) { 28 30 return ''; 31 } 29 32 $ret = null; 30 if (!$ret =mktime(0,0,0,$date[1],$date[2],$date[0]))33 if (!$ret = mktime(0, 0, 0, $date[1], $date[2], $date[0])) { 31 34 $erreurs["date_$suffixe"] = _T('organiseur:erreur_date'); 32 elseif (!$ret=mktime($date[3],$date[4],$date[5],$date[1],$date[2],$date[0]))35 } elseif (!$ret = mktime($date[3], $date[4], $date[5], $date[1], $date[2], $date[0])) { 33 36 $erreurs["date_$suffixe"] = _T('organiseur:erreur_heure'); 34 if ($ret){ 35 if (trim(_request("date_$suffixe")!==($d=date('d/m/Y',$ret)))){ 37 } 38 if ($ret) { 39 if (trim(_request("date_$suffixe") !== ($d = date('d/m/Y', $ret)))) { 36 40 $erreurs["date_$suffixe"] = _T('organiseur:erreur_date_corrigee'); 37 set_request("date_$suffixe", $d);41 set_request("date_$suffixe", $d); 38 42 } 39 if ($horaire AND trim(_request("heure_$suffixe") !==($h=date('H:i',$ret)))){43 if ($horaire AND trim(_request("heure_$suffixe") !== ($h = date('H:i', $ret)))) { 40 44 $erreurs["heure_$suffixe"] = _T('organiseur:erreur_heure_corrigee'); 41 set_request("heure_$suffixe", $h);45 set_request("heure_$suffixe", $h); 42 46 } 43 47 } 48 44 49 return $ret; 45 50 } -
_core_/plugins/organiseur/inc/messages.php
r93318 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 include_spip('inc/filtres'); 16 18 include_spip('base/abstract_sql'); 17 19 18 if (!defined('_EMAIL_GENERAL')) 19 define('_EMAIL_GENERAL','general'); // permet aux admin d'envoyer un email a tout le monde 20 if (!defined('_EMAIL_GENERAL')) { 21 define('_EMAIL_GENERAL', 'general'); 22 } // permet aux admin d'envoyer un email a tout le monde 20 23 21 24 /** 22 25 * Lister les statuts des auteurs pouvant recevoir un message 23 26 * c'est tous les auteurs au moins redacteur 24 * 25 * @return array 26 */ 27 function messagerie_statuts_destinataires_possibles() {27 * 28 * @return array 29 */ 30 function messagerie_statuts_destinataires_possibles() { 28 31 include_spip('inc/filtres_ecrire'); 29 return pipeline('messagerie_statuts_destinataires_possibles', auteurs_lister_statuts('redacteurs',false)); 32 33 return pipeline('messagerie_statuts_destinataires_possibles', auteurs_lister_statuts('redacteurs', false)); 30 34 } 31 35 32 36 /** 33 37 * Nettoyer une liste de destinataires 38 * 34 39 * @param $destinataires 35 40 * @return array 36 41 */ 37 function messagerie_nettoyer_destinataires($destinataires) {38 foreach ($destinataires as $k =>$id){42 function messagerie_nettoyer_destinataires($destinataires) { 43 foreach ($destinataires as $k => $id) { 39 44 // il se peut que l'id recupere l'ancre qui suit avec certains ie ... :( 40 if (preg_match(',^[0-9]+#[a-z_0-9]+,', $id))45 if (preg_match(',^[0-9]+#[a-z_0-9]+,', $id)) { 41 46 $destinataires[$k] = intval($id); 42 } 47 } 48 } 49 43 50 return $destinataires; 44 51 } … … 54 61 * @return array 55 62 */ 56 function messagerie_verifier_destinataires($destinataires, $options = array('accepter_email' => true)){63 function messagerie_verifier_destinataires($destinataires, $options = array('accepter_email' => true)) { 57 64 $erreurs = array(); 58 65 59 66 $destinataires = messagerie_nettoyer_destinataires($destinataires); 60 foreach ($destinataires as $id) {61 if (is_numeric($id)) {62 if (!$id) 63 $erreurs[] = _T('organiseur:erreur_destinataire_invalide', array('dest'=>$id));64 }65 else {67 foreach ($destinataires as $id) { 68 if (is_numeric($id)) { 69 if (!$id) { 70 $erreurs[] = _T('organiseur:erreur_destinataire_invalide', array('dest' => $id)); 71 } 72 } else { 66 73 if (!$options['accepter_email'] 67 OR !email_valide($id)) 68 $erreurs[] = _T('organiseur:erreur_destinataire_invalide',array('dest'=>$id)); 74 OR !email_valide($id) 75 ) { 76 $erreurs[] = _T('organiseur:erreur_destinataire_invalide', array('dest' => $id)); 77 } 69 78 } 70 79 } … … 79 88 * @return array 80 89 */ 81 function messagerie_destiner($dests) {90 function messagerie_destiner($dests) { 82 91 // separer les destinataires auteur des destinataires email 83 92 $auteurs_dest = array(); … … 85 94 86 95 $dests = messagerie_nettoyer_destinataires($dests); 87 foreach ($dests as $id) {88 if (is_numeric($id)) 96 foreach ($dests as $id) { 97 if (is_numeric($id)) { 89 98 $auteurs_dest[] = $id; 90 elseif (defined('_MESSAGERIE_EMAIL_GENERAL') AND $id!=_MESSAGERIE_EMAIL_GENERAL)99 } elseif (defined('_MESSAGERIE_EMAIL_GENERAL') AND $id != _MESSAGERIE_EMAIL_GENERAL) { 91 100 $email_dests[] = $id; 101 } 92 102 } 93 103 if (count($email_dests)) { 94 104 // retrouver les id des emails pour ceux qui sont en base 95 $res = sql_select('id_auteur,email', 'spip_auteurs',sql_in('email', $email_dests));105 $res = sql_select('id_auteur,email', 'spip_auteurs', sql_in('email', $email_dests)); 96 106 $auteurs_dest_found = array(); 97 while ($row = sql_fetch($res)) {107 while ($row = sql_fetch($res)) { 98 108 $auteurs_dest_found[] = $row['id_auteur']; 99 109 } 100 $auteurs_dest = array_merge($auteurs_dest,$auteurs_dest_found); 101 } 102 return array($auteurs_dest,$email_dests); 110 $auteurs_dest = array_merge($auteurs_dest, $auteurs_dest_found); 111 } 112 113 return array($auteurs_dest, $email_dests); 103 114 } 104 115 … … 110 121 * @return bool|int 111 122 */ 112 function messagerie_diffuser_message($id_message, $auteurs_dest = array()) {123 function messagerie_diffuser_message($id_message, $auteurs_dest = array()) { 113 124 $out = false; 114 if ($id_message=intval($id_message) 115 AND count($auteurs_dest)){ 125 if ($id_message = intval($id_message) 126 AND count($auteurs_dest) 127 ) { 116 128 include_spip('action/editer_liens'); 117 $out = objet_associer(array('auteur'=>$auteurs_dest),array('message'=>$id_message),array('vu'=>'non')); 118 } 129 $out = objet_associer(array('auteur' => $auteurs_dest), array('message' => $id_message), array('vu' => 'non')); 130 } 131 119 132 return $out; 120 133 } … … 127 140 * @return bool 128 141 */ 129 function messagerie_mailer_message($id_message, $emails_dest = array()){ 130 if ($id_message=intval($id_message) 131 AND count($emails_dest)) { 132 if ($row = sql_fetsel('titre,texte,id_auteur','spip_messages','id_message='.intval($id_message))){ 133 $from = sql_getfetsel('email','spip_auteurs','id_auteur='.$row['id_auteur']); 134 foreach($emails_dest as $email) 142 function messagerie_mailer_message($id_message, $emails_dest = array()) { 143 if ($id_message = intval($id_message) 144 AND count($emails_dest) 145 ) { 146 if ($row = sql_fetsel('titre,texte,id_auteur', 'spip_messages', 'id_message=' . intval($id_message))) { 147 $from = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . $row['id_auteur']); 148 foreach ($emails_dest as $email) { 135 149 job_queue_add( 136 150 'envoyer_mail', 137 151 'messagerie mail', 138 array($email,$row['titre'],array('texte'=>$row['texte'],'from'=>$from)),152 array($email, $row['titre'], array('texte' => $row['texte'], 'from' => $from)), 139 153 'inc/' 140 154 ); 155 } 156 141 157 return true; 142 158 } 143 159 } 160 144 161 return false; 145 162 } … … 153 170 * @return void 154 171 */ 155 function messagerie_marquer_message($id_auteur, $liste, $vu) {172 function messagerie_marquer_message($id_auteur, $liste, $vu) { 156 173 include_spip('action/editer_liens'); 157 if (!is_array($liste)) 174 if (!is_array($liste)) { 158 175 $liste = array($liste); 176 } 159 177 // completer les liens qui n'existent pas encore 160 178 // ex : pour marquer lue une annonce, on ajoute le lien d'abord (n'existe pas) 161 179 // puis on le marque 'oui' 162 $liens = objet_trouver_liens(array('auteur' =>$id_auteur),array('message'=>$liste));180 $liens = objet_trouver_liens(array('auteur' => $id_auteur), array('message' => $liste)); 163 181 $l = array(); 164 foreach ($liens as $lien)182 foreach ($liens as $lien) { 165 183 $l[] = $lien['message']; 166 objet_associer(array('auteur'=>$id_auteur),array('message'=>array_diff($liste,$l)),array('vu'=>$vu)); 184 } 185 objet_associer(array('auteur' => $id_auteur), array('message' => array_diff($liste, $l)), array('vu' => $vu)); 167 186 // puis les marquer tous lus 168 objet_qualifier_liens(array('auteur' =>$id_auteur),array('message'=>$liste),array('vu'=>$vu));187 objet_qualifier_liens(array('auteur' => $id_auteur), array('message' => $liste), array('vu' => $vu)); 169 188 include_spip('inc/invalideur'); 170 suivre_invalideur("message/" .implode(',',$liste));189 suivre_invalideur("message/" . implode(',', $liste)); 171 190 } 172 191 … … 177 196 * @param array $liste_id_message 178 197 */ 179 function messagerie_marquer_lus($id_auteur, $liste_id_message){messagerie_marquer_message($id_auteur, $liste_id_message, 'oui');} 198 function messagerie_marquer_lus($id_auteur, $liste_id_message) { 199 messagerie_marquer_message($id_auteur, $liste_id_message, 'oui'); 200 } 180 201 181 202 /** … … 185 206 * @param array $liste_id_message 186 207 */ 187 function messagerie_marquer_non_lus($id_auteur, $liste_id_message){messagerie_marquer_message($id_auteur, $liste_id_message, 'non');} 208 function messagerie_marquer_non_lus($id_auteur, $liste_id_message) { 209 messagerie_marquer_message($id_auteur, $liste_id_message, 'non'); 210 } 188 211 189 212 /** … … 193 216 * @param array $liste_id_message 194 217 */ 195 function messagerie_effacer_message_recu($id_auteur, $liste_id_message){messagerie_marquer_message($id_auteur, $liste_id_message, 'poub');} 218 function messagerie_effacer_message_recu($id_auteur, $liste_id_message) { 219 messagerie_marquer_message($id_auteur, $liste_id_message, 'poub'); 220 } 196 221 197 222 ?> -
_core_/plugins/organiseur/inc/quete_calendrier.php
r93092 r93618 16 16 * 17 17 * @package SPIP\Organiseur\Fonctions 18 **/ 19 20 if (!defined('_ECRIRE_INC_VERSION')) return; 18 **/ 19 20 if (!defined('_ECRIRE_INC_VERSION')) { 21 return; 22 } 21 23 22 24 include_spip('inc/filtres'); … … 29 31 * S'appuie soit sur une fonction PHP `generer_calendrier_class()` si elle 30 32 * existe, soit à défaut sur le numéro de rubrique. 31 * 33 * 32 34 * @param string $table 33 35 * Nom de la table SQL d'où provient l'événement 34 36 * @param int $num 35 * Identifiant dans la table 37 * Identifiant dans la table 36 38 * @param string $objet 37 39 * Nom de la clé primaire 38 40 * @return string 39 41 * Nom de classe CSS 40 **/ 41 function calendrier_categories($table, $num, $objet) 42 { 43 if (function_exists('generer_calendrier_class')) 44 return generer_calendrier_class($table, $num, $objet); 45 else { 46 // cf agenda.css 47 $num= sql_getfetsel((($objet != 'id_breve') ? 'id_secteur' : 'id_rubrique') . " AS id", $table, "$objet=$num"); 48 49 return 'calendrier-couleur' . (($num%14)+1); 50 } 42 **/ 43 function calendrier_categories($table, $num, $objet) { 44 if (function_exists('generer_calendrier_class')) { 45 return generer_calendrier_class($table, $num, $objet); 46 } else { 47 // cf agenda.css 48 $num = sql_getfetsel((($objet != 'id_breve') ? 'id_secteur' : 'id_rubrique') . " AS id", $table, "$objet=$num"); 49 50 return 'calendrier-couleur' . (($num%14)+1); 51 } 51 52 } 52 53 … … 54 55 * Pour une date donnée, retourne une période allant de la veille au lendemain 55 56 * 56 * @param int $annee 57 * @param int $mois 58 * @param int $jour 57 * @param int $annee 58 * @param int $mois 59 * @param int $jour 59 60 * @return array 60 61 * Liste (date de la veille à 0h, date du lendemain à 23h59:59) 61 **/62 **/ 62 63 function quete_calendrier_jour($annee, $mois, $jour) { 63 $avant = "'" . date("Y-m-d", mktime(0,0,0,$mois,$jour-1,$annee)) . "'"; 64 $apres = "'" . date("Y-m-d", mktime(1,1,1,$mois,$jour+1,$annee)) . 65 " 23:59:59'"; 64 $avant = "'" . date("Y-m-d", mktime(0, 0, 0, $mois, $jour-1, $annee)) . "'"; 65 $apres = "'" . date("Y-m-d", mktime(1, 1, 1, $mois, $jour+1, $annee)) . 66 " 23:59:59'"; 67 66 68 return array($avant, $apres); 67 69 } … … 70 72 /** 71 73 * Retourne les publications et les messages pour une période donnée 72 * 74 * 73 75 * Retourne un tableau de 2 tableaux indéxés par des dates : 74 76 * - le premier indique les événements du jour, sans indication de durée … … 81 83 * @uses quete_calendrier_interval_rubriques() 82 84 * @uses quete_calendrier_interval_rv() 83 * 85 * 84 86 * @param array $limites 85 87 * Liste (date de début, date de fin) 86 88 * @return array 87 89 * Liste (événements sans durée, événements avec durée) 88 **/90 **/ 89 91 function quete_calendrier_interval($limites) { 90 92 include_spip('inc/urls'); … … 94 96 quete_calendrier_interval_breves($avant, $apres, $evt); 95 97 quete_calendrier_interval_rubriques($avant, $apres, $evt); 98 96 99 return array($evt, quete_calendrier_interval_rv($avant, $apres)); 97 100 } … … 112 115 * Tableau des événements déjà présents qui sera complété par la fonction. 113 116 * Format : `$evenements[$amj][] = Tableau de description ICS` 114 **/115 function 117 **/ 118 function quete_calendrier_interval_forums($limites, &$evenements) { 116 119 list($avant, $apres) = $limites; 117 $result=sql_select("DISTINCT titre, date_heure, id_forum", "spip_forum", "date_heure >= $avant AND date_heure < $apres", '', "date_heure"); 118 while($row=sql_fetch($result)){ 120 $result = sql_select("DISTINCT titre, date_heure, id_forum", "spip_forum", 121 "date_heure >= $avant AND date_heure < $apres", '', "date_heure"); 122 while ($row = sql_fetch($result)) { 119 123 $amj = date_anneemoisjour($row['date_heure']); 120 124 $id = $row['id_forum']; 121 if (autoriser('voir','forum',$id)) 122 $evenements[$amj][]= 123 array( 124 'URL' => generer_url_entite($id, 'forum'), 125 'CATEGORIES' => 'calendrier-couleur7', 126 'SUMMARY' => $row['titre'], 127 'DTSTART' => date_ical($row['date_heure'])); 125 if (autoriser('voir', 'forum', $id)) { 126 $evenements[$amj][] = 127 array( 128 'URL' => generer_url_entite($id, 'forum'), 129 'CATEGORIES' => 'calendrier-couleur7', 130 'SUMMARY' => $row['titre'], 131 'DTSTART' => date_ical($row['date_heure']) 132 ); 133 } 128 134 } 129 135 } … … 139 145 * Tableau des événements déjà présents qui sera complété par la fonction. 140 146 * Format : `$evenements[$amj][] = Tableau de description ICS` 141 **/147 **/ 142 148 function quete_calendrier_interval_articles($avant, $apres, &$evenements) { 143 149 144 $result=sql_select('id_article, titre, date, descriptif, chapo, lang', 'spip_articles', "statut='publie' AND date >= $avant AND date < $apres", '', "date"); 150 $result = sql_select('id_article, titre, date, descriptif, chapo, lang', 'spip_articles', 151 "statut='publie' AND date >= $avant AND date < $apres", '', "date"); 145 152 146 153 // tables traduites … … 148 155 149 156 if (in_array('spip_articles', $objets)) { 150 include_spip('inc/lang_liste'); 151 $langues = $GLOBALS['codes_langues']; 152 } else $langues = array(); 153 while($row=sql_fetch($result)){ 157 include_spip('inc/lang_liste'); 158 $langues = $GLOBALS['codes_langues']; 159 } else { 160 $langues = array(); 161 } 162 while ($row = sql_fetch($result)) { 154 163 $amj = date_anneemoisjour($row['date']); 155 164 $id = $row['id_article']; 156 if (autoriser('voir','article',$id)) 157 $evenements[$amj][]= 158 array( 159 'CATEGORIES' => calendrier_categories('spip_articles', $id, 'id_article'), 160 'DESCRIPTION' => $row['descriptif'] ? $row['descriptif'] : $langues[$row['lang']], 161 'SUMMARY' => $row['titre'], 162 'URL' => generer_url_ecrire_objet('article',$id, '','','prop')); 165 if (autoriser('voir', 'article', $id)) { 166 $evenements[$amj][] = 167 array( 168 'CATEGORIES' => calendrier_categories('spip_articles', $id, 'id_article'), 169 'DESCRIPTION' => $row['descriptif'] ? $row['descriptif'] : $langues[$row['lang']], 170 'SUMMARY' => $row['titre'], 171 'URL' => generer_url_ecrire_objet('article', $id, '', '', 'prop') 172 ); 173 } 163 174 } 164 175 } … … 174 185 * Tableau des événements déjà présents qui sera complété par la fonction. 175 186 * Format : `$evenements[$amj][] = Tableau de description ICS` 176 **/187 **/ 177 188 function quete_calendrier_interval_rubriques($avant, $apres, &$evenements) { 178 189 179 $result=sql_select('DISTINCT R.id_rubrique, titre, descriptif, date', 'spip_rubriques AS R, spip_documents_liens AS L', "statut='publie' AND date >= $avant AND date < $apres AND R.id_rubrique = L.id_objet AND L.objet='rubrique'",'', "date"); 180 while($row=sql_fetch($result)){ 190 $result = sql_select('DISTINCT R.id_rubrique, titre, descriptif, date', 191 'spip_rubriques AS R, spip_documents_liens AS L', 192 "statut='publie' AND date >= $avant AND date < $apres AND R.id_rubrique = L.id_objet AND L.objet='rubrique'", '', 193 "date"); 194 while ($row = sql_fetch($result)) { 181 195 $amj = date_anneemoisjour($row['date']); 182 196 $id = $row['id_rubrique']; 183 if (autoriser('voir','rubrique',$id)) 184 $evenements[$amj][]= 185 array( 186 'CATEGORIES' => calendrier_categories('spip_rubriques', $id, 'id_rubrique'), 187 'DESCRIPTION' => $row['descriptif'], 188 'SUMMARY' => $row['titre'], 189 'URL' => generer_url_ecrire_objet('rubrique',$id, '','', 'prop')); 197 if (autoriser('voir', 'rubrique', $id)) { 198 $evenements[$amj][] = 199 array( 200 'CATEGORIES' => calendrier_categories('spip_rubriques', $id, 'id_rubrique'), 201 'DESCRIPTION' => $row['descriptif'], 202 'SUMMARY' => $row['titre'], 203 'URL' => generer_url_ecrire_objet('rubrique', $id, '', '', 'prop') 204 ); 205 } 190 206 } 191 207 } … … 201 217 * Tableau des événements déjà présents qui sera complété par la fonction. 202 218 * Format : `$evenements[$amj][] = Tableau de description ICS` 203 **/219 **/ 204 220 function quete_calendrier_interval_breves($avant, $apres, &$evenements) { 205 $result=sql_select("id_breve, titre, date_heure, id_rubrique", 'spip_breves', "statut='publie' AND date_heure >= $avant AND date_heure < $apres", '', "date_heure"); 206 while($row=sql_fetch($result)){ 221 $result = sql_select("id_breve, titre, date_heure, id_rubrique", 'spip_breves', 222 "statut='publie' AND date_heure >= $avant AND date_heure < $apres", '', "date_heure"); 223 while ($row = sql_fetch($result)) { 207 224 $amj = date_anneemoisjour($row['date_heure']); 208 225 $id = $row['id_breve']; 209 226 $ir = $row['id_rubrique']; 210 if (autoriser('voir','breve',$id)) 211 $evenements[$amj][]= 212 array( 213 'URL' => generer_url_ecrire_objet('breve',$id, '','', 'prop'), 214 'CATEGORIES' => calendrier_categories('spip_breves', $ir, 'id_breve'), 215 'SUMMARY' => $row['titre']); 227 if (autoriser('voir', 'breve', $id)) { 228 $evenements[$amj][] = 229 array( 230 'URL' => generer_url_ecrire_objet('breve', $id, '', '', 'prop'), 231 'CATEGORIES' => calendrier_categories('spip_breves', $ir, 'id_breve'), 232 'SUMMARY' => $row['titre'] 233 ); 234 } 216 235 } 217 236 } … … 227 246 * @return array 228 247 * De la forme : `$evt[date][id_message] = Tableau des données ICS` 229 **/248 **/ 230 249 function quete_calendrier_interval_rv($avant, $apres) { 231 250 include_spip('inc/session'); 232 251 $connect_id_auteur = session_get('id_auteur'); 233 252 234 $evenements= array(); 235 if (!$connect_id_auteur) return $evenements; 236 $result=sql_select("M.id_message, M.titre, M.texte, M.date_heure, M.date_fin, M.type", 253 $evenements = array(); 254 if (!$connect_id_auteur) { 255 return $evenements; 256 } 257 $result = sql_select("M.id_message, M.titre, M.texte, M.date_heure, M.date_fin, M.type", 237 258 "spip_messages AS M LEFT JOIN spip_auteurs_liens AS L ON (L.id_objet=M.id_message)", 238 "((L.objet='message' AND (L.id_auteur=$connect_id_auteur OR M.type='affich')) OR (L.objet IS NULL AND M.id_auteur=$connect_id_auteur AND ".sql_in('M.type',array('pb','affich'))."))" 239 ." AND M.rv='oui' AND ((M.date_fin >= $avant OR M.date_heure >= $avant) AND M.date_heure <= $apres) AND M.statut='publie'", 259 "((L.objet='message' AND (L.id_auteur=$connect_id_auteur OR M.type='affich')) OR (L.objet IS NULL AND M.id_auteur=$connect_id_auteur AND " . sql_in('M.type', 260 array('pb', 'affich')) . "))" 261 . " AND M.rv='oui' AND ((M.date_fin >= $avant OR M.date_heure >= $avant) AND M.date_heure <= $apres) AND M.statut='publie'", 240 262 "M.id_message", "M.date_heure"); 241 while($row=sql_fetch($result)){ 242 $date_heure=$row["date_heure"]; 243 $date_fin=$row["date_fin"]; 244 $type=$row["type"]; 245 $id_message=$row['id_message']; 246 247 if ($type=="pb") 248 $cat = 'calendrier-couleur2'; 249 else { 250 if ($type=="affich") 251 $cat = 'calendrier-couleur4'; 252 else { 253 if ($type!="normal") 254 $cat = 'calendrier-couleur12'; 255 else { 256 $cat = 'calendrier-couleur9'; 257 $auteurs = array_map('array_shift', sql_allfetsel("nom", "spip_auteurs AS A LEFT JOIN spip_auteurs_liens AS L ON L.id_auteur=A.id_auteur", "(L.objet='message' AND L.id_objet=$id_message AND (A.id_auteur!=$connect_id_auteur))")); 258 } 259 } 260 } 261 262 $jour_avant = substr($avant, 9,2); 263 $mois_avant = substr($avant, 6,2); 264 $annee_avant = substr($avant, 1,4); 265 $jour_apres = substr($apres, 9,2); 266 $mois_apres = substr($apres, 6,2); 267 $annee_apres = substr($apres, 1,4); 268 $ical_apres = date_anneemoisjour("$annee_apres-$mois_apres-".sprintf("%02d",$jour_apres)); 263 while ($row = sql_fetch($result)) { 264 $date_heure = $row["date_heure"]; 265 $date_fin = $row["date_fin"]; 266 $type = $row["type"]; 267 $id_message = $row['id_message']; 268 269 if ($type == "pb") { 270 $cat = 'calendrier-couleur2'; 271 } else { 272 if ($type == "affich") { 273 $cat = 'calendrier-couleur4'; 274 } else { 275 if ($type != "normal") { 276 $cat = 'calendrier-couleur12'; 277 } else { 278 $cat = 'calendrier-couleur9'; 279 $auteurs = array_map('array_shift', 280 sql_allfetsel("nom", "spip_auteurs AS A LEFT JOIN spip_auteurs_liens AS L ON L.id_auteur=A.id_auteur", 281 "(L.objet='message' AND L.id_objet=$id_message AND (A.id_auteur!=$connect_id_auteur))")); 282 } 283 } 284 } 285 286 $jour_avant = substr($avant, 9, 2); 287 $mois_avant = substr($avant, 6, 2); 288 $annee_avant = substr($avant, 1, 4); 289 $jour_apres = substr($apres, 9, 2); 290 $mois_apres = substr($apres, 6, 2); 291 $annee_apres = substr($apres, 1, 4); 292 $ical_apres = date_anneemoisjour("$annee_apres-$mois_apres-" . sprintf("%02d", $jour_apres)); 269 293 270 294 // Calcul pour les semaines a cheval sur deux mois 271 272 $amj = date_anneemoisjour("$annee_avant-$mois_avant-" .sprintf("%02d", $j+($jour_avant)));295 $j = 0; 296 $amj = date_anneemoisjour("$annee_avant-$mois_avant-" . sprintf("%02d", $j+($jour_avant))); 273 297 274 298 while ($amj <= $ical_apres) { 275 if (!($amj == date_anneemoisjour($date_fin) AND preg_match(",00:00:00,", $date_fin))) // Ne pas prendre la fin a minuit sur jour precedent 276 $evenements[$amj][$id_message]= 277 array( 278 'URL' => generer_url_ecrire("message","id_message=$id_message"), 279 'DTSTART' => date_ical($date_heure), 280 'DTEND' => date_ical($date_fin), 281 'DESCRIPTION' => $row['texte'], 282 'SUMMARY' => $row['titre'], 283 'CATEGORIES' => $cat, 284 'ATTENDEE' => (count($auteurs) == 0) ? '' : join($auteurs,", ")); 285 286 $j ++; 287 $ladate = date("Y-m-d",mktime (1,1,1,$mois_avant, ($j + $jour_avant), $annee_avant)); 299 if (!($amj == date_anneemoisjour($date_fin) AND preg_match(",00:00:00,", 300 $date_fin)) 301 ) // Ne pas prendre la fin a minuit sur jour precedent 302 { 303 $evenements[$amj][$id_message] = 304 array( 305 'URL' => generer_url_ecrire("message", "id_message=$id_message"), 306 'DTSTART' => date_ical($date_heure), 307 'DTEND' => date_ical($date_fin), 308 'DESCRIPTION' => $row['texte'], 309 'SUMMARY' => $row['titre'], 310 'CATEGORIES' => $cat, 311 'ATTENDEE' => (count($auteurs) == 0) ? '' : join($auteurs, ", ") 312 ); 313 } 314 315 $j++; 316 $ladate = date("Y-m-d", mktime(1, 1, 1, $mois_avant, ($j+$jour_avant), $annee_avant)); 288 317 289 318 $amj = date_anneemoisjour($ladate); … … 292 321 293 322 } 294 return $evenements; 323 324 return $evenements; 295 325 } 296 326 … … 301 331 * @param int $mois 302 332 * @return array 303 **/304 function quete_calendrier_agenda 333 **/ 334 function quete_calendrier_agenda($annee, $mois) { 305 335 include_spip('inc/session'); 306 336 $connect_id_auteur = session_get('id_auteur'); 307 337 308 338 $rv = array(); 309 if (!$connect_id_auteur) return $rv; 310 $date = date("Y-m-d", mktime(0,0,0,$mois, 1, $annee)); 339 if (!$connect_id_auteur) { 340 return $rv; 341 } 342 $date = date("Y-m-d", mktime(0, 0, 0, $mois, 1, $annee)); 311 343 $mois = mois($date); 312 344 $annee = annee($date); 313 345 314 346 // rendez-vous personnels dans le mois 315 $result_messages = sql_select("M.titre AS summary, M.texte AS description, M.id_message AS uid, M.date_heure", "spip_messages AS M, spip_auteurs_liens AS L", "((L.id_auteur=$connect_id_auteur AND L.id_objet=M.id_message AND L.objet='message') OR M.type='affich') AND M.rv='oui' AND M.date_heure >='$annee-$mois-1' AND date_heure < DATE_ADD('$annee-$mois-1', INTERVAL 1 MONTH) AND M.statut='publie'"); 316 while($row=sql_fetch($result_messages)) { 347 $result_messages = sql_select("M.titre AS summary, M.texte AS description, M.id_message AS uid, M.date_heure", 348 "spip_messages AS M, spip_auteurs_liens AS L", 349 "((L.id_auteur=$connect_id_auteur AND L.id_objet=M.id_message AND L.objet='message') OR M.type='affich') AND M.rv='oui' AND M.date_heure >='$annee-$mois-1' AND date_heure < DATE_ADD('$annee-$mois-1', INTERVAL 1 MONTH) AND M.statut='publie'"); 350 while ($row = sql_fetch($result_messages)) { 317 351 $rv[journum($row['date_heure'])] = $row; 318 352 } 353 319 354 return $rv; 320 355 } -
_core_/plugins/organiseur/notifications/instituermessage.php
r93092 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 … … 22 24 * @param array $options 23 25 */ 24 function notifications_instituermessage_dist($quoi, $id_message, $options = array()) {25 26 function notifications_instituermessage_dist($quoi, $id_message, $options = array()) { 27 26 28 // ne devrait jamais se produire 27 29 if ($options['statut'] == $options['statut_ancien']) { 28 spip_log("statut inchange",'notifications'); 30 spip_log("statut inchange", 'notifications'); 31 29 32 return; 30 33 } 31 34 32 if ($options['statut'] =='publie'){35 if ($options['statut'] == 'publie') { 33 36 include_spip('inc/messages'); 34 $type = sql_getfetsel('type', 'spip_messages','id_message='.intval($id_message));37 $type = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message)); 35 38 $vue = "notifications/message_{$type}_publie"; 36 if (trouver_fond($vue)) {37 $envoyer_mail = charger_fonction('envoyer_mail', 'inc'); // pour nettoyer_titre_email38 $texte = recuperer_fond($vue, array('id_message'=>$id_message));39 if (trouver_fond($vue)) { 40 $envoyer_mail = charger_fonction('envoyer_mail', 'inc'); // pour nettoyer_titre_email 41 $texte = recuperer_fond($vue, array('id_message' => $id_message)); 39 42 40 43 // recuperer tous les emails des auteurs qui ont recu le message dans leur boite … … 44 47 "email!=''", 45 48 "statut!='5poubelle'", 46 sql_in('statut', messagerie_statuts_destinataires_possibles())49 sql_in('statut', messagerie_statuts_destinataires_possibles()) 47 50 ); 48 51 // pour une annonce : tous ceux qui recoivent des messages 49 if ($type !=='affich'){50 $ids = sql_allfetsel('id_auteur', 'spip_auteurs_liens',"objet='message' AND id_objet=".intval($id_message));51 $ids = array_map('reset', $ids);52 $where[] = sql_in('id_auteur', $ids);52 if ($type !== 'affich') { 53 $ids = sql_allfetsel('id_auteur', 'spip_auteurs_liens', "objet='message' AND id_objet=" . intval($id_message)); 54 $ids = array_map('reset', $ids); 55 $where[] = sql_in('id_auteur', $ids); 53 56 } 54 $emails = sql_allfetsel('email', "spip_auteurs",$where);55 $emails = array_map('reset', $emails);57 $emails = sql_allfetsel('email', "spip_auteurs", $where); 58 $emails = array_map('reset', $emails); 56 59 57 60 include_spip('inc/notifications'); 58 notifications_envoyer_mails($emails, $texte);61 notifications_envoyer_mails($emails, $texte); 59 62 } 60 63 } -
_core_/plugins/organiseur/organiseur_administrations.php
r93092 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 /** … … 19 21 * @param string $version_cible 20 22 */ 21 function organiseur_upgrade($nom_meta_base_version, $version_cible) {23 function organiseur_upgrade($nom_meta_base_version, $version_cible) { 22 24 // cas particulier : 23 25 // si plugin pas installe mais que la table existe 24 26 // considerer que c'est un upgrade depuis v 1.0.0 25 27 // pour gerer l'historique des installations SPIP <=2.1 26 if (!isset($GLOBALS['meta'][$nom_meta_base_version])) {27 $trouver_table = charger_fonction('trouver_table', 'base');28 if (!isset($GLOBALS['meta'][$nom_meta_base_version])) { 29 $trouver_table = charger_fonction('trouver_table', 'base'); 28 30 if ($desc = $trouver_table('spip_messages') 29 AND isset($desc['exist']) AND $desc['exist']){ 30 ecrire_meta($nom_meta_base_version,'1.0.0'); 31 AND isset($desc['exist']) AND $desc['exist'] 32 ) { 33 ecrire_meta($nom_meta_base_version, '1.0.0'); 31 34 } 32 35 // si pas de table en base, on fera une simple creation de base 33 36 } 34 37 35 38 $maj = array(); 36 39 $maj['create'] = array( … … 39 42 40 43 $maj['1.1.0'] = array( 41 array('sql_updateq', "spip_messages",array('statut'=>'prepa'),"statut='redac'"),44 array('sql_updateq', "spip_messages", array('statut' => 'prepa'), "statut='redac'"), 42 45 array('maj_tables', array('spip_messages')), // champ destinataires 43 46 ); 44 47 45 48 $maj['1.1.1'] = array( 46 array('sql_alter', "TABLE spip_messages CHANGE id_auteur id_auteur bigint(21) DEFAULT 0 NOT NULL"),49 array('sql_alter', "TABLE spip_messages CHANGE id_auteur id_auteur bigint(21) DEFAULT 0 NOT NULL"), 47 50 ); 48 51 … … 72 75 73 76 74 75 77 ?> -
_core_/plugins/organiseur/organiseur_autoriser.php
r93253 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 /** 16 18 * Fonction vide pour charger ce fichier sans declencher de warning 19 * 17 20 * @return void 18 21 */ 19 function organiseur_autoriser() {}22 function organiseur_autoriser() { } 20 23 21 function autoriser_calendrier_menu_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){22 if ($GLOBALS['meta']['messagerie_agenda'] == 'oui')24 function autoriser_calendrier_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 25 if ($GLOBALS['meta']['messagerie_agenda'] == 'oui') { 23 26 return true; 27 } 28 24 29 return false; 25 30 } 26 31 27 function autoriser_messagerie_menu_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){28 if ($GLOBALS['meta']['messagerie_agenda'] == 'oui')32 function autoriser_messagerie_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 33 if ($GLOBALS['meta']['messagerie_agenda'] == 'oui') { 29 34 return true; 35 } 36 30 37 return false; 31 38 } 32 39 33 function autoriser_message_modifier_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){34 if (!intval($qui['id_auteur'])) 40 function autoriser_message_modifier_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 41 if (!intval($qui['id_auteur'])) { 35 42 return false; 36 $row = sql_fetsel('statut,type,id_auteur','spip_messages','id_message='.intval($id)); 43 } 44 $row = sql_fetsel('statut,type,id_auteur', 'spip_messages', 'id_message=' . intval($id)); 37 45 // on peut modifier ses penses betes ou ses messages brouillons 38 if ($row['id_auteur'] ==$qui['id_auteur'] AND ($row['statut']=='prepa' OR $row['type']=='pb'))46 if ($row['id_auteur'] == $qui['id_auteur'] AND ($row['statut'] == 'prepa' OR $row['type'] == 'pb')) { 39 47 return true; 48 } 40 49 // on peut modifier les annonces si on est admin 41 if ($qui['statut'] =='0minirezo' AND $row['type']=='affich')50 if ($qui['statut'] == '0minirezo' AND $row['type'] == 'affich') { 42 51 return true; 52 } 53 43 54 return false; 44 55 } 45 56 46 function autoriser_message_instituer_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){57 function autoriser_message_instituer_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 47 58 // rediriger vers la bonne autorisation en cas de suppression 48 if ($opt['statut'] == 'poub') 49 return autoriser('supprimer','message',$id,$qui,$opt); 50 return autoriser('modifier','message',$id,$qui,$opt); 59 if ($opt['statut'] == 'poub') { 60 return autoriser('supprimer', 'message', $id, $qui, $opt); 61 } 62 63 return autoriser('modifier', 'message', $id, $qui, $opt); 51 64 } 52 65 53 function autoriser_message_supprimer_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){66 function autoriser_message_supprimer_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 54 67 // on peut supprimer un message que l'on peut modifier 55 if (autoriser('modifier', 'message',$id,$qui,$opt))68 if (autoriser('modifier', 'message', $id, $qui, $opt)) { 56 69 return true; 70 } 57 71 // mais on peut aussi supprimer un message envoye par soi 58 72 // si tous ses dest l'on supprime aussi 59 73 if ( 60 74 $qui['id_auteur'] 61 AND sql_countsel('spip_messages',"statut='publie' AND id_auteur=".intval($qui['id_auteur'])." AND id_message=".intval($id)) 62 AND !sql_countsel('spip_auteurs_liens',"objet='message' AND id_objet=".intval($id)." AND vu!='poub' AND id_auteur!=".intval($qui['id_auteur'])) 63 ) 75 AND sql_countsel('spip_messages', 76 "statut='publie' AND id_auteur=" . intval($qui['id_auteur']) . " AND id_message=" . intval($id)) 77 AND !sql_countsel('spip_auteurs_liens', 78 "objet='message' AND id_objet=" . intval($id) . " AND vu!='poub' AND id_auteur!=" . intval($qui['id_auteur'])) 79 ) { 64 80 return true; 81 } 82 65 83 return false; 66 84 } 67 85 68 function autoriser_messagerecu_effacer_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){69 if (isset($opt['id_auteur'])) 86 function autoriser_messagerecu_effacer_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 87 if (isset($opt['id_auteur'])) { 70 88 $id_auteur = $opt['id_auteur']; 71 else89 } else { 72 90 $id_auteur = $qui['id_auteur']; 91 } 73 92 // seul le destinataire peut supprimer un message qui lui est destine 74 if (!intval($id_auteur) OR intval($id_auteur) != intval($qui['id_auteur'])) 93 if (!intval($id_auteur) OR intval($id_auteur) != intval($qui['id_auteur'])) { 75 94 return false; 95 } 96 76 97 // rien d'autre a verifier?... 77 98 return true; 78 99 } 79 100 80 function autoriser_message_dater_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){101 function autoriser_message_dater_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 81 102 return false; 82 103 } 83 104 84 function autoriser_envoyermessage_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){85 if (!($GLOBALS['meta']['messagerie_agenda'] == 'oui') OR !intval($qui['id_auteur'])) 105 function autoriser_envoyermessage_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 106 if (!($GLOBALS['meta']['messagerie_agenda'] == 'oui') OR !intval($qui['id_auteur'])) { 86 107 return false; 108 } 87 109 // on peut envoyer une annonce si on est admin 88 if (!($qui['statut'] =='0minirezo') AND $type=='affich')110 if (!($qui['statut'] == '0minirezo') AND $type == 'affich') { 89 111 return false; 112 } 113 90 114 return true; 91 115 } 92 116 93 function autoriser_message_voir_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){94 if (!intval($qui['id_auteur'])) 117 function autoriser_message_voir_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 118 if (!intval($qui['id_auteur'])) { 95 119 return false; 120 } 96 121 // message annonce ou message dont $qui est l'auteur : droit de le voir 97 if (sql_countsel('spip_messages','id_message='.intval($id).' AND (type=\'affich\' OR id_auteur='.intval($qui['id_auteur']).')')) 122 if (sql_countsel('spip_messages', 123 'id_message=' . intval($id) . ' AND (type=\'affich\' OR id_auteur=' . intval($qui['id_auteur']) . ')')) { 98 124 return true; 125 } 99 126 // message dont $qui est destinataire 100 if (sql_countsel('spip_auteurs_liens','objet=\'message\' AND id_objet='.intval($id)." AND vu!='poub' AND id_auteur=".intval($qui['id_auteur']))) 127 if (sql_countsel('spip_auteurs_liens', 128 'objet=\'message\' AND id_objet=' . intval($id) . " AND vu!='poub' AND id_auteur=" . intval($qui['id_auteur']))) { 101 129 return true; 130 } 102 131 103 132 return false; 104 133 } 105 134 106 function autoriser_message_repondre_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){107 135 function autoriser_message_repondre_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) { 136 return autoriser('ecrire', '', '', $qui['id_auteur']); 108 137 } -
_core_/plugins/organiseur/organiseur_fonctions.php
r93092 r93618 11 11 \***************************************************************************/ 12 12 13 if (!defined('_ECRIRE_INC_VERSION')) return; 13 if (!defined('_ECRIRE_INC_VERSION')) { 14 return; 15 } 14 16 15 17 … … 18 20 $_auteur = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent); 19 21 20 $boucle->join['auteurs_liens']=array("'".$boucle->id_table."'","'id_objet'","'".$boucle->primary."'","'auteurs_liens.objet=\'message\' AND auteurs_liens.id_auteur='.intval($_auteur)"); 21 $boucle->from['auteurs_liens']='spip_auteurs_liens'; 22 $boucle->join['auteurs_liens'] = array( 23 "'" . $boucle->id_table . "'", 24 "'id_objet'", 25 "'" . $boucle->primary . "'", 26 "'auteurs_liens.objet=\'message\' AND auteurs_liens.id_auteur='.intval($_auteur)" 27 ); 28 $boucle->from['auteurs_liens'] = 'spip_auteurs_liens'; 22 29 $boucle->from_type['auteurs_liens'] = 'LEFT'; 23 30 $where = 24 array("'OR'", 25 array("'AND'", 26 array("'!='","'".$boucle->id_table.".id_auteur'","intval($_auteur)"), 31 array( 32 "'OR'", 33 array( 34 "'AND'", 35 array("'!='", "'" . $boucle->id_table . ".id_auteur'", "intval($_auteur)"), 27 36 array( 28 37 "'AND'", 29 array("'='", "'auteurs_liens.id_auteur'","intval($_auteur)"),30 array("'!='", "'auteurs_liens.vu'","'\'poub\''"),38 array("'='", "'auteurs_liens.id_auteur'", "intval($_auteur)"), 39 array("'!='", "'auteurs_liens.vu'", "'\'poub\''"), 31 40 ), 32 41 ), 33 array("'OR'", 34 array("'='","'".$boucle->id_table.".type'","sql_quote('affich')"), 42 array( 43 "'OR'", 44 array("'='", "'" . $boucle->id_table . ".type'", "sql_quote('affich')"), 35 45 array( 36 46 "'AND'", 37 array("'='", "'".$boucle->id_table.".type'","sql_quote('pb')"),38 array("'='", "'".$boucle->id_table.".id_auteur'","intval($_auteur)"),47 array("'='", "'" . $boucle->id_table . ".type'", "sql_quote('pb')"), 48 array("'='", "'" . $boucle->id_table . ".id_auteur'", "intval($_auteur)"), 39 49 ) 40 50 ) … … 42 52 $not = $crit->not; 43 53 44 if ($crit->cond) 45 $where = array("'?'","strlen($_auteur)", $where,"'1=1'"); 54 if ($crit->cond) { 55 $where = array("'?'", "strlen($_auteur)", $where, "'1=1'"); 56 } 46 57 47 if ($not) 48 $where = array("'NOT'",$where); 58 if ($not) { 59 $where = array("'NOT'", $where); 60 } 49 61 50 62 $boucle->where[] = $where; 51 63 } 64 52 65 function critere_MESSAGES_non_lu_dist($idb, &$boucles, $crit) { 53 66 $boucle = &$boucles[$idb]; 54 67 $boucle->where[] = 55 array("'OR'", 56 "'auteurs_liens.vu IS NULL'", 57 "sql_in('auteurs_liens.vu',array('poub','oui'),'NOT',\$connect)" 68 array( 69 "'OR'", 70 "'auteurs_liens.vu IS NULL'", 71 "sql_in('auteurs_liens.vu',array('poub','oui'),'NOT',\$connect)" 58 72 ); 59 73 } … … 69 83 * 70 84 * @return string code PHP concernant la date. 71 **/85 **/ 72 86 function organiseur_calculer_date_reference($idb, &$boucles, $crit) { 73 if (isset($crit->param[0])) 87 if (isset($crit->param[0])) { 74 88 return calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent); 75 else89 } else { 76 90 return "date('Y-m-d H:i:00')"; 91 } 77 92 } 78 93 … … 91 106 92 107 $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit); 93 $_date = "$id_table." .(isset($boucle->show['date'])?$boucle->show['date']:"date_debut");94 $op = $crit->not ? "<=" :">";95 $where = array("'$op'", "'$_date'","sql_quote($_dateref)");108 $_date = "$id_table." . (isset($boucle->show['date']) ? $boucle->show['date'] : "date_debut"); 109 $op = $crit->not ? "<=" : ">"; 110 $where = array("'$op'", "'$_date'", "sql_quote($_dateref)"); 96 111 97 112 $boucle->where[] = $where; … … 112 127 $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit); 113 128 $_date = "$id_table.date_fin"; 114 $op = $crit->not ? ">=" :"<";129 $op = $crit->not ? ">=" : "<"; 115 130 116 $where = array("'$op'", "'$_date'","sql_quote($_dateref)");131 $where = array("'$op'", "'$_date'", "sql_quote($_dateref)"); 117 132 $boucle->where[] = $where; 118 133 } … … 131 146 132 147 $_dateref = organiseur_calculer_date_reference($idb, $boucles, $crit); 133 $_date_debut = "$id_table." .(isset($boucle->show['date'])?$boucle->show['date']:"date_debut");148 $_date_debut = "$id_table." . (isset($boucle->show['date']) ? $boucle->show['date'] : "date_debut"); 134 149 $_date_fin = "$id_table.date_fin"; 135 150 136 151 $where = 137 array("'AND'", 138 array("'<='", "'$_date_debut'", "sql_quote($_dateref)"), 139 array("'>='", "'$_date_fin'", "sql_quote($_dateref)") 140 ); 152 array( 153 "'AND'", 154 array("'<='", "'$_date_debut'", "sql_quote($_dateref)"), 155 array("'>='", "'$_date_fin'", "sql_quote($_dateref)") 156 ); 141 157 142 if ($crit->not) 143 $where = array("'NOT'",$where); 158 if ($crit->not) { 159 $where = array("'NOT'", $where); 160 } 144 161 $boucle->where[] = $where; 145 162 } 146 163 147 164 148 function organiseur_icone_message($type, $taille = 24){ 149 $icone = array('pb'=>'pensebete','affich'=>'annonce'); 150 $icone = isset($icone[$type])?$icone[$type]:'message'; 165 function organiseur_icone_message($type, $taille = 24) { 166 $icone = array('pb' => 'pensebete', 'affich' => 'annonce'); 167 $icone = isset($icone[$type]) ? $icone[$type] : 'message'; 168 151 169 return "$icone-$taille.png"; 152 170 } 153 function organiseur_texte_modifier_message($type){ 154 $texte = array('pb'=>'organiseur:icone_modifier_pensebete','affich'=>'organiseur:icone_modifier_annonce'); 155 $texte = isset($texte[$type])?$texte[$type]:'organiseur:icone_modifier_message'; 171 172 function organiseur_texte_modifier_message($type) { 173 $texte = array('pb' => 'organiseur:icone_modifier_pensebete', 'affich' => 'organiseur:icone_modifier_annonce'); 174 $texte = isset($texte[$type]) ? $texte[$type] : 'organiseur:icone_modifier_message'; 175 156 176 return _T($texte); 157 177 } 158 function organiseur_texte_nouveau_message($type){ 159 $texte = array('pb'=>'organiseur:icone_ecrire_nouveau_pensebete','affich'=>'organiseur:icone_ecrire_nouvelle_annonce'); 160 $texte = isset($texte[$type])?$texte[$type]:'organiseur:icone_ecrire_nouveau_message'; 178 179 function organiseur_texte_nouveau_message($type) { 180 $texte = array( 181 'pb' => 'organiseur:icone_ecrire_nouveau_pensebete', 182 'affich' => 'organiseur:icone_ecrire_nouvelle_annonce' 183 ); 184 $texte = isset($texte[$type]) ? $texte[$type] : 'organiseur:icone_ecrire_nouveau_message'; 185 161 186 return _T($texte); 162 187 } 188 163 189 ?> -
_core_/plugins/organiseur/organiseur_ieconfig.php
r72979 r93618 3 3 /** 4 4 * Déclarations des configurations qui peuvent être sauvegardées 5 * 5 * 6 6 * @package SPIP\Organiseur\Pipelines 7 **/7 **/ 8 8 9 if (!defined("_ECRIRE_INC_VERSION")) return; 9 if (!defined("_ECRIRE_INC_VERSION")) { 10 return; 11 } 10 12 11 13 /** … … 16 18 * @param array $table 17 19 * Déclaration des sauvegardes 18 * @return array 20 * @return array 19 21 * Déclaration des sauvegardes complétées 20 **/21 function organiseur_ieconfig_metas($table) {22 **/ 23 function organiseur_ieconfig_metas($table) { 22 24 $table['organiseur']['titre'] = _T('titre_messagerie_agenda'); 23 25 $table['organiseur']['icone'] = 'messagerie-16.png'; 24 26 $table['organiseur']['metas_brutes'] = 'messagerie_agenda'; 25 27 26 28 return $table; 27 29 } -
_core_/plugins/organiseur/organiseur_pipelines.php
r93253 r93618 12 12 13 13 /** 14 * Utilisations de pipelines 14 * Utilisations de pipelines 15 15 * 16 16 * @package SPIP\Organiseur\Pipelines 17 **/ 18 19 if (!defined('_ECRIRE_INC_VERSION')) return; 17 **/ 18 19 if (!defined('_ECRIRE_INC_VERSION')) { 20 return; 21 } 20 22 21 23 22 24 /** 23 25 * Lister les tables à ne pas inclure dans un export de BDD 24 * 26 * 25 27 * Ici se ramener à tester l'admin restreint est un abus 26 28 * car cela présume qu'un admin restreint ne peut pas faire de sauvegarde … … 30 32 * @todo *a revoir* 31 33 * @pipeline lister_tables_noexport 32 * 34 * 33 35 * @param array $EXPORT_tables_noexport 34 36 * @return array 35 37 */ 36 function organiseur_lister_tables_noexport($EXPORT_tables_noexport) {37 if (!$GLOBALS['connect_toutes_rubriques']) {38 $EXPORT_tables_noexport[] ='spip_messages';38 function organiseur_lister_tables_noexport($EXPORT_tables_noexport) { 39 if (!$GLOBALS['connect_toutes_rubriques']) { 40 $EXPORT_tables_noexport[] = 'spip_messages'; 39 41 #$EXPORT_tables_noexport[]='spip_auteurs_liens'; // where objet='message' 40 42 } 43 41 44 return $EXPORT_tables_noexport; 42 45 } … … 46 49 * 47 50 * @pipeline optimiser_base_disparus 48 * 49 * @param array $flux 50 * @return array 51 */ 52 function organiseur_optimiser_base_disparus($flux) {51 * 52 * @param array $flux 53 * @return array 54 */ 55 function organiseur_optimiser_base_disparus($flux) { 53 56 // 54 57 // Messages prives … … 57 60 # supprimer les messages lies a un auteur disparu 58 61 $res = sql_select("M.id_message AS id", 59 62 "spip_messages AS M 60 63 LEFT JOIN spip_auteurs AS A 61 64 ON A.id_auteur=M.id_auteur", 62 65 "A.id_auteur IS NULL"); 63 66 64 67 $flux['data'] += optimiser_sansref('spip_messages', 'id_message', $res); … … 72 75 * 73 76 * @pipeline alertes_auteur 74 * 77 * 75 78 * @param array $flux 76 79 * @return array … … 80 83 $id_auteur = $flux['args']['id_auteur']; 81 84 82 $result_messages = sql_allfetsel("M.id_message", "spip_messages AS M LEFT JOIN spip_auteurs_liens AS L ON (L.objet='message' AND L.id_objet=M.id_message)", "L.id_auteur=".intval($id_auteur)." AND vu='non' AND statut='publie' AND type='normal'"); 85 $result_messages = sql_allfetsel("M.id_message", 86 "spip_messages AS M LEFT JOIN spip_auteurs_liens AS L ON (L.objet='message' AND L.id_objet=M.id_message)", 87 "L.id_auteur=" . intval($id_auteur) . " AND vu='non' AND statut='publie' AND type='normal'"); 83 88 $total_messages = count($result_messages); 84 89 if ($total_messages == 1) { 85 90 $row = reset($result_messages); 86 $id_message=$row['id_message']; 87 $flux['data'][] = "<a href='" . generer_url_ecrire("message","id_message=$id_message") . "'>"._T('organiseur:info_1_message_nonlu')."</a>"; 88 } 89 elseif ($total_messages > 1) 90 $flux['data'][] = "<a href='" . generer_url_ecrire("messages") . "'>"._T('organiseur:info_nb_messages_nonlus', array('nb' => $total_messages))."</a>"; 91 $id_message = $row['id_message']; 92 $flux['data'][] = "<a href='" . generer_url_ecrire("message", 93 "id_message=$id_message") . "'>" . _T('organiseur:info_1_message_nonlu') . "</a>"; 94 } elseif ($total_messages > 1) { 95 $flux['data'][] = "<a href='" . generer_url_ecrire("messages") . "'>" . _T('organiseur:info_nb_messages_nonlus', 96 array('nb' => $total_messages)) . "</a>"; 97 } 91 98 92 99 return $flux; … … 98 105 * 99 106 * @pipeline affiche_auteurs_interventions 100 * 101 * @param array $flux 102 * @return array 103 */ 104 function organiseur_affiche_auteurs_interventions($flux) {105 106 if ($id_auteur = intval($flux['args']['id_auteur'])) {107 * 108 * @param array $flux 109 * @return array 110 */ 111 function organiseur_affiche_auteurs_interventions($flux) { 112 113 if ($id_auteur = intval($flux['args']['id_auteur'])) { 107 114 include_spip('inc/message_select'); 108 115 // Messages de l'auteur et discussions en cours 109 116 if ($GLOBALS['meta']['messagerie_agenda'] != 'non' 110 AND $id_auteur != $GLOBALS['visiteur_session']['id_auteur']111 AND autoriser('repondre', 'message', '', $id_auteur)117 AND $id_auteur != $GLOBALS['visiteur_session']['id_auteur'] 118 AND autoriser('repondre', 'message', '', $id_auteur) 112 119 ) { 113 $flux['data'] .= recuperer_fond('prive/squelettes/inclure/organiseur-interventions',array('id_auteur'=>$id_auteur)); 120 $flux['data'] .= recuperer_fond('prive/squelettes/inclure/organiseur-interventions', 121 array('id_auteur' => $id_auteur)); 114 122 } 115 123 } 116 return $flux; 124 125 return $flux; 117 126 } 118 127 119 128 /** 120 129 * Déclarer les metas de configuration de l'agenda/messagerie 121 * 130 * 122 131 * @pipeline configurer_liste_metas 123 132 * @param array $metas … … 126 135 * Couples nom de la méta => valeur par défaut 127 136 */ 128 function organiseur_configurer_liste_metas($metas) {137 function organiseur_configurer_liste_metas($metas) { 129 138 $metas['messagerie_agenda'] = 'oui'; 139 130 140 return $metas; 131 141 } … … 138 148 * @return string 139 149 */ 140 function organiseur_header_prive($head) {150 function organiseur_header_prive($head) { 141 151 // CSS calendrier 142 if ($GLOBALS['meta']['messagerie_agenda'] != 'non') 152 if ($GLOBALS['meta']['messagerie_agenda'] != 'non') { 143 153 $head .= '<link rel="stylesheet" type="text/css" href="' 144 . url_absolue(find_in_path('calendrier.css')) .'" />' . "\n"; 145 146 return $head; 154 . url_absolue(find_in_path('calendrier.css')) . '" />' . "\n"; 155 } 156 157 return $head; 147 158 } 148 159 … … 154 165 * @return array 155 166 */ 156 function organiseur_affiche_droite($flux) {157 if ($flux['args']['exec'] =='accueil'){167 function organiseur_affiche_droite($flux) { 168 if ($flux['args']['exec'] == 'accueil') { 158 169 $flux['data'] .= recuperer_fond( 159 170 'prive/squelettes/inclure/organiseur-rappels', 160 171 array( 161 'id_auteur' =>$GLOBALS['visiteur_session']['id_auteur'],172 'id_auteur' => $GLOBALS['visiteur_session']['id_auteur'], 162 173 'last' => $GLOBALS['visiteur_session']['quand'], 163 174 ) 164 175 ); 165 176 } 166 return $flux; 177 178 return $flux; 167 179 } 168 180 … … 174 186 * @return array 175 187 */ 176 function organiseur_affiche_milieu($flux){ 177 if ($flux['args']['exec']=='configurer_interactions'){ 178 $c = recuperer_fond('prive/squelettes/inclure/configurer_messagerie',array()); 179 if ($p = strpos($flux['data'],'<!--contenu_prive-->')) 180 $flux['data'] = substr_replace($flux['data'],$c,$p,0); 181 else 182 $flux['data'] .= $c; 183 } 184 return $flux; 188 function organiseur_affiche_milieu($flux) { 189 if ($flux['args']['exec'] == 'configurer_interactions') { 190 $c = recuperer_fond('prive/squelettes/inclure/configurer_messagerie', array()); 191 if ($p = strpos($flux['data'], '<!--contenu_prive-->')) { 192 $flux['data'] = substr_replace($flux['data'], $c, $p, 0); 193 } else { 194 $flux['data'] .= $c; 195 } 196 } 197 198 return $flux; 185 199 } 186 200 … … 192 206 * @return array 193 207 */ 194 function organiseur_post_edition($flux) {208 function organiseur_post_edition($flux) { 195 209 196 210 if (isset($flux['args']['table']) 197 AND $flux['args']['table'] =='spip_messages'198 AND $flux['args']['action'] =='instituer'199 AND $flux['data']['statut'] =='publie'200 AND $flux['args']['statut_ancien'] !='publie'201 ) {211 AND $flux['args']['table'] == 'spip_messages' 212 AND $flux['args']['action'] == 'instituer' 213 AND $flux['data']['statut'] == 'publie' 214 AND $flux['args']['statut_ancien'] != 'publie' 215 ) { 202 216 $id_message = $flux['args']['id_objet']; 203 $row = sql_fetsel('destinataires,id_auteur,titre,texte', 'spip_messages','id_message='.intval($id_message));204 if ($row) {217 $row = sql_fetsel('destinataires,id_auteur,titre,texte', 'spip_messages', 'id_message=' . intval($id_message)); 218 if ($row) { 205 219 include_spip('inc/messages'); 206 list($auteurs_dest, $email_dests) = messagerie_destiner(explode(',',$row['destinataires']));220 list($auteurs_dest, $email_dests) = messagerie_destiner(explode(',', $row['destinataires'])); 207 221 208 222 // diffuser le message en interne … … 212 226 } 213 227 } 214 return $flux; 215 } 228 229 return $flux; 230 }
Note: See TracChangeset
for help on using the changeset viewer.