R&D

Bonjour,
J'essaie d'étendre la recherche de Spip aux champs de mes tables externes.
J'ai trouvé ceci (http://www.mail-archive.com/spip-zone@rezo.net/msg12262.html):
<?php
$GLOBALS['spip_pipeline']['rechercher_liste_des_champs'] .="|mes_champs";

function mes_champs($tables)
{

$tables['spip_guidegolf']['ID_golf']=1;
$tables['spip_guidegolf']['Ligue']=1;
$tables['spip_guidegolf']['Nom']=1;
$tables['spip_guidegolf']['CPostal']=1;
$tables['spip_guidegolf']['Ville']=1;
$tables['spip_guidegolf']['Chaine']=1;
$tables['spip_guidegolf']['Archi']=1;

$tables['spip_stage']['ID_golf']=1;
$tables['spip_stage']['nom']=1;

return $tables;
}
?>

que j'ai placé" dans un fichier mes_options.php dans ecrire.
Mais ça ne fonctionne pas.
Est-ce le bon endroit? quelque chose d'autre qui cloche?
Sous Spip 2.1.

Merci
ADB

Je poursuis.
Je lis ceci, de Mathieu Marcillaud:
quote
Vous avez un champ "ville" dans la table SQL "spip_articles" que vous souhaitez prendre en compte ? Il faut ajouter la déclaration du pipeline, puis :

function prefixPlugin_rechercher_liste_des_champs($tables){
$tables['article']['ville'] = 3;
return $tables;
}
unquote

Que veut dire "il faut ajouter la déclaration du pipeline? Où cela? dans quel fichier? comment?

D'une manière générale, dans ces tutos, il est rarement expliqué à quel endroit placer un fichier (notamment les plugin.xml)

Merci
ADB

Message du 26/05/10 18:24
De : "Arnaud DUPIN DE BEYSSAT"
A : "spip [spip]"
Copie à :
Objet : [Spip] R&D

Bonjour,
J'essaie d'étendre la recherche de Spip aux champs de mes tables externes.
J'ai trouvé ceci (http://www.mail-archive.com/spip-zone@rezo.net/msg12262.html):
<?php
$GLOBALS['spip_pipeline']['rechercher_liste_des_champs'] .="|mes_champs";

function mes_champs($tables)
{

$tables['spip_guidegolf']['ID_golf']=1;
$tables['spip_guidegolf']['Ligue']=1;
$tables['spip_guidegolf']['Nom']=1;
$tables['spip_guidegolf']['CPostal']=1;
$tables['spip_guidegolf']['Ville']=1;
$tables['spip_guidegolf']['Chaine']=1;
$tables['spip_guidegolf']['Archi']=1;

$tables['spip_stage']['ID_golf']=1;
$tables['spip_stage']['nom']=1;

return $tables;
}
?>

que j'ai placé" dans un fichier mes_options.php dans ecrire.
Mais ça ne fonctionne pas.
Est-ce le bon endroit? quelque chose d'autre qui cloche?
Sous Spip 2.1.

Merci
ADB

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Arnaud DUPIN DE BEYSSAT a écrit :

Je poursuis.
Je lis ceci, de Mathieu Marcillaud:
quote
Vous avez un champ "ville" dans la table SQL "spip_articles" que vous souhaitez prendre en compte ? Il faut ajouter la déclaration du pipeline, puis :

function prefixPlugin_rechercher_liste_des_champs($tables){
$tables['article']['ville'] = 3;
return $tables;
}
unquote

Que veut dire "il faut ajouter la déclaration du pipeline? Où cela? dans quel fichier? comment?

D'une manière générale, dans ces tutos, il est rarement expliqué à quel endroit placer un fichier (notamment les plugin.xml)

Merci
ADB

Message du 26/05/10 18:24
De : "Arnaud DUPIN DE BEYSSAT" A : "spip [spip]" Copie à : Objet : [Spip] R&D

Bonjour,
J'essaie d'étendre la recherche de Spip aux champs de mes tables externes.
J'ai trouvé ceci (http://www.mail-archive.com/spip-zone@rezo.net/msg12262.html):
<?php
$GLOBALS['spip_pipeline']['rechercher_liste_des_champs'] .="|mes_champs";

function mes_champs($tables)
{

$tables['spip_guidegolf']['ID_golf']=1;
$tables['spip_guidegolf']['Ligue']=1;
$tables['spip_guidegolf']['Nom']=1;
$tables['spip_guidegolf']['CPostal']=1;
$tables['spip_guidegolf']['Ville']=1;
$tables['spip_guidegolf']['Chaine']=1;
$tables['spip_guidegolf']['Archi']=1;

$tables['spip_stage']['ID_golf']=1;
$tables['spip_stage']['nom']=1;

return $tables;
}
?>

que j'ai placé" dans un fichier mes_options.php dans ecrire.
Mais ça ne fonctionne pas.
Est-ce le bon endroit? quelque chose d'autre qui cloche?
Sous Spip 2.1.

Merci
ADB

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

mes_options se met dans config

Bernard

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com

Merci pour l'info.
Mais même là, ça ne fonctionne pas.
Je m'interroge...
ADB

Le 26/05/2010 18:43, Bernard Blazin a écrit :

Arnaud DUPIN DE BEYSSAT a écrit :

Je poursuis.
Je lis ceci, de Mathieu Marcillaud:
quote
Vous avez un champ "ville" dans la table SQL "spip_articles" que vous souhaitez prendre en compte ? Il faut ajouter la déclaration du pipeline, puis :

function prefixPlugin_rechercher_liste_des_champs($tables){
$tables['article']['ville'] = 3;
return $tables;
}
unquote

Que veut dire "il faut ajouter la déclaration du pipeline? Où cela? dans quel fichier? comment?

D'une manière générale, dans ces tutos, il est rarement expliqué à quel endroit placer un fichier (notamment les plugin.xml)

Merci
ADB

Message du 26/05/10 18:24
De : "Arnaud DUPIN DE BEYSSAT" A : "spip [spip]" Copie à : Objet : [Spip] R&D

Bonjour,
J'essaie d'étendre la recherche de Spip aux champs de mes tables externes.
J'ai trouvé ceci (http://www.mail-archive.com/spip-zone@rezo.net/msg12262.html):
<?php
$GLOBALS['spip_pipeline']['rechercher_liste_des_champs'] .="|mes_champs";

function mes_champs($tables)
{

$tables['spip_guidegolf']['ID_golf']=1;
$tables['spip_guidegolf']['Ligue']=1;
$tables['spip_guidegolf']['Nom']=1;
$tables['spip_guidegolf']['CPostal']=1;
$tables['spip_guidegolf']['Ville']=1;
$tables['spip_guidegolf']['Chaine']=1;
$tables['spip_guidegolf']['Archi']=1;

$tables['spip_stage']['ID_golf']=1;
$tables['spip_stage']['nom']=1;

return $tables;
}
?>

que j'ai placé" dans un fichier mes_options.php dans ecrire.
Mais ça ne fonctionne pas.
Est-ce le bon endroit? quelque chose d'autre qui cloche?
Sous Spip 2.1.

Merci
ADB

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

mes_options se met dans config

Bernard

ADB a écrit :

Merci pour l'info.
Mais même là, ça ne fonctionne pas.
Je m'interroge...
ADB

Le 26/05/2010 18:43, Bernard Blazin a écrit :

Arnaud DUPIN DE BEYSSAT a écrit :

Je poursuis.
Je lis ceci, de Mathieu Marcillaud:
quote
Vous avez un champ "ville" dans la table SQL "spip_articles" que vous souhaitez prendre en compte ? Il faut ajouter la déclaration du pipeline, puis :

function prefixPlugin_rechercher_liste_des_champs($tables){
$tables['article']['ville'] = 3;
return $tables;
}
unquote

Que veut dire "il faut ajouter la déclaration du pipeline? Où cela? dans quel fichier? comment?

D'une manière générale, dans ces tutos, il est rarement expliqué à quel endroit placer un fichier (notamment les plugin.xml)

Merci
ADB

Message du 26/05/10 18:24
De : "Arnaud DUPIN DE BEYSSAT" A : "spip [spip]" Copie à : Objet : [Spip] R&D

Bonjour,
J'essaie d'étendre la recherche de Spip aux champs de mes tables externes.
J'ai trouvé ceci (http://www.mail-archive.com/spip-zone@rezo.net/msg12262.html):
<?php
$GLOBALS['spip_pipeline']['rechercher_liste_des_champs'] .="|mes_champs";

function mes_champs($tables)
{

$tables['spip_guidegolf']['ID_golf']=1;
$tables['spip_guidegolf']['Ligue']=1;
$tables['spip_guidegolf']['Nom']=1;
$tables['spip_guidegolf']['CPostal']=1;
$tables['spip_guidegolf']['Ville']=1;
$tables['spip_guidegolf']['Chaine']=1;
$tables['spip_guidegolf']['Archi']=1;

$tables['spip_stage']['ID_golf']=1;
$tables['spip_stage']['nom']=1;

return $tables;
}
?>

que j'ai placé" dans un fichier mes_options.php dans ecrire.
Mais ça ne fonctionne pas.
Est-ce le bon endroit? quelque chose d'autre qui cloche?
Sous Spip 2.1.

Merci
ADB

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

mes_options se met dans config

Bernard

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

C'est un plugin? car si oui, il faut déclarer le fichier dans le xml

Bernard

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com

Non, ce n'est pas un plugin, a priori.
ADB

Arnaud DUPIN DE BEYSSAT <a.adupinbe@orange.fr> wrote:

Que veut dire "il faut ajouter la déclaration du pipeline? Où cela? dans
quel fichier? comment?

D'une manière générale, dans ces tutos, il est rarement expliqué à quel
endroit placer un fichier (notamment les plugin.xml)

UN article de référence sur doc spip
http://doc.spip.org/@Declarer-et-ajouter-des-tables

ensuite une autre solution regarder comment est fait un plugin qui gère
ce genre de choses. le plugin Vu par exemple

-- http://wojylac.free.fr Un proverbe chinois dit que lorsqu'on a rien à
dire on cite généralement un proverbe chinois.

Bonsoir
Moi je veux bien, mais pourquoi devrais-je écrire un plugin pour mon propre usage? J'aime bien SPIP, et depuis longtemps, mais il doit bien y avoir des solutions plus simples.
Merci
ADB

Le 26/05/2010 22:29, Dominique a écrit :

Arnaud DUPIN DE BEYSSAT<a.adupinbe@orange.fr> wrote:

Que veut dire "il faut ajouter la déclaration du pipeline? Où cela? dans
quel fichier? comment?

D'une manière générale, dans ces tutos, il est rarement expliqué à quel
endroit placer un fichier (notamment les plugin.xml)

UN article de référence sur doc spip
http://doc.spip.org/@Declarer-et-ajouter-des-tables

ensuite une autre solution regarder comment est fait un plugin qui gère
ce genre de choses. le plugin Vu par exemple

Plugin Vu ! : présentation - SPIP-Contrib

-- http://wojylac.free.fr Un proverbe chinois dit que lorsqu'on a rien à
dire on cite généralement un proverbe chinois.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

ADB <a.adupinbe@orange.fr> wrote:

Bonsoir
Moi je veux bien, mais pourquoi devrais-je écrire un plugin pour mon
propre usage? J'aime bien SPIP, et depuis longtemps, mais il doit bien y
avoir des solutions plus simples.
Merci
ADB

Ecrire un plugin n'est pas très compliqué. on peut bien sûr utiliser les
pipelines à partir de mes_options.php mais écrire un plugin a plusieurs
avantages, et notamment de séparer le code spécifique du reste des
éléments, donc en cas de mise à jour on sait où les choses se trouvent.

Un plugin n'a pas forcément (encore que...) vocation à seulement être
largement diffusé, c'est surtout aussi un moyen d'étendre spip (même
pour un usage perso).
dans le cas présent il te permettra d'écrire des boucles avec un "look"
spip et tout ce que cela apporte, de faire des jointures simplement
(c'est spip qui s'en charge), de sauvegarder tes tables supplémentaires
en même temps que les tables spip, etc...

Dans le cas présent si je comprends bien, ton plugin se contentera de
déclarer des tables externes. En s'inspirant de
http://doc.spip.org/@Declarer-et-ajouter-des-tables cela ne nécessite
que d'écrire 2 fichiers, un fichier plugin.xml et un fichier qui déclare
les tables.
La partie de déclaration des champs peut être obtenue à partir de
phpmyadmin en exportant la structure des tables en question et en
modifiant le code obtenu pour passer à une déclaration en tableau.

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Merci de ton aide.
Oui, je vois bien tout cela. Toutefois, n'étant plus tout jeune ni programmeur, il me manque quelques éléments dans les explications de la page que tu me donnes à consulter.
Par exemple, le plugin.xml, je comprends que c'est un fichier qu'il faut que je crée dans un sousè-rep (disons golf) de plugin.
Mais qu'est-ce que je fais du fichier suivant, qui décrit les tables? Est-ce un fichier php à part? Où le placer, etc.

Et je redis que, d'une manière générale, les auteur de ces articles passionnants oublient que des rookies comme moi ont besoin qu'on leur dise tout.
Et, pour jouer au vieux con, je trouve qu'il était plus simple d'ajouter quelque chose dans le "vieux" Spip (<1.8), ce que j'avais pu faire à l'époque (ADB - SPIP-Contrib)

ADB.

Le 26/05/2010 23:05, Dominique a écrit :

ADB<a.adupinbe@orange.fr> wrote:

Bonsoir
Moi je veux bien, mais pourquoi devrais-je écrire un plugin pour mon
propre usage? J'aime bien SPIP, et depuis longtemps, mais il doit bien y
avoir des solutions plus simples.
Merci
ADB
     

Ecrire un plugin n'est pas très compliqué. on peut bien sûr utiliser les
pipelines à partir de mes_options.php mais écrire un plugin a plusieurs
avantages, et notamment de séparer le code spécifique du reste des
éléments, donc en cas de mise à jour on sait où les choses se trouvent.

Un plugin n'a pas forcément (encore que...) vocation à seulement être
largement diffusé, c'est surtout aussi un moyen d'étendre spip (même
pour un usage perso).
dans le cas présent il te permettra d'écrire des boucles avec un "look"
spip et tout ce que cela apporte, de faire des jointures simplement
(c'est spip qui s'en charge), de sauvegarder tes tables supplémentaires
en même temps que les tables spip, etc...

Dans le cas présent si je comprends bien, ton plugin se contentera de
déclarer des tables externes. En s'inspirant de
http://doc.spip.org/@Declarer-et-ajouter-des-tables cela ne nécessite
que d'écrire 2 fichiers, un fichier plugin.xml et un fichier qui déclare
les tables.
La partie de déclaration des champs peut être obtenue à partir de
phpmyadmin en exportant la structure des tables en question et en
modifiant le code obtenu pour passer à une déclaration en tableau.

ADB <a.adupinbe@orange.fr> wrote:

Merci de ton aide.
Oui, je vois bien tout cela. Toutefois, n'étant plus tout jeune ni
programmeur, il me manque quelques éléments dans les explications de la
page que tu me donnes à consulter.
Par exemple, le plugin.xml, je comprends que c'est un fichier qu'il faut
que je crée dans un sousè-rep (disons golf) de plugin.
Mais qu'est-ce que je fais du fichier suivant, qui décrit les tables?
Est-ce un fichier php à part? Où le placer, etc.

dans un dossier "mon_plugin" à placer dansle dossier plugin
1. un fichier plugin.xml

<plugin>
    <nom>Mon plugin</nom>
    <auteur>ADB</auteur>
    <version>0.1</version>
    <etat>test</etat>
    <description>ce que fait le plugin</description>
    <prefix>golf</prefix>
    <!-- Definitions des fonctions qui s'inserent dans les pipelines -->
    <pipeline>
        <nom>declarer_tables_principales</nom>
        <inclure>golf_tables.php</inclure>
    </pipeline>
    <pipeline>
        <nom>declarer_tables_interfaces</nom>
        <inclure>golf_tables.php</inclure>
    </pipeline>
    <categorie>plugin pour le site golf</categorie>
    <necessite id="SPIP" version="[2.1.0;)" />
</plugin>

Un fichier golf_tables.php dan sle dossier à côté de plugin.xml

dans lequel tu auras une fonction

function golf_declarer_tables_principales($tables_principales){
    tes déclarations de table suivant la page donnée en réf
}
et
function golf_declarer_tables_interfaces($interface){
    // les noms des tables dans les boucles
}

les fonctions sont préfixées par golf_ parce que c'est le préfixe
déclarer dans ton plugin.xml

mais le fichier lui ne s'appelle pas forcément golf mais c'est ici une
commodité.

Tu porras aussi rajouter un fichier golf_fonctions.php contenant
l'équivalent de ce que tu mettrais dans mes_fonctions de squelettes,
etc...

Après rien ne vaut le décorticage d'un plugin (bien écris)

Et je redis que, d'une manière générale, les auteur de ces articles
passionnants oublient que des rookies comme moi ont besoin qu'on leur
dise tout.

Il y a un bon bouquin aussi complet que possible qui vient de sortir
http://programmer.spip.org/Le-livre
Version papier ou éléctronique

Et, pour jouer au vieux con, je trouve qu'il était plus simple d'ajouter
quelque chose dans le "vieux" Spip (<1.8), ce que j'avais pu faire à
l'époque (ADB - SPIP-Contrib)

Grâce à Spip, on apprend tous les jours... :))
et on a peut-être le même âge !!

--
Dominique
http://wojylac.free.fr

Le 26/05/2010 22:46, ADB a écrit :

Bonsoir
Moi je veux bien, mais pourquoi devrais-je écrire un plugin pour mon
propre usage? J'aime bien SPIP, et depuis longtemps, mais il doit bien y
avoir des solutions plus simples.

ça m'arrive aussi régulièrement de regretter quand il manque l'information
dans les tutos de "où coller le code"...

La réponse est en fait dans l'expérience acquise lors des étapes précédentes...
du moins quand on commence par le début.

Généralement, pas mal de choses vont bien dans /config/mes_options.php
et je serais étonné qu'il soit obligé de créer un plugin.

JLuc

Merci
ADB

Le 26/05/2010 22:29, Dominique a écrit :

Arnaud DUPIN DE BEYSSAT<a.adupinbe@orange.fr> wrote:

Que veut dire "il faut ajouter la déclaration du pipeline? Où cela? dans
quel fichier? comment?

D'une manière générale, dans ces tutos, il est rarement expliqué à quel
endroit placer un fichier (notamment les plugin.xml)

UN article de référence sur doc spip
http://doc.spip.org/@Declarer-et-ajouter-des-tables

ensuite une autre solution regarder comment est fait un plugin qui gère
ce genre de choses. le plugin Vu par exemple

Plugin Vu ! : présentation - SPIP-Contrib

Bonjour
Désolé de revenir à la charge, mais ce module de recherche devient crucial.
J'ai fait tout ce qui est indiqué dans ce message. Mais rien ne se passe: càd que la recherche Spip ne trouve toujours pas des éléments dans mes tables nouvellement déclarées.
Faut-il faire encore autre chose ou me suis-je trompé quelque part?
Merci
ADB

Le 27/05/2010 10:38, Dominique a écrit :

ADB<a.adupinbe@orange.fr> wrote:

Merci de ton aide.
Oui, je vois bien tout cela. Toutefois, n'étant plus tout jeune ni
programmeur, il me manque quelques éléments dans les explications de la
page que tu me donnes à consulter.
Par exemple, le plugin.xml, je comprends que c'est un fichier qu'il faut
que je crée dans un sousè-rep (disons golf) de plugin.
Mais qu'est-ce que je fais du fichier suivant, qui décrit les tables?
Est-ce un fichier php à part? Où le placer, etc.
     

dans un dossier "mon_plugin" à placer dansle dossier plugin
1. un fichier plugin.xml

<plugin>
     <nom>Mon plugin</nom>
     <auteur>ADB</auteur>
     <version>0.1</version>
     <etat>test</etat>
     <description>ce que fait le plugin</description>
     <prefix>golf</prefix>
     <!-- Definitions des fonctions qui s'inserent dans les pipelines -->
     <pipeline>
         <nom>declarer_tables_principales</nom>
         <inclure>golf_tables.php</inclure>
     </pipeline>
     <pipeline>
         <nom>declarer_tables_interfaces</nom>
         <inclure>golf_tables.php</inclure>
     </pipeline>
     <categorie>plugin pour le site golf</categorie>
     <necessite id="SPIP" version="[2.1.0;)" />
</plugin>

Un fichier golf_tables.php dan sle dossier à côté de plugin.xml

dans lequel tu auras une fonction

function golf_declarer_tables_principales($tables_principales){
     tes déclarations de table suivant la page donnée en réf
}
et
function golf_declarer_tables_interfaces($interface){
     // les noms des tables dans les boucles
}

les fonctions sont préfixées par golf_ parce que c'est le préfixe
déclarer dans ton plugin.xml

mais le fichier lui ne s'appelle pas forcément golf mais c'est ici une
commodité.

Tu porras aussi rajouter un fichier golf_fonctions.php contenant
l'équivalent de ce que tu mettrais dans mes_fonctions de squelettes,
etc...

Après rien ne vaut le décorticage d'un plugin (bien écris)
   

Et je redis que, d'une manière générale, les auteur de ces articles
passionnants oublient que des rookies comme moi ont besoin qu'on leur
dise tout.
     

Il y a un bon bouquin aussi complet que possible qui vient de sortir
http://programmer.spip.org/Le-livre
Version papier ou éléctronique

Et, pour jouer au vieux con, je trouve qu'il était plus simple d'ajouter
quelque chose dans le "vieux" Spip (<1.8), ce que j'avais pu faire à
l'époque (ADB - SPIP-Contrib)
     

Grâce à Spip, on apprend tous les jours... :))
et on a peut-être le même âge !!

ADB <a.adupinbe@orange.fr> wrote:

Bonjour
Désolé de revenir à la charge, mais ce module de recherche devient crucial.
J'ai fait tout ce qui est indiqué dans ce message. Mais rien ne se
passe: càd que la recherche Spip ne trouve toujours pas des éléments
dans mes tables nouvellement déclarées.
Faut-il faire encore autre chose ou me suis-je trompé quelque part?

Oui

http://programmer.spip.org/rechercher_liste_des_champs

c'est à dire que dans ton fichier plugin tu déclare l'utilisation du
pipeline

<pipeline>
        <nom>rechercher_liste_des_champs</nom>
        <inclure>golf_tables.php</inclure>
</pipeline>

et dns ton fichier golf.php

function prefixPlugin_rechercher_liste_des_champs($tables){
        // ajouter un champ toto sur la table truc
        $tables['truc']['tot'] = 3;
        // autres champs même principe
        
        // retourner le tableau
        return $tables;
}

Merci
ADB

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Bonjour
Il me semble bien que c'est ce que j'ai fait:
Le xml comporte:
<plugin>
<nom>Plugin Golf</nom>
<auteur>ADB</auteur>
<version>0.1</version>
<etat>test</etat>
<description>~Ce plugin va me permettre de rechercher dans les tables externes</description>
<prefix>golf</prefix>
<!-- Definitions des fonctions qui s'inserent dans les pipelines -->
<pipeline>
<nom>declarer_tables_principales</nom>
<inclure>golf_tables.php</inclure>
</pipeline>
<pipeline>
<nom>declarer_tables_interfaces</nom>
<inclure>golf_tables.php</inclure>
</pipeline>
<categorie>plugin pour le site golf</categorie>
<necessite id="SPIP" version="[2.1.0;)" />
</plugin>

(La table s'appelle spip_guidegolfs.)
Le fichir golf_tables.php contient:
function golf_declarer_tables_principales($tables_principales){
     $nouvelletable = array(
   "uid" => "int(11) not null auto_increment",
   "id_golf" => "varchar(5) not null",
   "ligue" => "varchar(50) default null",
   "num_carte" => "varchar(3) not null",
   "module" => "varchar(2) not null",
...
}
);
$cles_nouvelletable = array(
         "PRIMARY KEY" => "id_golf"
);
$tables_principales['spip_guidegolfs'] = array(
         'field'=> "&$nouvelletable",
         'key' => " &$cles_nouvelletable"
);
         return $tables_principales;
}
function golf_declarer_tables_interfaces($interface){
     $interface['table_des_tables']['spip_guidegolfs'] = 'guidegolfs';
     $interface['table_des_tables']['spip_stages'] = 'stages';
     return $interface;
}
function golf_rechercher_liste_des_champs($tables){
         $tables['spip_guidegolfs']['id_golf']=3;
         $tables['spip_guidegolfs']['ligue']=3;
         $tables['spip_guidegolfs']['nom']=3;
         $tables['spip_guidegolfs']['cpostal']=3;
         $tables['spip_guidegolfs']['ville']=3;
         $tables['spip_guidegolfs']['chaine']=3;
         $tables['spip_guidegolfs']['archi']=3;
           return $tables;
       }

Et ça ne fonctionne pas.
J'ai modifié les noms de table, avec ou sans s, mis les noms de champs en minuscules, etc.
Rien n'y fait.
La fontion recherche du plugin escal y serait-elle pour quelque chose aussi?
Je nage
Merci
ADB

Le 06/06/2010 12:09, Dominique a écrit :

ADB<a.adupinbe@orange.fr> wrote:

Bonjour
Désolé de revenir à la charge, mais ce module de recherche devient crucial.
J'ai fait tout ce qui est indiqué dans ce message. Mais rien ne se
passe: càd que la recherche Spip ne trouve toujours pas des éléments
dans mes tables nouvellement déclarées.
Faut-il faire encore autre chose ou me suis-je trompé quelque part?
     

Oui

http://programmer.spip.org/rechercher_liste_des_champs

c'est à dire que dans ton fichier plugin tu déclare l'utilisation du
pipeline

<pipeline>
         <nom>rechercher_liste_des_champs</nom>
         <inclure>golf_tables.php</inclure>
</pipeline>

et dns ton fichier golf.php

function prefixPlugin_rechercher_liste_des_champs($tables){
         // ajouter un champ toto sur la table truc
         $tables['truc']['tot'] = 3;
         // autres champs même principe

         // retourner le tableau
         return $tables;
}

Merci
ADB
     

ADB <a.adupinbe@orange.fr> wrote:

function golf_rechercher_liste_des_champs($tables){
         $tables['spip_guidegolfs']['id_golf']=3;
         $tables['spip_guidegolfs']['ligue']=3;
         $tables['spip_guidegolfs']['nom']=3;
         $tables['spip_guidegolfs']['cpostal']=3;
         $tables['spip_guidegolfs']['ville']=3;
         $tables['spip_guidegolfs']['chaine']=3;
         $tables['spip_guidegolfs']['archi']=3;
           return $tables;
       }

sans le prefixe spip_ d'après la doc

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Dominique <dwojylac@free.fr> wrote:

ADB <a.adupinbe@orange.fr> wrote:

> function golf_rechercher_liste_des_champs($tables){
> $tables['spip_guidegolfs']['id_golf']=3;
> $tables['spip_guidegolfs']['ligue']=3;
> $tables['spip_guidegolfs']['nom']=3;
> $tables['spip_guidegolfs']['cpostal']=3;
> $tables['spip_guidegolfs']['ville']=3;
> $tables['spip_guidegolfs']['chaine']=3;
> $tables['spip_guidegolfs']['archi']=3;
> return $tables;
> }

sans le prefixe spip_ d'après la doc

et je me reponds à moi-même il manque aussi un appel au pipeline dans
ton fichier plugin.xml

<pipeline>
        <nom>rechercher_liste_des_champs</nom>
        <inclure>golf_tables.php</inclure>
</pipeline>
--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Dominique <dwojylac@free.fr> wrote:

Dominique <dwojylac@free.fr> wrote:

> ADB <a.adupinbe@orange.fr> wrote:
>
> > function golf_rechercher_liste_des_champs($tables){
> > $tables['spip_guidegolfs']['id_golf']=3;
> > $tables['spip_guidegolfs']['ligue']=3;
> > $tables['spip_guidegolfs']['nom']=3;
> > $tables['spip_guidegolfs']['cpostal']=3;
> > $tables['spip_guidegolfs']['ville']=3;
> > $tables['spip_guidegolfs']['chaine']=3;
> > $tables['spip_guidegolfs']['archi']=3; return $tables; }
>
> sans le prefixe spip_ d'après la doc

et je me reponds à moi-même il manque aussi un appel au pipeline dans ton
fichier plugin.xml

<pipeline> <nom>rechercher_liste_des_champs</nom>
<inclure>golf_tables.php</inclure> </pipeline>

Bonjour Non, non, ça ne manque pas, j'ai juste oublié de le recopier. Y
a-t-il un moyen de vérifier que le plugin fonctionne et reconnaît bien
cette table?

Est-ce qu'une boucle sur tes tables donne qq chose, un truc du genre
<BOUCLE_golf(GUIDEGOLFS){0,10}> <p>#ID_GOLF : #LIGUE : et autres
balises</p> </BOUCLE_golf>

et si au debut d'un fichier spip tu mets
<?php print_r($_GLOBALS['table_des_tables']); ?>

ça donne quoi ? Tu dois y retrouver tes déclarations.

C'est quoi exactement ton projet. Tu veux une recherche libre comme pour
la recherche de spip dans les articles où afficher d'après des critères
certains golf ?

autre piste sur spip contrib on peut lire

Un pipeline sert à spécifier quels champs sont intégrés dans une
recherche. http://programmer.spip.org/recherch

Ce pipeline peut aussi être utilisé pour les tables externes mais
attention : si la table s'appelle "clients_actions" (avec un "s" donc, à
la fin) il faut dans le pipeline rechercher_liste_des_champs déclarer les
champs SANS LE S !! :

donc pour toi $tables['guidegolf']['chaine']=3; par exemple

dans ta fonction golf_rechercher_liste_des_champs

voir :: Accés SPIP aux tables non-SPIP et jointures - SPIP-Contrib

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à
dire on cite généralement un proverbe chinois.

Bonjour
EEh bien, non! Ca n donne rien. Ni la Boucle (avec talbe GUIDEGOLFS inconnue au bataillon) et pas d'affichage du print_r
Donc rien n'est pris en compte.
Pourquoi?
ADB

Est-ce qu'une boucle sur tes tables donne qq chose, un truc du genre

#ID_GOLF : #LIGUE : et autres

balises

et si au debut d'un fichier spip tu mets
<?php print_r($_GLOBALS['table_des_tables']); ?>

ça donne quoi ? Tu dois y retrouver tes déclarations.

C'est quoi exactement ton projet. Tu veux une recherche libre comme pour
la recherche de spip dans les articles où afficher d'après des critères
certains golf ?

autre piste sur spip contrib on peut lire

> Un pipeline sert à spécifier quels champs sont intégrés dans une
> recherche. http://programmer.spip.org/recherch
>
> Ce pipeline peut aussi être utilisé pour les tables externes mais
> attention : si la table s'appelle "clients_actions" (avec un "s" donc, à
> la fin) il faut dans le pipeline rechercher_liste_des_champs déclarer les
> champs SANS LE S !! :

donc pour toi $tables['guidegolf']['chaine']=3; par exemple

dans ta fonction golf_rechercher_liste_des_champs

voir :: Accés SPIP aux tables non-SPIP et jointures - SPIP-Contrib

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à
dire on cite généralement un proverbe chinois.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Arnaud DUPIN DE BEYSSAT <a.adupinbe@orange.fr> wrote:

Bonjour EEh bien, non! Ca n donne rien. Ni la Boucle (avec talbe
GUIDEGOLFS inconnue au bataillon) et pas d'affichage du print_r Donc rien
n'est pris en compte. Pourquoi? ADB

Question idiote peut-être mais ton plugin est bien activé ??

--
Dominique http://wojylac.free.fr