Как сделать поле модель необязательным opencart

Обновлено: 07.07.2024

Иногда на сайте нужно вывести некоторые дополнительные данные, которых нет в админ панели. Например, добавить новые номера телефона, добавить ссылки на соц сети, вставить в нужном месте время работы магазина и т.д. Для этой задачи можно задать свои настройки. Разберем пример по добавлению собственного поля настройки.

В файле \admin\view\template\setting\setting.twig

в нужном месте создаем копию поля fax, после

input type = "text" name = "config_fax" value = "<< config_fax >>" placeholder = "<< entry_fax >>" id = "input-fax" class = "form-control" / >

вставляем свое поле:

input type = "text" name = "config_val01" value = "<< config_val01 >>" placeholder = "Введите данные" id = "input-val01" class = "form-control" / >

где имя config_val01 — новая переменная, в которой будут хранится данные.

Далее в файле \admin\controller\setting\setting.php

Далее в БД mysql делаем запрос:

INSERT INTO ` oc_setting ` ( ` setting_id ` , ` store_id ` , ` code ` , ` key ` , ` value ` , ` serialized ` ) VALUES ( '20477' , '0' , 'config' , 'config_val01' , '77777' , '0' ) ;

где config_val01 — имя переменной, 77777 — тестовые данные, их затем изменим в админке,

20477 — id поля настроек в админке, смотрим в phpmyadmin таблицу oc_settings, (1) — кликаем 2 раза, сортируем от большего к меньшему, смотрим крайний id, на примере до того, как мы добавили новую запись, крайний id был 20475, поэтому в запросе мы указали 20477 (главное что бы число было больше крайнего id, мы могли бы указать как 20476, так и 20478, 20479 и т.д.)


Переходим в админку, обновляем модификаторы и видим новое поле:


Это поле уже можно изменять, редактировать и оно уже сохраняется в БД. Остается вывести это поле на сайте.

Модуль позволяет избежать обязательного заполнения поля "Модель". В некоторых случаях такое заполнение не требуется, но стандартно в движке данное поле приходится заполнять в обязательном порядке. Представленный инструмент решает эту проблему.

  • 1. В случае если ранее не проводилась загрузка модулей через админ-панель, необходимо инсталлировать бесплатное расширение localcopy.ocmod.xml с соблюдением всех рекомендаций, после чего произвести переустановку
  • 2. Инсталляция может не предусматривать наличие отдельной страницы, следовательно ее не будет в числе модулей
  • 1. Появление данной проблемы во время инсталляции модуля из админ-панели требует загрузки расширения localcopy.ocmod.xml. Устанавливается оно через дополнения, далее нужно провести обновление модификации, что позволит инсталлировать все дополнения в систему.
  • 2. Второй вариант решения данной ошибки предполагает прописывание в админ-панели соответствующих доступов.

Модули, которые содержат только файл с двойным расширением ocmod.xml, заливаются в папку В случае использования архива, не обязательно проводить разархивацию, можно инсталлировать в изначальном виде. В корне должна содержаться пустая или заполненная файлами папка upload, и служебные для установки модификаций. Помимо указанных данных в корневом каталоге архива не должно присутствовать ничего лишнего. Более полную информацию об инсталляции модулей получите здесь.

Возникновение данной ошибки обусловлено отсутствием папки upload. Она непременно должна содержаться в архиве, без исключения для случаев, когда в нем присутствуют только файлы модификации – в этом случае папка будет пустой.

Появление данной ошибки обусловлено попыткой инсталлировать чересчур большой по размерам xml-модификатор. Суммарное число символов должно находиться в пределах 65535. Устранить данную ошибку можно путем разбивки инсталляционного пакета на компоненты, при этом каждый должен иметь собственный уникальный параметр . Для удобства можно использовать цифры 1,2,3. для каждой части соответственно. Другой вариант исправления ошибки состоит в изменении типа в поля, хранящие модификации, в таблице БД с названием 'oc_modification'. Для этого достаточно задать такой SQL-запрос: ALTER TABLE oc_modification CHANGE xml xml MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

Данная ошибка появляется в случае инсталляцию в систему с версией от 2.3.x.x такого модуля, который не совместим с новой версией (когда она устаревает). Для устранения данной ошибки необходимо удалить все данные, относящиеся к данному модулю. Максимально быстро сделать это позволяет модуль ХХХХ Другой причиной появления данной проблемы является обращение скрипта к таблице БД, которой не существует. Чаще всего это возникает в том случае, если при инсталляции таблица не была создана. Нужно ознакомиться с правилами инсталляции модуля, и произвести его переустановку при необходимости.

Зачастую при отсутствии требуемой реакции модуля, требуется нажать на любую активную кнопку, чтобы вызвать любую реакцию. Ошибка чаще всего сопряжена с конфликтом в Java-скриптах. Попробуйте также открыть панель вебмастера, нажав кнопку F12. Здесь отображаются существующие конфликты на соответствующей вкладке.

Появление данной проблемы обусловлено наличием ошибок в коде php. Устранение ее возможно при выполнении следующих действий: 1. Проверить серверный файл ошибок 2. Просмотреть логи в админ-панели. Стоит отметить, что ошибки здесь показываются далеко не все. 3. Прописать в начале php-файла контроллера следующий код для демонстрации на экране возникших проблем: ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1);

Админка - управление обязательными полями в заказе

VQmod

* Адрес сайта :

VQmod

Адрес тестового сайта (необязательно) :

Нужна платная помощь с установкой?
Каталог дополненийАдминкаМодули
Автор: Pulemet
Покупок: 50 (Средняя оценка: 4)

Совместимость OpenCart 2.1, OpenCart 2.3, OpenCart 3.0, OCStore 2.1, OCStore 2.3, Opencart.pro 2.1, Opencart.pro 2.3
В Opencart при редактировании заказа необходимо обязательно заполнять множество данных, которые во многих случаях просто не нужны. Данное расширение позволит вам отключить необходимость ввода полей (возможность заполнения остаётся) в админке заказа, в которых нет необходимости.

Есть возможность настроить активность/неактивность следующих строк:

Вкладка Данные покупателя: Имя, Фамилия, E-Mail, Телефон;
Вкладка Детали оплаты: Имя, Фамилия, Адрес 1, Город, Индекс, Страна, Регион / Область;
Вкладка Детали доставки: Имя, Фамилия, Адрес 1, Город, Индекс, Страна, Регион / Область.


Внимание! Работоспособность модуля гарантируется только в стандартной форме редактирования заказа.

Версия 1.1.0:
- во вкладки Детали оплаты и Детали доставки добавлена возможность выставить статус поля Индекс;
- добавлена поддержка Opencart 3.0

Написать

Ваш отзыв: Внимание: HTML не поддерживается! Используйте обычный текст.

opencart_make_postal_code_required_or_not_required_field1

Войдите в вашу админ панель и перейдите на вкладку Система >> Локализация >> Страны (System >> Localization >> Countries).

Нажмите на кнопку Редактировать (edit) рядом со страной, для которой Вы хотите внести изменения. В нашем случае такой страной является Аргентина:

opencart_make_postal_code_required_or_not_required_field2

opencart_make_postal_code_required_or_not_required_field3

Обратите внимание, данная настройка будет работать для Зарегестрированных пользователей (Register Account) и для Оформления заказа гостем сайта (Guest Checkout ).

Сохраните изменения и обновите ваш сайт.

Вы можете также ознакомиться с детальным видео-туториалом ниже:

Эта запись была размещена в OpenCart туториалы и помечена как checkout, field, opencart, required. Добавьте в закладки постоянную ссылку.

Похожие записи

The following tutorial shows how to integrate Google Adsense into OpenCart based website.

Из этого туториала Вы узнаете, как обновить Кэш изменений в OpenCart 2.x.

Мы рады представить Вам новый туториал, который покажет, как работать с размерами изображений в OpenCart (начиная с версии 2.2).

Submit a ticket

Написание модулей OpenCart может быть очень хорошим способом узнать, как основы OpenCart действительно работают. Как и остальные компоненты OpenCart, модули следуют шаблону проектирования MVCL. В этом руководстве по документации будет описано, как Dы используете каждый из компонентов MVC-L для создания админки и витрины части Вашего модуля. Самый простой способ создать модуль - это загрузить DIY Module Builder скелет из HostJars. Этот модуль содержит структуру каталогов, файлы и инструкции о том, как понимать и создавать свои собственные модули. Эта страница является более теоретическим руководством.

Основная структура каталогов

Базовая файловая структура Вашего модуля будет разделена на две части: папку администратора и каталог. Содержимое каждой папки будет соответствовать структуре MVC-L соответственно, с той разницей, что администратор будет заниматься исключительно функциональностью бэкэнда, а каталог - функциональностью веб-интерфейса. Пользователи Вашего модуля будут взаимодействовать и настраивать его параметры в административной части магазина. Следовательно, файлы в папке администратора будут обрабатывать любые изменения в его настройках, способ отображения модуля в администрировании, установку/удаление модуля и т.д. Аналогичным образом, способ отображения модуля и его работа в интерфейсе пользователя. из магазина будут обрабатываться файлы в папке каталога.

file struct

На изображении выше показан скелет структуры каталогов, которой должен следовать Ваш модуль. Хороший способ начать работу с Вашим модулем - продублировать структуру папок и создать указанные выше файлы. То, что будет в этих файлах, определяется тем, что Ваш модуль пытается выполнить, но основные функции подробно описаны в разделах ниже.

Функциональность модуля администратора

Когда владелец магазина использует Ваш модуль, он захочет отредактировать параметры конфигурации модуля в администраторе, чтобы решить, на каких макетах будет отображаться модуль, включен ли он или отключен, и какие-либо специфичные для модуля параметры. Как разработчику модуля, вам нужно будет создать страницу администратора, на которой можно редактировать модуль и добавлять или настраивать параметры конфигурации.

Все файлы администратора находятся в папке admin/. Вы найдете четыре папки в папке admin/:

Для всех модулей потребуется по крайней мере один файл в каждой из папок вида и контроллера. Большинству потребуется файл в каждой из папок модели и языка. Обычно файлы имеют одинаковое имя, за исключением того, что файл представления имеет другой суффикс (.tpl или .twig). Мы пройдемся по этим файлам один за другим.

mvcl

Контроллер

Первый файл, который Вы создадите, будет контроллером страницы интерфейса Вашего модуля. OpenCart автоматически идентифицирует существующие модули, просто прочитав папку admin/controller/module Вашего магазина. Любые модули, существующие в этой папке, будут автоматически показаны на странице Модулей, и на странице Пользовательские разрешения. Вы можете вызвать файл Вашего контроллера my_module.php.

Файл контроллера - это место, где Вы можете загрузить языковые файлы для преобразования текста в переменные, которые будут использоваться в файле шаблона. На диаграмме выше Вы можете увидеть $_['text'] переменная обрабатывается контроллером, а затем отправляется в виде $text в представление. Здесь Вы также будете использовать несколько файлов моделей и их функций класса, включая файл модели вашего модуля, если он есть. Для получения дополнительной информации о загрузке файлов см. Загрузка файлов в контроллер.

Вы также можете иметь функцию, определенную как public function install (). Эта функция будет срабатывать при нажатии на ссылку установки на странице Расширения > Модули. Аналогично, функция, определенная как public function uninstall (), будет запущена при нажатии на ссылку удаления. Вы можете использовать эти функции для создания и удаления любых структур (таких как таблицы базы данных или настройки конфигурации), требуемых Вашим модулем. Хорошей практикой является создание функции удаления для очистки любых изменений, внесенных Вашим модулем. Чтобы увидеть конкретный код для install(), uninstall(), посетите Установить/удалить модуль.

Доступ через URL

Контроллер - единственный файл в структуре MVC-L, доступ к которому осуществляется по URL в OpenCart. В администрации URL будет выглядеть так /admin/index.php?route=module/my_module&token. Администратор добавляет токен в URL, тогда как ссылка в каталоге его не будет иметь. В результате файл контроллера будет иметь функцию, определенную как public function index(). Это общедоступный 'page' загружается по URL-адресу, который будет показан при Кнопка редактирования и где форма просмотра будет отправлена. Представленные данные будут обработаны в этой функции и сохранены в таблице базы данных `settings` через объект конфигурации контроллера.

Представление

В представлении Вы сможете получить доступ к тексту на языке, который хранится в файле контроллера как переменная PHP. См. Загрузка файлов в Контроллере для получения кода о том, как это сделать.

Модель

Модули редко требуют файл модели на стороне администратора. Однако, если Ваш модуль использует собственную таблицу базы данных или пользовательский запрос для создания данных определенного формата, то Вы можете написать файл модели. Примером этого может быть, если вы пишете модуль счетчика посетителей, где каждый посетитель хранится в таблице базы данных со своим IP-адресом и количеством посещений. Затем Вы можете создать файл модели с функцией для определения и создания этой дополнительной таблицы в базе данных OpenCart. Файл модели будет находиться в папке admin/model/module. Вы можете вызвать файл модели my_module.php, такой же, как Ваш контроллер и языковые файлы.

Функциональность внешнего интерфейса

Внешний интерфейс Вашего модуля следует той же схеме, что и описанный выше интерфейс администратора. То, что Вы будете включать в каждый из Ваших файлов внешнего интерфейса, будет в значительной степени зависеть от того, что должен делать Ваш модуль. Модуль может обращаться к любым файлам моделей, которые уже существуют в OpenCart, Вам не нужно писать собственные запросы к базе данных, если такой же запрос уже существует. Например, catalog/product модель содержит много полезных запросов для получения продуктов. Использование этих функций модели должно быть предпочтительнее, чем изобретать велосипед.

Ключевое отличие во внешнем интерфейсе Вашего модуля заключается в том, что Ваш файл представления будет находиться в папке catalog/view/theme/(themename)/template/module. Это значительно более глубокая структура папок для файла представления администратора из-за тем. Магазин OpenCart может иметь много разных темы интерфейса доступен, но только один админ шаблон. (themename)

Во внешней части Вашего модуля Вы будете иметь доступ к опциям конфигурации, сохраненным Вашим модулем, через объект конфигурации контроллера и переменную $settings, передаваемую в функцию индекса контроллера модуля. На основе этих настроек Вы можете управлять аспектами отображения веб-интерфейса.

Читайте также: