Changeset 43883 in spip-zone


Ignore:
Timestamp:
Jan 25, 2011, 10:30:54 PM (10 years ago)
Author:
joseph@…
Message:

On commence à mutualiser le code des noisettes.
Création d'une balise #GN_PAGINATION et d'un critère {gn_pagination}

Location:
_squelettes_/garde-noisettes
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/garde-noisettes/gn_fonctions.php

    r43811 r43883  
    115115}
    116116
     117// #GN_PAGINATION
     118// S'appelle dans une noisette ainsi [<p class="pagination">(#GN_PAGINATION{'debut'})</p>] ou [<p class="pagination">(#GN_PAGINATION{'fin'})</p>]
     119// Le YAML de la noisette doit contenir - 'inclure:inc-yaml/pagination.yaml'
     120
     121function balise_GN_PAGINATION_dist($p) {
     122        $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
     123
     124        $pos = interprete_argument_balise(1,$p);
     125       
     126        $connect = $p->boucles[$b]->sql_serveur;
     127        $pas = $p->boucles[$b]->total_parties;
     128        $f_pagination = chercher_filtre('pagination');
     129        $type = $p->boucles[$b]->modificateur['debut_nom'];
     130        $modif = ($type[0]!=="'") ? "'debut'.$type"
     131          : ("'debut" .substr($type,1));
     132       
     133        if ($pos=="'debut'")
     134                $p->code = "(\$Pile[0]['selection']=='pagination' && (\$Pile[0]['position_pagination']=='debut' || \$Pile[0]['position_pagination']=='deux')) ? ".sprintf(CODE_PAGINATION, $f_pagination,$b, $type, $modif, $pas, true, "\$Pile[0]['style_pagination']", _q($connect), '')." : ''";
     135        else
     136                $p->code = "(\$Pile[0]['selection']=='pagination' && (\$Pile[0]['position_pagination']=='fin' || \$Pile[0]['position_pagination']=='deux')) ? ".sprintf(CODE_PAGINATION, $f_pagination,$b, $type, $modif, $pas, true, "\$Pile[0]['style_pagination']", _q($connect), '')." : ''";
     137        return $p;
     138}
     139
     140// Critère gn_pagination
     141// Le YAML de la noisette doit contenir - 'inclure:inc-yaml/pagination.yaml'
     142// Ajouter {gn_pagination} à la boucle
     143
     144function critere_gn_pagination_dist($idb, &$boucles, $crit) {
     145        $boucle = &$boucles[$idb];
     146        // definition de la taille de la page
     147        $pas = "((\$Pile[0]['selection']=='pagination') ? \$Pile[0]['pas_pagination'] : ((\$Pile[0]['selection']=='limite') ? \$Pile[0]['limite'] : 1000000))";
     148       
     149        $type = !isset($crit->param[0][1]) ? "'$idb'" : calculer_liste(array($crit->param[0][1]), array(), $boucles, $boucle->id_parent);
     150        $debut = ($type[0]!=="'") ? "'debut'.$type"
     151          : ("'debut" .substr($type,1));
     152
     153        $boucle->modificateur['debut_nom'] = $type;
     154        $partie =
     155                 // tester si le numero de page demande est de la forme '@yyy'
     156                 'isset($Pile[0]['.$debut.']) ? $Pile[0]['.$debut.'] : _request('.$debut.");\n"
     157                ."\tif(substr(\$debut_boucle,0,1)=='@'){\n"
     158                ."\t\t".'$debut_boucle = $Pile[0]['. $debut.'] = quete_debut_pagination(\''.$boucle->primary.'\',$Pile[0][\'@'.$boucle->primary.'\'] = substr($debut_boucle,1),'.$pas.',$result,'._q($boucle->sql_serveur).');'."\n"
     159                ."\t\t".'if (!sql_seek($result,0,'._q($boucle->sql_serveur).")){\n"
     160                ."\t\t\t".'@sql_free($result,'._q($boucle->sql_serveur).");\n"
     161                ."\t\t\t".'$result = calculer_select($select, $from, $type, $where, $join, $groupby, $orderby, $limit, $having, $table, $id, $connect);'."\n"
     162                ."\t\t}\n"
     163                ."\t}\n"
     164                ."\t".'$debut_boucle = intval($debut_boucle)';
     165
     166
     167        $boucle->total_parties = $pas;
     168        calculer_parties($boucles, $idb, $partie, 'p+');
     169        // ajouter la cle primaire dans le select pour pouvoir gerer la pagination referencee par @id
     170        // sauf si pas de primaire, ou si primaire composee
     171        // dans ce cas, on ne sait pas gerer une pagination indirecte
     172        $t = $boucle->id_table . '.' . $boucle->primary;
     173        if ($boucle->primary
     174                AND !preg_match('/[,\s]/',$boucle->primary)
     175                AND !in_array($t, $boucle->select))
     176          $boucle->select[]= $t;
     177}
     178
     179
    117180?>
  • _squelettes_/garde-noisettes/inclure/liste_articles_note.html

    r39419 r43883  
    66        [(#GET{position_selecteur_archives_debut}|oui)#INCLURE{fond=inclure/liste_articles-selecteur_archives,archives,pas_selecteur_archives,texte_devant_selecteur_archives,id_rubrique=#ENV{id_rubrique},lang_choisie= #ENV{langue_choisie},compteur_articles_selecteur_archives}]
    77        [(#ENV{position_choix_tri_debut}|oui)#INCLURE{fond=inclure/liste_articles-choix_tri,env,tri=#ENV{tri},senstri=#ENV{senstri}}]
    8         [(#ENV{position_pagination_debut}|oui)[<p class="pagination">(#PAGINATION{#ENV{style_pagination}})</p>]]
     8        [<p class="pagination">(#GN_PAGINATION{'debut'})</p>]
    99        <ul class="liste-items">
    10         <BOUCLE_liste_articles_note(ARTICLES) {id_rubrique == #ENV{id_rubrique}|sinon{.*}} {notation}{par moyenne}{inverse #ENV{senstri}}{doublons articles_en_cours}{archives ?}{lang == #ENV{langue_choisie}|sinon{.*}}{pagination #ENV{pas_pagination}}>
     10        <BOUCLE_liste_articles_note(ARTICLES) {id_rubrique == #ENV{id_rubrique}|sinon{.*}} {notation}{par moyenne}{inverse #ENV{senstri}}{doublons articles_en_cours}{archives ?}{lang == #ENV{langue_choisie}|sinon{.*}}{gn_pagination}>
    1111        [(#ENV{style_liste}|=={liste}|oui)
    1212                #INCLURE{fond=inclure/article-liste,id_article=#ID_ARTICLE,id_article_expose=#ENV{id_article},env}
     
    1717        </BOUCLE_liste_articles_note>
    1818        </ul>
    19         [(#ENV{position_pagination_fin}|oui)[<p class="pagination">(#PAGINATION{#ENV{style_pagination}})</p>]]
     19        [<p class="pagination">(#GN_PAGINATION{'fin'})</p>]
    2020        [(#ENV{position_choix_tri_fin}|oui)#INCLURE{fond=inclure/liste_articles-choix_tri,env,tri=#ENV{tri},senstri=#ENV{senstri}}]
    2121        [(#GET{position_selecteur_archives_fin}|oui)#INCLURE{fond=inclure/liste_articles-selecteur_archives,archives,pas_selecteur_archives,texte_devant_selecteur_archives,id_rubrique=#ENV{id_rubrique},lang_choisie= #ENV{langue_choisie},compteur_articles_selecteur_archives}]
  • _squelettes_/garde-noisettes/noisettes/liste_articles.html

    r40777 r43883  
    1 [(#SET{selection, #ENV{selection}|sinon{limite}})]
    21[(#SET{tri, #ENV{tri_perso}|sinon{#ENV{tri}|sinon{date}}})]
    32[(#SET{tri, [(#GET{tri}|!={note}|ou{#PLUGIN{notation}}|?{#GET{tri},date})]})]
    43[(#SET{senstri, #ENV{tri_perso}|oui|?{#ENV{senstri_perso}|sinon{0},#ENV{senstri}|sinon{1}}})]
    54[(#SET{tri_num, #GET{tri}|=={titre}|?{titre,''}})]
    6 
    7 [(#SET{pas_pagination, #ENV{pas_pagination}|sinon{5}})]
    8 [(#SET{limite, #ENV{limite}|sinon{10}})]
    9 [(#GET{selection}|=={tout}|oui)#SET{pas_pagination,1000000}]
    10 [(#GET{selection}|=={limite}|oui)#SET{pas_pagination,#GET{limite}}]
    11 [(#SET{position_pagination, #ENV{position_pagination}|sinon{fin}})]
    12 [(#SET{position_pagination_debut,#GET{selection}|!={pagination}|ou{#GET{position_pagination}|=={fin}}|?{'',on}})]
    13 [(#SET{position_pagination_fin,#GET{selection}|!={pagination}|ou{#GET{position_pagination}|=={debut}}|?{'',on}})]
    145
    156[(#SET{position_choix_tri, #ENV{position_choix_tri}|sinon{debut}})]
     
    4839        [(#GET{position_selecteur_archives_debut}|oui)#INCLURE{fond=inclure/liste_articles-selecteur_archives,archives,pas_selecteur_archives,texte_devant_selecteur_archives,id_rubrique=#GET{id_rubrique},lang_choisie= #GET{langue_choisie},compteur_articles_selecteur_archives}]
    4940        [(#GET{position_choix_tri_debut}|oui)#INCLURE{fond=inclure/liste_articles-choix_tri,env,tri=#GET{tri},senstri=#GET{senstri}}]
    50         [(#GET{position_pagination_debut}|oui)[<p class="pagination">(#PAGINATION{#GET{style_pagination}})</p>]]
     41        [<p class="pagination">(#GN_PAGINATION{'debut'})</p>]
    5142        <ul class="liste-items">
    52         <BOUCLE_liste_articles_tri_nbre_commentaires(ARTICLES) {id_rubrique == #GET{id_rubrique}|sinon{.*}}{compteur_publie forum}{par compteur_forum}{inverse #GET{senstri}}{doublons articles_en_cours}{archives ?}{lang == #GET{langue_choisie}|sinon{.*}}{pagination #GET{pas_pagination}}>
     43        <BOUCLE_liste_articles_tri_nbre_commentaires(ARTICLES) {id_rubrique == #GET{id_rubrique}|sinon{.*}}{compteur_publie forum}{par compteur_forum}{inverse #GET{senstri}}{doublons articles_en_cours}{archives ?}{lang == #GET{langue_choisie}|sinon{.*}}{gn_pagination}>
    5344        [(#GET{style_liste}|=={liste}|oui)
    5445                #INCLURE{fond=inclure/article-liste,id_article=#ID_ARTICLE,id_article_expose=#ENV{id_article},env}
     
    5950        </BOUCLE_liste_articles_tri_nbre_commentaires>
    6051        </ul>
    61         [(#GET{position_pagination_fin}|oui)[<p class="pagination">(#PAGINATION{#GET{style_pagination}})</p>]]
     52        [<p class="pagination">(#GN_PAGINATION{'fin'})</p>]
    6253        [(#GET{position_choix_tri_fin}|oui)#INCLURE{fond=inclure/liste_articles-choix_tri,env,tri=#GET{tri},senstri=#GET{senstri}}]
    6354        [(#GET{position_selecteur_archives_fin}|oui)#INCLURE{fond=inclure/liste_articles-selecteur_archives,archives,pas_selecteur_archives,texte_devant_selecteur_archives,id_rubrique=#GET{id_rubrique},lang_choisie= #GET{langue_choisie},compteur_articles_selecteur_archives}]
     
    7768        [(#GET{position_selecteur_archives_debut}|oui)#INCLURE{fond=inclure/liste_articles-selecteur_archives,archives,pas_selecteur_archives,texte_devant_selecteur_archives,id_rubrique=#GET{id_rubrique},lang_choisie= #GET{langue_choisie},compteur_articles_selecteur_archives}]
    7869        [(#GET{position_choix_tri_debut}|oui)#INCLURE{fond=inclure/liste_articles-choix_tri,env,tri=#GET{tri},senstri=#GET{senstri}}]
    79         [(#GET{position_pagination_debut}|oui)[<p class="pagination">(#PAGINATION{#GET{style_pagination}})</p>]]
     70        [<p class="pagination">(#GN_PAGINATION{'debut'})</p>]
    8071        <ul class="liste-items">
    81         <BOUCLE_liste_articles(ARTICLES) {id_rubrique == #GET{id_rubrique}|sinon{.*}} {par num #GET{tri_num}}{inverse #GET{senstri}}{par #GET{tri}}{inverse #GET{senstri}}{doublons articles_en_cours}{archives ?}{lang == #GET{langue_choisie}|sinon{.*}}{pagination #GET{pas_pagination}}>
     72        <BOUCLE_liste_articles(ARTICLES) {id_rubrique == #GET{id_rubrique}|sinon{.*}} {par num #GET{tri_num}}{inverse #GET{senstri}}{par #GET{tri}}{inverse #GET{senstri}}{doublons articles_en_cours}{archives ?}{lang == #GET{langue_choisie}|sinon{.*}}{gn_pagination}>
    8273        [(#GET{style_liste}|=={liste}|oui)
    8374                #INCLURE{fond=inclure/article-liste,id_article=#ID_ARTICLE,id_article_expose=#ENV{id_article},env}
     
    8879        </BOUCLE_liste_articles>
    8980        </ul>
    90         [(#GET{position_pagination_fin}|oui)[<p class="pagination">(#PAGINATION{#GET{style_pagination}})</p>]]
     81        [<p class="pagination">(#GN_PAGINATION{'fin'})</p>]
    9182        [(#GET{position_choix_tri_fin}|oui)#INCLURE{fond=inclure/liste_articles-choix_tri,env,tri=#GET{tri},senstri=#GET{senstri}}]
    9283        [(#GET{position_selecteur_archives_fin}|oui)#INCLURE{fond=inclure/liste_articles-selecteur_archives,archives,pas_selecteur_archives,texte_devant_selecteur_archives,id_rubrique=#GET{id_rubrique},lang_choisie= #GET{langue_choisie},compteur_articles_selecteur_archives}]
  • _squelettes_/garde-noisettes/noisettes/liste_articles.yaml

    r43811 r43883  
    6161      label: '<:gn:label_exclure_article_en_cours:>'
    6262      defaut: ''
    63   -
    64     saisie: 'selection'
    65     options:
    66       nom: 'selection'
    67       label: '<:gn:label_selection:>'
    68       defaut: 'pagination'
    69       cacher_option_intro: 'oui'
    70       datas:
    71         tout: '<:gn:item_tout:>'
    72         limite: '<:gn:item_limite:>'
    73         pagination: '<:gn:item_pagination:>'
    74   -
    75     saisie: 'input'
    76     options:
    77       nom: 'limite'
    78       label: '<:gn:label_limite:>'
    79       defaut: 10
    80       afficher_si: '@selection@ == "limite"'
    81     verifier:
    82       type: 'entier'
    83       options:
    84         min: 1
    85   -
    86     saisie: 'fieldset'
    87     options:
    88       nom: 'si_pagination'
    89       label: '<:gn:label_si_pagination:>'
    90       afficher_si: '@selection@ == "pagination"'
    91     saisies:
    92       -
    93         saisie: 'input'
    94         options:
    95           nom: 'pas_pagination'
    96           label: '<:gn:label_pas_pagination:>'
    97           defaut: 5
    98         verifier:
    99           type: 'entier'
    100           options:
    101             min: 1
    102       -
    103         saisie: 'selection'
    104         options:
    105           nom: 'position_pagination'
    106           label: '<:gn:label_position_pagination:>'
    107           defaut: 'fin'
    108           cacher_option_intro: 'oui'
    109           datas:
    110             debut: '<:gn:item_debut:>'
    111             fin: '<:gn:item_fin:>'
    112             deux: '<:gn:item_deux:>'
    113       -
    114         saisie: 'selection'
    115         options:
    116           nom: 'style_pagination'
    117           label: '<:gn:label_style_pagination:>'
    118           defaut: ''
    119           cacher_option_intro: 'oui'
    120           datas:
    121             '': '<:gn:item_pagination_defaut:>'
    122             precedent_suivant: '<:gn:item_pagination_precedent_suivant:>'
    123             page: '<:gn:item_pagination_page:>'
    124             page_precedent_suivant: '<:gn:item_pagination_page_precedent_suivant:>'
    125             simple: '<:gn:item_pagination_simple:>'
     63  - 'inclure:inc-yaml/pagination.yaml'
    12664  -
    12765    saisie: 'oui_non'
  • _squelettes_/garde-noisettes/noisettes/liste_breves.html

    r40777 r43883  
    1 [(#SET{selection, #ENV{selection}|sinon{limite}})]
    21[(#SET{tri, #ENV{tri}|sinon{date_heure}})]
    32[(#SET{senstri, #ENV{senstri}|sinon{1}})]
    43[(#SET{tri_num, #GET{tri}|=={titre}|?{titre,''}})]
    5 
    6 [(#SET{pas_pagination, #ENV{pas_pagination}|sinon{5}})]
    7 [(#SET{limite, #ENV{limite}|sinon{10}})]
    8 [(#GET{selection}|=={tout}|oui)#SET{pas_pagination,1000000}]
    9 [(#GET{selection}|=={limite}|oui)#SET{pas_pagination,#GET{limite}}]
    10 [(#SET{position_pagination, #ENV{position_pagination}|sinon{fin}})]
    11 [(#SET{position_pagination_debut,#GET{selection}|!={pagination}|ou{#GET{position_pagination}|=={fin}}|?{'',on}})]
    12 [(#SET{position_pagination_fin,#GET{selection}|!={pagination}|ou{#GET{position_pagination}|=={debut}}|?{'',on}})]
    134
    145[(#SET{exclure_breve_en_cours, #ENV{exclure_breve_en_cours}|is_null|non|?{#ENV{exclure_breve_en_cours},''}})]
     
    3627        #ANCRE_PAGINATION
    3728        [(#GET{afficher_titre_liste}|oui)[<h2 class="h2">(#GET{titre})</h2>]]
    38         [(#GET{position_pagination_debut}|oui)[<p class="pagination">(#PAGINATION{#GET{style_pagination}})</p>]]
     29        [<p class="pagination">(#GN_PAGINATION{'debut'})</p>]
    3930        <ul class="liste-items">
    40         <BOUCLE_liste_breves(BREVES) {id_rubrique == #GET{id_rubrique}|sinon{.*}} {par num #GET{tri_num}}{inverse #GET{senstri}}{par #GET{tri}}{inverse #GET{senstri}}{doublons breves_en_cours}{archives ?}{pagination #GET{pas_pagination}}>
     31        <BOUCLE_liste_breves(BREVES) {id_rubrique == #GET{id_rubrique}|sinon{.*}} {par num #GET{tri_num}}{inverse #GET{senstri}}{par #GET{tri}}{inverse #GET{senstri}}{doublons breves_en_cours}{archives ?}{gn_pagination}>
    4132        [(#GET{style_liste}|=={liste}|oui)
    4233                #INCLURE{fond=inclure/breve-liste,id_breve=#ID_BREVE,id_breve_expose=#ENV{id_breve},env}
     
    4738        </BOUCLE_liste_breves>
    4839        </ul>
    49         [(#GET{position_pagination_fin}|oui)[<p class="pagination">(#PAGINATION{#GET{style_pagination}})</p>]]
     40        [<p class="pagination">(#GN_PAGINATION{'fin'})</p>]
    5041</div>
    5142</B_liste_breves>
  • _squelettes_/garde-noisettes/noisettes/liste_breves.yaml

    r43811 r43883  
    4848      label: '<:gn:label_exclure_breve_en_cours:>'
    4949      defaut: ''
    50   -
    51     saisie: 'selection'
    52     options:
    53       nom: 'selection'
    54       label: '<:gn:label_selection:>'
    55       defaut: 'pagination'
    56       cacher_option_intro: 'oui'
    57       datas:
    58         tout: '<:gn:item_tout:>'
    59         limite: '<:gn:item_limite:>'
    60         pagination: '<:gn:item_pagination:>'
    61   -
    62     saisie: 'input'
    63     options:
    64       nom: 'limite'
    65       label: '<:gn:label_limite:>'
    66       defaut: 10
    67       afficher_si: '@selection@ == "limite"'
    68     verifier:
    69       type: 'entier'
    70       options:
    71         min: 1
    72   -
    73     saisie: 'fieldset'
    74     options:
    75       nom: 'si_pagination'
    76       label: '<:gn:label_si_pagination:>'
    77       afficher_si: '@selection@ == "pagination"'
    78     saisies:
    79       -
    80         saisie: 'input'
    81         options:
    82           nom: 'pas_pagination'
    83           label: '<:gn:label_pas_pagination:>'
    84           defaut: 5
    85         verifier:
    86           type: 'entier'
    87           options:
    88             min: 1
    89       -
    90         saisie: 'selection'
    91         options:
    92           nom: 'position_pagination'
    93           label: '<:gn:label_position_pagination:>'
    94           defaut: 'fin'
    95           cacher_option_intro: 'oui'
    96           datas:
    97             debut: '<:gn:item_debut:>'
    98             fin: '<:gn:item_fin:>'
    99             deux: '<:gn:item_deux:>'
    100       -
    101         saisie: 'selection'
    102         options:
    103           nom: 'style_pagination'
    104           label: '<:gn:label_style_pagination:>'
    105           defaut: ''
    106           cacher_option_intro: 'oui'
    107           datas:
    108             '': '<:gn:item_pagination_defaut:>'
    109             precedent_suivant: '<:gn:item_pagination_precedent_suivant:>'
    110             page: '<:gn:item_pagination_page:>'
    111             page_precedent_suivant: '<:gn:item_pagination_page_precedent_suivant:>'
    112             simple: '<:gn:item_pagination_simple:>'
     50  - 'inclure:inc-yaml/pagination.yaml'
    11351  -
    11452    saisie: 'oui_non'
Note: See TracChangeset for help on using the changeset viewer.