Changeset 107479 in spip-zone


Ignore:
Timestamp:
Nov 13, 2017, 10:31:45 AM (2 years ago)
Author:
cedric@…
Message:

la fonction qui fait la numerotation proprement dite est deportee dans une fonction surchargeable pour permettre la personalisation propre a un site donne (permet de fixer son propre algorithme pour un type, un secteur, une rubrique etc)

Location:
_plugins_/numerotation/trunk
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/numerotation/trunk/inc/numeroter.php

    r104447 r107479  
    140140}
    141141
     142
    142143/**
    143144 * Numeroter/denumeroter les objets d'un parent
     
    147148 */
    148149function numero_numeroter_objets($type='rubrique',$id_parent,$remove=false){
    149         $d = numero_info_objet($type);
    150         if (!$d)
    151                 return;
    152 
    153         $type = $d['type'];
    154         $table = $d['table'];
    155         $table_sql = $d['table_sql'];
    156         $key = $d['primary'];
    157         $desc = $d['desc'];
    158         $parent = $d['parent'];
    159         $titre = $d['titre'];
    160 
    161         $cond = array();
    162         $zero = true;
    163         if (!$remove AND
    164                 $type=='article'){
    165                 $row = false;
    166                 if (defined('_NUMERO_MOT_ARTICLE_ACCUEIL')) {
    167                         // numeroter 0. l'article d'accueil de la rubrique
    168                         $row = sql_fetsel("a.id_article,a.titre",
    169                                 "spip_articles AS a INNER JOIN spip_mots_liens as J ON (J.id_objet=a.id_article AND J.objet='article')",
    170                                 "a.id_rubrique=".sql_quote($id_parent)."
    171                          AND J.id_mot=".sql_quote(_NUMERO_MOT_ARTICLE_ACCUEIL),'',"0+a.titre, a.maj DESC","0,1");
    172                 }
    173                 if (defined('_DIR_PLUGIN_ARTICLE_ACCUEIL')){
    174                         // numeroter 0. l'article d'accueil de la rubrique
    175                         $row = sql_fetsel("a.id_article,a.titre",
    176                                 "spip_articles AS a INNER JOIN spip_rubriques as J ON J.id_article_accueil=a.id_article",
    177                                 "a.id_rubrique=".sql_quote($id_parent),'',"0+a.titre, a.maj DESC","0,1");
    178                 }
    179                 if ($row){
    180                         $titre = "0. " . numero_denumerote_titre($row['titre']);
    181                         if ($titre!==$row['titre'])
    182                                 sql_updateq($table_sql,array('titre'=>$titre),"$key=".sql_quote($row[$key]));
    183                         $zero = false;
    184                         $cond[] = "id_article<>".sql_quote($row[$key]);
    185                 }
    186         }
    187         if ($type=='article') {
    188                 $cond[] = "statut!=".sql_quote('poubelle');
    189         }
    190 
    191         if ($parent){
    192                 $cond[] = "$parent=".sql_quote($id_parent);
    193         }
    194 
    195         $res = numero_requeter_titre($type,$cond);
    196         $cpt = 1;
    197         while($row = sql_fetch($res)) {
    198                 // conserver la numerotation depuis zero si deja presente
    199                 if ($zero && ($cpt==1) && preg_match(',^0+[.]\s,',$row['titre'])) {
    200                         $zero = false;
    201                         $cpt = 0;
    202                 }
    203                 $t = (!$remove?($cpt*_NUMEROTE_STEP) . ". ":"") . numero_denumerote_titre($row['titre']);
    204                 if ($t!==$row['titre']){
    205                         numero_titrer_objet($type,$row['id'],$t);
    206                 }
    207                 $cpt++;
    208         }
    209         return;
     150        $numero_numeroter_objets = charger_fonction('numero_numeroter_objets', 'inc');
     151        return $numero_numeroter_objets($type, $id_parent, $remove);
    210152}
    211153
     
    217159 */
    218160function numero_numeroter_rubrique($id_rubrique,$type='rubrique',$numerote=true){
    219         return numero_numeroter_objets($type,$id_rubrique,!$numerote);
     161        $numero_numeroter_objets = charger_fonction('numero_numeroter_objets', 'inc');
     162        return $numero_numeroter_objets($type, $id_rubrique, !$numerote);
    220163}
    221164
  • _plugins_/numerotation/trunk/paquet.xml

    r106753 r107479  
    22        prefix="numero"
    33        categorie="navigation"
    4         version="2.0.11"
     4        version="2.1.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.