Пользовательские действия
Файлы пользовательского действия
Описание NormalizeTextActivity, свойства и синхронное выполнение.
Каталог действия
Создайте /local/activities/normalizetextactivity/. Разместите в нём два файла ниже, затем добавьте методы и шаблон из страницы формы настроек. Без формы вход в дизайнере не настроить.
.description.php
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
die();
}
$arActivityDescription = [
'NAME' => 'Убрать пробелы по краям строки',
'DESCRIPTION' => 'Возвращает результат trim для входного текста',
'TYPE' => 'activity',
'CLASS' => 'NormalizeTextActivity',
'JSCLASS' => 'BizProcActivity',
'CATEGORY' => ['ID' => 'other'],
'RETURN' => [
'ResultText' => ['NAME' => 'Результат', 'TYPE' => 'string'],
],
];В CLASS нет префикса CBP, но PHP-класс ниже начинается с него. ResultText должен одинаково называться в описании, типах свойств и присваивании результата.
normalizetextactivity.php
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
die();
}
class CBPNormalizeTextActivity extends CBPActivity {
public function __construct($name) {
parent::__construct($name);
$this->arProperties = [
'Title' => '',
'SourceText' => '',
'ResultText' => '',
];
$this->SetPropertiesTypes([
'ResultText' => ['Type' => 'string'],
]);
}
public function Execute() {
$this->ResultText = trim((string) $this->SourceText);
return CBPActivityExecutionStatus::Closed;
}
// Сюда добавляются два метода формы с соседней страницы.
}Для проверки создайте строку с пробелами по краям и выведите результат следующей записью в журнал БП. Внутренние пробелы должны сохраниться. Проверьте также пустую строку и значение из переменной шаблона.