3 * Editer l'identifiant page d'un article
5 * @plugin Pages Uniques
7 * @author RastaPopoulos
9 * @package SPIP\Pages\Formulaires
10 * @link http://contrib.spip.net/Pages-uniques
13 if (!defined('_ECRIRE_INC_VERSION')) return;
15 function formulaires_editer_identifiant_page_charger($id_article, $retour=''){
16 $valeurs['champ_page'] = generer_info_entite($id_article,'article','page');
17 $valeurs['_saisie_en_cours'] = (_request('champ_page')!==null);
22 * Identifier le formulaire en faisant abstraction des parametres qui
23 * ne representent pas l'objet edite
25 function formulaires_editer_identifiant_page_identifier_dist($id_article, $retour=''){
26 return serialize(array('article', $id_article));
30 * Verification avant traitement
32 * @param integer $id_article
33 * @param string $retour
34 * @return Array Tableau des erreurs
36 function formulaires_editer_identifiant_page_verifier_dist($id_article, $retour=''){
39 if ($page = _request('champ_page')) {
40 // nombre de charactères : 40 max
41 if (strlen($page) > 40)
42 $erreurs['champ_page'] = _T('pages:erreur_champ_page_taille');
43 // format : charactères alphanumériques en minuscules ou "_"
44 elseif (!preg_match('/^[a-z0-9_]+$/', $page))
45 $erreurs['champ_page'] = _T('pages:erreur_champ_page_format');
47 elseif (sql_countsel(table_objet_sql('article'), "page=".sql_quote($page) . " AND id_article!=".intval($id_article)))
48 $erreurs['champ_page'] = _T('pages:erreur_champ_page_doublon');
57 * @param integer $id_article
58 * @param string $retour
61 function formulaires_editer_identifiant_page_traiter_dist($id_article, $retour=''){
65 and $page = _request('champ_page')
67 include_spip('action/editer_objet');
68 objet_modifier('article',$id_article,array('page'=>$page));
71 set_request('champ_page');
72 $res['editable'] = true;
74 $res['redirect'] = $retour;