Основное, что может отпугнуть сильных веб-разработчиков от перехода на CMS 1С-Битрикс — это количество и качество кода, необходимое для выполнения стандартных процедур для манипуляции с данными (создание, изменение, удаление и просмотр).
В самом деле, эти GetList’ы в сложных компонентах превращаются в бесконечный поток кода, по-сути не выполняющего никакой бизнес-логики.
Мы нашли решение, а точнее создали его. Встречайте Bataline Framework.
Что это?
Bataline Framework — это обновляемый программный модуль для 1С-Битрикс, устанавливаемый через 1С-Битрикс Marketplace, позволяющий существенно оптимизировать процесс разработки проектов на основе 1С-Битрикс.
Основной упор при разработке модуля был сделан на оптимизацию работы с данными в инфоблоках, т.к. именно этот модуль является основным хранилищем данных. Нам удалось добиться существенного увеличения скорости разработки и качества кода компонентов.
Для кого?
Прежде всего для разработчиков, которые желают увеличить качество разрабатываемых интернет проектов на 1С-Битрикс, и существенно сократить время и ресурсы, затрачиваемые на разработку.
О да, покажите мне его!
Получение элементов инфоблока:
$oCollection = IbFinder::getInstance()->select('*')
->from(‘news’)
->order(‘pos desc’)
->limit(10)
->fetchAll();
В данном примере производится выборка коллекции из 10 элементов из инфоблока новостей.
Создание элемента инфоблока:
if (!empty($_POST['com']))
{
$attr = $_POST['com'];
$attr['Active'] = "Y";
$attr['Code'] = time();
$object = new BatalineObject($attr, intval($arParams["IBLOCK_ID"]));
if ($object->save())
{
$arResult['success'] = true;
}
}
Создаем новый элемент инфоблока IBLOCK_ID, данные для полей берем из отправленной формы.
Пример обновления элемента:
$oItem = IbFinder::getInstance()->select('*')
->from($arParams["IBLOCK_ID"])
->where(array('Id' => $arParams["ELEMENT_ID"]))
->fetch();
$oItem->setName(‘Новое название’);
$oItem->save();
Получаем элемент по идентификатору, присваиваем новое название и отправляем запрос на сохранение.
Пример удаления элемента:
$oItem = IbFinder::getInstance()->select('*')
->from($arParams["IBLOCK_ID"])
->where(array('Id' => $arParams["ELEMENT_ID"]))
->fetch();
$oItem->delete();
Тут все совсем просто — получаем элемент по идентификатору и удаляем его.
Это все?
Нет. Помимо работы с элементами инфоблоков, модуль позволяет работать с разделами инфоблоков, пользователями, оптимизирует работу с изображениями, свойствами элементов и датой со временем.
Все функционал описан в документации разработчика, доступной на промо-сайте: bataline-framework.ru
Вместо заключения:
Самая актуальная версия модуля находится в репозитории на GitHub по адресу: github.com/pimax/bataline-framework
Примеры компонентов, разработанных с использованием модуля: На Github
Сайт модуля: bataline-framework.ru/
Ну и конечно ссылка на модуль в каталоге Макетплейс: marketplace.1c-bitrix.ru/solutions/bataline.framework/
Автор: pimax