Michael Schröpl: ssi-include verändern

Beitrag lesen

HI Dave,

Ich habe mein komplettes Menu - etwa 50 Zeilen - in eine txt-datei
eingebunden, und diese per ssi-include eingeügt in jede seite.
Ich will aber, dass die jeweils besuchte Seite mit class="active"
(bereits definiert, keine sorge) hervorgehoben wird. Kann mn das ins
include einfügen? Und wie?

schau Dir mal die Navigation von
      http://www.schroepl.net/projekte/mod_gzip/
an. Das ist komplett via SSI gelöst.

Jedes Dokument ist eine SSI-Seite, welche die Navigation via "include
virtual" einbindet. (Laß Dich nicht von der Endung ".htm" irritieren.)

Die Navigation selbst ist aber auch wieder eine SSI-Seite!

Sie kann in Apaches XSSI bedingte Befehle (if-then-else) enthalten,
und sie kann Inhalte von Environment-Variablen abfragen. Und eine
dieser Variablen ist der Name des Dokuments, in welches die Navi-
gation eingebunden ist.

Jeder einzelne Button der Navigation ist also ein solches if-then-else:

<!--#if expr="${REQUEST_URI} = /encoding.htm/" -->
<p>Content-Encoding</p>
<!--#else -->
<a title="Komprimierung von HTTP-Inhalten durch Content-Encoding" href="encoding.htm">Content-Encoding</a>
<!--#endif -->

Der SSI-Interpreter generiert also für jede Seite eine Navigation,
die genau an diese Seite angepaßt ist: Derjenige Button, der ein Link
auf das Dokument selbst wäre, wird in <p> eingebunden (was wiederum
mit CSS formatiert ist), alle anderen mit <a>.

Aber alles aus einer einzigen SSI-Datei! (Naja, in Wirklichkeit sind es
zwei - eine deutsche und eine englische, via Content Negotiation ...)

Viele Grüße
      Michael