Changeset 110361 in spip-zone


Ignore:
Timestamp:
May 24, 2018, 2:55:48 PM (3 years ago)
Author:
tcharlss@…
Message:

Possiblité de changer de parent lors de l'édition d'un chapitre.

Location:
_plugins_/chapitres/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/chapitres/trunk/chapitres_pipelines.php

    r110359 r110361  
    129129                // 1) Définir le parent
    130130                // S'il y a un id_parent
    131                 if ($id_parent = intval($flux['data']['id_parent']) or $id_parent = intval($flux['args']['id_parent'])) {
     131                if ($id_parent = intval($flux['data']['id_parent'])
     132                        or $id_parent = intval($flux['args']['id_parent'])
     133                ) {
    132134                        $flux['data']['id_parent'] = $id_parent;
    133135                       
     
    155157
    156158/**
     159 * Agir avant l'édition d'un objet
     160 *
     161 * => Institution d'un chapitre : si id_parent a été modifié, le renvoyer dans la liste des champs sinon il est ignoré. l'API cherche par défaut une rubrique comme parent, qui forcément n'existe pas.
     162 *
     163 * @pipeline pre_edition
     164 * @param  array $flux Données du pipeline
     165 * @return array       Données du pipeline
     166 */
     167function chapitres_pre_edition($flux) {
     168
     169        // Si on institue un chapitre et qu'un nouveau id_parent est sélectionné
     170        if ($flux['args']['action'] == 'instituer'
     171                and $flux['args']['table'] == 'spip_chapitres'
     172                and $id_chapitre = intval($flux['args']['id_objet'])
     173                and !is_null($id_parent = _request('id_parent'))
     174                and $id_parent_ancien = sql_getfetsel('id_parent', 'spip_chapitres', 'id_chapitre='.intval($id_chapitre))
     175                and $id_parent != $id_parent_ancien
     176        ) {
     177
     178                $flux['data']['id_parent'] = $id_parent;
     179
     180        }
     181
     182        return $flux;
     183}
     184
     185
     186/**
    157187 * Optimiser la base de données
    158188 *
  • _plugins_/chapitres/trunk/formulaires/editer_chapitre.php

    r109201 r110361  
    8484                                'label' => _T('chapitre:champ_titre_label'),
    8585                                'obligatoire' => 'oui',
     86                        ),
     87                ),
     88                array(
     89                        'saisie' => 'chapitres',
     90                        'options' => array(
     91                                'nom' => 'id_parent',
     92                                'label' => _T('chapitre:champ_id_parent_label'),
     93                                'recursif' => 'oui',
     94                                'exclus' => $id_chapitre,
    8695                        ),
    8796                ),
     
    155164                $valeurs = formulaires_editer_objet_charger('chapitre', $id_chapitre, $id_parent, $lier_trad, $retour, $config_fonc, $row, $hidden);
    156165        }
    157        
    158166        return $valeurs;
    159167}
     
    191199        set_request('objet', $objet);
    192200        set_request('id_objet', $id_objet);
    193         set_request('id_parent', $id_parent);
    194        
     201        // id_parent : on prend en priorité celui choisi manuellement
     202        $id_parent = is_null(_request('id_parent')) ? $id_parent : intval(_request('id_parent'));
     203
    195204        $retours = formulaires_editer_objet_traiter('chapitre', $id_chapitre, $id_parent, $lier_trad, $retour, $config_fonc, $row, $hidden);
    196        
     205
    197206        return $retours;
    198207}
  • _plugins_/chapitres/trunk/paquet.xml

    r110359 r110361  
    22        prefix="chapitres"
    33        categorie="edition"
    4         version="1.0.6"
     4        version="1.0.7"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
     
    2828        <pipeline nom="afficher_config_objet" inclure="chapitres_pipelines.php" />
    2929        <pipeline nom="pre_insertion" inclure="chapitres_pipelines.php" />
     30        <pipeline nom="pre_edition" inclure="chapitres_pipelines.php" />
    3031        <pipeline nom="optimiser_base_disparus" inclure="chapitres_pipelines.php" />
    3132
  • _plugins_/chapitres/trunk/saisies/_chapitres_recurs.html

    r109190 r110361  
    11[(#SET{separateur,[(#ENV{separateur}|concat{&nbsp;&rsaquo;&nbsp;})]})]
    2 <BOUCLE_chapitres(CHAPITRES){par num titre, titre}{id_parent}{tout}>
     2<BOUCLE_chapitres(CHAPITRES){par num titre, titre}{id_parent}{!id_chapitre IN #ENV{exclus}}{tout}>
    33        [(#ENV{multiple}|oui)
    44        <option value="#ID_CHAPITRE"[(#ID_CHAPITRE|in_array{#ENV{valeur,#ENV{defaut,#ARRAY}}}|oui) selected="selected"]>#GET{separateur}#TITRE</option>]
  • _plugins_/chapitres/trunk/saisies/chapitres.html

    r109190 r110361  
    44<select name="#ENV{nom}[(#ENV{multiple}|?{\[\]})]" id="champ_[(#ENV{nom}|saisie_nom2classe)]"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple" size="#ENV{size,10}"][ disabled="(#ENV{disable})"]>
    55        [(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
    6                 <option value="">[(#ENV{option_intro})]</option>]
    7         <BOUCLE_chapitres(CHAPITRES){id_chapitre?}{id_parent?}{statut?}{racine}{recherche?}{tout}{par num titre, titre}>
     6                <option value="0">[(#ENV{option_intro})]</option>]
     7        <BOUCLE_chapitres(CHAPITRES)
     8                {id_chapitre?}
     9                {!id_chapitre IN #ENV{exclus}}
     10                {id_parent?}
     11                {statut?}
     12                {racine}
     13                {recherche?}
     14                {tout}
     15                {par num titre, titre}
     16        >
    817                [(#ENV{multiple}|oui)
    918                <option value="#ID_CHAPITRE"[(#ID_CHAPITRE|in_array{#ENV{valeur_forcee,#GET{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>#TITRE</option>]
     
    1221                 
    1322                [(#ENV{recursif}|oui)
    14                 <INCLURE{fond=saisies/_chapitres_recurs,valeur=#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}},id_parent=#ID_CHAPITRE,multiple} />]
     23                <INCLURE{fond=saisies/_chapitres_recurs,valeur=#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}},id_parent=#ID_CHAPITRE,multiple,exclus} />]
    1524        </BOUCLE_chapitres>
    1625</select>
Note: See TracChangeset for help on using the changeset viewer.