• Модуль: 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;
}