Changeset 114939 in spip-zone


Ignore:
Timestamp:
Apr 12, 2019, 3:46:08 PM (6 months ago)
Author:
abelass@…
Message:

liste compacte objets

  • tient en compte les associations
  • compatible rang
Location:
_plugins_/interface_traduction_objets/trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/interface_traduction_objets/trunk/interface_traduction_objets_pipelines.php

    r114834 r114939  
    3333
    3434        //Insertion des onglets de langue
    35         if (strpos($fond, 'prive/squelettes/contenu/') !== false AND
    36                 $objet = _request('exec') AND
    37                 $objet_exec = trouver_objet_exec($objet) AND
    38                 $table_objet = $objet_exec['table_objet_sql'] AND
    39                 $trouver_table = charger_fonction('trouver_table', 'base') AND
    40                 $desc = $trouver_table($table_objet) AND
    41                 isset($desc['field']['lang']) AND
    42                 isset($desc['field']['id_trad']) AND
    43                 isset($desc['field']['langue_choisie']) AND
    44                 $id_table_objet = $objet_exec['id_table_objet'] AND
    45                 $id_objet = $contexte[$id_table_objet] AND
    46                 $fond == 'prive/squelettes/contenu/' . $objet AND
    47                 $config = explode(',' ,$GLOBALS['meta']['desactiver_interface_traduction']) AND
     35        if (strpos($fond, 'prive/squelettes/contenu/') !== false and
     36                $objet = _request('exec') and
     37                $objet_exec = trouver_objet_exec($objet) and
     38                $table_objet = $objet_exec['table_objet_sql'] and
     39                $trouver_table = charger_fonction('trouver_table', 'base') and
     40                $desc = $trouver_table($table_objet) and
     41                isset($desc['field']['lang']) and
     42                isset($desc['field']['id_trad']) and
     43                isset($desc['field']['langue_choisie']) and
     44                $id_table_objet = $objet_exec['id_table_objet'] and
     45                $id_objet = $contexte[$id_table_objet] and
     46                $fond == 'prive/squelettes/contenu/' . $objet and
     47                $config = explode(',' ,$GLOBALS['meta']['desactiver_interface_traduction']) and
    4848                !in_array($table_objet, $config)
    4949        ) {
     
    107107
    108108        // Liste compacte des objets traduits
    109         if ($exec = _request('exec') AND
    110                 $exec != 'recherche' AND
    111                 strpos($fond, 'prive/objets/liste/') !== false AND
    112                 $segments = explode('/', $fond) AND
    113                 $objets = $segments[3] AND
    114                 $objet = objet_type($objets) AND
    115                 $exec != $objet AND
    116                 $table_objet_sql = table_objet_sql($objet) AND
    117                 $id_table_objet = id_table_objet($objet) AND
    118                 $tables_spip = lister_tables_spip() AND
    119                 isset($tables_spip[$table_objet_sql]) AND
    120                 $trouver_table = charger_fonction('trouver_table', 'base') AND
    121                 $desc = $trouver_table($table_objet_sql) AND
    122                 isset($desc['field']['lang']) AND
    123                 isset($desc['field']['id_trad']) AND
    124                 isset($desc['field']['langue_choisie']) AND
    125                 $config = explode(',' ,$GLOBALS['meta']['desactiver_liste_compacte']) AND
     109        if ($exec = _request('exec') and
     110                $exec != 'recherche' and
     111                strpos($fond, 'prive/objets/liste/') !== false and
     112                $segments = explode('/', $fond) and
     113                $objets = $segments[3] and
     114                $objet = objet_type($objets) and
     115                $exec != $objet and
     116                $table_objet_sql = table_objet_sql($objet) and
     117                $id_table_objet = id_table_objet($objet) and
     118                $tables_spip = lister_tables_spip() and
     119                isset($tables_spip[$table_objet_sql]) and
     120                $trouver_table = charger_fonction('trouver_table', 'base') and
     121                $desc = $trouver_table($table_objet_sql) and
     122                isset($desc['field']['lang']) and
     123                isset($desc['field']['id_trad']) and
     124                isset($desc['field']['langue_choisie']) and
     125                $config = explode(',' ,$GLOBALS['meta']['desactiver_liste_compacte']) and
    126126                !in_array($table_objet_sql, $config)) {
    127127
    128128                // Détermine si la liste est de type sections.
    129                 if (test_plugin_actif('secteur_langue') AND isset($contexte['id_rubrique'])) {
     129                if (test_plugin_actif('secteur_langue') and isset($contexte['id_rubrique'])) {
    130130                        $contexte['type'] = 'sections';
    131131                }
     
    144144                        $contexte['voir'] = _request('voir');
    145145
    146                         $champ = [$id_table_objet . ' as id'];
    147                         $from = $table_objet_sql;
    148                         $where = [];
    149                         $left_join = [];
    150                         $join = '';
    151146
    152147                        /*
     
    169164                        if ($champ_date) {
    170165                                $contexte['champ_date'] = $champ_date;
    171                                 $champ[] = $champ_date . ' as date';
    172                         }
    173 
    174                         /*
    175                         * Des requêtes conditionnelles dépendant du contexte.
    176                         */
    177 
    178                         // Page auteur.
    179                         if (isset($contexte['id_auteur'])) {
    180                                 if (isset($desc['field']['id_auteur'])) {
    181                                         $where[] = 'id_auteur=' . $contexte['id_auteur'];
    182                                 }
    183                                 else {
    184                                         $left_join[] = 'spip_auteurs_liens';
    185                                         $where[] = 'objet LIKE ' . sql_quote($objet) . ' AND id_auteur=' . $contexte['id_auteur'];
    186                                 }
    187                         }
    188 
    189                         // Page mot clé.
    190                         if (isset($contexte['id_mot'])) {
    191                                 $left_join[] = 'spip_mots_liens';
    192                                 $where[] = 'spip_mots_liens.objet LIKE ' . sql_quote($objet) . ' AND spip_mots_liens.id_mot=' . $contexte['id_mot'];
    193                         }
    194 
    195                         $on = '';
    196                         if (count($left_join) > 0) {
    197                                 foreach ($left_join AS $table_jointure) {
    198                                         $on = ' ON ' . $table_objet_sql . '.' . $id_table_objet . '=' . $table_jointure . '.id_objet';
    199                                         $join .= ' LEFT JOIN ' . $table_jointure . $on;
    200                                 }
    201                         }
    202 
    203                         // Si on est dans une rubrique on prend les objets de la rubrique
    204                         if (isset($contexte['id_rubrique'])) {
    205                                 $where[] = $table_objet_sql . '.id_rubrique=' . $contexte['id_rubrique'];
    206                         }
    207 
    208 
    209                         // Si pas dans une rubrique ou secteur_langue pas activé,
    210                         // on prend les objets non traduits et ceux de références si traduit.
    211                         if (!isset($contexte['id_rubrique']) OR !test_plugin_actif('secteur_langue')){
    212                                 $objets = sql_allfetsel(
    213                                         'id_trad,' . $id_table_objet,
    214                                         $from . $join,
    215                                         $where,
    216                                         '',
    217                                         $id_table_objet . ' desc');
    218 
    219                                 $id_objets = [];
    220                                 foreach ($objets AS $row) {
    221                                         $id_trad = $row['id_trad'];
    222                                         $id_objet = $row[$id_table_objet];
    223                                         if ($id_trad > 0 AND $id_trad == $id_objet) {
    224                                                 $id_objets[$id_trad] = $id_objet;
    225                                         }
    226                                         elseif ($id_trad == 0) {
    227                                                 $id_objets[$id_objet] = $id_objet;
    228                                         }
    229                                 }
    230                                 if (count($id_objets) == 0) {
    231                                         $id_objets = [-1];
    232                                 }
    233                                 $where[] = $table_objet_sql . '.' .$id_table_objet . ' IN (' . implode(',', $id_objets) . ')';
    234                         }
    235 
    236                         // On passe le résultat de la requête dans le contexte.
    237                         $contexte['donnees'] = sql_allfetsel($champ, $from . $join, $where, '', id_table_objet($objet) . ' desc');
     166                        }
     167
     168                        // Existence d'un champ rang.
     169                        if (isset($desc['field']['rang'])) {
     170                                $contexte['champ_rang'] = 'rang';
     171                        }
    238172
    239173                        $liste_compacte = recuperer_fond('prive/objets/liste/objets_compacte', $contexte, ['ajax'=>'oui']);
     
    257191        $segments = explode('_', $form);
    258192
    259         if ($segments[0] == 'editer' AND
     193        if ($segments[0] == 'editer' and
    260194                _request('new') == 'oui') {
    261195
    262                 if (!$flux['data']['lang_dest'] = _request('lang_dest') AND $id_parent = _request('id_parent')) {
     196                if (!$flux['data']['lang_dest'] = _request('lang_dest') and $id_parent = _request('id_parent')) {
    263197                        $flux['data']['lang_dest'] = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . $id_parent);
    264198                }
  • _plugins_/interface_traduction_objets/trunk/paquet.xml

    r114836 r114939  
    1 <paquet
     1Ppush<paquet
    22        prefix="interface_traduction_objets"
    33        categorie="edition"
    4         version="1.0.3"
     4        version="1.1.0"
    55        etat="test"
    66        compatibilite="[3.0.0;3.2.*]"
     
    1616        <licence>GNU/GPL</licence>
    1717
     18        <traduire module="interface_traduction_objets" reference="fr" gestionnaire="salvatore" />
     19
     20        <utilise nom="rang" compatibilite="[1.0.11;[" />
     21
    1822        <pipeline nom="recuperer_fond" inclure="interface_traduction_objets_pipelines.php" />
    1923        <pipeline nom="header_prive" inclure="interface_traduction_objets_pipelines.php" />
  • _plugins_/interface_traduction_objets/trunk/prive/objets/liste/compacte/inc-articles.html

    r114831 r114939  
    22[(#PLUGIN{rang}|et{#VAL{article}|appliquer_filtre{rang_objet_dans_config}|et{#ENV{exec}|!={accueil}}}|?{
    33        #SET{tri,rang}
    4         #SET{rang_actif,oui}
     4        #SET{activer_rang,oui}
    55        [(#SET{defaut_tri,#ARRAY{
    66                rang,1,
     
    3939        <thead>
    4040                <tr class="first_row">
    41                         [(#GET{rang_actif}|oui)
     41                        [(#GET{activer_rang}|oui)
    4242                                [(#ENV{id_rubrique}|et{#VAL{article}|appliquer_filtre{rang_objet_dans_config}}|oui)<th class="picto" scope="col"></th>]
    4343                        ]
    4444                        <th class="statut'">[(#TRI{statut,<span title="<:afficher_objets:info_statut|attribut_html:>">#</span>,ajax})]</th>
    45                         [(#GET{rang_actif}|oui)
     45                        [(#GET{activer_rang}|oui)
    4646                        <th class="rang" scope="col">
    4747                                [(#TRI{rang,<span title="<:rang:lien_trier_rang|attribut_html:>"><:rang:info_rang_abbr:></span>,ajax})]
     
    5757        <BOUCLE_liste_art(ARTICLES){id_article IN #GET{id_articles}}{id_rubrique?}{id_mot?}{id_auteur?}{where?}{statut?}{recherche?}{tri #GET{tri},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}{!lang_select}>
    5858                #SET{class,#COMPTEUR_BOUCLE|alterner{row_odd,row_even}}
    59                 <INCLURE{fond=prive/objets/liste/compacte/inc-articles_row,env,id_article,class=#GET{class},exclus=,rang_actif=#GET{rang_actif}}/>
     59                <INCLURE{fond=prive/objets/liste/compacte/inc-articles_row,env,id_article,class=#GET{class},exclus=,activer_rang=#GET{activer_rang}}/>
    6060        </BOUCLE_liste_art>
    6161        </tbody>
    6262</table>
    63 [(#GET{rang_actif}|oui)
    64         [(#ENV{id_rubrique}|et{#VAL{article}|appliquer_filtre{rang_objet_dans_config}}|oui)
     63[(#GET{activer_rang}|oui)
     64        [(#ENV{id_rubrique}|et{#VAL{article}|appliquer_filtre{rang_objet_dans_config}}|oui)1
    6565        <INCLURE{fond=prive/squelettes/inclure/rang,objet=articles,id_parent=#ID_RUBRIQUE,suffixe_pagination=art}/>
    6666        ]
  • _plugins_/interface_traduction_objets/trunk/prive/objets/liste/compacte/inc-articles_row.html

    r114831 r114939  
    1 <tr[(#ENV{rang_actif}|oui) data-id_objet="#ID_ARTICLE"] class="#ENV{class}">
     1<tr[(#ENV{activer_rang}|oui) data-id_objet="#ID_ARTICLE"] class="#ENV{class}">
    22<BOUCLE_art(ARTICLES){id_article}{statut?}>#SET{id_trad,#ID_TRAD}#SET{id_article,#ID_ARTICLE}
    3         [(#ENV{rang_actif}|oui)
     3        [(#ENV{activer_rangactiver_rang}|oui)
    44                [(#ENV{id_rubrique}|et{#VAL{article}|appliquer_filtre{rang_objet_dans_config}}|oui)<td class="picto">[(#CHEMIN_IMAGE{draggable-16.png}|balise_img)]</td>]
    55        ]
    66        <td class='statut'>[(#ID_ARTICLE|puce_changement_statut{#STATUT,#ID_RUBRIQUE,article})]</td>
    7         [(#ENV{rang_actif}|oui)<td class='rang'>[(#RANG).]</td>]
     7        [(#ENV{activer_rang}|oui)<td class='rang'>[(#RANG).]</td>]
    88        <td class='titre principale'>[(#LOGO_ARTICLE||image_reduire{20,26})]<a href="[(#ID_ARTICLE|generer_url_entite{article})]">#TITRE</a></td>
    99        <td class='auteur'><BOUCLE_auteurs(AUTEURS){id_article}{', '}><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">#NOM</a></BOUCLE_auteurs></td>
  • _plugins_/interface_traduction_objets/trunk/prive/objets/liste/compacte/inc-articles_sections.html

    r114727 r114939  
    11[(#REM) Trie par défaut suivant si le plugin rang est activé]
    22[(#PLUGIN{rang}|et{#VAL{article}|appliquer_filtre{rang_objet_dans_config}}|?{
    3         #SET{rang_actif,oui}
     3        #SET{activer_rang,oui}
    44        #SET{tri,rang}
    55        [(#SET{defaut_tri,#ARRAY{
     
    2626        <thead>
    2727                <tr class='first_row'>
    28                         [(#GET{rang_actif}|oui)
     28                        [(#GET{activer_rang}|oui)
    2929                                [(#ENV{id_rubrique}|et{#VAL{article}|appliquer_filtre{rang_objet_dans_config}}|oui)<th class="picto" scope="col"></th>]
    3030                        ]
    3131                        <th class='statut'>[(#TRI{statut,<span title="<:afficher_objets:info_statut|attribut_html:>">#</span>,ajax})]</th>
    32                         [(#GET{rang_actif}|oui)
     32                        [(#GET{activer_rang}|oui)
    3333                        <th class="rang" scope="col">
    3434                                [(#TRI{rang,<span title="<:rang:lien_trier_rang|attribut_html:>"><:rang:info_rang_abbr:></span>,ajax})]
     
    4444        <BOUCLE_liste_art(ARTICLES){id_rubrique?}{id_mot?}{id_auteur?}{where?}{statut?}{recherche?}{tri #GET{tri},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}{!lang_select}>
    4545        #SET{class,#COMPTEUR_BOUCLE|alterner{row_odd,row_even}}
    46                 <INCLURE{fond=prive/objets/liste/compacte/inc-articles_row,env,trads=oui,id_article,class=#GET{class},ajax,rang_actif=#GET{rang_actif}}/>
     46                <INCLURE{fond=prive/objets/liste/compacte/inc-articles_row,env,trads=oui,id_article,class=#GET{class},ajax,activer_rang=#GET{activer_rang}}/>
    4747        </BOUCLE_liste_art>
    4848        </tbody>
    4949</table>
    50 [(#GET{rang_actif}|oui)
     50[(#GET{activer_rang}|oui)
    5151        [(#ENV{id_rubrique}|et{#VAL{article}|appliquer_filtre{rang_objet_dans_config}}|oui)
    5252        <INCLURE{fond=prive/squelettes/inclure/rang,objet=articles,id_parent=#ID_RUBRIQUE,suffixe_pagination=art}/>
  • _plugins_/interface_traduction_objets/trunk/prive/objets/liste/inc-objets_compacte_row.html

    r114831 r114939  
    22        #SET{lang,#INFO_LANG{#ENV{objet},#ID}}[(#GET{lang}|changer_typo)]
    33        #SET{titre,#INFO_TITRE{#ENV{objet},#ID}}
    4 <tr class="#GET{class}">
     4<tr[ class="(#ENV{class})"][ (#ENV{activer_rang}|oui)[data-id_objet="(#ID)"]]>
     5        [(#ENV{activer_rang}|oui)<td class="rang">[(#ENV{rang}).]</td>]
    56        [(#ENV{champs}|table_valeur{statut}|oui)
    67        <td class='statut'>[(#ID|puce_changement_statut{#INFO_STATUT{#ENV{objet},#ID},#ENV{id_rubrique},#ENV{objet}})]</td>
  • _plugins_/interface_traduction_objets/trunk/prive/objets/liste/objets_compacte.html

    r114831 r114939  
     1[(#PLUGIN{rang}|et{#ENV{objet}|appliquer_filtre{rang_objet_dans_config}|et{#ENV{exec}|!={accueil}}}|?{
     2        #SET{activer_rang,oui}
     3        #SET{tri,rang}
     4        #SET{par,rang}
     5        [(#SET{defaut_tri,#ARRAY{
     6                rang,1,
     7                date,#ENV{date_sens,-1},
     8                num titre,1,
     9                id,
     10        }})]
     11,
     12        #SET{tri,id}
     13        #SET{par,id}
     14        [(#SET{defaut_tri,#ARRAY{
     15                date,#ENV{date_sens,-1},
     16                num titre,1
     17        }})]
     18})]
     19#SET{donnees,#ENV**|liste_compacte_requete_objet}
     20
    121#SET{picto,#ENV{objet}|objet_icone{16}}
    222<B_objets>
    323#ANCRE_PAGINATION
    4 <div class="liste-objets [(#ENV{objets})]">
    5 <table class='spip liste'>
     24<div class="liste-objets[ (#ENV{objets})]">
     25<table class='spip liste'[ data-objet="(#ENV{objets})"]>
    626[<caption><strong class="caption">(#ENV*{titre,[(#GRAND_TOTAL|singulier_ou_pluriel{#ENV{objet}|objet_info{info_1_objet},#ENV{objet}|objet_info{info_nb_objets}})]})</strong></caption>]
    727        <thead>
    828                <tr class='first_row'>
     29                        [(#GET{activer_rang}|oui)<th class="rang" scope="col">[(#TRI{rang,<span title="<:rang:lien_trier_rang|attribut_html:>"><:rang:info_rang_abbr:></span>,ajax})]
     30                        </th>]
    931                        [(#ENV{champs}|table_valeur{statut}|oui)
    1032                        <th class='statut'><span title="<:afficher_objets:info_statut|attribut_html:>">#</span>
     
    2345        </thead>
    2446        <tbody>
    25         <BOUCLE_objets(DATA){source tableau,#ENV{donnees}}{pagination #ENV{nb,10}}>
     47        <BOUCLE_objets(DATA){source tableau, #GET{donnees}}{pagination #ENV{nb,10}}{tri #GET{tri},#GET{defaut_tri}}{par #GET{par}}>
    2648                #SET{class, #COMPTEUR_BOUCLE|alterner{row_odd,row_even}}
    27                 <INCLURE{fond=prive/objets/liste/inc-objets_compacte_row,id,date,class=#GET{class},picto=#GET{picto},env} />
     49                <INCLURE{fond=prive/objets/liste/inc-objets_compacte_row,
     50                        id,date,
     51                        class=#GET{class},
     52                        picto=#GET{picto},
     53                        activer_rang=#GET{activer_rang},
     54                        env,
     55                        rang} />
    2856        </BOUCLE_objets>
    2957        [(#REM|changer_typo)]
    3058        </tbody>
    3159</table>
     60[(#GET{activer_rang}|oui)
     61        <INCLURE{fond=prive/squelettes/inclure/rang,objet=#ENV{objets},id_parent=#ID_RUBRIQUE,suffixe_pagination=#ENV{objet}}/>
     62
     63]
    3264[<p class='pagination'>(#PAGINATION{prive})</p>]
    3365</div>
Note: See TracChangeset for help on using the changeset viewer.