table_objet($type_objet)
sera beaucoup mieux que l’affreux
preg_replace(‹ /^spip_/i ›, ‹ ›, table_objet_sql($type_objet))
Et sinon
if($type_objet and !in_array(‹ mots_ ›.preg_replace(‹ /^spip_/i ›, ‹ ›, table_objet_sql($type_objet)), $tables_jointures[‹ spip_mots ›]))
n’est pas perenne dans la mesure ou les tables mots_xxx vont etre un jour ou l’autre fusionnees en une seule mots_liens, comme pour les documents.
Il faut te reposer sur la présence de la declaration dans tables_jointures, pas sur le nom de la table qui y est declaree.
Cédric
Le 9 avril 2009 17:26, <vincent@ldd.fr> a écrit :
Author: vincent@ldd.fr
Date: Thu Apr 9 17:26:02 2009
New Revision: 27761Log:
qu’est ce qu’il ne faut pas faire avec ces noms de table…Modified:
plugins/test/etiquettes/balise/formulaire_etiquettes.php
plugins/test/etiquettes/formulaires/etiquettes.phpModified: plugins/test/etiquettes/balise/formulaire_etiquettes.php
— plugins/test/etiquettes/balise/formulaire_etiquettes.php (original)
+++ plugins/test/etiquettes/balise/formulaire_etiquettes.php Thu Apr 9 17:26:02 2009
@@ -85,7 +85,6 @@$id_objet = intval($id_objet);
$type_objet = strtolower($type_objet);
- $type_objet = preg_replace(‹ ,^spip_|s$, ›, ‹ ›, $type_objet);
$cle_objet = id_table_objet($type_objet);// il faut vérifier s’il existe bien cet objet
@@ -121,7 +120,7 @@// on ne peut pas continuer si le type choisi n’est pas relié à des mots-clés
// autrement dit, s’il n’y a pas de table mots_machin
- if($type_objet and !in_array(« mots_$type_objet », $tables_jointures[‹ spip_mots ›]))
- if($type_objet and !in_array(‹ mots_ ›.preg_replace(‹ /^spip_/i ›, ‹ ›, table_objet_sql($type_objet)), $tables_jointures[‹ spip_mots ›]))
return erreur_squelette(
_T(‹ etiquettes:zbug_pas_de_table_mots ›,
array (Modified: plugins/test/etiquettes/formulaires/etiquettes.php
— plugins/test/etiquettes/formulaires/etiquettes.php (original)
+++ plugins/test/etiquettes/formulaires/etiquettes.php Thu Apr 9 17:26:02 2009
@@ -47,7 +47,7 @@$reponse = sql_select(
‹ mots.titre ›,
- array(‹ mots › => ‹ spip_mots ›, ‹ liaison › => ‹ spip_mots_ ›.$type_objet),
- array(‹ mots › => ‹ spip_mots ›, ‹ liaison › => ‹ spip_mots_ ›.preg_replace(‹ /^spip_/i ›, ‹ ›, table_objet_sql($type_objet))),
array(
array(‹ = ›, ‹ mots.type ›, sql_quote($groupe)),
array(‹ = ›, ‹ liaison. ›.$cle_objet, $id_objet),
@@ -104,7 +104,14 @@
$etiquettes = trim(_request($name));
// On utilise la tag-machine avec les millions de paramètres
include_spip(‹ inc/tag-machine ›);
- ajouter_liste_mots($etiquettes,$id_objet,$groupe,$type_objet,$cle_objet,$remplacer);
- ajouter_liste_mots(
- $etiquettes,
- $id_objet,
- $groupe,
- preg_replace(‹ /^spip_/i ›, ‹ ›, table_objet_sql($type_objet)),
- $cle_objet,
- $remplacer
- );
// Si on a modifié, on renvoie la liste telle quelle, ça évite une requête pour rien
if ($remplacer)
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit