Diskuze: [MVC] redakční systém - clanek.phtml ve stejném okně s clanky.phtml
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 7 zpráv z 7.
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.


omlouvám se, teď je to správně ....
nedá se tady mazat vlastní příspěvky a krátká doba na úpravu ...

jinak mám řešení, pomocí javascriptu volám funkci v souboru
vypisClanek.php, která mi vrátí data k vypsání článku v divTelo, ale
ničím tím cely MVC.
Priprav si vysledek do pole a pak pouzij jednoduchy sablonovaci system, treba
tento.
Sablony s if+echo jsou spatny priklad, takove clanky necti 
https://www.itnetwork.cz/…d02784d03564
public function pageRender($tpl='', $items = array())
{
if (!(gettype($tpl)==="string" && gettype($items)==="array" && count($items)>0))
{
return $tpl;
}
$items2 = array();
foreach($items as $key => $value)
{
$items2["{".$key."}"] = $value; // rychlejsi zkopirovat do array nez unsetovat v puvodni
}
return strtr($tpl, $items2);
}
to Peter Mlich: asi jsi mě úplně nepochopil, nepotřebuji vytvářet šablonu, to budu mít napsaný v zakazky.php . zřejmě jsem to popsal špatně.
každopádně jsem už vychladl a znovu se nad tím zamyslel a hle, najednou
to jde

ClanekKontroler:
<?php
class ClanekKontroler extends Kontroler
{
public function zpracuj($parametry)
{
$this->overUzivatele(true);
$spravceClanku = new SpravceClanku();
$spravceUzivatelu = new SpravceUzivatelu();
$uzivatel = $spravceUzivatelu->vratUzivatele();
$this->data['admin'] = $uzivatel && $uzivatel['admin'];
$clanky = $spravceClanku->vratClanky();
$this->data['clanky'] = $clanky;
if (!empty($parametry[0]))
{
$clanek = $spravceClanku->vratClanek($parametry[0]);
if (!$clanek)
$this->presmeruj('MyDir/chyba');
$this->hlavicka = array(
'titulek' => $clanek['titulek'],
'klicova_slova' => $clanek['klicova_slova'],
'popisek' => $clanek['popisek'],
);
$this->data['nazevClanku'] = $clanek['titulek'];
$this->data['popisClanku'] = $clanek['popisek'];
}
else
{
$clanek = $clanky[0];
$this->data['nazevClanku'] = $clanek['titulek'];
$this->data['popisClanku'] = $clanek['popisek'];
}
if (!empty($parametry[1]) && $parametry[1] == 'odstranit')
{
$this->overUzivatele(true);
$spravceClanky->odstranClanek($parametry[0]);
$this->pridejZpravu('Clanek byl úspěšně odstraněn');
$this->presmeruj('MyDir/clanek');
}
$this->pohled = 'clanky';
}
}
clanky.phtml
<div class="vsechnyClanky">
<h1>Seznam Článků</h1>
<br /><br />
<table>
<?php foreach ($clanky as $clanek) : ?>
<tr>
<td>
<div class="objClanek">
<a href="/<?= $clanek['url'] ?>">
<div class="clanekCislo">
<p>88888</p>
</div>
<div class="clanekPopis">
<p class="jmenoClanku"><?= $clanek['titulek'] ?></p>
<p class="popisClanku"><?= $clanek['popisek'] ?></p>
</div>
</a>
</div>
</td>
</tr>
<?php endforeach ?>
</table>
</div>
<div class="vybranyClanek">
<h1><?= $nazevClanku ?></h1><br /><br />
<p id="popis"><?= $popisClanku ?></p>
</div>
dokázal by mi prosím někdo poradit, jak to udělat, aby se při kliknutí na článek v class="vsechnyClanky"
<a href="/<?= $clanek['url'] ?>">
přepsaly hodnoty v class="vybranyClanek" bez znovunačtení stránky ?
zřejmě bude zapotřebí javascript, nebo by to šlo jen v php ??
<script>
var i, items;
items = document.querySelectorAll('.vsechnyClanky');
for (i in items) {items[i].className='123';}
</script>
Zobrazeno 7 zpráv z 7.