Итак, рассмотрим (вкратце) новые возможности, не слишком подробно освещенные ранее.
[spoiler]
currency 14.0.0
Для пользователей тут интерес представляла настройка формата валюты "В публичной части не показывать незначащие нули в дробной части цены":
Настройка применяется только если вывод цен приосходит на клиентских страницах сайта. Если цена не имеет дробной части - она выводится целым числом. К примеру, цена в 1200 руб. в админке будет выведена как 1200,00 руб, в публичке - как 1200 руб. Ранее подобные вещи решались указанием количества знаком после запятой, что приводило к массе недоуменных обращений в техподдержку.
Для разработчиков в этом обновлении были добавлены события во всех классах модуля. Они подробно описаны в
В этом же обновлении вышел метод
currency 14.5.1
В этом обновлении добавлена js-библиотека, позволяющая форматировать цены в js-скриптах, опираясь на настройки модуля валют.
Пример использования этой библиотеки:
<? CJSCore::Init(array('currency')); $currencyFormat = CCurrencyLang::GetFormatDescription('RUB'); ?> <sc ript type="text/javascript"> BX.Currency.setCurrencyFormat('RUB', <? echo CUtil::PhpToJSObject($currencyFormat, false, true); ?>); var formatRub = BX.Currency.currencyFormat(121.50, 'RUB', true); alert(formatRub); </sc ript> |
Параметры второго совпадают с параметрами вызова
Надеюсь, эта библиотека упростит кому-то жизнь.
iblock 14.0.3
Добавлены системные права на доступ к инфоблоку - чтение в административной панели и создание элементов в административной панели
Эти права решают проблему с доступом к инфоблокам-справочникам для контент-менеджеров - когда прав на изменение справочника у менеджера нет, а в товарах или новостях необходимо указывать привязки к данным из этих инфоблоков.
iblock 14.0.5
В настройки модуля добавлен параметр, отвечающий за максимальную глубину вложенных разделов в CSV-экспорте/импорте. Просили это давно, но прошло незамеченным.
iblock 14.5.1
В этом обновлении добавился новый пользовательский тип свойства инфоблока - "Привязка к разделам с автозаполнением". Он решает проблему производительности админских страниц модуля, где есть привязки к инфоблокам с большим количеством разделов. Свойство аналогично выпущенной в 10-й версии
Кроме этого, были добавлены события
catalog 14.0.3
В csv-импорте добавлена возможность импортировать торговые предложения, имея лишь внешний код (XML_ID) товара. Чтобы включить эту возможность, в профиле импорта необходимо указать соответствующий чекбокс:
Подчеркну, что настройка появляется только при импорте в инфоблок предложений.
catalog 14.5.9
После установке этого обновления становится возможным в скидках на товары и правилах корзины комбинировать условия для данных товара и предложений. К примеру, Вы можете задать скидку на раздел товара и конретное значения свойства предложения. Либо наоборот - запретить скидку на раздел, но разрешить ее на конкретное предложение товара в этом разделе.
sale 14.5.9
Начиная с этого обновления, в правилах корзины появляется условие отбора по стоимости позиции заказа.
Для разработчиков представляет интерес передача в провайдер ID записи корзины (BASKET_ID)
Надеюсь, эта информация пригодится администраторам и разработчикам. Более подробные статьи по выходу нового api (ускорение выборки свойств инфоблока, кеширование скидок) планируется несколько позднее.
А то иногда читаешь подобные строчки в изменениях - "Разработчикам: изменен механизм загрузки языковых сообщений.", и думаешь, а что именно изменили и как это повлияет на разработку
1. указание, о каком обновлении какого модуля идет речь
2. пример кода, который пришлось переделывать.
v14.5.4[*]Разработчикам: изменен механизм загрузки языковых сообщений.
До этого обновления в result_modifier.php автоматически подключались языковые фразы из lang/*/template.php, после - необходимо явно вызывать IncludeModuleLangFile(__FILE__) и фразы берутся из lang/*/result_modifier.php
Доступность языковых фраз template.php в result_modifier.php нигде не была документирована, ориентироваться на это было нельзя.
С другой стороны понятно, почему документацию не пишут - есть возможность сказать, что никто ничего не обещал.
2. В данном блоге описывается новый функционал модулей, а никак не вопросы идеологии разработки.
С другой стороны, все все осознали:
Также вижу, что GetMessage, в отличие от \Bitrix\Main\Localization\Loc::getMessage, не поддерживает работу на одной странице с несколькими языками.
Какой функцией все-таки надо пользоваться? GetMessage или \Bitrix\Main\Localization\Loc::getMessage?
Вопрос возник не только из-за @deprecated в коде, но и из-за проверки stripos($trace[$i]["function"], "GetMessage" ) === 0 в loadLazy
Т.е. здесь расчет на GetMessage, либо на \Bitrix\Main\Localization\Loc::GetMessage
Я знаю, что в PHP в методах и функциях регистр не различается, тогда оба написания тождественны. Но, на мысли наводит. Main\Diag\Helper::getBackTrace не выдаст getMessage, если я в коде использовал GetMessage. Т.е. этот код ловит именно GetMessage.
Раз уж о дополненных(реализованных) функциях начали писать - нельзя ли попросить сотрудников, выпускающих обновления писать подробнее про исправленные ошибки?
Вот напомню последнее обновление:
Updated: iblock (14.5.8)
Улучшена производительность компонента catalog.smart.filter
Исправлена работа страницы списка элементов инфоблока на редакциях без торгового каталога
Исправлена работы страницы детального редактирования элемента инфоблока
Updated: iblock (14.5.7)
Исправлены ошибки компонентов catalog.element, catalog.
Исправлены ошибки шаблонов компонентов catalog.section, catalog.top, catalog.
Исправлены ошибки административных страниц.
Updated: iblock (14.5.6)
Исправлены ошибки компонент catalog.brandblocks, catalog.comments, catalog.smart.filter, catalog.section.list
Исправлена ошибка быстрого редактирования цен на административной странице списка элементов
Исправлены ошибки обмена с 1С
Updated: catalog (14.5.7)
Исправлены ошибки админских страниц.
Улучшена производительность выборки скидок.
Улучшена производительность csv-экспорта.
Updated: main (14.9.1)
Исправлен ряд интерфейсных ошибок.
Updated: main (14.5.4)
Исправлены ошибки компонентов main.uploader, system.pagenavigation, main.share.
Исправлены ошибки ORM.
Исправлены незначительные ошибки административных страниц.
И вот остается открытым вопрос - надо ли актуализировать кастомизированные компоненты или нет. К примеру, посмотрев изменения некоторых компонентов через diff, меняются только "<?=" на "<? echo ", "intval()" на "(int)" естественно ради этого можно не переделывать компоненты)
Спасибо хоть про импорт из CSV особо написали.
ps <?= будет везде на <? echo переписываться? Если да, то почему такой выбор был сделан? - дань стандартизации кода?
v14.5.8
2014-08-14
...
[*]Разработчикам! Для инфоблоков 2.0 поле DESCRIPTION_XX сделано необязательным в таблице
Подробнее про это расскажите, пожалуйста.
1. Настройки свойства открыты через Магазин - Список свойств каталога
2. Галочка убрана
3. У всех элементов инфоблока DESCRIPTION этого свойства не заполнено.
в твиттер, к примеру?