home | sitemap

cms functies aanroepen

Naast de standaard functies die beschikbaar zijn, zijn er in het cms ook handige functies beschikbaar. Bijvoorbeeld om van website te wisselen of een module aan te roepen.

De cms functies zijn uiteraard alleen beschikbaar in het cms. Om te detecteren of de html in het cms 'draait' kunnen twee manieren worden gebruikt: de <!-- TMPL_VAR NAME="edit" --> variabele of de functie inCMS().

De functieaanroep van een cms-functie dient altijd vooraf te worden gegaan door parent.Dit omdat de functie wordt aangeroepen vanuit de html pagina die in een iframe draait van het cms. Eigen functies kunnen dus direct worden aangeroepen, die van het cms als bijv. parent.xcmsGoto().

cms-functies

De volgende cms-functies kunnen worden aangeroepen. Er zijn eventueel meer functies om aan te roepen: indien je vermoedt dat een één of andere functie handig zou zijn, laat het dan even weten.

parent.xcsmGoto(url)

Roep deze functie aan met een url om naar een andere pagina of website springen. Meestal is deze functie niet nodig aangezien de meeste hyperlinks standaard worden afgevangen door het cms of door het gebruik van xcms_onclick (Het cms roept in beide gevallen exact dezelfde functie aan.)

Kan bijvoorbeeld worden gebruikt in een constructie als onderstaande om naar de homepage te springen:

...
<li><a <!-- TMPL_IF NAME="edit" -->href="#" onclick="parent.xcmsGoto('<!-- TMPL_VAR NAME="site" -->');return false;"<!-- TMPL_ELSE -->href="/<!-- TMPL_VAR NAME="site" -->"<!-- /TMPL_IF -->>home</a></li>
... 

 Al doet onderstaande hetzelfde:

...
<li><a class="x­cms_onclick" href="/<!-- TMPL_NAME ="site" -->">home</a></li>
...

parent.xcmsSwitchWebsite(sel, site)

Kan worden gebruikt om van website te wisselen. Als een website in meerdere talen beschikbaar is, dan kan via een SELECT-box of een aantal vlaggetjes van website/taal worden gewisseld. sel (optioneel) is in dat geval het SELECT-object. De aanroep zonder sel kan worden gebruikt als er geen SELECT-box wordt gebruikt en direct een websitenaam wordt opgegeven.

...
<script type="javascript">
  function switchWebsite(s) {
    var lang = s.value; 
    if (lang == "-") return; 
    lang = (lang != 'nl') ? lang = "-" + lang : "";
    if (inCMS()) { 
      parent.xcmsSwitchWebsite(0, "mijnwebsite"+lang);
    } else { 
      location.href = document.getElementsByTagName("base")[0].href+"mijnwebsite"+lang+"/";
    }
  } 
</script>
...
<form>
  <select id="lang_select" onchange="javascript:switchWebsite(this);">
    <option value="-">--Choose your language--</option>
    <option value="en">English</option>
    <option value="nl">Dutch</option>
    <option value="de">German</option>
  </select>
</form> 

parent.xcmsSitemap() / parentx.xcmsSearch()

Vaak bevat een website een zogenaamd sitewide-menu met daarin links naar home, contact, print, zoek en sitemap. In het cms is het natuurlijk aardig als al deze linkjes ook werken. De eerste home kan op verschillende manieren, zie hierboven. Een linkje naar een contact-pagina kan gewoon via een stijl-variabele. Printen kan direct door javascript te gebruiken. Voor het zoeken en de sitemap kunnen resp. de cms-functies parent.xcmsSearch en parent.xcmsSitemap worden aangeroepen. In één voorbeeld:

...
<ul id="sitewide">
  <li><a <!-- TMPL_IF NAME="edit" -->href="#" onclick="parent.xcmsSitemap();return false;"<!-- TMPL_ELSE -->href="/<!-- TMPL_VAR NAME="site" -->/sitemap"<!-- /TMPL_IF -->>Sitemap</a></li>
  <li><a href="/<!-- TMPL_VAR NAME="site" -->">Home</a></li>
  <li><a href="/<!-- TMPL_VAR NAME="tmplLinkContact" -->">Contact</a></li>
  <li><a <!-- TMPL_IF NAME="edit" -->href="#" onclick="parent.xcmsSearch();return false;"<!-- TMPL_ELSE -->href="/cgi/search.cgi?site=<!-- TMPL_VAR NAME="site" -->"<!-- /TMPL_IF -->>Zoek</a></li>
</ul>
...