Interní odkazy

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ů:

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 &amp;. 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 &amp; za znak &:

<?php
$mail_text  
"Nejnovejsi nabidku vseho mozneho najdete na adrese ";
$mail_text .= StripAmps(GetAbsUrl("/shop/catalog""""what=closeout"));
?>