perplexor 0 Опубликовано 8 января, 2010 Жалоба Share Опубликовано 8 января, 2010 возникла потребность отклонировать разные модули доставки ( zones и russianpostpf) в нескольких экземплярах, чтоб они при работе никак не влияли друг на друга. Как это правильно сделать, где и что на что менять? В них же тьма тьмущая всяких переменных, констант, функций и прочего, вдруг что пойдет не так? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 января, 2010 Жалоба Share Опубликовано 8 января, 2010 Примерно так - http://vamshop.ru/faq.php/faq_id/48/question/Kak-sdelat-kopiyu--klon--modulya-dostavki- Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 8 января, 2010 Автор Жалоба Share Опубликовано 8 января, 2010 а названия классов менять не надо? к примеру в магазине по умолчанию уже стоят два модуля, по сути - клоны, только немного изменен код в них. это russianpostpf и russianpostprepay. И в них, к примеру есть такой код: class russianpostprepay extends russianpost{ var $code, $title, $description, $enabled; function russianpostprepay() { $this->code = 'russianpostprepay'; $this->title = MODULE_SHIPPING_RUSSIANPOSTPREPAY_TEXT_TITLE_PREPAY; $this->description = MODULE_SHIPPING_RUSSIANPOSTPREPAY_TEXT_DESCRIPTION_PREPAY; $this->sort_order = MODULE_SHIPPING_RUSSIANPOSTPREPAY_SORT_ORDER_PREPAY; $this->icon = ''; $this->tax_class = MODULE_SHIPPING_RUSSIANPOSTPREPAY_TAX_CLASS; $this->enabled = ((MODULE_SHIPPING_RUSSIANPOSTPREPAY_PARCEL_STATUS == 'True' || MODULE_SHIPPING_RUSSIANPOSTPREPAY_WRAPPER_STATUS == 'True') ? true : false);[/code] [code]class russianpostpf extends russianpostt{ var $code, $title, $description, $enabled; function russianpostpf() { $this->code = 'russianpostpf'; $this->title = MODULE_SHIPPING_RUSSIANPOSTPREPAY_TEXT_TITLE_PF; $this->description = MODULE_SHIPPING_RUSSIANPOSTPREPAY_TEXT_DESCRIPTION_PF; $this->sort_order = MODULE_SHIPPING_RUSSIANPOSTPREPAY_SORT_ORDER_PF; $this->icon = DIR_WS_ICONS . 'shipping_firstpost.gif'; $this->tax_class = MODULE_SHIPPING_RUSSIANPOSTPREPAY_TAX_CLASS_PF; $this->enabled = ((MODULE_SHIPPING_RUSSIANPOSTPREPAY_PARCEL_STATUS_PF == 'True' || MODULE_SHIPPING_RUSSIANPOSTPREPAY_WRAPPER_STATUS_PF == 'True') ? true : false); как видно, есть отличия в названиях. Они на что нибудь влияют? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 января, 2010 Жалоба Share Опубликовано 8 января, 2010 Надо конечно. Менять название класса, name Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 8 января, 2010 Автор Жалоба Share Опубликовано 8 января, 2010 ничего не вышло. Сначала просто не появлялся в списке модулей, а когда поменял название класса, то список модулей стал грузится только до середины взял за основу модуль modules/shipping/russianpostpf.php во-первых, заменил в нём все _RUSSIANPOSTPREPAY_ на _RUSSIANPOSTPARCEL_ то же проделал и с языковым файлом. Затем, в начале файла заменил название класса class russianpostt{ var $code, $title, $description, $enabled, $settings;[/code] на [code]class russianpostp{ и ближе к концу файла (строка 470) заменил class russianpostpf extends russianpostt{ var $code, $title, $description, $enabled; function russianpostpf() { $this->code = 'russianpostpf';[/code]наclass russianpostpar extends russianpostp{ var $code, $title, $description, $enabled; function russianpostpar() { $this->code = 'russianpostpar'; не помогло. НУ а когда обратно поменял extends russianpostp на extends russianpostt , вообще список модулей перестал загружаться (точнее, прекращалось всё на курьерской доставке) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 января, 2010 Жалоба Share Опубликовано 8 января, 2010 Начните с простого модуля, например flat.php Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения