Changeset 83089 in spip-zone


Ignore:
Timestamp:
Jun 16, 2014, 1:51:05 PM (5 years ago)
Author:
bmarne@…
Message:

Unformisation des blocs pour les différents gabarits

Location:
_squelettes_/galaxie_melusine/melusine/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/galaxie_melusine/melusine/trunk/css/ajout_module.css

    r82966 r83089  
    88    padding-bottom: 0.5em;
    99}
    10 p, ul {
     10p, ul, ol {
    1111    margin-left: 0.3em;
    1212    margin-right: 0.3em;
    1313}
    14 ul.ajouter_module {
     14ul.ajouter_module, ul.uniformiser_bloc {
    1515    padding-left: 0px;
    1616}
    17 ul.ajouter_module>li {
     17ul.ajouter_module>li, ul.uniformiser_bloc>li {
    1818    list-style: none;
    1919    border-top: 1px solid dimgray;
    2020}
    21 div.haut_module {
     21div.haut_module, div.choix {
    2222    padding-top: 0.3em;
    2323    padding-bottom: 0.3em;
     
    2525    margin: 0px;
    2626}
     27div.haut_module.checked, div.choix.checked {
     28    background-color: lightgreen;
     29}
    2730span.nom_module {
    2831    font-weight: bold;
     32}
     33span.pages_du_gabarit {
     34    font-size: 80%
    2935}
    3036div.description_module {
     
    4854    vertical-align:middle;
    4955}
     56div.config_bloc {
     57    border: 1px solid #DCDCDC;
     58    font-size: 80%;
     59}
     60div.config_bloc>p {
     61    margin: 0px;
     62    background-color: #DCDCDC;
     63    padding: 1em;
     64}
     65div.config_bloc>ol>li {
     66}
  • _squelettes_/galaxie_melusine/melusine/trunk/formulaires/melusine_uniformiser_bloc.html

    r83079 r83089  
     1[(#SET{gabarit,#CONFIG{melusine_data/pages/#TYPE}})]
     2[(#SET{nom_gabarit,[(#GET{gabarit}|melusine_nomgabarit)]})]
     3[(#SET{nom_bloc,[(#BLOC|melusine_nombloc)]})]
     4[(#SET{modules_dispo,[(#NOOP|melusine_lister_noisettes|sinon{#ARRAY})]})]
     5[(#SET{text_confirm,[Vous allez effacer la configuartion du bloc « (#GET{nom_bloc}) » pour les pages utilisant les gabarits que vous avez sélectionnés, pour la remplacer par celle de la page « #TYPE »[ (gabarit « (#GET{nom_gabarit}) »)]. Êtes vous sûr·e ?]})]
    16<div class="formulaire_spip formulaire_uniformiser_bloc">
    27        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    38        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    4         <form action="#ENV{action}" method="post"><div>
     9        <form action="#ENV{action}" method="post" onsubmit="[return confirm\('(#GET{text_confirm}|replace{"'","\'"}|attribut_html)'\);]"><div>
    510                #ACTION_FORMULAIRE{#ENV{action}}
    611                <ul class="boutons uniformiser_bloc obligatoire">
    7 <BOUCLE_dispos(POUR){tableau #ENV{tableau_types}}{cle != #CONFIG{melusine_data/pages/#TYPE}}{si #ENV{editable}|oui}>
    8                         <li id="[(#CLE|attribut_html)]" class="deplier">
     12<BOUCLE_dispos(POUR){tableau #ENV{tableau_types}}{cle != #GET{gabarit}}{si #ENV{editable}|oui}>[
     13
     14        (#SET{liste_pages,[(#CLE|melusine_pages_du_gabarit|implode{", "})]})
     15]                       <li id="[(#CLE|attribut_html)]" class="deplier">
    916                                <div class="choix">
    1017                                        <input
    1118                                                type='checkbox'
    1219                                                class="checkbox"
    13                                                 name='noms_blocs'
     20                                                name='gabarits[]'
    1421                                                value='[(#CLE|attribut_html)]'
    1522                                                id='checkbox_#CLE' />
    16                                         <label for='checkbox_#GET{id}'>
    17                                                 <span class="nom_module">[(#VALEUR|spip_ucfirst)]</span>
     23                                        <label for='checkbox_#CLE'>
     24                                                <span class="nom_module">[(#VALEUR|spip_ucfirst)]</span>[ <span class="pages_du_gabarit"> \(utilisé par&nbsp;: (#GET{liste_pages})\)</span>]
    1825                                        </label>
    1926                                </div>
     
    2431        </div></form>
    2532</div>
     33<div class="infos config_bloc">
     34        <p>Le bloc[ &laquo;&nbsp;(#GET{nom_bloc})&nbsp;&raquo; ]de la page &laquo;&nbsp;#TYPE&nbsp;&raquo;[ (gabarit &laquo;&nbsp;(#GET{nom_gabarit})&nbsp;&raquo;)] contient actuellement les modules&nbsp;:</p>
     35        <ol>
     36<BOUCLE_blocs(NOISETTES){bloc}{type}{par rang}>
     37                <li>[(#GET{modules_dispo}|table_valeur_cleslash{#NOISETTE!nom})]</li>
     38</BOUCLE_blocs>
     39        </ol>
     40</div>
     41#FILTRE{trim}
  • _squelettes_/galaxie_melusine/melusine/trunk/formulaires/melusine_uniformiser_bloc.php

    r83079 r83089  
    6969function formulaires_melusine_uniformiser_bloc_traiter_dist($bloc,$type="rubrique"){
    7070        // Pas d'ajax...
    71         refuser_traiter_formulaire_ajax();
     71        // refuser_traiter_formulaire_ajax();
    7272
    73         $nom_module = _request("nom_module");
    74         $valider = _request("valider");
    75         $retour = array();
    76         $retour['editable'] = true;
     73        $gabarits = _request("gabarits");
     74        $liste_pages = array();
     75
     76        // On fait la liste des pages concernées
     77        foreach($gabarits as $gabarit)
     78                $liste_pages = array_merge($liste_pages,melusine_pages_du_gabarit($gabarit));
    7779
    7880
    79         // Si on a validé le formulaire
    80         if ($valider == "valider") {
    81                 // On cherche une place libre dans le casier
    82                 // et on y met le module
    83                 // Infos de la noisette:
    84                 include_spip('base/abstract_sql');
    85                 // infos sur le module le plus bas
    86                 // dans le bloc
    87                 $infos_module_bas= sql_fetsel(
    88                         array(
    89                                 "rang",
    90                                 ),
    91                         "spip_noisettes",
    92                         "bloc = ".sql_quote($bloc)." AND type = ".sql_quote($type),
    93                         "",
    94                         "rang DESC"
     81        // on récupère les blocs du gabarit à uniformiser
     82        $infos_modules_bloc= sql_allfetsel(
     83                array(
     84                        "id_noisette",
     85                        "rang",
     86                        "noisette",
     87                        "parametres",
     88                        "css",
     89                        ),
     90                "spip_noisettes",
     91                "bloc = ".sql_quote($bloc)." AND type = ".sql_quote($type)
     92                );
     93
     94        // Pour chaque page,
     95        // - On vide les noisettes existantes
     96        // - On remplace par les noisettes à uniformiser
     97        include_spip('base/abstract_sql');
     98        include_spip('action/editer_objet');
     99        foreach($liste_pages as $page) {
     100                //On efface les modules du bloc pour cette page
     101                $result = sql_delete(
     102                                "spip_noisettes",
     103                                "bloc=".sql_quote($bloc)." AND type=".sql_quote($page)
    95104                        );
    96                 // Pas de place...
    97                 if ($infos_module_bas['rang'] > 11)
    98                         return array('message_erreur' => "Plus de place dans ce bloc&nbsp;! Vous devez d'abord retirer un module...");
     105                if ($result === false)
     106                        return array("message_erreur" => "Échec lors de la vidange du bloc $bloc de la page $type...");
     107                // on crée une copie pour chaque page des gabarits selectionnés
     108                foreach($infos_modules_bloc as $noisette_a_copier) {
     109                        $noisette_a_copier['bloc'] = $bloc;
     110                        $noisette_a_copier['type'] = $page;
     111                        unset($noisette_a_copier['id_noisette']);
     112                        $id_noisette = objet_inserer("noisette", $id_parent="",$noisette_a_copier);
     113                        if (!$id_noisette)
     114                                return array("message_erreur" => "Impossible d'insérer le module ".$noisette_a_copier['nom']." dans le bloc ".$bloc." de la page ".$page. "au rang ".$noisette_a_copier['rang']);
     115                }
    99116               
     117        }
    100118
    101                 // On met le module dans la base:
    102                 include_spip('action/editer_objet');
    103                 $set = array(
    104                         "rang" => $infos_module_bas['rang']+1,
    105                         "type" => $type,
    106                         "bloc" => $bloc,
    107                         "noisette" => $nom_module
    108                 );
    109                 $id_noisette = objet_inserer("noisette", $id_parent="",$set);
    110                 if (!$id_noisette)
    111                         return array("message_erreur" => "Impossible d'insérer le module ".$nom_module." dans le bloc ".$bloc." de la page ".$type. "au rang ".$rang);
    112 
    113                        
    114                 // On invalide le cache
    115                 include_spip('inc/invalideur');
    116                 suivre_invalideur(1);
    117 
    118                 $retour = array(
    119                         "message_ok" => "module &laquo;&nbsp;$nom_module&nbsp;&raquo; inséré",
    120                         "editable" => false,
    121                         "id_noisette" => $id_noisette
    122                         );
    123         }
    124         return $retour;
     119        return array("message_ok" => "Uniformisation du bloc réussie");
    125120}
    126121?>
Note: See TracChangeset for help on using the changeset viewer.