Example #1
0
 /**
  * @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;
 }
Example #2
0
 /**
  * @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];
 }
Example #3
0
 /**
  * @return \BitrixHelperLib\Classes\Section\Object
  */
 public function getParentSection()
 {
     return \BitrixHelperLib\Classes\Section\Getter::instance()->getById($this->iblock_section_id);
 }
Example #4
0
/**
 * Фунцкция принимает список инфоблоков \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;
}