WML-Tutorial
[ Inhaltsverzeichnis ]WML
 Template
Template


Template

Normalerweise werden Sonderschaltflächen und Ereignisbehandlungen innerhalb einer Card definiert und stehen auch nur dort zur Verfügung. Möchte man aber soetwas für das gesamte Deck festlegen, somit fuer alle Cards des Decks, so kann man dies innerhalb des template-Tags zwischen <template> und </template> machen.

In den folgenden Beispielen wird die Wirkung des template-Tags an einer Sonderschaltfläche ( do-Tag ) gezeigt. Die Programmierung von Ereignisbehandlungen via Template erfolgt analog dazu, auch die Überladung.

Beispiel :


<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>  
  <template>
    <do type="accept" label="AnfangsCard" name="anf"> 
      <go href="#anfang"/>
    </do> 
  </template>
	
  <card id="anfang">
    <p>
      Dies ist die AnfangsCard.
      <a href="#inhalt1">Inhalt 1</a>
      <a href="#inhalt2">Inhalt 2</a>
    </p>
  </card>
  
  <card id="inhalt1">
    <p>
      Dies ist die InhaltsCard 1.
    </p>
  </card>

  <card id="inhalt2">
    <p>
      Dies ist die InhaltsCard 2.
    </p>
  </card>    	
		
</wml>

Erklärung :

Im obigen Beispiel wurden drei Cards definiert. Eine AnfangsCard ( id="anfang" ) und zwei weitere Cards ( id="inhalt1", id="inhalt2" ), die Inhalt darstellen sollen. Durch das definierte Template innerhalb von <template> und </template> steht jetzt auf jeder Seite ein Sonderschaltfläche zur Verfügung, mit dem wieder auf die Anfangsseite gesprungen werden kann, ohne daß man diese innerhalb der einzelnen Cards implementiert hat. Leider existiert auch auf der AnfangsCard diese Sonderschaltfläche, wo sie eigentlich keinen Sinn macht. Dies kann aber behoben werden, wie das folgende Beispiel zeigt.

Beispiel :


<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>  
  <template>
    <do type="accept" label="AnfangsCard" name="anf"> 
      <go href="#anfang"/>
    </do> 
  </template>
	
  <card id="anfang">
  <do type="accept" label="AnfangsCard" name="anf"> 
      <noop/>
  </do> 
    <p>
    Dies ist die AnfangsCard.
    <a href="#inhalt1">Inhalt 1</a>
    <a href="#inhalt2">Inhalt 2</a>
    </p>
  </card>
  
  <card id="inhalt1">
    <p>
  	Dies ist die InhaltsCard 1.
    </p>
  </card>

  <card id="inhalt2">
    <p>
  	Dies ist die InhaltsCard 2.
    </p>
  </card>    	
		
</wml>

Erklärung :

In der AnfangsCard wurde jetzt genau dieselbe Sonderschaltfläche implementiert, allerdings wurde ihm seine Wirkung entzogen, indem man als Aktion das noop-Tag <noop/>, für nooperation, hinterlegt hat. Man kann sozusagen ein Template in einer Card überladen, wobei der Name der Überladung genau dem Namen des Templates entsprechen muss. Im Beispiel ist dies mit name="anf" im Template und in der AnfangsCard geschehen.