IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
tbartolen
Člen
Avatar
tbartolen:26.3.2018 15:07

Zdar,
Mám bunku v tabulce. Chci jí zobrazit jen v případě, kdy se hodnota nerovná nule. Píšu to takhle, nefunguje to, už nevím, kde bych měl hledat...jde to vůbec? Děkuju za radu

 <tr n:foreach="$months as $week => $month">
           <td n:if={"$colspan>'0'"}></td>
<!--nif kdyz je vetsi nez nula a zaroven kdyz je $iterator-->
            <td  n:foreach="$month as $dayKey => $day">{$day}</td>

        </tr>

Komentář je jen můj plán práce, to si nevšímejte

Odpovědět
26.3.2018 15:07
Navštiv www.fb.com/skkelticz
Avatar
Odpovídá na tbartolen
Martin Konečný (pavelco1998):26.3.2018 15:08

Ahoj,

<td n:if="$colspan > 0">

osobně ale doporučuji řídící konstrukce (if, foreach) zapisovat jako makra a ne jako n:if atributy.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
26.3.2018 15:08
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
tbartolen
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
tbartolen:26.3.2018 15:13

Děkuji, ale je divné, že se mi TD nezobrazí, ačkoliv je $colspan = 4. Proč je makro lepší než atribut?

Nahoru Odpovědět
26.3.2018 15:13
Navštiv www.fb.com/skkelticz
Avatar
tbartolen
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
tbartolen:26.3.2018 15:31

Už to jede, chyba v operátoru, děkuji

Nahoru Odpovědět
26.3.2018 15:31
Navštiv www.fb.com/skkelticz
Avatar
Odpovídá na tbartolen
Martin Konečný (pavelco1998):26.3.2018 15:33

To jsi podle mě spíše něco přehlédl nebo tak, což se běžně stává, ta konstrukce se mi jinak zdá v pořádku.

Důvod, proč mám raději if a foreach v makrech, je přehlednost. Dá se to trochu naprasit i stylem, že se dá těžko všimnout, že tam vůbec nějaká podmínka je, např.

<table>
        <tr>
                <th>ID</th>
                <th>Jméno</th>
                <th>Role</th>
                <th>E-mail</th>
                <th></th>
        </tr>
        <tr n:foreach="$users as $user">
                <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell" id="cell_id">{$user->id}</td>
                <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell" id="cell_name">{$user->getFullName()}</td>
                <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell" n:if="$user->isAdmin()" id="cell_role">{$user->role}</td>
                <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell" id="cell_email">{$user->email}</td>
                <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell table-options" n:if="$user->canDelete() || $testMode" id="cell_editArea">
                        <a n:href="delete!">Smazat uživatele</a>
                </td>
        </tr>
</table>

Když bys takový kód dostal do ruky, nebo ho napsal sám a vrátil se k němu třeba za půl roku, dokážeš se v tom hned vyznat a zjistit, že role a poslední sloupec se vykresluje dle podmínky? A to nemluvím o tom, že někdy ta struktura je složitější a vyžaduje to třeba dva cykly v sobě :D
Podle mě by ty řídící konstrukce měly být patrné hned na první pohled. Když nechám HTML naprasené a alespoň z nich vyndám řídící konstrukce, bude to dle mě daleko přehlednější a na první pohled vidím, jaký je tam cyklus a jaké podmínky.

<table>
        <tr>
                <th>ID</th>
                <th>Jméno</th>
                <th>Role</th>
                <th>E-mail</th>
                <th></th>
        </tr>

        {foreach $users as $user}
                <tr>
                        <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell" id="cell_id">
                                {$user->id}
                        </td>
                        <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell" id="cell_name">
                                {$user->getFullName()}
                        </td>

                        {if $user->isAdmin()}
                                <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell" id="cell_role">
                                        {$user->role}
                                </td>
                        {/if}

                        <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell" id="cell_email">
                                {$user->email}
                        </td>

                        {if $user->canDelete() || $testMode}
                                <td style="width: 200px; height: 100px;" n:class="$user->isAdmin() ? admin, table-cell table-options" id="cell_editArea">
                                        <a n:href="delete!">Smazat uživatele</a>
                                </td>
                        {/if}

                </tr>
        {/foreach}
</table>

Asi záleží na vkusu, já osobně měl vždy s n:if a n:foreach problém, když jsem potřeboval něco upravovat, protože jsem polovinu času zabil studiem, jak se vlastně to HTML nakonec vykreslí.

Nahoru Odpovědět
26.3.2018 15:33
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Dominik Gavrecký:26.3.2018 18:59

To je vec názoru a nemôžeš to tvrdiť generálne ... Nech si každý používa čo chce, koniec koncov v tomto prípade je to úplne jedno.

Nahoru Odpovědět
26.3.2018 18:59
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Odpovídá na Dominik Gavrecký
Martin Konečný (pavelco1998):26.3.2018 20:10

Právě proto jsem psal ten poslední odstavec. Jen takové doporučení, netvrdím, že je správně jen jedna možnost.

Nahoru Odpovědět
26.3.2018 20:10
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Petr Čech:27.3.2018 10:43

To je spíš o tom, že každé je hodné pro jinou situaci, často ti zase n: makra zvýší čitelnost. A dávat si řídící makro jako n:if je hovězí nápad, to by mělo být vždy první.
Třeba tohle je skvěle čitelné:

<div n:foreach="$flashes as $flash" n:class="alert, 'alert-' . $flash->type">
    {$flash->message}
</div>
Editováno 27.3.2018 10:45
Nahoru Odpovědět
27.3.2018 10:43
the cake is a lie
Avatar
Odpovídá na Petr Čech
Martin Konečný (pavelco1998):27.3.2018 11:13

Já tomu rozumím, ale řekni to těm, kteří ty n: řídící makra píší prasácky a pak zabíjíš půlku svého času studiem kódu :D Já to psal jen jako takové osobní doporučení ze zkušenosti, ať každý píše, jak je to jemu / jeho zaměstnavateli příjemné.

Nahoru Odpovědět
27.3.2018 11:13
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.