Autor Zpráva
DaveL1
Profil *
Ahoj,

dělám přes Smarty šablonu pro fotogalerii, ale narazil jsem na problém, v php jsem ho řešil přes switch a case ale u Smarty jsem v manuálu nic podobného nenašel, nevíte někdo o něčem takovém, nebo jak udělat, abych měl viz. kód dva sloupce v tabulce vedle sebe? Díky

------------------------------------------------------

  <table>
  {foreach from=$fotogalerie item=item}
  <tr>
    <td>{$item.nazev}</td>
  </tr>
  <tr>
    <td><a href="{$item.adresa}.jpg" title="{$item.nazev}"><img src="{$item.adresa}.jpg" alt="nahled_{$item.nazev}.jpg" /></a></td>
  </tr>
  <tr>
    <td>{$item.popis}</td>
  </tr>    
  {/foreach}
  </table>
venca12
Profil
Ahoj,

tvůj post je hodně zmatečný a je velmi obtížné, ne-li nemožné z něj pochopi o co ti skutečně jde.

Aby jsi měl dva nebo třeba tři sloupce vedle sebe v tabulce, stačí vyhodit některé části tr tagů z tvého kódu, například takto:

<table>
  {foreach from=$fotogalerie item=item}
  <tr>
    <td>{$item.nazev}</td>
    <td><a href="{$item.adresa}.jpg" title="{$item.nazev}"><img src="{$item.adresa}.jpg" alt="nahled_{$item.nazev}.jpg" /></a></td>
    <td>{$item.popis}</td>
  </tr>    
  {/foreach}
  </table>


Pokud tímto kódem nahradíš tvůj kód, budou na jednom řádku tři sloupce vedle sebe.

---

Ve smarty můžeš místo konstruktu swtich-case, použít sadu příkazů if-elseif, například takto:

{if $a == 1}
  vypis 1
{elseif $a == 2}
  vypis 2
{elseif $a == 3}
  vypis 3
{else}
  vypis cokoli jineho
{/if}
kajaman
Profil
venca12

hmm, taky jsem to nechápal, ale nějak se mi nechtělo věřit, že ten dotaz je fakt na tohle....
:)
DaveL1
Profil *
Ne, jde mi o to mít dvě <td> o třech řádcích vedle sebe.

------------------
| jedna | dva |
------------------
| tři | čtyři |
------------------
| pět | šest |
------------------

Dřív jsem to dával do case-switch, ale teď to pomocí foreach ve smarty potřebuju vypsat takto vedle sebe a k tomu potřebuji nejak pozměnit můj výše uvedený kód.


Děkuji.
kajaman
Profil
Ale to snad není vůbec o Smarty, to je o HTML tabulce, tak jak píše venca12
DaveL1
Profil *
Jasně, ale když použiju kod níže, abych měl 2 tabulky vedle sebe, tak se mi to zduplikuje a bude se mi vše vypisovat 2x, ale já prostě chci jen rozdělit výpis na dva sloupce, v php je řešení switch&case, jak to udelat přes Smarty?

  <table>
  {foreach from=$fotogalerie item=item}
<tr><td>
  <table>
  <tr><td>{$item.nazev}</td></tr>
  <tr><td><img src="{$item.adresa}.jpg" alt="" /></td></tr>
  <tr><td>{$item.popis}</td></tr>
  </table>
</td>
<td>
  <table>
  <tr><td>{$item.nazev}</td></tr>
  <tr><td><img src="{$item.adresa}.jpg" alt="" /></td></tr>
  <tr><td>{$item.popis}</td></tr>
  </table>
</td></tr>
  {/foreach}
  </table>
venca12
Profil
DaveL1 Řešením je použít transpozici na pole parametrů, tzn. $fotogalerie a potom vypsat pomocí php. Aplikace algoritmů transpozice si myslím není součást presentační logiky a proto bych ji umístil do samotného skriptu php, před předání hodnot do smarty.
DaveL1
Profil *
venca12
Ok, teď mi to prosím ještě vysvětli česky :D transpozice?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: