Changeset 73396 in spip-zone


Ignore:
Timestamp:
Jun 9, 2013, 1:21:00 PM (6 years ago)
Author:
eric@…
Message:

Et voilà les projets fonctionnent eux aussi.
Incrément mineur de version

Location:
_plugins_/todo
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/todo/paquet.xml

    r73392 r73396  
    22        prefix="todo"
    33        categorie="edition"
    4         version="1.3.1"
     4        version="1.3.2"
    55        etat="test"
    66        compatibilite="[2.1.8;3.0.*]"
  • _plugins_/todo/plugin.xml

    r73392 r73396  
    33        <auteur>RastaPopoulos</auteur>
    44        <licence>GPL v3</licence>
    5         <version>1.3.1</version>
     5        <version>1.3.2</version>
    66        <etat>test</etat>
    77        <slogan>Lister rapidement des choses à faire</slogan>
  • _plugins_/todo/wheels/todo.php

    r73393 r73396  
    88        // Liste des statuts supportés
    99        global $todo_statuts;
     10
     11        // Initialisation du html calculé
     12        $html = $t;
     13
    1014        // En attendant de la config
    1115        static $todo_statuts_finaux = array('termine', 'abandonne');
     
    1721        array_shift($lignes);
    1822        array_pop($lignes);
    19        
    20         $taches = array();
    21         $types_info = array();
    22         $priorite_utilisee = false;
     23
     24        // Initialisation des variables propres à l'ensemble des todos du bloc
     25        $todos = array();
     26        $index_todo = 0;
    2327        $index_tache = 0;
     28
     29        // Analyse de chaque ligne
    2430        foreach ($lignes as $_ligne){
     31                // Initialisation des variables de la todolist en cours
     32                if ($index_tache == 0) {
     33                        $types_info[$index_todo] = array();
     34                        $priorite_utilisee[$index_todo] = false;
     35                }
     36
     37                // Initialisation des variables de la tache en cours
    2538                $priorite = '';
    2639                $tags = $types = $infos = array();
    2740                $texte = trim($_ligne);
     41
    2842                if ($texte) {
    2943                        // Extraction du premier caractère de la ligne qui détermine soit :
     
    5569                                                $valeur = $infos_complementaires[2][$_cle];
    5670                                                if ($type == '@') {
    57                                                         if ((intval($valeur) >=1) AND (intval($valeur) <=9)) {
     71                                                        if (preg_match('#^[1-9]$#', $valeur, $m)) {
    5872                                                                // -- la priorité
    5973                                                                $priorite = $valeur;
    60                                                                 $priorite_utilisee = true;
     74                                                                $priorite_utilisee[$index_todo] = true;
    6175                                                        }
    6276                                                        else {
     
    6882                                                        // -- les informations typées
    6983                                                        $infos[$type] = $valeur;
    70                                                         if (!in_array($type, $types_info))
    71                                                                 $types_info[] = $type;
     84                                                        if (!in_array($type, $types_info[$index_todo]))
     85                                                                $types_info[$index_todo][] = $type;
    7286                                                }
    7387                                        }
     
    7791
    7892                                // Ajout de la tache dans la liste fournie au modèle
    79                                 $taches[$index_tache] = array(
     93                                $todos[$index_todo][$index_tache] = array(
    8094                                        'statut' => array(
    8195                                                                        'id' =>$statut,
     
    8498                                        'titre' => $titre,
    8599                                        'tags' => $tags,
    86                                         'infos' => ($priorite_utilisee ? array_merge($infos, array('priorite' => $priorite)) : $infos),
     100                                        'infos' => ($priorite_utilisee[$index_todo] ? array_merge($infos, array('priorite' => $priorite)) : $infos),
    87101                                );
    88102                                $index_tache += 1;
     
    90104                        elseif ($premier == ':') {
    91105                                // Projet
     106                                $index_todo += 1;
     107                                $projets[$index_todo] = trim(substr($texte, 1, strlen($texte)-1));
     108                                $index_tache = 0;
    92109                        }
    93110                        else {
    94111                                // Descriptif libre de la tache précedente
    95                                 $taches[$index_tache-1]['titre'] .= '<br />' . $texte;
     112                                $todos[$index_todo][$index_tache-1]['titre'] .= '<br />' . $texte;
    96113                        }
    97114                }
    98115        }
    99116
    100         if ($taches) {
    101                 return recuperer_fond(
    102                         'inclure/todo',
    103                         array(
    104                                 'taches' => $taches,
    105                                 'types_info' => ($priorite_utilisee ? array_merge($types_info, array('priorite')) : $types_info)
    106                         ),
    107                         array(
    108                                 'ajax' => true
    109                         )
    110                 );
     117        // Appel pour chaque todolist du modèle par défaut
     118        if ($todos) {
     119                $html = '';
     120                foreach($todos as $_cle => $_taches) {
     121                        if ($_taches) {
     122                                $html .= recuperer_fond(
     123                                        'inclure/todo',
     124                                        array(
     125                                                'projet' => (isset($projets[$_cle]) ? $projets[$_cle] : ''),
     126                                                'taches' => $_taches,
     127                                                'types_info' => ($priorite_utilisee[$_cle] ? array_merge($types_info[$_cle], array('priorite')) : $types_info[$_cle])
     128                                        ),
     129                                        array(
     130                                                'ajax' => true
     131                                        )
     132                                );
     133                        }
     134                }
    111135        }
    112         else{
    113                 return $t;
    114         }
     136
     137        return $html;
    115138}
    116139
Note: See TracChangeset for help on using the changeset viewer.