Odkazy na externý web v latte

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

Zdravím, snažím sa pridať odkazy na cudzie weby v latte <a href=„{$company->web}“>Web</a> . Tvar predávaného parametra je www.google.sk ako štandardná url. Adresa v prehliadači je však …/www/www.google.sk
Ako zmeniť defaultnú URL, respektíve povedať Nette že ide o externé odkazy? Takto to vypadá tak, že hľadá presenter.
Rovnaký problém mám pri použití jednoduchého <a href=„www.google.sk“>Google</a>, čo by malo fungovať podľa toho čo som našiel.

Editoval Aris (28. 12. 2017 16:15)

Berry
Začátečník | 70
+
0
-

Aris napsal(a):

Zdravím, snažím sa pridať odkazy na cudzie weby v latte <a href=„{$company->web}“>Web</a> . Tvar predávaného parametra je www.google.sk ako štandardná url. Adresa v prehliadači je však …/www/www.google.sk
Ako zmeniť defaultnú URL, respektíve povedať Nette že ide o externé odkazy? Takto to vypadá tak, že hľadá presenter.
Rovnaký problém mám pri použití jednoduchého <a href=„www.google.sk“>Google</a>, čo by malo fungovať podľa toho čo som našiel.

Netuším kde je chyba, ale mě klasický <a href… normálně funguje.

Aris
Člen | 48
+
0
-

Konkrétna chyba je:
Nette\Application\BadRequestException #404
Cannot load presenter ‚Www:Google:Sk‘, class ‚App\WwwModule\GoogleModule\Presenters\SkPresenter‘ was not found.

V html je pritom normálne vygenerovaný odkaz s platnou url.

Prípadne zle nastavený router?

	$router = new RouteList;
	$router[] = new Route('<presenter>/<action>', 'Homepage:default');
ali
Člen | 342
+
+3
-

Dej pred tu adresu https://

Šaman
Člen | 2666
+
+1
-

A nemáš tam někde (jinde) i makro n:href? Nebo {(p)link …}? Ty si kontrolují platnost odkazu. Při použití poze href= by opravdu neměl být problém.

nightfish
Člen | 519
+
+1
-

Aris napsal(a):
Rovnaký problém mám pri použití jednoduchého <a href=„www.google.sk“>Google</a>, čo by malo fungovať podľa toho čo som našiel.

Ono totiž www.google.sk je relativní URL, a tedy se vztahuje k adrese aktuálního dokumentu. Ty chceš použít absolutní URL, tedy https://www.google.sk/.

Aris
Člen | 48
+
0
-

Ďakujem za rady :)
Ako písal @ali . Doplnil som k zadaným url http:// a fungujú ako majú :) S https nebralo všetky odkazy.

//
Nech neotváram novú tému, potreboval by som ešte radu ohľadom routovania projektu.
Vychádzal som z klasického usporiadania projektu, kedy šiel projekt bez problémov, i spojenie s DB.
Po krokoch popísaných nižšie, ktoré som predpokladal, že vedú k riadnemu preroutovaniu projektu som sa dostal k chybe:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 , pričom som metóde presenteru predával v latte šablóne parameter, podľa ktorého sa vyberalo z DB.

  1. Pridal som do zložky App zložky AdminModule a PublicModule, v každom priečinky Templates, Presenters a Control
  2. Prepísal som RouterFactory
		$router = new RouteList;
//public module
		$public = new RouteList('Public');
		$public = new Route('<presenter>/<action>[/<id>]', 'Public:Homepage:default');
$public = new Route('<presenter>/<action>', 'Public:Discounts:default');
$public = new Route('<presenter>/<action>', 'Public:Discounts:detail');
		$router[] = $public;
		....
		//admin module
		$admin = new RouteList('Admin');
$admin = new Route('admin/<presenter>/<action>[/<id>]', 'Homepage:default');
$router[] = $admin;
		return $router;

3. Zmenil som namespace v presenteroch i komponentoch modulu PublicModule na App\PublicModule\Presenters
4. Skontroloval som config.neon, mapping je nastavený *: App*Module\Presenters*Presenter , čiže myslím dobre
5. Nakoľko šablónach nevolám už akciu napr. Discounts:detail, $discount->id, $discount->owner_id (predávané parametre), zmenil som všetky akcie na typ Public:Discounts:detail

Napriek všetkým možným úvahám a zmenám čo som vyskúšal, v debuggeri skončím na akcii Public:Discounts:detail, ktorej sú predané parametre s hodnotou null, čiže je chybný následne i select z databázy. Po dlhšom skúšaní sa mi vidí, že model nespolupracuje so zbytkom aplikácie, avšak sú promptne definované v configu, ich lokalita sa nemenila.
Treba zmeniť namespace i pri modeloch?

Ďakujem za prípadné tipy :)

Editoval Aris (30. 12. 2017 22:41)