Tout semble bien construit aussi chez moi..et pourtant ça ne fonctionne toujours pas.
Je vais activer vu! pour voir si les recherches se font bien de mon côté des fois que cela ne relève pas de SPIP.
Bonjour,
Pour essayer de faire avancer un peu, voici mon code:
plugin.xml, je viens de rajouter ça (merci Jonathan):
<pipeline>
<nom>rechercher_liste_des_champs</nom>
<inclure>echanges_pipelines.php</inclure>
</pipeline>
Dans echanges_pipeline.php:
function echanges_rechercher_liste_des_champs($tables){
$tables['lien']['id'] = 3;
$tables['lien']['name'] = 3;
unset($tables['rubrique']['titre']);
return $tables;
}
Dans echanges.php (les tables sont bien crées et on peut boucler dessus):
<?php
function echanges_declarer_tables_interfaces($interface)
{
$interface['table_des_tables']['categories']='categories';
$interface['table_des_tables']['liens']='liens';
$interface['table_des_tables']['validation']='validation';
return $interface;
}
function echanges_declarer_tables_principales($tables_principales)
{
//Table des categories
$spip_categories_field=array(
"id"=>"int(50)",
"name"=>"varchar(50)",
"description_categorie"=>"text",
"root"=>"int(50)",
"usable"=>"tinyint(1)");
$spip_categories_key=array(
"PRIMARY KEY" => "id");
$tables_principales['spip_categories']=array(
'field' => &$spip_categories_field,
'key' => &$spip_categories_key);
//Table des liens
$spip_liens_field=array(
"id"=>"int(50)",
"date"=>"date",
"name"=>"varchar(50)",
"url"=>"varchar(255)",
"state"=>"tinyint(1)",
"description"=>"varchar(100)",
"adresse_banniere"=>"varchar(255)",
"categories"=>"int(4)",
"mail_site"=>"varchar(255)",
"adresse_retour"=>"varchar(255)",
"valoriser"=>"varchar(3) DEFAULT 'non' NOT NULL");
$spip_liens_key=array(
"PRIMARY KEY" => "id");
$tables_principales['spip_liens']=array(
'field' => &$spip_liens_field,
'key' => &$spip_liens_key);
//Table des validations
$spip_validation_field=array(
"id_site"=>"int(50)",
"secret"=>"varchar(32)",
"url"=>"varchar(255)",
"mail_site"=>"varchar(70)");
$spip_validation_key=array(
"PRIMARY KEY" => "id_site");
$tables_principales['spip_validation']=array(
'field' => &$spip_validation_field,
'key' => &$spip_validation_key);
return $tables_principales;
}
?>
Sinon moi je souhaite utiliser le champs recherche de l'interface privée, donc j'ai pas essayé le critère {recherche} et le formulaire public, peut-être que ça utilise tout le même code de toutes façon.
Le recherche sur le titre des rubriques est bien désactivés elle (grâce à unset dans echanges_pipelines.php)
Et j'ai bien ça :
// Pipeline rechercher_liste_des_champs
function execute_pipeline_rechercher_liste_des_champs(&$val){
error_reporting(SPIP_ERREUR_REPORT_INCLUDE_PLUGINS);
include_once(_DIR_PLUGINS.'echanges/echanges_pipelines.php');
error_reporting(SPIP_ERREUR_REPORT);
$val = minipipe('echanges_rechercher_liste_des_champs', $val);
return $val;
}
Dans tmp/charger_pipelines.php
J'étais directement aller faire un tour dans ecrire/inc/rechercher.php pour ajouter ma table mais ça n'avait rien donné...
Donc après tous ça, j'avais fait simplement un input text qui faisait un select sur ma table spip_liens en cas de recherche:
if (isset($_POST["recherche"])) {
$resRecherche=sql_select("*", "spip_liens","name = '".$_POST["recherche"]."'");
$lien=sql_fetch($resRecherche);
Se servir du tableau pour le resultat.}
else
{
$out.='<div id="recherche">
<form action="?exec=gestion_liens" method="post">
Rechercher un lien: <br />
<input type="text" name="recherche" size="25" maxlength="100" value="" />
<input type="submit" value="Rechercher" />
</form></div> }
Sinon je mettrai ce plugin en ligne bientôt (après nettoyage), il permet de gérer un annuaire de site (echanges de liens) avec administration et formulaire d'inscription.
Bonne journée.
Jonathan a écrit :
Bernard Blazin a écrit :
Oui c'est tout à fait ça .Mon objet TOTO ne prend pas le critère de boucle {recherche}
Ça n'affiche rien..
Tu voudrais pas poster ici ton code ? Tes déclarations de base, tes pipelines...etc Peut-être cela nous aidera à t'aider de façon plus efficace... ou sinon envoie moi ton plugin, que je le teste ici...
_______________________________________________
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