Comments 4
Наконец-то появился первый пост на хабре о модулях для магенты! Очень рад :)
У меня несколько комментариев:
— не всегда обязательно делать свой модуль, в вашем случае, например, достаточно продублировать структуру папок app/code/core/Mage/Core/Model/ в app/code/local/Mage/Core/Model/ — магента сама подключит модель
— «На этом, собственно, все. Обновив страницу магазина...» — не забываем про кэш (в большинстве случаев приходится его чистить), у меня при разработке всегда выключен
— если модуль содержит админовский функционал (конфиг, например), то при включении/выключении модуля необходимо перелогиниться админом, т.к. магента хранит в сессии параметры установленных модулей
— очень некрасиво хардкодить «руб» в модель (как на счет кодировки вашего php-файла? utf/ansi? )
— ну и название поста не совсем корректно, вы не изменяли магенту, вы ее расширяли (extends)
У меня несколько комментариев:
— не всегда обязательно делать свой модуль, в вашем случае, например, достаточно продублировать структуру папок app/code/core/Mage/Core/Model/ в app/code/local/Mage/Core/Model/ — магента сама подключит модель
— «На этом, собственно, все. Обновив страницу магазина...» — не забываем про кэш (в большинстве случаев приходится его чистить), у меня при разработке всегда выключен
— если модуль содержит админовский функционал (конфиг, например), то при включении/выключении модуля необходимо перелогиниться админом, т.к. магента хранит в сессии параметры установленных модулей
— очень некрасиво хардкодить «руб» в модель (как на счет кодировки вашего php-файла? utf/ansi? )
— ну и название поста не совсем корректно, вы не изменяли магенту, вы ее расширяли (extends)
+2
Согласен со всем вышеприведенным.
Про кэш, каюсь, забыл упомянуть — т.к. во время разработки он и у меня выключен.
Про хардкодинг, опять же, не могу не согласиться, но другого решения не нашел и не смог придумать. Как вариант, можно вообще убрать проверку, но это плохо скажется на многовалютных магазинах. Кодировка — utf.
О возможности простого дублирования структуры — не знал, спасибо!
А вообще, основной целью было показать на элементарном примере то, насколько просто изменить базовую функциональность и дописать свою.
Про кэш, каюсь, забыл упомянуть — т.к. во время разработки он и у меня выключен.
Про хардкодинг, опять же, не могу не согласиться, но другого решения не нашел и не смог придумать. Как вариант, можно вообще убрать проверку, но это плохо скажется на многовалютных магазинах. Кодировка — utf.
О возможности простого дублирования структуры — не знал, спасибо!
А вообще, основной целью было показать на элементарном примере то, насколько просто изменить базовую функциональность и дописать свою.
+2
порылся с валютами, нашел корректную замену вашему preg_match(руб)
if ($this->getCurrentCurrencyCode() == 'RUB')… дальше по тексту…
таким образом вы не будете привязаны к локализации
соответственно, для белорусских рублей, например, код валюты BYR
if ($this->getCurrentCurrencyCode() == 'RUB')… дальше по тексту…
таким образом вы не будете привязаны к локализации
соответственно, для белорусских рублей, например, код валюты BYR
+1
ну и еще более красивый вариант — повесить observer на евент core_locale_set_locale
config.xml:
app/code/local/Mycompany/Mymodule/Model/Observer.php:
config.xml:
<frontend> <events> <core_locale_set_locale> <observers> <mycompany_mymodule_locale_observer> <type>singleton</type> <class>mymodule/observer</class> <method>currencyPrecision</method> </mycompany_mymodule_locale_observer> </observers> </core_locale_set_locale> </events> </frontend>
app/code/local/Mycompany/Mymodule/Model/Observer.php:
class Mycompany_Mymodule_Model_Observer extends Mage_Core_Model_Abstract { public function currencyPrecision(Varien_Event_Observer $observer) { $observer->getLocale()->currency('RUB')->setFormat(array('precision'=>0)); $observer->getLocale()->currency('BYR')->setFormat(array('precision'=>0)); } }
+1
Sign up to leave a comment.
Как я Magento изменял, или Меняем базовый функционал на простом примере