82 lines
2.5 KiB
PHP
82 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace Bitrix\Iblock;
|
|
|
|
use Bitrix\Iblock\ORM\CommonElementTable;
|
|
use Bitrix\Main;
|
|
use Bitrix\Main\Localization\Loc;
|
|
use Bitrix\Main\ORM\Data\DataManager;
|
|
use Bitrix\Main\ORM\Fields\Relations\Reference;
|
|
use Bitrix\Main\ORM\Query\Join;
|
|
|
|
/**
|
|
* Class SectionElementTable
|
|
*
|
|
* DO NOT WRITE ANYTHING BELOW THIS
|
|
*
|
|
* <<< ORMENTITYANNOTATION
|
|
* @method static EO_SectionElement_Query query()
|
|
* @method static EO_SectionElement_Result getByPrimary($primary, array $parameters = [])
|
|
* @method static EO_SectionElement_Result getById($id)
|
|
* @method static EO_SectionElement_Result getList(array $parameters = [])
|
|
* @method static EO_SectionElement_Entity getEntity()
|
|
* @method static \Bitrix\Iblock\EO_SectionElement createObject($setDefaultValues = true)
|
|
* @method static \Bitrix\Iblock\EO_SectionElement_Collection createCollection()
|
|
* @method static \Bitrix\Iblock\EO_SectionElement wakeUpObject($row)
|
|
* @method static \Bitrix\Iblock\EO_SectionElement_Collection wakeUpCollection($rows)
|
|
*/
|
|
class SectionElementTable extends DataManager
|
|
{
|
|
/**
|
|
* Returns DB table name for entity
|
|
*
|
|
* @return string
|
|
*/
|
|
public static function getTableName(): string
|
|
{
|
|
return 'b_iblock_section_element';
|
|
}
|
|
|
|
/**
|
|
* Returns entity map definition.
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function getMap(): array
|
|
{
|
|
return array(
|
|
'IBLOCK_SECTION_ID' => new Main\Entity\IntegerField('IBLOCK_SECTION_ID', array(
|
|
'primary' => true,
|
|
'title' => Loc::getMessage('IBLOCK_SECTION_ELEMENT_ENTITY_IBLOCK_SECTION_ID_FIELD'),
|
|
)),
|
|
'IBLOCK_ELEMENT_ID' => new Main\Entity\IntegerField('IBLOCK_ELEMENT_ID', array(
|
|
'primary' => true,
|
|
'title' => Loc::getMessage('IBLOCK_SECTION_ELEMENT_ENTITY_IBLOCK_ELEMENT_ID_FIELD'),
|
|
)),
|
|
'ADDITIONAL_PROPERTY_ID' => new Main\Entity\IntegerField('ADDITIONAL_PROPERTY_ID', array(
|
|
'title' => Loc::getMessage('IBLOCK_SECTION_ELEMENT_ENTITY_ADDITIONAL_PROPERTY_ID_FIELD'),
|
|
)),
|
|
'IBLOCK_SECTION' => new Main\Entity\ReferenceField(
|
|
'IBLOCK_SECTION',
|
|
'Bitrix\Iblock\Section',
|
|
Join::on('this.IBLOCK_SECTION_ID', 'ref.ID')
|
|
),
|
|
'IBLOCK_ELEMENT' => new Main\Entity\ReferenceField(
|
|
'IBLOCK_ELEMENT',
|
|
'Bitrix\Iblock\Element',
|
|
array('=this.IBLOCK_ELEMENT_ID' => 'ref.ID'),
|
|
array(
|
|
'title' => Loc::getMessage('IBLOCK_SECTION_ELEMENT_ENTITY_IBLOCK_ELEMENT_FIELD'),
|
|
)
|
|
),
|
|
|
|
new Reference(
|
|
'REGULAR_ELEMENT',
|
|
CommonElementTable::class,
|
|
Join::on('this.IBLOCK_ELEMENT_ID', 'ref.ID')
|
|
->whereNull('this.ADDITIONAL_PROPERTY_ID')
|
|
)
|
|
);
|
|
}
|
|
}
|