source: spip-zone/_plugins_/shortcut_url/trunk/formulaires/editer_shortcut_url.php @ 97859

Last change on this file since 97859 was 97859, checked in by cyp@…, 3 years ago

PSR SPIP

File size: 4.1 KB
Line 
1<?php
2/**
3 * shortcut_url
4 *
5 * @plugin     shortcut_url
6 * @copyright  2015
7 * @author     cyp
8 * @license    GNU/GPL
9 * @package    SPIP\formulaires\shortcut_url
10 */
11
12/**
13 * Gestion du formulaire de shortcut_url des sites
14 *
15 * @package SPIP\Formulaires
16 **/
17if (!defined('_ECRIRE_INC_VERSION')) {
18        return;
19}
20
21include_spip('inc/actions');
22include_spip('inc/editer');
23include_spip('action/editer_objet');
24
25/**
26 * Chargement du formulaire de configuration du shortcut_url
27 *
28 * @return array
29 *     Environnement du formulaire
30 **/
31function formulaires_editer_shortcut_url_charger_dist($id_shortcut_url = 'new', $objet = '', $id_objet = '', $retour = '', $ajaxload = 'oui', $options = '') {
32        $valeurs = formulaires_editer_objet_charger('shortcut_url', $id_shortcut_url, '', '', $retour, '');
33
34        if (defined('_TAILLE_RACCOURCI')) {
35                if (_TAILLE_RACCOURCI >= 5) {
36                        $valeurs['taille_raccourci'] = _TAILLE_RACCOURCI;
37                } else {
38                        $valeurs['taille_raccourci'] = 8;
39                }
40        } else {
41                $valeurs['taille_raccourci'] = 8;
42        }
43        return $valeurs;
44}
45function formulaires_editer_shortcut_url_verifier_dist($id_shortcut_url = 'new', $objet = '', $id_objet = '', $retour = '', $ajaxload = 'oui', $options = '') {
46        $erreurs = formulaires_editer_objet_verifier('shortcut_url', $id_shortcut_url, array('url'));
47
48        if (!$url = _request('url')) {
49                $erreurs['url'] = _T('info_obligatoire');
50        } else {
51                // Check si il existe le http://
52                $parsed = parse_url($url);
53                if (filter_var($url, FILTER_VALIDATE_URL) === false) {
54                        $erreurs['url'] = _T('shortcut_url:erreur_url_invalide');
55                } else {
56                        // On supprime ?var_mode=recalcul et autres var_mode (cf traiter aussi)
57                        $url = parametre_url($url, 'var_mode', '');
58                        // Check si l'URL existe deja
59                        if (($id_shortcut_url == 'oui') && ($id_shortcut_url_existe = sql_getfetsel('id_shortcut_url', 'spip_shortcut_urls', 'url=' . sql_quote($url)))) {
60                                set_request('id_shortcut_url_existe', $id_shortcut_url_existe);
61                                $erreurs['url'] = _T('shortcut_url:erreur_url_exist');
62                        }
63                }
64        }
65        // On vérifie que l'URL raccourcie n'existe pas
66        if (_request('titre')) {
67                $id_shortcut_url_existe = sql_getfetsel('id_shortcut_url', 'spip_shortcut_urls', 'titre=' . sql_quote(_request('titre')));
68                if ($id_shortcut_url_existe) {
69                        set_request('id_shortcut_url_existe', $id_shortcut_url_existe);
70                        $erreurs['titre'] = _T('shortcut_url:erreur_url_raccourcis_exist');
71                }
72        }
73
74        return $erreurs;
75}
76
77// http://doc.spip.org/@inc_editer_shortcut_url_dist
78function formulaires_editer_shortcut_url_traiter_dist($id_shortcut_url = 'new', $objet = '', $id_objet = '', $retour = '', $ajaxload = 'oui', $options = '') {
79        include_spip('inc/distant');
80        $recup = recuperer_page(_request('url'), true);
81        if (preg_match(',<title[^>]*>(.*),i', $recup, $regs)) {
82                $result['nom_site'] = filtrer_entites(supprimer_tags(preg_replace(',</title>.*,i', '', $regs[1])));
83        }
84
85        if (defined('_TAILLE_RACCOURCI')) {
86                if (_TAILLE_RACCOURCI >= 5) {
87                        $taille_raccourci = _TAILLE_RACCOURCI;
88                } else {
89                        $taille_raccourci = 8;
90                }
91        } else {
92                $taille_raccourci = 8;
93        }
94
95        $set = array();
96        if (_request('titre')) {
97                $set['titre'] = _request('titre');
98        } else {
99                $set['titre'] = generer_chaine_aleatoire($taille_raccourci);
100        }
101        $set['description'] = $result['nom_site'];
102        // On supprime ?var_mode=recalcul et autres var_mode
103        $set['url'] = parametre_url(_request('url'), 'var_mode', '');
104        $set['ip_address'] = $_SERVER['REMOTE_ADDR'];
105        $set['date_modif'] = date('Y-m-d H:i:s');
106
107        if (intval($id_shortcut_url) > 0) {
108                sql_delete('spip_urls', 'type=' . sql_quote('shortcut_url') . ' AND id_objet=' . intval($id_shortcut_url));
109        }
110        $editer_objet = charger_fonction('editer_objet', 'action');
111        $action = $editer_objet($id_shortcut_url, 'shortcut_url', $set);
112
113        // $res = array('redirect' => self(), 'id_shortcut_url' => $id_shortcut_url);
114        $res = array(
115                        'editable' => true,
116                        'message_ok' => _T('shortcut_url:message_confirmation_shortcut_url')
117        );
118        if (_request('exec') == 'accueil') {
119                set_request('id_shortcut_url', false);
120                set_request('url', false);
121                set_request('titre', false);
122        }
123        $res['message_ok'] .= "<script type='text/javascript'>if (window.jQuery) $('.liste-objets.shortcut_url').ajaxReload();</script>";
124        return $res;
125}
Note: See TracBrowser for help on using the repository browser.