Nejzákladnější vytvoření linku

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
um
Člen | 7
+
0
-

(Jo, zkoušel jsem hodinu hledat na fóru a pročetl jsem tutoriály…)
Po vzoru tohoto videa https://www.youtube.com/watch?… jsem si zkopíroval sandbox (fungoval), a přidal jsem do @layout.latte

<?php
<a href="{link default}">homepage</a>
<a href="{link clanky}">clanky</a>
?>

a pak jsem ve složce sandbox/app/templates/Homepage vytvořil clanky.latte.
Ve videu tohle stačilo na funkční link, ale podle tutoriálů jsem měl pocit, že bych měl přidat ještě

<?php

// HomepagePresenter.php
public function renderClanky()
{
	$this->template->anyOtherVariable = 'any value';
}

?>

Každopádně to nefunguje a nevyhodí to stránku laděnky ani nějakou 404 od nette, ale obyčejnou „Not Found“ stránku na url localhost/sandbox/www/homepage/clanky. (první {link default} funguje a zůstane na localhost/sandbox/www/)

enumag
Člen | 2118
+
0
-

Render metoda nutná není, důležitá je existence šablony – v tvém případě pravděpodobně chybí soubor /app/templates/Homepage/clanky.latte.

um
Člen | 7
+
0
-

Soubor „app/templates/Homepage/clanky.latte“ jsem, jak píšu, vytvořil.
Jsem úplný začátečník, tak je možné, že jsem přehlédl ještě něco předtím. Je třeba normální, že se nezobrazí speciální 404 od nette?

enumag
Člen | 2118
+
0
-

Není, zkus v htaccess odkomentovat RewriteBase.

Oli
Člen | 1215
+
0
-

Mas spatně ten odkaz. Správně v tvém případě je:

<a href="{link Homepage:default}">homepage</a>
<a href="{link Homepage:clanky}">clanky</a>

Viz: Odkazy v šablonách
A že se zobrazí laděnka je také dobře. Díky ní víš, co je špatně. Na produkčním serveru se zobrazí z presenteru Error šablona 404.latte.

um
Člen | 7
+
0
-

Ve www\.htaccess jsem to odkomentoval „# RewriteBase /“, ale nepomohlo. Teď koukám, že requirements-checker hlásí „.htaccess mod_rewrite Disabled“, tak bych měl možná vyřešit nejdřív to.

enumag
Člen | 2118
+
0
-

@um: Aha. Ano, to je ten důvod. Najdi si soubor httpd.conf, tam ho povol a resetni apache.

@Oli: To by nemělo mít význam – je stále v presenteru Homepage.

Editoval enumag (24. 8. 2013 12:01)

um
Člen | 7
+
0
-

Oli napsal(a):

Mas spatně ten odkaz. Správně v tvém případě je:

<a href="{link Homepage:default}">homepage</a>
<a href="{link Homepage:clanky}">clanky</a>

Viz: Odkazy v šablonách
A že se zobrazí laděnka je také dobře. Díky ní víš, co je špatně. Na produkčním serveru se zobrazí z presenteru Error šablona 404.latte.

Přidat „Homepage:“ jsem zkoušel a chová se to přesně stejně, tj. default funguje, clanky ne. Stránka laděnky se právě nezobrazí.

Editoval um (24. 8. 2013 12:13)

um
Člen | 7
+
0
-

Tak .htaccess mod_rewrite Enabled, místo defaultního Not found nebo 404 od nette mě teď link clanky ale pošle na stránku, která vypadá přesně jako kdybych přešel na localhost, ale v url je localhost/sandbox/www/homepage/clanky. Tohle je fakt zvláštní chyba, mám poslat nějaký kus kódu? Používám WAMP, jestli je to k něčemu.

Editoval um (24. 8. 2013 12:24)

enumag
Člen | 2118
+
0
-

Zkus ještě obě varianty rewritebase (za/odkomentovaný). Dělají obě totéž?

um
Člen | 7
+
0
-

Funguje! Moc děkuju.
Pro případné další příchozí: řešení bylo ve wamp\bin\apache\apache2.2.22\conf\httpd.conf odkomentovat „LoadModule rewrite_module modules/mod_rewrite.so“ (a v .htaccess „# RewriteBase \“ nechat zakomentované).