problém s vykreslením šablony
- Neo-Mike
- Člen | 22
Zdravím, jsem v programovaní s nette začátečník. Postupoval jsem
podle Quickstartu a snažil si napsat aplikaci se svou databází. Bohužel jsem
se zaseknul při vytvoření vlastní šablony.
Struktura souborů v teplates:
- \Post\show.latte
- PostPresenter.php
- @layout.latte
Soubor @layout.latte
<body>
....
{**Definovani banneru*}
<div class="container">
<div class="row">
<div class="col-sm-2 portfolio-item"></div>
<div class="col-sm-8">
#banner
</div>
</div>
</div>
<div n:foreach="$flashes as $flash" n:class="flash, $flash->type">{$flash->message}</div>
{include content}
{block scripts}
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//nette.github.io/resources/js/netteForms.min.js"></script>
<script src="{$basePath}/js/main.js"></script>
{/block}
</body>
...
Soubor show.latte
{extends '../@layout.latte'}
{block content}
<div #text</div>
<h1 #text</h1>
<p><a n:href="Homepage:default">← zpět na výpis příspěvků</a></p>
{/block}
Soubor PostPresenter.php
<?php
namespace App\Presenters;
use Nette,
Nette\Application\UI\Form;
class PostPresenter extends BasePresenter
{
/** @var Nette\Database\Context */
private $database;
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
}
public function renderShow($postId)
{
$this->template->post = $this->database->table('tabobjednavka')->get($postId);
}
}
Problém je v tom, že pokud jsem na hlavní stránce, tak je vše v pořádku. Banner, Navbar (využívám Bootstrap), tlačítka jsou vykreslené. Pokud přejdu na stránku, kterou má vykreslovat šablona show.latte, tak mám na stránce jen čistý text. Všechno formátování zmizelo. Pokud jsem to dobře pochopil, tak by se mělo formátování převzít z @layout.latte.
- Neo-Mike
- Člen | 22
CSS styl definuju v @layout pomocí Bootstrapu, style.css vubec v souborech nemám. Místo toho tam mám styl z Bootstrapu. Kdyby byly špatně cesty, tak by potom byl problém se vzhledem prvků i na hlavní stránce ne?
Celý @layout.lette
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>#nazev </title>
<meta name="viewport" content="width=device-width">
{block head}
<link href="assets/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/css/font-awesome.min.css" rel="stylesheet">
<link href="assets/css/custom.css" rel="stylesheet">
<style> </style>
{/block}
</head>
<body>
{**Definovani banneru*}
<div class="container">
<div class="row">
<div class="col-sm-2 portfolio-item"></div>
<div class="col-sm-8">
#banner
</div>
</div>
</div>
<div n:foreach="$flashes as $flash" n:class="flash, $flash->type">{$flash->message}</div>
{include content}
{block scripts}
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//nette.github.io/resources/js/netteForms.min.js"></script>
<script src="{$basePath}/js/main.js"></script>
{/block}
</body>
</html>