Předávání parametrů

Top  Previous  Next

Ve výjimečných případech může být potřeba, aby se v rámci custom skriptů nacházely neobvyklé formuláře, jejichž obsah je třeba předat (např. za účelem spočítání hodnoty nějaké z položek). Podmínky jsou ovšem poměrně striktní, proto je zde tahle sekce.

 

Předávání parametrů do KEVISu

Custom skripty NESMÍ mít žádný přímý výstup (HTML tagy či pomocí příkazu echo). Veškerý výstup je nutno ukládat do proměnné $html, kterou KEVIS pak zobrazuje na patřičném místě (mezi horní a dolní lištou). Jakýkoliv jiný způsob výstupu pravděpodobně rozhodí grafickou podobu KEVISu!

 

Předávání parametrů v rámci custom skriptu

Kvůli bezpečnostním restrikcím je pro jakoukoliv akci v KEVISu naprosto striktně definováno, jaké parametry mohou být přenášeny a jakého jsou typu (string, pole). Pro "uživatelské" parametry v custom skriptech je k dispozici pouze jeden parametr - $custom_values = array(); V tomto poli přenášejte veškeré parametry, které nijak nesouvisí s jádrem KEVISu. Ostatní parametry budou automaticky zablokovány.

 

Příklad formuláře v custom skriptu

Většina potřebných parametrů je předávána automaticky. Jednoduchý formulář pak může vypadat třeba takto:

 

$html .= "<form action=\"index.php\" method=\"post\">";

$html .= vrat_hidden($params, array("action" => "zaznam", "akce" => "list"));

$html .= "od: ";

$html .= vrat_input($params, array("typ" => "varchar", "name" => array("custom_values", "od"), "value" => "", "size" => "10"));

$html .= "do: ";

$html .= vrat_input($params, array("typ" => "varchar", "name" => array("custom_values", "do"), "value" => "", "size" => "10"));

$html .= vrat_input($params, array("typ" => "submit", "name" => "vyber", "value" => "Vyber", "class" => "brown"));

$html .= "</form>";

 

Jak vidíme, všechny potřebné proměnné jsou přenášeny "zabalené" do $custom_values. Ve formulářích je možné použít následující funkce KEVISu:

 

1. function vrat_hidden($params, $params_local = array())

- $params - proměnná dostupná všude v KEVISu, je to pole obsahující veškeré potřebné údaje o evidencích, tabulkách, uživateli, proměnných apod.

- $params_local - upřesňující parametry. Pokud se např. nacházím ve výpisu záznamů, pak platí, že $params["akce"] = "list" a chci-li formulářem přejít do přidání záznamu, pak musím předat $params_local = array("akce" => "add").

 

2. function vrat_input($params, $params_local = array())

- $params

- $params_local - parametry pole ve formuláři - viz níže

 

$params_local["name"] - název inputu, v případě custom skriptů vždy pole s indexem custom_values. Není nijak omezen počat vnoření, prvky pole označují vnořené indexy. Můžete tedy formulářové pole pojmenovat array("custom_values", "prijmeni") nebo třeba array("custom_values", "datum_odjezdu", "od", "rok").

$params_local["value"] - předdefinovaná hodnota formulářového pole (obvykle vynechaná, pokud nechceme např. predvyplnit textové pole)

$params_local["typ"] - varchar / password / text / checkbox / select / radio / submit

$params_local["javascript"] - pokud je k poli přiřazen javascript, např. tedy $params_local["javascript"] = "onmouseover=\"over_platnost(this);\"";

$params_local["size"] - délka = size (v případě textového pole, tzn. varchar / text apod.)

$params_local["length"] - maximální délka = maxlength (v případě textového pole, tzn. varchar / text apod.)

$params_local["class"] - CSS třída formulářového pole

$params_local["id"] - identifikátor pole, používaný např. při interakci s dalšími poli přes javascript

$params_local["hodnoty"] - pole hodnot pro selecty (ve formátu array("id1" => "text1", "id2" => "text2"))

$params_local["setvalue"] - hodnota pro radiobutton

$params_local["newvalue"]

 

Ovšem nic Vám samozřejmě nebrání se těmto funkcím vyhýbat:

$html .= "  <input type=\"text\" class=\"text\" name=\"custom_values[prijmeni]\" size=\"24\" maxlength=\"64\"\">\n";