notagency / notagency.base
Bitrix-D7框架缺少组件
1.0.114
2019-01-28 07:39 UTC
Requires
- php: >=5.4.0
- composer/installers: ~1
This package is not auto-updated.
Last update: 2024-09-15 00:13:20 UTC
README
描述
模块包含典型组件。组件相比标准组件的优势
-
组件基于ComponentsBase类实现,支持异常处理。
-
所有组件都是基于类实现的,因此任何公共或受保护的方法都可以被重写。
组件
- materials.list - 用于输出列表(元素,信息块部分)
- materials.detail - 基于 materials.list,限制为1个元素
- catalog.list - 基于 materials.list + 目录数据(价格,库存量等)
- catalog.detail - 基于 materials.detail,与 catalog.list 相同,限制为1个元素
- form.result.new - 输出模块的表单
安装
此模块通过 composer 分发,并发布在 packagist.org。
在安装了Bitrix的网站根目录下,需要执行
composer require notagency/notagency.base
模块应出现在 Marketplace → 已安装解决方案 列表中。然后按照标准市场模块安装流程进行。
ComponentsBase
所有基于该模块实现的组件的基础类。该类基于 CBitrixComponent 类实现,实际上是它的扩展版本。支持异常处理。
在 executeBase 方法中设置从 ComponentsBase 继承的任何组件的方法执行顺序
final protected function componentsBase() { //подключает необходимые модули указанные в массиве атрибута класса $needModules //публичный метод $this->includeModules(); //проверка параметров компонента, указанных в массиве атрибута класса $checkParams //приватный метод $this->checkParams(); //перезапуск буфера вывода, если аякс-запрос //приватный метод $this->startAjax(); //метод для переопределения //выполняет пролог компонента, данные не кешируются $this->executeProlog(); //начинаем кеширование if ($this->startCache()) { //метод для переопределения //основной метод в котором выполняется вся логика компонента $this->executeMain(); //если нужно кеширование шаблона... if ($this->cacheTemplate) { //подключает шаблон компонента //публичный метод $this->showResult(); } //алиас для стандартного метода endResultCache() //публичный метод $this->writeCache(); } //если не нужно кеширование шаблона if (!$this->cacheTemplate) { $this->showResult(); } //метод для переопределения //выполняет эпилог компонента, данные не кешируются $this->executeEpilog(); //останавливает выполнение скрипта, если аякс-запрос $this->stopAjax(); }
初始条件下的网站模板
在 boilerplate/templates 文件夹中放置了一个模板,用于创建网站模板时的常见初始条件。
例如,在 header 中有连接菜单的代码,而在 footer 中有连接包含区域的代码以输出版权信息。
安装时,需要手动将模板复制到 local/templates 文件夹中