Slide 89
Slide 89 text
Build
Controller
class BuildController extends \TYPO3\Flow\Mvc\Controller\ActionController {
...
/**
* @param NodeInterface $step
* @param array $selections An array from element identifier to option identifier
*/
public function selectAction(NodeInterface $step, array $selections = array()) {
/** @var NodeInterface $node */
$node = $this->request->getInternalArgument('__node');
foreach ($selections as $elementIdentifier => $optionIdentifiers) {
$element = $node->getContext()->getNodeByIdentifier($elementIdentifier);
if (!is_array($optionIdentifiers)) {
$optionIdentifiers = array($optionIdentifiers);
}
$optionNodes = array_map(function($optionIdentifier) use ($node) {return
$node->getContext()->getNodeByIdentifier($optionIdentifier);}, $optionIdentifiers);
$this->build->addSelection($step, $element, $optionNodes);
}
$fq = new \TYPO3\Eel\FlowQuery\FlowQuery(array($step));
$nextStep = $fq->next('[instanceof Demo.ContentApps:Step]')->get(0);
if ($nextStep === NULL) {
$this->forward('finish');
} else {
$this->forward('step', NULL, NULL, array('step' => $nextStep));
}
}
}
Demo\ContentApps\Controller\BuildController