Diskuze: MVC - 4 diel - premenné k dispozícii len pre hlavný pohled (šablona) rozlozeni.phtml
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
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"];
"Č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 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?>
oprava: na konci komentáru nemá byť <?$_prvy?>, ale <?=$_prvy?>
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
zamálo
Zobrazeno 6 zpráv z 6.