Obrazky do viacerych riadkov

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
cujan
Člen | 410
+
0
-

Caute vykreslujem obrazky na stranku takto

<?php
<table id="obrazokPopis">
    <tr>
     {foreach $obrazky as $obrazok}
	<td><image src="/atlasMineralov/www/images/naleziska/{$obrazok -> nazovSuboru}" width="200" height="200" alt="{$obrazok -> popis}"></td>

      {/foreach}
    </tr>

</table>
?>

ako vykreslim obrazky do viacerych riadkov? napr. 4 na riadok, a ak ich bude 7 tak budu uz v dvoch 4 a 3

a este jedn avec, potrebujem v selecte z db aby ak sa nachadzaju rovnake riadky s hodnotami tak nech sa vypise iba jedn – v sql prikaz DISTICT myslim…ako ho uplatnit tu?
vdaka

Editoval cujan (30. 1. 2013 22:35)

enumag
Člen | 2118
+
0
-

https://latte.nette.org/cs/tags#…
Hledej makra first, last a sep.

cujan
Člen | 410
+
0
-

a stym DISTINCT my nevies poradit?

enumag
Člen | 2118
+
0
-

Ne, ale poradím ti abys šetřil s těmi „y“. ;-)

tomas.lang
Člen | 53
+
0
-

Osobně bych to neřešil přes DISTINCT, ale přes GROUP BY, tj. pokud by se měli napříklady duplikovat názvy (smyšlený sloupeček nazev), tak by to ve tvém kódě místo takto:

<?php
{foreach $obrazky as $obrazok}
  {* do something here ... *}
{/foreach}
?>

mohlo vypadat takto:

<?php
{foreach $obrazky->group('nazev') as $obrazok}
  {* do something here ... *}
{/foreach}
?>
cujan
Člen | 410
+
0
-

takze obrazky do viacerych riadkov vypisujem tymto kodom

<?php
<table id="obrazokPopis">
   {var $prechod = 0}
     {foreach $obrazky as $obrazok}
        {$prechod++}

     {if $iterator->first}
        <tr>
        <td><image src="/atlasMineralov/www/images/naleziska/{$obrazok -> nazovSuboru}" width="200" height="200" alt="{$obrazok -> popis}"></td>
        {elseif $prechod < 5}
        <td><image src="/atlasMineralov/www/images/naleziska/{$obrazok -> nazovSuboru}" width="200" height="200" alt="{$obrazok -> popis}"></td>
        {elseif $prechod = 5}
        </tr><tr>
        <td><image src="/atlasMineralov/www/images/naleziska/{$obrazok -> nazovSuboru}" width="200" height="200" alt="{$obrazok -> popis}"></td>
        {$prechod = 0}
        {elseif $iterator->last}
        <td><image src="/atlasMineralov/www/images/naleziska/{$obrazok -> nazovSuboru}" width="200" height="200" alt="{$obrazok -> popis}"></td>
        </tr>
        {/if}
    {/foreach}
    <tr>

</table>
?>

obrazky my vypise v pohode tak ako chcem, len nechapem preco pred prvy riadok s fotkami vypise vsetky hodnoty premennej $prechod .....

Tabetha
Člen | 140
+
0
-

takto by ti to nešlo?

<table id="obrazokPopis">
     {foreach $obrazky as $obrazok}
        {first 4}<tr>{/first}
                <td><image src="/atlasMineralov/www/images/naleziska/{$obrazok->nazovSuboru}" width="200" height="200" alt="{$obrazok -> popis}"></td>
         {last 4}</tr>{/last}
        {* Timto si nie som istý ;)  *}
        {if (count($obrazky) % 4) != 0}
            </tr>
        {/if}
    {/foreach}
</table>

Editoval Tabetha (3. 2. 2013 20:45)

cujan
Člen | 410
+
0
-

no vyzera to super ale nejako to nefunguje…

cujan
Člen | 410
+
0
-

prebehol som to, upravil a funguje … vdaka

<?php
<table id="obrazokPopis">
     {foreach $obrazky as $obrazok}
        {first 4}<tr>{/first}
                <td><image src="/atlasMineralov/www/images/naleziska/{$obrazok->nazovSuboru}" width="200" height="200" alt="{$obrazok -> popis}"></td>
         {last 4}</tr>{/last}

        {if (count($obrazky) % 4) == 0}
        </tr> <tr>
        {/if}
    {/foreach}
</table>
?>
Tabetha
Člen | 140
+
0
-

Ono to nešlo lebo som zabudol to IF dať do {last}{/last} … takže takto by to fachať malo správne … ak teda chápem ako si to chcel mať

<table id="obrazokPopis">
     {foreach $obrazky as $obrazok}
        {first 4}<tr>{/first}
                <td><image src="/atlasMineralov/www/images/naleziska/{$obrazok->nazovSuboru}" width="200" height="200" alt="{$obrazok -> popis}"></td>
         {last 4}</tr>{/last}

        {last}
            {if (count($obrazky) % 4) != 0}
                </tr>
            {/if}
        {/last}
    {/foreach}
</table>
cujan
Člen | 410
+
0
-

oki ide to …vdaka…

kubajz
Člen | 47
+
0
-

Elegantně dle dokumentace

{foreach $rows as $row}
    {first}<table>{/first}
        {first 4}<tr>{/first} {* nový řádek po 4 záznamech *}
            <td>{$row->value}</td>
        {last 4}</tr>{/last}
    {last}</table>{/last}
{/foreach}