Changeset 63403 in spip-zone


Ignore:
Timestamp:
Jul 11, 2012, 6:00:32 PM (7 years ago)
Author:
marcimat@…
Message:

Le sélecteur générique du core de SPIP 3 n'avait pas de vue dédiée. On lui en fait une et on affiche dedans chaque élément trié par objet puis par identifiant.

Location:
_plugins_/saisies
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/paquet.xml

    r63004 r63403  
    22        prefix="saisies"
    33        categorie="outil"
    4         version="1.25.13"
     4        version="1.25.14"
    55        etat="test"
    66        compatibilite="[2.0.0;3.0.*]"
  • _plugins_/saisies/plugin.xml

    r63010 r63403  
    44    <auteur>Matthieu Marcillaud - RastaPopoulos - Joseph</auteur>
    55    <licence>&#169; 2009-2011 GNU/GPL</licence>
    6     <version>1.25.13</version>
     6    <version>1.25.14</version>
    77    <etat>test</etat>
    88    <categorie>outil</categorie>
  • _plugins_/saisies/saisies_fonctions.php

    r62648 r63403  
    5151}
    5252
     53/**
     54 * Liste les éléments du sélecteur générique triés
     55 *
     56 * Les éléments sont triés par objets puis par identifiants
     57 *
     58 * @example
     59 *     L'entrée :
     60 *     'rubrique|3,rubrique|5,article|2'
     61 *     Retourne :
     62 *     array(
     63 *        0 => array('objet'=>'article', 'id_objet' => 2),
     64 *        1 => array('objet'=>'rubrique', 'id_objet' => 3),
     65 *        2 => array('objet'=>'rubrique', 'id_objet' => 5),
     66 *     )
     67 *
     68 * @param string $selected
     69 *     Liste des objets sélectionnés
     70 * @return array
     71 *     Liste des objets triés
     72**/
     73function picker_selected_par_objet($selected) {
     74        $res = array();
     75        $liste = picker_selected($selected);
     76        // $liste : la sortie dans le désordre
     77        if (!$liste) {
     78                return $res;
     79        }
     80
     81        foreach ($liste as $l) {
     82                if (!isset($res[ $l['objet'] ])) {
     83                        $res[ $l['objet'] ] = array();
     84                }
     85                $res[$l['objet']][] = $l['id_objet'];
     86        }
     87        // $res est trié par objet, puis par identifiant
     88        ksort($res);
     89        foreach ($res as $objet => $ids) {
     90                sort($res[$objet]);
     91        }
     92
     93        // on remet tout en file
     94        $liste = array();
     95        foreach ($res as $objet=>$ids) {
     96                foreach ($ids as $id) {
     97                        $liste[] = array('objet' => $objet, 'id_objet' => $id);
     98                }
     99        }
     100
     101        return $liste;
     102}
    53103?>
Note: See TracChangeset for help on using the changeset viewer.