И так , как вы уже поняли из названия сегодня мы поговорим как можно добавить для модуля оплаты "Банковский перевод" который идет в стандартной сборке opencart возможность добавлять свой текст с поддержкой форматирования HTML.
В данной инструкции мы привяжем редактор ckeditor к форме инструкции по переводу, добавим отображение html в истории заказа покупателя, в истории заказа для администратора, а так же будем отправлять html код на почту клиента при заказе.
Для того чтобы выполнить нашу задачу нам потребуется изменить всего 5 файлов а именно:
1
2
3
4
5
|
catalog/controller/payment/bank_transfer.php
catalog/controller/account/order.php
admin/controller/sale/order.php
catalog/model/checkout/order.php
admin/view/template/payment/bank_transfer.tpl
|
Ну что же давайте приступим, и сделаем возможность добавления HTML кода для модуля оплаты Банковский перевод.
1. Открываем файл: catalog/controller/payment/bank_transfer.php
Ищем строку:
1
|
$this->data['bank'] = nl2br($this->config->get('bank_transfer_bank_' . $this->config->get('config_language_id')));
|
И заменяем ее на следующий код:
1
|
$this->data['bank'] = html_entity_decode($this->config->get('bank_transfer_bank_' . $this->config->get('config_language_id')));
|
2. Открываем файл: catalog/controller/account/order.php
Ищем строку с кодом:
1
|
'comment' => nl2br($result['comment'])
|
И заменяем ее на:
1
|
'comment' => html_entity_decode($result['comment'])
|
Далее находим строку:
1
|
$this->data['comment'] = nl2br($order_info['comment']);
|
И меняем ее на:
1
|
$this->data['comment'] = html_entity_decode($order_info['comment']);
|
3. Открываем файл: admin/controller/sale/order.php
Находим строку:
1
|
$this->data['comment'] = nl2br($order_info['comment']);
|
И заменяем на:
1
|
$this->data['comment'] = html_entity_decode($order_info['comment']);
|
Далее ищем код:
1
|
'comment' => nl2br($result['comment']),
|
И меняем его на следующий код:
1
|
'comment' => html_entity_decode($result['comment']),
|
Далее опять ищем строку с кодом:
1
|
'comment' => nl2br($order_info['comment'])
|
И заменяем ее на:
1
|
'comment' => html_entity_decode($order_info['comment'])
|
4. Открываем файл: catalog/model/checkout/order.php
Находим строку:
1
|
$template->data['comment'] = nl2br($comment);
|
И меняем ее на:
1
|
$template->data['comment'] = html_entity_decode($comment);
|
Ну вот и все теперь вы можете добавлять инструкции в модуль с поддержкой html.
Но для вашей удобности мы добавим еще для модуля и сам редактор HTML , что бы быстро и просто редактировать текст.
5. Открываем файл: admin/view/template/payment/bank_transfer.tpl
В данном файле мы и подключим наш редактор ckeditor.
И так, идем в самый конец файла и перед:
1
|
<?php echo $footer; ?>
|
Добавляем несколько строчек кода:
1
2
3
4
5
6
7
8
9
10
11
|
<script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script>
<script type="text/javascript"><!--
CKEDITOR.replace('description1', {
filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=d8bc4bf53d75d2b575437a54190efb9a',
filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=d8bc4bf53d75d2b575437a54190efb9a',
filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=d8bc4bf53d75d2b575437a54190efb9a',
filebrowserUploadUrl: 'index.php?route=common/filemanager&token=d8bc4bf53d75d2b575437a54190efb9a',
filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=d8bc4bf53d75d2b575437a54190efb9a',
filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=d8bc4bf53d75d2b575437a54190efb9a'
});
//--></script>
|
Далее в файле ищем строчку с формой ввода инструкции:
1
|
<td><textarea name="bank_transfer_bank_<?php echo $language['language_id']; ?>" cols="80" rows="10"><?php echo isset(${'bank_transfer_bank_' . $language['language_id']}) ? ${'bank_transfer_bank_' . $language['language_id']} : ''; ?></textarea>
|
и заменяем ее на:
1
|
<td><textarea name="bank_transfer_bank_<?php echo $language['language_id']; ?>" cols="80" rows="10" id="description1"><?php echo isset(${'bank_transfer_bank_' . $language['language_id']}) ? ${'bank_transfer_bank_' . $language['language_id']} : ''; ?></textarea>
|
То есть в данной строке мы добавили id="description1" для вызова редактора ckeditor.
Ну вот в принципе и все что вам нужно было сделать чтобы модуль оплаты "Банковский перевод" начал работать с поддержкой HTML кода...
Все вышеуказанные действия проводились на opencart версии 1.5.5.6 но данная инструкция будет работать на всех версиях данной ветки...
Для второй версии Opencart все в принципе тоже самое за исключением нескольких моментов которые зависят от конкретной версии Opencart, сам путь размещения файла немного иной код и.т.д...
6 комментариев
Спасибо! А что делать если несколько языков на сайте? Только один язык с html редактором получается (
Над этим еще не думал, не нужно было.
Если у вас несколько языков на сайте тогда скорей всего придется играть с языковыми переменными, в общем здесь все сложнее.
Извините, удалите, пожалуйста, предыдущий комментарий, код обрезался.
Получилось реализовать заменив description1 на description в admin/view/template/payment/bank_transfer.tpl
и
на
Вдруг кому-то понадобится. Спасибо за туториал!!! Для opencart 2 отлично подошел, только
$this->data в 2 $data
Подправил.
На почту все равно приходят набор тегов html… поможете поправить?
Да, поможем конечно, но за отдельную плату как говорится…
Пришлите запрос на почту
В письме укажите адрес сайта суть проблемы. и доступы к админке и фтп.
В ответ мы отправим Вам реквизиты и стоимость работ.