Автор Тема: Дублировать модуль "Оплата наличными"  (Прочитано 14792 раз)

01 Март 2014, 15:24:59
  • Фрилансер
  • *
  • Сообщений: 125
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин ювелирных украшений
Здравствуйте, переделал модуль "Оплата наличными 0.4" изменил текст перевода и вставил картинку web-money
а в шаблон письма вставил реквизиты щета - z кошелька, скажите... как вытащить модуль и изменить его так что бы
он был копией но отдельно? К примеру сейчас он как: Оплата наличными на web-money

Хочу на создавать его отдельных копий и изменить всем им названия
Денежный перевод при помощи WesternUnion
Денежный перевод при помощи MoneyGram
Денежный перевод при помощи Unistream и т.д
И создать всем им шаблоны писем. Не поможете с решением этой задачи, очень прошу
Интернет магазин ювелирных украшений - http://web-shopnet.com/
01 Март 2014, 18:16:01
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Копируйте модуль и измените название. Измените название файла php в папке модуля и в этом файле название класса
Старый модуль:
mymodule
- - mymodule.php
- - - -  class MyModule
Новый модуль:
mymodule1
- - mymodule1.php
- - - -  class MyModule1

02 Март 2014, 00:27:01
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 125
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин ювелирных украшений
Насчет темы Намек понял, просто не хотел засорять форум лишними темами.
Итак
Насколько я понял "Оплата наличными" это модуль - cashondelivery?
Назвал его папку mycashondelivery и файл в ней cashondelivery.php изменил на mycashondelivery.php
и в этом-же файле mycashondelivery.php надо изменить класс с CashOnDelivery на MyCashOnDelivery?
Я всё правильно понял? Сделал всё так и толку от этого нет. Тогда я зашел в каждый файл и нашел название
mod='cashondelivery'}</h2>Добавил везде на всякий случай с cashondelivery на mycashondelivery
Всё-ровно результата нет. Ещё изменил эту строку
$this->name = 'mycashondelivery';в файле mycashondelivery.php
Не сработало. Тогда я изменил обратно то что вы не писали изменять и попробывал проставить права
и всё-ровно результата нет. По видимому он продолжает видеть модуль как отражение самого себя
Удалил папку mycashondelivery и создал как вы написали - cashondelivery1
Что посоветуете сделать?
Интернет магазин ювелирных украшений - http://web-shopnet.com/
02 Март 2014, 14:18:37
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1090
  • Репутация: +5/-1
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
А в файлах config.xml    cashondelivery/controllers/front/validation.php    cashondelivery/views/templates/front/validation.tpl
cashondelivery/views/templates/front/confirmation.tpl   cashondelivery/views/templates/front/payment.tpl

А файлы cashondelivery.jpg и cashondelivery.gif
Не боги горшки обжигают, не зачем им такой хренью заниматься.
02 Март 2014, 14:38:22
Ответ #4
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
02 Март 2014, 15:03:56
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Файл config.xml удалить в новом модуле.
Файлы картинок переименовать mycashondelivery.jpg и mycashondelivery.gif.
В файле validation.php именить название класса
class MyCashondeliveryValidationModuleFrontController extends ModuleFrontController
{
В файле mycashondelivery.php изменить класс, название и удалить или изменить переменные конфигурации.
class MyCashOnDelivery extends PaymentModule
{
public function __construct()
{
$this->name = 'mycashondelivery';

                /* Удалить или, если нужно использовать, переменовать*/
$updateConfig = array('PS_OS_CHEQUE', 'PS_OS_PAYMENT', 'PS_OS_PREPARATION', 'PS_OS_SHIPPING', 'PS_OS_CANCELED', 'PS_OS_REFUND', 'PS_OS_ERROR', 'PS_OS_OUTOFSTOCK', 'PS_OS_BANKWIRE', 'PS_OS_PAYPAL', 'PS_OS_WS_PAYMENT');
if (!Configuration::get('PS_OS_PAYMENT'))
foreach ($updateConfig as $u)
if (!Configuration::get($u) && defined('_'.$u.'_'))
Configuration::updateValue($u, constant('_'.$u.'_'));
Во всех файлах, которые находятся в папке модуля, найти cashondelivery и заменить на mycashondelivery.
Если конф.переменные  были измены, то во всех файлах найти и заменить из на новые.
Cоздание интернет сайтов Webstudio UwK
02 Март 2014, 19:32:56
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 125
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин ювелирных украшений
Файл config.xml удалить в новом модуле.
Класс изменил имя файла с cashondelivery.php на mycashondelivery.php тоже.
Не очень понял этот момент с config.xml я его удалил а ниже написано

В файле mycashondelivery.php изменить класс, название и удалить или изменить
переменные конфигурации..

class MyCashOnDelivery extends PaymentModule
{
public function __construct()
{
$this->name = 'mycashondelivery';

                /* Удалить или, если нужно использовать, переменовать*/
$updateConfig = array('PS_OS_CHEQUE', 'PS_OS_PAYMENT', 'PS_OS_PREPARATION', 'PS_OS_SHIPPING', 'PS_OS_CANCELED', 'PS_OS_REFUND', 'PS_OS_ERROR', 'PS_OS_OUTOFSTOCK', 'PS_OS_BANKWIRE', 'PS_OS_PAYPAL', 'PS_OS_WS_PAYMENT');
if (!Configuration::get('PS_OS_PAYMENT'))
foreach ($updateConfig as $u)
if (!Configuration::get($u) && defined('_'.$u.'_'))
Configuration::updateValue($u, constant('_'.$u.'_'));

Во всех файлах, которые находятся в папке модуля, найти cashondelivery и заменить на mycashondelivery.
Если конф.переменные  были измены, то во всех файлах найти и заменить из на новые.

Где именно эти переменные и зачем они нужны без файла config.xml
Не могут ли они потом понадобится если их удалить?
Зачем их оставлять и переименовывать без файла config.xml?
Интернет магазин ювелирных украшений - http://web-shopnet.com/
02 Март 2014, 20:45:12
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
config.xml создается автоматом при установки модуля.
В других файлах используются ссылки на название модуля, поэтому их тоже нужно заменить
В шаблоне payment.tpl
<a href="{$link->getModuleLink('cashondelivery', 'validation', [], true)|escape:'html'}" title="{l s='Pay with cash on delivery (COD)' mod='cashondelivery'}" rel="nofollow">и в других файлах.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
02 Март 2014, 21:34:26
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 125
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин ювелирных украшений
В других файлах используются ссылки на название модуля, поэтому их тоже нужно заменить
В шаблоне payment.tpl
<a href="{$link->getModuleLink('cashondelivery', 'validation', [], true)|escape:'html'}" title="{l s='Pay with cash on delivery (COD)' mod='cashondelivery'}" rel="nofollow">и в других файлах.

payment.tpl имеется введу в приделах модуля? /cashondelivery1/views/templates/hook/payment.tpl ? если да то изменил все
названия cashondelivery на mycashondelivery.

В какой форме можно переименовать переменные? и не нужно ли будет из за этого их переименования ещё что-то править или создавать?
class MyCashOnDelivery extends PaymentModule
{
public function __construct()
{
$this->name = 'mycashondelivery';

                /* Удалить или, если нужно использовать, переменовать*/
$updateConfig = array('PS_OS_CHEQUE', 'PS_OS_PAYMENT', 'PS_OS_PREPARATION', 'PS_OS_SHIPPING', 'PS_OS_CANCELED', 'PS_OS_REFUND', 'PS_OS_ERROR', 'PS_OS_OUTOFSTOCK', 'PS_OS_BANKWIRE', 'PS_OS_PAYPAL', 'PS_OS_WS_PAYMENT');
if (!Configuration::get('PS_OS_PAYMENT'))
foreach ($updateConfig as $u)
if (!Configuration::get($u) && defined('_'.$u.'_'))
Configuration::updateValue($u, constant('_'.$u.'_'));

Интернет магазин ювелирных украшений - http://web-shopnet.com/
02 Март 2014, 22:20:48
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
$updateConfig = array('PS_OS_CHEQUE', 'PS_OS_PAYMENT', 'PS_OS_PREPARATION', 'PS_OS_SHIPPING', 'PS_OS_CANCELED', 'PS_OS_REFUND', 'PS_OS_ERROR', 'PS_OS_OUTOFSTOCK', 'PS_OS_BANKWIRE', 'PS_OS_PAYPAL', 'PS_OS_WS_PAYMENT');
if (!Configuration::get('PS_OS_PAYMENT'))
foreach ($updateConfig as $u)
if (!Configuration::get($u) && defined('_'.$u.'_'))
Configuration::updateValue($u, constant('_'.$u.'_'));
Это удалть можно.  Они уже определены модулем cashondelivery.
02 Март 2014, 23:40:40
Ответ #10
  • Фрилансер
  • *
  • Сообщений: 125
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин ювелирных украшений
Всё сделал, установил правда патом только права выставил, всё вроде корректно установилось
Спасибо всем огромное )) Дай Бог в будущем и свой модулек напишу
по части легких и красивых решений, интересно такая категория есть?!  ::)

Люди и все кто мне помогал если есть у кого понятные для начинающих докУменты для написания
своего модуля для престашопика с описанием библиотек функционала на нашем родном языке,
оставляйте ссылочки, Думаю не только мне будет интересно
Интернет магазин ювелирных украшений - http://web-shopnet.com/
30 Апрель 2014, 13:40:19
Ответ #11
  • Новичок
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нуждаюсь так же в собственном модуле.
Уважаемый, agressora раз уж вы проделали всю эту работу, не поделитесь ли вы готовым результатом?
Спасибо
01 Май 2014, 11:13:24
Ответ #12
  • Фрилансер
  • *
  • Сообщений: 125
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин ювелирных украшений
Проблема в том что мне пришлось всё переустанавливать и всё было потеряно.
В результате установил всё заново и отсюда же буду брать инструкцию как это делать снова.
Здесь всё написано - как это делать, просто я пока не дошел до этого этапа после новой
установки. Совсем скоро начну если будете ждать я отпишу последовательность хотя наверно
вы уже сами сделаете к этому времени
Интернет магазин ювелирных украшений - http://web-shopnet.com/
04 Январь 2016, 19:27:26
Ответ #13
  • Новичок
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Повозился и сделал дубликаты модуля оплаты (CashOnDelivery) кому нужны пишите на почту.
04 Январь 2016, 19:39:15
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Зачем писать если на форуме выкладывали клон этого модуля под названием CashOnDelivery1.
Его скачать и делай клонов сколько хочешь 2,3....