Tvorba odkazů v šabloně

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

Zdravím, zajímalo by mě jestli jde zkrátit, zjednodušit zápis odkazů.
Routa:

<?php
$router[] = new Route('<presenter>/<table>/<id>', array(
	'presenter' => 'Main',
	'action' => 'default',
   	'table' => NULL,
	'id' => NULL,
));
?>

Example: :Main:default?table=users&id=10

Odkazy:

  1. {link default, ‚table‘=>‚users‘, ‚id‘=>5}, takhle {link default, ‚osoby‘, 10} to funguje pouze pokud je metoda ve tvaru renderDefault($table, $id) musí obsahovat všechny a ve stejném pořadí jako v route. Jde to i jinak ?
  2. Jsem na adrese jak je v Example a chci změnit pouze id. Jde to napsat úsporněji než to celí link nadefinovat znova ? Jak vytvořím odkaz na aktuální stránku se všemi parametry (něco jak $this->backlink(), ale se všemi proměnnými) ?
  3. Když použiji netteLinks např. nette:Main:default?table={$var}, tak se mi tam proměnou nedaří dostat.
  4. {link :presenter:action, $array}, ($array obsahuje asociativní pole) tohle taky nevím jak zapsat díval jsem se do jak to filter překládá a on pole vloží ještě do jednoho pole, dá se tomu nějak zabránit, obejít to (tzn. nastavit chování tak jak je v $this->link() v presenteru) ?

Editoval AceUnihoc (5. 2. 2009 22:37)

David Grudl
Nette Core | 8218
+
0
-

Routa s tím nemá víceméně nic společného, takže pokud je metoda renderDefault($table, $id), tak lze odkazovat {link default 'users', 10}, pokud je metoda jen renderDefault(), tak potom {link default, 'table'=>'users', 'id'=>5}.

{link :presenter:action, $array} zatím zadat nejde, váhám jestli to implementovat (asi nějak takto).

AceUnihoc
Člen | 19
+
0
-

David Grudl napsal(a):

Routa s tím nemá víceméně nic společného, takže pokud je metoda renderDefault($table, $id), tak lze odkazovat {link default 'users', 10}, pokud je metoda jen renderDefault(), tak potom {link default, 'table'=>'users', 'id'=>5}.

{link :presenter:action, $array} zatím zadat nejde, váhám jestli to implementovat (asi nějak takto).

Routa s tím co potřebuju nemá nic společného, moje chyba.
S přidáním „*“ před $array v linku, souhlasím to by pomohlo.

  1. Jak se dá vložit proměnná do odkazu tvořeného pomocí netteLinks ?
David Grudl
Nette Core | 8218
+
0
-

Asi nedá… netteLinks beru od dob CurlyBrackets filtru jako něco překonaného.