Changeset 89408 in spip-zone for _plugins_/courtjus


Ignore:
Timestamp:
May 17, 2015, 3:56:26 PM (5 years ago)
Author:
p@…
Message:

Prendre en compte les num_titre pour trouver la redirection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/courtjus/trunk/courtjus_fonctions.php

    r89407 r89408  
    178178            // On cherche le num titre dans le titre de l'objet
    179179            preg_match('#^[0-9]*\.#', $objet_rubrique['titre'], $match);
     180
    180181            // On créer le tableau contenant les données de l'objet
    181182            $objets_in_rubrique[] = array(
     
    202203    }
    203204    // S'il y plusieurs objets dans la rubrique et que le mode "par num titre" est activé, on regiride sur le num titre le plus petit.
    204     elseif ($nb_objet > 1) {
     205    elseif ($nb_objet > 1 and array_sum(array_column($objets_in_rubrique, 'num_titre')) > 0) {
    205206        // On créer un tableau avec uniquement les num titre
    206207        $minmax = array_column($objets_in_rubrique, 'num_titre');
     
    217218}
    218219
    219 
    220 
    221220/**
    222221 * Renvoie tout les enfants direct d'une rubrique
     
    228227function courtjus_quete_enfant($id_rubrique) {
    229228    // On récupère tous les enfants direct.
    230     $enfants = sql_allfetsel('id_rubrique', table_objet_sql('rubrique'), 'id_parent='.intval($id_rubrique));
     229    $enfants = sql_allfetsel('id_rubrique, titre', table_objet_sql('rubrique'), 'id_parent='.intval($id_rubrique));
     230
     231    // On va chercher un éventuel num_titre dans les titre
     232    foreach ($enfants as $index => $enfant) {
     233        $match = null;
     234        if (preg_match('#^[0-9]*\.#', $enfant['titre'], $match)) {
     235            $enfants[$index]['num_titre'] = intval($match[0]);
     236        }
     237    }
    231238
    232239    // On simplifie le tableau pour n'avoir que des id
    233     $enfants = array_column($enfants, 'id_rubrique');
    234 
     240    $enfants = array_column($enfants, 'id_rubrique', 'num_titre');
     241    ksort($enfants);
    235242    return $enfants;
    236243}
Note: See TracChangeset for help on using the changeset viewer.