Přihlásit se

Joomla 5.2.2 Security & Bugfix Release

Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.

Košík - motivator k nákupu

17. lis 2018 00:24 - 17. lis 2018 00:26 #137764
Odpověď od Ernst
Joomla Expert
Ještě jsem se hecnul a udělal to i těmi jazykovými proměnnými. A navíc díky Houbákovi to je udělaný tak, že se po upgrade nebo reinstalaci virtuemart nemusí nic opravovat.

/templates/xxxxxx/html/mod_virtuemart_cart/default.php si doplnit
Code:
<?php vmJsApi::removeJScript("/modules/mod_virtuemart_cart/assets/js/update_cart.js"); vmJsApi::addJScript("/modules/mod_virtuemart_cart/assets/js/update_cart_new.js",false,false); JText::script('MYCART_PRIDEJ'); JText::script('MYCART_NAD_5000'); JText::script('MYCART_MENA'); JText::script('MYCART_ZDARMA'); $celkem = floatval(preg_replace(array("/[^0-9,.]/","/[.,]/"), array("","."), $data->billTotal)); ?> <span class="motivator"> <?php if ($celkem <= 0.0001) { ?> <span class="zmenatextu" style="animation: blinker 2s linear infinite;"><?php echo JText::_( 'MYCART_NAD_5000'); ?></span> <?php } elseif ($celkem < 5000) { ?> <span class="zmenatextu" style="animation: blinker 2s linear infinite;"><?php echo JText::_( 'MYCART_PRIDEJ') .' '. (5000 - ($celkem)).' '.JText::_( 'MYCART_MENA') ?> </span> <?php } else { ?> <span class="zmenatextu" style="font-weight: 700; color: #109d16;"><?php echo JText::_( 'MYCART_ZDARMA'); ?></span> <?php } ?> </span>
Kód
Code:
vmJsApi::removeJScript("/modules/mod_virtuemart_cart/assets/js/update_cart.js"); vmJsApi::addJScript("/modules/mod_virtuemart_cart/assets/js/update_cart_new.js",false,false);
zajistí že se nepracuje s update_cart.js ale s update_cart_new.js, která se nepřepíše.
Navíc ji můžete dát třeba do šablony /templates/xxxxxx/html/mod_virtuemart_cart/ nebo někam do /media

V /modules/mod_virtuemart_cart/assets/js/ si vytvořte kopii update_cart.js a nazvěte ji update_cart_new.js.
Tu pak upravte:
Code:
$(module).find(".show_cart").html( datas.cart_show); $(module).find(".total_products").html( datas.totalProductTxt); $(module).find(".total").html( datas.billTotal); var hodnota = datas.billTotal; var celkem = hodnota.replace(/[^0-9,.]/g,""); celkem = celkem.replace(/[,.]/g,"."); if (celkem.length=0) {celkem=0} else {parseFloat(celkem);} if (celkem <= 0.0001) { mujtext = Joomla.JText._( 'MYCART_NAD_5000');} else if (celkem < 5000) { mujtext= (Joomla.JText._( 'MYCART_PRIDEJ') + ' ' + (5000 - celkem) + ' ' + Joomla.JText._( 'MYCART_MENA'));} else { mujtext= ( Joomla.JText._( 'MYCART_ZDARMA'));} $(module).find(".zmenatextu").html(mujtext);
Ještě si doplňte do /ernst2.8u.cz/web/language/overrides/cs-CZ.override.ini a en-GB.override.ini
Code:
MYCART_ZDARMA="Vaše objednávka bude dopravena zdarma!" MYCART_MENA="Kč" MYCART_PRIDEJ="Chcete dopravu zdarma? Přidejte ještě zboží za:" MYCART_NAD_5000="Při objednávce nad 5000,- je doprava zdarma!"
texty si samozřejmě zadejte dle sebe a případně i v dalších jazykových mutacích.

Tím to je řešení konečné a univerzální, odolné vůči upgradům.

17. lis 2018 01:59 #137766
Odpověď od Rudolf
Joomla Expert
Tak vidíte, konečně to začíná mít hlavu a patu :)

Co se týká komponenty a modulu, vycházeli jsme od konceptu firmy idealconception.com pro J1.5 a 2.5, bohužel tento web již není dostupný. Ve verzi pro J1.5 to bylo bez ajaxu, ve verzi pro J25 to již obsahovalo Ajax.

Každopádně to řešení jsme přeprogramovali do J3 a zůstalo nám.

A máte to hezky vyřešené, ještě vám chybí administrace pro nastavení jazykových konstant pro každý jazyk (language file Vám nepomůže, u multijazyčného a multiměnového eshopu musíte zajistit závislost země, jazyku a měny, která ve VM není)

Prostě máte pochvalu a pro první a pro použití natvrdo to stačí.
Pro automatické nasazování na eshopy to chce dopilovat, odladit v případě že používáte OPC a je třeba vyřešit konflikty v ajaxu s OPC a další, ale už jenom drobné úpravy :)


Řeknu Václavovi, že mu tady vzniká konkurence v programování :)

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

17. lis 2018 03:29 #137768
Odpověď od marvays
Návštěvník
Tak jsem to nainstaloval. Nejsem si jistý, jestli to funguje přesně tak, jak si zamýšlel. Hodim ti do mailu odkaz na vyzkoušení.

17. lis 2018 10:04 - 18. lis 2018 20:14 #137770
Odpověď od Ernst
Joomla Expert

Rudolf Baláš napsal: Tak vidíte, konečně to začíná mít hlavu a patu :)

Prostě máte pochvalu a pro první a pro použití natvrdo to stačí.
Pro automatické nasazování na eshopy to chce dopilovat, odladit v případě že používáte OPC a je třeba vyřešit konflikty v ajaxu s OPC a další, ale už jenom drobné úpravy :)

Řeknu Václavovi, že mu tady vzniká konkurence v programování :)

Díky za pochvalu, ale konkurence nikomu nevzniká v js jsem spíše začátečník.

S OPC to běhá a nemá to žádný konflikt, testoval jsem.

A máte to hezky vyřešené, ještě vám chybí administrace pro nastavení jazykových konstant pro každý jazyk (language file Vám nepomůže, u multijazyčného a multiměnového eshopu musíte zajistit závislost země, jazyku a měny, která ve VM není)

To je mi jasný, ale v týhle fázi to řešit nechci. Je to míněno pro vícejazyčný web ne pro multiměnový VM.

Měním teď prochu program a prvně napíšu článek o motivátoru, pak o CSS :)
Pokud má někdo zájem, hodil jsem řešení na jeden svůj testovací web, pozor není eshop nijak stylizován a doladěn, je to jen pro ilustraci toho košíku - vmmotivator.8u.cz/index.php/eshop
Poděkovali: Linelabcz

18. lis 2018 10:01 #137774
Odpověď od Linelabcz
Admin
Díky za skvělý článek Ernste a návod, jak přidat zajímavou funkci do Virtuemart. :)

18. lis 2018 15:55 - 18. lis 2018 15:55 #137780
Odpověď od Ernst
Joomla Expert
mám prosbu na admina. Pro testování je to teď na vmmotivator.8u.cz/index.php/eshop

můžeš mi to v tom předchozím příspěvku změnit?

Powered by Fórum