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:

  1. smažeme obsah složky temp/,
  2. zkontrolujeme, zda je povolen zápis tam, kde má být povolen (tj. složky log/ a temp/),
  3. zkusíme odkomentovat RewriteBase v .htaccess,
  4. zkontrolujeme logy (složka logs/),
  5. 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.

Vylepšit tuto stránku