Changeset 95747 in spip-zone


Ignore:
Timestamp:
Mar 3, 2016, 11:38:09 PM (4 years ago)
Author:
rastapopoulos@…
Message:

On teste si on peut VRAIMENT trouver un champ précis de titre valide. Seulement dans ce cas, l'objet est numérotable, et on affiche le formulaire. Sinon il n'est pas numérotable, on ne fait rien.

Location:
_plugins_/numerotation/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/numerotation/trunk/formulaires/numeroter_objet.php

    r82580 r95747  
    1515include_spip("inc/numeroter");
    1616
    17 function formulaires_numeroter_objet_charger_dist($objet,$id_objet){
    18 
    19         $valeurs = array(
    20                 '_objet' => $objet,
    21                 '_id_objet' => $id_objet,
    22                 'precedent' => '',
    23         );
    24 
     17function formulaires_numeroter_objet_charger_dist($objet,$id_objet) {
     18        $infos = numero_info_objet($objet);
     19       
     20        if ($infos['numerotable']) {
     21                $valeurs = array(
     22                        '_objet' => $objet,
     23                        '_id_objet' => $id_objet,
     24                        'precedent' => '',
     25                );
     26        }
     27        else {
     28                $valeurs = false;
     29        }
     30       
    2531        return $valeurs;
    2632}
    2733
    28 function formulaires_numeroter_objet_traiter_dist($objet,$id_objet){
     34function formulaires_numeroter_objet_traiter_dist($objet,$id_objet) {
    2935        $precedent = intval(_request('precedent'));
    3036
  • _plugins_/numerotation/trunk/inc/numeroter.php

    r84973 r95747  
    6363                        'titre' => 'titre',
    6464                        'tri_date' => '',
     65                        'numerotable' => true,
    6566                );
    6667                if (isset($desc['date']) AND isset($desc['field'][$desc['date']])){
     
    7071                        $infos[$objet]['tri_date'] = 'maj';
    7172                }
    72                 // extraire le champ titre
    73                 if (isset($desc['titre'])){
    74                         $infos[$objet]['titre'] = explode(',',$desc['titre']);
    75                         $infos[$objet]['titre'] = explode(' ',reset($infos[$objet]['titre']));
    76                         $infos[$objet]['titre'] = reset($infos[$objet]['titre']);
     73               
     74                // Extraire le champ titre SI on a "as titre" dedans
     75                // car sinon ça veut dire que c'est le champ titre tout court
     76                if (
     77                        isset($desc['titre'])
     78                        and stripos($desc['titre'], 'as titre') !== false
     79                ){
     80                        // On récupère ce qui est avant le "as titre"
     81                        if (preg_match('/(^|,)([\w\s]+)\s+as titre/i', $desc['titre'], $trouve)) {
     82                                $infos[$objet]['titre'] = trim($trouve[2]);
     83                        }
     84                        // On a pas trouvé, l'objet n'est donc pas numérotable
     85                        else {
     86                                $infos[$objet]['numerotable'] = false;
     87                        }
    7788                }
    7889        }
  • _plugins_/numerotation/trunk/paquet.xml

    r95437 r95747  
    22    prefix="numero"
    33    categorie="navigation"
    4     version="2.0.7"
     4    version="2.0.8"
    55    etat="stable"
    66    compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.