- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/form.php
- Класс: Bitrix\Crm\WebForm\Form
- Вызов: Form::load
public function load($id)
{
$this->setId($id);
if(count($this->params) == count(self::$defaultParams) && !$this->loadOnlyForm($this->id))
{
return false;
}
$this->params['PRESET_FIELDS'] = array();
$dbPresetField = Internals\PresetFieldTable::getList(array(
'select' => array('ENTITY_NAME', 'FIELD_NAME', 'VALUE'),
'filter' => array('=FORM_ID' => $id)
));
while($presetField = $dbPresetField->fetch())
{
$this->params['PRESET_FIELDS'][] = $presetField;
}
unset($dbPresetField);
$fieldResult = Internals\FieldTable::getList(array(
'filter' => array('=FORM_ID' => $id),
'order' => array('SORT' => 'ASC', 'CAPTION')
));
$fieldResult->addFetchDataModifier(
function ($data)
{
$data['ITEMS'] = is_array($data['ITEMS']) ? $data['ITEMS'] : [];
return $data;
}
);
$this->params['FIELDS'] = $fieldResult->fetchAll();
unset($fieldResult);
$this->params['DEPENDENCIES'] = Internals\FieldDependenceTable::getList(array(
'filter' => array('=FORM_ID' => $id)
))->fetchAll();
$this->params['DEP_GROUPS'] = Internals\FieldDepGroupTable::getList([
'select' => ['ID', 'TYPE_ID'],
'filter' => ['=FORM_ID' => $id]
])->fetchAll();
if ($this->params['DEPENDENCIES'] && !$this->params['DEP_GROUPS'])
{
$this->params['DEP_GROUPS'][] = [
'ID' => 0,
'TYPE_ID' => Internals\FieldDepGroupTable::TYPE_DEF,
];
}
$this->params['AGREEMENTS'] = Internals\AgreementTable::getList([
'select' => ['AGREEMENT_ID', 'CHECKED', 'REQUIRED'],
'filter' => ['=FORM_ID' => $id]
])->fetchAll();
if ($this->params['AGREEMENT_ID'])
{
$this->params['AGREEMENTS'] = array_merge(
[[
'AGREEMENT_ID' => $this->params['AGREEMENT_ID'],
'CHECKED' => $this->params['LICENCE_BUTTON_IS_CHECKED'] === 'Y' ? 'Y' : 'N',
'REQUIRED' => 'Y',
]],
$this->params['AGREEMENTS']
);
}
elseif (!empty($this->params['AGREEMENTS']))
{
$this->params['AGREEMENT_ID'] = $this->params['AGREEMENTS'][0]['AGREEMENT_ID'];
$this->params['LICENCE_BUTTON_IS_CHECKED'] = $this->params['AGREEMENTS'][0]['CHECKED'];
}
$responsibleQueue = new ResponsibleQueue($id);
$responsibles = $responsibleQueue->getList();
if ($this->params['ASSIGNED_BY_ID'])
{
$responsibles[] = $this->params['ASSIGNED_BY_ID'];
}
$this->params['ASSIGNED_BY_ID'] = array_unique($responsibles);
$this->params['ASSIGNED_WORK_TIME'] = $responsibleQueue->isWorkTimeCheckEnabled() ? 'Y' : 'N';
$this->params['INTEGRATION'] = $this->getIntegration()->load();
return true;
}