- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/lib/leadads/response/builder/facebookformbuilder.php
- Класс: BitrixSeoLeadAdsResponseBuilderFacebookFormBuilder
- Вызов: FacebookFormBuilder::buildQuestions
private function buildQuestions(array $questions): array
{
$questionsResult = [];
foreach ($questions as $field)
{
if ($this->mapper->getCrmName($field['type']))
{
$questionsResult[] = new LeadAdsField(
$field['type'],
self::EMPTY_FIELD_NAME,
$field['label'],
$field['key']
);
}
elseif ($field['type'] === "CUSTOM")
{
//if question is custom condition
if (
is_array($field['dependent_conditional_questions'])
&& is_array($field['conditional_questions_choices'])
)
{
$questionsResult[] = new LeadAdsField(
LeadAdsField::TYPE_RADIO,
self::EMPTY_FIELD_NAME,
$field['label'],
$field['key'],
$this->getOptions($field['conditional_questions_choices'], 0)
);
foreach ($field['dependent_conditional_questions'] as $key => $question)
{
$questionsResult[] = new LeadAdsField(
LeadAdsField::TYPE_RADIO,
self::EMPTY_FIELD_NAME,
$question['name'],
$question['field_key'],
$this->getOptions($field['conditional_questions_choices'], $key + 1)
);
}
}
elseif (is_array($field['options']))
{
$questionsResult[] = new LeadAdsField(
LeadAdsField::TYPE_RADIO,
self::EMPTY_FIELD_NAME,
$field['label'],
$field['key'],
array_map(
static function ($option): array {
return [
"key" => $option["key"],
"label" => $option['value'],
];
},
$field['options']
)
);
}
else
{
$questionsResult[] = new LeadAdsField(
LeadAdsField::TYPE_INPUT,
self::EMPTY_FIELD_NAME,
$field['label'],
$field['key']
);
}
}
}
return $questionsResult;
}