notagency/notagency.base

Bitrix-D7框架缺少组件

安装: 450

依赖: 0

建议者: 0

安全: 0

星标: 9

关注者: 4

分支: 3

开放问题: 0

类型:bitrix-d7-module

1.0.114 2019-01-28 07:39 UTC

README

描述

模块包含典型组件。组件相比标准组件的优势

  1. 组件基于ComponentsBase类实现,支持异常处理。

  2. 所有组件都是基于类实现的,因此任何公共或受保护的方法都可以被重写。

组件

  • 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 文件夹中