home | sitemap

XML-definities

Alvorens een XML-bestand voor een flash te kunnen vullen, moeten we definieren hoe de XML er uit ziet en welke variabelen ingesteld kunnen worden. Via 'XML-definities' kunnen we dat doen.

Het scherm toont standaard de lijst van bestaande definities. Door op de knop 'Nieuwe XML-definitie' te klikken kunnen we een nieuwe definitie maken.

Geef een duidelijke titel en omschrijving op. De titel komt later terug bij het maken van een XML-bestand.

Vervolgens kan de XML ingevoerd worden. De XML hoort altijd bij een bepaalde flash. De opbouw van de XML krijgt u dus van de maker van de flash. Hij kan u ook vertellen wat de mogelijke instellingen zijn.
De XML voor een galerij kan er bijvoorbeeld als volgt uit zien:

<gallery_config>
  <bg_colour>ffffff</bg_colour>
  <slide_speed>1</slide_speed>
  <images>
    <item source="sample_images/3sizes.jpg" thumbnail="sample_images/thumbs/3sizes.jpg" />
    <item source="sample_images/active.jpg" thumbnail="sample_images/thumbs/active.jpg" />
    <item source="sample_images/4sizes.jpg" thumbnail="sample_images/thumbs/4sizes.jpg" />
  </images>
</gallery_config>

Zoals is te zien kan een kleur, de snelheid en een aantal afbeeldingen opgegeven worden.

Alles wat later ingesteld moet kunnen worden moet nu worden vervangen met zogenaamde template variabelen als <!-- TMPL_VAR NAME="tmplAchtergrondkleur" -->. Ook alle constructies als <!-- TMPL_IF -->, etc. kunnen worden gebruikt.

Bovenstaande XML wordt dan bijvoorbeeld:

<gallery_config>
  <bg_colour><!-- TMPL_VAR NAME="tmplAchtergrondkleur" --></bg_colour>
  <slide_speed><!-- TMPL_VAR NAME="tmplSnelheid" --></slide_speed>
  <images>
    <item source="<!-- TMPL_VAR NAME="tmplAfbeelding1" -->" thumbnail="<!-- TMPL_VAR NAME="tmplAfbeelding1Groot" -->" />
    etc...
  </images>
</gallery_config>

Als we dat hebben gedaan kunnen we aangeven welke variabelen we hebben gebruikt, hoe we ze gaan noemen en van wat voor soort ze zijn. Dat doen we door alle variabelen in het veld 'Variabelen' te benoemen. 

Voor bovenstaande voorbeeld:

Achtergrondkleur:tmplAchtergrondkleur(color)
Snelheid:tmplSnelheid
Afbeeldingen
Afbeelding 1:tmplAfbeelding1(img)
Afbeelding 1 groot:tmplAfbeelding1Groot(img)
etc... 

Alle mogelijke soorten stijl-variabelen kunnen worden gebruikt. 

Indien gereed: sla de definitie op. Vervolgens kan van de definitie 1 of meerdere XML-bestanden worden gemaakt.

Lijsten in XML-definities

In de XML-definities kunnen geen macro's of andere constructies worden gebruikt zoals op gewone pagina's. Er is één uitzondering, namelijk de lijsten. Lijsten kunnen wel in XML-definities worden toegepast.

In plaats van de notatie met blokhaken als:

[­LIST s=1 n=5 style=3 img=1 stay=1 labels=project,...] 

dient een lijst in een XML-definitie opgegeven te worden als

<­xcms:list s="1" n="5" style="3" img="1" labels="project,..."></xcms:list>

De notatie lijkt op die van de gewone macro, alleen staat de instellingen voor de lijst nu als parameters in de tag xcms:list.

Aangezien de lijst-macro standaard html als uitvoer heeft dient altijd een eigen template te worden gebruikt die de uitvoer ook in geldige XML regelt.

Voorbeeld

Stel een flash element kan een rss-feed weergeven maar heeft ook enkele extra parameters nodig. Een standaard rss-feed uitbreiden met extra XML-tags is niet wenselijk, want dan kunnen andere rss-readers de feed misschien niet meer lezen.

Door een eigen XML-definitie te maken met de instellingen en een lijst kunnen we het e.e.a. combineren. Stel dat de xml voor de flash er als volgt uit moet zien:

<?xml version="1.0"?>
  <show>
    <settings>
      <title>Titel...</title>
      <assign>Tekst aanmeldlink...</assign>
      <link window="_blank">/website/newsitems/rss.xml</link>
      <interval>4000</interval>
      <tweentime>1500</tweentime>
    </settings>
    <rss version="2.0">
      <channel>
        <items>
          <!-- items voor rss feed -->
        </items>
      </channel>
    </rss>
  </show>

Op de plaats waar de items van de rss feed moeten komen kunnen we nu een lijst opnemen:

<xcms:list labels="nieuws" template="rss"></xcms:list> 

De template 'rss' ziet er dan als volgt uit:

<item>
  <title><!-- TMPL_VAR NAME="xcms_title" ESCAPE="HTML" --></title>
  <link><!-- TMPL_VAR NAME="xcms_url" --></link>
  <description><!-- TMPL_VAR NAME="xcms_description" ESCAPE="HTML" --></description>
  <pubDate><!-- TMPL_VAR NAME="xcms_date" --></pubDate>
</item> 

PS: het alternatief is natuurlijk om de flash zo te maken dat hij twee XML bestanden kan inlezen: 1 met de parameters en 1 met de rss-feed.