Az uc katalógusban nem írja ki a kedvezményes árat. A termék tartalomnál viszont kiírja: levendulagyerekcipő
Ezt használom: uc 2.11, uc_discounts_alt 2.4.
Próbáltam ezt: http://drupal.hu/comment/52555#comment-52555, uc_product.module fájlt módosítani a leírtak szerint, cache-t ürítettem nem jött be.
Egy másik megoldás szerint http://drupal.hu/comment/57259#comment-57259: .../sites/all/modules/ubercart/uc_catalog/uc_catalog.module
<?php function theme_uc_catalog_product_grid($products) { ...}
függvényét másoljam be a smink template.php fájljába és ott módosíthatom.
Programozáshoz nem értek, ezért az a kérdésem, mivel bővítsem ezt a függvényt, hogy az uc katalógusban is kiírja a kedvezményes árat, a rendes ár alatt?
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
Ezt találtam
Ezen az oldalon találtam egy megoldást, egy módosított függvényt:
"This solution is working on my website:
(Place it at template.php of your theme)
(For uc 2.4 and uc_discounts_alt 6.x-2.x-dev)
http://drupal.org/node/905368"
Sajnos ezzel sem működik, uc katalógus nem írja ki a kedvezményes árat, cache ürítés után sem.
Lehet azért, mert az én oldalamon már az uc 2.11, uc_discounts_alt 2.4 van?
SimonT
SMINKEDNEVE_uc_catalog_product_grid($products)
Ez a
phptemplate_
kezdetű függvény-override elavult, ne használd.Az általad belinkelt issue-ban az illető a
theme_uc_catalog_product_grid()
függvényt bírálja felül a saját sminkben, de az elavult phptemplate kezdetű függvény-override-ot használja. A
theme
részt a függvény nevében a sminked nevére kellene inkább lecserélni. Például ha a sminked neve "sminkem" (ami magának a theme-nek a könyvtárneve is), akkor ez lesz a függvénynév:sminkem_uc_catalog_product_grid
(atheme_uc_catalog_product_grid
helyett).Az ő kódja alapján írtam le a következőket, én még nem használtam a modult, de remélem, menni fog így távirányítással.
Lépések:
template.php
fájlját nyisd meg a kedvenc egyszerű szövegszerkesztődben (pl. Notepad++)Nem jött össze
Köszönöm az ötletet! Átírtam a smink nevére. Sajnos a katalógusban a kedvezményes ár (discount price) így sem jelenik meg.
Cache ürítés után sem.
Valakinek még ötlete?
SimonT
meghívódik egyáltalán?
Azt kellene megvizsgálnod, hogy egyáltalán végrehajtódik-e a függvény, amit a sminked template.php fájljába másoltál.
Ahogy elnéztem az oldaladon, az async smink egy átdolgozott változata van fent nálad, ha minden igaz (az útvonalak erre utalnak).
Igaz, hogy alsminket létrehozva kellene elvileg módosítani, de gondolom ennek a template.php-jába tetted bele, és ha így történt, akkor
async_uc_catalog_product_grid
lett a függvény neve?
Egy tesztelés erejéig próbáld meg azt, hogy az első sort módosítod:
HELYETT átmenetileg legyen ez a kód:
Látod kiírva a megfelelő helyre azt a szöveget, hogy TESZTBLABLA?
Ha nem, akkor nem hívódik meg a függvényed, és akkor már legalább eggyel beljebb vagyunk, hogy vajon miért nem működik...
Szóval ezt nézd meg, aztán jelezz vissza.
Meghívódik a függvény
Meghívódik a függvény, mivel megjelenik a TESZT szöveg!
Igen, az oldalon az async smink egy átdolgozott változata van fent. Alsminket kellet volna létrehozni, de mikor készült ez az oldal, akkor még ezt nem tudtam.
Közben találtam még valamit itt: http://drupal.org/node/905368#comment-4694998 e hozzászólás szerint:
"I was using this, but when I upgraded to UC Discounts 2.2 it seems to not work anymore? Did something change?"
Vagyis ahogy értelmezem, az uc_discounts_alt 6.x-2.x-dev verzióval működött ez az átdolgozott függvény, de az uc_discount_alt 2.2 - vel már nem. Az én oldalamon a legfrissebb modul van fönn a 2.4-es.
SimonT
debuggolás
Hát akkor nem marad más, mint debuggolni. A Devel modult engedélyezd, és nézegesd végig a kódban az egyes visszatérési értékeket, hogy lásd, melyik feltétel nem teljesül.
Az
if (module_exists('uc_discounts'))
feltételbe nyilván belelép, ha az uc_discounts modul nálad engedélyezve van.
Következő lépés:
na ez már nem olyan egyértelmű, hogy itt vajon a feltételek teljesülnek-e.
A helyedben ezért debuggolgatnám a kódot, például így:
Így a Devel által biztosított dsm() függvénnyel ki tudnád íratni a grid megjelenítésekor, hogy mi a
$discounted_price
változó értéke, ezzel meg tudnád vizsgálni, hogy vajon a feltételvizsgálatnak mi lesz az eredménye.Aztán így tovább.
A következő modulok mind engedélyezve vannak, ugye?
Köszönöm Sk8erPeter!
Köszönöm Sk8erPeter!
Debuggolást még nem csináltam, de telepítem a Devel modult, és jelentkezem, hogy mire jutottam!
A következő modulok engedélyezve vannak:
SimonT
Beillesztettem a kódot amit írtál
Beillesztettem a kódot amit írtál:
Ezt írja ki a katalógus oldalakon:
Sajnos ettől tovább nem tudtam menni, nincs programozói tudásom.
SimonT
Találtam ezt is
Ezt találtam: http://drupal.org/node/466472#comment-1612648
Még egy megoldás, csak nem tudom hova illesszem be.
SimonT
Megvan a megoldás
Megvan a megoldás! Így már működik!
Köszönöm Sk8erPeternek!
Ezt kell bemásolni a smink template.php fájlba: A SAJÁTSMINKNÉV helyett írd be a sminked nevét:
css-el lehet formázni, színezni!
SimonT
SMINKEDNEVE_* nem működik, csak a phptemplate_* ?
Szívesen, ennek örülök, hogy végül sikerült!
Ez érdekes viszont, ezek szerint a korábbi
SMINKEDNEVE_uc_catalog_product_grid
névvel nem ment, csak a
phptemplate_uc_catalog_product_grid
elnevezéssel?
Ez számomra új, nem nagyon értem az okát. :)
Csak mert ahogy elnézem, ugyanaz a kódja, mint amit itt mutattam. :)
Átjavítottam
Igazad van! a phptemplate helyett a saját sminked nevét kell írni!
Kijavítottam! Köszönöm, hogy visszajeleztél!
Tehát: az első sorban:
function SAJÁTSMINKNÉV_uc_catalog_product_grid($products)
Ezt kellett átírni:
$discounted_price = theme("get_discounted_price", $product);
Erre:
$discounted_price = uc_discounts_get_discounted_price_for_product($product);
Ezzel működik.
Itt a jó megoldás!
SimonT
Akkor jó, megnyugodtam :))
Akkor jó, megnyugodtam :))
Nyomtam is rá egy +1-et, értékes találat, másnak is jól jöhet. :)
Még annyi, hogy ez csúf ebben a formában, szóval megformáztam neked ezen az oldalon keresztül:
http://beta.phpformatter.com/
(amúgy is tudom javasolni ezt az oldalt gyors PHP-kódformázásra)
az elejére beírtam a
<?php
sort, meg a "Style" fülön az "Indentation:"-t 2-re állítottam a Drupal-konvencióknak megfelelően (tehát magyarul a behúzás 2 szóköz lesz) és utána csak bekopiztam a Te kódodat:Tényleg örülök, hogy sikerült megoldanunk a problémát.
Köszi!
Köszi! Így tényleg szebb!
SimonT