Přihlásit se

Joomla 5.1.0 a Joomla 4.4.4 (17 dub 2024)

Dnes byla uvolněna nová verze Joomla 5.1.0, společně s Joomla 4.4.4. 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
Phoca Cart Modul - getTotal od Rudolf
Joomla Expert
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
Odpověď od H13
Admin
Ahoj, dívám se tam a jsou tam ještě zastaralý informace v komentářích

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
Odpověď od Rudolf
Joomla Expert
Super, díky...

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
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
Odpověď od H13
Admin
Aby jsme to neprotahovali, ve verzi 3.5.5 stable přibude novej layout soubor: cart_total.php
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

Powered by Fórum