Joomla! body id

  • Joomla

Hoe koppel je een uniek id aan de <body> van een pagina in Joomla 1.5.x?

Lang gezocht en eindelijk gevonden. Met zeer veel dank aan Bas Vredeling (www.zonderling.com)

Het toekennen van een id aan een body tag geeft heel veel mogelijkheden m.b.t. het stylen van individuele pagina's van je website zonder met verschillende templates te hoeven werken.

Ik bedoel dit:

<body id="willekeurigenaam">

Hoe doe je dit:

vervang in je template

<body>

door

<?php
$menu = &amp;JSite::getMenu();
$active = $menu->getActive();
?>
<body<?php
if (!empty($active->alias)) { 
echo " id=\"$active->alias\"";} ?>>

Als basis voor de id wordt de alias van het menu-item gebruikt.

Bruikbare aanvulling van Chris Davenport op http://forum.joomla.org/viewtopic.php?f=127&t=281999&p=1558161#p1558161

<?php
$menu =&amp; JSite::getMenu();
$active = $menu->getActive();
$params = $menu->getParams( $active->id );
$class = $params->get( 'pageclass_sfx' );
?>
 <body<?php if ($class) echo ' class="' . $class . '"'; ?>>

Een aanvulling (27 sep 2009): twee veranderingen: als je de frontpage altijd eenzelfde id wilt geven en als je de id wilt gebruiken en niet de alias (die wel eens veranderd zou kunnen worden):

 
<?php
$menu = &JSite::getMenu();
$active = $menu->getActive();
?>
<body <?php if (!empty($active->id)) {// assign id to body for styling purposes, "#frontpage" in case of homepage, and else menu-id
        if ($menu->getActive() == $menu->getDefault()) {
          echo " id=\"frontpage";  
        }
        else {?>id="<?php echo "page$active->id";}?>"> 
      <?php }  ?>