X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins-dist%2Forganiseur%2Forganiseur_pipelines.php;h=dacf9e7e30c358ff3ec676c4e828188a79088aef;hb=42e19314b95163d09c948850637de4b048c84020;hp=d44b438da85d13dc199b5f0550095c8b96270daa;hpb=122c920eb07e3f665789f8734965b576e6c25515;p=lhc%2Fweb%2Fwww.git diff --git a/www/plugins-dist/organiseur/organiseur_pipelines.php b/www/plugins-dist/organiseur/organiseur_pipelines.php index d44b438d..dacf9e7e 100644 --- a/www/plugins-dist/organiseur/organiseur_pipelines.php +++ b/www/plugins-dist/organiseur/organiseur_pipelines.php @@ -3,53 +3,68 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2014 * + * Copyright (c) 2001-2020 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ -if (!defined('_ECRIRE_INC_VERSION')) return; +/** + * Utilisations de pipelines + * + * @package SPIP\Organiseur\Pipelines + **/ + +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} /** - * Lister les tables a ne pas inclure dans un export de BDD - * ici se ramener a tester l'admin restreint est un abus - * car cela presume qu'un admin restreint ne peut pas faire de sauvegarde - * complete, alors que l'intention est d'exclure les messages - * des sauvegardes partielles que peuvent realiser les admin restreint + * Lister les tables à ne pas inclure dans un export de BDD + * + * Ici se ramener à tester l'admin restreint est un abus + * car cela présume qu'un admin restreint ne peut pas faire de sauvegarde + * complète, alors que l'intention est d'exclure les messages + * des sauvegardes partielles que peuvent réaliser les admin restreint * - * *a revoir* + * @todo *a revoir* + * @pipeline lister_tables_noexport * * @param array $EXPORT_tables_noexport * @return array */ -function organiseur_lister_tables_noexport($EXPORT_tables_noexport){ - if (!$GLOBALS['connect_toutes_rubriques']){ - $EXPORT_tables_noexport[]='spip_messages'; +function organiseur_lister_tables_noexport($EXPORT_tables_noexport) { + if (!$GLOBALS['connect_toutes_rubriques']) { + $EXPORT_tables_noexport[] = 'spip_messages'; #$EXPORT_tables_noexport[]='spip_auteurs_liens'; // where objet='message' } + return $EXPORT_tables_noexport; } /** * Optimiser les liens morts dans la base de donnees * + * @pipeline optimiser_base_disparus + * * @param array $flux * @return array */ -function organiseur_optimiser_base_disparus($flux){ +function organiseur_optimiser_base_disparus($flux) { // // Messages prives // # supprimer les messages lies a un auteur disparu - $res = sql_select("M.id_message AS id", - "spip_messages AS M - LEFT JOIN spip_auteurs AS A - ON A.id_auteur=M.id_auteur", - "A.id_auteur IS NULL"); + $res = sql_select( + 'M.id_message AS id', + 'spip_messages AS M + LEFT JOIN spip_auteurs AS A + ON A.id_auteur=M.id_auteur', + 'A.id_auteur IS NULL' + ); $flux['data'] += optimiser_sansref('spip_messages', 'id_message', $res); @@ -60,6 +75,8 @@ function organiseur_optimiser_base_disparus($flux){ * Generer les alertes message recu a destination de l'auteur * concerne par l'appel * + * @pipeline alertes_auteur + * * @param array $flux * @return array */ @@ -67,15 +84,25 @@ function organiseur_alertes_auteur($flux) { $id_auteur = $flux['args']['id_auteur']; - $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'"); + $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 L.vu='non' AND M.statut='publie' AND M.type='normal'" + ); $total_messages = count($result_messages); if ($total_messages == 1) { $row = reset($result_messages); - $id_message=$row['id_message']; - $flux['data'][] = ""._T('organiseur:info_1_message_nonlu').""; + $id_message = $row['id_message']; + $flux['data'][] = "" . _T('organiseur:info_1_message_nonlu') . ''; + } elseif ($total_messages > 1) { + $flux['data'][] = "" . _T( + 'organiseur:info_nb_messages_nonlus', + array('nb' => $total_messages) + ) . ''; } - elseif ($total_messages > 1) - $flux['data'][] = ""._T('organiseur:info_nb_messages_nonlus', array('nb' => $total_messages)).""; return $flux; } @@ -84,102 +111,123 @@ function organiseur_alertes_auteur($flux) { * Afficher les interventions et objets en lien * avec un auteur (sur sa page) * + * @pipeline affiche_auteurs_interventions + * * @param array $flux * @return array */ -function organiseur_affiche_auteurs_interventions($flux){ +function organiseur_affiche_auteurs_interventions($flux) { - if ($id_auteur = intval($flux['args']['id_auteur'])){ + if ($id_auteur = intval($flux['args']['id_auteur'])) { include_spip('inc/message_select'); // Messages de l'auteur et discussions en cours if ($GLOBALS['meta']['messagerie_agenda'] != 'non' - AND $id_auteur != $GLOBALS['visiteur_session']['id_auteur'] - AND autoriser('ecrire', '', '', $flux['args']['auteur']) + and $id_auteur != $GLOBALS['visiteur_session']['id_auteur'] + and autoriser('repondre', 'message', '', $id_auteur) ) { - $flux['data'] .= recuperer_fond('prive/squelettes/inclure/organiseur-interventions',array('id_auteur'=>$id_auteur)); + $flux['data'] .= recuperer_fond( + 'prive/squelettes/inclure/organiseur-interventions', + array('id_auteur' => $id_auteur) + ); } } - return $flux; + + return $flux; } /** - * Declarer les metas de configuration de l'agenda/messagerie + * Déclarer les metas de configuration de l'agenda/messagerie + * + * @pipeline configurer_liste_metas * @param array $metas + * Couples nom de la méta => valeur par défaut * @return array + * Couples nom de la méta => valeur par défaut */ -function organiseur_configurer_liste_metas($metas){ +function organiseur_configurer_liste_metas($metas) { $metas['messagerie_agenda'] = 'oui'; + return $metas; } /** - * Inserer la css de l'agenda dans l'espace prive (hum) + * Insérer la css de l'agenda dans l'espace privé (hum) + * + * @pipeline header_prive * @param string $head * @return string */ -function organiseur_header_prive($head){ +function organiseur_header_prive($head) { // CSS calendrier - if ($GLOBALS['meta']['messagerie_agenda'] != 'non') + if ($GLOBALS['meta']['messagerie_agenda'] != 'non') { $head .= '' . "\n"; + . url_absolue(find_in_path('calendrier.css')) . '" />' . "\n"; + } - return $head; + return $head; } /** * Afficher agenda, messages et annonces sur la page d'accueil * + * @pipeline affiche_droite * @param array $flux * @return array */ -function organiseur_affiche_droite($flux){ - if ($flux['args']['exec']=='accueil'){ +function organiseur_affiche_droite($flux) { + if ($flux['args']['exec'] == 'accueil') { $flux['data'] .= recuperer_fond( 'prive/squelettes/inclure/organiseur-rappels', array( - 'id_auteur'=>$GLOBALS['visiteur_session']['id_auteur'], + 'id_auteur' => $GLOBALS['visiteur_session']['id_auteur'], 'last' => $GLOBALS['visiteur_session']['quand'], ) ); } - return $flux; + + return $flux; } /** - * Afficher le formulaire de configuration sur la page concernee + * Afficher le formulaire de configuration sur la page concernée * + * @pipeline affiche_milieu * @param array $flux * @return array */ -function organiseur_affiche_milieu($flux){ - if ($flux['args']['exec']=='configurer_interactions'){ - $c = recuperer_fond('prive/squelettes/inclure/configurer_messagerie',array()); - if ($p = strpos($flux['data'],'')) - $flux['data'] = substr_replace($flux['data'],$c,$p,0); - else - $flux['data'] .= $c; +function organiseur_affiche_milieu($flux) { + if ($flux['args']['exec'] == 'configurer_interactions') { + $c = recuperer_fond('prive/squelettes/inclure/configurer_messagerie', array()); + if ($p = strpos($flux['data'], '')) { + $flux['data'] = substr_replace($flux['data'], $c, $p, 0); + } else { + $flux['data'] .= $c; + } } - return $flux; + + return $flux; } /** * Diffuser un message qui passe en publie (== a envoyer) * + * @pipeline post_edition * @param array $flux * @return array */ -function organiseur_post_edition($flux){ - - if ($flux['args']['table']=='spip_messages' - AND $flux['args']['action']=='instituer' - AND $flux['data']['statut']=='publie' - AND $flux['args']['statut_ancien']!='publie' - ){ +function organiseur_post_edition($flux) { + + if (isset($flux['args']['table']) + and $flux['args']['table'] == 'spip_messages' + and $flux['args']['action'] == 'instituer' + and $flux['data']['statut'] == 'publie' + and $flux['args']['statut_ancien'] != 'publie' + ) { $id_message = $flux['args']['id_objet']; - $row = sql_fetsel('destinataires,id_auteur,titre,texte','spip_messages','id_message='.intval($id_message)); - if ($row){ + $row = sql_fetsel('destinataires,id_auteur,titre,texte', 'spip_messages', 'id_message=' . intval($id_message)); + if ($row) { include_spip('inc/messages'); - list($auteurs_dest,$email_dests) = messagerie_destiner(explode(',',$row['destinataires'])); + list($auteurs_dest, $email_dests) = messagerie_destiner(explode(',', $row['destinataires'])); // diffuser le message en interne messagerie_diffuser_message($id_message, $auteurs_dest); @@ -187,5 +235,6 @@ function organiseur_post_edition($flux){ messagerie_mailer_message($id_message, $email_dests); } } + return $flux; -} \ No newline at end of file +}