Home  PHP Projekte  PHP Schulung  Informationsquellen  Geschichte  Core PHP  Fortgeschrittenes PHP  Templates  Cache-Technologien  OOH Forms  Grundlagen  JavaScript  XML  XML Rumpf  XML Beispiel  Factory  Anwendungsbeispiel  XSLT  Layoutmanager  Pages  Wizards  Fazit  Technik der Site  Büchertipps  Fotografie  Airbrush  Kontakt  Stuff 
|
Die Bedeutung von XSLT
Mittels XSL läßt sich ein XML-Strukturbaum in
einen anderen überführen. Dies erlaubt beispielsweise
die Einführung von neuen Tags, welche Tipparbeit
ersparen und für Einheitlichkeit in einer Applikation
sorgen.
| Ausgangsdokument |
Top |
|
<email name="email" />
|
|
XSL |
| Transformationsergebnis |
Top |
|
<text name="email" label="E-Mail"> <validation> <regexp reg="[a-z0-9_\.-]+@[a-z0-9_\.-]\.[a-z]{2,3}" icase="true"> Bitte überprüfen Sie das Format Ihrer E-Mail. </regexp> </validation> </text>
|
|
Der Einsatz von XSLT stößt immer dann an Grenzen, wenn das
gewünschte Objekt über eine erweiterte Eigenlogik verfügen
soll. In diesem Fall hilft nur die Entwicklung von
neuen Formularelementen.
| Elemente mit Eigenlogik |
Top |
|
<?php require_once('HTML_OOH_Form/elements/form_element_text.php');
class form_element_money extends form_element_text {
function getValue() { if (strcmp((float)$this->value, (string)$this->value) != 0) {
$pos_dot = strpos($this->value, '.'); $pos_com = strpos($this->value, ','); if (false === $pos_dot && false === $pos_com) { // 123 $this->value = (float)$this->value; } else if (false === $pos_dot && $pos_com) { // 123,45[6...] $this->value = (float)str_replace(',', '.', $this->value); } else if ($pos_dot && false === $pos_com) { // 123.45[6...] if ($pos_dot == strlen($this->value) - 2) { // 123.45 $this->value = (float)$this->value; } else { // 123.456[7...] $this->value = (float)str_replace('.', '', $this->value); } } else if ($pos_dot && $pos_com) { if ($pos_dot < $pos_com) { // 123.456,78 $this->value = str_replace('.', '', $this->value); $this->value = (float)str_replace(',', '.', $this->value); } else { // 123,456.78 $this->value = (float)str_replace(',', '', $this->value); } } } $this->value = number_format($this->value, 2, ',', '.'); return $this->value; } function get($subname = '') { // Umformatierung durchführen $this->getValue(); return parent::get($subname); } } // end class form_element_money ?>
|
< ^ >
|