Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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í.

Diskuze: MVC - 4 diel - premenné k dispozícii len pre hlavný pohled (šablona) rozlozeni.phtml

Aktivity
Avatar
davidivad
Člen
Avatar
davidivad:6.12.2014 17:17

Ahojte,

už viac ako hodinu a pol si neviem rady s jednou vecou. Vychádzam z tohoto návodu http://www.itnetwork.cz/…ru-a-pohledu

Možte si všimnúť, že tam je jedna hlavná šablona (pohled) s názvom rozlozeni.phtml, do ktorej sa vkladajú premenné titulek, popis, klicova_slova. Zároveň má táto šablona v sebe ďalšiu šablónu podľa situácie (napr. chybovú šablonu, kontakt, registrace, hocičo). Čo ma fakt štve je fakt, že premenné titulek, popis a klicova_slova sú k dipozíci len pre tú hlavnú šablonu "rozlozeni.phtml" a nie pre šablony, ktoré obsahuje. Tzn. dá sa s tým pracovať len v hlavnej šablone a nie v tých podšablonách. Pre úplnosť uvádzam, že nechcem pracovať s týmito premennými, mám inú - vlastnú (súvisí s exceptions, ktoré si nastavujem) - ale situácie je taká, že s touto vlastnou premennou možem tiež pracovať len v rámci hlavnej šablony a nie v podšablone.

No neviem, či niekto pochopíte čo som chcel, najlepšie by bolo keby som napísal do diskusie pod článok, ale skor mi niekto odpovie asi tu, než tam. Budem vďačný za nejakú radu, lebo už som fakt naštvaný na seba, že to neviem rozlúštiť. :(

 
Odpovědět
6.12.2014 17:17
Avatar
Odpovídá na davidivad
Matúš Petrofčík:6.12.2014 17:29

Tak si pošli (nastav) nejakú premennú z hlavnej šablóny (SmerovacKontroler) do podšablony (napr. ClanokKontroler).
Napríklad: v SmerovacKontroler si pridaj riadok

$this->kontroler->data["mojaPremenna"] = $mojaPremenna;

Až po vykonaní metódy execute() ak nechceš, aby ti niečo túto premennú prepísalo počas metódy execute().

Alebo to môžeš urobiť naopak, že z podšablony (kontroleru konkrétnej šablony, napr. ClanokKontroler) si vytiahneš v hlavnej šablone (SmerovacKontroler) premennú presne tak isto, ako si vyťahuješ obsah premennej $this->header alebo $this->data

$mojaPremenna = $this->kontroler->data["mojaPremenna"];
Nahoru Odpovědět
6.12.2014 17:29
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na davidivad
Matúš Petrofčík:6.12.2014 17:33

"Čo ma fakt štve je fakt, že premenné titulek, popis a klicova_slova sú k dipozíci len pre tú hlavnú šablonu "rozlozeni.phtml" a nie pre šablony, ktoré obsahuje. Tzn. dá sa s tým pracovať len v hlavnej šablone a nie v tých podšablonách."

Teda :D toto som preskočil pri čítaní

Ak chceš pracovať s titulkou, klúčovými slovami a podobne, napr. ich vypísať v podšablóne (napr. ClanokKontroler), tak priamo v danom kontroleri si pridaj takýto riadok pre každú premennú:

$this->data["titulek"] = $this->header["titulek"];

A potom ich môžeš v tej podšablóne napríklad vypísať ako ostatné premenné

<?=$titulek?>

EDIT:
Ešte doplním že všetky hodnoty v poli $this->data sa pre šablónu vypíšu ako premenné, ktoré budú mať také meno, aký majú kľúč v poli $this->data
príklad: v kontroleri máme toto:

$this->data = array(
"prvy" => 1,
"druhy" => 2,
"lalalala" => "lorem ipsum lalalala"
);

v šablóne teda môžeme použiť toto

<?=$prvy?>
<?=$druhy?>
<?=$lalalala?>

tieto premenné su už ošetrené proti XSS útokom, ak obsahujú napr html tagy, tak sa zobrazia ako text, nie ako súčasť html kódu

bez tejto ochrany ich môžeme vypísať tak, že pred nich pridáme znak _

<?$_prvy?>
Editováno 6.12.2014 17:38
Nahoru Odpovědět
6.12.2014 17:33
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
Matúš Petrofčík:6.12.2014 17:40

oprava: na konci komentáru nemá byť <?$_prvy?>, ale <?=$_prvy?>

Nahoru Odpovědět
6.12.2014 17:40
obsah kocky = r^2 ... a preto vlak drnká
Avatar
davidivad
Člen
Avatar
Odpovídá na Matúš Petrofčík
davidivad:6.12.2014 19:21

Dobré, dobré. díky moc, si poklad. Už sa mi to podarilo nejak podľa tvojej rady sprevádzkovať a teraz to idem preskúmať a pochopiť, lebo zatiaľ to bola taká alchýmia...:D

 
Nahoru Odpovědět
6.12.2014 19:21
Avatar
Odpovídá na davidivad
Matúš Petrofčík:6.12.2014 19:46

zamálo ;)

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
6.12.2014 19:46
obsah kocky = r^2 ... a preto vlak drnká
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 6 zpráv z 6.