X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fprive%2Fformulaires%2Finstituer_objet.php;fp=www%2Fprive%2Fformulaires%2Finstituer_objet.php;h=2309f3900ca26ba9752bb599d02eca3640f14347;hb=a9541742f84ce7e258d46dd8407242289ab2ec72;hp=0000000000000000000000000000000000000000;hpb=8ed9bb762bd42e6262d417333a5a42c2c15a79e0;p=lhc%2Fweb%2Fwww.git diff --git a/www/prive/formulaires/instituer_objet.php b/www/prive/formulaires/instituer_objet.php new file mode 100644 index 00000000..2309f390 --- /dev/null +++ b/www/prive/formulaires/instituer_objet.php @@ -0,0 +1,149 @@ +'publie'))){ + if ($v['statut'] == 'publie') + $editable = false; + else + $publiable = false; + } + } + $valeurs = array( + 'editable' => $editable, + 'statut' => $v['statut'], + '_objet' => $objet, + '_id_objet' => $id_objet, + '_statuts' => lister_statuts_proposes($desc, $editable?$publiable:true), + '_publiable' => $publiable, + '_label' => isset($desc['texte_changer_statut'])?$desc['texte_changer_statut']:'texte_article_statut', + '_aide' => isset($desc['aide_changer_statut'])?$desc['aide_changer_statut']:'', + '_hidden' => "", + ); + + #if (!count($valeurs['statuts'])) + return $valeurs; +} + +/** + * Verifier #FORMULAIRE_INSTITUER_OBJET + * @param string $objet + * @param int $id_objet + * @param string $retour + * @return array + */ +function formulaires_instituer_objet_verifier_dist($objet,$id_objet,$retour="",$editable = true){ + $erreurs = array(); + // charger le contenu de l'objet + // dont son champ statut + $v = formulaires_editer_objet_charger($objet,$id_objet,0,0,'',''); + + if ($v['statut']!==_request('statut_old')) + $erreurs['statut'] = _T('instituer_erreur_statut_a_change'); + else { + $table = table_objet_sql($objet); + $desc = lister_tables_objets_sql($table); + + $publiable = true; + if (isset($v['id_rubrique']) + AND !autoriser('publierdans', 'rubrique', $v['id_rubrique'])) { + $publiable = false; + } + $l = lister_statuts_proposes($desc, $publiable); + $statut = _request('statut'); + if (!isset($l[$statut]) + OR !autoriser('instituer',$objet,$id_objet,'',array('statut'=>$statut))) + $erreurs['statut'] = _T('instituer_erreur_statut_non_autorise'); + } + + return $erreurs; +} + +/** + * Traiter #FORMULAIRE_INSTITUER_OBJET + * @param string $objet + * @param int $id_objet + * @param string $retour + * @return array + */ +function formulaires_instituer_objet_traiter_dist($objet,$id_objet,$retour="",$editable = true){ + + $c = array('statut' => _request('statut')); + // si on a envoye une 'date_posterieure', l'enregistrer + // todo dans le HTML + if ($d = _request('date_posterieure')) + $c['date'] = $d; + + + include_spip('action/editer_objet'); + if ($err=objet_instituer($objet, $id_objet, $c)) + $res = array('message_erreur'=>$err); + else { + $res = array('message_ok'=>_T('info_modification_enregistree')); + if ($retour) + $res['redirect'] = $retour; + set_request('statut'); + set_request('date_posterieure'); + } + + return $res; +} \ No newline at end of file