Pouzivani formulare v komponente
- dawe
- Člen | 59
Ahoj, delam s nette tyden a narazil jsem na jeden problemek. Nevim jestli to delam spatne. Mam komponentu, kterou si nacitam do presenteru. Komponenta se sklada z php a latte. Komponentu v pohode nactu. Ted bych chtel do teto komponenty pridelat admin funkcionalitu na editaci jejich prvku. No a v teto komponente jsem si chtel vytvorit formular. Vyhazuje mi to chybu: Component with name ‚editItemsForm‘ does not exist.
Muzu se zeptat co delam spatne? diky moc
Takze HomepagePresenter si nacita komponentu v latte sablone pomoci:
...
{control mojeKomponenta}
...
tim se mi v HomepagePresenteru zavola:
...
protected function createComponentMojeKomponenta(){
return new \MojeKomponenta($this->mojeKomponentaRepository, true);
}
...
tim se mi vytvori komponenta:
...
public function __construct(MojeKomponentaRepository $mojeKomponentaRepository, $isAdmin) {
parent::__construct();
$this->mojeKomponentaRepository= $mojeKomponentaRepository;
$this->isAdmin = $isAdmin;
}
public function createComponenEditItemsForm(){
$this->adminForm = new Form();
$this->adminForm->onSuccess[] = $this->saveItemsFormSucceeded;
//... kod komponenty
return $this->adminForm;
}
...
v sablone komponenty volam vytvoreni formulare:
...
{if $isAdmin}
{control editItemsForm}{/block}
{/if}
...
Editoval dawe (22. 5. 2014 21:39)
- dawe
- Člen | 59
Jeste bych mel jeden dotaz. Kdyz vytavrim komponentu v sablone presenteru, tak si predavam v jakem jazyce se ma zobrazit:
...
{control mojeKomponenta "cz"}
{control mojeKomponenta "en"}
...
to se mi pak predava do komponenty
...
public function render($language, ){
$this->language = $language;
...
ale ten jazyk nemam k dispozici v dobe, kdy vytvarim ten formular
...
public function createComponentEditItemsForm(){
...
pouzivam tu komponentu v presenteru 2×, protoze musi byt na strance zobrazeny obe jazykove mutace
edit: ted jsem zjistil, ze se vola vytvoreni instance te komponenty pouze jednou, jen se dvakrat vola ta metoda render. Jak bych tohle mel nejlepe vyresit? abych vypsal texty v anglictine a cestine pres tuto komponentu?
edit: vyresil jsem to tak, ze jsem si vytvoril dve metody pro dva jazyky. Takze na urovni sablony zjistim jazyk a podle toho zavolam En metodu nebo Cz metodu. Neprijde mi to tedy idealni :( .. ale nevim jak to jinak vyresit. Jak tu komponentu udelat aby dokazala pracovat s vicero jazyky?
Editoval dawe (22. 5. 2014 22:46)