• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/senderconnector.php
  • Класс: BitrixIblockSenderConnectorIblock
  • Вызов: SenderConnectorIblock::getForm
public function getForm()
	{
		/*
		 * select iblock list
		*/
		$iblockList = array();
		$iblockDb = IblockTable::getList(array(
			'select' => array('ID', 'NAME'),
		));
		while($iblock = $iblockDb->fetch())
		{
			$iblockList[] = $iblock;
		}
		if(!empty($iblockList))
			$iblockList = array_merge(
				array(array('ID' => '', 'NAME' => Loc::getMessage('sender_connector_iblock_select'))),
				$iblockList
			);
		else
			$iblockList = array_merge(
				array(array('ID' => '', 'NAME' => Loc::getMessage('sender_connector_iblock_empty'))),
				$iblockList
			);

		/*
		 * select properties from all iblocks
		*/
		$propertyToIblock = array();
		$propertyList = array();
		$propertyList[''][] = array('ID' => '', 'NAME' => Loc::getMessage('sender_connector_iblock_select'));
		$propertyList['EMPTY'][] = array('ID' => '', 'NAME' => Loc::getMessage('sender_connector_iblock_prop_empty'));
		$iblockFieldsDb = PropertyTable::getList(array(
			'select' => array('ID', 'NAME', 'IBLOCK_ID'),
			'filter' => array('=PROPERTY_TYPE' => PropertyTable::TYPE_STRING)
		));
		while($iblockFields = $iblockFieldsDb->fetch())
		{
			// add property
			$propertyList[$iblockFields['IBLOCK_ID']][] = array(
				'ID' => $iblockFields['ID'],
				'NAME' => $iblockFields['NAME']
			);

			// add property link to iblock
			$propertyToIblock[$iblockFields['ID']] = $iblockFields['IBLOCK_ID'];
		}


		$fieldList = static::getIblockFieldList();
		// add default value
		$fieldList = array_merge(
			array(array('ID' => '', 'NAME' => Loc::getMessage('sender_connector_iblock_field_select'))),
			$fieldList
		);
		foreach($iblockList as $iblock)
		{
			if(!$iblock['ID'])
			{
				continue;
			}

			if(!isset($propertyList[$iblock['ID']]) || !is_array($propertyList[$iblock['ID']]))
			{
				$propertyList[$iblock['ID']] = array();
			}
			else
			{
				// add delimiter between fields and properties
				$propertyList[$iblock['ID']] = array_merge(
					array(array('ID' => '------',	'NAME' => '-----------------', 'DISABLED' => true)),
					$propertyList[$iblock['ID']]
				);
			}

			$propertyList[$iblock['ID']] = array_merge($fieldList, $propertyList[$iblock['ID']]);
		}


		/*
		 * create html-control of iblock list
		*/
		$iblockInput = '';


		/*
		 * create html-control of properties list for name
		*/
		$iblockPropertyNameInput = '';


		/*
		 *  create html-control of properties list for email
		*/
		$iblockPropertyEmailInput = '';


		$jsScript = "
		
		";



		return '
			'.Loc::getMessage('sender_connector_iblock_required_settings').'
			

'.Loc::getMessage('sender_connector_iblock_field_iblock').' '.$iblockInput.'
'.Loc::getMessage('sender_connector_iblock_field_name').' '.$iblockPropertyNameInput.'
'.Loc::getMessage('sender_connector_iblock_field_email').' '.$iblockPropertyEmailInput.'
'.$jsScript.' '; }