Latte makro a rozmistění menu
- Bazylek
- Člen | 22
Dobrý večr, opět se obracím s prosbou o radu, jelikož jsem ve vláknech toho moc nenašel. Řeším načítaní menu do tabulky a chtěl bych načítat zvlašť sudá a zvlášť lichá data z DB (s neurčitým počem), aby byly ve dvou sloupcích vedle sebe. Uvažoval jsem nad použitím latte maker, ale nedaří se mi přijít jak na to. Nevím zda to tímto zpsobem jde. Vypisuje se mi celé menu v obou sloupcích.
{block pravemenu}
{if count($menuhlavni) > 0}
{foreach $menuhlavni as $hlavni}
{if $iterator->first}<table>{/if}
{if $iterator->first}<tr>{/if}
{if $iterator->odd}<td>{/if}
<a n:href="Homepage:clanky 'zobraz' => $hlavni->idnav">{$hlavni->nazev}</a></td>
{if $iterator->last}</td>{/if}
{if $iterator->even}<td>{/if}
<a n:href="Homepage:clanky 'zobraz' => $hlavni->idnav">{$hlavni->nazev}</a></td>
{if $iterator->last}</td>{/if}
{if $iterator->last}</tr>{/if}
{if $iterator->last}</table>{/if}
{/foreach}
{else}
<p>V tomto menu nejsou žádné odkazy</p>
{/if}
{/block}
Ještě jsem uvažoval nad požitím wrappers, ale toto se zřejmě používá spíš jen u formulářů. Děkuji za každou radu.
- Bazylek
- Člen | 22
Ještě jednou jsem si prostudoval makra a vyřešil jsem to tímto způsobem. Snad jsem to dobře pochopil.
{block pravemenu}
{if count($menuhlavni) > 0}
{foreach $menuhlavni as $hlavni}
<a class="hlavni{$iterator->odd}" n:href="Homepage:clanky 'zobraz' => $hlavni->idnav">{$hlavni->nazev}</a></td>
{/foreach}
{else}
<p>V tomto menu nejsou žádné odkazy</p>
{/if}
{/block}
Generuje mi to tento kod pro:
<div class="menu-hlista-pravah">
<a class="hlavni1" href=".../odkaz=7">Kdo jsme</a></td>
<a class="hlavni" href=".../odkaz=8">Co nabizíme</a></td>
<a class="hlavni1" href=".../odkaz=9">Kontakt</a></td>
<a class="hlavni" href=".../odkaz=10">Tipy a rad</a></td>
<a class="hlavni1" href="../odkaz=11">Napsali o nás</a></td>
<a class="hlavni" href="../odkaz=12">Partneři</a></td>
<a class="hlavni1" href=".../odkaz=13">Forum</a></td>
<a class="hlavni" href=".../odkaz=14">Archív</a></td>
</div>
Pak už stačilo jenom v css nadefinovat ptřebné poziciování
a.hlavni {
…
}
a.hlavni1 {
…
}
Omlouvám se za ukvapený dotaz. Snad to někomu pomůže.
- _Martin_
- Generous Backer | 679
Ještě o kousek hezčí by bylo nezneužívat přetypování a učesat podmínku:
{block #pravemenu}
{foreach $menuhlavni as $polozka}
<a n:class="hlavni, $iterator->odd ? odd : even" n:href="Homepage:clanky, zobraz => $polozka->idnav">{$polozka->nazev}</a>
{/foreach}
<p n:if="!count($menuhlavni)">V tomto menu nejsou žádné odkazy</p>
{/block}
Jo, a asi ti tam utekla nějaká osamostatněná buňka
</td>
.
- Tomas Jancik
- Člen | 103
k samotnemu CSS bych jeste doporucil prejmenovani class na even a odd aby to
davalo vetsi smysl…
pripadne pouziti CSS3 a nth-child
- 22
- Člen | 1478
opravdu dobrá rada s tím CSS3 vzhledem k podpoře http://www.quirksmode.org/…ontents.html