Example #1
0
 public function handleAttached(Form $form)
 {
     $presenters = array();
     foreach ($form->presenter->context->findByTag('presenter') as $name => $item) {
         if (substr($name, -7) === 'Factory') {
             $name = substr($name, 0, -7);
         }
         $presenter = $this->presenterFactory->formatPresenterFromServiceName($name);
         $class = $this->presenterFactory->getPresenterClass($presenter);
         if (!is_subclass_of($class, '\\CmsModule\\Content\\Presenters\\PagePresenter')) {
             continue;
         }
         $name = substr($name, 0, -9);
         $name = explode('.', $name);
         $name = implode(':', $name);
         $presenters[$name] = $name;
     }
     $components = array();
     foreach ($this->widgetManager->getWidgets() as $name => $factory) {
         $components[$factory['class']] = ucfirst($name) . 'Control';
     }
     $form['presenter']->setItems($presenters);
     $form['component']->setItems($components);
     $module = $form['target']->value ? $form['target']->value : key($this->modules);
     $form['layout']->setItems(array_keys($this->templateManager->getLayoutsByModule($module)), FALSE)->setDisabled(FALSE)->setPrompt('-- All --');
 }