Как "криво" да премахнете показването на копейки от цената в Magento или няколко думи за отменяне
Искам да споделя работещо (макар и, разбира се, донякъде криво) решение, ако е необходимо, да премахна показването на копейки в цените. Още веднъж, той само променя формата на показване, реалните цени не се променят и това не се закръглява - десетите просто се изхвърлят, така че е напълно възможно видимата сума на стойностите на стоките в кошницата да се различава от реалната сума, ако съберете всичко в колона. Това може да бъде избегнато чрез контролиране на липсата на копейки в цените на стоките по време на вноса или ръчни промени в цените.
Трябва да кажа веднага, че всъщност решението не е мое, шпионирах го тук и реших да го съставя правилно.
Когато разработвах интерфейса си за онлайн магазин, бях изправен пред задачата не само да направя правилния дизайн и логика, но и да осигуря безпроблемно надграждане на двигателя до следващите версии, така че изключих редактирането на системните файлове веднага. Въпреки това, Magento предоставя отлични инструменти за разработване на собствени разширения, включително възможността да замените стандартната функционалност със своя собствена. Това ще направим.
И така, трябва да направим следното:
- замени класа, отговорен за показване на форматираната цена;
- създайте модул, който ще съдържа този клас;
- конфигурирайте модула така, че да бъде извикан замененият клас в случаите, в които първоначалният клас е бил активиран преди това;
- активиране на нов модул в системата.
Всички дадени пътища са спрямо директорията, в която е инсталиран Magento.
Както казах, Magento предоставя добри възможности за разработване на собствени модули и разширяване на основната функционалност. Основната част от работния код на системата (с изключение на библиотеки и рамки, въз основа на които е написана) се намира в директорията ап. Ако погледнем вътре, виждаме следното съдържание:
Mage.php - модул, описващ основния клас-център на системата - Mage
код - всички кодове
дизайн - както подсказва името, тук са разположени описанията на дизайна - точно логиката и шаблоните за извеждане на блокове; описанията на директно css-стилове, скриптове и картинки се преместват на отделно място
и т.н. конфигурационни файлове -
локал - файлове с основен език или, с други думи, локализация на изхода; за конкретен интерфейс, локализираният изход може също да бъде частично или напълно предефиниран в описанията на собствения интерфейс в поддиректориите на дизайна.
За тази задача се интересуваме от директорията код. В него виждаме три стандартни папки: ядро - съдържа кода на основните модули на системата, както и общност и местни, които първоначално са празни и са предназначени за инсталиране на модули на трети страни (общност) или за разработени самостоятелно (локално). Всъщност няма разлики между папките, но за удобство ще поставим нашите собствени модули в локалната папка.