Zanořený selectlist subcategorie
- vanaveno
- Člen | 144
Ahojte, potřeboval bych prosím poradit
v prezenteru mám vytvořený form pro kategorie, které mají
podkategorie.
$category = array( );
$menu = $this->categoryManager->getCategory()->where('type = ?','menu')->select('catId')->select('title')->fetchAll();
foreach ($menu as $catId => $row) {
//menu
$category[$catId] = $row['title'];
// Submenu
$submenu = $this->categoryManager->getCategory()->where('parentId = ?', $catId)->select('catId')->select('parentId')->select('title')->fetchAll();
foreach ($submenu as $catId => $row) {
$category[$catId] = $row['title'];}
}
$form->addCheckboxList('catId', 'Kategorie:', $category)
->setRequired();
Výběr kategorií bych chtěl vytvořit za pomocí slectlistu. Když jej teď nechám vykreslit, zobrazí se mi všechny selectboxy pod sebou. Rád bych vložil do submenu slectboxů class například submenu, abych jej mohl posunout trošku doprava, aby prostě bylo jasně vidět že jsou to subpoložky nějaké nadřazené kategorie. Akorát nevím jak na to. Mohli byste mi prosím s tím pomoci?
Děkuji
- vanaveno
- Člen | 144
kamil_v napsal(a):
Udělej si v šabloně manuální renderování.
O manuálním rendrování vím, ale nějak se mi to právě nedaří.
- Kamil Valenta
- Člen | 820
Ze struktury [id] = name nijak nepoznáš, jestli máš vykreslovat
odsazeně, nebo ne.
Pokud je zanoření nanejvýš jednoúrovňové (neexistuje podkategorie
v podkategorii), tak si předej $menu do šablony.
Pak v renderu budeš mít něco ve stylu:
{foreach $form[catId]->items as $catId => $row}
<label n:name="catId:$catId">{if !empty($menu[$catId]->parentId)}<span class="indent"></span>{/if}<input n:name="catId:$catId"> {$row}</label>
{/foreach}
Pokud je zanoření neomezené, vrať si $menu jako pole polí a pak vykresluj rekurzivně.
- vanaveno
- Člen | 144
kamil_v napsal(a):
Ze struktury [id] = name nijak nepoznáš, jestli máš vykreslovat odsazeně, nebo ne.
Pokud je zanoření nanejvýš jednoúrovňové (neexistuje podkategorie v podkategorii), tak si předej $menu do šablony.
Pak v renderu budeš mít něco ve stylu:{foreach $form[catId]->items as $catId => $row} <label n:name="catId:$catId">{if !empty($menu[$catId]->parentId)}<span class="indent"></span>{/if}<input n:name="catId:$catId"> {$row}</label> {/foreach}
Pokud je zanoření neomezené, vrať si $menu jako pole polí a pak vykresluj rekurzivně.
Kurňa jsem blbý, jak to menu mám dostat do šablony?