FAQ aneb časté dotazy
Zde naleznete odpovědi na některé nejčastěji kladené dotazy. Pokud Vám nebudou jasné některé používané pojmy, podívejte se do slovníčku pojmů.
Hosting neumožňuje změnu root složky
Někdy můžete narazit na sdílený hosting, který Vám neumožní nahrát aplikaci mimo adresář document-root.
Tzn. všechno, co do tohoto adresáře nahrajete, je přístupné z prohlížeče, přičemž samotný web se nachází ve
složce www
. Používání takového hostingu představuje vážné bezpečnostní riziko. Pomocí souborů
.htaccess
a pravidel mod_rewrite
sice můžete chování částečně upravit, ale rozhodně
doporučujeme, abyste požádali hosting o nastavení document-rootu přímo do složky www, nebo hosting změňte.
Při experimentech s adresářovou strukturou nezapomeňte zkontrolovat, zda přístup do app,
libs, log a temp není možný, aby vám někdo nemohl přečíst konfigurační soubory či logy
s chybami (např. http://example.com/app/config/common.neon
).
Bílá stránka po nahrání na hosting
Postupně projdeme tyto kroky:
- smažeme obsah složky temp/,
- zkontrolujeme, zda je povolen zápis tam, kde má být povolen (tj. složky
log/
atemp/
), - zkusíme odkomentovat
RewriteBase
v .htaccess, - zkontrolujeme logy (složka
logs/
), - zapneme laděnku.
Zrušení persistentního parametru
Podíváme se do presenteru, jakou má nastavenou výchozí hodnotu:
/** @persistent int */
public $page;
a tu mu předáme při vytváření odkazu:
<a href="{link someAction, page => null}">someWhere</a>
<!-- nebo -->
<a n:href="someAction, page => null">somweshWere</a>
Použítí {}
v šabloně
Latte filter používá {}
jako „řídící“ znaky. Pokud potřebujete v šabloně napsat {}
(například u JavaScriptu), musíte za {
udělat mezeru, pak následující část nebude brána jako makro.
Lze také použít Latte makra {l}
resp. {r}
pro vykreslení levé resp. pravé závorky.
Texy!
Nainstalujeme Texy! pomocí Composeru : composer require texy/texy
Nyní je třeba zaregistrovat si filtr (dříve se tomu říkalo helper) texy
, což lze udělat dvěma
způsoby:
- ručně v presenteru (BasePresenteru)
- pomocí konfigurátoru v config.neon
V presenteru:
protected function createTemplate($class = null)
{
$template = parent::createTemplate($class);
$template->addFilter('texy', [new \Texy(), 'process']);
return $template;
}
Pomocí config.neon:
services:
nette.latteFactory:
setup:
- addFilter('texy', [\Texy(), process])
A nyní už v šabloně stačí použít např.:
{block|texy}
třeba **tučné** písmo nebo *kurzíva*
{/block}
Odkazování v modulech
Do jiného modulu musíme odkázat pomocí absolutního názvu presenteru, tj. s dvojtečkou na začátku:
<!-- Relativní odkaz na modul -->
<a href="{link Foo:Default:default}">link</a>
<!-- nebo -->
<a n:href="Foo:Default:default">link</a>
<!-- Absolutní odkaz na modul -->
<a href="{link :Foo:Default:default}">link</a>
<!-- nebo -->
<a n:href=":Foo:Default:default">link</a>
Zapnutí laděnky v produkčním prostředí
Pokud z nějakého důvodu potřebujeme na produkčním serveru zapnout laděnku, v souboru app/bootstrap.php
hned za vytvoření instance třídy Configurator
přidáme tento řádek:
$configurator->setDebugMode(true);
Pokud chcete zapnout vývojový režim jen pro některé počítače, můžete předat metodě seznam IP adres klientů (nikoliv serveru), pro které bude vývojový režim povolen.
Pokud tedy Váš počítač má IP adresu například 192.168.1.215
, upravte volání takto:
$configurator->setDebugMode('192.168.1.215');
Více IP adres by bylo odděleno čárkou.