UHTML–Anwenderbeispiel

Jorga Interactive



uHTML–Logo
 

Auslagern gleicher Daten

Die Kopfdaten eines Webauftritts sind üblicherweise bei den meisten Dokumentdateien weitgehend gleich. Es ist sinnvoll, die gleichbleibenden Abschnitte in eine separate Datei auszulagern und zentral zu verwalten. Leider bietet HTML keinen Mechanismus an, der Daten automatisch in die Dokumente einfügt. Mit UHTML kann man ein <include>-Element definieren, das genau dies tut, sprich, die in der Datei head-data ausgelagerten Daten automatisch einfügt.

Angenommen die Datei head-data wird im Unterverzeichnis include des Dokumentverzeichnisses abgelegt. In diesem Fall könnte die Benutzung von <include> so aussehen:

index.uhtml
  
  <html>
    <head>
      <include file="/include/head-data">
      ...
    </head>
  ...
  </html>

Ein solches <include>-Element kann in vielen Projekten Verwendung finden. Ensprechend der oben beschriebenen Konvention wird der Programmcode in der Datei uHTML/include.pm im Skriptverzeichnis abgelegt. Der Inhalt von include.pm könnte dann so aussehen:

include.pm
  
  use uHTML ;

  sub Include($) {
  my $Node = shift;
  $Node->map(join('',<FH>),'') 
    if $Node->Param('file') and
       open FH,$ENV{'DOCUMENT_ROOT'}.$Node->Param('file');
  }

  uHTML->registerTag('include',\&Include);

Um diese kleine Bibliotheksfunktion mit einem Webauftritt zu verbinden, braucht man ein kurzes cgi-Programm, das in der Datei hook.pl im Skriptverzeichnis ablegt wird:

hook.pl
  
  #!/usr/bin/perl

  use uHTML ;

  open FILE,"$ENV{'DOCUMENT_ROOT'}$ENV{'PATH_INFO'}" 
    or die "File: $ENV{'PATH_INFO'} not found";
  print "Content-type: text/html\n\n";
  print uHTML->recode(<FILE>);

Durch ein paar Zeilen, die man der Datei .htaccess im Dokumentverzeichnis hinzufügt, wird UHTML quasi “magisch” in einen Webauftritt integriert und in allen *.uhtml Dateien lauffähig gemacht.

.htaccess
  
  RewriteEngine on
  RewriteRule ^(/?)(.*\.uhtml) $1cgi-bin/hook.pl/$2 [L,QSA]

Dieses voll funktionsfähige Beispiel zeigt das Prinzip der Integration von UHTML in einen Webauftritt. Zwar kommen darin weder variable Parameter vor noch erfordert die Serveranfrage eine Initialisierung oder Datenübernahme, die Erweiterung um diese Elemente ist jedoch trivial.

Trenner


 
Valid HTML 4.01 Transitional CSS ist valide!
uHTML–Logo

Alle Rechte bei Jorga Interactive, 2008 | valid html 4.01 | valid css