Pro práci jak v developerském, tak v administrátorském rozhraní doporučujeme používat internetový prohlížeč Mozilla Firefox, na jehož základě je vzhledem ke stabilitě, dodržování standardů konzorcia W3C a ochranným prvkům prohlížeče celý software vyvíjen.
Někdy nastane situace, kdy potřebujete vložit svou vlastní komponentu namísto výchozích vizuálních komponent (TEXT, TEXTAREA, COMBOBOX, CHECKBOX, HTMLAREA, LOOKUP, ...). Ukážeme si, jak to lze za pomocí událostí komponent zvládnout.
Každá komponenta má k dispozici tyto hlavní události, pomocí kterých lze vlastní komponenty implementovat:
onGetCode($recordValues) // zobrazuje HTML kód komponenty pro editaci obsahu onGetDBValue($beforeRecordValues, $afterRecordValues) // vrací hodnotu, která bude uložena do databáze onGetDisplayValue($recordValues) // zobrazuje hodnotu pro výstup na wwwPředstavme si příklad, že potřebujeme vytvořit takovou komponentu, kde uživatel v administraci (aby to nemusel přepočítávat ručně) zadá pouze číselnou hodnotu hmotnosti a současně i vybere měrnou jednotku (g, kg, t) a systém sám převede hodnotu na kilogramy (v poli tabulky potřebujeme mít uloženou hodnotu ve stejných jednotkách) a uloží do databáze. Pro lidštější zobrazení obsahu na webu pak z této společné jednotky opět zobrazí hodnotu v gramech, kilogramech nebo tunách v závislosti na tom, jak velká je hodnota uložená v databázi.
// prevedu jednotky z kg na g, kg, t
$value = $recordValues[$this->name];
if ($value < 1)
{
$unit = "g";
$value *= 1000;
}
else if ($value >= 1000)
{
$unit = "t";
$value /= 1000;
}
$html = "";
// zobrazím komponentu pro textové vstupní pole
$html .= "<input type='text' name='".$this->htmlName."[weight]' size='4' value='".$value."' />";
// zobrazím komponentu pro výběr měrné jednotky
$html .= "<select name='".$this->htmlName."[unit]' value='".$value."' >";
$html .= "<option value='g' ".($unit == "g" ? "selected='selected'" : "").">g</option>";
$html .= "<option value='kg' ".($unit == "kg" ? "selected='selected'" : "").">kg</option>";
$html .= "<option value='t' ".($unit == "t" ? "selected='selected'" : "").">t</option>";
$html .= "</select>";
return($html);V kódu používáme $this->name a $this->htmlName, tedy výchozí proměnné komponenty, abychom nemuseli při změně jména pole upravovat všechny zdrojové kódy událostí. Po uložení této události se v administraci záznamu tabulky, kam jste tuto komponentu vložili, zobrazí následující komponenta:
$value = $beforeRecordValues[$this->name];
if (is_array($value)) // jde o pole, tedy odesláno z administrace
{
$unit = $value["unit"];
$weight = $value["weight"];
if ($unit == "g")
$weight /= 1000;
else if ($unit == "t")
$weight *= 1000;
return($weight);
}
else // nejde o pole, ale hodnotu nechceme ztratit - typicky jde o volání metod insertRecord, updateRecord objektu Table a jiné situace
{
return($value);
}
// prevedu jednotky z kg na g, kg, t
$value = $recordValues[$this->name];
if ($value < 1)
{
$unit = "g";
$value *= 1000;
}
else if ($value >= 1000)
{
$unit = "t";
$value /= 1000;
}
else
{
$unit = "kg";
}
return($value." ".$unit);
Některé vlastnosti publikované v tomto článku mohou být funkční pouze s nejnovější verzí jádra. Pokud máte starší verzi jádra, doporučujeme provést aktualizaci na nejnovější verzi.
| Fotogalerie | 10.5.2012 |
| Sekce: Tvorba prezentací | |
| Chyba v hromadné korespondenci, nelze odeslat příloha (nová verze | 6.4.2012 |
| Sekce: Bug reporty | |
| AntiSpam obrázek | 6.4.2012 |
| Sekce: Programování | |
| Chyba při opravách textů | 4.4.2012 |
| Sekce: Bug reporty | |
| Admin může smazat Developera, je to ok? | 27.3.2012 |
| Sekce: Bug reporty | |
| Mapa webu | 19.3.2012 |
| Sekce: Tvorba prezentací | |
| Update komponenty Weather
18.listopad 2011 |
Server weather.com se rozhodl ukončit poskytování informací o počasí zdarma a přešel na placenou variantu (cca 60$ měsíčně). Z tohoto důvodu jsme byli nuceni upravit komponentu Weather tak, aby stahovala informace o počasí z jiného zdroje dat a to konkrétně ze serveru www.worldweatheronline.com. Tento server také poskytuje informace o počasí z celého světa, nicméně množství informací je oproti původnímu zdroji menší.
Ke správné funkčnosti komponenty počasí aktualizujte jádro na verzi 1.7.9.638. |
| Přidány nové návody
4.říjen 2011 |
Byl přidán nový návod "Použití jiného HTML editoru"
|
Česky

