Nedaří se mne načíst soubor default.latte ⇒ $text = FileSystem::read($file);

Karel Chramosil
Člen | 105
+
0
-

Dobrý den,

používám nette 3.1. Nedaří se mne načíst soubor default.latte, ve kterém je dokumentace k mé aplikaci. Cesta k souboru je správná. Viz zdroják:

Vypíše se chyba:
Zadaná data nejsou správné.Nette\IOException: Unable to read file ‚http:\localhost\revize_spo_qr\www\app\Presenter\templates\DokumUvod\default.latte‘. failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in C:\xampp\htdocs\revize_spo_qr\vendor\nette\utils\src\Utils\FileSystem.php:152 Stack trace: #0 C:\xampp\htdocs\revize_spo_qr\app\Presenters\DokumObsahPresenter.php(52): Nette\Utils\FileSystem::read(‚http://localhos…‘) #1 C:\xampp\htdocs\revize_spo_qr\vendor\nette\forms\src\Forms\Form.php(456): App\Presenters\DokumObsahPresenter->insertFormSubmitted(Object(Nette\Application\UI\Form), NULL) #2 C:\xampp\htdocs\revize_spo_qr\vendor\nette\forms\src\Forms\Form.php(426): Nette\Forms\Form->invokeHandlers(Array) #3 C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\UI\Form.php(167): Nette\Forms\Form->fireEvents() #4 C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\UI\Presenter.php(342): Nette\Application\UI\Form->signalReceived(‚submit‘) #5 C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\UI\Presenter.php(231): Nette\Application\UI\Presenter->processSignal() #6 C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\Application.php(161): Nette\Application\UI\Presenter->run(Object(Nette\Application\Request)) #7 C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\Application.php(90): Nette\Application\Application->processRequest(Object(Nette\Application\Request)) #8 C:\xampp\htdocs\revize_spo_qr\www\index.php(18): Nette\Application\Application->run() #9 {main}

?php

namespace App\Presenters;

use Nette;
use Nette\Application\UI\Form;
use Nette\Utils\FileSystem;
use Tracy\Debugger;

final class DokumObsahPresenter extends BasePresenter
{
    private $database;

    public function __construct(Nette\Database\Context $database)
    {
            $this->database = $database;
    }


	public function actionDefault()
	{
        Debugger::$dumpTheme = 'dark';
		$this->template->anyVariable = 'any value';
        $this->template->nalezeno_fl = false;
        $this->template->Uvod = false;
	}

    protected function createComponentEditaceForm()
    {
        $form = new Form();
        $form->addText('hledej', 'Najdi text (tlačítko, odkaz a.j.):', 30, 100);
        $form->addSubmit('set', 'Hledej v dokumentaci ►');
        $form->onSuccess[] = [$this, 'insertFormSubmitted'];
        return $form;
    }

    public function insertFormSubmitted(Form $form)
    {

        $file = $this->akt_url().'app/Presenter/templates/DokumUvod/default.latte';
        Debugger::dump($file);
        try {
            $text = '';
            if(FileSystem::isAbsolute($file)) {
                $text = FileSystem::read($file);
                //defaultDebugger::dump('true');
            }
            Debugger::dump($text,);
        } catch (Nette\IOException $e) {
            $form->addError('Zadaná data nejsou správné.'.$e);
        }


        $this->template->nalezeno_fl = true;
        ;
    }
}

Děkuji za jakoukoliv radu.

Karel Chramosil

Marek Bartoš
Nette Blogger | 1146
+
0
-

$file = __DIR__ . '/templates/DokumUvod/default.latte';

Jak tě vůbec napadlo místo cesty k souboru sestavovat url adresu? Jednak ten soubor máš lokálně, druhak by vůbec neměl být skrze http přístupný.

Karel Chramosil
Člen | 105
+
0
-

Děkuji moc za správnou odpověď.

Karel Chramosil