• Модуль: fileman
  • Путь к файлу: ~/bitrix/modules/fileman/lib/block/editor.php
  • Класс: BitrixFilemanBlockEditor
  • Вызов: Editor::showEditor
public function showEditor()
{
	$textArea = '';
	$panels = '';
	$tabs = '';
	$blocks = '';
	$tools = '';
	$devices = '';


	foreach(array_chunk($this->blocks, static::BLOCK_COUNT_PER_PAGE) as $blocksPerPage)
	{
		$blocksForPage = '';
		foreach($blocksPerPage as $block)
		{
			$blocksForPage .= $this->getUI('block', array(
				'type_class' => htmlspecialcharsbx($block['IS_COMPONENT'] ? 'component' : 'blockcomponent'),
				'code_class' => htmlspecialcharsbx(str_replace(array(':', '.'), array('-', '-'), $block['CODE'])),
				'type' => htmlspecialcharsbx($block['TYPE']),
				'code' => htmlspecialcharsbx($block['CODE']),
				'name' => htmlspecialcharsbx($block['NAME']),
				'desc' => htmlspecialcharsbx($block['DESC']),
			));
		}

		$blocks .= $this->getUI('block_page', array('blocks' => $blocksForPage));
	}

	foreach($this->tools as $tool)
	{
		$tools .= $this->getUI('tool', array(
			'group' => htmlspecialcharsbx($tool['GROUP']),
			'id' => htmlspecialcharsbx($tool['ID']),
			'name' => htmlspecialcharsbx($tool['NAME']),
			'html' => $tool['HTML'],
		));
	}

	foreach($this->previewModes as $mode)
	{
		$devices .= $this->getUI('device', array(
			'MESS_NAME' => mb_strtoupper(htmlspecialcharsbx($mode['NAME'])),
			'class' => htmlspecialcharsbx($mode['CLASS']),
			'width' => htmlspecialcharsbx($mode['WIDTH']),
			'height' => htmlspecialcharsbx($mode['HEIGHT']),
		));
	}


	if(!$this->ownResultId)
	{
		$this->ownResultId = 'bx-block-editor-result-' . htmlspecialcharsbx($this->id);
		$textArea = '';
	}

	foreach($this->tabs as $tabCode => $tab)
	{
		if(!isset($this->uiPatterns['panel-' . $tabCode]))
		{
			continue;
		}

		$tabs .= $this->getUI('tab', array(
			'code' => htmlspecialcharsbx($tabCode),
			'name' => htmlspecialcharsbx($tab['NAME']),
			'tab_active' => ($tab['ACTIVE'] ? $this->getUI('tab_active', array()) : '')
		));

		$panel = $this->getUI('panel-' . $tabCode, array(
			'id' => htmlspecialcharsbx($this->id),
			'blocks' => $blocks,
			'tools' => $tools,
			'devices' => $devices,
			'nav-display' => count($this->blocks) <= static::BLOCK_COUNT_PER_PAGE ? 'bx-block-hide' : '',
			'MESS_ACCESS_DENIED' => Loc::getMessage('ACCESS_DENIED'),
			'MESS_STYLES' => Loc::getMessage('BLOCK_EDITOR_UI_STYLES'),
			'MESS_BLOCKS' => Loc::getMessage('BLOCK_EDITOR_UI_BLOCKS'),
			'MESS_TOOL_CONTENT' => Loc::getMessage('BLOCK_EDITOR_UI_TOOL_CONTENT'),
			'MESS_TOOL_STYLES' => Loc::getMessage('BLOCK_EDITOR_UI_TOOL_STYLES'),
			'MESS_TOOL_SETTINGS' => Loc::getMessage('BLOCK_EDITOR_UI_TOOL_SETTINGS'),
			'MESS_TOOL_EMPTY' => Loc::getMessage('BLOCK_EDITOR_UI_TOOL_EMPTY'),
			'MESS_TOOL_SAVE' => Loc::getMessage('BLOCK_EDITOR_UI_TOOL_SAVE'),
			'MESS_TOOL_SAVE_TITLE' => Loc::getMessage('BLOCK_EDITOR_UI_TOOL_SAVE_TITLE'),
			'MESS_TOOL_CANCEL' => Loc::getMessage('BLOCK_EDITOR_UI_TOOL_CANCEL'),
			'MESS_TOOL_CANCEL_TITLE' => Loc::getMessage('BLOCK_EDITOR_UI_TOOL_CANCEL_TITLE'),
		));

		$panels .= $this->getUI('panel', array(
			'code' => htmlspecialcharsbx($tabCode),
			'panel_hidden' => (!$tab['ACTIVE'] ? $this->getUI('panel_hidden', array()) : ''),
			'html' => $panel
		));
	}

	return $this->getUI('main', array(
		'TEXTAREA' => $textArea,
		'id' => htmlspecialcharsbx($this->id),
		'tabs' => $tabs,
		'panels' => $panels,
		'MESS_BTN_MAX' => Loc::getMessage('BLOCK_EDITOR_UI_BTN_MAX'),
		'MESS_BTN_MIN' => Loc::getMessage('BLOCK_EDITOR_UI_BTN_MIN'),
		'MESS_BTN_HTML_COPY' => Loc::getMessage('BLOCK_EDITOR_UI_BTN_HTML_COPY'),
	));
}