/** * Component can be tied to specific presenter-action by annotation * {@inheritdoc} */ protected function createComponent($name) { $ucname = ucfirst($name); $method = 'createComponent' . $ucname; $presenterReflection = $this->getReflection(); if ($presenterReflection->hasMethod($method)) { $reflection = $presenterReflection->getMethod($method); $this->checkRequirements($reflection); $annotations = (array) $reflection->getAnnotation('Action'); if (!empty($annotations) && !in_array($this->getAction(), $annotations)) { throw new \Nette\Application\ForbiddenRequestException("Creation of component '{$name}' is forbidden for action '{$this->action}'."); } return parent::createComponent($name); } }
/** * Sign in form component factory. * @return NAppForm */ protected function createComponent($name) { switch ($name) { case 'loginForm': $form = new NAppForm(); $form->addText('username', _('Prihlasovacie meno') . ':')->addRule(NForm::FILLED, _('Prihlasovacie meno musí byť vyplnené.')); $form->addPassword('password', _('Heslo') . ':')->addRule(NForm::FILLED, _('Prihlasovacie heslo musí byť vyplnené.')); $form->addSubmit('submit_login', 'Log In'); $renderer = $form->getRenderer(); $renderer->wrappers['controls']['container'] = NULL; $renderer->wrappers['pair']['container'] = 'div'; $renderer->wrappers['label']['container'] = NULL; $renderer->wrappers['control']['container'] = NULL; $form->addProtection(_('Sedenie vypršalo. Proším obnovte prihlasovací formulár a zadajte údaje znovu.'), 1800); $form['submit_login']->getControlPrototype()->class = 'btnLogin'; $form->onSuccess[] = callback($this, 'loginFormSubmitted'); return $form; break; default: return parent::createComponent($name); break; } }
protected function createComponent($name) { switch ($name) { case 'article': return new ArticleControl(); break; case 'questionToSeller': $f = new QuestionToSeller(); $f->setDefaults(array('link' => $_SERVER['HTTP_HOST'] . $this->link('this'))); return $f; break; case 'searchform': $f = new MyForm(); $f->addText('q', 'hľadané slovo / výraz')->getControlPrototype()->class = 'no-border'; //->addRule( NForm::FILLED, 'Hľadané slovo musí byť vyplnené'); $f->addSubmit('btn', 'Vyhľadať')->getControlPrototype()->class = 'no-border'; $f->onSuccess[] = array($this, 'searchFormSubmitted'); $f->setDefaults(array('q' => $this->getParam('q'))); return $f; break; case 'poll': $p = new PollControl(); return $p; break; /* * Pomocka pre pohyb admina po Front */ /* * Pomocka pre pohyb admina po Front */ case 'adminBar': return new AdminBarControl(); break; /* * Sluzi na zobrazenie vypredajovych poloziek * prislusenstva * noviniek */ /* * Sluzi na zobrazenie vypredajovych poloziek * prislusenstva * noviniek */ case 'productNewsSaleAvaiableTable': return new ProductNewsSaleAvaiableTableControl(); break; case 'Home': return new SlideshowControl(); break; case 'breadcrumb': return new BreadcrumbControl(); break; case 'quickFilter': return new QuickFilterControl(); break; case 'cart': $cart = new CartControl(); return $cart; break; case 'cartsmall': $cart = new CartSmallControl(); return $cart; break; case 'gmap': return new GmapControl(); break; case 'newsletter': return new NewsletterControl(); break; case 'UserForm': return new UserFormControl(); break; case 'LoginForm': return new LoginControl(); break; case 'userProfil': return new UserProfilControl(); break; case 'cartLogin': return new CartLoginControl(); break; // // case 'EshopProduct' : // $p = new EshopProductControl; // $p->invalidateControl(); // return $p; // break; // // case 'Redirect' : // return new RedirectControl (); // break; // // case 'EshopProduct' : // $p = new EshopProductControl; // $p->invalidateControl(); // return $p; // break; // // case 'Redirect' : // return new RedirectControl (); // break; case 'ContactForm': return new ContactFormControl(); break; // case 'comment' : // return new CommentControl (); // break; // case 'comment' : // return new CommentControl (); // break; case 'msg': return new MsgControl(); break; case 'vizionWidget': $widget = new VizionWidgetControl(); $widget->setWidgetService($this->getService('Widget')); return $widget; break; case 'userBaseForm': $form = UserModel::baseForm(); $_convertor_lang_to_iso = array('sk' => 'SVK', 'cz' => 'CZE', 'de' => 'DEU', 'en' => 'GB', 'hu' => 'HUN'); $form->setDefaults(array('type' => 0, 'iso' => $_convertor_lang_to_iso[$this->lang], 'delivery_iso' => $_convertor_lang_to_iso[$this->lang])); return $form; break; default: return parent::createComponent($name); break; } }
protected function createComponent($name) { if (strpos($name, ElementManager::ELEMENT_PREFIX) === 0) { $name = substr($name, strlen(ElementManager::ELEMENT_PREFIX)); $name = explode('_', $name); $id = end($name); unset($name[count($name) - 1]); $name = implode('_', $name); $route = $this->getContext()->cms->routeRepository->find($this->elementRouteId); /** @var $component \CmsModule\Content\IElement */ $component = $this->context->cms->elementManager->createInstance($id); $component->setRoute($route); $component->setName($name); $component->setLanguage($this->context->cms->languageRepository->find($this->elementLanguageId)); return $component; } return parent::createComponent($name); }