GithubHelp home page GithubHelp logo

notagency.base's Introduction

Оглавление

Описание

Модуль содержит набор часто используемых компонентов на различных проектах. Преимущества данных компонентов по сравнению со стандартными:

  1. Компоненты реализуются на основе библиотеки componentsBase в которой поддерживаются исключения (exception).

  2. Компоненты реализуются через наследование: любой метод компонента может быть переопределен в другом компоненте.

Компоненты

  • materials.list - для вывода списков (элементы, секции инфоблока)
  • materials.detail - на основе materials.list с ограничением в 1 элемент
  • catalog.list - на основе materials.list + данные каталога (цены, кол-во товара и т.д.)
  • catalog.detail - на основе materials.detail тоже самое что и catalog.list с ограничением в 1 элемент

Установка

Модуль распространяется через composer. В корне сайта, где установлен битрикс, необходимо выполнить следующие команды:

#!bash
composer require notagency/notagency.base

Модуль должен появится в списке Marketplace → Установленные решения. Далее следует стандартная процедура установки marketplace-модуля.

Библиотека componentsBase

Основная библиотека для всех компонентов реализованная на основе CBitrixComponent. Библиотека поддерживает исключения.

В методе executeBase устанавливается порядок выполнения методов компонента на основе componentsBase:

#!php4
<?php

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 есть код подключения меню с шаблоном top, а в footer есть подключение включаемых областей для вывода копирайта.

Для установки необходимо вручную скопировать шаблон в папку local/templates

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.