XSL Parsen ---> Container?

fungo

Erfahrenes Mitglied
Habe mal ein kleines Schaubild gemacht, um mein Anliegen zu verdeutlichen!
 

Anhänge

  • diagramm.gif
    diagramm.gif
    4,7 KB · Aufrufe: 41
Also, ich konnte mein Problem immer noch nicht lösen.
Meine Überlegungen sind folgende:

Ich habe für alle meine Module, also Artikel, FTP, Webmail usw.
ein Template, z.B. lib.artikel.xsl. Dies enthält den gesamten
Templates, die bei der Arbeit mit den Artikel benötigt werden,
wie z.B. Hinzufügen usw.
Codebeispiel:
PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<!-- Haupttemplate fuer die TODO-Liste -->
<xsl:param name="do"/>
<xsl:template name="artikel" match="artikelliste">
  <html>
<head>
<title>Artikel Verwaltung</title>
</head>
<body>
  <xsl:choose>
    <xsl:when test="$do = 'show' ">
      <!-- Artikel auflisten -->
      <xsl:call-template name="listtodo"/>
    </xsl:when>
    <xsl:when test="$do = 'add'">
      <!-- Artikel hinzufügen -->
      <xsl:call-template name="addtodo"/>
    </xsl:when>
    <xsl:when test="$do = 'edit'">
      <!-- Artikel editieren -->
      <xsl:call-template name="edittodo"/>
    </xsl:when>
   </xsl:choose>
    </body>
  </html>
</xsl:template>
..... hier folgen dann die Templates die bei call-template aufgerufen werden.

So oder ähnlich sehen die Templates der anderen Module auch aus.
Den Paramter "do" übergebe ich aus z.B. der Datei artikel.php, um
dann im Template das richtige Template aufzurufen.

Nun möchte ich aber das diese ganzen Template unter eine große Administrations-
oberfläche bringen, wie man es normal gewohnt ist.Und jetzt setzen meine
Probleme ein. Habe auch schon eine passende xsl entworfen(hoffe ich), die
folgendermaßen aussieht:
PHP:
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Variable bestimmt den zu ladenen Templateabschnitt -->
<xsl:param name="modul"/>
<xsl:variable name="modul" select="$modul"/>


<!-- Weitere global verfügbare Variablen und Zustände -->
<xsl:param name="cmsversion"/>
<xsl:param name="username"/>
<xsl:param name="userart"/>
<xsl:param name="akdatum"/>
<xsl:param name="dir"/>


<!-- Alle vorhandenen Templates laden -->
<xsl:include href="system/templates/lib.artikel.xsl"/>
<xsl:include href="system/templates/lib.ftp.xsl"/>
<xsl:include href="system/templates/lib.dateien.xsl"/>
<xsl:include href="system/templates/lib.todo.xsl"/>

<!-- Beginn des haupttemplates -->
<xsl:template >
<html>
  <head>
  <title></title>
  </head>
<body>
<table>
  <tr>
  <td>Leer</td>
  <td>Hauptnavigation</td>
  </tr>
  <tr>
  <td>Subnavigation</td>
  <!-- Content-Bereich -->
  <td>
  <xsl:choose>
    <xsl:when test="$modul = 'artikel'">
      <xsl:call-template name="artikel"/>
    </xsl:when>
    <xsl:when test="$modul = 'dateien'">
      <xsl:call-template name="dateien"/>
    </xsl:when>
    <xsl:when test="$modul = 'ftp'">
      <xsl:call-template name="ftp"/>
    </xsl:when>
    <xsl:when test="$modul = 'aufgaben'">
      <xsl:call-template name="aufgaben"/>
    </xsl:when>
    <xsl:when test="$modul = 'benutzer'">
      <xsl:call-template name="benutzer"/>
    </xsl:when>
    <xsl:when test="$modul = 'webmail'">
      <xsl:call-template name="webmail"/>
    </xsl:when>
  </xsl:choose>
  </td>
  </tr>
</table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>
Wie entwerfe ich jetzt meine passende index.php? Ich habe mit dieser Aufgabe
enorme Probleme und im Moment auch keinerlei Lösungsansätze.
Wäre wirklich ziemlich cool, wenn mir dabei jemand helfen kann!
Soll wirklich alles sehr dynamisch werden!
 
Zurück