Changeset 67151 in spip-zone


Ignore:
Timestamp:
Oct 26, 2012, 9:03:58 AM (7 years ago)
Author:
cedric@…
Message:

Plutot que tester chaque URL de rubrique de la page pour savoir si on l'envoie vers l'article ou la rubrique, on utilise toujours l'URL de la rubrique.
Si l'option est active et si la rubrique n'a qu'un article publié, on le detecte au moment de son affichage et on renvoie vers la page article dans ce cas (on pourrait tout aussi bien afficher l'article sur l'url de la rubrique), dirctement dans le squelette rubrique.
On fait pour cela un filtre dédié qui renvoie l'id_article solitaire (ou rien sinon)

Location:
_squelettes_/sarkaspip/trunk
Files:
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/sarkaspip/trunk/breadcrumb/dist.html

    r67149 r67151  
    1212                <BOUCLE_rubrique(RUBRIQUES){id_rubrique}{id_secteur!=#RACINE_SPECIALISEE{squelette}}>
    1313                        <BOUCLE_hierarchie(HIERARCHIE)>
    14                                 <li>
    15                                 [(#ID_RUBRIQUE|match{#RACINE_SPECIALISEE}|oui)
    16                                         <INCLURE{fond=noisettes/rubrique/lien}{id_rubrique=#ID_RUBRIQUE}>
    17                                 ]
    18                                 [(#ID_RUBRIQUE|match{#RACINE_SPECIALISEE}|non)
    19                                         [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|non)
    20                                                 <INCLURE{fond=noisettes/rubrique/lien}{id_rubrique=#ID_RUBRIQUE}>
    21                                         ]
    22                                         [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)
    23                                                 <INCLURE{fond=noisettes/menu/inc-rubrique_lien}{id_rubrique=#ID_RUBRIQUE}>
    24                                         ]
    25                                 ]
     14                                <li><INCLURE{fond=noisettes/rubrique/lien,id_rubrique=#ID_RUBRIQUE}>
    2615                                <span class="divider">#EVAL{_SARKASPIP_CONFIG_SYMBOLE_CHEMIN}</span></li>
    2716                        </BOUCLE_hierarchie>
    28                                 <li[(#ENV{id_article}|non)class="active"]>
    29                                 [(#ID_RUBRIQUE|match{#RACINE_SPECIALISEE}|oui)
    30                                         <INCLURE{fond=noisettes/rubrique/lien}{id_rubrique=#ID_RUBRIQUE}{expose=#ENV{id_article}|non}>
    31                                 ]
    32                                 [(#ID_RUBRIQUE|match{#RACINE_SPECIALISEE}|non)
    33                                         [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|non)
    34                                                 <INCLURE{fond=noisettes/rubrique/lien}{id_rubrique=#ID_RUBRIQUE}{expose=#ENV{id_article}|non}>
    35                                         ]
    36                                         [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)
    37                                                 <INCLURE{fond=noisettes/menu/inc-rubrique_lien}{id_rubrique=#ID_RUBRIQUE}{expose=#ENV{id_article}|non}>
    38                                         ]
    39                                 ]
     17                                <li[(#ENV{id_article}|non)class="active"]><INCLURE{fond=noisettes/rubrique/lien,id_rubrique=#ID_RUBRIQUE,expose=#ENV{id_article}|non}>
    4018                                <span class="divider">#EVAL{_SARKASPIP_CONFIG_SYMBOLE_CHEMIN}</span></li>
    4119                                #SET{found,' '}
  • _squelettes_/sarkaspip/trunk/inc/sarkaspip_filtres.php

    r67092 r67151  
    99// TODO : conditionner a l'existence du plugin tickets
    1010include_spip("noisettes/afaire/filtres");
     11
     12/**
     13 * Tester si on doit rediriger une rubrique vers son article orphelin
     14 * - si reglage active dans la configuration
     15 * - si la rubrique ne contient qu'un article, aucune sous-rubrique ni documents
     16 *
     17 * @param $id_rubrique
     18 * @return string|int
     19 */
     20function sarkaspip_test_si_redirection_article_solitaire($id_rubrique){
     21        include_spip("inc/config");
     22        $serveur = '';
     23
     24        // si reglage pas active, renvoyer rien (pas de redirection)
     25        if (lire_config('sarkaspip_menus/option_rubriques',0)!=2)
     26                return "";
     27
     28        $trouver_table = charger_fonction('trouver_table', 'base');
     29        include_spip('public/compiler');
     30        include_spip('public/composer');
     31        // si plus d'un article publie, pas de redirection (on prend les 2 premiers, permet d'avoir l'id de l'article unique si besoin
     32        // il faut passer par une boucle compilateur pour avoir les conditions de statut publie
     33        if (!$desc = $trouver_table("spip_articles", $serveur))
     34                return "";
     35        $id_table_objet = "id_article";
     36        $id_table = $table_objet = "articles";
     37        $boucle = new Boucle();
     38        $boucle->show = $desc;
     39        $boucle->nom = 'articles_publies';
     40        $boucle->id_boucle = $id_table;
     41        $boucle->id_table = $id_table;
     42        $boucle->sql_serveur = $serveur;
     43        $boucle->select[] = $id_table_objet;
     44        $boucle->from[$table_objet] = "spip_articles";
     45        $boucle->where[] = $id_table.".id_rubrique=".intval($id_rubrique);
     46        $boucle->limit = "0,2";
     47        instituer_boucle($boucle, false);
     48        $res = calculer_select($boucle->select,$boucle->from,$boucle->from_type,$boucle->where,$boucle->join,$boucle->group,$boucle->order,$boucle->limit,$boucle->having,$table_objet,$id_table,$serveur);
     49        $a = array();
     50        while ($row = sql_fetch($res))
     51                $a[] = $row;
     52        if (count($a)!=1)
     53                return "";
     54
     55        // si une sous-rubrique publie, pas de redirection
     56        // il faut passer par une boucle compilateur pour avoir les conditions de statut publie
     57        if (!$desc = $trouver_table("spip_rubriques", $serveur))
     58                return "";
     59        $id_table_objet = "id_rubrique";
     60        $id_table = $table_objet = "rubriques";
     61        $boucle = new Boucle();
     62        $boucle->show = $desc;
     63        $boucle->nom = 'sousrubriques_publies';
     64        $boucle->id_boucle = $id_table;
     65        $boucle->id_table = $id_table;
     66        $boucle->sql_serveur = $serveur;
     67        $boucle->select[] = $id_table_objet;
     68        $boucle->from[$table_objet] = "spip_rubriques";
     69        $boucle->where[] = $id_table.".id_parent=".intval($id_rubrique);
     70        $boucle->limit = "0,1";
     71        instituer_boucle($boucle, false);
     72        $res = calculer_select($boucle->select,$boucle->from,$boucle->from_type,$boucle->where,$boucle->join,$boucle->group,$boucle->order,$boucle->limit,$boucle->having,$table_objet,$id_table,$serveur);
     73        if (sql_fetch($res))
     74                return "";
     75
     76        if (sql_countsel("spip_documents_liens","objet=".sql_quote('rubrique')." AND id_objet=".intval($id_rubrique)))
     77                return "";
     78
     79        return intval(reset(reset($a)));
     80}
    1181
    1282// =======================================================================================================================================
  • _squelettes_/sarkaspip/trunk/noisettes/menu/rubriques_1.html

    r66755 r67151  
    33                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|!={2}|oui)[<a href="#URL_RUBRIQUE"[ class="(#GET{aclass})" data-toggle="dropdown"]>(#TITRE|couper{80})[(#GET{aclass}|oui)<b class="caret"></b>]</a>]]
    44                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)
    5                                 [(#INCLURE{fond=noisettes/menu/inc-rubrique_lien,id_rubrique,classe=#GET{aclass},toggle=#GET{aclass}|?{dropdown,''}})]
     5                                [(#INCLURE{fond=noisettes/rubrique/lien,id_rubrique,classe=#GET{aclass},toggle=#GET{aclass}|?{dropdown,''}})]
    66                        ]
    77                        #SET{prof,0}
     
    1414                                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|!={2}|oui)[<a href="#URL_RUBRIQUE"[ class="(#GET{aclass})" data-toggle="dropdown"]>(#TITRE|couper{80})[(#GET{aclass}|oui)<b class="caret"></b>]</a>]]
    1515                                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)
    16                                                 [(#INCLURE{fond=noisettes/menu/inc-rubrique_lien,id_rubrique,classe=#GET{aclass},toggle=#GET{aclass}|?{dropdown,''}})]
     16                                                [(#INCLURE{fond=noisettes/rubrique/lien,id_rubrique,classe=#GET{aclass},toggle=#GET{aclass}|?{dropdown,''}})]
    1717                                        ]
    1818                                <BOUCLE_fin_hierarchie(RUBRIQUES){id_parent}{0,1}> </BOUCLE_fin_hierarchie>
  • _squelettes_/sarkaspip/trunk/noisettes/menu/rubriques_2.html

    r66755 r67151  
    22                <li class="[(#EXPOSE{on active})]">
    33                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|!={2}|oui)[<a[ href="(#URL_RUBRIQUE)"]>(#TITRE|couper{80})</a>]]
    4                         [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)<INCLURE{fond=noisettes/menu/inc-rubrique_lien}{id_rubrique}>]
     4                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)[(#INCLURE{fond=noisettes/rubrique/lien,id_rubrique})]]
    55        <B_rubriques_1>
    66                <ul[ class="(#ENV{class_ul,''})"]>
     
    99                                [(#SET{classe, [(#EXPOSE)]})]
    1010                                [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|!={2}|oui)[<a[ href="(#URL_RUBRIQUE)"]>(#TITRE|couper{80})</a>]]
    11                                 [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)<INCLURE{fond=noisettes/menu/inc-rubrique_lien}{id_rubrique}>]
     11                                [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)[(#INCLURE{fond=noisettes/rubrique/lien,id_rubrique})]]
    1212                <B_rubriques_2>
    1313                        <ul[ class="(#ENV{class_ul,''})"]>
     
    1515                                <li class="[(#EXPOSE{on active})]">
    1616                                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|!={2}|oui)[<a[ href="(#URL_RUBRIQUE)"]>(#TITRE|couper{80})</a>]]
    17                                         [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)<INCLURE{fond=noisettes/menu/inc-rubrique_lien}{id_rubrique}>]
     17                                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)[(#INCLURE{fond=noisettes/rubrique/lien,id_rubrique})]]
    1818                                </li>
    1919                </BOUCLE_rubriques_2>
  • _squelettes_/sarkaspip/trunk/noisettes/menu/rubriques_3.html

    r66755 r67151  
    7171                        [(#SET{classe, hover[ (#EXPOSE|?{deplie,replie})]})]
    7272                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|!={2}|oui)[<a[ href="(#URL_RUBRIQUE)"][ class="(#GET{classe})"]>(#TITRE|couper{80})</a>]]
    73                         [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)<INCLURE{fond=noisettes/menu/inc-rubrique_lien}{id_rubrique}{classe=#GET{classe}}>]
     73                        [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)[(#INCLURE{fond=noisettes/rubrique/lien,id_rubrique,classe=#GET{classe}})]]
    7474                    <B_ss_rubriques>
    7575                                <ul class="[(#ENV{class_ul,''})][ (#_rubriques:EXPOSE|?{blocdeplie,blocreplie})]">
     
    7777                                                <li class="[(#EXPOSE{on active})]">
    7878                                                [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|!={2}|oui)[<a[ href="(#URL_RUBRIQUE)"][ class="(#GET{classe})"]>(#TITRE|couper{80})</a>]]
    79                                                 [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)<INCLURE{fond=noisettes/menu/inc-rubrique_lien}{id_rubrique}{classe=#GET{classe}}>]
     79                                                [(#CONFIG{sarkaspip_menus/option_rubriques, 0}|=={2}|oui)[(#INCLURE{fond=noisettes/rubrique/lien,id_rubrique,classe=#GET{classe}})]]
    8080                                                </li>
    8181                                        </BOUCLE_ss_rubriques>
  • _squelettes_/sarkaspip/trunk/noisettes/rubrique/lien.html

    r67149 r67151  
    2929        [(#SET{bulle, #ENV{bulle}})]
    3030]
    31 [(#GET{url}|lien_ou_expose{#GET{titre},#ENV{expose,''},#ENV{classe},#GET{bulle}})]
     31[(#GET{url}|lien_ou_expose{[(#GET{titre})[(#ENV{toggle,''}|oui)<b class="caret"></b>]],#ENV{expose,''},#ENV{classe},#GET{bulle}}|inserer_attribut{data-toggle,#ENV{toggle,''}})]
  • _squelettes_/sarkaspip/trunk/rubrique.html

    r67150 r67151  
    22        <INCLURE{fond=structure,env,id_secteur=#ID_SECTEUR,type-page=rubrique,composition=forums} />
    33</BOUCLE_is_forum></BOUCLE_racforum>
     4        #SET{redirection,#ID_RUBRIQUE|sarkaspip_test_si_redirection_article_solitaire}
     5        [(#GET{redirection}|non|sinon_interdire_acces{#URL_ARTICLE{#GET{redirection}}})]
    46        <BOUCLE_principale_rubrique(RUBRIQUES){id_rubrique}>
    57        <INCLURE{fond=structure,env,id_secteur=#ID_SECTEUR,type-page=rubrique,composition=#ENV{referencer}|=={oui}|?{referencer,#AGENDA|?{agenda,#COMPOSITION}}} />
Note: See TracChangeset for help on using the changeset viewer.