[SPIP Zone] RC 2.1 et tables SQL persos

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

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.

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 !