Witam
Problem mam nast臋puj膮cy - kupuj膮c jaki艣 towar w sklepie Isotope mog臋 si臋 zalogowa膰 i moje dane s膮 przenoszone do formularza koszyka (checkout) lub kontynuowa膰 zakupy bez logowania - wpisuj臋 dane do faktury.
Teraz potrzebuj臋 przywo艂a膰 te dane w nast臋pnych krokach - ale nie z poziomu Contao u偶ywaj膮c tagów np ##billing_address## (czego u偶ywam w mailu potwierdzaj膮cym np) ale chcia艂bym te warto艣ci przypisa膰 do zmiennych php. Rozwi膮zanie pewnie dziecinnie proste, ale gdzie艣 mi to umyka.
呕eby rozja艣ni膰 - chcia艂bym np Imi臋 wpisane przez kupuj膮cego w formularzu umie艣ci膰 w kolejnych krokach na innej stronie, przes艂a膰 do p艂atno艣ci ... cokolwiek.
Próbuj臋 zatem pod zmienna np $imie przypisa膰 wpisan膮 warto艣膰, np:
$imie = $GLOBALS['TL_LANG']['tl_iso_addresses']['firstname'];
lub np
$imie2 = $this->Isotope->Cart->billingAddress['firstname'];
Nie dzia艂a, zmienna $imie pozostaje pusta.
prosz臋 o podpowied藕 jak mog臋 si臋 do tego dobra膰
Pozdrawiam
Witamy na polskim forum Contao
Zarejestruj si臋 teraz, aby skorzysta膰 ze wszystkich funkcji forum. Kiedy si臋聽zalogujesz, b臋dziesz m贸g艂 tworzy膰 tematy, pisa膰 posty, rozdawa膰 punkty reputacji, korzysta膰 z prywatnych wiadomo艣ci i zarz膮dza膰 swoim profilem. Je艣li posiadasz ju偶聽konto, zaloguj si臋 - w przeciwnym wypadku zarejestruj si臋 ju偶 teraz!
Zarejestruj si臋 teraz, aby skorzysta膰 ze wszystkich funkcji forum. Kiedy si臋聽zalogujesz, b臋dziesz m贸g艂 tworzy膰 tematy, pisa膰 posty, rozdawa膰 punkty reputacji, korzysta膰 z prywatnych wiadomo艣ci i zarz膮dza膰 swoim profilem. Je艣li posiadasz ju偶聽konto, zaloguj si臋 - w przeciwnym wypadku zarejestruj si臋 ju偶 teraz!

isotope - przenoszenie danych z formularza
Rozpocz臋ty przez kylu123, pa藕 26 2011 14:57
#5
Napisano 28 pa藕dziernika 2011 - 10:22

#7
Napisano 02 listopada 2011 - 16:29

Bo czy dobrze rozumiem:
wpisuj臋 dane do formularza z danymi - s膮 one wrzucane wszystkie do jednego worka (this->Template->info = deserialize($arrOrder['checkout_info'], true)
i tak potem wy艣wietlane w orderdetails i order review :
A czy nie mo偶na by pój艣膰 tutaj w drug膮 stron臋 i rozbi膰 to znów (unserialize)
Teoretyzuj臋, bo jak wspomnia艂em nie jestem programist膮, ale próbuj臋 to jako艣 rozgry藕膰.
Pozdr
wpisuj臋 dane do formularza z danymi - s膮 one wrzucane wszystkie do jednego worka (this->Template->info = deserialize($arrOrder['checkout_info'], true)

<?php foreach( $this->info as $type => $data ): ?> <div class="info_container <?php echo $type . $data['class']; ?>"> <h3><?php echo $data['headline']; ?></h3> <div class="info"><?php echo $data['info']; ?></div> </div> <?php endforeach; ?>
A czy nie mo偶na by pój艣膰 tutaj w drug膮 stron臋 i rozbi膰 to znów (unserialize)
Teoretyzuj臋, bo jak wspomnia艂em nie jestem programist膮, ale próbuj臋 to jako艣 rozgry藕膰.
Pozdr
#8
Napisano 03 listopada 2011 - 20:17

A spróbuj zrobi膰 tak. W ModuleIsotopeCheckout.php w ka偶dej metodzie, która ma tak膮 struktur臋 getXxxxxInterface, odnajd藕 skrawek kodu:
$objTemplate = new IsotopeTemplate('iso_checkout_xxx_method'); // i dodaj $objTemplate->setData($this->getCheckoutInfo()); // lub $objTemplate->setData($this->arrCheckoutInfo);I sprawd藕 czy poni偶szy kod wypluwa to co powinien (w iso_checkout_xxx_method):
<?php $this->showTemplateVars(); ?>
Codefog - Contao web development
#10
Napisano 11 listopada 2011 - 21:34

Hej
Kamilu dzi臋ki za pomys艂y. Ostatni dzia艂a, tzn prawie
Wywo艂uj膮c te dane przez sesj臋 ale jeszcze przed potwierdzeniem zakupu, czyli jakby w czwartym ostatnim kroku checkout (z poziomu checkout_order_review), ma dost臋p do nich wszystkich, jest super. Ale chc膮c u偶y膰 tej metody do wywo艂ania danych w nast臋pnym kroku czyli ju偶 po zatwierdzeniu zakupu (w checkout_order_details) ju偶 s膮 nieaktywne, pewnie Isotope/Contao zabija w tym momencie sesj臋.
Da si臋 to jako艣 prosto obej艣膰?
Pozdrawiam
Kamilu dzi臋ki za pomys艂y. Ostatni dzia艂a, tzn prawie

Wywo艂uj膮c te dane przez sesj臋 ale jeszcze przed potwierdzeniem zakupu, czyli jakby w czwartym ostatnim kroku checkout (z poziomu checkout_order_review), ma dost臋p do nich wszystkich, jest super. Ale chc膮c u偶y膰 tej metody do wywo艂ania danych w nast臋pnym kroku czyli ju偶 po zatwierdzeniu zakupu (w checkout_order_details) ju偶 s膮 nieaktywne, pewnie Isotope/Contao zabija w tym momencie sesj臋.
Da si臋 to jako艣 prosto obej艣膰?
Pozdrawiam
#11
Napisano 11 listopada 2011 - 23:14

Dzi艣 ju偶 nie chce mi si臋 sprawdza膰, ale te dane mo偶na pewnie uratowa膰 przez przypisanie je do innego elementu sesji, na przyk艂ad:
$_SESSION['CLIENT_DATA'] = $_SESSION['CHECKOUT_DATA']; // i po wykonaniu p艂atno艣ci echo 'Dzi臋ki za zakupy, ' . $_SESSION['CLIENT_DATA']['billing_address']['firstname'] . '!';
Codefog - Contao web development
#13
Napisano 14 listopada 2011 - 22:25

Kamilu jeszcze jedno - razem z tymi danymi musz臋 przesy艂a膰 dane "z templatki" czyli kwot臋, nr zamówienia itp. Je艣li umieszczam swój kod php bezpo艣rednio w templatce to mam dost臋p równie偶 do tych danych. Je艣li jednak includuj臋 plik *.php (przez Twój modu艂 "custom module") to do zminnych sesji jak najbardziej mam dost臋p ale do templatkowych ju偶 nie. Chcia艂bym pozosta膰 przy wersji includowania pliku poniewa偶 je艣li wpisz臋 kod na sta艂e powiedzmy w order_details.php to to co tam wpisze pojawi mi si臋 nie tylko we front endzie ale równie偶 w podgl膮dzie zamówie艅 w backendzie w panelu osoby zarz膮dzaj膮cej zamówieniami - widocznie u偶ywaj膮 tej samej templatki 
Podpowiesz jak to obej艣膰?
Dzi臋ki z góry i pozdrawiam

Podpowiesz jak to obej艣膰?
Dzi臋ki z góry i pozdrawiam
#16
Napisano 15 listopada 2011 - 22:53

Pojawi艂 si臋 jeszcze jeden problem - przypisuj臋 sobie
$_SESSION['ORDER_ID'] = $this->order_id;
$_SESSION['KWOTA'] = $this->grandTotal;
bo te dwie zmienne mnie interesuj膮, wywo艂uj臋 je potem tam gdzie potrzbuj臋
I na dzie艅dobry mi tych zmiennych nie przypisuj臋, ale jak od艣wie偶臋 stron臋 "r臋cznie" to s膮 przypisywane poprawnie, tyle tylko 偶e w FX i IE pozosta艂e zmienne s膮 pami臋tane to w Operze zmienne które przypisa艂em wcze艣niej czyli
$_SESSION['CLIENT_DATA'] = $_SESSION['CHECKOUT_DATA'];
s膮 czyszczone.
??
pozdr
$_SESSION['ORDER_ID'] = $this->order_id;
$_SESSION['KWOTA'] = $this->grandTotal;
bo te dwie zmienne mnie interesuj膮, wywo艂uj臋 je potem tam gdzie potrzbuj臋
I na dzie艅dobry mi tych zmiennych nie przypisuj臋, ale jak od艣wie偶臋 stron臋 "r臋cznie" to s膮 przypisywane poprawnie, tyle tylko 偶e w FX i IE pozosta艂e zmienne s膮 pami臋tane to w Operze zmienne które przypisa艂em wcze艣niej czyli
$_SESSION['CLIENT_DATA'] = $_SESSION['CHECKOUT_DATA'];
s膮 czyszczone.
??
pozdr
#17
Napisano 19 listopada 2011 - 08:47

Wiem gdzie le偶y problem.
呕eby usystematyzowa膰 w moim sklepie procesy zachodz膮 nast臋puj膮co:
1. przed ostatecznym potwierdzeniem zakupów z poziomu templatki iso_checkout_order_review przypisuje sobie zmienne do sesji
oraz ju偶 z t膮d mog臋 przypisa膰 kwot臋 do zmiennej sesji:
dzi臋ki temu mam dane u偶ytkownika dokonuj膮cego zakupów oraz z zmiennej przypisan膮 kwot臋 któr膮 spokojnie odczytam w do艂膮czonym pliku
Do pe艂ni szcz臋艣ci brakuje mi tylko jeszcze zapisania do sesji zmiennej numeru zamówienia - order_id, poniewa偶 z tego poziomu ona nie istnieje!!
Numer zamówienia pojawia si臋 dopiero w nast臋pnym kroku czyli po potwierdzeniu zamówienia z poziomu mod_iso_orderdetails i dlatego nie mam do niego dost臋pu w pierwszym kroku. Dlatego te偶 pojawi艂 si臋 problem z tym od艣wie偶aniem r臋cznym o którym pisa艂em w poprzednim po艣cie.
Jakie rozwi膮zanie? Nie wiem - poniewa偶 musz臋 z poziomu jednej strony - mod_iso_orderdetails (bez od艣wie偶ania jej) przypisa膰 zmienn膮 order_id coby by艂a widoczna w do艂膮czanym pliku.
W tym momencie na sta艂e do templatki dopinam plik php wi臋c dost臋p do zmiennych mam od r臋ki, ale rozwi膮zanie takie nie jest dobre poniewa偶 jak pisa艂em wy偶ej frontend i backend u偶ywa tych samych templatek i w panelu po stronie zamówie艅 wszystkie te operacje wyst臋puj膮 równie偶.
Rozwi膮zaniem by艂oby mo偶e rozró偶nianie czy tempatka jest wy艣wietlana we frontendzie czy w panelu w backendzie, ale czy jest to mo偶liwe??
Prosz臋 o jakie艣 podpowiedzi
呕eby usystematyzowa膰 w moim sklepie procesy zachodz膮 nast臋puj膮co:
1. przed ostatecznym potwierdzeniem zakupów z poziomu templatki iso_checkout_order_review przypisuje sobie zmienne do sesji
$_SESSION['CLIENT_DATA'] = $_SESSION['CHECKOUT_DATA'];tak abym mia艂 pó藕niej dost臋p do danych klienta dokonuj膮cego zakupy
oraz ju偶 z t膮d mog臋 przypisa膰 kwot臋 do zmiennej sesji:
$_SESSION['KWOTA'] = $this->grandTotalPrice;pozwalaj膮c膮 mi na operacje na sumie zamówienia w pó藕niejszym etapie (która z tego poziomu jest przypisana w艂a艣nie jako grandotalprice a nie jak w nast臋pnym kroku grandtotal - tu by艂 mój pierwszy b艂膮d)
dzi臋ki temu mam dane u偶ytkownika dokonuj膮cego zakupów oraz z zmiennej przypisan膮 kwot臋 któr膮 spokojnie odczytam w do艂膮czonym pliku
Do pe艂ni szcz臋艣ci brakuje mi tylko jeszcze zapisania do sesji zmiennej numeru zamówienia - order_id, poniewa偶 z tego poziomu ona nie istnieje!!
Numer zamówienia pojawia si臋 dopiero w nast臋pnym kroku czyli po potwierdzeniu zamówienia z poziomu mod_iso_orderdetails i dlatego nie mam do niego dost臋pu w pierwszym kroku. Dlatego te偶 pojawi艂 si臋 problem z tym od艣wie偶aniem r臋cznym o którym pisa艂em w poprzednim po艣cie.
Jakie rozwi膮zanie? Nie wiem - poniewa偶 musz臋 z poziomu jednej strony - mod_iso_orderdetails (bez od艣wie偶ania jej) przypisa膰 zmienn膮 order_id coby by艂a widoczna w do艂膮czanym pliku.
W tym momencie na sta艂e do templatki dopinam plik php wi臋c dost臋p do zmiennych mam od r臋ki, ale rozwi膮zanie takie nie jest dobre poniewa偶 jak pisa艂em wy偶ej frontend i backend u偶ywa tych samych templatek i w panelu po stronie zamówie艅 wszystkie te operacje wyst臋puj膮 równie偶.
Rozwi膮zaniem by艂oby mo偶e rozró偶nianie czy tempatka jest wy艣wietlana we frontendzie czy w panelu w backendzie, ale czy jest to mo偶liwe??
Prosz臋 o jakie艣 podpowiedzi
U偶ytkownicy przegl膮daj膮cy ten temat: 1
0 u偶ytkownik贸w, 1 go艣ci, 0 anonimowych u偶ytkownik贸w