[Homepage]-[Sitemap] [EMail]

Navigation


Zurück zu:
TPL

Hauptmenü:
Wie funktioniert TPL?

Handbuch

Tips & Tricks

Workshop

Download

Voraussetzungen

Impressum


 

Wie funktioniert TPL?

Mit TPL kann man in jeder beliebigen Datei, egal ob Text-, HTML- oder sogar XML-Datei, mit Hilfe von Marken einzelne Bereiche markieren. Jeder einzelne Bereich läßt sich mit einem SQL-Statement in der Art verknüpfen, daß bestimmte Teile des markierten Bereichs so oft wiederholt werden, als das SQL-Statement Datensätze zurückliefert. Die einzelnen Werte des Datensatzes werden anstelle von im markierten Bereich eingestreuten Platzhaltern eingesetzt.

Eine Datenbank ist zum Einsatz von TPL zwingend notwendig, da TPL sie zum Abspeichern verschiedener Laufzeitinformationen benötigt. Außerdem basiert das integrierte Rechtesystem auf einigen Standardtabellen.

Das Session Konzept
Das Variablenkonzept
Das Rechtesystem

Das Session Konzept

Normalerweise kann der Web-Server nicht feststellen, ob zwei angeforderte Seiten vom gleichen Client-Rechner angefordert wurden. Das heißt aber auch, daß der Server keine Möglichkeit besitzt, eine Folge von Seitenaufrufen einem bestimmten Menschen zuzuordnen! Aber wie will man dann z.B. einem Kunden eines Internet-Shops einen Warenkorb zuordnen? Um dieses Problem zu lösen, gibt es eine Reihe von Möglichkeiten, von denen z.B. eine das Abspeichern eines Cookies beim Client-Rechner ist.

TPL geht allerdings einen anderen Weg: als Entwickler können Sie in Ihrer Anwendung eine Startseite definieren, die einen Platzhalter für die TPL-Systemvariable 'NEWTNR' enthält. Wenn das TPL-System beim Interpretieren der Seite auf den Platzhalter stößt, so wird eine eindeutige Nummer generiert und von da an, an jede weitere Seite über die TPL-Systemvariable 'TNR' des Systems weitergegeben.

Ein Beispiel: Sie wollen einen Shop aufbauen und haben dazu eine Eingangsseite erstellt, von der der Kunde z.B. auf verschiedene Kategorien Ihres Shops durch das Anklicken eines Verweises gelagen kann. Entdeckt der Kunde einen Artikel der ihm gefällt, so soll er ihn symbolisch durch einen Klick in einen Warenkorb legen können - möglichst ohne daß er dazu erst eine Kundennummer anfordern muß. Denn den dafür notwendigen Aufwand wird ihn eher abschrecken und er wird möglicherweise den Shop sofort verlassen.

Um dies zu vermeiden, plazieren Sie im HTML-Code der Shop-Eingangsseite einen '[:NEWTNR]-Platzhalter in allen Verweisen, die auf weitere TPL-Seiten zeigen. Da die Seite durch das TPL-System interpretiert wird, wird der Platzhalter durch eine eindeutige Nummer ersetzt und an die Folgeseiten weitergegeben. So bekommt jeder Kunde seine persönliche Nummer zugeordnet und es kann ihm ein persönlicher Warenkorb zugeordnet werden.

Das Variablenkonzept

Auch so etwas wie globale Variablen kennt ein Web-Server normalerweise nicht. Erst durch den Einsatz von Techniken wie ASP oder Servlets, wird der Web-Server in Verbindung mit Programmiersprachen wie VBScript oder Java in die Lage versetzt, sich seitenübergreifend Informationen zu merken. Selbstverständlich benötigt auch TPL eine solche Möglichkeit.

Es gibt sogar deren drei.

  • Parameterweiterleitung
  • Seitenvariablen
  • Globale Variablen

Parameterweiterleitung

Diese Methode hat den Vorteil keinerlei Speicherplatz zu verschwenden und relativ effizient in der Ausführung zu sein. Man muß einfach nur dafür sorgen, daß die beim Aufruf einer Folgeseite zu übergebenden Informationen als Parameter an den Aufruf angehängt werden.

Seitenvariablen

Mit Hilfe der TPL-Funktion 'SETVAR' kann das Ergebnis eines SQL-Statements einem Namen zugeordnet werden, der anschließend in der gleichen Seite über '[:Name]' verwendet werden kann. Dies dient vor allem der Vorbereitung weiterer SQL-Statements, die z.B. aufwendige 'WHERE'-Klauseln beinhalten.

Globale Variablen

Ähnlich den Seitenvariablen kann mit 'SETGVAR' eine Variable definiert werden, die innerhalb einer Session gilt. Damit können auch seitenübergreifend Informationen in Variablen weitergeben werden.

Das Rechtesystem

Gerade die Möglichkeit Informationen weltweit zur Verfügung zu stellen, macht das Internet für viele Anwendungen so attraktiv. Und wenn man eine Firma als eigene kleine Miniwelt betrachtet, so gilt dies auch für's Intranet.

Wenn Informationen aber in die falschen Hände kommen, so kann einem dies schnell zum persönlichen Nachteil geraten. Aus diesem Grund ist in TPL ein Rechtesystem eingebaut, daß dem Entwickler einer TPL-Anwendung die Möglichkeit gibt, sehr gezielt zu steuern, Wer Was für Welche Informationen sehen darf.

Für jede Anwendung lassen sich bis zu 32 Grundrechte definieren. Diese lassen sich in beliebiger Anzahl beliebig vielen Gruppen zuordnen und von diesen Gruppen kann jeweils eine, einem Benutzer zugeordnet werden. Die entsprechenden Tabellen zur Verwaltung des Rechtesystems gehören standardmäßig zu TPL dazu:

  • TPLRights
  • TPLGroups
  • TPLRight2Group
  • TPLUsers

Die Definition der Grundrechte ist Sache des Anwendungsentwicklers, während die Zuordnung von Grundrechten zu Gruppen und diese zu Benutzern auch von den späteren Anwendern erfolgen kann. Das hängt nur davon ab, ob der Anwendungsentwickler entsprechende Administrationsseiten in der Anwendung vorsieht, oder nicht.

Um nun als Anwendungsentwickler zu steuern welche Informationen der Anwender zu sehen bekommt, muß die TPL-Funktion 'CHECK' benutzt werden. Als Argument bekommt sie eine Zahl übergeben, die sich aus den Zweierpotenzen der Position der einzelnen Grundrechte zusammensetzt.

Angenommen es gäbe folgende Grundrechte:

  • 0 Administration Zugang
  • 1 Benutzergruppen verwalten
  • 2 Projekte Zugang
  • 3 Projekte löschen
  • 4 Projekte anlegen, bearbeiten
  • 5 Projektauswertungen
  • 6 Mitarbeiterauswertungen

Und nehmen wir weiter an, daß ein Anwender einen bestimmten Bereich innerhalb einer HTML-Seite nur dann sehen soll, wenn er über die Rechte 'Projekte Zugang' und 'Mitarbeiterauswertungen' verfügt, so müßte dieser Bereich mit 'CHECK' und 2^2 + 2^6 = 4 + 64 = 68 geschützt sein!


Diese Seite wurde mit BrainStorm generiert
Copyright © 1991 - 2001 by Thomas Ell