Submitted by anisbs on
J’ai créée un nouveau type de contenu sous Drupal avec CCK (avec différents attributs).
Je voudrais mettre en place dans la même page des critères de recherches (attributs du nouveau type de contenu) et le résultat de la recherche dans un tableau ( avec la possibilité de modifier et de supprimer des lignes du résultats).
Est-ce qu’il y aurait un module qui permet de faire ceci ou bien il faut le développer à la main :
Merci d’avance pour votre aide
J'ai le même objectif. Je
Permalien Soumis par jpzam le 15 Décembre, 2008 - 13:17
J'ai le même objectif.
Je n'ai pas trouvé de module, aussi je me suis lancé dans l'écriture d'un module. Malgré de bonnes connaissances en PHP5 et Mysql , c'est un objectif difficile.
J'ai fait les 3/4 du chemin mais je coince sur l'affichage du résultat.
En utilisant l'API Drupal, apres avoir créé le formulaire d'affichage de sélection des critères, utilisé les fonctions xx_validate() et xx_submit() , j'ai bien le moyen de connaitre les critères, de traiter la BD pour extraire les données correspondantes mais je ne sais pas le passer à la même page pour affichage (ou à une autre page ). Toujours ce problème de fonctionnement général de Drupal que je ne maitrise pas encore .
Si quelqu'un a la solution,grand merci d'avance
Salut Je suis tombé sur la
Permalien Soumis par Tahitibob35 le 15 Décembre, 2008 - 20:30
Salut
Je suis tombé sur la même problématique : une formulaire de recherche sur une bdd externe suivi d'un tableau de résultat.
J'ai moi aussi bloqué sur l'affichage du formulaire et du tableau de résultats sur la même page.
Je m'en suis sorti en m'inpirant du module search.
Dans les grandes lignes, le callback submit du formulaire récupère les données du formulaire et reconstruit une URL du style http://127.0.0.1/drupal/?q=ton_module/champ1/champ2/champ3, et fait une redirection dessus.
Puis dans le hook du menu, tu récupères ces infos, réaffiche le formulaire prérempli suivi de ton tableau, resultat de la réquête en fonction de tes champs.
En espérant être clair....
Sinon, je peux mettre mon module à disposition pour exemple.
David.
PS: Suis nouveau sur Drupal, suis pas sûr d'avoir utilisé les bonnes dénominations "drupal"
salut merci pour ta
Permalien Soumis par jpzam le 16 Décembre, 2008 - 11:22
salut
merci pour ta réponse.
Je vais essayer de la mettre en oeuvre.
J'ai suivi tes indications
Permalien Soumis par jpzam le 16 Décembre, 2008 - 23:14
J'ai suivi tes indications et ca a marché.
Dans monmodule_menu(){
// affichage, validation, soumission du formulaire
$items['monmodule'] = array(
'title' => 'Selection avec formulaire',
'page callback' => 'formulaireselection_page',
'access arguments' => array('access content'),
);
//page d'affichage des résultats
$items['monmodule/suite'] = array(
'title' => t('Suite formulaire!'),
'page callback' => 'formulairesuite',
'type' => MENU_CALLBACK,
'access arguments' => array('access_content'),
);
Dans ma fonction formulaireselection_submit() J'ai créé une 'url' pour passer les critères de sélections:
$form_state['redirect'] = 'monmodule/suite'.'/'.$criteres1.'/'.$critere2;
(Inconvénient, je vois les critères dans le lien du navigateur apres le submit)
Je récupére ensuite pour traitement les critères de sélection dans la fonction
formulairesuite($a,$b){
-accès base de données pour selctionner les données répondat aux critères
-création d'un tableau à afficher
}
avec cette fonction, je récupère les données du formulaire avec $a et $b mais ca me parait magique !
En résumé, ca marche mais ce n'est peut être pas la méthode recommandée (je n'utilise pas [page arguments], je ne sais pas comment faire avec)
encore merci
apparement, dans le menu, tu
Permalien Soumis par Tahitibob35 le 17 Décembre, 2008 - 19:50
apparement, dans le menu, tu peux spécifier
'page arguments' => array(3,4) #item 3 et 4 de l'url
Pour spécifier explicitement les items de l'url que tu veux récupérer.
Si, comme toi, on ne le spécifie pas, ça marche tout seul.
J'ai appris quelque chose...
Donc on a utilisé la même méthode.