/** * Adjust the input mask. * * @param \DataContainer $dataContainer Data container. * * @return void */ public function adjustEditMask($dataContainer) { $workflow = WorkflowModel::findByPk(CURRENT_ID); $typeProvider = $this->getServiceProvider()->getTypeProvider(); if (!$workflow || !$typeProvider->hasType($workflow->type)) { return; } $workflowType = $typeProvider->getType($workflow->type); if ($workflowType->hasFixedSteps()) { $GLOBALS['TL_DCA']['tl_workflow_step']['fields']['name']['inputType'] = 'select'; $GLOBALS['TL_DCA']['tl_workflow_step']['fields']['name']['options'] = $workflowType->getStepNames(); $GLOBALS['TL_DCA']['tl_workflow_step']['fields']['name']['eval']['includeBlankOption'] = true; } else { $GLOBALS['TL_DCA']['tl_workflow_step']['fields']['name']['save_callback'][] = array('Netzmacht\\Workflow\\Contao\\Backend\\Common', 'createName'); } }
/** * Get entity properties. * * @param \DataContainer $dataContainer Data container driver. * * @return array */ public function getEntityProperties($dataContainer) { if ($dataContainer->activeRecord) { $workflow = WorkflowModel::findByPk($dataContainer->activeRecord->pid); if ($workflow) { return array_map(function ($info) { return $info['name']; }, array_filter($this->database->listFields($workflow->providerName), function ($info) { return $info['type'] !== 'index'; })); } } return array(); }