Nová verze Joomla 5.1.4
Dnes byla uvolněna nová verze Joomla 5.1.4, společně s Joomla 4.4.8. Tato verze přináší spoustu nových funkcí, vylepšení v oblasti bezpečnosti a kódu a díky těmto vylepšením i vyšší rychlost.
Phoca Cart Modul - getTotal
23. pro 2020 03:51 - 23. pro 2020 04:32 #143425
se mění dynamicky pomocí ajaxu
Jak změním dynamicky po přidání do košíku také hodnotu celkové ceny?
Zkoušel jsem to dát do <div id="phItemCartBoxTotal">, ale nebere to.
Potřeboval bych najít kde se ten ajax provádí aby se mi ajaxem měnila i celková cena v template modulu Cart.
P.S.
Asi to bude v controlleru checkout.json.php ve funkci add....
P.S.2
Proč to vůbcc vzniko:
Zkoušel jsem samozřejmě jako první zobrazit
Ale to mi hlásí chybu:
Notice: Array to string conversion in templates/moje_sablona/html/mod_phocacart_cart/default.php on line 18
MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Code:
<?php echo $cart->getCartCountItems(); ?>
se mění dynamicky pomocí ajaxu
Jak změním dynamicky po přidání do košíku také hodnotu celkové ceny?
Code:
$total = $cart->getTotal();
$total = $total[0]['brutto'];
$price = new PhocacartPrice();
echo $price->getPriceFormat($total);
Zkoušel jsem to dát do <div id="phItemCartBoxTotal">, ale nebere to.
Potřeboval bych najít kde se ten ajax provádí aby se mi ajaxem měnila i celková cena v template modulu Cart.
P.S.
Asi to bude v controlleru checkout.json.php ve funkci add....
P.S.2
Proč to vůbcc vzniko:
Zkoušel jsem samozřejmě jako první zobrazit
Code:
<div id="phItemCartBoxTotal"><?php echo $cart->getCartTotalItems(); ?></div>
Ale to mi hlásí chybu:
Notice: Array to string conversion in templates/moje_sablona/html/mod_phocacart_cart/default.php on line 18
MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
23. pro 2020 21:57 - 23. pro 2020 22:09 #143436
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Odpověď od H13
Admin
Ahoj, dívám se tam a jsou tam ještě zastaralý informace v komentářích
Tohle je OK
u $cart->getCartTotalItems(); dostaneš
protože je to pole a je tam kompletní kalkulace, tedy:
- total základní
- total po věrnostních bodech
- total po slevách na produkty
- total po slevách na celý košík
- total po kupónech
úplně konečnej total je vždy v poli 0 (pro případné budoucí rozšíření se může pole rozšiřovat, takže poslední total je 0, aby už navždy nebyl změněnej)
A teď k tomu hlavnímu, k AJAXu, v komentářích ještě zůstala stará informace o ID, ID se změnilo kvůli možnosti mít více instancí na stránce na třídu, tedy dynamicky změněnej total se pak načítá do:
nikoliv do:
Tady ale v kontextu s tvým předchozím příspěvkem ale narazíme na problém, protože total příjde z ajaxu a tedy nedá se jeho formát nastavit v template override.
Možnost by byla udělat template override pro total, ale to už by byla celkem hodně komplikovaná záležitost (z hlediska přehlednosti).
Tohle je OK
$total = $cart->getTotal();
$total = $total[0];
$price = new PhocacartPrice();
echo $price->getPriceFormat($total);
u $cart->getCartTotalItems(); dostaneš
Code:
Notice: Array to string conversion in templates/moje_sablona/html/mod_phocacart_cart/default.php on line 18
protože je to pole a je tam kompletní kalkulace, tedy:
- total základní
- total po věrnostních bodech
- total po slevách na produkty
- total po slevách na celý košík
- total po kupónech
úplně konečnej total je vždy v poli 0 (pro případné budoucí rozšíření se může pole rozšiřovat, takže poslední total je 0, aby už navždy nebyl změněnej)
A teď k tomu hlavnímu, k AJAXu, v komentářích ještě zůstala stará informace o ID, ID se změnilo kvůli možnosti mít více instancí na stránce na třídu, tedy dynamicky změněnej total se pak načítá do:
Code:
<div class="phItemCartBoxTotal"></div>
nikoliv do:
Code:
<div id="phItemCartBoxTotal"></div>
Tady ale v kontextu s tvým předchozím příspěvkem ale narazíme na problém, protože total příjde z ajaxu a tedy nedá se jeho formát nastavit v template override.
Možnost by byla udělat template override pro total, ale to už by byla celkem hodně komplikovaná záležitost (z hlediska přehlednosti).
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Poděkovali: Rudolf
23. pro 2020 22:31 #143437
MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Odpověď od Rudolf
Joomla Expert
Super, díky...
Takže moje prosba o přidání nového parametru pro počet desetinných míst ve funkci getPriceFormat dostává nový rozměr
Tady ale v kontextu s tvým předchozím příspěvkem ale narazíme na problém, protože total příjde z ajaxu a tedy nedá se jeho formát nastavit v template override.
Takže moje prosba o přidání nového parametru pro počet desetinných míst ve funkci getPriceFormat dostává nový rozměr
MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
23. pro 2020 23:52 - 23. pro 2020 23:59 #143440
Ono to není přímo v té funkci.
Takhle to fungovovalo:
1) při inicializaci proměnné $price (new PhocacartPrice) se načetlo nastavení z měny, mimo jiné i o počtu desetinný míst
2) pak s provedl ten formát přes gePriceFormat
ve 3.5.5 jsem přidal settery, takže mezi 1) a 2) můžeš vstoupit pomocí setteru, např. setPriceDecimals a toto změnit.
Toto můžež např. udělat v template override pro košík, jenže tady se bavíme o AJAXU, kterej zpět posílá počet položek a výslednou celkovou částku a tyto dvě položky nemají override (protože se v podstatě jedná jen o dvě čísla):
jen pro zajímavost:
count: počet položek v košíku
item: ajaxem dynamicky změněný košík (lze změnit přes template override)
popup: ajaxem dynamicky vytvořený popup (lze změint přes template override)
status: informace o provedení ajaxu
total: celková částka (nezle změnit v template override)
Tedy, v tvém případě, pokud v košíku nechceš desetinné čárky, pak si to přes template override změníš (viz www.joomlaportal.cz/forum/phoca-cart/123...etpriceformat#143435 ) a budeš mít částky bez desetinné čárky, ale celkovou částku, kterou dostaneš ajaxem, pak nezměníš, ta override nemá - takže ti příjde částka z ajaxu s desetinnejma čárkama (ale nemyslím do celýho košíku, jen do ).
Řešením by mohlo být vytvoření layoutu:
cart_total.php
kterej by se renderoval to ajax requestu, tím pádem by jsi mohl i ovlivnit částku, která se dynamicky mění ajaxem
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Odpověď od H13
Admin
Takže moje prosba o přidání nového parametru pro počet desetinných míst ve funkci getPriceFormat dostává nový rozměr
Ono to není přímo v té funkci.
Takhle to fungovovalo:
1) při inicializaci proměnné $price (new PhocacartPrice) se načetlo nastavení z měny, mimo jiné i o počtu desetinný míst
2) pak s provedl ten formát přes gePriceFormat
ve 3.5.5 jsem přidal settery, takže mezi 1) a 2) můžeš vstoupit pomocí setteru, např. setPriceDecimals a toto změnit.
Toto můžež např. udělat v template override pro košík, jenže tady se bavíme o AJAXU, kterej zpět posílá počet položek a výslednou celkovou částku a tyto dvě položky nemají override (protože se v podstatě jedná jen o dvě čísla):
jen pro zajímavost:
count: počet položek v košíku
item: ajaxem dynamicky změněný košík (lze změnit přes template override)
popup: ajaxem dynamicky vytvořený popup (lze změint přes template override)
status: informace o provedení ajaxu
total: celková částka (nezle změnit v template override)
Tedy, v tvém případě, pokud v košíku nechceš desetinné čárky, pak si to přes template override změníš (viz www.joomlaportal.cz/forum/phoca-cart/123...etpriceformat#143435 ) a budeš mít částky bez desetinné čárky, ale celkovou částku, kterou dostaneš ajaxem, pak nezměníš, ta override nemá - takže ti příjde částka z ajaxu s desetinnejma čárkama (ale nemyslím do celýho košíku, jen do ).
Řešením by mohlo být vytvoření layoutu:
cart_total.php
kterej by se renderoval to ajax requestu, tím pádem by jsi mohl i ovlivnit částku, která se dynamicky mění ajaxem
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
24. pro 2020 00:37 #143441
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Odpověď od H13
Admin
Aby jsme to neprotahovali, ve verzi 3.5.5 stable přibude novej layout soubor: cart_total.php
Takže v tvým případě stejně jako obsah košíku budeš moct přepsat in částku total v ajaxu:
Code:
defined('_JEXEC') or die();
$d = $displayData;
$price = new PhocacartPrice();
if (isset($d['total'][0]['brutto'])) {
echo $price->getPriceFormat($d['total'][0]['brutto']);
}
Takže v tvým případě stejně jako obsah košíku budeš moct přepsat in částku total v ajaxu:
Code:
defined('_JEXEC') or die();
$d = $displayData;
$price = new PhocacartPrice();
$price->setPriceDecimals(0);
if (isset($d['total'][0]['brutto'])) {
echo $price->getPriceFormat($d['total'][0]['brutto']);
}
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Poděkovali: Rudolf