Changeset 96706 in spip-zone


Ignore:
Timestamp:
Apr 20, 2016, 1:17:49 PM (5 years ago)
Author:
p@…
Message:

Ajouter une option pour rediriger sur l'article le plus récent

Location:
_plugins_/courtjus/trunk
Files:
4 edited

Legend:

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

    r96110 r96706  
    168168                // l'identifiant de l'objet
    169169                $champs_id = id_table_objet($table);
     170                // Le champ qui contient la date
     171                $champ_date = objet_info($objet, 'date');
    170172
    171173                // Les champs qui seront utilisé pour la requête.
    172174                $champs = array(
    173175                        $champs_id,
    174                         $titre
     176                        $titre,
     177                        // Convertir la date de l'objet en timestamp, cela permettra une comparaison rapide
     178                        'UNIX_TIMESTAMP('.$champ_date.') AS '.$champ_date
    175179                );
    176180
     
    199203                                'id_objet' => $objet_rubrique[$champs_id],
    200204                                'objet' => $objet,
    201                                 'num_titre' => $num_titre
     205                                'num_titre' => $num_titre,
     206                                'date' => $objet_rubrique[$champ_date]
    202207                        );
    203208                }
     
    257262                        true
    258263                );
    259         }
    260 
    261         // Sinon, si le mot "plus récent"" est activé on redirige sur l'article le plus récente.
    262 
     264        } elseif ($nb_objet > 1
     265                          and $config['recent'] == 'on') {
     266                // Si le mode par article le plus récent est activé
     267
     268                // On créer un tableau avec uniquement les timestamps des dates
     269                $minmax = array_column($objets_in_rubrique, 'date');
     270
     271                // On va filtrer ce tableau pour n'avoir que des nombres à tester
     272                $minmax = array_filter($minmax, 'is_numeric');
     273
     274                // On recherche l'index avec le timestamp le plus grand
     275                $index = array_search(max($minmax), $minmax);
     276
     277                // Créer l'URL de redirection
     278                return generer_url_entite(
     279                        $objets_in_rubrique[$index]['id_objet'],
     280                        $objets_in_rubrique[$index]['objet'],
     281                        '',
     282                        '',
     283                        true
     284                );
     285        }
    263286}
    264287
  • _plugins_/courtjus/trunk/formulaires/configurer_courtjus.php

    r95589 r96706  
    4646                                'explication' => _T('courtjus:explication_num_titre')
    4747                        )
    48                 )
     48                ),
     49        array(
     50            'saisie' => 'oui_non',
     51            'options' => array(
     52                'nom' => 'recent',
     53                'label' => _T('courtjus:label_recent'),
     54                'explication' => _T('courtjus:explication_recent')
     55            )
     56        )
    4957        );
    5058
  • _plugins_/courtjus/trunk/lang/courtjus_fr.php

    r95589 r96706  
    11<?php
    2 // This is a SPIP language file  -- Ceci est un fichier langue de SPIP
     2// This is a SPIP language file  --      Ceci est un fichier langue de SPIP
    33
    44if (!defined('_ECRIRE_INC_VERSION')) return;
     
    2020        'explication_num_titre' => "Rediriger sur l'article avec le plus petit num titre",
    2121        'chercher_rubrique_enfant' => 'Chercher dans les rubriques enfants ?',
    22         'explication_chercher_rubrique_enfant' => 'Permettre de chercher dans les sous-rubriques pour trouver un objet ?'
     22        'explication_chercher_rubrique_enfant' => 'Permettre de chercher dans les sous-rubriques pour trouver un objet ?',
     23        'label_recent' => 'Article récent',
     24        'explication_recent' => "Rediriger sur l'article le plus récent ?"
    2325);
  • _plugins_/courtjus/trunk/paquet.xml

    r96112 r96706  
    22        prefix="courtjus"
    33        categorie="navigation"
    4         version="1.0.2"
     4        version="1.1.0"
    55        etat="test"
    66        compatibilite="[3.0.16;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.