- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/dispatcher.php
- Класс: BitrixTasksDOES
- Вызов: DOES::getOperationsByPlan
protected function getOperationsByPlan($plan, $result)
{
$bindings = array();
/** @var ToDo $op */
foreach($plan as $op)
{
if($op->isProcessed())
{
continue;
}
$action = $op->getAction();
$code = $op->getCode();
$opClassPrefix = '\Bitrix\Tasks\Dispatcher\';
$opClass = $opClassPrefix.'Operation';
$opArgs = array('NAMESPACE' => $this->rootNamespace);
if(mb_substr($action, 0, 8) == 'runtime:')
{
$action = mb_substr($action, 8);
if(!array_key_exists($action, $this->runtimeActions))
{
$result->getErrors()->add('ILLEGAL_RUNTIME_ACTION', 'Runtime action not found: '.$action, static::ERROR_TYPE_PARSE);
}
$opClass = $opClassPrefix.'RunTimeOperation';
$opArgs['CALLABLE'] = $this->runtimeActions[$action];
}
if($result->isSuccess())
{
/** @var Operation $boundOp */
$boundOp = new $opClass($op->export(), $opArgs);
$boundOp->parse();
$bindings[$code] = $boundOp;
$result->getErrors()->load($boundOp->getErrors());
}
}
return $bindings;
}