From d1bf93c785644a8386a879eaf4ba7f573f7e2c4d Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Sun, 2 Dec 2007 21:11:55 +0000 Subject: [PATCH] aleer devient informer_auteur, et le JSON a droit a son fichier --- .gitattributes | 3 +- dist/formulaires/login.html | 2 +- ecrire/action/aleer.php | 99 ------------------------------- ecrire/action/informer_auteur.php | 44 ++++++++++++++ ecrire/inc/json.php | 77 ++++++++++++++++++++++++ 5 files changed, 124 insertions(+), 101 deletions(-) delete mode 100644 ecrire/action/aleer.php create mode 100644 ecrire/action/informer_auteur.php create mode 100644 ecrire/inc/json.php diff --git a/.gitattributes b/.gitattributes index 74e98efd0b..47ba3aac3d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -378,7 +378,6 @@ dist/vignettes/zip.png -text dist/win_width.htc -text ecrire/action/acceder_document.php -text ecrire/action/activer_plugins.php -text -ecrire/action/aleer.php -text ecrire/action/charger_plugin.php -text ecrire/action/configurer.php -text ecrire/action/configurer_notifications_forum.php -text @@ -402,6 +401,7 @@ ecrire/action/export_all.php -text ecrire/action/ical.php -text ecrire/action/iconifier.php -text ecrire/action/index.php -text +ecrire/action/informer_auteur.php -text ecrire/action/instituer_article.php -text ecrire/action/instituer_breve.php -text ecrire/action/instituer_collaboration.php -text @@ -625,6 +625,7 @@ ecrire/inc/instituer_auteur.php -text ecrire/inc/instituer_breve.php -text ecrire/inc/instituer_site.php -text ecrire/inc/joindre.php -text +ecrire/inc/json.php -text ecrire/inc/lang_liste.php -text ecrire/inc/legender.php -text ecrire/inc/lien.php -text diff --git a/dist/formulaires/login.html b/dist/formulaires/login.html index 3fb961a64a..9bfab0994a 100644 --- a/dist/formulaires/login.html +++ b/dist/formulaires/login.html @@ -94,7 +94,7 @@ var alea_actuel; var alea_futur; $('#pass_ajax').show().after('<input type="hidden" name="session_login_hidden" id="session_login_hidden" value="" />'); $('#var_login').blur(function(){ - $.get('#URL_ACTION{aleer}', + $.get('#URL_ACTION{informer_auteur}', {var_login:$(this).attr('value')}, function (c) { eval('c = '+c); // JSON diff --git a/ecrire/action/aleer.php b/ecrire/action/aleer.php deleted file mode 100644 index c84e917dd3..0000000000 --- a/ecrire/action/aleer.php +++ /dev/null @@ -1,99 +0,0 @@ -<?php - -/***************************************************************************\ - * SPIP, Systeme de publication pour l'internet * - * * - * Copyright (c) 2001-2007 * - * 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; - -/** - * Transform a variable into its javascript equivalent (recursive) - * @access private - * @param mixed the variable - * @return string js script | boolean false if error - */ -function var2js($var) { - $asso = false; - switch (true) { - case is_null($var) : - return 'null'; - case is_string($var) : - return '"' . str_replace('&', '\x26', addcslashes($var, "\"\\\n\r")) . '"'; - case is_bool($var) : - return $var ? 'true' : 'false'; - case is_scalar($var) : - return $var; - case is_object( $var) : - $var = get_object_vars($var); - $asso = true; - case is_array($var) : - $keys = array_keys($var); - $ikey = count($keys); - while (!$asso && $ikey--) { - $asso = $ikey !== $keys[$ikey]; - } - $sep = ''; - if ($asso) { - $ret = '{'; - foreach ($var as $key => $elt) { - $ret .= $sep . '"' . $key . '":' . var2js($elt); - $sep = ','; - } - return $ret ."}\n"; - } else { - $ret = '['; - foreach ($var as $elt) { - $ret .= $sep . var2js($elt); - $sep = ','; - } - return $ret ."]\n"; - } - } - return false; -} - -function json_export($var) { - $var = var2js($var); - - // flag indiquant qu'on est en iframe et qu'il faut proteger nos - // donnees dans un <textarea> ; attention $_FILES a ete vide par array_pop - if (defined('FILE_UPLOAD')) - return "<textarea>".htmlspecialchars($var)."</textarea>"; - else - return $var; -} - -include_spip('base/abstract_sql'); -// http://doc.spip.org/@action_configurer_dist -function action_aleer_dist() { - $row = array(); - if ($login=_request('var_login')) { - $row = sql_fetsel('id_auteur,login,alea_actuel,alea_futur,prefs', 'spip_auteurs', "login=" . sql_quote($login)); - // Retrouver ceux qui signent de leur nom ou email - if (!$row AND !spip_connect_ldap()) { - $row = sql_fetsel('id_auteur,login,alea_actuel,alea_futur,prefs', 'spip_auteurs', "(nom = " . sql_quote($login) . " OR email = " . sql_quote($login) . ") AND login<>'' AND statut<>'5poubelle'"); - } - if ($row) { - $prefs = unserialize($row['prefs']); - $row['cnx'] = $prefs['cnx'] == 'perma' ? '1' : '0'; - unset($row['prefs']); - - if ($chercher_logo = charger_fonction('chercher_logo', 'inc') - AND list($logo) = $chercher_logo($row['id_auteur'], 'id_auteur', 'on')) { - include_spip('inc/filtres'); - $row['logo'] = reduire_image($logo,100,80); - } - } - unset($row['id_auteur']); - - echo json_export($row); - } -} - -?> \ No newline at end of file diff --git a/ecrire/action/informer_auteur.php b/ecrire/action/informer_auteur.php new file mode 100644 index 0000000000..b3ad351fff --- /dev/null +++ b/ecrire/action/informer_auteur.php @@ -0,0 +1,44 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2007 * + * 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; + +// http://doc.spip.org/@action_informer_auteur_dist +function action_informer_auteur_dist() { + include_spip('base/abstract_sql'); + include_spip('inc/json'); + + $row = array(); + if ($login=_request('var_login')) { + $row = sql_fetsel('id_auteur,login,alea_actuel,alea_futur,prefs', 'spip_auteurs', "login=" . sql_quote($login)); + // Retrouver ceux qui signent de leur nom ou email + if (!$row AND !spip_connect_ldap()) { + $row = sql_fetsel('id_auteur,login,alea_actuel,alea_futur,prefs', 'spip_auteurs', "(nom = " . sql_quote($login) . " OR email = " . sql_quote($login) . ") AND login<>'' AND statut<>'5poubelle'"); + } + if ($row) { + $prefs = unserialize($row['prefs']); + $row['cnx'] = $prefs['cnx'] == 'perma' ? '1' : '0'; + unset($row['prefs']); + + if ($chercher_logo = charger_fonction('chercher_logo', 'inc') + AND list($logo) = $chercher_logo($row['id_auteur'], 'id_auteur', 'on')) { + include_spip('inc/filtres'); + $row['logo'] = reduire_image($logo,100,80); + } + } + unset($row['id_auteur']); + + echo json_export($row); + } +} + +?> \ No newline at end of file diff --git a/ecrire/inc/json.php b/ecrire/inc/json.php new file mode 100644 index 0000000000..6218a8f50e --- /dev/null +++ b/ecrire/inc/json.php @@ -0,0 +1,77 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2007 * + * 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; + +// Les fonctions de toggg pour faire du JSON + +/** + * Transform a variable into its javascript equivalent (recursive) + * @access private + * @param mixed the variable + * @return string js script | boolean false if error + */ + +function var2js($var) { + $asso = false; + switch (true) { + case is_null($var) : + return 'null'; + case is_string($var) : + return '"' . str_replace('&', '\x26', addcslashes($var, "\"\\\n\r")) . '"'; + case is_bool($var) : + return $var ? 'true' : 'false'; + case is_scalar($var) : + return $var; + case is_object( $var) : + $var = get_object_vars($var); + $asso = true; + case is_array($var) : + $keys = array_keys($var); + $ikey = count($keys); + while (!$asso && $ikey--) { + $asso = $ikey !== $keys[$ikey]; + } + $sep = ''; + if ($asso) { + $ret = '{'; + foreach ($var as $key => $elt) { + $ret .= $sep . '"' . $key . '":' . var2js($elt); + $sep = ','; + } + return $ret ."}\n"; + } else { + $ret = '['; + foreach ($var as $elt) { + $ret .= $sep . var2js($elt); + $sep = ','; + } + return $ret ."]\n"; + } + } + return false; +} + +function json_export($var) { + $var = var2js($var); + + // flag indiquant qu'on est en iframe et qu'il faut proteger nos + // donnees dans un <textarea> ; attention $_FILES a ete vide par array_pop + if (defined('FILE_UPLOAD')) + return "<textarea>".htmlspecialchars($var)."</textarea>"; + else + return $var; +} + + + +?> -- GitLab