[SPIP Zone] Recherche dans forms & tables

Hi

Je me demande comment marche la recherche dans forms & tables. J'ai place un #FORMULAIRE_FORMS_RECHERCHE dans une page avec une boucle principale FORMS et id_form=6 mais le formulaire n'apparait pas

SPIP 1.9.2g
forms_et_tables_1_9_1 0.304

Merci

George

george@diwanalarab.com a écrit :

Hi

Je me demande comment marche la recherche dans forms & tables. J'ai place un #FORMULAIRE_FORMS_RECHERCHE dans une page avec une boucle principale FORMS et id_form=6 mais le formulaire n'apparait pas

il n'y a pas de balise FORMULAIRE_FORMS_RECHERCHE
par contre, il y a un modele table_recherche qui semble faire appel au formulaire (squelette) en question.
donc à utiliser sans doute comme ca :
[(#MODELE{table_recherche}{id_table=12})]
ou <table_recherche12> dans le texte d'un article ?

jamais testé..
@++

Merci

Mais la j'ai une erreur dans une boucle de table_recherche avec le critere {collecte #GET{collation}}.

<BOUCLE_donnees>(forms_donnees)
Erreur MySQL
forms_donnees.id_form, forms_donnees.id_donnee, COUNT(forms_donnees.id_donnee) AS res FROM spip_forms_donnees_champs AS `L2`, spip_forms_donnees AS `forms_donnees` WHERE (forms_donnees.id_form = '6') AND collecte() AND (L2.valeur LIKE '%responsable%') AND (forms_donnees.confirmation = "valide") AND (forms_donnees.statut = "publie") AND forms_donnees.id_donnee=L2.id_donnee GROUP BY forms_donnees.id_donnee ORDER BY forms_donnees.rang
FUNCTION spip_sdis.collecte does not exist
</BOUCLE_donnees>

George

Quoting Stephane <stephane@rezo.net>:

george@diwanalarab.com a écrit :

Hi

Je me demande comment marche la recherche dans forms & tables. J'ai place un #FORMULAIRE_FORMS_RECHERCHE dans une page avec une boucle principale FORMS et id_form=6 mais le formulaire n'apparait pas

il n'y a pas de balise FORMULAIRE_FORMS_RECHERCHE
par contre, il y a un modele table_recherche qui semble faire appel au
formulaire (squelette) en question.
donc à utiliser sans doute comme ca :
[(#MODELE{table_recherche}{id_table=12})]
ou <table_recherche12> dans le texte d'un article ?

jamais testé..
@++

george@diwanalarab.com a écrit :

Merci

Mais la j'ai une erreur dans une boucle de table_recherche avec le critere {collecte #GET{collation}}.

<BOUCLE_donnees>(forms_donnees)
Erreur MySQL
forms_donnees.id_form, forms_donnees.id_donnee, COUNT(forms_donnees.id_donnee) AS res FROM spip_forms_donnees_champs AS `L2`, spip_forms_donnees AS `forms_donnees` WHERE (forms_donnees.id_form = '6') AND collecte() AND (L2.valeur LIKE '%responsable%') AND (forms_donnees.confirmation = "valide") AND (forms_donnees.statut = "publie") AND forms_donnees.id_donnee=L2.id_donnee GROUP BY forms_donnees.id_donnee ORDER BY forms_donnees.rang
FUNCTION spip_sdis.collecte does not exist
</BOUCLE_donnees>

ah ben oui, c'est un critère de spip 2
tu dois pouvoir ajouter dans mes_fonctions :
function critere_collecte_dist($idb,&$boucles, $crit) {
    if (isset($crit->param[0])) {
        $_coll = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
        $boucle = $boucles[$idb];
        $boucle->modificateur['collate'] = "($_coll ?' COLLATE '.$_coll:'')";
    $n = count($boucle->order);
    if ($n && (strpos($boucle->order[$n-1],'COLLATE')===false))
        $boucle->order[$n-1] .= " . " . $boucle->modificateur['collate'];
    } else
        erreur_squelette(_T('zbug_info_erreur_squelette'),
            "{collecte ?} BOUCLE$idb");
}

@++

george@diwanalarab.com a écrit :

Merci, l'erreur est corrigee mais je trouve bizarre que la recherche dans forms et tables 191 utilise une fonction de SPIP2. Il y en a d'autres comme ca?

ben, s'il y a des trucs qui n'ont jamais été utilisés ou que l'info ne remonte pas, ca peut arriver...
perso j'avais pas vu cette recherche, c'est ton message qui m'a fait regarder.

au départ, je pense que Cedric voulait ne garder qu'une version.
Maintenant, je ne sais pas trop si la v2 en dev sera compatible 1.9.
Au pire, on peut toujours ajouter à la version 191 dans forms_fonctions.php :
if (!function_exists(critere_collecte_dist)){
function critere_collecte_dist($idb,&$boucles, $crit) {
   if (isset($crit->param[0])) {
       $_coll = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
       $boucle = $boucles[$idb];
       $boucle->modificateur['collate'] = "($_coll ?' COLLATE '.$_coll:'')";
   $n = count($boucle->order);
   if ($n && (strpos($boucle->order[$n-1],'COLLATE')===false))
       $boucle->order[$n-1] .= " . " . $boucle->modificateur['collate'];
   } else
       erreur_squelette(_T('zbug_info_erreur_squelette'),
           "{collecte ?} BOUCLE$idb");
}

Cedric, tu es OK ?

@++

Stephane a écrit :

george@diwanalarab.com a écrit :

Merci, l'erreur est corrigee mais je trouve bizarre que la recherche dans forms et tables 191 utilise une fonction de SPIP2. Il y en a d'autres comme ca?

ben, s'il y a des trucs qui n'ont jamais été utilisés ou que l'info ne remonte pas, ca peut arriver...
perso j'avais pas vu cette recherche, c'est ton message qui m'a fait regarder.

au départ, je pense que Cedric voulait ne garder qu'une version.
Maintenant, je ne sais pas trop si la v2 en dev sera compatible 1.9.

Non, le plugin pour la v2 ne sera pas compatible 1.9.x, car complètement remis à plat en ce qui concerne le code.
La version 1.9.x du plugin assurait déjà un support 1.9.1 et 1.9.2, ce qui valait quelques acrobaties dans le code, qu'il est temps de nettoyer, donc.

Au pire, on peut toujours ajouter à la version 191 dans forms_fonctions.php :
if (!function_exists(critere_collecte_dist)){
function critere_collecte_dist($idb,&$boucles, $crit) {
  if (isset($crit->param[0])) {
      $_coll = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
      $boucle = $boucles[$idb];
      $boucle->modificateur['collate'] = "($_coll ?' COLLATE '.$_coll:'')";
  $n = count($boucle->order);
  if ($n && (strpos($boucle->order[$n-1],'COLLATE')===false))
      $boucle->order[$n-1] .= " . " . $boucle->modificateur['collate'];
  } else
      erreur_squelette(_T('zbug_info_erreur_squelette'),
          "{collecte ?} BOUCLE$idb");
}

Cedric, tu es OK ?

Ce me parait correct, oui
Cédric