Bonjour,
J’ai toujours eu des tables supplémentaires aux tables SPIP et jusqu’ici je n’avais rien à faire pour pouvoir les utiliser dans des boucles.
Depuis l’update à SPIP RC 2.1, ces tables ne sont plus reconnues et j’ai des erreurs SPIP un peu partout dans mes squelettes comme ceci:
Unknown SQL table "manufacturers"
J’ai trouvé une page qui explique comment déclarer les tables supplémentaires à l’aide de pipelines, et j’ai testé ce code sans résultat:
plugins.xml:
declarer_tables_principales
base/myperfs_tables.php
init_tables_principales
declarer_tables_interfaces
base/myperfs_tables.php
init_tables_interfaces
base/myperfs_tables.php:
function myperfs_init_tables_principales($tables_principales){
//MANUFACTURERS
$manufacturers = array(
« man_id » => « INT(11) NOT NULL »,
« name » => « VARCHAR(100) NOT NULL »,
« id_mot » => « INT(11) NOT NULL »
);
$manufacturers_cles = array(
« PRIMARY KEY » => « man_id »,
);
$manufacturers_join = array(
« man_id » => « man_id »,
« id_mot » => « id_mot »
);
$tables_principales[‹ manufacturers ›] = array(
‹ field › => &$manufacturers,
‹ key › => &$manufacturers_cles,
‹ join › => &$manufacturers_join
);
return $tables_principales;
}
function myperfs_init_tables_interfaces($tables_interfaces){
$tables_interfaces[‹ table_des_tables ›][‹ manufacturers ›] = ‹ manufacturers ›;
return $tables_interfaces;
}
Si quelqu’un qui a l’habitude de ce genre de manipulation pouvait m’indiquer ce qui m’échappe?
Merci
Benoit
Télécharger en toute sécurité sur Internet ? La solution avec Internet Explorer 8
marcimat
(Matthieu Marcillaud)
Avril 6, 2010, 6:19
2
On 06/04/2010 19:42, Benoit Aubert wrote:
Bonjour,
J'ai toujours eu des tables supplémentaires aux tables SPIP et jusqu'ici
je n'avais rien à faire pour pouvoir les utiliser dans des boucles.
Depuis l'update à SPIP RC 2.1, ces tables ne sont plus reconnues et j'ai
des erreurs SPIP un peu partout dans mes squelettes comme ceci:
*Unknown SQL table "manufacturers"*
**
Oui, depuis 2.1 récente, y a des choses qui ont changé.
Sans déclaration
----------------
Il faut le nom exact de la table, casse comprise, c'est à dire ici, peut-être «ManuFacturers» ou «spip_manufactureurs»
Avec déclaration
----------------
(tables_principales + tables_interfaces 'table_des_tables'),
il faut le nom de l'alias donné dans table_des_tables (l'écriture sans déclaration marche bien sûr également)
En attendant une doc moins dispersée sur Programmer.spip, tu peux regarder http://marcimat.magraine.net/Creer-un-nouvel-objet-editorial
Il y a aussi donc :
http://programmer.spip.org/declarer_tables_principales
http://programmer.spip.org/declarer_tables_interfaces,379
http://doc.spip.org/@Declarer-et-ajouter-des-tables
--
MM.
Paolo
(Paolo)
Avril 6, 2010, 8:21
3
On 06/04/10 19:42, Benoit Aubert wrote:
J'ai toujours eu des tables supplémentaires aux tables SPIP et jusqu'ici
je n'avais rien à faire pour pouvoir les utiliser dans des boucles.
Pour moi cela a suffit de mettre les noms des tables en minuscules en ecrivant les boucles.
Par ex. non plus :
<BOUCLE_territname(APT_TERRIT){id_territ=#ENV{territ}}>
mais :
<BOUCLE_territname(apt_territ){id_territ=#ENV{territ}}>
et tout remarchait.
Paolo
Oui ca fonctionne en effet comme cela. Merci a toi et Mathieu pour vos réponses.
Benoit
To: spip-zone@rezo.net
From: paolo2@taize.fr
Date: Tue, 6 Apr 2010 22:21:57 +0200
Subject: Re: [SPIP Zone] RC 2.1 et tables SQL persos
On 06/04/10 19:42, Benoit Aubert wrote:
J’ai toujours eu des tables supplémentaires aux tables SPIP et jusqu’ici
je n’avais rien à faire pour pouvoir les utiliser dans des boucles.
Pour moi cela a suffit de mettre les noms des tables en minuscules en ecrivant
les boucles.
Par ex. non plus :
<BOUCLE_territname(APT_TERRIT){id_territ=#ENV{territ}}>
mais :
<BOUCLE_territname(apt_territ){id_territ=#ENV{territ}}>
et tout remarchait.
Paolo
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone
Acheter en ligne en toute sécurité ? Internet Explorer 8 vous protège gratuitement !