'

Новое в инфоблоках: вычисляемые свойства и ORM.

Понравилась презентация – покажи это...





Слайд 0

Новое в инфоблоках: вычисляемые свойства и ORM. Смирнов Максим Ведущий программист «1С-Битрикс»


Слайд 1

SEO Хранение Наследование Кеширование Шаблонизатор Подстановки Функции


Слайд 2

Хранение: обзор Наследование Инфоблок Раздел Элемент Хранение Кеширование в БД Сброс кеша явный


Слайд 3

Хранение: код use Bitrix\Iblock\InheritedProperty; //ООП ElementTemplates или SectionTemplates или IblockTemplates )) $ipropTemplates = new InheritedProperty\ElementTemplates($IBLOCK_ID, $ELEMENT_ID); //Установить шаблон для элемента $ipropTemplates->set(array( "MY_PROP_CODE" => "{=this.Name}", “SOME_CODE" => "", //Удалить шаблон )); //Получить шаблоны для "редактирования" $templates = $ipropTemplates->findTemplates(); //Удалить все собственные шаблоны элемента $ipropTemplates->delete(); //ООП ElementValues или SectionValues или IblockValues )) $ipropValues = new InheritedProperty\ElementValues($IBLOCK_ID, $ELEMENT_ID); //Получить значения $values = $ipropValues->getValues(); echo $values [" MY_PROP_CODE "]; //Сбросить кеш $ipropValues->clearValues();


Слайд 4

Шаблоны: обзор Просто текст Модификатор нижнего регистра/l Модификатор транслитерации/t- Подстановка: {=this.Name} Область: this, parent, sections, iblock, property или catalog. Поле: name, code, previewtext, detailtext, property_CODE… Функции: {=concat " \ " "!" iblock.name sections.name this.name} Встроенные: upper, lower, translit, concat, limit, contrast, min, max и distinct. Событие: OnTemplateGetFunctionClass Вложенность: {=lower {=contrast 20 " .,?!" {=limit 50 " .,?!" this.previewtext} {=limit 50 " .,?!" parent.previewtext parent.detailtext}}}


Слайд 5

);} Шаблоны: код use Bitrix\Iblock\Template; //Подключение модуля инфоблоков. if (\Bitrix\Main\Loader::includeModule('iblock')) { //Задаём шаблон. $template = "Name: {=this.Name}. Code:{=this.code}"; //Исходные данные будем брать из элемента. $entity = new Template\Entity\Element($ELEMENT_ID); //Не забываем про безопасность. echo \Bitrix\Main\Text\String::htmlEncode( //Вычисляем значение по шаблону. Template\Engine::process($entity, $template) ); }


Слайд 6

ORM Используется шаблонизатором. Пока только для выборки и нет поддержки Инфоблоков+. Большие доработки в 14.0.6 Методы add/update/delete скоро будут.


Слайд 7

ORM: примеры $elementList = \Bitrix\Iblock\ElementTable::getList(array( "select" => array("ID", "CODE"), "filter" => array("=IBLOCK_ID" => $IblockId), “limit" => array(5), )); $element = $elementList->fetch(); if ($element) echo $element["NAME"]; $elementList = \Bitrix\Iblock\ElementTable::query() ->setSelect(array("ID", "CODE")) ->setFilter(array("=IBLOCK_ID" => $IblockId )) ->limit(5) ->exec() ;


Слайд 8

Выводы Имеем мощный и простой в использовании функционал. Заложены возможности для расширения. Есть куда стремиться и развиваться. ORM в инфоблоках будет совместима по данным с существующими классами, а значит её можно будет использовать одновременно и внедрять постепенно.


Слайд 9

Спасибо за внимание! Вопросы? Twitter: @qMBQx8GH Skype: mv.smirnov E-mail: max@bitrix.ru


×

HTML:





Ссылка: