<xsl:choose>
<xsl:when test="@activeTab='false'">
<!-- INACTIVE TAB -->
<li
id=" tab_{@ID}">
<!-- recuperation de l'id du 1er channel de la tab -->
<xsl:variable name="numChannel" select="./chans/chan[1]/@ID"/>
<a href="{$baseActionURL}?uP_root={$numChannel}&amp;uP_sparam=activeTab&amp;activeTab={$tabPosition}">-->
à la place de :
<xsl:choose>
<xsl:when test="@activeTab='false'">
<!-- INACTIVE TAB -->
<li
id=" tab_{@ID}">
<a id="activeTabLink" href="{$baseActionURL}?uP_root=root&amp;uP_sparam=activeTab&amp;activeTab={position()}"> 

* Comment permettre l'affichage d'un seul canal lorsqu'on clique sur le menu principal mais uniquement si l'onglet ne contient qu'une seule colonne ?
La solution consiste à modifier le fichier "tab-column.xsl", puis d'adapter la solution précédente en faisant un test sur la colonne :

   <navigation>
    <xsl:for-each select="/layout/folder/folder[@type='regular' and @hidden='false']">
      <tab>
          <xsl:attribute name="ID">
            <xsl:value-of select="@ID"/>
          </xsl:attribute>
          <xsl:attribute name="cols">
            <xsl:value-of select="count(folder[@hidden='false'])"/>
          </xsl:attribute>
...

Pour remédier à ce problème, nous avons ajouté un processeur fixe dans le fichier "dlmContext.xml" :

 <property name="fixedProcessors">
  <list>
    ...
    <bean class="org.esupportail.portal.layout.dlm.processing.DisableUselessChannelRendering" singleton="false"/>
    ...
  </list>
</property>

Ce processeur remplace les "channel" qu'il est inutile de rendre en balise "chan". Il faut alors modifier légèrement le fichier "tab-column.xsl" pour conserver la partie "navigation".

<chans>
  <xsl:for-each select="folder">
    <xsl:for-each select="channel | chan">
      <chan>
        ...
      </chan>
    </xsl:for-each>
  </xsl:for-each>
</chans>