Pristup ke konkretnimu indexu v sablone

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

Ahoj, v prezenteru si posilam do sablony data z databaze (seznam filmu)

public function beforeRender()
{
    $this->template->films = $this->filmsRepository->findAll()->order('name DESC');
}

V sablone bych potreboval pritupovat jen k urcitym indexum, ovsem netusim jak. Hranate zavory jako pri praci s polem nefunguji.

{var $i = 1}
{foreach [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z] as $letter}
	{var $temp = false}
	{while substr(films[$i]->name,0,1)==$letter}
             something...
             {var $i++}
        {/while}
        something...
        </li>
{/foreach}

Opravdu netusim jak pristoupim jen k urcitym radkum z dat z db. Dekuji

Petr Hudík
Člen | 49
+
0
-

Pokud potřebuješ vypsat seznam rozdělený na písmena abecedy, tak řešením by mohlo být normálně vypsat všechny řádky z db a v případě, že se změní první písmeno, tak ho vypsat.

Editoval Petr Hudík (6. 2. 2013 20:54)

porosmar
Člen | 2
+
0
-

Takhle to ± resim, akorat to mam pro vypis v menu, najede se na pismeno a rozeve se seznam danych filmu. Mam pole pismen a serazeny seznam filmu. Vypisu pismeno a zacnu projizdet seznam filmu a vypisuju je. Jakmile se zmeni prvni pismeno filmu tak vypisu nove pismeno a seznam zacnu projizdet od pozice kde jsem zkoncil (proto hledam to prime adresovani).

hAssassin
Člen | 293
+
0
-

moc te nechapu jak to mas, ale ten vypis, co jsi uvadel v prvnim prispevku normalne funguje. Ale asi bych na to sel od lesa (rozumej od prezenteru). Primo v akci bych si ty data vytahnul ne do pole, ale uz bych si je ulozil do slovniku, kde klicem bude pocatecni pismeno filmu a hodnotou pak pole filmu zacinajicich na to pismeno. Foreach v sablone pak uz bude easy a bude pekne razeny a odpadne hafo testu a substr (sice je budes muset udelat ale tak kam patri, v prezenteru).