/** * @return \BitrixHelperLib\Classes\Block\Object|\BitrixHelperLib\Classes\Section\Object */ public function getElement() { if ($this->element === null) { $itemId = $this->getItemID(); $isSection = !is_numeric($itemId); if ($isSection) { $itemId = substr($itemId, 1); $instance = \BitrixHelperLib\Classes\Section\Getter::instance(); } else { $instance = \BitrixHelperLib\Classes\Block\Getter::instance(); } $this->element = $instance->getById($itemId); } return $this->element; }
/** * @return \Bobrov\Entities\ProductSection */ static function getCatalogSectionById($id) { static $sections; if (!isset($sections)) { $sections = \BitrixHelperLib\Classes\Section\Getter::instance()->setOrder(array('SORT' => 'ASC', 'NAME' => 'ASC'))->setFilter(array('IBLOCK_ID' => IBLOCK_CATALOG, 'ACTIVE' => 'Y'))->setHydrateById(true)->setSelectFields(array('ID', 'NAME', 'CODE', 'IBLOCK_SECTION_ID'))->setClassName('\\Bobrov\\Entities\\ProductSection')->get(); } return $sections[$id]; }
/** * @return \BitrixHelperLib\Classes\Section\Object */ public function getParentSection() { return \BitrixHelperLib\Classes\Section\Getter::instance()->getById($this->iblock_section_id); }
/** * Фунцкция принимает список инфоблоков \BitrixHelperLib\Classes\Block\Object, * делает выборку разделов и возвращает список разделов \BitrixHelperLib\Classes\Section\Object * с полем elements, содержащим инфорблоки * * @param $iblocks * @return array */ function cp_group_by_section($iblocks, $level = 0) { if (empty($iblocks) || !is_array($iblocks)) { return false; } $sectionsIds = array(); $list = new \BitrixHelperLib\Classes\Block\Collection($iblocks); foreach ($list as $item) { $sectionsIds[] = $item->iblock_section_id; } if (empty_array($sectionsIds)) { return false; } $sections = \BitrixHelperLib\Classes\Section\Getter::instance()->setFilter(array('ID' => $sectionsIds))->checkPermissions(false)->get(); foreach ($sections as $section) { $section->elements = $list->getBy('iblock_section_id', $section->id); } return $sections; }