Odkazy se ve stránkách zapisují způsobem běžným v HTML. Určení interního URL směřujícího na některý skript či stránku naší aplikace by však mohlo být v některých případech složité. Proto existuje funkce GetUrl, která ze zadaných parametrů vytvoří a vrátí příslušnou adresu.
string GetUrl(mixed page, mixed script, string ...);
Všechny parametry funkce jsou volitelné. První dva jsou identifikátory cílové stránky resp. skriptu. Mohou být zadány jako běžný řetězec či jako instance objektu CEntity. Dalšími parametry ve tvaru "nazev=hodnota" se nastavují případné další parametry výsledného URL. Pro určení konkrétní části cílové stránky je možné zadat i hashmark parametr ve tvaru "#hodnota". Výsledný odkaz je v relativní podobě, tzn. bez určení serveru. Několik příkladů:
URL stránky /main/contact získáme voláním GetUrl("/main/contact"). Funkce vrátí hodnotu index.php?PAGE=main/contact.
Adresu aktuální stránky dostaneme jako GetUrl($THIS).
Skipt /user/logout odkážeme přes URL vytvořené funkcí GetUrl("", "/user/logout").
Adresu, na které smažeme uživatele číslo 123, získáme jako GetUrl("", "/admin/user/delete", "user_id=123"). Výsledné URL bude index.php?SCRIPT=user/delete&user_id=123.
Podobnou funkcí je GetAbsUrl, která vrací úplné absolutní URL včetně protokolu http:// a adresy serveru. Parametry má stejné jako GetUrl. Obě popsané funkce mají ještě své protějšky Url a AbsUrl. Liší se pouze tím, že výslednou adresu nejen vrátí, ale zároveň ji i vypíší na výstup. Vytváření interních odkazů v HTML kódu je tak rychlé a přehledné:
<a href="<?php Url($THIS) ?>">Tato stránka</a>
<a href="<?php Url("/main/contact") ?>">Stránka s kontakty</a>
Popsané funkce oddělují v souladu s normou XML/XHTML při vytváření odkazů jednotlivé parametry textovou entitou &. To je ale nepříjemné, pokud nevkládáme URL do cíle odkazu, ale například jej přímo zobrazujeme na obrazovku či odesíláme e-mailem. V takovém případě bychom potřebovali jako oddělovač jen prostý ampersand &. K tomu slouží funkce StripAmps, která v zadaném textu nahradí všechny entity & za znak &:
<?php
$mail_text = "Nejnovejsi nabidku vseho mozneho najdete na adrese ";
$mail_text .= StripAmps(GetAbsUrl("/shop/catalog", "", "what=closeout"));
?>
Obsah stránek vyjadřuje osobní názory, postoje a zkušenosti autora. Copyright © 2004–2010 Jan Tichý.