IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Mario Brunmayr:4.12.2016 2:09

Ahoj, vytvoříl jsem si editor pomocí kterého chci vytvářet nové stránky. Využil jsem k tomu zdejší serial o MVC. Mám šablonu

<h4>Editace</h4>

<form method="post">
        Titulek<br />
        <input type="text" name="titulek" value="<?= $clanek['titulek'] ?>" /><br />
        URL<br />
        <input type="text" name="url" value="<?= $clanek['url'] ?>" /><br />
        Popisek<br />
        <input type="text" name="popisek" value="<?= $clanek['popisek'] ?>" /><br />
        Klíčová slova<br />
        <input type="text" name="klicova_slova" value="<?= $clanek['klicova_slova'] ?>" /><br />
        obsah stránky<br />
        <textarea name="obsah"><?= $clanek['obsah'] ?></textarea>
        <input type="submit" value="Uložit článek" />
</form>

<script type="text/javascript" src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
<script type="text/javascript">
        tinymce.init({
                        selector: "textarea[name=obsah]",
                        plugins: [
                                        "advlist autolink lists link image charmap print preview anchor",
                                        "searchreplace visualblocks code fullscreen",
                                        "insertdatetime media table contextmenu paste"
                        ],
                        toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
                        entities: "160,nbsp",
                        entity_encoding: "named",
                        entity_encoding: "raw"
        });
</script>

Zde je vše pohodě a pak mám kontroler který mi funguje až do podmínky if ($_POST).
Kontroler mi přestane fungovat. Nezobrazuje se mi ani stránka i když chyba je někde uvnitř podmínky IF co mi připadá docela podivné.

<?php
class EditorKontroler extends Kontroler
{
    public function zpracuj($parametry)
    {


        $this->hlavicka['titulek'] = 'editor článků';
        $this->hlavicka['popis'] = 'editace článků';
        $this->hlavicka['klicova_slova'] = 'editor, změna, editovat';

        $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);
       }
    }
}

Předem děkuji za pomoc

 
Odpovědět
4.12.2016 2:09
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá na Mario Brunmayr
Jan Bezdíček:4.12.2016 2:24

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 :D

 
Nahoru Odpovědět
4.12.2016 2:24
Avatar
Odpovídá na Jan Bezdíček
Mario Brunmayr:4.12.2016 2:44

Špatný druh lomítek jsem tam měl :D . Stránka se mi už spustí ale soubory se mi nevygenerují. Toto je cesta ke kontrolerům /spokus.9e.cz/web/kon­trolery 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 :) .

 
Nahoru Odpovědět
4.12.2016 2:44
Avatar
Mario Brunmayr:4.12.2016 2:46

*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);
       }
        }
}
 
Nahoru Odpovědět
4.12.2016 2:46
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá na Mario Brunmayr
Jan Bezdíček:4.12.2016 2:46

co si takhle udelat nejakou testovaci akci a overit si, jak ten zapis cest vlastne funguje ? :) idealne to lomitko na zacatku dej pryc

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
4.12.2016 2:46
Avatar
Odpovídá na Jan Bezdíček
Mario Brunmayr:4.12.2016 3:11

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 :P .

 
Nahoru Odpovědět
4.12.2016 3:11
Avatar
Odpovídá na Jan Bezdíček
Mario Brunmayr:4.12.2016 3:30

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 :P

 
Nahoru Odpovědět
4.12.2016 3:30
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.