modul fejlesztés problémák

CHi képe

Sziasztok!

A következő kérdések merültek fel, amire nem tudtam megtalálni a válaszokat:
Légyszi segitsetek!
Az első az hogy miért nem hivja meg a form_alter függvényből egy külső függvényt:

function Hirlevel_2($email,$name,$field32)
{
//$field32 - Custom filed Lakcim
    $email=urlencode($email);
    $name=urlencode($name);
    $field32=urlencode($field32);
    $URL="http://www.weblap.hu/cgi-bin/responder/register.cgi";
    $account=5;
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,"$URL"); 
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, 
        "account=$account&email=$email&name=$name&dp32=$field32"
    );
    curl_exec ($ch); 
    curl_close ($ch);
}
 
function autoresponder_form_alter($form, &$form_state) {
 
 Hirlevel_2('[email protected]','próba','Budapest');
 
}

A másik kérdés ami ebből következett, hogy szeretném lekérni az aktuálisan bejelentkezett felhasználó nevét, emailcimét, ez milyen változóban van eltárolva, s hogyan tudom elérni?
Ezt szeretném a fenti függvénnyel elküldeni az autorespondernek.

S még annyi utóljára, hogy innen eltudok érni a szerveren egy másik adatbázist, ami az autoresponderé. mert azt szeretném megoldani, hogy ha a profile űrlapon valaki bejelölgeti a hirleveleket, mindig frissitse az adatbázisban, de az nem a drupal adatbázisában tárolódik.

Ezeket hogyan tudom megoldani?

Még eszembe jutott, hogy lehet ebben is tudnátok segiteni, hogy amikor beirtam ezt az form_alter függvénybe, állandóan kiirta ezt:
drupal_set_message(t($user.'A hírlevél feliratkozások frissítése megtörtént.'));
return;
Hogy tudom megadni, hogy csak akkor irja ki, amikor a profile menüt módosították.
Légyszi segitsetek, mert annyi módon próbáltam már, s sehogy se sikerült ezeket megvalósitanom. Vagy azért mert valószinű az angol tudásom miatt nem értettem az angol szöveget, vagy pedig azért mert nem látom át, hogy hogyan működnek ezek a függvényhívások.

köszönöm

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

1.
Gondolom csináltál egy modult, melynek neve autoresponder? Honnan tudod, hogy nem hívja meg? Tolj be a Hirlevel_2 elejére egy drupal_set_message('hello') függvényhívást. Ha megjelenik a hello akkor meghívja.

2.
global $user;
$user

ezt egyébként nem értem, hogy miért nem sikerült megtalálnod, épp a napokban volt erről itt szó a fórumon...

3. az egyes megoldásban felvázolt módszer kell neked, nem kell itten másik adatbázis.

pp

0
0
CHi képe

Ez egyszerű. Onnan tudom, hogy nem irja be az autoresponder adatbázisába az adatokat.
De rögtön nézem amit mondtál.
Csináltam egy sima autoresponder.php fájlt. S simán bemásoltam a függvényt, s a meghivást is. Lefuttatom, s rögtön megis jelenik a responder olvasók között a felhasználó, az adatokkal amiket átadtam neki.

CHi

0
0
aboros képe

az autoresponder egy létező drupal modul, használod ezt a modult?

az az érzésem, hogy a hurokrendszer működése se teljesen tiszta.
hogy hívják a saját modulodat? gondolom nem autorespondernek hívod vagy igen?
vagy hogyan kerül az autoresponder a képbe? miért autoresponder_form_alter a hurok neve?

0
0

-
clear: both;

CHi képe

igazad van. tényleg nem tiszta. Pontosan ezért kérdezek. Igen, egy saját modult irok, mert ezt tanácsolták a fórumban a többiek. Autoresponder loadernek neveztem el, s igazából csak átkéne adnia pár adatot a Silihost autoresponder.cgi fájlnak a fenti függvénnyel. Aminek akkor kéne lefutnia amikor a felhasználó a profile menüjében, illetve a regisztrációnál az elküldés gombra kattint. az a lényeg, hogy hirlevél csoportokra lehetne feliratkozni, illetve ha a felhasználó kivenné a pipát a saját profil menüjében valamelyik hirlevél csoportból, akkor azt vizsgálni kell, s beirni egy 0-át az adatbázisban, hogy inaktiv lett a fórumozó ebben a hirlevélben.

A létező autorespondert is átnéztem, de mivel nem vagyok tisztába, hogy igazából mit hova kellene irnom, ezért irogatok ide talán valaki tud segiteni immár 2 hete küzdök vele.
Ezek szerint ezt sem jól irtam: autoresponder_form_alter:
Én úgy értettem, hogy a form_alter mindig lefut, s hogy amikor az adott modulhoz irok ilyet, pl. profile_form_alter, akkor ezt azt jelenti, hogy akkor fut le, amikor a profile beküldés gombot megnyomjuk. Ezt már csak elkeseredésemben irtam, mert egyre jobban összezavarodtam.

0
0
pp képe

A hook függvények olyan függvények, amivel a modul bele tud nyúlni különböző folyamatokba. Mindig a modul nevével kell kezdődjön. A hook szócskát kell lecserélni a függvény nevében. Tehát hook_form_alter az a temodulodneve_form_alter lesz. Minden form elkészítésekor lefut a form_alter neked kell vizsgálnod, hogy melyik form_ba akaszkodsz bele. Ezt a form_id-vel tudod megtenni. Ha a submit-ba akarsz belenyúlni akkor hozzá kell adnod még egy submitot a form-hoz, de ha júzerrel dolgozol akkor inkább hook_form_alter + hook_user függvényeket használd.

És ne aggódj! Két hét az nulla idő a Drupal programozásában. Adj magadnak egy kemény félévet, hogy elmondhasd biztonsággal állsz neki feladatoknak.

pp

0
0
CHi képe

Szia!

köszi. Tehát ha jól értem, akkor mivel én a user modul nyúlok bele ezért
user_form_alter_submit ?

Egyébként beleraktam egy kiiratást a függvénybe, ahogy mondtad, s tényleg átviszi a változók értékét. De akkor miért nem küldi el a respondernek?

function Hirlevel_2($email,$name,$field32)
{
//$field32 - Custom filed Lakcim
    $email=urlencode($email);
    $name=urlencode($name);
    $field32=urlencode($field32);
    $URL="http://www.site.hu/cgi-bin/responder/register.cgi";
    $account=5;
	drupal_set_message('CH'.$URL);
    /*$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,"$URL"); 
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, 
        "account=$account&email=$email&name=$name&dp32=$field32"
    );
    curl_exec ($ch); 
    curl_close ($ch);

Van ötleted?
Ha simán php-ként futtatom, akkor meg elküldi, s beis irja.

0
0
aboros képe

hook_akármi függvényedet a saját modulodban mindig úgy nevezed el, hogy a "hook" szót a saját modulod nevére cseréled.

például a marvin_a_depresszios_robot.module fileban megvalósított hook_form_alter neve marvin_a_depresszios_robot_form_alter kell legyen. tökmindegy, hogy milyen formba akarsz belepiszkálni vele. azt a függvény első sorában fogod ellenőrizni a $form_id alapján.

0
0

-
clear: both;

CHi képe

a megoldáshoz.
Aha akkor ez a probléma megoldása!
megpróbáltam, de hogy találom meg hogy a profil, vagy a regisztrációs űrlapnak mi a form-id-je?

0
0
Pasqualle képe

http://www.lullabot.com/articles/modifying-forms-5-and-6

keress ra a "form_id"-re az oldal forrasaban

0
0
CHi képe

Site off-line
This site is currently under maintenance. We should be back shortly. Thank you for your patience.

Majd megpróbálom később

0
0
Pasqualle képe

nem az enyem. ez A lullabot site..

0
0