Diskuze: vytvareni souboru pomoci PHP
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= 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.
Mas spravne ty cesty k souborum, ktere vytvaris ? Kazdopadne je to dosti spatny zpusob jak dynamicky vytvaret stranky rekl bych.
Osobne kdybych delal na zdejsim MVC nejaky web, ktery ma vytvaret dynamicky stranky, tak to resim necim jako treba PageController, GalleryController, ArticlesController ... vsechny stranky co dynamicky vytvoris stejne budou nejake vypisy clanku, galerie nebo nejaka "stranka" jako kontakt apod.
Takze bych jim udelal takovy predpis a v kombinaci s upravou routeru bych jednoduse vzdy vytahl udaje o zobrazovane strance z databaze a dle toho, jaky to je typ stranky bych to prohnal prislusnym controllorem.
Ale to jen varim z vody
Špatný druh lomítek jsem tam měl . Stránka se mi už spustí ale soubory se mi nevygenerují. Toto je cesta ke kontrolerům /spokus.9e.cz/web/kontrolery s tím že do složky web se vkládají soubory pro stránku takže složka web by měla být kořenová ale soubory se mi do nich nevytvoří. Co se týče způsobu vytváření tak je mi jasné že to asi není ideální ale zase jsem nedošel do fáze kde by jsem to dokázal dělat takhle chytře .
*Teď má kontroler tuto podobu
<?php
class EditorKontroler extends Kontroler
{
public function zpracuj($parametry)
{
// Hlavička stránky
$this->hlavicka['titulek'] = 'editor článků';
$this->hlavicka['popis'] = 'editace článků';
$this->hlavicka['klicova_slova'] = 'editor, změna, editovat';
// Nastavení šablony
$this->pohled = 'editor';
if ($_POST)
{
$soubor1=fopen("/pohledy/".$_POST['url'].".phtml", "w+");
fwrite($soubor1, "".$_POST['obsah']."");
fclose($soubor1);
$soubor2=fopen("/kontrolery/".$_POST['url']."Kontroler.php", "w+");
fwrite($soubor2,
" $this->hlavicka['titulek'] = '".$_POST['titulek']."';
$this->hlavicka['popis'] = '".$_POST['popisek']."';
$this->hlavicka['klicova_slova'] = '".$_POST['klicova_slova']."';
$this->pohled = 'editor';");
fclose($soubor2);
}
}
}
co si takhle udelat nejakou testovaci akci a overit si, jak ten zapis cest vlastne funguje ? idealne to lomitko na zacatku dej pryc
Po zkoušce asi 100 rúzných způsobů se mi to povedlo. problém byl v prvním lomítku který neznačil kořenový adresář. Hlavně mě zmátlo že tam není obrácené lomítko, vůbec mi nedošlo že Linux používá jiný druh lomítek než windows .
Takže funguje ale ne úplně tak jak má, momentálně jsem php script dodělal do této podoby
<?php
class EditorKontroler extends Kontroler
{
public function zpracuj($parametry)
{
// Hlavička stránky
$this->hlavicka['titulek'] = 'editor článků';
$this->hlavicka['popis'] = 'editace článků';
$this->hlavicka['klicova_slova'] = 'editor, změna, editovat';
// Nastavení šablony
$this->pohled = 'editor';
if ($_POST)
{
$soubor1=fopen("pohledy/".$_POST['url'].".phtml", "w+");
fwrite($soubor1, "".$_POST['obsah']."");
fclose($soubor1);
$soubor2=fopen("kontrolery/".$_POST['url']."Kontroler.php", "w+");
fwrite($soubor2,
" <?php
class ".$_POST['url']."Kontroler extends Kontroler
{
public function zpracuj($parametry)
{
$this->hlavicka['titulek'] = '".$_POST['titulek']."';
$this->hlavicka['popis'] = '".$_POST['popisek']."';
$this->hlavicka['klicova_slova'] = '".$_POST['klicova_slova']."';
$this->pohled = ".$_POST['url'].";
}
}
");
fclose($soubor2);
}
}
}
a výsledek kontroleru je tento (phtml šablona je v pohodě)
<?php
class jidelnicekKontroler extends Kontroler
{
public function zpracuj(Array)
{
Array['titulek'] = 'jídelníček';
Array['popis'] = 'jidlo';
Array['klicova_slova'] = 'jidlo';
editor = jidelnicek;
}
}
Zítra se podívám jak z proměnné udělat obyčejný text
Zobrazeno 7 zpráv z 7.