Changeset 104217 in spip-zone


Ignore:
Timestamp:
May 6, 2017, 8:53:13 AM (2 years ago)
Author:
eric@…
Message:

Premiere mise à jour de la présentation des pages listant les pages et les objets configurables.

Location:
_plugins_/noizetier/trunk
Files:
4 added
15 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/demo/noizetier.html

    r103269 r104217  
    2424?>
    2525
    26         #SET{liste, #NOIZETIER_PAGE_INFOS{article-evenement}}
     26        #SET{liste, #NOIZETIER_PAGE_INFOS}
    2727        [(#GET{liste}|bel_env{#EVAL{true}})]
    2828
  • _plugins_/noizetier/trunk/formulaires/editer_page.html

    r103269 r104217  
    149149                        <p class="explication"><:noizetier:explication_heritages_composition:></p>
    150150                        <ul class="editer-groupe">
    151                         <BOUCLE_heritage(DATA){source table,#ENV{_heritiers}}{par cle}>
     151                <BOUCLE_heritage(DATA){source table, #ENV{_heritiers}}{par cle}>
    152152                                <B_type>
    153153                                #SET{name,heritage-#CLE}
     
    160160                                                <option value=""><:noizetier:ne_pas_definir_d_heritage:></option>
    161161                                                <option value="-"[(#ENV{#GET{name}}|=={'-'}|oui)selected="selected"]><:compositions:composition_defaut:></option>
    162                                                 <BOUCLE_type(POUR){tableau #VALEUR}{par cle}>
     162                                <BOUCLE_type(DATA){source table, #VALEUR}{par cle}>
    163163                                                <option value="#CLE"[(#ENV{heritage-#_heritage:CLE}|=={#CLE}|oui)selected="selected"]>[(#VALEUR|table_valeur{nom}|sinon{#CLE})]</option>
    164                                                 </BOUCLE_type>
     164                                </BOUCLE_type>
    165165                                        </select>
    166166                                </li>
    167167                                </B_type>
    168                         </BOUCLE_heritage>
     168                </BOUCLE_heritage>
    169169                        </ul>
    170170                </fieldset>
  • _plugins_/noizetier/trunk/formulaires/editer_page.php

    r103269 r104217  
    5151                $valeurs['description'] = $description_page['description'];
    5252                $valeurs['icon'] = $description_page['icon'];
    53 
    54                 $valeurs['_heritiers'] = lister_heritiers($valeurs['type_page']);
    55                 $compositions_virtuelles = lire_config('noizetier_compositions', array());
    56                 foreach ($valeurs['_heritiers'] as $_objet => $_infos) {
    57                         if (isset($compositions_virtuelles[$valeurs['page']]['branche'][$_objet])) {
    58                                 $valeurs["heritage-.${_objet}"] = $compositions_virtuelles[$page]['branche'][$_objet];
    59                         }
    60                 }
     53                $valeurs = array_merge($valeurs, construire_heritages($page, $valeurs['type_page']));
    6154
    6255        } elseif ($edition == 'dupliquer') {
     
    6861                $valeurs['composition_source'] = $description_page;
    6962                $valeurs['nom'] = _T('noizetier:copie_de', array('source' => $description_page['nom']));
     63                $valeurs = array_merge($valeurs, construire_heritages($page, $valeurs['type_page']));
    7064
    7165        } elseif ($edition == 'creer') {
     
    163157        $type_page = _request('type_page');
    164158        $composition = _request('composition');
    165         $peupler = ($acte == 'dupliquer') ? true : (($acte == 'creer' and _request('peupler')) ? true : false);
     159        $peupler = ($edition == 'dupliquer') ? true : (($edition == 'creer' and _request('peupler')) ? true : false);
    166160
    167161        // Au cas où on n'a pas encore configuré de compositions
     
    195189                and $type_page != 'page'
    196190        ) {
    197                 $composition_ref = ($acte == 'creer') ? '' : noizetier_page_composition($page); // si on ne créé pas, c'est qu'on duplique
     191                $composition_ref = ($edition == 'creer') ? '' : noizetier_page_composition($page); // si on ne créé pas, c'est qu'on duplique
    198192                include_spip('base/abstract_sql');
    199193                $config_mere = sql_allfetsel(
     
    219213
    220214        // On invalide le cache en cas de création ou  de dpulication
    221         if (in_array($acte, array('creer', 'dupliquer'))) {
     215        if (in_array($edition, array('creer', 'dupliquer'))) {
    222216                include_spip('inc/invalideur');
    223217                suivre_invalideur("id='page/$type_page-$composition'");
     
    225219
    226220        $res['message_ok'] = _T('info_modification_enregistree');
    227         if (in_array($acte, array('creer', 'dupliquer'))) {
     221        if (in_array($edition, array('creer', 'dupliquer'))) {
    228222                $res['redirect'] = parametre_url(parametre_url(self(), 'new', ''), 'page', $type_page.'-'.$composition);
    229223        } elseif ($retour) {
     
    240234
    241235
    242 // Détermine les compositions héritables par ce type de page
    243 function lister_heritiers($type) {
    244         $heritiers = array();
     236// Détermine les compositions héritables par ce type de page et les héritages pour chaque branche
     237function construire_heritages($page, $type) {
     238        $heritages = array('_heritiers' => array());
    245239        foreach (compositions_recuperer_heritage() as $_objet => $_parent) {
    246240                if ($_parent == $type) {
    247                         $heritiers = array_merge($heritiers, compositions_lister_disponibles($_objet));
    248                 }
    249         }
    250 
    251         return $heritiers;
    252 }
     241                        $heritages['_heritiers'] = array_merge($heritages['_heritiers'], compositions_lister_disponibles($_objet));
     242                }
     243        }
     244
     245        if ($heritages['_heritiers']) {
     246                $compositions_virtuelles = lire_config('noizetier_compositions', array());
     247                foreach ($heritages['_heritiers'] as $_objet => $_infos) {
     248                        if (isset($compositions_virtuelles[$page]['branche'][$_objet])) {
     249                                $heritages["heritage-.${_objet}"] = $compositions_virtuelles[$page]['branche'][$_objet];
     250                        }
     251                }
     252        }
     253
     254        return $heritages;
     255}
  • _plugins_/noizetier/trunk/lang/noizetier_fr.php

    r103269 r104217  
    117117        'label_titre_noisette_perso' => 'Titre personnalisé :',
    118118        'liste_icones' => 'Liste d’icônes',
    119         'liste_objets' => 'Liste des objets',
     119        'liste_objets_configures' => 'Liste des objets',
    120120        'liste_pages' => 'Liste des pages',
     121        'liste_pages_objet_oui' => 'Liste des pages liées à un type d\'objet',
     122        'liste_pages_objet_non' => 'Liste des pages non liées à un type d\'objet',
     123        'liste_objets' => 'Liste des objets possédant une configuration de noisettes',
    121124
    122125        // M
  • _plugins_/noizetier/trunk/noizetier_fonctions.php

    r103269 r104217  
    10771077                                                                        if (!defined('_DIR_PLUGIN_'.strtoupper($plugin))) {
    10781078                                                                                $page_a_garder = false;
     1079                                                                                break;
    10791080                                                                        }
    10801081                                                                }
     
    11111112
    11121113/**
    1113  * Retourne la configuration de la page, de la composition explicite ou de la composition vrtuelle demandée.
     1114 * Retourne la configuration de la page, de la composition explicite ou de la composition virtuelle demandée.
    11141115 *
    11151116 * @uses noizetier_obtenir_dossier_pages()
     
    11601161                        $identifiants[1] = '';
    11611162                }
    1162                 $composition_virtuelle = false;
     1163                $est_virtuelle = false;
    11631164
    11641165                // La recherche de la page est basée sur l'heuristique suivante:
     
    12501251                                        $description['blocs'] = array_diff($options['blocs_defaut'], $description['blocs_exclus']);
    12511252                                }
    1252                                 $composition_virtuelle = true;
     1253                                $est_virtuelle = true;
    12531254                        }
    12541255                }
     
    12561257                // Sauvegarde de la description de la page pour une consultation ultérieure dans le même hit.
    12571258                if ($description) {
     1259                        // Renuméroter les blocs à cause des exclusions
     1260                        sort($description['blocs']);
     1261                        // Stockage des identifiants séparément
    12581262                        $description['type'] = $identifiants[0];
    12591263                        $description['composition'] = $identifiants[1];
    1260                         $description['composition_virtuelle'] = $composition_virtuelle;
     1264                        // Identifie si la page est celle d'un objet SPIP (toujours vrai pour une composition)
     1265                        include_spip('base/objets');
     1266                        $tables_objets = array_keys(lister_tables_objets_sql());
     1267                        $description['est_page_objet'] = in_array(table_objet_sql($description['type']), $tables_objets) ? 'oui' : 'non';
     1268                        // Stockage de l'information indiquant si la page ou la composition est virtuelle ou pas
     1269                        $description['est_virtuelle'] = $est_virtuelle;
    12611270                        $description_page[$page] = $description;
    12621271                } else {
  • _plugins_/noizetier/trunk/noizetier_pipelines.php

    r102943 r104217  
    44if (!defined('_ECRIRE_INC_VERSION')) {
    55        return;
    6 }
    7 
    8 function noizetier_header_prive($flux) {
    9         $css = direction_css(find_in_path('css/noizetier.css'));
    10         $flux .= "\n<link rel='stylesheet' href='$css' type='text/css' />\n";
    11 
    12         return $flux;
    136}
    147
  • _plugins_/noizetier/trunk/paquet.xml

    r103864 r104217  
    2323        <pipeline nom="declarer_tables_interfaces" inclure="base/noizetier_tables.php" />
    2424        <pipeline nom="autoriser" inclure="noizetier_autoriser.php" />
    25         <pipeline nom="header_prive" inclure="noizetier_pipelines.php" />
    2625        <pipeline nom="recuperer_fond" inclure="noizetier_pipelines.php" />
    2726        <pipeline nom="styliser" inclure="noizetier_pipelines.php" />
     
    4746        <utilise nom="Z" compatibilite="[1.7.15;1.9.*]" />
    4847
    49         <menu nom="noizetier" titre="noizetier:editer_noizetier_titre" parent="menu_squelette" icone="images/noizetier-16.png" action="noizetier_pages" />
     48        <menu nom="noizetier" titre="noizetier:editer_noizetier_titre" parent="menu_squelette" icone="images/noizetier-16.png" action="noizetier_pages" parametres="est_page_objet=oui" />
    5049</paquet>
  • _plugins_/noizetier/trunk/prive/squelettes/contenu/noizetier_objets.html

    r103269 r104217  
    11[(#AUTORISER{configurer, noizetier}|sinon_interdire_acces)]
    22<h1 class="grostitre">
    3         <:noizetier:noizetier:>&nbsp;-&nbsp;<:noizetier:liste_objets:>
     3        <:noizetier:noizetier:>&nbsp;-&nbsp;<:noizetier:liste_objets_configures:>
    44</h1>
    55<B_objet_types>
  • _plugins_/noizetier/trunk/prive/squelettes/contenu/noizetier_page.html

    r103269 r104217  
    77
    88[(#BOITE_OUVRIR{
    9         [(#GET{informations/composition_virtuelle}|oui)
     9        [(#GET{informations/est_virtuelle}|oui)
    1010                [(#URL_ECRIRE{noizetier_page_edit}
    1111                        |parametre_url{edition, modifier}
     
    3131        ]
    3232        <br class="clear" />
    33         [(#GET{informations/composition_virtuelle}|oui)
     33        [(#GET{informations/est_virtuelle}|oui)
    3434                [(#URL_ACTION_AUTEUR{supprimer_composition_noizetier,#ENV{page},#URL_ECRIRE{noizetier_pages}}|icone_verticale{<:noizetier:formulaire_supprimer_page:>,page,del,right})]
    3535        ]
  • _plugins_/noizetier/trunk/prive/squelettes/contenu/noizetier_pages.html

    r103269 r104217  
    77<p><:noizetier:editer_noizetier_explication:></p>
    88<ul class="liste-items liste-pages noizetier-liste-pages">
    9 <BOUCLE_pages(DATA) {source table, #NOIZETIER_PAGE_INFOS}{par cle}>
    10         <li class="item page" [ style="background-image: url((#VALEUR|table_valeur{icon}|sinon{page-24.png}|noizetier_chemin_icone|image_reduire{24}|extraire_attribut{src}));"]>
    11                 <a[ href="(#URL_ECRIRE{noizetier_page}|parametre_url{page, #CLE})"]>[(#VALEUR{nom}|sinon{#CLE})]</a>
    12                 [<br />(#VALEUR{description}|ptobr|sinon{&nbsp;})]
     9<BOUCLE_pages(DATA) {source table, #NOIZETIER_PAGE_INFOS}{est_page_objet?}{par cle}>
     10        <li class="item page[ virtuelle"(#VALEUR{est_virtuelle}|oui)]">
     11                <div[ class="composition"(#VALEUR{composition}|oui)]>
     12                        [(#REM) Informations de base sur la page ]
     13                        <div class="resume">
     14                                <a[ href="(#URL_ECRIRE{noizetier_page}|parametre_url{page, #CLE})"]>[(#VALEUR{nom}|sinon{#CLE})]</a>
     15                                <i>[ \((#CLE)\)]</i>
     16                                [<br />(#VALEUR{description}|ptobr|sinon{&nbsp;})]
     17                                [(#REM) Logo de la page ]
     18                                <div class="icone">
     19                                        [(#VALEUR{icon}|sinon{page-24.png}|noizetier_chemin_icone|image_reduire{24}|extraire_attribut{src}|balise_img)]
     20                                </div>
     21                        </div>
     22                        [(#REM) Actions possibles sur la page ]
     23                        <div class="edition">
     24                                [(#VALEUR{composition}|non)
     25                                        [(#AUTORISER{creercomposition, noizetier})
     26                                                [<a href="(#URL_ECRIRE{noizetier_page_edit}|parametre_url{edition, creer}|parametre_url{source, #VALEUR{type}})" title="">
     27                                                        [<img height="24" width="24" src="(#CHEMIN_IMAGE{composition-add-24.png})" alt="" />]
     28                                                </a>]
     29                                        ]
     30                                ]
     31                                [(#VALEUR{composition}|oui)
     32                                        [(#AUTORISER{modifiercomposition, noizetier}|et{#VALEUR{est_virtuelle}}|oui)
     33                                                [<a href="(#URL_ECRIRE{noizetier_page_edit}|parametre_url{edition, modifier}|parametre_url{page, #CLE})" title="">
     34                                                        [<img height="24" width="24" src="(#CHEMIN_IMAGE{edit-24.png})" alt="" />]
     35                                                </a>]
     36                                        ]
     37                                        [(#AUTORISER{dupliquercomposition, noizetier})
     38                                                [<a href="(#URL_ECRIRE{noizetier_page_edit}|parametre_url{edition, dupliquer}|parametre_url{source, #CLE})" title="">
     39                                                        [<img height="24" width="24" src="(#CHEMIN_IMAGE{composition-copy-24.png})" alt="" />]
     40                                                </a>]
     41                                        ]
     42                                ]
     43                        </div>
     44                </div>
    1345        </li>
    1446</BOUCLE_pages>
    1547</ul>
    16 [(#AUTORISER{creercomposition, noizetier})
    17         [(#URL_ECRIRE{noizetier_page_edit}
    18                 |parametre_url{edition, creer}
    19                 |icone_verticale{<:noizetier:editer_nouvelle_page:>, page-24, 'new', right})]
    20 ]
    2148#BOITE_FERMER
    2249</B_pages>
     50
     51<script type="text/javascript">
     52        $(function(){
     53                $('.item.page .edition').hide();
     54                $('.item.page')
     55                        .hover(
     56                                function(){
     57                                        $(this).find('.edition').show();
     58                                },
     59                                function(){
     60                                        $(this).find('.edition').hide();
     61                                }
     62                        );
     63        });
     64</script>
  • _plugins_/noizetier/trunk/prive/squelettes/hierarchie/noizetier_page.html

    r102946 r104217  
    11[(#ENV{exec}|=={noizetier_page}|oui)
    22        [(#ENV{page}|oui)
    3                 <a href="#URL_ECRIRE{noizetier_pages}"><:noizetier:liste_pages:></a>
    4                 &gt; <strong class="on"> [(#NOIZETIER_LISTE_PAGES{#ENV{page}}|table_valeur{nom})]</strong>
     3                <a href="[(#URL_ECRIRE{noizetier_pages}|parametre_url{est_page_objet, #NOIZETIER_PAGE_INFOS{#ENV{page}, est_page_objet}})]">
     4                        [(#VAL{noizetier:liste_pages_objet_}|concat{#NOIZETIER_PAGE_INFOS{#ENV{page}, est_page_objet}}|_T)]
     5                </a>
     6                &gt; <strong class="on"> [(#NOIZETIER_PAGE_INFOS{#ENV{page}, nom})]</strong>
    57        ]
    68        [(#ENV{page}|non)
  • _plugins_/noizetier/trunk/prive/squelettes/inclure/inc-nav_pages.html

    r102940 r104217  
    11[(#REM) <!-- Navigation dans les pages ou les objets --> ]
    2 
    3 <B_menu_pages>
    42<ul class="liste-items sous_navigation">
    5 <BOUCLE_menu_pages(DATA){source table, #LISTE{pages, objets}}>
    6         #SET{page_exec, #VAL{noizetier_}|concat{#VALEUR}}
     3        #SET{page_exec, noizetier_pages}
     4        [<li class="item">
     5                (#URL_ECRIRE{#GET{page_exec}}
     6                        |parametre_url{est_page_objet, oui}
     7                        |lien_ou_expose{
     8                                <:noizetier:liste_pages_objet_oui:>,
     9                                #GET{page_exec}|=={#ENV{exec}}|et{#ENV{est_page_objet, oui}|=={oui}}})
     10        </li>]
     11        [<li class="item">
     12                (#URL_ECRIRE{#GET{page_exec}}
     13                        |parametre_url{est_page_objet, non}
     14                        |lien_ou_expose{
     15                                <:noizetier:liste_pages_objet_non:>,
     16                                #GET{page_exec}|=={#ENV{exec}}|et{#ENV{est_page_objet, oui}|=={non}}})
     17        </li>]
     18        #SET{page_exec, noizetier_objets}
    719        [<li class="item">
    820                (#URL_ECRIRE{#GET{page_exec}}
    921                        |lien_ou_expose{
    10                                 [(#VAL{noizetier:liste_}|concat{#VALEUR}|_T)],
     22                                <:noizetier:liste_objets:>,
    1123                                #GET{page_exec}|=={#ENV{exec}}})
    1224        </li>]
    13 </BOUCLE_menu_pages>
    1425</ul>
    15 </B_menu_pages>
     26
     27[(#REM) Racourcis d'import et d'export d'une configuration de noisettes ]
     28[(#PLUGIN{ieconfig}|oui)
     29        <INCLURE{fond=prive/squelettes/inclure/inc-raccourcis_ieconfig} />
     30]
  • _plugins_/noizetier/trunk/prive/squelettes/inclure/inc-raccourcis_ieconfig.html

    r102941 r104217  
    1 [(#PLUGIN{ieconfig}|oui)
    21#BOITE_OUVRIR{'','raccourcis'}
    32        [(#URL_ECRIRE{ieconfig_export}|icone_horizontale{<:noizetier:editer_exporter_configuration:>,config-export})]
    43        [(#URL_ECRIRE{ieconfig_import}|icone_horizontale{<:noizetier:editer_importer_configuration:>,config-import})]
    5 #BOITE_FERMER]
     4#BOITE_FERMER
  • _plugins_/noizetier/trunk/prive/squelettes/navigation/noizetier_objets.html

    r102941 r104217  
    11[(#REM) Menu permettant d'accéder :
    2         - à la liste des pages (défaut)
    3         - ou à la liste des objets possédant des noisettes spécifiques ]
     2        - à la liste des pages liées à un objet (défaut)
     3        - à la liste des pages non liées à un objet
     4        - ou à la liste des objets possédant des noisettes spécifiques
     5        et aussi à aux fonction d'import-export de configuration si le plugin
     6        IEConfig est installé ]
    47<INCLURE{fond=prive/squelettes/inclure/inc-nav_pages, env} />
    5 
    6 [(#REM) Racourcis d'import et d'export d'une configuration de noisettes ]
    7 <INCLURE{fond=prive/squelettes/inclure/inc-raccourcis_ieconfig} />
  • _plugins_/noizetier/trunk/prive/squelettes/navigation/noizetier_pages.html

    r102941 r104217  
    11[(#REM) Menu permettant d'accéder :
    2         - à la liste des pages (défaut)
    3         - ou à la liste des objets possédant des noisettes spécifiques ]
     2        - à la liste des pages liées à un objet (défaut)
     3        - à la liste des pages non liées à un objet
     4        - ou à la liste des objets possédant des noisettes spécifiques
     5        et aussi à aux fonction d'import-export de configuration si le plugin
     6        IEConfig est installé ]
    47<INCLURE{fond=prive/squelettes/inclure/inc-nav_pages, env} />
    5 
    6 [(#REM) Racourcis d'import et d'export d'une configuration de noisettes ]
    7 <INCLURE{fond=prive/squelettes/inclure/inc-raccourcis_ieconfig} />
Note: See TracChangeset for help on using the changeset viewer.