diff --git a/ecrire/base/connect_sql.php b/ecrire/base/connect_sql.php index 064d66f41e1f91d309c17ffcb6835792039de704..434355a7cfa88617565294008bbb8944b1a02f4f 100644 --- a/ecrire/base/connect_sql.php +++ b/ecrire/base/connect_sql.php @@ -220,8 +220,9 @@ function spip_connect_ldap($serveur='') { return auth_ldap_connect($serveur); } -// 1 interface de abstract_sql a demenager dans base/abstract_sql a terme - +// Echappement d'une valeur (num, string, array) sous forme de chaine PHP +// pour un array(1,'a',"a'") renvoie la chaine "'1','a','a\''" +// Usage sql un peu deprecie, a remplacer par sql_quote() // http://doc.spip.org/@_q function _q ($a) { return (is_numeric($a)) ? strval($a) : @@ -231,7 +232,7 @@ function _q ($a) { // Nommage bizarre des tables d'objets // http://doc.spip.org/@table_objet -function table_objet($type) { +function table_objet($type,$serveur='') { static $surnoms = null; $type = preg_replace(',^spip_|^id_|s$,', '', $type); if (!$type) return; @@ -246,15 +247,20 @@ function table_objet($type) { 'extension' => 'types_documents' # hum )); } - return isset($surnoms[$type]) - ? $surnoms[$type] - : rtrim($type,'s')."s"; + if (isset($surnoms[$type])) + return $surnoms[$type]; + + $trouver_table = charger_fonction('trouver_table', 'base'); + if ($desc = $trouver_table($type,$serveur)) + return $desc['table']; + + return rtrim($type,'s')."s"; # cas historique ne devant plus servir } // http://doc.spip.org/@table_objet_sql -function table_objet_sql($type) { +function table_objet_sql($type,$serveur='') { global $table_des_tables; - $nom = table_objet($type); + $nom = table_objet($type, $serveur); include_spip('public/interfaces'); if (isset($table_des_tables[$nom])) { $t = $table_des_tables[$nom]; @@ -265,7 +271,7 @@ function table_objet_sql($type) { // http://doc.spip.org/@id_table_objet function id_table_objet($type,$serveur='') { - $type = objet_type($type); + $type = objet_type($type,$serveur); if ($type == 'type') return 'extension'; else { diff --git a/ecrire/inc/modifier.php b/ecrire/inc/modifier.php index 76c4142b948716cb19da8047951505a4c363eec3..2b9bafc707f2d30d4fd784ae7eb95764e54933ec 100644 --- a/ecrire/inc/modifier.php +++ b/ecrire/inc/modifier.php @@ -31,9 +31,9 @@ function modifier_contenu($type, $id, $options, $c=false, $serveur='') { include_spip('inc/filtres'); - $table_objet = table_objet($type); - $spip_table_objet = table_objet_sql($type); - $id_table_objet = id_table_objet($type); + $table_objet = table_objet($type,$serveur); + $spip_table_objet = table_objet_sql($type,$serveur); + $id_table_objet = id_table_objet($type,$serveur); $trouver_table = charger_fonction('trouver_table', 'base'); $desc = $trouver_table($spip_table_objet, $serveur);