Diskuze: MVC jednoduchý redakční systém - dotazy
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 17 zpráv z 17.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Napíšeš to do souboru .htaccess, který sis před chvíli vytvořil. Na
každém řádku je jeden příkaz... 
bud do .htaccess, alebo rovno do nastavenia webservera pre danu domenu,
viac informacii sa dozvies na strankach (resp. v dokumentacii) daneho
webservera
webserver umoznuje viac moznosti a nie kazdy webserver berie subor .htaccess
A v čem bych ho měl otevřít? V XAMP? Či? To neni klasickej texťák přeci...nebo php, nebo cokoliv
Je to klasickej texťák, ale Windows to berou jako soubor bezejména (jen
přípona), takže Poznámkový blok, napíšeš, a dáš Uložit jako >
Všechny soubory, název = .htaccess 
Mně to z kontextu přijde docela jasné, když to je pod nadpisem .htaccess.
Už mi to došlo, děkuji
Hledám v tom zbytečně moc velkou vědu, to bude zásadní problém.
Ahoj, děkuju moc za skvělý seriál, strašně mě to posunulo dopředu a chtěl bych se zkušenějších zeptat, jestli jsem princip pochopil správně. Snažil jsem se o vypsání Navigace podle uložených článků v databázi a zajímalo by mě jenom, jestli jsem ten princip pochopil správně.
Do modelu jsem zapsal toto:
class NactiMenu {
public function vratMenu()
{
return Db::dotazVsechny('
SELECT `url`, `lang`, `tlacitko`
FROM `clanky`
');
}
}
Do obecného Kontroleru:
public function menu()
{
$nactiMenu = new NactiMenu();
$menu = $nactiMenu->vratMenu();
return $menu;
}
A do Směrovače už jenom naplnění proměnných pro šablonu:
$this->data['menu'] = $this->menu();
Díky za odpověď 
Ahoj. Vypadá to, že princip tý architektury jsi zvládl. Akorát bych
lépe pojmenovával. Například model by měl držet metody vracející
podobná data. Například model Articles. Čili model s názvem NactiMenu je
trochu nicneříkající. A ta funkce v kontroleru slouží k čemu? Není
jednodušší vzít data přímo z modelu? Nevím, jestli bys měl něco
takového pevně přidávat do routeru. Lepší by bylo přisun dat do šablon
zautomatizovat, ale špatně to asi není. Jinak snad vcelku pěkný. 
Ahoj, díky za reakci a pojmenování vylepším. Jenom se chci zeptat na ten
výpis dat z modelu do pohledu. Myslel jsem že by model neměl o pohledu nic
vědět, proto jsem to řešil takhle...tak nevím
myslel jsem že bych vytvořil
kontrolér, jako to mají ostatní aplikace, třeba výpis článků ale do
hlavní šablony vypíšu volaný kontrolér článku a v te samé stránce
potřebuju vložit to menu a kdybych vytvořil třeba menuKontrolér, tak to by
mi nefungovalo, navíc by vznikla chyba při volání, tak jsem to dal do
obecného kontroléru, tak jako jsou třeba messages...tak proto no, nic
lepšího mě nenapadlo, proto jsem se radši zeptal 
Myslel jsem spíš, že je blbost vytvářet další metodu, která ti vrací stejný výsledek jako NactiMenu::vratMenu(). Potom je lepší v routeru přímo volat z modelu, nebo jak jsem psal, nechat si to uložit do nějaké speciální proměnné, která by automatizovala přechod dat z kontroleru do šablony.
Jinak teď jsem tě moc nepochopil, máš problém se stejným menu na více stránkách? Jestli ano, pak si stačí jen vytvořit předka pro dané kontrolery, ne? Ten pak bude obsahovat metody obsluhující menu. V šabloně by se to řešilo nějakým importem typu
<?require('menu.phtml');?>
Ještě v tom nejsem tolik sběhlý, učím se to nějak provázat mezi
sebou, aby to aspoň nějak fungovalo a samozřejmě vím, že to není vždycky
úplně ideální řešení. To s tím výpisem menu, jsem to napsal trochu
zmateně, ale nebylo to nic důležitého...spíš by mě zajímalo to s tím
výpisem z modelu. Stačí jen ťuknout, snad to pochopím 
Jak máš řešený směrovač? Nebo spíš jak máš řešený přísun dat do šablony? Z toho řádku, co jsi nahoře psal:
$this->data['menu'] = $this->menu();
Vidím, že asi vkládáš do proměnné $data, která je pak přístupná v šabloně? V tom případě bych to udělal asi takto (velmi zjednodušeně):
<?php
namespace Controller;
use Model;
class Controller
{
/**
* @var Model\Menu
*/
private $menuModel;
public function __construct()
{
$this->menuModel = new Model\Menu;
}
public function render()
{
$this->data['menu'] = $this->menuModel->getMenu();
}
// renderování šablony, atp...
// ...
}
Nevím, jak to máš řešený, takže si s tím budeš muset trochu pohrát. Jestli se ti data zpracovávají přímo v předkovi všech kontrolerů, tak se to dá řešit takto. Jinak bych potřeboval více informací.
Zobrazeno 17 zpráv z 17.