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.