Changeset 115367 in spip-zone


Ignore:
Timestamp:
May 13, 2019, 6:34:18 PM (9 days ago)
Author:
eric@…
Message:

Changement de look du formulaire : on affiche l'article choisi dans une table pour y inclure simplement la puce de statut et l'id. On revoit le formulaire en radio boutons afin d'y visualiser aussi la puce de statut.
Ajout de deux options accessibles par le pipeline formulaire_charger():

  • possibilité de changer la liste des statuts possibles
  • possibilité de préciser une condition supplémentaire en utilisant le critère where. Dans le charger remplir la variable '_where'.
Location:
_plugins_/article_accueil/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/article_accueil/trunk/formulaires/editer_article_accueil.html

    r115353 r115367  
    11<div class="formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_rubrique}" id="formulaire_#FORM-#ENV{id_rubrique}">
    2         <BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
    3         <div class="info_article_accueil">
    4         <BOUCLE_article(ARTICLES){id_article=#ID_ARTICLE_ACCUEIL}{statut IN 'prop','prepa','publie'}>
    5                 <:article_accueil:rubrique_article_en_accueil:> <a href="[(#ID_ARTICLE|generer_url_entite{article})]">[(#TITRE|trim|sinon{<:info_sans_titre:>})[ \((#ID_ARTICLE)\)]]</a>
    6         </BOUCLE_article>
    7         </B_article>
    8         <:article_accueil:aucun_article_accueil:>
    9         <//B_article>
    10         [(#ENV{editable})
    11         <span class="toggle_box_link" style="display:none;">
    12                 &#91;
    13                 <a href="#"
    14                         onclick="var f=jQuery(this).parents('.formulaire_spip').eq(0);
    15                                 f.find('form').show('fast');
    16                                 f.find('p').show('fast');
    17                                 f.find('.toggle_box_link').hide('fast');
    18                                 return false;"
    19                         >
    20                         <:bouton_changer:>
    21                 </a>
    22                 &#93;
    23         </span>
    24         ]
     2
     3        <div class="article_accueil-entete">
     4                <:article_accueil:rubrique_article_en_accueil:>
     5                [(#ENV{editable})
     6                <span class="toggle_box_link" style="display:none;">
     7                        &#91;
     8                        <a href="#"
     9                                onclick="var f=jQuery(this).parents('.formulaire_spip').eq(0);
     10                                        f.find('form').show('fast');
     11                                        f.find('p').show('fast');
     12                                        f.find('.toggle_box_link').hide('fast');
     13                                        return false;"
     14                                >
     15                                <:bouton_changer:>
     16                        </a>
     17                        &#93;
     18                </span>
     19                ]
    2520        </div>
    26         </BOUCLE_rubrique>
    27         [[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    28         [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    29         (#ENV{editable})
    30         <form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
    31                 [(#REM) declarer les hidden qui declencheront le service du formulaire
    32                 parametre : url d'action ]
    33                 #ACTION_FORMULAIRE{#ENV{action}}
    34                 <ul>
    35                         #SET{erreurs,#ENV**{erreurs}|table_valeur{id_article_accueil}}
    36                         <li class="editer_id_article_accueil[ (#GET{erreurs}|oui)erreur]">
    37                                 <label for="id_article_accueil"><:article_accueil:label_id_article_accueil:></label>
    38                                         [<span class='erreur_message'>(#GET{erreurs})</span>]
    39                                         [(#PLUGIN{polyhier}|oui) #INCLURE{fond=inclure/inc-selecteur_accueil_poly,id_rubrique} ]
    40                                         [(#PLUGIN{polyhier}|non) #INCLURE{fond=inclure/inc-selecteur_accueil,id_rubrique} ]
    41                         </li>
    42                 </ul>
    43                 [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    44                 <!--extra-->
    45                 <p class='boutons'>
    46                         <span class='image_loading'></span>
    47                         <input type='submit' class='btn submit' name='annuler' value='<:bouton_annuler:>' />
    48                         <input type="submit" class="btn submit" value="<:bouton_changer:>" />
    49                 </p>
    50         </div></form>]
     21        <div class="article_accueil-titre">
     22                <div class="liste-objets article-accueil">
     23                        <table class='spip liste'>
     24                                <tbody>
     25                                        <tr class="row_odd">
     26                <BOUCLE_article(ARTICLES){id_article=#ENV{id_article_accueil}}{statut IN #ENV{_statuts}}>
     27                                                <td class='statut'>[(#STATUT|puce_statut{article})]</td>
     28                                                <td class='titre principale'>
     29                                                        <a href="[(#ID_ARTICLE|generer_url_entite{article})]"
     30                                                                [hreflang="(#ENV{lang}|=={#LANG}|non|?{#LANG})"]
     31                                                                title="<:info_numero_abbreviation|attribut_html:> #ID_ARTICLE">
     32                                                                [(#RANG). ]<strong>[(#TITRE|trim|sinon{<:info_sans_titre:>})]</strong>
     33                                                        </a>
     34                                                </td>
     35                                                <td class='id'>#ID_ARTICLE</td>
     36                </BOUCLE_article>
     37                </B_article>
     38                                                <td class='titre principale'>
     39                                                        <:article_accueil:aucun_article_accueil:>
     40                                                </td>
     41                <//B_article>
     42                                        </tr>
     43                                </tbody>
     44                        </table>
     45                </div>
     46        </div>
     47
     48[(#ENV{editable})
     49                [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
     50                [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
     51                <form method="post" action="#ENV{action}" enctype="multipart/form-data"><div>
     52                        [(#REM) declarer les hidden qui declencheront le service du formulaire parametre : url d'action ]
     53                        #ACTION_FORMULAIRE{#ENV{action}}
     54                        <ul class="editer-groupe article_accueil-form">
     55                                #SET{erreurs,#ENV**{erreurs}|table_valeur{id_article_accueil}}
     56                                <li class="editer editer_id_article_accueil[ (#GET{erreurs}|oui)erreur]">
     57                                        <label for="id_article_accueil"><:article_accueil:label_id_article_accueil:></label>
     58                                        [<span class="erreur_message">(#GET{erreurs})</span>]
     59                                        #SET{selecteur, inc-selecteur_accueil}
     60                                        [(#PLUGIN{polyhier}|oui) #SET{selecteur, #GET{selecteur}|concat{_poly}}]
     61                                        #INCLURE{fond=inclure/#GET{selecteur},
     62                                                id_rubrique,
     63                                                id_article_accueil,
     64                                                _statuts,
     65                                                where=#ENV**{_where}
     66                                        }
     67                                </li>
     68                        </ul>
     69                        [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
     70                        <!--extra-->
     71                        <p class="boutons">
     72                                <span class="image_loading"></span>
     73                                <input type="submit" class="btn submit" name="annuler" value="<:bouton_annuler:>" />
     74                                <input type="submit" class="btn submit" value="<:bouton_changer:>" />
     75                        </p>
     76                </div></form>
     77]
    5178</div>
    5279<script type="text/javascript">// <![CDATA[
  • _plugins_/article_accueil/trunk/formulaires/editer_article_accueil.php

    r115352 r115367  
    1919 */
    2020function formulaires_editer_article_accueil_charger($id_rubrique) {
     21
    2122        $valeurs = array();
     23       
     24        // On passe au formulaire l'id de la rubrique, la liste des statuts d'article autorisés
     25        // et une condition where qui est initialisée à '' par défaut.
     26        // Ainsi, il est possible à un plugin de modifier la liste des statuts et le where pour
     27        // influer sur le sélecteur d'articles.
    2228        $valeurs['id_rubrique'] = $id_rubrique;
    23         include_spip('base/abstract_sql');
    24         $valeurs['id_article_accueil'] = sql_getfetsel(
    25                 'id_article_accueil',
    26                 'spip_rubriques',
    27                 'id_rubrique='.intval($id_rubrique)
    28         );
     29        $valeurs['_statuts'] = array('prepa', 'prop', 'publie');
     30        $valeurs['_where'] = '';
     31
     32        // On détermine si un article est déjà sélectionné ou pas.
     33        $valeurs['id_article_accueil'] = 0;
     34        if ($id = sql_getfetsel('id_article_accueil', 'spip_rubriques', 'id_rubrique='.intval($id_rubrique))) {
     35                $valeurs['id_article_accueil'] = $id;
     36        }
     37
    2938        return $valeurs;
    3039}
     
    3948function formulaires_editer_article_accueil_traiter($id_rubrique) {
    4049
     50        $retour = array(
     51                'message_ok' => '',
     52                'editable'   => true
     53        );
     54       
    4155        if (!_request('annuler')) {
    4256                $update = array();
     
    4862        }
    4963
    50         return array('message_ok'=>'','editable'=>true);
     64        return $retour;
    5165}
  • _plugins_/article_accueil/trunk/inclure/inc-selecteur_accueil.html

    r115350 r115367  
    1 <BOUCLE_rub(RUBRIQUES){id_rubrique}{tout}>
    2 <select name='id_article_accueil' id='id_article_accueil'>
    3 <option value='0'><:article_accueil:aucun_article_accueil:></option>
    4 <BOUCLE_art(ARTICLES){id_rubrique=#ID_RUBRIQUE}{statut IN 'prop','prepa','publie'}>
    5 <option value='#ID_ARTICLE'[ (#ID_ARTICLE|=={#ID_ARTICLE_ACCUEIL}|oui)selected="selected"]>[(#TITRE|trim|sinon{<:info_sans_titre:>})[ \((#ID_ARTICLE)\)]]</option>
     1<div class="choix">
     2        <input type="radio" name="id_article_accueil" class="radio" id="article_0" value="0"[ (#ENV{id_article_accueil}|non)checked="checked"]>
     3        <label for="article_0"><:article_accueil:aucun_article_accueil:></label>
     4</div>
     5<BOUCLE_art(ARTICLES){id_rubrique=#ID_RUBRIQUE}{statut IN #ENV{_statuts}}{where}>
     6<div class="choix">
     7        <input type="radio" name="id_article_accueil" class="radio" id="article_#ID_ARTICLE" value="#ID_ARTICLE"[ (#ID_ARTICLE|=={#ENV{id_article_accueil}}|oui)checked="checked"]>
     8        <label for="article_#ID_ARTICLE">[[(#STATUT|puce_statut{article}) ](#TITRE|trim|sinon{<:info_sans_titre:>})[ \((#ID_ARTICLE)\)]]</label>
     9</div>
    610</BOUCLE_art>
    7 </select>
    8 </BOUCLE_rub>
  • _plugins_/article_accueil/trunk/inclure/inc-selecteur_accueil_poly.html

    r115350 r115367  
    1 <BOUCLE_rub(RUBRIQUES){id_rubrique}{tout}>
    2 <select name='id_article_accueil' id='id_article_accueil'>
    3 <option value='0'><:article_accueil:aucun_article_accueil:></option>
    4 <BOUCLE_art(ARTICLES){enfants #ID_RUBRIQUE}{statut IN 'prop','prepa','publie'}>
    5 <option value='#ID_ARTICLE'[ (#ID_ARTICLE|=={#ID_ARTICLE_ACCUEIL}|oui)selected="selected"]>[(#TITRE|trim|sinon{<:info_sans_titre:>})[ \((#ID_ARTICLE)\)]]</option>
     1<div class="choix">
     2        <input type="radio" name="id_article_accueil" class="radio" id="article_0" value="0"[ (#ENV{id_article_accueil}|non)checked="checked"]>
     3        <label for="article_0"><:article_accueil:aucun_article_accueil:></label>
     4</div>
     5<BOUCLE_art(ARTICLES){enfants #ID_RUBRIQUE}{statut IN #ENV{_statuts}}{where}>
     6<div class="choix">
     7        <input type="radio" name="id_article_accueil" class="radio" id="article_#ID_ARTICLE" value="#ID_ARTICLE"[ (#ID_ARTICLE|=={#ENV{id_article_accueil}}|oui)checked="checked"]>
     8        <label for="article_#ID_ARTICLE">[[(#STATUT|puce_statut{article}) ](#TITRE|trim|sinon{<:info_sans_titre:>})[ \((#ID_ARTICLE)\)]]</label>
     9</div>
    610</BOUCLE_art>
    7 </select>
    8 </BOUCLE_rub>
  • _plugins_/article_accueil/trunk/lang/article_accueil_fr.php

    r97209 r115367  
    1313
    1414        // L
    15         'label_id_article_accueil' => 'Article d’accueil',
     15        'label_id_article_accueil' => 'Choisir un article',
    1616
    1717        // R
  • _plugins_/article_accueil/trunk/paquet.xml

    r115353 r115367  
    22        prefix="article_accueil"
    33        categorie="outil"
    4         version="1.1.9"
     4        version="1.2.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/article_accueil/trunk/prive/style_prive_plugin_article_accueil.html

    r59208 r115367  
    2626#SET{right,#ENV{ltr}|choixsiegal{left,right,left}}
    2727
    28 .formulaire_editer_article_accueil .info_article_accueil {
     28.formulaire_editer_article_accueil .article_accueil-entete {
    2929        padding-#GET{left}: 30px;
    3030        background: url(#CHEMIN_IMAGE{article_accueil-24.png}) no-repeat #GET{left};
     
    3333        margin-#GET{left}: -8px;
    3434        margin-#GET{right}: 60px;
    35         margin-bottom: 0;
    3635}
     36.formulaire_editer_article_accueil .article_accueil-titre {
     37        padding-#GET{left}: 30px;
     38        margin-#GET{left}: -8px;
     39}
     40.formulaire_editer_article_accueil .article_accueil-titre div.liste-objets.article-accueil {
     41        margin-top: 0;
     42    margin-bottom: 10px;
     43    border-top: 0;
     44}
     45.formulaire_editer_article_accueil .article_accueil-form {
     46        padding-#GET{left}: 30px;
     47        margin-#GET{left}: -8px;
     48        margin-bottom: 10px;
     49}
Note: See TracChangeset for help on using the changeset viewer.