Joomla - Virtuemart - zjištění umístění scriptů a proměnných pro modifikaci

Pokud jste něco jako "vývojář", tak se ve Virtuemartu neobejdete bez modifikace zdrojových kódů scriptů. Začátečníci mají ale obrovský problém s tím, kde najít správný script (virtuemart má stovky souborů v různých adresářích). Naštěstí jsou k dispozici možnosti, jak se v tom zorientovat...

1. Ladění obchodu

První a téměř nejdůležitější pomocník je zapnutí ladění obchodu. To se zapíná v komponentě Viruemart v administraci > Nastavení Virtuemart. Doporučuji ji zapnout i s volbou omezení na Vaši IP adresu, aby výsledek neviděli normální uživatelé webu.

Co to způsobí? Při zapnutém ladění se při spuštění obchodu u každého scriptu zobrazí ikonka, na kterou najedete myší a vypíše Vám to celou cestu a název příslušného scriptu! Pak už stačí pomocí vhodného FTP (používám Filezillu) a textového editoru (používám PsPad) příslušný script zmodifikovat.

příklad: nastavení defaultních velikostí pro obrázky produktů

Například mám od zákazníka požadavek modifikovat nastavení velikosti hlavních obrázků pro produkty ve virtuemart (ve verzi 1.1.9). V administraci obchodu nic takového není (je zde jen nastavení velikosti náhledů, ale ne nastavení velikosti velkých obrázků). To je defaultně nastaveno na 500 x 500 (mezní rozměr), což je v drtivé většině v dnešní době málo. Ale kde se sakra definuje těch 500px šířka a 500px výška?

Řešení nám pomůže najít právě ladění. Ono totiž funguje i v hlavní administraci (backend). Takže si stačí otevřít příslušnou stránku pro modifikaci nebo vložení souborů pro produkt a při zapnutém ladění okamžitě zjistíme, který script je za tento formulář zodpovědný. Je to...

/administrator/components/com_virtuemart/html/product.file_form.php

...a v něm zjistíme, že ty základní hodnoty 500 jsou vloženy přímo v html kódu

<?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_HEIGHT');?>: <input type="text" name="fullimage_height" value="500" class="inputbox" />&nbsp;&nbsp;&nbsp;
<?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_WIDTH');?>: <input type="text" name="fullimage_width" value="500" class="inputbox" /></div>

takže zmodifikujeme value="nase spravna hodnota"... a je to.

Samozřejmě je chyba VM, že jsou tyto hodnoty definovány takto, ale třeba to nová verze už odstraní.

2. Referenční popis Virtuemart

Nicméně občas ani zapnuté ladění nepomůže. Například v kódu můžeme objevit něco jako

<?php echo $product_price;?>

a jsme v troubě. Co to je $product_price a kde ho mám najít? Naštěstí jsem objevil tuhle stránku:

http://virtuemart.net/documentation/phpxref/nav.html?_functions/index.html

a tam je vše. Popsáno, kde se daná proměnná, funkce nebo třída definuje. Dokonce je tu i vyhledávač.

 

Jmenuji se Radek Pelikán, bydlím v Ledči nad Sázavou. Mám 3 krásné děti.

Mezi mé velké koníčky patří desková hra Go a nově jsem začal cvičit Kendó v Ledči nad Sázavou.