URL složené z in a ex adres
- HerrZ
- Člen | 3
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
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
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
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
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
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
.