3 * Editer l'identifiant page d'un article
5 * @plugin Pages Uniques
7 * @author RastaPopoulos
9 * @package SPIP\Pages\Formulaires
12 if (!defined('_ECRIRE_INC_VERSION')) return;
14 function formulaires_editer_identifiant_page_charger($id_article, $retour=''){
15 $valeurs['champ_page'] = generer_info_entite($id_article,'article','page');
16 $valeurs['_saisie_en_cours'] = (_request('champ_page')!==null);
21 * Identifier le formulaire en faisant abstraction des parametres qui
22 * ne representent pas l'objet edite
24 function formulaires_editer_identifiant_page_identifier_dist($id_article, $retour=''){
25 return serialize(array('article', $id_article));
29 * Verification avant traitement
31 * @param integer $id_article
32 * @param string $retour
33 * @return Array Tableau des erreurs
35 function formulaires_editer_identifiant_page_verifier_dist($id_article, $retour=''){
38 if ($page = _request('champ_page')) {
39 // nombre de charactères : 40 max
40 if (strlen($page) > 40)
41 $erreurs['champ_page'] = _T('pages:erreur_champ_page_taille');
42 // format : charactères alphanumériques en minuscules ou "_"
43 elseif (!preg_match('/^[a-z0-9_]+$/', $page))
44 $erreurs['champ_page'] = _T('pages:erreur_champ_page_format');
46 elseif (sql_countsel(table_objet_sql('article'), "page=".sql_quote($page) . " AND id_article!=".intval($id_article)))
47 $erreurs['champ_page'] = _T('pages:erreur_champ_page_doublon');
56 * @param integer $id_article
57 * @param string $retour
60 function formulaires_editer_identifiant_page_traiter_dist($id_article, $retour=''){
64 and $page = _request('champ_page')
66 include_spip('action/editer_objet');
67 objet_modifier('article',$id_article,array('page'=>$page));
70 set_request('champ_page');
71 $res['editable'] = true;
73 $res['redirect'] = $retour;