Abr@X@bra.ru
Битрикс. Пробуем D7 на вкус
Битрикс. Пробуем D7 на вкус

Битрикс. Пробуем D7 на вкус

18.04.2017
371

На практике рассмотрим, чем же отличается вариант кода старого ядра от нового D7.

Языковые константы D7

Возьмем за пример, языковые константы. Для демонстрации возьмем шаблон тиражного решения Битрикс, furniture_blue.



Где используются языковые константы, но код работы с ними реализован на старом ядре, давайте переведем их на новое ядро.

Открываем header.php и footer.php. Здесь мы видим в обоих случаях, в обоих файлах, IncludeTemplateLangFille


Как вы можете заметить, редактор кода, перечеркнул данный метод. Это значит, что данный метод устарел.

Перейдем к исходному коду, данного метода. И действительно видим, что данный метод помечен как - deprecated.


И указывает на то, что нужно использовать:

\Bitrix\Main|Localization\Loc

Что мы собственно с вами, сейчас и сделаем.

Вызов нового метода D7

Перед началом работы, сделаем копию данного шаблона - furniture_blue, в котором будем работать и назовем его furniture_blue_d7.

Также хочу обратить ваше внимание, что D7 – это не просто новый вариант записей старых методов. Это своя идеология, принципы работы, поэтому не всегда мы можем заменить старый метод, на вызов нового.

В старом ядре, есть два метода. Один из них, это IncludeTemplateLangFile. Он предназначен для подключения языковых файлов, текущего шаблона.

В D7, у нас есть один единственный метод для подключения языковых файлов.

У нас есть несколько вариантов как записать данный метод.

Первый вариант, мы можем записать полное имя метода.


Но этот метод не очень удобный, давайте посмотрим на второй вариант записи.

Второй вариант.


Мы можем записать таким образом или же выбрать любое другое имя.


Это необходимо, если у нас имена классов используя в данном файле совпадают, хотя лежат в разных namespace. Либо мы просто хотим использовать более короткое имя.

Замену так же произведем в footer.php.


Вызовы языковых констант также переделаем на новое ядро D7. Давайте заменим все вызовы GetMessage на вызовы классов нового ядра.

Старый вызов


Новый вызов


Аналогичную замену, нужно сделать в footer.php.

Давайте все сохраним и перейдем на визуальную часть сайта.



Ошибок нет, сайт работает корректно.

Все языковые константы, которые использовались, выводятся в своих значениях. Но в глубине под капотом, у нас уже языковые контакты, подключаются и вызываются с использованием нового API, нового ядра D7.

Мы с вами рассмотрели вариант замены метода старого ядра, на методы нового ядра. В данном случае подобран пример, когда можно было произвести практически прямую замену, старых методов на новые методы, ядра D7.





Bitrix, D7
Читайте также:
Битрикс и D7. Что за зверь такой

Битрикс и D7. Что за зверь такой

В этом посте хочу рассказать, что такое D7. Кто-то спросит D7? А что-такое D7? А это вообще Битрикс? А кто-то уже об это...
Читать
Как настроить каталог товаров Битрикс

Как настроить каталог товаров Битрикс

Иногда для размещения на сайте каталога товаров не подходит использование комплексного компонента Каталог и тр...
Читать
Битрикс D7, инфоблоки - ORM

Битрикс D7, инфоблоки - ORM

Модуль ORM для инфоблоков.

Все знаю что у битркс появилась какая-никакая, но все-таки ORM.

И они даже модуль...

Читать