source: spip-zone/_plugins_/diogene/diogene/trunk/formulaires/editer_diogene.php @ 81813

Last change on this file since 81813 was 81813, checked in by kent1@…, 5 years ago

Remplacer if($statut_objet == 'publie'){

par objet_test_si_publie($objet,$id_objet)

On a introduit _DIOGENE_REDIRIGE_PUBLICATION qui permet de rediriger sur l'objet si publié. Ce n'était utilisé que lors de la modification d'article, on l'applique aussi sur la création.

Petite simplification

File size: 3.1 KB
Line 
1<?php
2/**
3 * Plugin Diogene
4 *
5 * Auteurs :
6 * kent1 (http://www.kent1.info - kent1@arscenic.info)
7 *
8 * © 2010-2014 - Distribue sous licence GNU/GPL
9 *
10 * Formulaire d'edition d'un template de formulaire "Diogene"
11 */
12
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15include_spip('inc/actions');
16include_spip('inc/editer');
17
18function formulaires_editer_diogene_charger_dist($id_diogene='new',$objet='article', $retour='',$config_fonc='', $row=array(), $hidden=''){
19        $pipeline = pipeline('diogene_objets');
20        $valeurs = array();
21        if(!is_numeric($id_diogene) && is_array($pipeline) AND !isset($pipeline[$objet])){
22                $valeurs['editable'] = false;
23                $valeurs['message_erreur'] = _T('diogene:erreur_objet_non_diogene',array('objet'=>$objet));
24                return $valeurs;
25        }else if(
26                !is_numeric($id_diogene)
27                && is_array($pipeline)
28                && isset($pipeline[$objet]['diogene_max'])
29                && sql_countsel('spip_diogenes','type='.sql_quote($objet)) >= intval($pipeline[$objet]['diogene_max'])){
30                $valeurs['editable'] = false;
31                $valeurs['message_erreur'] = _T('diogene:erreur_objet_diogene_max',array('objet'=>$objet,'max'=>$pipeline[$objet]['diogene_max']));
32                return $valeurs;
33        }
34
35        $valeurs = formulaires_editer_objet_charger('diogene',$id_diogene,0,0,$retour,$config_fonc,$row,$hidden);
36        if(empty($valeurs['objet']) OR (!in_array($valeurs['objet'],array('article','rubrique')) && !is_int($id_diogene)))
37                $valeurs['objet'] = $objet;
38
39        if(isset($valeurs['type'])){
40                $valeurs['identifiant'] = $valeurs['type'];
41                unset($valeurs['type']);
42        }
43        if(intval($valeurs['id_secteur']) && !$secteur_existe=sql_getfetsel('id_secteur','spip_rubriques','id_rubrique='.intval($valeurs['id_secteur'])))
44                $valeurs['message_erreur'] = _T('diogene:erreur_secteur_diogene_inexistant');
45
46        if (intval($valeurs['id_rubrique_defaut'])) {
47                $valeurs['rubrique_defaut'] = 'rubrique|'.$valeurs['id_rubrique_defaut'];
48        }
49       
50        return $valeurs;
51}
52
53function formulaires_editer_diogene_verifier_dist($id_diogene='new',$objet='article', $retour='', $config_fonc='', $row=array(), $hidden=''){
54        /* rubrique_defaut rend un tableau contenant 'rubrique|123'
55         * on extrait l'identifiant de la rubrique, ou on rend 0
56         */
57        $arr = _request("rubrique_defaut");
58        if (count($arr)) {
59                $tmp=explode("|",$arr[0]);
60                if (count($tmp) == 2) {
61                        set_request("id_rubrique_defaut", intval($tmp[1]));
62                }
63        } else {
64                set_request("id_rubrique_defaut", 0);
65        }
66
67        $erreurs = formulaires_editer_objet_verifier('diogene',$id_diogene,array('titre','statut_auteur','identifiant'));
68        $type = _request('identifiant');
69        if($id_diogene = sql_getfetsel('id_diogene','spip_diogenes','type='.sql_quote($type).' AND id_diogene!='.intval($id_diogene)))
70                $erreurs['identifiant'] = _T('diogene:erreur_identifiant_existant');
71
72        return $erreurs;
73}
74
75function formulaires_editer_diogene_traiter_dist($id_diogene='new',$objet='article', $retour='', $config_fonc='', $row=array(), $hidden=''){
76        /**
77         * On invalide le cache pour que les modifications sur les droits
78         * soient automatiquement prises en compte par les squelettes
79         */
80        include_spip('inc/invalideur');
81        suivre_invalideur(1);
82
83        return formulaires_editer_objet_traiter('diogene',$id_diogene,0,'',$retour,$config_fonc,$row,$hidden);
84}
85
86?>
Note: See TracBrowser for help on using the repository browser.