Diskuze: [MVC] redakční systém - clanek.phtml ve stejném okně s clanky.phtml
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
upravil jsem obrázek rozložení, teď je správně.
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.