Changeset 91551 in spip-zone


Ignore:
Timestamp:
Aug 31, 2015, 10:23:34 AM (6 years ago)
Author:
marcimat@…
Message:

Pouvoir restreindre le plan de page à un couple objet / statut.

La décoration du sélecteur fonctionne sous firefox (mais pas chrome).
Les optgroup et option c'est pas pratique si on veut mettre un peu d'image dedans.

Location:
_plugins_/plan/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/plan/trunk/lang/plan_fr.php

    r91546 r91551  
    66$GLOBALS[$GLOBALS['idx_lang']] = array(
    77
    8         // L
    9         'lien_tout_afficher' => 'tous',
     8        // T
     9        'tous_les_statuts' => 'Tous les statuts',
    1010
    1111        // P
    1212        'plan_titre' => 'Plan du site dans l’espace privé',
    13        
    14         // T
    15         'texte_statut_publie' => 'publiés',
    16         'texte_statut_prop' => 'proposés à l\'évaluation',
    17         'texte_statut_prepa' => 'en cours de rédaction'
    18 
    1913
    2014);
  • _plugins_/plan/trunk/paquet.xml

    r91546 r91551  
    22        prefix="plan"
    33        categorie="navigation"
    4         version="1.1.1"
     4        version="1.2.0"
    55        etat="test"
    66        compatibilite="[3.0.0;3.1.*]"
  • _plugins_/plan/trunk/plan_fonctions.php

    r91533 r91551  
    5555}
    5656
     57/**
     58 * Trouve les objets qui peuvent s'afficher dans le plan de page, dans une rubrique
     59 * ainsi que leurs statuts utilisables
     60 *
     61 * @return array
     62**/
     63function plan_lister_objets_rubrique_statuts() {
     64        $objets = plan_lister_objets_rubrique();
     65        include_spip('inc/session');
     66        include_spip('inc/puce_statut');
     67        $liste = array();
     68        foreach ($objets as $table => $null) {
     69                $desc = lister_tables_objets_sql($table);
     70                $statuts = array_keys($desc['statut_textes_instituer']);
     71                if ($table == 'spip_articles') {
     72                        $autorises = statuts_articles_visibles(session_get('statut'));
     73                        $statuts = array_intersect($statuts, $autorises);
     74                }
     75                $objet = $desc['table_objet'];
     76                // obtenir titre et image du statut
     77                $_statuts = array();
     78                foreach ($statuts as $statut) {
     79                        $_statuts[$statut] = array(
     80                                'image' => statut_image($objet, $statut),
     81                                'titre' => statut_titre($objet, $statut),
     82                        );
     83                }
     84                $liste[ $objet ] = $_statuts;
     85        }
     86
     87        return $liste;
     88}
  • _plugins_/plan/trunk/prive/squelettes/contenu/plan.html

    r91546 r91551  
    3838        </span>
    3939
    40         <span class='statut'>
    41                 Statuts :
    42                 <a [(#ENV{statut}|non)class='on' ]href="[(#SELF|parametre_url{statut,''})]"><:plan:lien_tout_afficher:></a> |
    43                 <a [(#ENV{statut}|=={publie}|oui)class='on' ]href="[(#SELF|parametre_url{statut,publie})]"><:plan:texte_statut_publie:></a> |
    44                 <a [(#ENV{statut}|=={prop}|oui)class='on' ]href="[(#SELF|parametre_url{statut,prop})]"><:plan:texte_statut_prop:></a> |
    45                 <a [(#ENV{statut}|=={prepa}|oui)class='on' ]href="[(#SELF|parametre_url{statut,prepa})]"><:plan:texte_statut_prepa:></a>
    46                 [(#REM) TODO : faire une boucle pour générer la liste des status, éventuellement remplacer les noms par les puces de couleur (pour gagner de la place) ]
     40[(#SET{statut,[(#ENV{statuts}|?{[(#ENV{statuts}|explode{-}|end)],#NULL})]})]
     41[(#SET{objet,[(#ENV{statuts}|?{[(#ENV{statuts}|explode{-}|reset)],#NULL})]})]
     42
     43        <span class='statut #GET{objet}'>
     44                <B_objets_statuts>
     45                        <form method="GET" action="#SELF" onChange="this.submit(); return true;">
     46                        [(#SELF|parametre_url{statuts,''}|form_hidden)]
     47                        <select name="statuts" id="selection_statut">
     48                                <option value=""[(#ENV{statuts}|non) selected="selected"]><:plan:tous_les_statuts:></option>
     49                <BOUCLE_objets_statuts(DATA){source table, #REM|plan_lister_objets_rubrique_statuts}>
     50                                <optgroup label="[(#CLE|objet_info{texte_objets}|_T)]" class="#CLE">
     51                                        <BOUCLE_statuts(DATA){source table, #VALEUR}>
     52                                                [(#SET{class,[(#_objets_statuts:CLE)]-#CLE})]
     53                                                <option class="#GET{class}" value="#GET{class}"[(#ENV{statuts}|=={#GET{class}}|oui) selected="selected"]>#TITRE</option>
     54                                        </BOUCLE_statuts>
     55                                </optgroup>
     56                </BOUCLE_objets_statuts>
     57                        </select>
     58                        </form>
     59                </B_objets_statuts>
    4760        </span>
    4861</div>
     
    5063#BOITE_OUVRIR{'', simple}
    5164<div id="racine">
    52 <INCLURE{fond=prive/squelettes/inclure/plan2-rubriques, id_parent=0, statut}>
     65<INCLURE{fond=prive/squelettes/inclure/plan2-rubriques, id_parent=0, statut=#GET{statut}, objet=#GET{objet}}>
    5366</div>
    5467#BOITE_FERMER
  • _plugins_/plan/trunk/prive/squelettes/head/plan.html

    r91533 r91551  
    1919#mytree_actions input,
    2020#mytree_actions .pliage { margin-right:2em; }
     21#mytree_actions .statut {
     22        padding-left:20px;
     23        background: transparent left 5px no-repeat;
     24        display:inline-block;
     25}
     26#mytree_actions .statut form { display:inline; }
     27#mytree_actions .statut form optgroup {
     28        margin-top:.3em; padding:5px 5px 5px 25px;
     29        background: transparent 3px 5px no-repeat;
     30}
     31#mytree_actions .statut form option {
     32        padding:2px 2px 2px 20px;
     33        background: transparent 2px center no-repeat;
     34}
     35<BOUCLE_objets_statuts(DATA){source table, #REM|plan_lister_objets_rubrique_statuts}>
     36#mytree_actions .statut.#CLE {
     37        background-image: url([(#CLE|objet_icone{16}|extraire_attribut{src})]);
     38}
     39#mytree_actions .statut form optgroup.#CLE {
     40        background-image: url([(#CLE|objet_icone{16}|extraire_attribut{src})]);
     41}
     42<BOUCLE_statuts(DATA){source table, #VALEUR}>
     43[(#SET{class,[(#_objets_statuts:CLE)]-#CLE})]
     44#mytree_actions .statut form option.#GET{class} {
     45        background-image: url(#CHEMIN_IMAGE{#IMAGE});
     46}
     47</BOUCLE_statuts>
     48</BOUCLE_objets_statuts>
    2149</style>
  • _plugins_/plan/trunk/prive/squelettes/inclure/plan2-rubriques.html

    r91524 r91551  
    1010                                </a>
    1111
    12                                 <BOUCLE_objets(DATA){source table,#REM|plan_lister_objets_rubrique}>
    13                                         <INCLURE{fond=prive/squelettes/inclure/plan2-#VALEUR,id_rubrique=#_rubriques:ID_RUBRIQUE, env}>
     12                                <BOUCLE_objets(DATA){source table,#REM|plan_lister_objets_rubrique}{par cle}>
     13                                        [(#ENV{objet}|non|ou{#ENV{objet}|=={#VALEUR}})
     14                                                <INCLURE{fond=prive/squelettes/inclure/plan2-#VALEUR,id_rubrique=#_rubriques:ID_RUBRIQUE, env}>
     15                                        ]
    1416                                </BOUCLE_objets>
    1517                                <INCLURE{fond=prive/squelettes/inclure/plan2-rubriques,id_parent=#ID_RUBRIQUE, id_rubrique='',env}>
Note: See TracChangeset for help on using the changeset viewer.