Changeset 99326 in spip-zone


Ignore:
Timestamp:
Sep 1, 2016, 9:45:11 AM (3 years ago)
Author:
maieul@…
Message:

publier automatiquement les evenements lorsqu'on publie un almanach

une chose en moins sur la todolist

Location:
_plugins_/import_ics/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/import_ics/trunk/import_ics_pipelines.php

    r99126 r99326  
    3636        return $flux;
    3737}
    38 ?>
     38
     39
     40/**
     41 * Synchroniser le statut des evenements lorsqu'on publie/depublie un almanach
     42 * @param array $flux
     43 * @return array
     44 */
     45function import_ics_post_edition($flux) {
     46        if (isset($flux['args']['table'])
     47                and $flux['args']['table']=='spip_almanachs'
     48                and $flux['args']['action'] == 'instituer'
     49                and $id_almanach = $flux['args']['id_objet']
     50                and isset($flux['data']['statut'])
     51                and $statut = $flux['data']['statut']
     52                and $statut != $statut_ancien) {
     53                $set = array();
     54                switch ($statut) {
     55                        case 'poubelle':
     56                                // on passe aussi tous les evenements associes a la poubelle, sans distinction
     57                                $set['statut'] = 'poubelle';
     58                                break;
     59                        case 'publie':
     60                                // on passe aussi tous les evenements prop en publie
     61                                $set['statut'] = 'publie';
     62                                $where[] = "statut='prop'";
     63                                break;
     64                        case 'prop':
     65                                $set['statut'] = 'prop';
     66                                $where[] = "statut='publie'";
     67                                break;
     68                        }
     69                if (count($set)) {
     70                        include_spip('action/editer_evenement');
     71                        $res = sql_select('E.id_evenement', 'spip_evenements AS E
     72                        INNER JOIN spip_almanachs_liens AS L
     73                        ON E.id_evenement = L.id_objet AND L.id_almanach='.intval($id_almanach), $where);
     74                        // et on applique a tous les evenements lies a l'almanach
     75                        while ($row = sql_fetch($res)) {
     76                                evenement_modifier($row['id_evenement'], $set);
     77                        }
     78                        sql_free($res);
     79                }
     80        }
     81        return $flux;
     82}
  • _plugins_/import_ics/trunk/paquet.xml

    r99323 r99326  
    3030        <pipeline nom="declarer_champs_extras" inclure="base/import_ics.php" />
    3131        <pipeline nom="optimiser_base_disparus" inclure="import_ics_pipelines.php" />
     32        <pipeline nom="post_edition" inclure="import_ics_pipelines.php" />
    3233        <pipeline nom="taches_generales_cron" inclure="import_ics_pipelines.php" />
    3334        <pipeline nom="evenement_liaisons_colonne_gauche" inclure="import_ics_pipelines.php" />
  • _plugins_/import_ics/trunk/todo.txt

    r99315 r99326  
    1 - option pour que les evenements soient proposés et non pas publiés
    21- mieux gérer suppression des almanachs
    32- gérer les répetitions d'evt
Note: See TracChangeset for help on using the changeset viewer.