Polskie wsparcie PrestaShop

PrestaShop => PrestaShop 1.5 => Wątek zaczęty przez: sliw w Styczeń 03, 2014, 06:49:53 pm

Tytuł: smarty a kod afilacyjny
Wiadomość wysłana przez: sliw w Styczeń 03, 2014, 06:49:53 pm
Witam w zwiazku z współpracą z firmą zewnętrzną potrzebuje ze strony potwierdzenia zamówienienia w formie linku iframe przesłać im dane typu id_order oraz sume za zamówienie.
Niestety nie dziala ta opcja której używałem w presta 1.3 - wowczas użyłem sobie 

{php}


global $order;
#var_dump($order);
{/php}

<iframe src="http://...................pl/id_offer=2&adv_sub={$id_order}&amount={php}echo $order->total_paid{/php}" scrolling="no" [size=78%]frameborder="0" width="1" height="1"></iframe>[/size]
[/size][size=78%]Niestety nie dziala mi to w 1.5 czy podpowiecie jak wyciągnąć ze smartów dane ?  [/size]
[/size]Moze pogrzebać z {$HOOK_ORDER_CONFIRMATION}[size=78%]
[/size][size=78%]?? [/size]
[/size][size=78%]z góry dziekuje ....[/size]
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: west w Styczeń 04, 2014, 11:28:47 am
Zobacz zmienne - variables wrzuciłem na tym forum
http://prestashopforum.pl/index.php?topic=11383.0
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: sliw w Styczeń 06, 2014, 02:47:03 pm
dziękuje z tym że zmienne mniej wiecej znam juz ale jak ją wyswietlić w miejscu potrzebnym ( w pliku tpl ) ?

Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: design4VIP w Styczeń 06, 2014, 06:27:07 pm
wyswietlasz {$zmienna} i tutaj pytanie, jaka zmienna chcesz uzyskac.

w twojej linijce linka masz blednie 'amount={php}echo $order->total_paid{/php}' a powinno to wygladac amount={$order->total_paid}" pod warunkiem, ze masz zwrocona globalnie (cache) ta zmienna koszyka. co masz w zmiennych cache mozesz w prosty sposob sprawdzic dump-ujac dana zmienna
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: sliw w Styczeń 06, 2014, 07:44:17 pm
Kude juz mi głupio
aff_l?offer_id=100&adv_sub={$idOrder}


Zmiennej nie zwrócilo, rozumie ze nie ma wywałania globalnej ...
Co moge dać wczesniej aby zwórciło tą zmienną ?



Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: west w Styczeń 06, 2014, 10:22:37 pm
A w ktorym miejscu chcesz dokładnie wyświetlić tą zmienną Jeśli po akceptacji zamówienia [potwierdzeniu płatności] to sprintf=$id_order lub sprintf=$reference musi zadziałać
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: sliw w Styczeń 07, 2014, 01:55:21 pm
staram się go wyświetlić w pliku order_confirmation.tpl dodanie {$idOrder} nie zwróciło nic
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: design4VIP w Styczeń 07, 2014, 02:11:18 pm
sprawdz {$order->id} lub {$order.id} ewentualnie mzoesz dodac '|intval'
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: sliw w Styczeń 07, 2014, 04:29:48 pm
kurcze, coś prostego ale robie błednie :(
W przypadku edycji pliku order-confirmation.tpl dodałem sobie fragent iframe oraz w miejscu gdzie potrzebuje wygenerować w linku nr id zamówienia dalem {$order.id} oraz testowałem z {$order->id} i niestety pusto , nie wyswietla wartości.
ale nie mam w pliku nigdzie teraz tej czesci :
{php}
global $order;
#var_dump($order);
{/php}
poniewaz dodanie samego {php}{/php} wywala mi strne :(

Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: design4VIP w Styczeń 08, 2014, 09:19:55 am
ale po jest smarty i jego zmienne zeby tego uzywac, na cholere uparles sie tego PHP....

skad i po co ta zmianna do 'global'? raz niepotrzebnie, dwa to nie to miejsce, takie rzaczy ustawia sie w kontrolerach, i tam owszem, uzywa sie PHP, raczej trzymaj sie tej zasady, zeby TYLKO tam go uzywac, a przynajniej nie w plikach szablonu TPL. zmienne w smarty dumpujesz przez {$zmienna|var_dump}
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: sliw w Styczeń 08, 2014, 07:36:32 pm

hmm,

dałem dumpa w miejscu wspomnianym i dostałem zwrotkę NULL w tym miejscu :(


Może ja coś robie nie w tym miejscu albo nie w ten sposób...

Czy muszę ją dumpowac ? skoro nic mi wspomniane formy nie wyświetlają mi, może coś te dane blokuje ? Proszę podpowiedz mi jeszcze raz co wrzucić aby zwróciło mi potrzebne zmienne z koszyka ( kwota i id zamowienia)


Ja kurde nie wiem co jest grane ...

Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: design4VIP w Styczeń 08, 2014, 08:19:14 pm
w pierwszej kolejnsoci sprawdz co zwraca zmeinna 'order' czyli {$order|var_dump} jezlei masz NULL to czyli, ze jest pusta wiec sprawdz co masz w cache w analogiczny sposob. jezlei 'order' zwroci tablice to sprawdz w ktorym miejscu (tagu) masz potrzebne dane i je dodaj do zmiennej jak opisuwalem wyzej, najprawdopodobniej bedzie to $order.id oraz dla kwoty $order.total jak dobrze pamietam

sorka, ale nie mam za bardzo czasu zeby samemu sprawdzic co i jak zwraca, musisz sie bawic sam.
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: sliw w Styczeń 08, 2014, 10:05:20 pm
i tu własnie problem
{$order|var_dump} {$cashe|var_dump}
obie zwracają null.........:(
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: design4VIP w Styczeń 09, 2014, 09:41:12 am
po pierwsze nie 'cashe' tylko ' cache', po drugie to nie jest zmienna

jezlei chodzi o same zmienne, ktore zwraca bezposrednio kontroler to masz:
                'id_order' => $this->id_order,
                'reference_order' => $this->reference,
                'id_order_formatted' => sprintf('#%06d', $this->id_order),
                'email' => $this->context->customer->email

czyli za wiele bez modyfikacji kontrolera nie zdzialasz. wiele potrzebnych wartosci mozna by tez wyciagnac z $cart, ale ten przy conformacji jest czyszcony, co jest oczywiste. najprosciej to wrzuc sobie w overide rozszerzenie kontrola orderConfirmation dla funkcji initContent() i dodaj potrzebne zmienne.


albo prosciej, i w sumie tak jak powinno sie to poprawnie zrobic: utworz nowy modul, ktory bedzie zawieral potrzebne dane (w kontlorerze o wiele szybciej je wyciagniesz ze zmiennych globalnych) i automatycznie wysylal tego linka. taki modul umiesc w hook 'displayOrderConfirmation' i masz wszystko zalatwione.
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: sliw w Styczeń 13, 2014, 10:21:46 pm
udalo mi sie to rozwiązac w sposób następujący,
Utworzyłem w kontrolerze dwie nowe zmienne smarty kwota i zamowienie, przypisałem im odpowiednio 'zamowienie' => $this->id_order, oraz 'kwota'=>$params['total_to_pay'] ( w innej funcji ) i zostaly one przeniesione do koniecznego mi miejsca  nie wiem czy to prawidłowe do końca ale narazie dziala

Podziekowania dla deejay3
Tytuł: Odp: smarty a kod afilacyjny
Wiadomość wysłana przez: design4VIP w Styczeń 15, 2014, 09:28:06 am
nie potrzebnie wprowadzales "zamowienie" bo to samo masz juz w zmiennej "id_order", niepotrzebnie odycztuje dwa razy dokladnie to samo. druga, jezeli dziala to czyli, z jest dobrze ;)