← К документации

Пользовательские действия

Файлы пользовательского действия

Описание 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;
    }

    // Сюда добавляются два метода формы с соседней страницы.
}

Для проверки создайте строку с пробелами по краям и выведите результат следующей записью в журнал БП. Внутренние пробелы должны сохраниться. Проверьте также пустую строку и значение из переменной шаблона.

Источники