Webform küldése CCK-val megadott email címre

elhefe képe

Sziasztok!

Létrehoztam egy webformot (Ajánlatkérés) amin néhány mező szerepel és ezt a webformot kiteszem egy blokkba, amit csak a megfelelő oldalakon jelenítek meg (konkrétan minden egyes szállás adatlapjánál). Minden szállásnak van kötelezően egy email mezője, amit CCK-val adtam meg a tartalomtípusnál. A kérdésem az lenne, hogy megoldható-e az, hogy a webformot mindig az aktuális szállásnál megadott email címre küldjük?! Tehát valahogy át kéne emelni az email adatot a konkrét node-ból...
Remélem érthetően fogalmaztam, várom a reakciókat :)

üdv

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
elhefe képe

Azt mindenképpen sejtem, hogy back end drupálozás lesz ebből... Vagy beíratom a user-el, hogy milyen címre legyen küldve az űrlap, bár ez nem túl jó megoldás... Nincs valakinek ötlete továbbra sem? Köszi, és bocsi a türelmetlenségért :$

0
0
d0r0ttya képe

Ugyan ilyet még nem kellett csinálnom, de én inkább az amúgy is meglévő conact form felé indulnék, azt használnám erre a célra. Ehhez persze fel kell venni minden szállodát felhasználóként.

0
0
elhefe képe

A contact form sem a legjobb megoldás szerintem, mert a szállodákat felhasználók viszik fel, így a contact formban arra az email címre tudnék ajánlatot küldeni, amivel beregisztráltak. Na most ha a user regisztrációnál kiírom azt, hogy "Tessék azzal az email címmel reggelni, ami majd az általad beküldött szálloda címe is lesz!" akkor már ugyanott vagyok, mintha a webformba íratnám be a user-el a szálloda mail címét, amelyiktől ajánlatot szeretne kérni...

Nekem ehhez hasonlóra lenne szükségem: http://www.welcometoscotland.com/booking-enquiry/accommodation/chlenry-f...

itt rejtett mezőként van megadva a szálloda email címe, és automatikusan oda megy ki az üzenet.

Továbbra is szeretettel fogadom a segítséget:)
üdv

0
0
york képe

Kellene egy hidden mezo amibe bekerul az oldal nid-je es ez alapjan mar tudsz, mailt kuldeni a webform submit hookjaban.

0
0
elhefe képe

Kicsikét részletesebb útmutatást kaphatnék ez ügyben? Back-end drupalozásban nem igazán vagyok még otthon...

Nagyon szépen köszönöm előre is!

0
0
gabriella74 képe

Ha a kérdés az, hogy ugyanazt az ürlapot szeretnéd mindig más más e-mail címre kiküldeni, akkor talán használd a node-clone modult, az űrlapot clonozod, majd mindegyik mögé a megadott e-mail címet írod. Nem biztos, hogy elegáns megoldás (duplikáció?), de működik.

Szép napot!
Gabi

0
0
elhefe képe

Ha jól értelmezem akkor minden egyes szállodának saját űrlapja lesz a klónozás végett. Viszont én blokkban teszem ki az űrlapot mindig egy megadott útvonalon (konkrét esetemben: szallas/* útvonalon) így akkor minden egyes szállodához új blokkot is kell létrehozni? Nem lesz az úgy kicsit sok a blokkokból? :) Vagy én értelmezem rosszul, kiigazítanál? :)

Köszi!

0
0
gabriella74 képe

Vásároltam egyet és közben rájöttem, igen, ez nem biztos, hogy járható nálad. Ha nem írtál volna ide most választ, akkor is írtam volna még egy választ Neked, hogy, talán Nálad ez az út nem fog működni, pont azért amit Te írsz! Bocsi, csak egy gondolat volt, segíteni akartam...

0
0
york képe

Back-end drupalozas nelkul szerintem nemfog menni.
A kovetkezo lepeseket kell megtenni:

  1. Letrehozol egy rejtett mezot az alapertelemzett erteke: %get[q]
    Igy az urlap ertekei koze bekerul az az utvonal ahonnan bekuldtek a webformot.
  2. Itt tobb lehetoseged is van, talan a legegyszerubb az, ha letrehozol egy olyan email cimzetet amit technikai jellegu es a level kikuldesekor kicsereled a szallashoz tartozo cimre.
  3. Szukseged lesz egy sajat modulra, ahol implementalod a hook_mail_alter (modulneve_mail_alter) hookot (http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hoo...).
  4. Itt a $messages valtozoban megkapod a kikuldendo levelet es a $message['params'] tombben a webform altal atadott parametereket, neked a $message['params']['submission'] tombben levo rejtett mezo ertekere lesz szukseged ami 'node/szam' formaban tartalmazza az utvonalat.
  5. A szovegbol kihamozod a szamot, majd node_load() (http://api.drupal.org/api/drupal/modules--node--node.module/function/nod...) segitsegevel betoltod szallashely node-jat.
  6. A node-bol kiolvasod a szallashely email cimet. Atirod a level cimzetjet szallashely mail cimere.

Ha valahol elakadsz irj ide batran segitek.

0
0
elhefe képe

Először is köszönöm Gabi, hogy próbáltál segíteni!:)

Másodszor, akkor jöjjenek a kérdések Tamáshoz :)
1. pont: kipipálva
2. pont: az űrlapon hozzak létre egy email cím mezőt rejtettbe? így néz ki most: http://kepfeltoltes.hu/view/110415/12107596301_www.kepfeltoltes.hu_.jpg
tehát akkor adjak hozzá egy "Szállás címe" mezőt, amit rejtettbe teszek?! Jól értelmezem?
3. pont: Na innentől kezd érdekessé válni. Létrehoztam egy saját modult az általad elkészített kis tutorial alapján (http://openproject.hu/blog/york/drupal-modul-keszitese-egyszeru). Nos akkor itt a .module fájlba a mysite_mail_alter + a noad_load függvényeket kell elkészíteni és semmi mást?

és itt a mysite_mail_alter hook... akkor ezt hogy is faragjam át, hogy megkapjam a rejtett mező értéket a $message['params']['submission'] tömbből?

<?php
function mysite_mail_alter(&$message) {
  if ($message['id'] == 'mysite_messagekey') {
    $message['body'][] = "--\nMail sent out from " . variable_get('sitename', t('Drupal'));
  }
  $message['params']['submission'] = ...
}
?>

5-6os pontról egyelőre még nem kérdezek, mivel még álmaimban sem merem gondolni hogy eljutok oda véges időn belül :)

Előre is nagyon köszönöm a segítséget és bocsi a hosszú hsz-ért!

üdv

0
0
york képe

Orulok, hogy megprobalod magad kiszenvedni a megoldast:
Nezzuk a kerdeseidet:

2. pont: az űrlapon hozzak létre egy email cím mezőt rejtettbe? így néz ki most: http://kepfeltoltes.hu/view/110415/12107596301_www.kepfeltoltes.hu_.jpg
tehát akkor adjak hozzá egy "Szállás címe" mezőt, amit rejtettbe teszek?! Jól értelmezem?

Ezt is lehet, de a node/NID/webform/emails oldalon is felvehetsz egy tetszoleges cimzettet.

3. pont: Na innentől kezd érdekessé válni. Létrehoztam egy saját modult az általad elkészített kis tutorial alapján (http://openproject.hu/blog/york/drupal-modul-keszitese-egyszeru). Nos akkor itt a .module fájlba a mysite_mail_alter + a noad_load függvényeket kell elkészíteni és semmi mást?

Csak a mysite_mail_alter() fuggvenyt kell elkesziteni a node_load() fuggvenyt csak meg kell hivni.

és itt a mysite_mail_alter hook... akkor ezt hogy is faragjam át, hogy megkapjam a rejtett mező értéket a $message['params']['submission'] tömbből?

A fejleszteshez celszeru feltenni a devel modult aminek segitsegevel konnyen es jol olvashatoan ki tudod iratni a kulonbozo valltozokat.

Kiiratjuk a $messages valtozo tartalmat:

<?php
function mysite_mail_alter(&$message) {
  // Minden level kuldesekor lefut.
  dpm($message);
}
?>

Megfigyeljuk mi a level azonositoja: 'webform_submission' minket csak ezek a levelek erdekelnek:

<?php
function mysite_mail_alter(&$message) {
  if ( $message['id'] == 'webform_submission' ) {
    // Csak a webform altal kikuldott levelek eseteben fut le.
    dpm($message);
  }
}
?>

Nezzuk meg mi a rejtett mezo tartalmat es szerezzuk meg a node id-t (nid)...:
(itt bukott meg a mutatvanyom a hidden mezovel, ugyanis itt meg nem helyetesitette be a webform az url-t, de szerencsere van helyette mas egyszerubb megoldas)

<?php
function mysite_mail_alter(&$message) {
  if ( $message['id'] == 'webform_submission' ) {
    // Csak a webform altal kikuldott levelek eseteben fut le.
    dpm($message);
 
    // A node id-t megszerezzuk az utvonalbol (http://api.drupal.org/api/drupal/includes--path.inc/function/arg/6).
    $nid = arg(1);
 
    // toltsuk be a node-t
    $node = node_load($nid);
 
    // nezzuk meg mi van benne:
    dpm($node);
  }
}
?>

Nezzuk meg hogy tudjuk lecserelni a cimzettet:

<?php
function mysite_mail_alter(&$message) {
  if ( $message['id'] == 'webform_submission' ) {
    // Csak akkor csereljuk le a cimzett e-mail cimet, ha a "szallas adonak" kuldjuk a levelet.
    if ($message['to'] == 'ezt@a_cimet_csereljuk_le.hu') {
      // Csak a webform altal kikuldott levelek eseteben fut le.
      dpm($message);
 
      // A node id-t megszerezzuk az utvonalbol (http://api.drupal.org/api/drupal/includes--path.inc/function/arg/6).
      $nid = arg(1);
 
      // toltsuk be a node-t
      $node = node_load($nid);
 
      // nezzuk meg mi van benne:
      dpm($node);
 
      $message['to'] = $node->field_szallas_ado_email_cime[0]['value'];
      // ^ itt lehet nem value van, most nincs keznem olyan site ahol mail field van hasznalva es tudok feltenni devel modult.
    }
  }
}
?>

Az eles oldal eseten toroljuk ki a dpm-eket.
Upsz leirtam a megoldast... bocs.
Remelem mukodik is ;).

0
0
elhefe képe

Nagyon szépen köszönöm!:) Este, amint hazaérek nekiesek! Ha van valami probléma akkor írok:)

köszi még1x!

üdv!

0
0