Документация для разработчиков
Темная тема

Добавление парсеров

Описание

API визуального редактора предусматривает возможность добавления парсеров в визуальный редактор. Данная возможность позволяет включить свои обработчики в процесс разбора кода редактируемого документа на этапе формирования его визуального представления (в момент загрузки документа и при переключении из режима редактирования кода в визуальный режим).

Средствами API визуального редактора можно подключить парсеры(обработчики) трех видов.
В совокупности они позволяют наиболее эффективно реализовывать пользовательскую обработку документа на этапе формирования визуального отображения документа. Виды:
  • Парсер исходного кода документа (Content Parser)
  • Парсер фрагментов PHP-кода (PHP Parser)
  • Обработчик визуального отображения средствами DOM (DOM Handler)

Content Parser

Позволяет обработать документ на уровне его исходного кода.


Подключения парсера проходит в два этапа:
  1. Объявление функции-обработчика
  2. Добавление парсера, путём вызова метода addContentParser() глобального объекта oBXEditorUtils

Объявление функции-обработчика

Функция-обработчик (собственно сам парсер) должна быть объявлена в области видимости вызова метода addContentParser(). Объявленной функции передается единственный строковый аргумент - код документа. В теле функции происходит обработка кода и возврат измененного значения. Если возвращаемое значение равно false, изменения не вносятся.

Добавление парсера

Осуществляется путём вызова метода addContentParser() глобального объекта oBXEditorUtils

Пример

<script>

function CustomContentParser(str)
{
	//... манипуляции с кодом
	return str;
}	

//Добавление парсера
oBXEditorUtils.addContentParser(CustomContentParser);

</script>

PHP Parser

Добавление парсера этого вида позволяет обрабатывать все PHP-фрагменты в коде.
При обработке кода документа все распознанные фрагменты кода последовательно передаются на обработку всем подключенным парсерам. Если парсер возвращает неизмененный фрагмент или false (для проверки используется условие строгого соответствия), то фрагмент передается на обработку следующему парсеру. В качестве второго, необязательного параметра при подключении парсера можно указать его порядок в "очереди" на получение фрагмента кода. Однако встроенные парсеры визуального редактора обрабатывают php в первую очередь.
Подключения парсера проходит в два этапа:
  1. Объявление функции-обработчика
  2. Добавление парсера путём вызова метода addPHPParser() глобального объекта oBXEditorUtils

Объявление функции-обработчика

Функция-обработчик (собственно сам парсер) должна быть объявлена в области видимости вызова метода oBXEditorUtils.addPHPParser(). Объявленной функции передается единственный строковый аргумент - код документа. В теле функции происходит обработка кода и возврат измененного значения. Если возвращаемое значение равно false, изменения не вносятся.
При обработке фрагмента, для упрощения решения стандартных процедур можно использовать методы объекта oBXEditorUtils.PHPParser.

Добавление парсера

Осуществляется путём вызова метода addPHPParser() глобального объекта oBXEditorUtils

Пример

<script>

function CustomPHPParser(str)
{
	//... манипуляции с кодом
	return str;
}

//Добавление парсера
oBXEditorUtils.addPHPParser(CustomPHPParser);

</script>

Примечание: при добавлении парсеров исходного кода документа (Content Parser) и фрагментов PHP-кода (PHP Parser) следует обратить внимание, что вносимые изменения должны быть корректным HTML-кодом, т.к. в случае ошибки визуальный редактор может работать некорректно.

DOM Handler

Добавление обработчика документа на уровне DOM позволяет упростить редактирование свойств элементов, уже после их представления в визуальном режиме.
При объявлении функции-обработчика допускается использование всех стандартных средств работы с DOM.
Подключения обработчика проходит в два этапа:
  1. Объявление функции-обработчика
  2. Добавление парсера путём вызова метода addDOMHandler() глобального объекта oBXEditorUtils

Объявление функции-обработчика

Функция-обработчик должна быть объявлена в области видимости вызова метода oBXEditorUtils.DOMHandler(). Объявленной функции передается единственный аргумент - объект document, соответствующий узлу document согласно структуре DOM. В теле функции происходит обработка документа. Возвращаемые значения не учитываются.

Добавление обработчика

Осуществляется путём вызова метода addDOMHandler() глобального объекта oBXEditorUtils

Пример

<script>

function CustomDOMHandler(oDocument)
{
	//... манипуляции с документом
}

//Добавление парсера
oBXEditorUtils.addDOMHandler(CustomDOMHandler);

</script>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх