Napok óta küzdök egy problémával. Szeretném, ha az Übercart megjeleníté a rendelésben szereplő termékek képét a rendelési folyamat közben végig. A kosár tartalmát nézve meg is teszi ezt, de a /cart/checkout és a /cart/checkout/review oldalakon már nem. Mivel a szóban forgó áruház egészen konkrétan képeket árul, nagyon fontos lenne, hogy a vevő a vásárlás befejezéséig minden lépésnél lássa a képet, ne csak annak címét.
Áttúrtam a bolt beállításokat amennyire csak lehet és sajnos ilyen lehetőséget sehol nem találtam. Lehetséges, hogy ehhez valamiféle saját modulra lesz szükségem? Csinált valaki már ilyet? Merre induljak? Az uc_cart.module -ban találtam egy ilyet: theme_uc_cart_checkout_review .. de ez meg 'pane' -ekben gondolkodik, maguk a termékek nem is tudom hogyan kerülnek bele.
Nagyon örülnék, ha valaki tudna segíteni, legalább egy kis iránymutatással, mert már kezdek ettől a feladattól begolyózni. Előre is kösz!
honnan indultál el?
Én ilyenkor a hook_menu-ben megnézem, hogy milyen függvény valósítja meg a fent jelzett útvonalakat és onnan oknyomozok, hogy hogyan áll össze a tartalom és hogyan tudok belenyúlni.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
igen, uc_cart_menu volt a kiindulópont
sőt, tőled láttam ezt a trükköt valamikor, már nem emlékszem..
engem a cart/checkout és a cart/checkout/review urlek érdekelnek.
utóbbi callbackjében találtam ezt a végén:
és aztán meg is találtam ezután már ezt:
mi a búbánat ez a $panes? ez valami TAPir cucc? mi ez? gondolta aboros... persze devel dolgai (dev load, dev render) nem is jelennek meg a kérdéses urlen.. :(
most próbálom ezt a sminkfüggvényt darabjaira szedni majd, hogy mi a fene történik itt, de igazából csak annyit szeretnék, hogy a szerencsétlen node title mezője mellett jelenjen már meg a kép is. nagy lenne. és minden szutyok táblázatot lehet állítani a bolt adminisztrációból egyébként, pl ki tudom venni a szóban forgó urlen megjelenő dolgok közül a számlázási címet pl ha akarom (gondolom ez egy $pane). ugyanitt a terméket is ki tudom venni, de csak "egybe" és nincs olyan opció, hogy kép mutatása e vagy sem.
majdcsak találok valami megoldást azért.
talán tényleg a termék egy ilyen "pane" és talán azt ha elkapom, benne van a node id és akkor már nyertem, de ez csak most jutott eszembe, ahogy írtam és mégegyszer végiggondoltam, hogy mi történhet itt.
-
clear: both;
data = pane na abba mit rak a callback
A callback a $data változóba tolja bele a cuccokat (talán pont a kulcs lesz a megoldás kulcsa is. ;))
Szóval a callback mit tol a data-ba?
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
igen
csak a szemleltetes kedveert, hogy miaza a $panes:
$output = theme('uc_cart_checkout_review', $help, $data, $form);
function theme_uc_cart_checkout_review($help, $panes, $form) {
string a data
a cart/checkout/review oldalon a 'kosár tartalma' paneben a data egy string, html táblázatban a termékek neve és azok paraméterei. :(
más panekben (pl szállítási cím) tömbben vannak az adatok.
vagy nem értem a kérdést. :)
-
clear: both;
pedig egyszerű
A kérdés az, hogy a sminkben tudod-e azonosítani valahogy a terméket, tehát a node-id-t visszaszedni, mert akkor betöltheted a node-ot és akkor olyan adatot jelenítesz meg amilyet akarsz. (nem szép, de működő megoldás)
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
nincs node id, se semmi, csak html van
pont ez a bajom. ha tudnám a terméket azonosítani, akkor nem kérdeznék. :)
a theme_cart_review_table azzal kezd, hogy $items = uc_cart_get_contents(); és ott az egyes $itemekben benne van a node id. úgyhogy az már megoldódott, hogy a cart/checkout oldalon megjelennek a termékképek.
viszont nekem a cart/checkout/review oldalon is kellenének a képek, amit pedig a theme_uc_cart_checkout_review -val tudok befolyásolni, de ott már csak $panes van.
azt már nem tudom, hogy az a html adat hogyan kerül abba a panebe, de az egy teljesen összeállított html táblázat már. fogalmam sincs hol állítódik össze. :(
-
clear: both;
szerintem itt kéne nézelődni
Van a cart modulban egy uc_checkout_pane_cart.inc fájl egy theme_cart_review_table függvénnyel amiben az $item tömbben ott leledzik a kép is, alább láthatod módosítva.
igen, igen, de ez fél siker csak.
fent idézett sminkfüggvénnyel meg tudtam csinálni, hogy a cart/checkout oldalon megjelnjenek szépen a termékek képei, viszont a cart/checkout/review oldalra ez már nem hatott, ott megint ezekkel a 'pane' -ekkel szórakozik és a termékeim már csak egy html táblázatként vannak jelen a kapcsolódó sminkfunkcióban ami ez:
na ebben már nincsenek $item -ek, csak $pane -ek vannak és azokban data, de a termékeket tartalmazó pane -ben már renderelt html táblázat van és az istennek nem bírok rájönni, hogy hogyan kerül az oda. :(
-
clear: both;
teljes siker
Van egy uc_cart_checkout_pane.inc fájl is a cart modulban, ennek rögtön az első
uc_checkout_pane_cart();
függvénye kell neked. A 'review' esetén az $items változóban ugyanúgy ott a kép, ahogy az előbbiekben írtam.tökéletes megoldás
szuper, köszi! először arra gondoltam megkérdezem, hogy a fenébe derítetted ezt ki, tán soronként elolvastad az .incet? aztán megnéztem, és rögtön tényleg az elején ott van, hogy
olvashatnék, ha már van szemem. nagyon kösz!
sajnos ez nem egy sminkfüggvény, úgyhogy magába a modulba tudom csak befolyásolni a működést. az utókor számára leírom, így oldottam meg az egész feladatot:
template.php
uc_cart_checkout_pane.inc fileban szereplő azonos nevű eljárást cseréljük erre:
nagyon kösz a segítséget mindenkinek!
-
clear: both;
miért node load?
csak azt nem értem miért node loaddal csinálod, amikor az $item tömbben benne van a termék képe is?
mert szerintem nincs benne
én kiírtam az $item -et print_r -el és abban nem láttam a képet..
megnézem mégegyszer, de ha ott van, akkor tényleg olvasnom kéne inkább gyakorolni. :)
-
clear: both;
igazad van
én tettem bele, mindenesetre egyszerűbb és jobb megoldás is szerintem mint node_loadolni mindig :)
ú, nagyon vasárnap van
most nézem, hogy a leírt megoldás első kódrésze is el van törve középen, nincs meg az egész.. :) kemény hét volt na. :)
-
clear: both;