URL složené z in a ex adres

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

Zdravím,
narazil jsem na jednu věc a to jest:
Generuji si menu na stránce pomocí pole, vše funguje parádně – odkazy na controlery a akce v rámci dané domény.
Ale najednou potřebuji v menu mít položku, která odkazuje úplně mimo daný web (z www.domain.xx na www.anotherDomain.xx). Jak vytvořit link, který míří na jiný web pomocí link nebo plink? Abych nemusel na to dělat extra zápis, ale mophl to vložit rovnou do pole jako další položky.

V dokumentaci jsem to nikde nenašel a forum jsem taky prošel. Jestli jsem to někde přehlédl tak se omlouvám.

Díky moc

JakubJarabica
Gold Partner | 184
+
0
-

To ti bezi jedna aplikacia pod dvoma domenami? Lebo generovat na zaklade tvojho routingu link na inu aplikaciu, ktora bezi na niecom inom je divne a pokial viem, nette to nepodporuje. V takom pripade je najlepsie mat evidovany cely link a ten plnit do HREFu.

Edit: Riesenie by bolo prepisat v nejakom tvojom BasePresenteri metodu link: https://api.nette.org/…ent.php.html#285 tak, aby si si na zaklade nejakeho tvojho rozlisovacieho parametra replacoval staru domenu za novu.. Ale to mi pride uz dost divne. Ja osobne pri jazykovych mutaciach(nemeni sa mi domena, ale tld – logika vsak zostava) to riesim persistentnym parametrom, ale to mam viac domen beziacich na jednej appske(co neviem ci je tvoj pripad).

Editoval JAM3SoN (3. 5. 2011 16:02)

HerrZ
Člen | 3
+
0
-

JAM3SoN napsal(a):

To ti bezi jedna aplikacia pod dvoma domenami? Lebo generovat na zaklade tvojho routingu link na inu aplikaciu, ktora bezi na niecom inom je divne a pokial viem, nette to nepodporuje. V takom pripade je najlepsie mat evidovany cely link a ten plnit do HREFu.

Edit: Riesenie by bolo prepisat v nejakom tvojom BasePresenteri metodu link: https://api.nette.org/…ent.php.html#285 tak, aby si si na zaklade nejakeho tvojho rozlisovacieho parametra replacoval staru domenu za novu.. Ale to mi pride uz dost divne. Ja osobne pri jazykovych mutaciach(nemeni sa mi domena, ale tld – logika vsak zostava) to riesim persistentnym parametrom, ale to mam viac domen beziacich na jednej appske(co neviem ci je tvoj pripad).

Právě, že jsem se setkal s jedním zákazníkem, kterému jsem dělal webovky. Tak jsem si řekl, že to zkusím udělat v Nette – jen takový pokus pro mě, protože jsem začátečník, tak jsem si to dal za úkol. A narazil jsem na problém s generováním menu, kde zákazník chtěl, aby v jeho menu byly odkazy na jednotlivé sekce a nakonci byly odkazy na jeho další podobně tématické stránky. Takže odkázat na úplně jinou doménu i tld. Takže jak píšeš tak to v Nette nejde a musel bych si to doprogramovat. Tedy funkcičku, kde rozlišuji zda je odkaz interní či externí…

Aurielle
Člen | 1281
+
0
-

Generovat odkazy na jinou doménu samozřejmě jde, jen je potřeba mít nastavené routování a generovat absolutní URL.

$router[] = new Route('//<domain>/<presenter>/<action>/<id>', array(...));

$link = $this->getPresenter()->link('//Homepage:', array('domain' => 'nova-domena.cz'));
HerrZ
Člen | 3
+
0
-

Děkuji, ale asi bych to viděl jinak.

$this->link(destination [,arg [,arg ...]]);

existuje mnoho variací pro destination v rámci jednoho webu, ale žádná mimo danou doménu. Je to tak?
Když by to třeba začínalo http://… tak aby to poznalo, že se jedná o link ven a ne na controler a akci… Nemyslíte, že by se to mohlo hodit? Aby se nemuselo nastavovat routování atp?
Jsem nováček v Nette a objevuji ho, tak mě to zajímá.

Filip Procházka
Moderator | 4668
+
0
-

Pro tebe bude asi nejjednodušší vytvořit nějaký redirect presenter

class RedirectPresenter extends BasePresenter
{

	public function actionDefault($url)
	{
		// můžeš implementovat i počítadlo kliknutí
		// $this->redirects->log($url);

		$this->redirectUri($url);
	}

}

A odkazovat takto

$presenter->link('Redirect:', $url);

pokud máš router s klasickou maskou /<presenter>/<action> pak ti vznikne cesta http://tvujweb.cz/redirect?url=http://example.com.