[SPIP] +installation version 3.0.10
[lhc/web/www.git] / www / plugins-dist / urls_etendues / formulaires / editer_url_objet.php
diff --git a/www/plugins-dist/urls_etendues/formulaires/editer_url_objet.php b/www/plugins-dist/urls_etendues/formulaires/editer_url_objet.php
new file mode 100644 (file)
index 0000000..c3f1748
--- /dev/null
@@ -0,0 +1,91 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2013                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+/**
+ * Chargement des donnees du formulaire
+ *
+ * @param string $type
+ * @param int $id
+ * @return array
+ */
+function formulaires_editer_url_objet_charger($type,$id){
+       $valeurs = array('url'=>'','_objet'=>$type,'_id_objet'=>$id);
+
+       return $valeurs;
+}
+
+function formulaires_editer_url_objet_verifier($type,$id){
+       $erreurs = array();
+       include_spip('action/editer_url');
+       if (!$url = _request('url')){
+               $erreurs['url'] = _T('info_obligatoire');
+       }
+       else {
+               $type_urls = $GLOBALS['meta']['type_urls'];
+               if ($type_urls=='arbo' AND strpos($url,'/')!==false){
+                       $url = explode('/',$url);
+                       if (count($url)>2)
+                               $erreurs['url'] = _T('urls:erreur_arbo_2_segments_max');
+                       else{
+                               foreach($url as $u){
+                                       $url_clean[] = url_nettoyer($u, 255);
+                               }
+                               $url = implode('/',$url);
+                               $url_clean = implode('/',$url_clean);
+                       }
+               }
+               else
+                       $url_clean = url_nettoyer($url, 255);
+               if (!isset($erreurs['url']) AND $url!=$url_clean){
+                       set_request('url',$url_clean);
+                       $erreurs['url'] = _T('urls:verifier_url_nettoyee');
+               }
+       }
+
+       return $erreurs;
+}
+
+/**
+ * Traitement
+ *
+ * @param string $type
+ * @param int $id
+ * @return array
+ */
+function formulaires_editer_url_objet_traiter($type,$id){
+       $valeurs = array('editable'=>true);
+
+       include_spip('action/editer_url');
+       // les urls manuelles sont toujours permanentes
+       $set = array('url' => _request('url'), 'type' => $type, 'id_objet' => $id, 'perma'=>1);
+
+       $type_urls = $GLOBALS['meta']['type_urls'];
+       if (include_spip("urls/$type_urls")
+               AND function_exists($renseigner_url = "renseigner_url_$type_urls")
+               AND $r = $renseigner_url($type,$id)
+               AND isset($r['parent']))
+               $set['id_parent'] = $r['parent'];
+
+       $separateur = "-";
+       if (defined('_url_sep_id')) $separateur = _url_sep_id;
+
+       if (url_insert($set,false,$separateur)) {
+               set_request('url');
+               $valeurs['message_ok'] = _T("urls:url_ajoutee");
+       }
+       else
+               $valeurs['message_erreur'] = _T("urls:url_ajout_impossible");
+
+       return $valeurs;
+}
\ No newline at end of file