Hi,
* Sebastian Roth [04/04/02 22:17:09] wrote:
In der .xml-Datei:
<menu />
Und die .xsl Datei hat passend dazu das gehabt: <xsl:template match="menu"> <tr align="center"> <td> </td> <td colspan="2"> navigation >> <a href="index.html">| home |</a> <a href="linux.html">| Linux |</a> <a href="physics.html">| physics for linux |</a> <a href="links.html">| links |</a> <a href="contact.html">| contact |</a> </td> </tr> </xsl:template>
Nur gefaellt mir das so wie es jetzt ist, nicht so ganz. Der aktive Link (die Seite aus der Liste, die aufgerufen wurde) soll irgendwie hervorgehoben sein. Fettgedruckt meinetwegen.
Nun faellt mir aber nicht ein, wie man solch ein Problem loesen koennte. Hat jemand von euch sowas aehnliches schonmal geloest??
Jein. Ich mache das persoenlich zwar anders, aber du koenntest die HTML-Dateien per Skript nachbearbeiten, indem du einfach fuer jede Datei einfach die Links korrigierst. Allerdings koenntest du damit in weitere Probleme trudeln.
Deshalb wuerde ich folgendes machen:
+ 'menu' so umdefinieren, dass du ihm ein Feld 'id' mitgeben kannst. In 'index.xml' steht dann '<menu id="index"/>' statt '<menu/>'
+ In der .xsl jeden Eintrag in der Navigationsleiste aendern: Aus
<a href="index.html">...
wird dann:
<xsl:choose> <xsl:when test="@id=='index'"> <b>| home |</b> </xsl:when> <xsl:otherwise> <a href="index.html">| home |</a> </xsl:otherwise> </xsl:choose>
... und bei Punkt 2 draengelt sich eine Skript-Loesung foermlich auf. Du machst dann eine Index-Datei, die folgendermassen aussehen koennte:
,- | HTML-Dateiname,'id'-Eintrag,String fuer Navigationsleiste | index.html,index,| home | | linux.html,linux,| Linux | | ... `-
Die liest du mit einem Skript aus (awk reicht natuerlich) und erstellst meinetwegen menu.xsl, was du in deine Standard-xsl-Datei einbindest.
Somit koenntest du mit einem Eintrag in deiner Index-Datei und einem Skript die Navigationsleiste einfach und gleich fuer alle Dateien aendern.
HTH,
Cheers, Rocco.