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

Презентация:



Advertisements
Похожие презентации
Вадим Думбравану руководитель проектов D7. ORM. Object-relational mapping Недостатки текущего похода в API На каждую сущность программируется свой GetList,
Advertisements

Информационные блоки+ Битрикс: Управление сайтом Максим Смирнов ведущий разработчик компании «Битрикс»
Управляемый кеш компонентов Максим, Смирнов программист.
Архитектура «D7»: модули, классы, жизненный цикл Кирсанов Алексей Ведущий разработчик 1C-Битрикс.
Гриды и списки: Bitrix Framework 9.0 Вадим Думбравану Руководитель проектов.
Развитие платформы «1С-Битрикс»: эволюция или революция Юрий Тушинский технический директор компании «Битрикс»
NHibernate что, где, когда Артур Дробинский ЗетаСофт Томск, 2012.
Как улучшить производительность проекта за три шага Шаромов Денис руководитель отдела техподдержки.
1 Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия (Community Edition) – на В Linux-дистрибутивах.
Интеграция платформы 1С-Битрикс С 1C Денис Донченко ++
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Выражения унарные (унарный минус) арифметические (+, -, *, /) сравнения (, =, =, , LIKE, BETWEEN...) конкатенации (||) логические (NOT, AND, OR)
D7: проектирование и реализация нового модуля «Диск» Алексей Кирсанов Ведущий программист «1С-Битрикс»
Программируемый клиент ORACLE Технология Pro C/C++
Рекомендации по работе со службой технической поддержки Шаромов Денис руководитель отдела техподдержки.
Создание Web страниц Урок 12: PHP & MySQL Павел Бочаров.
Прикладное программирование кафедра прикладной и компьютерной оптики Полиморфизм.
Бизнес-процессы: от простого к сложному Кирсанов Алексей Ведущий разработчик 1C-Битрикс.
Занятие 4 def simple_iterator yield 2 # передача управления в блок итератора yield 7 yield 1 end simple_iterator {|i| puts i } 15. Итераторы изнутри.
Классы в С#. Перечисления С# Перечисление задает конечное множество возможных значений, которые могут получать объекты класса перечисление. [атрибуты][модификаторы]
Транксрипт:

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

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

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

Хранение: код 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();

Шаблоны: обзор Просто текст Модификатор нижнего регистра/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}}}

);} Шаблоны: код 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) ); }

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

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() ;

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

Спасибо за внимание! Вопросы? Skype: mv.smirnov