/** * * @param ControllerManager $sl * @param Contentinum\Options\PageOptions $pageOptions * @param ContentinumComponents\Mapper\Worker $worker */ protected function formFactory($sl, $pageOptions, $worker) { if (false !== ($formName = $pageOptions->getApp('form'))) { if (false !== ($targetEntities = $pageOptions->getApp('targetentities'))) { if (is_array($targetEntities) && !empty($targetEntities)) { foreach ($targetEntities as $key => $tEntity) { $worker->addTargetEntities($key, $tEntity); } } } $formFactory = new $formName($worker); $decorators = $sl->get($pageOptions->getApp('formdecorators')); $decorators = $decorators->default->toArray(); if (false != ($formAttribs = $pageOptions->getApp('formattributes'))) { $decorators['deco-form']['form-attributtes'] = array_merge($decorators['deco-form']['form-attributtes'], $formAttribs); } $formFactory->setDecorators($decorators); $formFactory->setServiceLocator($sl); return $formFactory; } else { return false; } }