Faire une recherche sauvegardée et notification si nouvel élément présent dans le résultat de la recherche

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,
Premier point :
Je voudrais savoir si quelqu'un sait comment faire une recherche et que celle-ci soit sauvegardée pour l'utilisateur qui a fait cette recherche...
Comme par exemple pour un site d'offre d'emploi :
Un candidat recherche une offre et va choisir par exemple la région, le département, le type de métier...
Et cette recherche serait sauvegardée et qu'il puisse y accéder sans avoir à réitérer la même recherche...
Deuxième point :
Permettre la notification de l'utilisateur si de nouveaux éléments correspondant à sa recherche existe
Je vous remercie d'avance, j'ai cherché, mais je n'ai rien trouvé :(
Bonne journée à tous ;)

Version de Drupal : 

Bien le bonjour,
Je me répond à moi-même étant donné que personne ne m'a répondu, mais au moins si quelqu'un rencontre la même problématique que moi, et je suis sur qu'il y en a déjà eu et qu'il y en aura d'autre...
Pour sauvegarder les filtres éxposés d'une vue, on peut utiliser :
http://drupal.org/project/views_savedsearches
Par contre, il ne sauvegarde qu'une seule recherche, pas de possibilité de sauvegarder plusieurs recherche.
Je ne l'ai pas encore testé, donc je ne sais pas exactement comment ça fonctionne, mais c'est une piste...

Pour la notification si un nouveau noeud (contenu) apparait dans la recherche, je n'ai pas encore trouvé.
Cela indiquerait que les recherches de tous les utilisateurs ayant choisis d'obtenir une notification si un nouveau noeud apparait devrait être rejouée (la nuit) et si nouvel élément -> Notification....

Peut-être qu'un script qui interroge la base de données via script SQL (les vues sauvegardées) et qu'un mettrais un flag si nouveau contenu avec envoie de mail derrière...

Enfin bref, si quelqu'un a une idée, je suis preneur...
Bonne journée à tous ;)

Bon j'ai testé Views_saved_searches et j'ai dit une bêtise dans mon précédent post.
On peut sauvegarder plusieurs recherche...
Enfin, on voit bien plusieurs recherches sauvegardées, mais sauf que lorsque l'on veut les ré afficher rien de se passe...
L'insertion des champs à sauvegarder en base de données se fait mal :(
Une personne a proposé une modification du code js pour que ça fonctionne, mais ça génère une autre erreur :(
Donc si quelqu'un sait comment sauvegarder une recherche et créer une alerte mail suite à cette recherche je suis prenneur de toutes pistes, même si j'ai peu d'espoir...
Bonne journée à tous ;)

Bonjour à tous,
Pour utiliser views_savedsearches il faut patcher le fichier javascript, vous pouvez le trouver ici :
http://drupal.org/node/464156#comment-2144454
Par contre, j'obtiens un message d'erreur qui est le suivant :
warning: implode() [function.implode]: Invalid arguments passed in /var/www/drupal/sites/all/modules/views_savedsearches/views_savedsearches.module on line 183.
J'ai cherché, mais n'étant pas développeur, je n'ai pas trouvé...
Merci d'avance si quelqu'un à une piste, ou une autre solution pour faire des recherches sauvegardées...
CiaO ++

Discussion (enfin monologue ;) intéressant. Je me suis posé la même question il y a un moment.

Pour moi, la solution qui me paraît la plus simple est de passer par des script maison assez simple : en effet, si tu n'utilises pas AJAX pour tes vues, les recherches sont en fait des arguments passés par les URL , par ex :
http://monsite.com/ma_vue?type=sory&field_machin=recherche...

Donc il faut en fait, pour moi, de sauvegarder ces URLs (ensuite un script peut permettre de les redécouper pour connaître la recherche effectuée par l'utilisateur). Pour les sauvegarder, on peut créer un mini script ou un mini-module, ou encore avec un script via le cron, récupérer les nouvelles URL visitées enregistrées dans le module statistics (qui a le bon goût de connaître aussi les utilisateurs). Par ex. le script récupère toutes les url commençant par ma_vue*...

Pour ton problème d'affichage des nouvelles entrées sur les recherches précédentes, c'est à mon avis un script un peu plus compliqué. Sans doute pas refaire toutes les recherches (ce serait trop lourd!). Plutôt un script qui se déclenche à chaque création de ton contenu "offre" (PHP déclenché dans Rules par ex.) et qui parcoure les recherches des utilisateurs. Il faudrait donc que le script parcoure ta base créé ci-dessus. S'il correspond à la recherche demandée, alors tu notifies à l'utilisateur (par ex. un mail (?)).

Bien le bonjour,
lol pour le monologue, il est vrai que pour l'instant tu es la première personne à m'avoir répondu ;)
Ce qui m'a surpris dans un premier temps, car je pensais que ce genre de fonctionnalité aurait intéressé beaucoup de monde, mais apparemment pas tant que ça ;)
Ou alors, celui qui a eu ce besoin a fait un script comme tu viens de me le conseiller ;)
Malheureusement, je ne suis pas développeur, je n'ai pas fait de php depuis 6 à 7 ans ;)
Je me posais la question justement à faire moi-même un module, ou des scripts maison, car c'est une fonctionnalité dont j'ai absolument besoin. Par contre, il va me falloir du temps, avant ne serait-ce que réussir un script ;) lol
Merci beaucoup en tout cas pour tes conseils précieux, je vais essayer de voir comment me débrouiller ;)
La discussion reste ouverte bien sur ;)
Bonne journée

Si la fonctionnalité t'intéresse tant, tu aurais peut-être intérêt à payer qq euros à un freelance pour qu'il te le fasse : le script de statistiques n'est vraisemblablement pas dur s'il se base sur le module Statistics : il faut en fait le copier/coller, créer une nouvelle base et inscrire dedans les recherches. Je l'ai déjà fait une fois pour avoir des stats un peu différents donc je sais de quoi je parle. Une journée devrait suffire largement (+ les essais). C'est un peu plus compliqué si tu veux que le script soit "universel" (fonctionne pour n'importe quelle views et n'importe quels champ exposé).

Pour ton autre script, il faut voir combien de champs il y a, mais à mon avis c'est l'affaire d'une demi-journée : ce sont de simple condition. J'aurais juste un peu peur que le script ne soir un peu lourd si ta base devient énorme (i.e. s'il y a masse de recherches).

Bien le bonjour et merci de ton retour,
J'aimerai bien pouvoir payer un freelance pour faire ça, mais je ne sais pas du tout combien ça peut coûter, et je ne suis pas sur d'avoir les moyens ;)
Si par contre, j'investis, ça serait pour faire un module de sauvegarde des views avec possibilité de notifications en cas de nouvel élément "universel"
Ou alors pour corriger le module views_savedsearches et ajouter la fonctionnalité de notification...
Ce module serait d'ailleurs à publier en libre, mais à mon avis, ça ne doit pas être donné ce genre de prestation...
Merci en tous cas pour ton retour
CiaO ++

Je vais tester Views search cette semaine pour voir un peu le code... Jamais testé ce module, et il m'intéresse... Je te dirai si c'est plus simple en modifiant ce module ou en passant plutôt par Statistics. C'est surtout sur les views avec AJAX que mon système par Statistics est faible... Un module "universel" est à mon avis facilement deux fois plus cher...

A mon avis en terme d'optimisation, le nombre de noeuds n'a pas beaucoup d'importance si tu décides de faire un script comme je te l'ai conseillé à chaque création de nouveau contenu (on ne re-recherche pas dans les milliers de noeuds : on notifie juste de l'arrivée d'un contenu correspondant à une recherche sauvegardée). Un script "universel" pour cela me paraît un peu compliqué : il y a une réflexion à conduire sur le sujet!

Rebonjour,
Mon problème avec le module views_savedsearches est résolu :)
En fait il fallait désactiver Ajax pour la vue en question :)
Je suis vraiment très content !!!
Il ne me reste plus qu'à faire cohabiter ça avec la notification et ça sera bon ;)
Bonne journée à tous

J'ai parlé trop vite :(
En fait, Ajax dans ma vue, n'a rien à voir, je ne sais pas comment cela se fait que ça ait fonctionné correctement lors de mes tests...
Du coup, je reste sur mon problème avec Views_savedsearches...
CiaO ++

Mouaip, Views Saved search n'est pas super, je trouve, vu qu'il force à sauvegarder alors que je préfèrerait une sauvegarde automatique (mais cette fonctionnalité t'intéresse sans doute). Le module buggue un peu (j'ai par exemple "réussi" à avoir le fieldset "saved search" présent à chaque ligne de ma vue!) et est assez compliqué (donc customisation longue), mais il a le bon goût de fonctionner avec AJAX aussi.

Pour moi il a fonctionné. Pour l'erreur implode, il suffit de remplacer, à la ligne 183 :

//$form['#redirect'][1] = implode('&', $query);
$form['#redirect'][1] = request_uri();

...ce qui devrait fonctionner (en gros, c'est une redirection vers la page courante au lieu d'une redirection avec tous les éléments de Saved Search. Le problème aussi, est que Saved search sauvegarde un certain nombre de données qui ne servent à rien (ou peut-être si tu n'est pas en clean URL?).

Manque plus que ton script pour notifier, on dirait...

C'est génial !!!!
Un grand merci !!!
J'ai besoin de la fonctionnalité ou il demande à sauvegarder ;)
J'étais dépité et tu viens d'égayer ma journée et j'en avais bien besoin ;)
Milles merci ;)
Milles merci ;)
Milles merci ;)