Control slouží pro získání hodnot, jako jsou např. IP adresa klienta, URL stránky, z které byl formulář odeslán, či user-agent. Všechny údaje jsou získané na straně serveru, buď z přijatých http hlaviček nebo ze systému JellyPot – control tedy nemá žádný výstup do výsledného HTML kódu stránky.
<f:const runat="server" id="ua" constType="UserAgent" targetField="userAgent" />
Control musí přijít do template formTemplate
controlů <f:collectionForm>
nebo <f:emailForm>
.
Atributy
constType povinný [předdefinované hodnoty]
Určuje, jaká hodnota je při odeslání formuláře získána. Možné hodnoty jsou:
- IP – IP adresa klienta, který odeslal emailový formulář. Obsahuje i případnou http hlavičku X-Forwarded-For.
- UserAgent – obsah pole User-Agent http hlavičky požadavku, kterým byl formulář zaslán na server.
- ProjectName – jméno projektu uvedené v atributu
name
elementu Project v souboru Site.config.
- ProjectTitle – název projektu uvedený v atributu
title
elementu Project v souboru Site.config. Není-li atributtitle
v Site.config uveden, použije se hodnota atributuname
.
- ServerName – název serveru, např.
www.example.com
nebo93.184.216.34
.
- FullServerName – název server, včetně protokolu a případného portu, např.
http://www.example.com
nebohttp://93.184.216.34:80
.
- Date – datum odeslání formuláře.
- DateTime – datum a čas odeslání formuláře.
- Language – jméno aktuálního jazyka, typicky
cs
,en
atp.
- LanguageTitle – uživatelsky přívětivý název aktuálního jazyka (tak je je uveden v atributu
title
elementu Language u příslušného jazyka v souboru Site.config).
- Url – url stránky, z níž byl formulář odeslán (např.
/cs/clanek/prvni-clanek-na-blogu-ABCxyz.aspx
).
- ProcessedUrl – url stránky, která byla skutečně při odeslání formuláře zpracovávana (např.
/cs/clanek.aspx
). Adresa neobsahuje případné předané proměnné, ani jazyk požadavku.
- FullUrl – kompletní url stránky, z níž byl formulář odeslán (např.
http://www.example.com/cs/clanek/prvni-clanek-na-blogu-ABCxyz.aspx
).
- FullProcessedUrl – kompletní url stránky, která byla skutečně při odeslání formuláře zpracovávana (např.
http://www.example.com/cs/clanek.aspx
). Adresa neobsahuje případné předané proměnné, ani jazyk požadavku.
id povinný [string]
Jedinečné jméno controlu. Pod tímto jménem je obsah controlu dostupný v šabloně emailu.
targetField nepovinný [jméno pole]
Jméno pole prvku cílové kolekce, do kterého se uloží data formulářového prvku. (Cílová kolekce je určena atributem
targetCollection
controlů<f:emailForm>
nebo<f:collectionForm>
).
Příklad
Chceme-li u všech zaslaných formulářů zaznamenávat datum a čas zpracování formuláře a řetezec User-Agent, provedeme to takto.
<f:collectionForm runat="server" targetCollection="someMessageCol"> <formTemplate> ... <f:const runat="server" id="ua" constType="UserAgent" targetField="userAgent" /> <f:const runat="server" id="submitted" constType="DateTime" targetField="submitted" /> <f:sendButton runat="server" value="Odeslat" /> </formTemplate> </f:collectionForm>
Při odeslání formuláře bude vytvořen nový prvek v kolekci someMessageCol
a do jeho polí budou uloženy hodnoty ze zaslaného formuláře. Konkrétně do pole userAgent
bude uložen obsah http hlavičky User-Agent, tak jak byla zaslána serveru v požadavku s odeslaným formulářem. Do pole submitted
pak bude uloženo datum a čas, kdy na server tento požadavek dorazil.
Pokud bychom místo <f:collectionForm>
použili <f:emailForm>
, byly by hodnoty v emailové šabloně přístupné pod placeholdery:
{ua}
, resp. {submitted}