Changeset 7305


Ignore:
Timestamp:
01/24/13 15:36:03 (7 years ago)
Author:
kent1
Message:

Résoudre deux petits problèmes sur les fonctions lorsque l'on utilise pas des objets habituels de SPIP :

On répare generer_url_publier car on peut avoir des objets sans id_parent ni id_secteur

On répare également diogene_info_statut qui va chercher le nom d'un statut dans les déclarations de table en priorité, sinon on fait quelque chose manuellement

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/diogene/trunk/diogene_fonctions.php

    r7244 r7305  
    5858function generer_url_publier($id,$objet='article',$id_secteur=0,$forcer=true){
    5959        include_spip('inc/urls');
     60       
    6061        $id_table_objet = id_table_objet($objet) ? id_table_objet($objet) : 'id_article';
    6162        $table = table_objet_sql($objet);
     63        $table_objet = table_objet($objet);
     64       
     65        $infos_cherchees = array('statut');
     66        $trouver_table = charger_fonction('trouver_table', 'base');
     67       
     68        if ($desc = $trouver_table($table_objet, $serveur)
     69                AND isset($desc['id_secteur'])){
     70                        $infos_cherchees[] = 'id_secteur';
     71        }
     72               
    6273        if(is_numeric($id)){
    63                 $infos_objet = sql_fetsel('statut,id_secteur',$table,$id_table_objet."=".intval($id));
    64                 $id_secteur = $infos_objet['id_secteur']?$infos_objet['id_secteur']:0;
     74                $infos_objet = sql_fetsel($infos_cherchees,$table,$id_table_objet."=".intval($id));
     75                $id_secteur = $infos_objet['id_secteur'] ? $infos_objet['id_secteur'] : 0;
    6576        }
    6677        /**
     
    96107 */
    97108function diogene_info_statut($statut, $type='article') {
    98         switch ($type) {
    99                 case 'article':
    100                         $etats = array_flip($GLOBALS['liste_des_etats']);
    101                         return _T($etats[$statut]);
    102                 case 'rubrique':
    103                         $etats = array_flip($GLOBALS['liste_des_etats']);
    104                         if(isset($etats[$statut])){
     109        $statuts = objet_info($type,'statut_titres');
     110        if(!is_array($statuts)){
     111                $statuts = objet_info($type,'statut_textes_instituer');
     112        }
     113        if(is_array($statuts) && array_key_exists($statut,$statuts)){
     114                return _T($statuts[$statut]);
     115        }
     116        else{
     117                switch ($type) {
     118                        case 'article':
     119                                $etats = array_flip($GLOBALS['liste_des_etats']);
    105120                                return _T($etats[$statut]);
    106                         }
    107                         elseif($statut == 'new')
    108                                 return _T('diogene:info_rubrique_new');
    109                         /**
    110                          * Rubrique qui a été dépubliée
    111                          * cf depublier_rubrique_if() dans inc/rubriques
    112                          */
    113                         elseif($statut == 0)
    114                                 return _T('diogene:info_rubrique_vide');
    115 
    116                         else
    117                                 return $statut;
     121                        case 'rubrique':
     122                                $etats = array_flip($GLOBALS['liste_des_etats']);
     123                                if(isset($etats[$statut])){
     124                                        return _T($etats[$statut]);
     125                                }
     126                                elseif($statut == 'new')
     127                                        return _T('diogene:info_rubrique_new');
     128                                /**
     129                                 * Rubrique qui a été dépubliée
     130                                 * cf depublier_rubrique_if() dans inc/rubriques
     131                                 */
     132                                elseif($statut == 0)
     133                                        return _T('diogene:info_rubrique_vide');
     134       
     135                                else
     136                                        return $statut;
     137                }
    118138        }
    119139        return;
Note: See TracChangeset for help on using the changeset viewer.