Быстрое создание файловой структуры модуля Opencart
Модули в Opencart обладают одной неприятной особенностью − даже для простых модулей требуется создавать глубокую иерархию директорий. Делать это вручную крайне неудобно, поэтому я набросал маленькую функцию на bash, которая создаст всю необходимую структуру автоматически.
Приведённый ниже код нужно вставить либо в файл .bash_alias (на мой взгляд, это является хорошей практикой), либо прямо в ваш .bashrc
mk-oc-project() { MODULE_NAME=${1:-${PWD##*/}} TPL=${2:-twig} mkdir -p "${PWD}"/upload/{{catalog,admin}/{controller,model,language/{en-gb,ru-ru}},catalog/view/theme/default/template,admin/view/template}/extension/module touch "${PWD}"/upload/{admin/view,catalog/view/theme/default}/template/extension/module/"${MODULE_NAME}.${TPL}" touch "${PWD}"/upload/{admin,catalog}/{controller,model,language/{ru-ru,en-gb}}/extension/module/"${MODULE_NAME}".php }
Функция принимает два опциональных аргумента:
- Название проекта, будет использоваться для названия всех файлов. Если не указано — будет использовано название текущей директории
- Формат шаблонов twig или tpl. По умолчанию — twig.
Функция создаёт директории переводов для en-gb и ru-ru.
Использовать как и любую другую команду в терминале:
$: mk-oc-project test1 # сгенерирует проект для opencart 3
$: mk-oc-project test1 tpl # сгенерирует проект для opencart 2.3
# при создании проекта файлы не перезаписываются
# поэтому комбинация выше создаст иерархию пригодную под обе платформы
|-- catalog
| |-- language
| | |-- ru-ru
| | | |-- extension
| | | | |-- module
| | | | | |-- test1.php
| | |-- en-gb
| | | |-- extension
| | | | |-- module
| | | | | |-- test1.php
| |-- controller
| | |-- extension
| | | |-- module
| | | | |-- test1.php
| |-- model
| | |-- extension
| | | |-- module
| | | | |-- test1.php
| |-- view
| | |-- theme
| | | |-- default
| | | | |-- template
| | | | | |-- extension
| | | | | | |-- module
| | | | | | | |-- test1.tpl
| | | | | | | |-- test1.twig
|-- admin
| |-- language
| | |-- ru-ru
| | | |-- extension
| | | | |-- module
| | | | | |-- test1.php
| | |-- en-gb
| | | |-- extension
| | | | |-- module
| | | | | |-- test1.php
| |-- controller
| | |-- extension
| | | |-- module
| | | | |-- test1.php
| |-- model
| | |-- extension
| | | |-- module
| | | | |-- test1.php
| |-- view
| | |-- template
| | | |-- extension
| | | | |-- module
| | | | | |-- test1.tpl
| | | | | |-- test1.twig
Опубликовано
01.06.2019