Sziasztok!
Egyik ügyfelünknél merült fel, hogy a termékeihez, minden oldal alján egy visszajelző űrlapot szeretne. Ami eddig felmerült:
1.) Feedback modul:
Előnye:
- Minden oldalon megjelenik.
- Jól követhető, hogy az üzenet honnan jött.
Hátránya:
- Csak egy mezőt kér be, az üeznetet. Nem lehet megtudni az érdeklődő kiegészítő adatait: név, e-mail, telefon.
- Nem küld e-mail-t a beküldésről. (Ebben nem vagyok biztos)
2.) Comment (core) modul:
Csak elméleti alapon végigvezetve:
A hozzászólások beküldését engedélyezni alapban mindenkinek. Hozzászólások hozzáférése csak az admin számára. Talán form_alter-rel változtatni a comment modul mezőit, hogy a további adatokat is bekérje: név, e-mail, telefon.
Trigger-nél megadom, hogy a comment beküldéskor egy levélküldési akció legyen végrehajtva.
Kérdéseim:
- Mi a véleményetek a fentiekről, van-e esetleg kiegészítő javaslat?
- Tudok-e olyan modul-t, amellyel a fentieket egyszerűbben kivitelezni lehet?
Köszönettel:
János
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
off
kiegészítés: valami captchat ne felejts el hozzárakni.
---
Tévedni mindenkinek szabad, csak a mérnöknek észre kell vennie.
Jogos. :)
Nem rossz ötlet!
Visszajelzés: külön tartalomtípus
Mi lenne, ha a visszajelzésed egy külön tartalomtípus lenne, aminek a beküldő űrlapját megjelenítenéd a termékeid adatlapján?
Így gondolnám:
(A termék tartalomtípusodat 'product'-nak fogom hívni, a visszajelzést 'feedback'-nek.)
template.php-ban preprocesszel hozzáadunk egy új változót a node-product.tpl.php-hez:
Aztán a node-product.tpl.php megfelelő helyén:
Annyit szépítenék még rajta, hogy tennék bele ilyen jquery-s lenyílós "varázslást", ezt a tpl-ben könnyen megteheted.
A visszajelzés tartalomtípusba tehetsz egy node reference mezőt, amire hook_form_alter()-ből azt mondod, hogy '#access' = FALSE, aztán beállítod neki '#default_value'-nak az éppen megtekintett terméked node id-ját. Ezt a drupal_lookup_path() (nyilván használsz útvonal álneveket) és az arg() függvények segítségével kiderítheted.
Ja, és az előnézet gombot is unsetelném.
Az értesítő e-mailek kiküldésére Rules modult használnék, ezzel tokenek segítségével (persze kell a Token modul is) még a bevitt mezők értékeit is nagyon szépen ki tudod küldeni akár egy egész felhasználói csoportnak is.
A visszajelzéseket könnyen ki is listázhatod egy view-ban, ha szükséges.
Én valahogy így csinálnám, persze lehet, hogy mindjárt beírja valaki egy modul nevét, ami pont ilyesmit tud, és feleslegesen gépeltem egy csomót... :)
Kedves Bálint! Érdekes
Kedves Bálint!
Érdekes megközelítés, hogy a feedback-ket külön tartalomtípusnak vennéd fel a termék oldalán. Ilyen megoldásra nem is gondoltam volna. :)
Szinte biztos, hogy a fenti problémára megvalósítást kér az ügyfelem. Amikor kész, akkor mindenképpen visszajelzek, hogy mi lett a megoldás.
Köszönöm visszajelzésed, igazán hasznos volt!
Üdv:
János
Még egy ötlet: Engedélyezed a
Még egy ötlet:
Engedélyezed a komment lehetőségét, beállítod a formot. Attól függően, hogy hogyan kell tárolni a feedback-et (elég, ha emailben kimegy, vagy legyen "tartósan" elmentve) létrehozol egy rulest az after saving a comment eseményre.
Ebben a rules-ban vagy összeszeded a komment mezőit, és elküldöd emailben valakinek, vagy egy új tartalomtípusban új tartalmat hozol létre a komment mezőiből. Az új tartalomtípus jogosultságait meg úgy állítod, ahogy szeretnéd.
ÉS a legvégén törlöd az új commentet (szerintem ezt lehet..), és beállítasz egy Köszi a visszajelzést üzenetet.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
Ilyesmire gondoltam én is...
Ilyesmire gondoltam én is, hogy a comment-tet használom fel. Egy gond adódik, hogy további mezőket kellene a visszajelzőtől bekérnem. Azon gondolkoztam, hogy erre esetleg a form_alter jó lenne, bár ilyet sosem csináltam még.
Üdv:
János
Esetleg Author Contact
Esetleg Author Contact modul.
Elvileg azt tudja, amit szeretnél.
Egy hátránya van, a node szerzőjének küldi az e-mailt, így több felhasználós környezetben nem igazán tudsz egy e-mail címet használni.
webforms
+ a webform_bloks modul?
Ezzel csinálhatsz egy formot, a blokk modul blokkba teszi, és már csak a megfelelő tartalmak alá a blokk adminban oda kell rakni.
Elmenti db-be, küldi mail-be az eredményeket... Hogy hogy lesz ott az, hogy melyik tartalomhoz küldték be? Meg kell nézni, vannak default értékek, hátha van egy node id is. Vagy a webformot preprocessben (ugye aboros?:)) megpiszkálod, és egy kis kóddal (textmezőbe beleírod, majd a textmező típusa legyen hidden), vagy js-el odateszed.
Én ezt csinálnám, nekem ez tűnik a legrövidebb útnak.
--
Szabó Dénes - Internode.hu - Munkára fogott weblapok
A megoldás
Köszönöm minden hozzászólónak a segítséget, különösen Den-nek!
A Den által adott megoldást sikerült kivitelezni.
Felhasznált modulok:
A megoldás:
Létrehoztam egy klasszikus Webform űrlapot, amelyen a szokásos módon a mezőket -- ahogy a fordításban szerepel: összetevőket -- megadtam.
Létrehoztam egy "honnan" rejtett (hidden) mezőt, amelyben azt az url-t tárolom, ahonnan a kérés érkezik.
Alapértelmezett értéknél:
szerepel, a webform tokenje teszi ezt lehetővé (ahogy olvastam nem szükséges a Token modul hozzá, hogy működjön).
Az űrlap szerkesztési (edit) felületén be kell kapcsolni, hogy az űrlap számára egy blokk készüljön: "Generate a block".
Majd a Blokkoknál bekapcsoltam, hogy az így már elérhető blokk látható is legyen. "Megjelenítés bizonyos oldalakon" beállításnál meghatároztam, hogy csak a "termekek/*" rész alatt jelenjen meg a blokk. Így határoztam meg, hogy más egyéb oldalakon ne.
(Megjegyzés: CCK-val külön termék tartalomtípust hoztam létre, amely a pathauto-val a /termekek/* helyre kerül.)
Demo: itt
Üdv:
János