PHP týden Předvánoční slevová akce
Další šance dokončit svůj projekt a získat ceny v hodnotě 10.000 Kč! Pokračování úspěšné letní soutěže - ITnetwork winter
Využij předvánočních slev a získej od nás 20 % bodů navíc zdarma! Zároveň také probíhá PHP týden se slevou na e-learning až 80 %

Lekce 4 - Propojení kontroleru a pohledu

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V minulé lekci, Směrovač (router), jsme si vytvořili směrovač, tedy router. Skončili jsme tím, že z URL adresy poznáme jméno třídy kontroleru a jeho další parametry. Dnes systém částečně zprovozníme a zobrazíme si jednoduchý článek.

Pohledy

Začněme s něčím jednoduchým a připravme si 2 pohledy. Ty následně propojíme s kontrolery a konečně si něco zobrazíme.

Rozložení stránky

Jak víme, kontroler má v sobě uložený název pohledu, který uživateli zobrazí. SmerovacKontroler bude zobrazovat pohled s rozložením stránky, to bude obsahovat hlavičku, navigační menu, patičku a vše kolem stránky. Co obsahovat nebude bude ten hlavní obsah, který se sem vloží jako pohled z vnořeného kontroleru.

Jelikož v tomto seriálu nemá smysl popisovat HTML a CSS, připravil jsem pro vás jednoduchou šablonu pro rozložení stránky. Ve složce pohledy si vytvoříme soubor rozlozeni.phtml. Do něj vložíme následující kód:

<!DOCTYPE html>
<html lang="cs-cz">
    <head>
        <base href="/localhost" />
        <meta charset="UTF-8" />
        <title><?= $titulek ?></title>
        <meta name="description" content="<?= $popis ?>" />
        <meta name="keywords" content="<?= $klicova_slova ?>" />
        <link rel="stylesheet" href="style.css" type="text/css"/>
    </head>

    <body>
        <header>
            <h1>ITnetworkMVC - ukázkový web</h1>
        </header>

        <nav>
            <ul>
                <li><a href="clanek/uvod">Úvod</a></li>
                <li><a href="clanek">Články</a></li>
                <li><a href="kontakt">Kontakt</a></li>
            </ul>
        </nav>
        <br clear="both" />

        <article>

        </article>

        <footer>
            <p>Ukázkový tutoriál pro jednoduché MVC z programátorské sociální sítě
            <a href="http://www.itnetwork.cz" target="_blank">itnetwork.cz</a>.</p>
        </footer>
    </body>
</html>

Na zdrojovém kódu si všimneme několika věcí. Zaprvné je to z 99% HTML, je hezky přehledný a dobře strukturovaný. Také používám HTML 5 tagy, ale to by dnes již mělo být samozřejmostí.

V hlavičce nalezneme tag <base>, ten určuje kořenovou složku webu. Ta je důležitá např. pro obrázky, soubory css, ikony atd. Jelikož používáme hezká URL s lomítky, prohlížeč by si myslel, že jsme zanořeni v nějakých složkách. Takto mu explicitně sdělíme, že chceme pracovat z kořene. Na produkci si localhost musíte přepsat na absolutní URL adresu webu, tedy např.: "http://www.do­mena.cz/". Teoreticky by měla fungovat i hodnota "/", ale jeden nejmenovaný prohlížeč s modrým "e" to neumí.

Všimneme si PHP direktiv v hlavičce stránky:

<title><?= $titulek ?></title>
<meta name="description" content="<?= $popis ?>" />
<meta name="keywords" content="<?= $klicova_slova ?>" />

Těmi vkládáme proměnné z kontroleru (přesněji z jeho pole $data). V žádném případě nebudeme v šabloně vkládat HTML do PHP, naopak vkládáme minimum PHP do HTML a to ještě tak, aby zůstala zachována HTML struktura. Jistě víte, že:

<?= $promenna ?>

je zkrácený zápis tohoto:

<?php echo $promenna; ?>

PHP má mnoho takovýchto syntaktických zlepšováků pro šablony a proto si s ním krásně vystačíme bez dalšiho šablonovacího jazyka. Často zaměňuji termíny šablona a pohled, myslím tím totéž, jelikož v našem MVC je pohled realizován phtml šablonou.

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Poslední zajímavou věcí je tělo článku, tedy mezi tagy <article>. Všimněte si, že je zatím prázdné, časem právě sem vypíšeme pohled vnořeného kontroleru.

Chyba

Jako další šablonu vytvoříme stránku chybovou s názvem chyba.phtml. Zobrazí se v případě, že uživatel zadal nesmyslnou URL adresu. Její HTML kód bude následující:

<h1>Chyba 404</h1>
<p>Požadovaná stránka nebyla nalezena, zkontrolujte prosím URL adresu</p>

Styl

Co by to bylo za web bez stylu? Připravil jsem samozřejmě i ten. V kořenové složce s webem vytvoříme soubor style.css, jeho obsah bude následující:

body {
    font-family: verdana;
    font-size: 14px;
    width: 900px;
    margin: 0 auto;
}

h1 {
    text-align: center;
    color: #444444;
    text-shadow: 3px 3px 3px #aaaaaa;
}

footer {
    font-size: 11px;
    text-align: center;
    padding-top: 20px;
}

article {
    text-shadow: 3px 3px 3px #aaaaaa;
}

nav ul {
    list-style-type: none;
}

nav li {
    float: left;
    margin-right: 15px;
}

nav a {
    background: #6FA4F8;
    color: white;
    padding: 5px 10px;
    border-radius: 10px;
    text-decoration: none;
    border: none;
    cursor: pointer;
}

nav a:hover {
    background: #2976f8;
    color: #EEEEEE;
    text-decoration: none;
}

Až na pár CSS3 vlastností na něm není nic zajímavého.

Výpis pohledů

Pohledy máme založené, kontrolery máme založené, pojďme aplikaci konečně zprovoznit.

Přesuneme se do SmerovacKontroler, kde v metodě zpracuj() vymažeme kontrolní výpisy z minula a budeme v ní pokračovat. Pokud není zadán žádný kontroler (první parametr URL adresy je prázdný nebo úplně chybí), přesměrujeme na úvodní článek. Ten sice ještě neexistuje, nicméně s ním již můžeme počítat.

public function zpracuj($parametry)
{
    $naparsovanaURL = $this->parsujURL($parametry[0]);

    if (empty($naparsovanaURL[0]))
        $this->presmeruj('clanek/uvod');
    $tridaKontroleru = $this->pomlckyDoVelbloudiNotace(array_shift($naparsovanaURL)) . 'Kontroler';

Pokud skript pokračuje dál, máme název třídy kontroleru a podíváme se, zda opravdu existuje. Pokud ano, vytvoříme její instanci. Pokud ne, přesměrujeme na chybovou stránku.

if (file_exists('kontrolery/' . $tridaKontroleru . '.php'))
    $this->kontroler = new $tridaKontroleru;
else
    $this->presmeruj('chyba');

Máme instanci vnořeného kontroleru tam, kde jsme ji chtěli mít. Nyní na vnořeném kontroleru zavoláme také metodu zpracuj() a necháme ho provést nějakou jeho logiku, později to např. u článku bude jeho vyhledání v databázi. Přesněji kontroler zavolá logiku v modelu, ale nepředbíhejme.

$this->kontroler->zpracuj($naparsovanaURL);

Zbývá nastavení pohledu směrovače, tedy šablony s rozložením webu.

Vytvoříme si několik proměnných pro šablonu. Již víme, že jsme v šabloně použili $titulek, $klicova_slova a $popis. Také víme, že proměnné šabloně předáme jako klíče v poli $this->data[]. Jako hodnoty do šablony vložíme vždy titulek, popis a klíčová slova, která má vložený kontroler. Kód bude vypadat takto:

$this->data['titulek'] = $this->kontroler->hlavicka['titulek'];
$this->data['popis'] = $this->kontroler->hlavicka['popis'];
$this->data['klicova_slova'] = $this->kontroler->hlavicka['klicova_slova'];

Nakonec zbývá nastavit pohled, to uděláme jednoduše dosazením názvu souboru s pohledem do atributu $pohled:

// Nastavení hlavní šablony
$this->pohled = 'rozlozeni';

SmerovacKontroler je hotový.

ChybaKontroler

Vytvořme si konečně náš první kontroler pro nějakou součást webu. Bude se samozřejmě jednat o chybovou stránku. Ve složce kontrolery založíme ChybaKontroler.php s následujícím obsahem:

class ChybaKontroler extends Kontroler
{
    public function zpracuj($parametry)
    {
    // Hlavička požadavku
    header("HTTP/1.0 404 Not Found");
    // Hlavička stránky
    $this->hlavicka['titulek'] = 'Chyba 404';
    // Nastavení šablony
    $this->pohled = 'chyba';
    }
}

Kontroler odešle prohlížeči hlavičku, aby věděl, že je na chybové stránce. Jinak nedělá nic jiného, než že podstránce nastaví titulek a šablonu.

Máme hotovo. To bylo rychlé, že? Podobným způsobem budeme nyní do systému přidávat další součásti.

Zadrátování

A jsme ve finále. Do index.php připojme za volání metody zpracuj() na směrovači také metodu vypisSablonu(). Zde je opět krásně vidět, jak jsou logika a výpis odděleny na 2 samostané úlohy.

$smerovac->vypisPohled();

Když nyní zadáme libovolnou URL adresu, budeme přesměrování na adresu "chyba", kde směrovač zavolá ChybaKontroler. Uvidíme, že zafungoval směrovač a vypsal nám šablonu.

Chyba 404
http://localhos­t/chyba

Šablona vnořeného kontroleru (ChybaKontroleru) vypsaná není, pojďme to napravit. Na prázdné místo v tagu <article> v šabloně rozlozeni.phtml vložme šablonu vnořeného kontroleru. Jelikož šablona se zpracovává v SmerovacKontroler, můžeme jednoduše přistoupit k vnořenému kontroleru jako k instanční proměnné. Toto do pohledů úplně nepatří, ale v rozložení je to nutné:

<?php $this->kontroler->vypisPohled(); ?>

Výsledek:

Chyba 404
http://localhos­t/chyba

Konečně něco funkčního, i když je to zatím jen chybová stránka :) Příště si v lekci Kontaktní formulář do systému přidáme jednoduchý kontaktní formulář.


 

Stáhnout

Staženo 3469x (7 kB)
Aplikace je včetně zdrojových kódů v jazyce PHP

 

 

Článek pro vás napsal David Čápka
Avatar
Jak se ti líbí článek?
25 hlasů
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor sítě se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.
Předchozí článek
Směrovač (router)
Všechny články v sekci
Jednoduchý redakční systém v PHP objektově (MVC)
Miniatura
Následující článek
Kontaktní formulář
Aktivity (9)

 

 

Komentáře

Avatar
Kit
Redaktor
Avatar
Kit:24.12.2012 12:11

base href by se také mělo doplňovat dynamicky, abys mohl jednu šablonu používat pro více webů a nemusel ji pokaždé přepisovat. Můžeš si ji vytáhnout třeba z $_SERVER["HTTP_HOS­T"].

To lomítko tam skutečně nepatří, ani před localhost.

Odpovědět
24.12.2012 12:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
berry309
Redaktor
Avatar
berry309:1.1.2013 22:36

Ahoj, tak tady jsem se trosku zasek. Proste pokud chci nacist stranku tak jen bila obrazovka. Ani pokud chci jen index, ani pokudd vypisu clanek/clanek1. Proste chyba bude asi v <base> ja totiz mam cestu localhost/RS-lite, kdyz tam ale pridam to RS-lite tak stale nic.

<base href="localhost/RS-lite" />

Zkousel jsem vsechno mozny, jinak mam vse podle tutorialu, ted alespon myslim. ona ani ta stazena verze nejde, taky bila obrazovka takze nekde mensi chybka u me, diky za rady

Odpovědět
1.1.2013 22:36
HTML a CSS kodér - www.josefberan.eu
Avatar
Kit
Redaktor
Avatar
Odpovídá na berry309
Kit:1.1.2013 22:46

Patří tam

<base href="http://localhost/RS-lite/" />
Odpovědět
1.1.2013 22:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
berry309
Redaktor
Avatar
Odpovídá na Kit
berry309:1.1.2013 23:05

diky, to me take napadlo, ovsem bila stranka je porad jak u stazeneho tak i u meho vytvoru, takze chyba bude nekde v nastaveni wampserveru, ovsem nevim kde, doted mi vsechno jelo bez problemu, jen tohle ne

Odpovědět
1.1.2013 23:05
HTML a CSS kodér - www.josefberan.eu
Avatar
Kit
Redaktor
Avatar
Odpovídá na berry309
Kit:1.1.2013 23:17

Nevím, jak funguje WAMP server, nikdy jsem ho nepoužil. Možná máš nějaký překlep v souboru PHP. V některých případech chyb se nezobrazí nic.

Odpovědět
1.1.2013 23:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
berry309
Redaktor
Avatar
Odpovídá na Kit
berry309:1.1.2013 23:50

To same mam i u stazenych scriptu, dneska uz to resit nebudu, zitra to zkusim cele znova.

Odpovědět
1.1.2013 23:50
HTML a CSS kodér - www.josefberan.eu
Avatar
Kit
Redaktor
Avatar
Odpovídá na berry309
Kit:2.1.2013 0:02

Možná máš v konfiguraci PHP nastaveno

short_open_tag = Off

Pokud chceš, aby ti zdejší příklady fungovaly, musíš si to nastavit na

short_open_tag = On
Odpovědět
2.1.2013 0:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
berry309
Redaktor
Avatar
Odpovídá na Kit
berry309:2.1.2013 0:10

To mi funguje, jinak by mi nebehalo Nette Framework. Zitra to zkusim znovu, nebo mozna jeste ted. Udelat ten Smerovac znovu. V minulem dile fungoval, takze nekde bude asi preklep jak rikas.

Odpovědět
2.1.2013 0:10
HTML a CSS kodér - www.josefberan.eu
Avatar
Kit
Redaktor
Avatar
Odpovídá na berry309
Kit:2.1.2013 0:30

Nette Framework to má takhle blbě nastavené? To by u mne nefungovalo.

Odpovědět
2.1.2013 0:30
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
berry309
Redaktor
Avatar
Odpovídá na Kit
berry309:2.1.2013 0:36

ne, ale take nepouziva uzavirani tagu <?php, ted jsem koukal po nastaveni a mam to na ON, znovu jsem si zkusil predelat Smerovac a stale nic, neco mi rika, ze bude v tom chyba asi, nebo jeste kouknu na index, ten se take menil v tomhle dile vlastne, jinak diky za trpelivost, s oop zacinam, zkousel jsem jen nette, jinak jsem zkousel vsechno mozne, ale chtel jsem se trosku pohnout a tak jsem naazil na tenhle clanek

Odpovědět
2.1.2013 0:36
HTML a CSS kodér - www.josefberan.eu
Avatar
Kit
Redaktor
Avatar
Odpovídá na berry309
Kit:2.1.2013 1:00

Uzavírání tagu <?php se nedoporučuje kvůli eventuálním bílým znakům na konci skriptu. Dělá to pak problém zejména funkci header().

Odpovědět
2.1.2013 1:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
berry309
Redaktor
Avatar
berry309:2.1.2013 11:32

Tak jsem si to zkusil nahrat na endoru abych zjistil jestli neni chyba u me a asi ne, hodilo to na me tuhle hlasku

Fatal error: Cannot instantiate abstract class Kontroler in /home/users/be­rry/test-weby.g6.cz/web/kon­trolery/Smero­vacKontroler.php on line 45

vsechno mam podle navodu ale, nikde jsem se zadneho preklepu nevsimnul

Odpovědět
2.1.2013 11:32
HTML a CSS kodér - www.josefberan.eu
Avatar
berry309
Redaktor
Avatar
Odpovídá na Kit
berry309:2.1.2013 11:43

Tak jsem si to zkusil nahrat na endoru abych zjistil jestli neni chyba u me a asi ne, hodilo to na me tuhle hlasku

Fatal error: Cannot instantiate abstract class Kontroler in /home/users/be­rry/test-weby.g6.cz/web/kon­trolery/Smero­vacKontroler.php on line 45

vsechno mam podle navodu ale, nikde jsem se zadneho preklepu nevsimnul

Odpovědět
2.1.2013 11:43
HTML a CSS kodér - www.josefberan.eu
Avatar
Kit
Redaktor
Avatar
Kit:2.1.2013 11:50

No vida, alespoň něco. Snad si toho David Čápka všimne a vyjádří se k tomu.

Odpovědět
2.1.2013 11:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na berry309
Kit:2.1.2013 11:51

No vida, alespoň něco. Snad si toho David Čápka všimne a vyjádří se k tomu.

Odpovědět
2.1.2013 11:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na berry309
David Čápka:2.1.2013 13:00

Musí se zadat URL adresa článku (jak je tu napsáno), s prázdnou URL se aplikace zatím neumí vypořádat a řeší se to v dalších dílech. Pokud ti to na localu nic nevypsalo, máš vypnuté notices, což není dobrý nápad.

Odpovědět
2.1.2013 13:00
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
berry309
Redaktor
Avatar
Odpovídá na David Čápka
berry309:2.1.2013 13:22

url samozrejme mam vypsanou -> http://localhost/…anek/clanek1
to velke RS-lite jsem predelal jen na rs, notice, no nevim jindy mi to notice ukazovalo na jinych projektech, na cistem php. Ovsem je mozne, ze se mi to zase nejakym zahadnym zpusobem vypnulo jako uz se mi nekolikrat samo predelal wamp server, zkusim to zapnout

Odpovědět
2.1.2013 13:22
HTML a CSS kodér - www.josefberan.eu
Avatar
berry309
Redaktor
Avatar
Odpovídá na David Čápka
berry309:2.1.2013 13:54

samozrejme

error_reporting = E_ALL

takze to je ok

Odpovědět
2.1.2013 13:54
HTML a CSS kodér - www.josefberan.eu
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na berry309
David Čápka:2.1.2013 13:55

Ve složce RS to fungovat nebude, pokud nemáš na webserveru nějak ošetřené, aby ji bral jako root. Když to nahraješ na Endoru do kořenové složky a zadáš celé URL, tak by to mělo fungovat.

Odpovědět
2.1.2013 13:55
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
berry309
Redaktor
Avatar
Odpovídá na David Čápka
berry309:2.1.2013 14:02

jo, uz to jde na endore, proc mi to nejde teda na localu, mam tam vic webu a ruzny testovani, nechce se mi to presouvat, jde to nejak zapnout? popravde s tim jsem se jeste nesetkal

Odpovědět
2.1.2013 14:02
HTML a CSS kodér - www.josefberan.eu
Avatar
Kit
Redaktor
Avatar
Odpovídá na berry309
Kit:2.1.2013 14:08

Udělej si na lokálu víc domén a pojede ti to. Apache to umí.

Odpovědět
2.1.2013 14:08
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
berry309
Redaktor
Avatar
Odpovídá na Kit
berry309:2.1.2013 14:09

No to je pro me spanelska vesnice :D to bude jednodusi to presunout a zkouset to :D

Odpovědět
2.1.2013 14:09
HTML a CSS kodér - www.josefberan.eu
Avatar
vladimirantos:10.1.2013 18:00

Ahoj, mám menší problém s tím že se mi nezobrazuje css. Pokud zadám url www.domena.cz/article tak to mám i s css, je tam nadpis, to modrý menu..
ale jakmile chci adresu www.domena.cz/article/clanek1, zobrazí se mi to bez stylování. Přitom když si nechám v prohlížeči zobrazit zdrojový kod, tak tam odkaz na css mám. Mohl bys mi nějak pomoci? Díky

 
Odpovědět
10.1.2013 18:00
Avatar
berry309
Redaktor
Avatar
Odpovídá na vladimirantos
berry309:10.1.2013 18:08

ahoj, mas v <head> hlavni sablony (rozlozeni.phtml) tohle:

<base href="/localhost" />

Odpovědět
10.1.2013 18:08
HTML a CSS kodér - www.josefberan.eu
Avatar
berry309
Redaktor
Avatar
Odpovídá na vladimirantos
berry309:10.1.2013 18:08

misto toho localhost tam samozrejme musi byt to co mas ty, tak jak je to v tomto clanku popsane

Odpovědět
10.1.2013 18:08
HTML a CSS kodér - www.josefberan.eu
Avatar
vladimirantos:10.1.2013 18:21

Ahoj mám tam něco takového: <base href="www.dome­na.cz">

 
Odpovědět
10.1.2013 18:21
Avatar
Odpovídá na berry309
vladimirantos:10.1.2013 18:22

Ahoj mám tam něco takového: <base href="www.dome­na.cz">

 
Odpovědět
10.1.2013 18:22
Avatar
berry309
Redaktor
Avatar
Odpovídá na vladimirantos
berry309:10.1.2013 18:32

Tak to nevim, mozna zkus ty limitak co jsou u toho co jsem psal ja :)

Odpovědět
10.1.2013 18:32
HTML a CSS kodér - www.josefberan.eu
Avatar
berry309
Redaktor
Avatar
Odpovídá na berry309
berry309:10.1.2013 19:43

samozrejme "lomitka" nejak se mi zamotali prsty na klavesnici :D

Odpovědět
10.1.2013 19:43
HTML a CSS kodér - www.josefberan.eu
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na vladimirantos
David Čápka:10.1.2013 19:48

Máš tam nějak špatně to base, musí tam být tvoje doména a lomítko. Zkus tam dát i http.

Odpovědět
10.1.2013 19:48
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Kit
Redaktor
Avatar
Odpovídá na vladimirantos
Kit:11.1.2013 10:26

Když už, tak <base href="http://www.domena.cz">. Jinak to fungovat nebude. Označení protokolu je součástí URL a bez něj nelze použít doménu ani IP adresu.

Platí to i pro <base href="http://localhost">. To označení protokolu tam prostě být musí.

Odpovědět
11.1.2013 10:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
vladimirantos:11.1.2013 15:08

No pořád to nefunguje, překontroluju si ještě celý kod, někde bude asi jiná chyba...
Ale ještě s něčím bych chtěl poradit. Máme tady menu, které je ale statické, já bych chtěl menu vytvářet dynamicky, výpisem z databáze, jak to mám udělat? Napadlo mě že bych v modelu ManagerClanku udělal metodu, která by vypisovala názvy článků z databáze a přidávala je do odkazu, ale nevím jestli ta metoda nemá vracet přímo <li><a></li> nebo na menu si mám udělat novou šablonu... a hlavně kde potom tuhle metodu volat?

 
Odpovědět
11.1.2013 15:08
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na vladimirantos
David Čápka:11.1.2013 15:09

V seriálu se toto dále řeší, zatím jsi teprve ve 4. dílu :)

Odpovědět
11.1.2013 15:09
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Kit
Redaktor
Avatar
Odpovídá na vladimirantos
Kit:11.1.2013 15:17

Model by měl z databáze vytahovat seznam pouze jako datovou strukturu. V PHP tedy v podobě pole. Teprve viewer z toho udělá seznam HTML.

Odpovědět
11.1.2013 15:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Čápka
vladimirantos:13.1.2013 0:35

Tak jsem si úspěšně projel celý seriál, vše už funguje, jenom se chci zeptat, v kterém díle je vypisování toho menu z databáze? Já to nikde nenašel, pořád mám menu statický :)

 
Odpovědět
13.1.2013 0:35
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na vladimirantos
David Čápka:13.1.2013 8:51

Databázový wrapper je hotový, šablonovou syntaxi cyklů umíš. Co ti tedy chybí?

Odpovědět
13.1.2013 8:51
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:29.1.2013 9:33

Chci se zeptat, jestli je nutný použít typ souboru .phtml, můžu použít .php s tím že tam bude i HTML ? Jde mi o to že, moje IDE, si neumí poradit s tímto typem souborů, nebo spíše správně nenapovídá a vůbec :D používám Adobe Dreamweaver CS5, vím že to není nejlepší,sice na HTML + CSS to je paráda, ale na to PHP mi už nepřijde jako nejlepší. Díky za odpověď

Odpovědět
29.1.2013 9:33
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Redaktor
Avatar
Odpovídá na Petr Nymsa
Kit:29.1.2013 10:07

Ano, je to možné.

Osobně pro šablony používám přípony ".xsl", ale PHP do nich nedávám.

Odpovědět
29.1.2013 10:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
milan.pick
Člen
Avatar
milan.pick:29.4.2013 14:53

Ahoj, mam jeden, dost mozna hloupy, dotaz, ale presto se zeptam. Jednu zde podle tohoto tutorialu a uz jsem se zaseknul. Kdyz si chci zobrazit stranku, tak je uplne bila a ja s tim nedokazi nikterak pohnout. Cetl jsem zde vse co je v diskusi napsano a presto nevim kde je chyba. Projekt mam ulozen na locale ve slozce aa/ a ted je tu ten problem. Kdyz prijdu na index, tak je stranka bila, ale kdyz zadam localhost/aa/poh­ledy/rozlozeni­.phtml tak se stranka vykresli. Base mam nastaveno na: <base href:"http://­localhost/aa/"> .
Nasel by se tu nekdo ochotny mi rici, kde je chyba? Predem moc dekuji. Milan

 
Odpovědět
29.4.2013 14:53
Avatar
Kit
Redaktor
Avatar
Odpovídá na milan.pick
Kit:29.4.2013 14:58

Raději se tagu <base> vyhýbej. Většinou to funguje lépe bez něho. Kromě toho tam místo ":" patří "=".

Odpovědět
29.4.2013 14:58
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na milan.pick
David Čápka:29.4.2013 15:00

Možná máš vypnutý výpis chyb, takhle se aplikace chová, když se někde něco pokazilo. K vyhledání chyby si můžeš stáhnout zdrojáky pod článkem.

Odpovědět
29.4.2013 15:00
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
milan.pick
Člen
Avatar
Odpovídá na David Čápka
milan.pick:30.4.2013 10:02

Diky za rychlou odpoved, i kdyz jsem se k ni dostal az ted. Zkusil jsem si stahnout tve zdrojaky, ktere jsou uvedeny zde pod kapitolou i ty celkove a muj problem to nevyresilo. Nevim, kde bych si mel pripadne zapnout vypis chyb - mam xampp. Diky za kazdou radu. Milan

 
Odpovědět
30.4.2013 10:02
Avatar
milan.pick
Člen
Avatar
Odpovídá na Kit
milan.pick:30.4.2013 10:07

diky ... tam jsem mel chybu v prepisu, v kodu mam samozrejme href="...". kdyz to zkusim bez <base> tak se mi to i presto nevypise.

 
Odpovědět
30.4.2013 10:07
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na milan.pick
David Čápka:30.4.2013 10:19

Base je tam nutný kvůli hezkým URL, jinak to fungovat nebude.

Odpovědět
30.4.2013 10:19
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
milan.pick
Člen
Avatar
Odpovídá na David Čápka
milan.pick:30.4.2013 13:17

Diky ... to chapu, bez toho <base> jsem to jen vyzkousel ... jen proste se mi to nechce zobrazit a nevim jak dal. I kdyz jsem momentalne v tupem opisovani tveho kodu, tak mi jde predevsim o pochopeni MVC. At delam co delam, tak mi to proste "spadne" v tom:

$smerovac = new SmerovacKontro­ler();
$smerovac->zpracuj(arra­y($_SERVER['RE­QUEST_URI']));
$smerovac->vypisPohled();

protoze kdyz neco napisi pred tento vysek kodu, tak se to zobrazi. Vi nekdo, prosim, v cem by mohl byt zakopany pes?? Predem dekuji

 
Odpovědět
30.4.2013 13:17
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na milan.pick
David Čápka:30.4.2013 13:37

Zapni si výpis chyb, jinak toho psa nikdy nenajdeš. Myslím, že to je ve složce c:\xampp\php\php­.ini . Najdi display_errors a zkontroluj, zda je to zapnuté. Pokud ano, tak máš chybu ve svém kódu a tu ti hledat nebudu, zdrojáky u článku jsou. Ještě můžeš špatně zadávat adresu, ale to ti napíše případná chybová hláška.

Editováno 30.4.2013 13:39
Odpovědět
30.4.2013 13:37
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:30.4.2013 13:41

Někdo má snad při testování vypnutý výpis chyb? Standardně si nechávám vypisovat i noticky.

Odpovědět
30.4.2013 13:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:30.4.2013 13:42

Jak vidíš, tak asi ano :) Musím to během seriálu asi zmínit.

Odpovědět
30.4.2013 13:42
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:30.4.2013 13:54

PHP mohu provozovat ve třech režimech:

  • jako modul Apache
  • jako CGI
  • jako CLI

Nejlepší je asi nakonfigurovat CLI i na ty noticky a moduly Apache a CGI nastavit na logování. Ve skriptech se pak už nic nemusí upravovat.

Odpovědět
30.4.2013 13:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
milan.pick
Člen
Avatar
Odpovídá na David Čápka
milan.pick:30.4.2013 14:07

tak jsem udelal nasledujici - zapnul jsem zobrazovani chyb a do jineho adresare jsem nakopiroval tve zdrojaky a nic se nezmenilo. Tak ted uz jsem fakt v koncich. Nemyslim si, ze bych byl az zase takova lama ale uz fakt nevim jak dal a rad bych to dokoncil. A jinak mi to pada zde:

if (file_exists('kon­trolery/' . $tridaKontroleru . '.php'))
$this->kontroler = new $tridaKontroleru;
else
{
header("HTTP/1.0 404 Not Found");
exit;
}

Editováno 30.4.2013 14:08
 
Odpovědět
30.4.2013 14:07
Avatar
Kit
Redaktor
Avatar
Odpovídá na milan.pick
Kit:30.4.2013 14:18

Co znamená "padá"? Myslíš si snad, že chybová hlášení budeme hledat ve svých křišťálových koulích?

Odpovědět
30.4.2013 14:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
milan.pick
Člen
Avatar
Odpovídá na Kit
milan.pick:30.4.2013 14:34

sorry ... spatne jsem se vyjadril ... tedy lepe receno se vykona pouze else jako kdyby byl byl problem v tom new $tridaKontroleru;

ted jsem zkusil si stahnout cele MVC do rootu a tam to funguje ... tak nevim, nekde delam neco blbe, ale tim uz nebudu zatezovat tuto diskusi a jdu hledat chybu. Kazdopadne Vam dekuji za pomoc

 
Odpovědět
30.4.2013 14:34
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na milan.pick
David Čápka:30.4.2013 15:25

Pokud to nemáš v rootu, tak to samozřejmě fungovat nemůže.

Odpovědět
30.4.2013 15:25
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
milan.pick
Člen
Avatar
milan.pick:30.4.2013 15:28

jeste jednou se omlouvam, ale neda mi to se nezeptat na to v cem by mohla byt chyba - v rootu localhostu mi to funguje tzn. kdyz zadam localhost tak to bezi, ale jakmile to cele dam do slozky aa/ tzn. C:\xampp\htdocs\aa tak to prestane fungovat (objevi se bila stranka) .... asi jsem fakt lama, ale presto dekuji za vasi trpelivost i rady.

 
Odpovědět
30.4.2013 15:28
Avatar
Kit
Redaktor
Avatar
Odpovídá na milan.pick
Kit:30.4.2013 15:32

Nefunguje to kvůli tomu, že se URL parsuje. Když se v cestě nachází ještě jiné slovo (adresář aa), tak se mu přiřadí chybný význam. Pokud bys upravil parser, tak by to fungovat mohlo.

Odpovědět
30.4.2013 15:32
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
milan.pick
Člen
Avatar
Odpovídá na Kit
milan.pick:3.5.2013 2:02

jasne....jen nevim, jak to upravit tak aby to fungovalo .... nemel bys prosim nejaky napad? diky

 
Odpovědět
3.5.2013 2:02
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na milan.pick
David Čápka:3.5.2013 7:00

Podle tvých reakcí to vypadá, že nerozumíš tomu, jak to funguje. V tom případě nemá úplně smysl aby ti to někdo upravoval. Četl jsi celý seriál? Docela podrobně tam každý krok vysvětluji.

Editováno 3.5.2013 7:00
Odpovědět
3.5.2013 7:00
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Edisek
Neregistrovaný
Avatar
Edisek:22.5.2013 22:01

Ahoj,
prokousal jsem se touto skvělou kuchařkou. Jen nechápu jednu věc: když mám tento tvar url http://localhost/clanek/clanek3 a vypíšu si print_r($napar­sovanaURL) před tímto kodem $tridaKontroleru = $this->pomlckyDoVel­bloudiNotace(a­rray_shift($na­parsovanaURL)) . 'Kontroler'; a pak před $this->kontroler->zpracuj($napar­sovanaURL); (ve fci pracuj ve třídě SmerovacKontroler) tak podruhé v tom poli mám hodnotu jen článek 3, což nechápu. Když si vytvořím instanci ClanekKontroler ve třídě SmerovacKontroler, tak ta fce zpracuj co se tam volá, tak se volá ta tridy ClanekKontroler nebo SmerovacKontroler?
Díky moc za odpověď. Nevím, jestli na to jdu moc vědecky nebo to spíš nechápu ;-)

 
Odpovědět
22.5.2013 22:01
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:26.6.2013 17:59

Co může způsobovat, že se mi head přesunuje do body ? Koumám to tady pěknou dobu a nevím kde by mohla být chyba

Odpovědět
26.6.2013 17:59
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:26.6.2013 19:21

Opravdu už si nevím rady. Kódy jsem porovnal a nikde chybu nevidím. Šablona je validní. Ale po vyrenderování se prsotě head přesune do body a web je nevaldiní s těmito errory.

Error Line 1, Column 2: Non-space characters found without seeing a doctype first. Expected <!DOCTYPE html>.
<!DOCTYPE html>

 Error Line 1, Column 2: Element head is missing a required instance of child element title.

<!DOCTYPE html>

Content model for element head:
    If the document is an iframe srcdoc document or if title information is available from a higher-level protocol: Zero or more elements of metadata content.
    Otherwise: One or more elements of metadata content, of which exactly one is a title element.

Error Line 1, Column 17: Stray doctype.

<!DOCTYPE html>


Error Line 2, Column 19: Stray start tag html.

<html lang="cs-cz">

Error Line 2, Column 19: Cannot recover after last error. Any further errors will be ignored.

<html lang="cs-cz">

Nevíte někdo co by to mohlo způsobovat ? Opravud prostě netuším kde je zakopaný pes :@

Editováno 26.6.2013 19:22
Odpovědět
26.6.2013 19:21
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Redaktor
Avatar
Odpovídá na Petr Nymsa
Kit:26.6.2013 19:56

Vypadá to, že se tam vecpal BOM. Zkus si to vypsat hexa a uvidíš.

Odpovědět
26.6.2013 19:56
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Kit
Petr Nymsa:26.6.2013 20:00

Díky ! Pomohlo :) Vypnul jsem BOM a jede to jak má

Odpovědět
26.6.2013 20:00
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
xnitrox
Člen
Avatar
xnitrox:31.7.2013 13:18

Ahoj,

měl bych takový poněkud hloupý dotaz... asi se trošku ztrácím v abstrakci, ale ... jak funguje to nastavování pohledů???
Resp.
$this->pohled = 'rozlozeni'; a $this->pohled = 'clanek';

Chápu, že když se zavolá obecná cesta http://localhost/clanek tak se pohled nastaví na "rozlozeni" a funkce require() nám vyplivne html kód dané šablony po zavolání metody vypisPohled() v index.php ... tohle je ještě v pohodě... co mě mate je ovšem <?php $this->kontroler->vypisPohled(); ?> proč se v těle stránky nezobrazí znovu stránka "rozlozeni", když je při zavolání http://localhost/clanek aktuální kontroler náš router???

Předem díky za objasnění :)

 
Odpovědět
31.7.2013 13:18
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na xnitrox
David Čápka:31.7.2013 13:26

Vykresluje se tam vnořená šablona jak je v článku vysvětleno.

Odpovědět
31.7.2013 13:26
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
xnitrox
Člen
Avatar
Odpovídá na David Čápka
xnitrox:31.7.2013 14:01

Ajoooo vlastně... dyť router obsahuje vnořené kontrolery přes proměnnou $kontroler !!! :D Sorry za hloupý dotaz, příště budu víc pozorný

 
Odpovědět
31.7.2013 14:01
Avatar
Alex.pec1
Člen
Avatar
Alex.pec1:31.7.2013 23:14

Ahoj,

Když chci najet na http://localhost/clanek/clanek1 aby se mě zobrazilo css, tak jedine co mě vyskočí je:

ClanekKontroler
Array ( [0] => clanek1 )

Defakto jsem kody z zkopíroval.

Moc bych byl rád za radu kde je chyba:) Předem díky.

 
Odpovědět
31.7.2013 23:14
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Alex.pec1
Michal Žůrek - misaz:1.8.2013 6:03

jsou tu těsně pod článkme soubory ke stažení.

 
Odpovědět
1.8.2013 6:03
Avatar
Alex.pec1
Člen
Avatar
Alex.pec1:1.8.2013 9:32

z toho jsem to taky zkopíroval.

 
Odpovědět
1.8.2013 9:32
Avatar
Jan Poláček
Redaktor
Avatar
Jan Poláček:10.8.2013 21:50

Opět skvělý tutoriál, bohužel jsem se tady trošku zasekl, nevím si rady, ale vůbec se mi nezpracují proměnné v šabloně (stále vidím <?= $titulek ?>), čím by to mohlo být? Původně jsem všechny části kopíroval postupně, nakonec jsem zkusil i stáhnout zip, ale ani tak se mi to nerozběhlo (používám VertrigoServ)

Díky za každou radu

Odpovědět
10.8.2013 21:50
Instrukce na adrese 0x77104f29 odkazovala na adresu paměti 0x00000014. S pamětí nelze provést operaci: written.
Avatar
lsvejda
Člen
Avatar
Odpovídá na Jan Poláček
lsvejda:1.9.2013 13:38

Pro PHP nastavit short_open_tag=On nebo použít PHP 5.4., kde "<?= is now always available, regardless of the short_open_tag php.ini option".

 
Odpovědět
1.9.2013 13:38
Avatar
Kit
Redaktor
Avatar
Odpovídá na lsvejda
Kit:1.9.2013 13:52

Tady ty zkrácenosti mi připadají zbytečné, v každém PHP souboru mám jen jeden <?php a ten zkracovat nepotřebuji. <?= nepoužívám vůbec.

Editováno 1.9.2013 13:53
Odpovědět
1.9.2013 13:52
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na lsvejda
Kit:1.9.2013 14:01

Šablona z článku by v mém podání vypadala asi takto:

<?php
echo <<<EOT
<header>
        <h1>$titulek</h1>
        <p>Publikováno: $datum</p>
</header>
<section>
        $obsah
</section>
<footer>
        <p>
                Autor: $autor
        </p>
</footer>
EOT;

Jak je vidět, žádné zkracování nepotřebuji.

Odpovědět
1.9.2013 14:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
joker.a
Redaktor
Avatar
joker.a:26.9.2013 15:20

ZDAR...snazim se ucit NETTE... a netusim jak udelat toto...

mam kontroler = presenter (SING)
mam view = template (IN)

a kdyz chci proste rict at se nacte tendle controler s timdle pohledem.. tak jen napisu $this->redirect("Sig­n:in");

A TED TEN PROBLEM... chci aby se nacetl tendle controler s timdle pohledem ale aby ten pohled byl v sazen v tudle sablonu.. @sablona.latte

jak to mam proboha udelat?? jak v tom rootovani url.. mam pridat dalsi parametr at to vyuziva tudle sablonu? nebo se to tak nedela? pokud ne, tak jak?

 
Odpovědět
26.9.2013 15:20
Avatar
Odpovídá na joker.a
Martin Konečný (pavelco1998):26.9.2013 15:42

Nejsem si jistý, jestli chápu tvůj dotaz, ale jestli má stránka vypadat dle šablony @sablona.latte, pak na začátek souboru napiš makro

{layout "@sablona.latte"}
Editováno 26.9.2013 15:42
Odpovědět
26.9.2013 15:42
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
joker.a
Redaktor
Avatar
joker.a:26.9.2013 23:44

no dat do view todle co jsi napsal ty tak to stejne nepomohlo...
ale pomohlo mi napsat do controleru tudle metodu

public function render<nazevView>()
{
$this->setLayout('<na­zevLayoutu>');
}

tudiz kdyz zavolam

<a n:href="<nazev­Controleru>:<na­zevView>">regis­trace

tak se vlastne nastartuje controler a pohled.. a v controleru je prave zminovana metoda takze se nahodi i layout..

 
Odpovědět
26.9.2013 23:44
Avatar
Kit
Redaktor
Avatar
Odpovídá na joker.a
Kit:27.9.2013 7:11
mam kontroler = presenter (SING)

Tohle vypadá hodně divně. Copak kontroler je totéž co prezenter?

BTW: Asi by si Nette zasloužilo samostatné vlákno v diskuzním fóru

Odpovědět
27.9.2013 7:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Michal Maršálek:31.12.2013 20:00

Chci se zeptat, jestli má nějaký smysl tvořit šablonu (pohled) v takovém formátu, jaký v seriálu používá David Čápka, když lze použít heredoc a mít ji v takovém formátu, jaký používá Kit. Chápu, že už pak v podstatě nejde o vkládání php do html, ale html do php, nicméně mi to přijde mnohem přehlednější. Taky se chci zeptat, jestli není lepší místo cpaní foreach konstrukcí do šablony lepší celý výsledek foreach vložit do šablony jako jednu proměnnou (u toho heredoc by to asi jinak ani nešlo).

 
Odpovědět
31.12.2013 20:00
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Maršálek
David Čápka:9.1.2014 18:38

Tutoriály jsou vždy psané tak, jak se to dělá v praxi. Sám si to samozřejmě dělej jak chceš, to už je tvoje věc.

Odpovědět
9.1.2014 18:38
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michal Maršálek
Kit:9.1.2014 18:55

Každý přístup má své opodstatnění. Mé řešení je výkonnější a šetrnější ke zdrojům, sdracovo řešení je zase rozšířenější a snáze s ním budeš hledat uplatnění.

Zadavatelé dnes nechtějí rychlé a efektivní aplikace.

Odpovědět
9.1.2014 18:55
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Robert Zemánek (bobánek):23.2.2014 15:04

Jak se to dá prosím odlaďovat protože mi to prostě nic nevypíše a nevím jak hledat chybu. soubory, třídy, fce to bych měl mít snad všechno dobře. díky :)

Odpovědět
23.2.2014 15:04
Jsem jako holub.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Robert Zemánek (bobánek)
David Čápka:23.2.2014 17:29

Chlape, v článku je napsané, že musíš zadat tu URL, aby se ti něco zobrazilo. Pokud se ti nezobrazí nic, tak máš vypnuté errory, měl bys tam mít jinak chybu.

Odpovědět
23.2.2014 17:29
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
idc
Člen
Avatar
idc:12.4.2014 23:46

Ahoj, mohl by mi někdo vysvětlit, jak to, že je možné zavolat v šabloně:

<?php $this->kontroler->vypisPohled(); ?>

Nevidím zde žádnou spojitost. Jak je možné, že se můžu jednoduše přes $this odkázat na ten daný kontroler? Děkuji za pomoc.

 
Odpovědět
12.4.2014 23:46
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na idc
Petr Nymsa:13.4.2014 10:26

Jelikož šablona je načtená ve třídě RouterControler, můžeš snadno použít $this

Odpovědět
13.4.2014 10:26
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
idc
Člen
Avatar
Odpovídá na Petr Nymsa
idc:13.4.2014 13:54

Poté jsem na to také přišel, ale děkuji za odpověď :)

 
Odpovědět
13.4.2014 13:54
Avatar
ladislavmuzik:17.4.2014 9:27

Ahoj, chtěl jsem se zeptat, jestli když chci pro nepřihlášeného uživatele, přihlášeného uživatele a administrátora jinou šablonu, jestli to můžu udělat v routeru takhle:

// Nastavení hlavní šablony
$spravceUzivatelu = new SpravceUzivatelu();
$uzivatel = $spravceUzivatelu->vratUzivatele();
$this->data['admin'] = $uzivatel && $uzivatel['admin'];
$this->data['uzivatel'] = $uzivatel;

if ($this->data['admin']) {
$this->pohled = 'rozlozeni3';
} else if ($this->data['uzivatel']) {
$this->pohled = 'rozlozeni2';
} else {
$this->pohled = 'rozlozeni';
}

Jde mi jen o to abych to zase nějak neprasil tak se radši zeptám.

Dík

Láďa

Editováno 17.4.2014 9:28
 
Odpovědět
17.4.2014 9:27
Avatar
Roman Grigar
Člen
Avatar
Roman Grigar:31.5.2014 12:26

jakým způsobem bych v MVC vytvořil třeba menu, které by bralo z databáze? Stačilo by, kdybych měl model, který by uměl třeba metodu nactiMenu(), která by třeba vypsala z databáze data a pak bych v pohledu rozlozeni volal tuto metodu? Nebo se to má v MVC dělat ještě nějak přes ten controller? Protože takhle bych propojil model přímo s pohledem.

To je jako, kdybych chtěl v tom MVC použít to počítadlo návštěv, které tady někde je. Tak bych pak jenom v pohledu rozložení volal metodu zapisVstup() ne?

 
Odpovědět
31.5.2014 12:26
Avatar
Martin Píštěk (Denir):16.3.2015 15:10

Chtěl bych se zeptat na parametr vnořeného kontroleru:

$this->kontroler->zpracuj($naparsovanaURL);

nějak mi uniká, proč se mu posila naparsovanaURL, když mu vlastně k ničemu není, nějak mi to hlava nebere - je to proto, že mu prostě musíme něco poslat, aby to nevyhazovalo chybu? Nestačilo by tam zadat prostě jen ($parametry) - stejně jak je to v Kontroleru? Díky za vysvětlení

 
Odpovědět
16.3.2015 15:10
Avatar
Odpovídá na Martin Píštěk (Denir)
Martin Píštěk (Denir):16.3.2015 17:03

Reaguju sám na sebe :-) prošel jsem si znova MVC a už jsem to pochopil, url potřebuje, aby poznal co ma dělat - vlastně je to v članku i popsané, jen mi to neseplo..

 
Odpovědět
16.3.2015 17:03
Avatar
Marek Šafránek:5.6.2015 18:09

Chvíli to šlo a teď to ukazuje:

Tato stránka obsahuje smyčku přesměrování

ERR_TOO_MANY_RE­DIRECTS

Nějaká rada kam se podívat?

Odpovědět
5.6.2015 18:09
Stojí-li něco za námahu, je třeba to udělat pořádně...
Avatar
Odpovídá na Marek Šafránek
Martin Mandík:5.6.2015 18:50

Zkus se kouknout třeba do routeru, jestli, když to nenajde příslušný kontroler, nepřesměrovává na jinou stránku než 'chyba' :-)

 
Odpovědět
5.6.2015 18:50
Avatar
Odpovídá na Martin Mandík
Marek Šafránek:5.6.2015 19:36

Mám to na chlup stejně jako v tutoriálu - s vyjímkou, že sem to nastavil na redakcnioop.lo­calhost.com

Odpovědět
5.6.2015 19:36
Stojí-li něco za námahu, je třeba to udělat pořádně...
Avatar
Odpovídá na Marek Šafránek
Martin Mandík:5.6.2015 19:46

Tak to mě nic jinýho nenapadá...

 
Odpovědět
5.6.2015 19:46
Avatar
Odpovídá na Martin Mandík
Marek Šafránek:5.6.2015 20:14

Děkuju za snahu, ale přehlédl jsem chybu v názvu var... $tribaKontroleru

Odpovědět
5.6.2015 20:14
Stojí-li něco za námahu, je třeba to udělat pořádně...
Avatar
Grimor
Člen
Avatar
Grimor:3.8.2015 19:48

Ahoj,

mám takový malinký problém. Z nějakého důvodu mi tag <base> nebere číslo portu. Mám webserver kvůli jinému serveru v síti nastaven na port 8080 místo 80 a nejede mi ani s localhost ani s localhost:8080. Na druhou stranu když dočasně přepnu na port 80, tak mi to v pořádku jede na localhost.

Je jasné, že kvůli tomuhle problému mi nefungují pěkné URL, ale všiml jsem si tohoto problému až při přidávání druhého parametru, v tom případě první parametr Apache pochopí jako složku.

Teoreticky mi to teď funguje, ale potřebuju, aby to jelo na portu 8080, existuje nějaká možnost, jak mu dát vědět o portu?

 
Odpovědět
3.8.2015 19:48
Avatar
tribal.cz
Redaktor
Avatar
tribal.cz:12.9.2015 14:10

Mám menší problém na localu tedy na rpi které mi jede v chodbě mi to ukazuje klasickou 404 chybu a ne nikoliv udaj chyba z routeru ani mě to nepresmeruje na chybu. viz screen https://ctrlv.cz/ptkT. Procházel jsem si to znovu a znovu a chybu nikde nevidím

 
Odpovědět
12.9.2015 14:10
Avatar
Vít Cigánek:17.10.2015 12:39

Zdravím

tenhle kód mi nějak unika. Mohl by mi to někdo vysvětlit?

$this->kontroler->zpracuj($naparsovanaURL);

Zbývá nastavení pohledu směrovače, tedy šablony s rozložením webu.

Vytvoříme si několik proměnných pro šablonu. Již víme, že jsme v šabloně použili $titulek, $klicova_slova a $popis. Také víme, že proměnné šabloně předáme jako klíče v poli $this->data[]. Jako hodnoty do šablony vložíme vždy titulek, popis a klíčová slova, která má vložený kontroler. Kód bude vypadat takto:

$this->data['titulek'] = $this->kontroler->hlavicka['titulek'];
$this->data['popis'] = $this->kontroler->hlavicka['popis'];
$this->data['klicova_slova'] = $this->kontroler->hlavicka['klicova_slova'];

Nakonec zbývá nastavit pohled, to uděláme jednoduše dosazením názvu souboru s pohledem do atributu $pohled:
// Nastavení hlavní šablony

$this->pohled = 'rozlozeni';
 
Odpovědět
17.10.2015 12:39
Avatar
Vít Cigánek:17.10.2015 14:25

Jinak by mohl někdo z Vás napsat článek o debugovaní v NetBeans nebo v jiných IDE. Programátor se bez toho neobejde. Echo v php nelze vypsat vždy a já pořád nechápu tenhle kus kódu.

$this->kontroler->zpracuj($naparsovanaURL);

Když metoda zpracuj, volá metodu zpracuj, tak by se to mělo přece zacyklit.

 
Odpovědět
17.10.2015 14:25
Avatar
MArtin
Člen
Avatar
MArtin:21.10.2015 11:45

Taaakze ideme na 4. diel do podadresara...

index.php upravime takto:

pred mb_internal_en­coding("UTF-8");
si dame:

$cfgvars = array();
if ($_SERVER['SERVER_NAME'] == 'localhost')
        $cfgvars['rootDir'] = '/'. array_pop((explode("\\", dirname(__FILE__)))) .'/';
else
        $cfgvars['rootDir'] = '';
global $cfgvars;

do $cfgvars si mozme dat postupne aj ine nastavenia - kedze pouzivame globals, je dobre tam davat premenne z ohladom na tuto skutocnost.

Kontroler.php

premennu $hlavicka upravime takto:

protected $hlavicka = array('titulek' => '', 'klicova_slova' => '', 'popis' => '', 'rootDir' => '');

na zaciatok metody presmeruj($url) dame:

global $cfgvars;

presmerovanie bude:

header("Location: $cfgvars[rootDir]$url");

SmerovacKontro­ler.php

v parsujULR($url) by malo ostat red returnom

if ($_SERVER['SERVER_NAME'] == 'localhost')
                array_shift($rozdelenaCesta);

z predchadzajucej casti serialu (a mojej upravy)

na zaciatok metody zpracuj($parametry) dame znova global $cfgvars

do "Nastavení proměnných pro šablonu" pridame nakoniec

$this->data['rootDir'] = $cfgvars['rootDir'];

a nakoniec do rozlozeni.phtml vlozime premmene spravnej cesty

<base href="/localhost<?= $rootDir ?>" />

a

<link rel="stylesheet" href="<?= $rootDir ?>style.css" type="text/css"/>

ked som nieco nezabudol, tak by to malo fungovat na localhoste v ramci prvej urovne adresara, kto ma na lokale virtual server, tak tam treba dat prazdny retazec pre $rootDir, na remote by to malo fungovat dobre automaticky.

Netvrdim, ze toto je najlepsie riesenie, ale zatial funguje - teda aspon mne ;)
Good luck ;)

Editováno 21.10.2015 11:47
 
Odpovědět
21.10.2015 11:45
Avatar
MArtin
Člen
Avatar
Odpovídá na MArtin
MArtin:21.10.2015 12:44

este som zabudol, ze v .htaccess
treba odkomentovat RewriteBase a za lomitko napisat nazov vasho adresara v ktorom projekt mate.

napr.:

RewriteBase /mvctest
Editováno 21.10.2015 12:44
 
Odpovědět
21.10.2015 12:44
Avatar
MArtin
Člen
Avatar
Odpovídá na MArtin
MArtin:22.10.2015 15:34

rozlozeni .phtml ma byt upravene spravne takto:

<base href="<?= $rootDir ?>" />

a

<li><a href="<?= $rootDir ?>clanek/uvod">Úvod</a></li>
<li><a href="<?= $rootDir ?>clanek">Články</a></li>
<li><a href="<?= $rootDir ?>kontakt">Kontakt</a></li>
 
Odpovědět
22.10.2015 15:34
Avatar
MArtin
Člen
Avatar
Odpovídá na MArtin
MArtin:2.11.2015 15:35

David odporuca globals nepouzivat, tak by ma zaujimalo, ako to urobit bez globalnej premennej, tak aby som nemusel kvoli tomu pridavat dalsi atribut.

 
Odpovědět
2.11.2015 15:35
Avatar
Vít Cigánek:10.11.2015 20:41

Mam dotaz, jestli chápu dobře, tak tenhle kus kódu udělá.

$tridaKontroleru = $this->pomlckyDoVelbloudiNotace(array_shift($naparsovanaURL)) . 'Kontroler';

ze promena

$naparsovanaURL

prijde o prvni prvek pole... a pak zbyde jenom prvek pole s indexem 1

 
Odpovědět
10.11.2015 20:41
Avatar
Odpovídá na Vít Cigánek
Martin Konečný (pavelco1998):10.11.2015 20:51

Se podívej do manuálu, co array_shift() dělá :D Odebere první prvek pole a vrátí ho (tzn. se v tomto případě použije jako parametr metody).

Odpovědět
10.11.2015 20:51
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Vít Cigánek:10.11.2015 21:00

To jsem pochopil, akorát jsem myslel že to nebude fungovat takhle:

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

output

Array
(
[0] => banana
[1] => apple
[2] => raspberry
)
ale takkhle

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

output

Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => raspberry
)

s tím že

$fruit = 'orange';
 
Odpovědět
10.11.2015 21:00
Avatar
Odpovídá na Vít Cigánek
Martin Konečný (pavelco1998):10.11.2015 21:36

No $fruit = 'orange', protože to byl první prvek v poli, který se z něj odstranil a vrátil (zde uložil do proměnné $fruit).
Jestli chceš jen získat první prvek v poli, stačilo by $fruit = $stack[0];

Odpovědět
10.11.2015 21:36
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Vít Cigánek:10.11.2015 21:39

Já už vím. Ale díky. Teď řeším tenhle článek http://www.itnetwork.cz/…eceni-sablon . Vůbec tomu nerozumím. Nebo spíše myšlence rozumím, ale v kódu se ztrácím.

 
Odpovědět
10.11.2015 21:39
Avatar
Odpovídá na Vít Cigánek
Martin Konečný (pavelco1998):10.11.2015 22:16

Tam metoda osetri() ochrání proměnnou proti XSS. Když se tam hodí pole, metoda projede všechny jeho prvky (a pokud jsou tam další pole, tak rekurzivně) a ošetří je postupně.
Metoda extract() pak z klíčů pole udělá proměnné (viz php.net), které můžeš použít v šabloně

Odpovědět
10.11.2015 22:16
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
jAk3r
Člen
Avatar
jAk3r:4.1.2016 21:18

Proč mě to háže Internal error 500 a když mrknu do logu háže mi to chybu na

PHP Fatal error:  Call to undefined method SmerovacKontroler::presmeruj() in /home/users/jakercz/inspire-gaming.g6.cz/web/kontrolery/SmerovacKontroler.php on line 47

Tak to nechápu... co s tím je špatně..

Odpovědět
4.1.2016 21:18
Pokud něčeho chceš dosáhnout, musíš si za tím jít.
Avatar
dusekpetrcb
Člen
Avatar
dusekpetrcb:7.2.2016 20:14

Ahoj, mám zvídavý dotaz. Errorovou stránku mám na error.phtml s kontrolerem ErrorController. Všechno funguje, jak má, až na jednu výjimku. Když jsem uživatel-filuta a zadám localhost/error/pa­rametr. Potom se to zboří a jde to na klasickou chybu 404 Objekt nenalezen přímo v rámci prohlížeče (mimo moje rozhraní). A když zadám localhost/error/ (s lomítkem na konci), jde to na chybu 403 Přístup odmítnut. Asi tam mám někde chybu, nepřipadá mi to jako očekávané a správné chování. Má někdo nápad, čím by to mohlo být?

Díky.

 
Odpovědět
7.2.2016 20:14
Avatar
Štefan
Člen
Avatar
Štefan:17.7.2016 20:49

Zdravím.
Ak som dobre pochopil, tak na to aby sa zmenil "pohlad" potrebujem mat príslušný kontroler. Čo ma však zaráža a trápi dosť dlho je táto vec: tlačidlo "Úvod" som premenoval na Domov (aj samotný odkaz v kóde som pozmenil), v súbore SmerovacKontroler som prepísal riadok, v ktorom sa má určovať "pohlad", ktorý sa načíta ak nie sú zadané žiadne parametre ->

if (empty($naparsovanaURL[0]))
        $this->presmeruj('domov');

Samozrejme som vytvoril príslušný .phtml súbor a DomovKontroler, v kt. mám uvedený príkaz na zmenenie pohľadu ->

<?php
class DomovKontroler extends Kontroler
{
    public function spracuj($parametre)
    {
        $this->hlavicka['titulok'] = 'Domov';
        $this->pohlad = 'domov'
    }
}

Problém je ten, že po spustený alebo kliknutí na tlačidlo "Domov" mi neustále stránka vypíše chybu 404 :-(
Prosím navrhnite nejaké riešenie alebo mi aspoň poskytnite radu.
Za akúkoľvek odpoveď vopred ďakujem.

 
Odpovědět
17.7.2016 20:49
Avatar
Štefan
Člen
Avatar
Odpovídá na Štefan
Štefan:18.7.2016 10:14

OK už mi to funguje, chyba bola v syntaxe... Pôvodne som mal tento riadok napísaný takto:

$this->pohlad = 'domov'

A po dlhom rozmýšľaní mi napadlo, že mi tam dosť dôležitý znak -> ; :-D
Preto som to upravil do konečnej podoby:

$this->pohlad = 'domov';
 
Odpovědět
18.7.2016 10:14
Avatar
gold604
Člen
Avatar
gold604:19.2.2017 21:39

Zdravím, asi to bude veľmi hlúpa otázka, ale čo robí presnejšie tento riadok?

$this->kontroler->zpracuj($naparsovanaURL);

Nemohlo by sa to dať do index.php?

 
Odpovědět
19.2.2017 21:39
Avatar
Jan Lupčík
Šéfredaktor
Avatar
Odpovídá na gold604
Jan Lupčík:19.2.2017 22:24

Pokud nechceš psát zbytečně hodně věcí navíc, tak ne, nemohlo. Hned nad tím totiž načítáš data o tom kontroleru, která se ti poté také budou hodit. :)

Nyní na vnořeném kontroleru zavoláme také metodu zpracuj() a necháme ho provést nějakou jeho logiku, později to např. u článku bude jeho vyhledání v databázi. Přesněji kontroler zavolá logiku v modelu, ale nepředbíhejme.

Editováno 19.2.2017 22:24
Odpovědět
19.2.2017 22:24
TruckersMP vývojář
Avatar
gold604
Člen
Avatar
gold604:23.2.2017 16:23

Čo je to vnorený kontroler? Ako si ich vytvorím viac?

 
Odpovědět
23.2.2017 16:23
Avatar
michal.smatlak:30.3.2017 18:01

Zdravím, mám menší problém. Idem presne podla tutorialu ale keď zadám localhost/chyba tak sa síce zobrazí chybová stránka ale v celom texte chýbajú znaky ako: á,é,ž,í. Mám tam mb_internal_en­coding("UTF-8"); aj <html lang="sk-SK">, vlastne mám to presne podla tutorialu ale nefunguje to. poraďte mi prosím v čom môže byť chyba. Za všetky rady vopred ďakujem.

 
Odpovědět
30.3.2017 18:01
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:4.5.2017 17:11

Ahoj, co bych měl udělat, kdybych chtěl pro učité stránky použít jinou výchozí šablonu (jinou než rozlozeni.phtml) tipicky nějake pomocné stránky, na kterých nebudu chtít menu ani patičku. Nebo prostě stránku, která nezapadá do mého konceptu, třeba ji načítám v nějakém modalu přes iframe (nějaká reklama a pod.)
resp. chtěl bych načíst jen pohled ale ne až v tom rozlozeni.phtml Díky :)

 
Odpovědět
4.5.2017 17:11
Avatar
Mr.Suit
Člen
Avatar
Mr.Suit:16.7.2017 10:47

Zdravim vsechny,
vim, ze to bude celkem trivialni dotaz i reseni, ale nevite proc se mi misto title hned po tomto dilu namisto titulku stranky objevuje cesta localhost/error ?
Vse je naprosto stejne jako v tutorialu.
Pouzivam Linux UBUNTU. Localhost jsem si nastavoval.
A ted to zvlastni. Kdyz title vyechuji v template, sablone pohledu, primo v casti article tak se vypise. Pouze jako titulek nefunguje.
Domnivam se, ze to bude bud v htaccess nastaveni nebo v primem nastaveni apache, opravdu nevim. Jen doplnujici info, localhost jsem si nastavil jako vychozi slozku do /home/charlie/Pro­jects.
Project je v aktualnim zneni na githubu. /…irst_project
Dekuji predem za jakakoli mozna reseni a odpovedi.
MrSuit

Odpovědět
16.7.2017 10:47
/Best Practice/Work/Life/brain.conf
Avatar
Mr.Suit
Člen
Avatar
Odpovídá na Mr.Suit
Mr.Suit:30.7.2017 12:50

Vyreseno, ja blbec spoustel index.php, ktery byl tvoreny jako sablona html, ne jako cista class. Tak jsem prebytecnou sablonu odstranil a vse je ok.

Odpovědět
30.7.2017 12:50
/Best Practice/Work/Life/brain.conf
Avatar
Zbyněk Růžička:6.8.2017 11:27

Asi hloupý dotaz a možná jsem něco špatně pochopil, ale nejde mi změnit style.css, respektive si tam můžu upravovat co chc,i ale když si to pak spustím je výsledek 0. Dík za radu.

 
Odpovědět
6.8.2017 11:27
Avatar
Odpovídá na Zbyněk Růžička
Michal Šmahel:6.8.2017 16:44

Ahoj. Máš to na localhostu nebo přímo na hostingu?? Vidím to na problém v <base />. Zkontroluj si adresu, kterou jsi tam zadal. Pokud to není tím, pak cesta k souboru style.css.

Odpovědět
6.8.2017 16:44
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Zbyněk Růžička:7.8.2017 6:35

Dík za odpověď Má to na localhostu, nejde mi to měnit ani, když si to stáhnu. To co jsi mi poradil by mělo být v pořádku. Když cestu smažu, stylování zmizí, ale když něco zkusím změnit v css tak stále zůstává původní.

<base href="/localhost" />
<meta charset="UTF-8" />
<title><?= $titulek ?></title>
<meta name="description" content="<?= $popis ?>" />
<meta name="keywords" content="<?= $klicova_slova ?>" />
<link rel="stylesheet" href="style.css" type="text/css"/>

 
Odpovědět
7.8.2017 6:35
Avatar
MicBlack
Člen
Avatar
MicBlack:30.10.2017 15:39

Ahoj, chtěl bych se jen zeptat ohledně pohledů. Jak to, že se v proměnné pohledy nepřepíšou a vyrenderují se vždy všechny, které chceme načíst, když na pohled máme jen jednu proměnnou (protected $pohled)? Je to tím, že pro každý pohled máme vždy jinou instanci? Např: pro pohled 'rozlozeni.phtml' startujeme 1 instanci, pro pohled 'chyba.phtml' druhou? Díky moc za reakce.

 
Odpovědět
30.10.2017 15:39
Avatar
FiftypiSoftware:7.8.2018 22:54

Bohužel mi nefunguje vkládání do šablony...
Mám šablonu error a home (obojí jako *.phtml). To je obsah stránek, ale ten obsah se do rozložení nepřidá :/

 
Odpovědět
7.8.2018 22:54
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na FiftypiSoftware
David Čápka:7.8.2018 23:31

Pod lekcemi máš archiv s projektem ke stažení, můžeš si tak najít chybu.

Odpovědět
7.8.2018 23:31
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Marty
Člen
Avatar
Marty:21.10.2018 2:39

MVC je opravdu geniální! :) Jen pro ujasnění.

Jako poslední do .htaccess přidáme zpracování přípony .phtml, aby nám nikdo nekoukal do zdrojáků šablon. Soubor .phtml se bude chovat úplně stejně, jako soubor .php.

AddType application/x-httpd-php .phtml

K čemu konkrétně slouží v .htaccess tento řádek, když, když do prohlížeče zadám cestu k šabloně "localhost/poh­ledy/sablona.phtml", šablona se mi vesele s chybou, že není objekt $this, zobrazí?

 
Odpovědět
21.10.2018 2:39
Avatar
Mirek
Člen
Avatar
Mirek:13.11.2018 10:01

Myslím, že je poněkud matoucí když v parsujURL() vznikne $naparsovanaURL, z ní pak $rozdelenaCesta a ta se vrátí do zpracuj() do $naparsovanaURL ...

 
Odpovědět
13.11.2018 10:01
Avatar
Štěpán
Člen
Avatar
Štěpán:1. dubna 20:29

Čau.. mám asi nějaký jednoduchý problém, ale nevím jak ho vyřešit. Stáhnul jsem si celý projekt a nahrál, stále nic.
Problém mám s tím že po zadání url adresy localhost/projekt mě to automaticky přesune na stránku localhost/chyba
ale soubor .phtml se mi ani nezobrazí.

Editováno 1. dubna 20:29
 
Odpovědět
1. dubna 20:29
Avatar
Štěpán
Člen
Avatar
Štěpán:2. dubna 21:33

aha, zjistil jsem i že když stáhnu celej kód a přepíšu db connection atd. tak mi to furt automaticky hází nevyrenderovanou chyba page.

 
Odpovědět
2. dubna 21:33
Avatar
Zdeněk Kaulfus:8. dubna 10:40

Ahoj, děkuji za seriál je super. Narazil jsem na problém s formátováním po přesunu na jiný (nový) server. Naformátuje se mi pouze <body>, které se zarovná na střed, ale další formátování již není. Pokud se podívám na zdrojový kód, je vše v pořádku.
<body>
<header>
<h1>.....</h1>
</header>
......
Když dám průzkumníka modelu DOM v IE dostanu
<body>
<header></header>
<h1>......</h1>
</header><//header>
.......
takže formátování logicky neproběhne.
Ve Firefoxu a na starém serveru se vše formátuje a funguje v pohodě. Díky za radu, google mi nepomohl.

 
Odpovědět
8. dubna 10:40
Avatar
Zdeněk Kaulfus:8. dubna 11:24

Omlouvám se za dotaz výše, mohl za to IE, doplnil jsem meta http-equiv tag a začalo to fungovat. Omlouvám se a děkuji za seriál

 
Odpovědět
8. dubna 11:24
Avatar
sloviakm
Člen
Avatar
sloviakm:25. dubna 16:49

Dobry den ,
momentalne skumam moznosti popisovaneho serialu a je to celkom v pohode, som rad ze nieco take je :) ale asi som nepochopil jednotlive prepojenie sablon:

Povedzme ze mame sablonu pre clanok a druhu pre clanky a nad to chcem dat navigaciu (Breadcrumb). Ako to urobit efektivne a nenarobit si bordel v MVC a 'nepekne' importy :) a hlavne bez presmerovania , bo to by bolo zbytocne....

 
Odpovědět
25. dubna 16:49
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 131 zpráv z 131.