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" />
<?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č.