baseportal
 Forum    Start

Einführung

 
 Wozu Datenbanken? Was kann man damit machen?  zur Übersicht

 
Man benötigt Datenbanken um all seine Daten zu orden, sei es durch ein einfaches, geschriebenes Telefonbuch oder einen Computer, der die Daten aufnimmt. Alles mögliche sind Daten und jeder benutzt sie: Adressen, Produkte einer Firma, Fussballspiel-Ergebnisse, die Einträge in einem Terminkalender, der Einkaufzettel...

Damit diese Daten wirklich nützlich sind, muss man sie ordnen. Die gebräuchlichste und in vielen Fällen die sinnvollste Form dies zu tun ist sicherlich eine Tabelle. Hier zum Beispiel eine Adresstabelle:

 
Name Strasse Ort
Andrea Huber Feldweg 3 23456 Bingenberg
Stefan Ziegenbart Lindenstrasse 25a 55555 Nordwald
Bettina Blau Waldstrasse 5 98765 Graudorf
Herbert Meyer Glockengasse 1 28343 Dupfing

Wir haben die Daten in Spalten und Zeilen geordnet. Eine bestimmte Spalte in einer bestimmten Zeile bezeichnet man als Feld. Die erste Zeile ist offensichtlich etwas besonderes, sie gehört nicht zu den Daten selbst, sondern bezeichnet die einzelnen Spalten.

Unserer Anordnung ging also die Überlegung voraus: Was haben alle Daten gemeinsam? Wie kann man sie sinnvoll gruppieren?

Genau dies müssen wir auch beim Anlegen einer Datenbank machen: Bevor wir Daten eingeben können, müssen wir uns Gedanken machen, WAS für Daten wir dort überhaupt sammeln wollen.



Was macht man mit Daten?

Eigentlich gibt es nur drei verschiedene Sachen, die man mit Daten prinzipiell anstellen kann:

  • neue Daten dazufügen
  • bestehende Daten ändern oder löschen
  • und die Daten ausgeben

Vor allem letzterer Punkt ist der Hauptgrund, warum Datenbanken eingesetzt werden: Denn für einen Computer stellt es kein grosses Problem dar, die Daten auf viele verschiedene Arten auszugeben: Alle Einträge, bei denen der Name mit "a" anfängt und der Ort "München" ist? Auch bei vielen Millionen Einträgen erledigt das ein Computer rasend schnell!

 

 
 Wozu baseportal? Was ist eine Web-Datenbank?  zur Übersicht

 
Baseportal stellt nun eine Datenbank für das Internet. Sie können von jedem Punkt der Erde auf Ihre Daten per Internet zugreifen. Oder Sie erstellen ihre Webseiten mit Hilfe von Datenbanken. Änderungen, wie sie zum Beispiel bei Onlineshops ständig erfolgen, können Sie ganz bequem über die Baseportaloberfläche erledigen, das umständliche Editieren des html-Codes entfällt. Immerwiederkehrende Datenarten, wie Adressen, können Sie mit Baseportal automatisch in Webseiten generieren lassen. Wie sortiert werden soll geben Sie vor.

 

 
 Easy Start - in 5 Minuten zur eigenen Web-Datenbank  zur Übersicht

 
Um Datenbanken besser zu verstehen, sollten Sie jetzt einfach beim "Easy Start" die erste baseportal-Datenbank erstellen...

 

 
 FAQ ("Frequently asked questions" - Häufig gestellte Fragen)  zur Übersicht

 
Lesen Sie hier die am "häufigsten gestellten Fragen"

 

 
Eigener Account

 
 Verzeichnis / Datenbank / Seite auswählen  zur Übersicht

 
Oben  wird angezeigt in welchem Verzeichnis Sie sich befinden. 
Verzeichnisse werden durch ein Ordnersymbol dargestellt. 
Das Zahnrad symbolisiert eine Datenbank.
Der Notizblock steht für eine Ausgabedatei. 

Ein Klick auf die Links, und sie öffnen Ihr(e) Verzeichnis / Datenbank / Seite.

 

 
 Email ändern  zur Übersicht

 
Klicken Sie auf "Verwaltung" neben dem Nutzernamen
geben Sie Ihre neue Emailadresse ein...
...bestätigen Sie mit Ihrem Passwort...
...und  "abschicken" 

 

 
 Passwort ändern  zur Übersicht

 
Klicken Sie auf "Verwaltung" neben dem Nutzernamen
 Geben Sie Ihr neues Passwort ein...  
...wiederholen Sie es...
...und bestätigen Sie es mit dem alten Passwort.
Das alles wird abgeschickt.

 

 
Bedienung - Datenbanken

 
 Neue Datenbank erstellen  zur Übersicht

 
Hier markieren Sie Datenbank
Legen Sie einen Namen fest...
...und schicken Sie es ab.

Danach erhalten Sie dieses Browserfeld:

 
Sie werden gefragt, ob Sie die Datenbank und die dazugehörige Ausgabeseite anlegen möchten.

Oder soll es nur die Datenbank sein?
(Sie können auch mit einer Seite auf verschiedene Datenbanken zugreifen)

Sie können Sich auch hier schon vorgefertigter Datenbanken bedienen. Es werden komplett alle Felder und die Seite angelegt.

 

 
 Felder definieren  zur Übersicht

 

Vorhandene Felder können editiert und neue angelegt werden:

Wählen Sie Felder aus. Für "Neu" - weiter ab nächsten Bild

Klicken Sie
 auf "ändern"
...oder "Löschen"

Neue Felder anlegen:


Geben Sie hier den Typ des Input-Feldes an.
Hier geben Sie die Position des
Feldes an...
...und hier den Namen.
Soll die Db nach diesem Feld
 geordnet werden, legen Sie die Sortierung fest.
Wie groß soll das Feld werden?
Soll es schon etwas beinhalten?

und Abschicken    
Bei dieser Option erscheint bei Eingabe *****

Außer dem Namen werden keine Angaben benötigt. Baseportal übernimmt dann praktische Werte.
Die verschiedenen Feldtypen beinhalten verschiedene Optionen (siehe auch Dokumentation Kapitel "Feldtypen")

 

 
 Inhalte pflegen  zur Übersicht

 
Wechseln Sie in die betreffende Datenbank.
Klicken Sie auf "Neu"

 
Der Reiter "Neu" ist hervorgehoben
Füllen Sie die Felder aus...

und schicken Sie es ab

 

 
  Datensätze ändern / löschen:

Sie wollen einen bestehenden Datensatz ändern oder entfernen? So gehts:

Wechseln Sie in die betreffende Datenbank.
Klicken Sie auf "ändern"...
...oder "Löschen"

 

 
 Zugriffsrechte  zur Übersicht

 
Prinzipiell geht es nur darum, was Sie unangemeldeten Nutzern erlauben. Sie selbst haben, nachdem Sie sich angemeldet haben, immer alle Rechte an Ihrer Datenbank, ebenso der Programmcode in Ihren Templates: Die dort verwendeten Funktionen können beliebig auf Ihre Datenbanken zugreifen.

Es gibt 3 Zugriffsarten, die beliebig kombiniert werden können:

 

  • Lesen
  • Dazufügen (Schreiben)
  • Ändern/Löschen

Beispiele:

 

  • Sie können Aussenstehenden keinerlei Rechte geben: Niemand kann dann ohne Zugangsberechtigung auf diese Datenbank zugreifen. Sie dient also z.b. für ihre persönlichen Adressdaten.
  • In den meisten Fällen geben sie Aussenstehenden das Recht, ihre Datenbank zu lesen. Sie sind dann derjenige der neue Daten hinzufügt oder bestehende Daten pflegt. Sie sind also der Redakteur. Anwendungsbeispiele sind ein News-system, eine Linkliste oder eine Produktdatenbank
  • Sie können ihren Nutzern auch zugestehen, selbständig Daten dazuzufügen. Ein Forum wäre dafür die klassische Anwendung. Unliebsame Einträge können Sie, nachdem Sie sich angemeldet haben, einfach löschen.
  • Möglich wäre auch, ihren Nutzern NUR schreibende Rechte zu geben. Z.B. eine Umfrage, in der sie nur Rückmeldungen ihrer Nutzer abfragen wollen, bräuchte diese Einstellung.
Um zu den Einstellungen einer Datenbank zu gelangen, klicken Sie auf die entsprechende Datenbank.
Klicken Sie auf Verwaltung

Rechte vergeben:

Wählen Sie, was Ihre Besucher mit der Datenbank anstellen dürfen.  
Klicken Sie dann auf "Abschicken"

 

 
 Datenbank Verwaltung (Umbenennen, kopieren, verschieben, löschen)  zur Übersicht

 
Um zu den Einstellungen einer Datenbank zu gelangen, klicken Sie auf die entsprechende Datenbank.
Klicken Sie auf Verwaltung

Umbenennen / Verschieben:

Geben Sie hier den neuen Namen an 
und das Zielverzeichnis
und "Abschicken"

Kopieren:

Geben Sie hier den Namen der Kopie an 
und das Zielverzeichnis
und wieder "Abschicken"

Inhalt der Datenbank löschen:

Klicken Sie auf den Link

Komplette Datenbank löschen:

Klicken Sie auf den Link und die komplette Datenbank wird aus dem Verzeichnis gelöscht

 

 
 Datenbank reorganisieren  zur Übersicht

 

In einer idealen Welt bräuchte es diese Funktion nicht, weil es keine Fehler in Programmen gäbe. Leider ist die Welt nicht ideal und baseportal hat (noch) Fehler: Einer davon führt dazu, dass u.U. Id's doppelt vergeben werden. Sollte dies bei Ihnen der Fall sein, können Sie die Datenbank neu aufbauen und allen Datensätzen neue Id's zuweisen.

Um zu den Einstellungen einer Datenbank zu gelangen, klicken Sie auf die entsprechende Datenbank.
Klicken Sie auf Verwaltung

Klicken Sie auf "Die Datenbank neu reorganisieren"

 

 
 Import/Export  zur Übersicht

 
Datenbank importieren (Beispiel aus MS Access):

Eine bestehende Datenbank z.B. aus Access kann nur im reinen Textformat importiert werden. Dazu dient das .csv Format (name.csv). Alle gängigen Datenbankprogramme kennen dieses Exportformat. Hier wird anhand Microsoft Access ein Exportbeispiel gezeigt.

öffnen Sie die Datenbank, die exportiert werden soll, im Access. Das sollte dann so aussehen:

 

Klicken Sie auf Datei - Exportieren    

Sie erhalten folgenden Dialog:
 
Geben Sie den Namen der Exportdatei in Form von "Datei.csv" ein... 
...stellen Sie den Dateityp auf "Textdateien"...
...und klicken Sie auf "Speichern"

Der folgenden Dialog:
Stellen Sie sicher, das die Option "Mit Trennzeichen..." aktiviert ist
Klicken Sie auf weiter

Der nächste Dialog:
Wählen Sie, mit welchem Zeichen die Felder getrennt werden sollen (Semikolon ist gebräuchlich)
Sollen die Feldnamen zum Export mit eingefügt werden?

Textbegrenzungszeichen wählt man, wenn das Trennzeichen der Felder auch im Text vorkommt
Danach erfolgt der übliche Klick auf "Weiter"
Hier können Sie noch einmal den korrekten Namen überprüfen
Zum Schluß klicken Sie auf "Fertig stellen" 

Die Datenbank ist nun exportiert. öffnen Sie die Datenbank .csv in einem Texteditor, sollte sie ungefähr so aussehen:


Nun folgt der Import bei Baseportal.

 
Um zu den Einstellungen einer Datenbank zu gelangen, klicken Sie auf die entsprechende Datenbank.
Klicken Sie auf Verwaltung


Suchen Sie nach der Datei auf Ihrer Festplatte (1) und stellen Sie das Feldertrennsymbol (2) und den Datensatztrenner (3) ein. Haben Sie beim Export der Accessdatei dieTexttrennzeichen (") eingestellt, muß auch hier die Option aktiviert sein (4), wurden die Feldnamen als erste Zeile mitexportiert, klicken Sie auch dieses Feld (5) an. Sie brauchen nicht alle Felder Ihrer Accessdatenbank per Hand bei Baseportal eingeben, lassen Sie es das Baseportalprogramm erledigen, indem Sie hier (6) klicken. Haben Sie die Feldnamen mitexportiert, werden diese Namen als Feldname übernommen. Wenn nicht erscheint Feld1, Feld2, usw. Eine Option in Access ist der Export der IDs als erste Spalte. Markieren Sie diese Checkbox (7), wenn es bei Ihnen der Fall ist. Sie können nicht nur Datensätze anhängen, nein, sie können die vorhandenen Daten beim Import auch löschen (8). Ist alles perfekt eingestellt klicken Sie "Abschicken" (9).

 
Datenbank aus Baseportal exportieren:

Der Export aus Baseportal ist einfacher als der Import, wird hier aber auch Schritt für Schritt beschrieben (Die Voreistellungen können meist so bleiben):

 
Um zu den Einstellungen einer Datenbank zu gelangen, klicken Sie auf die entsprechende Datenbank.
Klicken Sie auf Verwaltung

 
Stellen Sie das Feldertrennsymbol ein...

...genau wie den Datensatztrenner.
Zu guter Letzt werden die Einstellungen wieder abgeschickt.
Soll ein Texttrenner eingefügt werden...
...und die Feldnamen mit exportiert werden?
Nach diesem Feld werden die Datensätze sortiert.
Markieren Sie die Felder, die exportiert werden sollen.
Mit einem Häkchen an dieser Stelle können Sie die Reihenfolge der Einträge umkehren.

Sie erhalten nun folgendes Browserfenster:


Kopieren Sie den Inhalt dieses Fensters in die Zwischenablage und fügen Sie ihn im Editor in Ihre .csv-datei ein. Vergessen Sie nicht zu speichern. Starten Sie danach Ihr Datenbankprogramm und importieren Sie die .csv-Datei (im Access unter Datei - öffnen). Sie werden wiederum nach den verschiedenen Trennzeichen gefragt. Stimmt alles überein, wird die Datei problemlos gelesen.

 

 
Bedienung - Seiten (Templates)

 
 Neue Seite erstellen  zur Übersicht

 
Hier markieren Sie "Seite".
Legen Sie einen Namen fest...
...und schicken Sie es ab.

 
Im nächsten Fenster können Sie sich eine Vorlage aussuchen. Den nötigen html- Code erstellt dann Baseportal. Möchten Sie selbst das Aussehen bestimmen, klicken Sie auf den Link "Keine Vorlage nutzen".

 

Suchen Sie sich eine Vorlage aus...


Füllen Sie die Felder aus, der Text erscheint dann im Template.

Es sind keine Pflichtfelder.

und auf "Speichern" klicken.

 

 
 Einstellungen  zur Übersicht

 
 Um zu den Einstellungen, den Vorlagen oder dem Html-code zu gelangen, klicken Sie einfach im Verzeichnis auf das Template.

 

Befinden Sie sich schon in der Datenbank, reicht ein Klick auf "Seite"

 
Sie erhalten dieses Browserfeld


Über Einstellung können Sie die Ausgabe des Inhaltes, der Eingabemaske, der Blätterlinks und die Sortierung einstellen.

 


Klicken Sie auf Einstellungen

 
In welcher Reihenfolge sollen die Daten ausgegeben werden?  
Vielleicht umgekehrt?
Hier stellen Sie die  Position der Reiter und Blätterlinks ein
Sie können auch Extra-indizes anlegen, sie werden mit angezeigt.

 
Soll gleich eine Detailausgabe erfolgen?
Markieren Sie die Felder, die ausgegeben werden
Legen Sie fest, ob die Eingabemaske gleich erscheint, oder erst über einen Link.
  und speichern

 

 
 Vorlagen  zur Übersicht

 
Um zu den Einstellungen, den Vorlagen oder dem Html-code zu gelangen, klicken Sie einfach im Verzeichnis auf das Template.

 

Befinden Sie sich schon in der Datenbank, reicht ein Klick auf "Seite"

 

Hier gelangen Sie zu den Vorlagen.
Den Link benötigen Sie, um von Ihrer Webseite das Template aufzurufen.

 
Suchen Sie sich eine Vorlage aus...


Füllen Sie die Felder aus, der Text erscheint dann im Template.

Es sind keine Pflichtfelder.

und auf "Speichern" klicken.

 

 
 Html Code bearbeiten  zur Übersicht

 

Sie haben fundierte Kenntnisse in html? Dann passen Sie Ihre Ausgabeseite doch komplett an Ihre vorhandenen Websites an. Sie können Ihren eigenen Hintergrund bestimmen, zusätzliche Baseportaltags einfügen, und das Beste, mit der Programmiersprache Perl Ihre eigenen Anwendungen programmieren (beide letztgenannten - siehe Dokumentation).

Wechseln Sie in das zu bearbeitende Template.
Bearbeiten Sie in diesem html- feld den Code oder fügen Sie eine komplett neue Seite ein.

Geben Sie hier Ihren html- oder Perlcode ein.

Wenn Sie Ihr Layout angepasst haben, klicken Sie auf "Abschicken"
Sie können auch offline Ihre Seite erstellen und über dieses Formular auf unseren Server laden.

 

 
 Seiten Verwaltung (Umbenennen, kopieren, verschieben, löschen)  zur Übersicht

 
Wählen Sie das zu verwaltende Template aus und klicken Sie auf "Verwaltung"

 
Füllen Sie zum Umbenennen/Verschieben das obere Formular aus und schicken Sie es ab. über das Dropdownfeld können Sie auch in andere Verzeichnisse verschieben.
Möchten Sie die Seite kopieren, füllen Sie das zweite Formular aus.
Bei Klick auf diesen Link löschen Sie die Seite aus dem Account.

 

 
Bedienung - Verzeichnisse

 
 Neues Verzeichnis anlegen  zur Übersicht

 
Hier markieren Sie Verzeichnis.
Legen Sie einen Namen fest...
...und schicken Sie es ab.

 

 
 Verzeichnis  zur Übersicht

 
Um ein Verzeichnis zu verwalten, wechseln Sie in das Verzeichnis und klicken  auf "Verwaltung"

 
Verzeichnisse werden wie Seiten verwaltet. Zum löschen/verschieben einfach ausfüllen und "Abschicken"
Genauso beim Kopieren.
Ein Klick hier löscht das Verzeichnis.

 

 

 
 Bibliothek  zur Übersicht

 
In der Verwaltung der Verzeichnisse liegt auch das Schmankerl von Baseportal - die Bibliothek. Sie enthält hervorstechende, von Usern und Mitarbeitern programmierte Anwendungen (Foren, Gästebücher, Bildergalerien u. ä.), die für den Gebrauch eines jeden Baseportalmitgliedes kopiert, umgeschrieben und angepasst werden dürfen. Standartanwendungen stellen Sie bitte in das Nutzerverzeichnis. Es dokumentiert den Erfolg von Baseportal: 

 
Um  zu der Bibliothek zu gelangen, klicken Sie auf "Verwaltung"

 
Tragen Sie bitte hier Ihre fertigen Projekte ein (für den Erfolg von Baseportal).
Der Link wird unterhalb des Bildes kommentiert.
Suchen Sie eine besondere Anwendung mit Baseportal, schauen Sie sich einfach ein bisschen in unserer Bibliothek um.

 
Um Ihr wertvolles, für die Allgemeinheit nützliches Projekt jedermann zugänglich zu machen, klicken Sie bitte den Link "Datenbanken und Seiten in Bibliothek einstellen". Hier folgen Sie den Anweisungen von Baseportal. Bitte stellen Sie nur abgeschlossene, gut dokumentierte Datenbanken und Seiten ein. Sie sind öffentlich mit Quelltext für jeden zugänglich.

 

 
Feldtypen

 
 text (einzeiliges Eingabefeld)  zur Übersicht

 
    Pos:
    Feldname:
    Sortierung:
    Grösse:
    Vorgabe:
    Passwort:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Sortierung
    Gibt die Art der Sortierung an: Bei Keine wird dieses Feld nicht sortiert (spart Zeit und Platz), bei Zahl wird dieses Feld nach Zahlen sortiert (2 vor 10), bei Text wird dieses Feld nach Text sortiert (10 vor 2).

    Grösse
    Gibt die Breite (in Zeichen) des Textfelds bei der Eingabe an. Dies ist KEINE Eingabebeschränkung, ein Nutzer kann trotzdem beliebig viele Zeichen eingeben.
    Vorgabewert: Wenn Sie hier nichts eingeben, nimmt baseportal den Wert 20.
    HTML-Entsprechung: Parameter "size".

    Vorgabe
    Dieser Text erscheint von vornherein im Eingabefeld.
    HTML-Entsprechung: Parameter "value".

    Passwort
    Ist hier markiert, werden statt der eingegeben Zeichen nur Sternchen "*" ausgegeben. Dies hat sonst keine weiteren Bedeutungen; in der Datenbank stehen die Eingaben im Klartext.
    HTML-Entsprechung: Eingabetyp "password".

 Beispiele 
    Strasse:

    Feldname: Strasse
    Alle anderen Felder leer

     
    URL:

    Feldname: URL
    Grösse: 30
    Vorgabe: http://

     

 

 
 textarea (mehrzeiliges Eingabefeld)  zur Übersicht

 
    Pos:
    Feldname:
    Spalten:
    Zeilen:
    Vorgabe:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Spalten
    Gibt die Breite des Textfeldes in Zeichen an.
    Vorgabewert: Wenn Sie hier nichts eingeben, nimmt baseportal den Wert 25.

    Zeilen
    Gibt die Höhe des Textfeldes in Zeilen an.
    Vorgabewert: Wenn Sie hier nichts eingeben, nimmt baseportal den Wert 3.

    Vorgabe
    Dieser Text erscheint von vornherein im Textfeld.
    HTML-Entsprechung: Text zwischen den "textarea"-Tags.

     

 Beispiele 
    Kommentar:

    Feldname: Kommentar
    Alle anderen Felder leer

     
    Bestellung:

    Feldname: Bestellung
    Spalten: 50
    Zeilen: 10
    Vorgabe: Hiermit bestelle ich folgende Artikel:

     

 

 
 checkbox (An/Aus-Schalter)  zur Übersicht

 
    Pos:
    Feldname:
    Sortierung:
    Vorgabe:
    Ausgabe markiert:
    Ausgabe nicht markiert:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Sortierung
    Gibt an, ob das Feld sortiert werden soll oder nicht. Da es nur zwei Möglichkeiten (markiert/nicht markiert) gibt, nützt dies vor allem bei der Suche und Auswahl, kaum als "Sortierung".

    Vorgabe
    Gibt an, ob das Kästchen von vornherein markiert sein soll.
    HTML-Entsprechung: Parameter "checked".

    Ausgabe markiert
    Dieser Text wird ausgegeben, wenn das Kästchen markiert ist.

    Ausgabe nicht markiert
    Dieser Text wird ausgegeben, wenn das Kästchen nicht markiert ist.

 Beispiele 
    Mitglied:

    Feldname: Mitglied
    Alle anderen Felder leer, bzw. so gelassen (Ausgabe markiert = Ja)

     
    Haben Sie jemals gelogen:

    Feldname: Haben Sie jemals gelogen
    Vorgabe: (markiert)
    Ausgabe markiert: Ja, also ein Lügner
    Ausgabe nicht markiert: Nein, was offensichtlich gelogen ist

     

 

 
 radio (Auswahl)  zur Übersicht

 
    Pos:
    Feldname:
    Sortierung:
    Werte:
    Vorgabe:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Sortierung
    Gibt die Art der Sortierung an: Bei Keine wird dieses Feld nicht sortiert (spart Zeit und Platz), bei Zahl wird dieses Feld nach Zahlen sortiert (2 vor 10), bei Text wird dieses Feld nach Text sortiert (10 vor 2).

    Werte
    Gibt die Auswahlmöglichkeiten an (In jeder Zeile eine).

    Vorgabe
    Dieser Wert ist von vornherein ausgewählt. Achten Sie auf die exakt gleiche Schreibweise wie bei "Werte".
    HTML-Entsprechung: Parameter "checked".
    Vorgabewert: Der erste Wert.

 Beispiele 
    Anrede:  Herr  Frau

    Feldname: Anrede
    Werte: 1. Zeile "Herr", 2. Zeile "Frau"
    Alle anderen Felder leer

     
    Sind Sie mit unserem Angebot zufrieden:  Nein  Geht so  Ja, sehr

    Feldname: Sind Sie mit unserem Angebot zufrieden
    Werte: 1. Zeile "Nein", 2. Zeile "Geht so", 3. Zeile "Ja, sehr"
    Vorgabe: Ja, sehr

     

 

 
 option (Popup-Menue/Mehrfach-Auswahl)  zur Übersicht

 
    Pos:
    Feldname:
    Sortierung:
    Zeilen:
    Werte:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Sortierung
    Gibt die Art der Sortierung an: Bei Keine wird dieses Feld nicht sortiert (spart Zeit und Platz), bei Zahl wird dieses Feld nach Zahlen sortiert (2 vor 10), bei Text wird dieses Feld nach Text sortiert (10 vor 2).

    Zeilen
    Anzahl Zeilen des Auswahlfeldes. Bei der Angabe "1" entspricht dies einem sog. "Pop-Up-Menu", ansonsten kann der Nutzer bei der Auswahl durch gleichzeitiges Drücken von "SHIFT" oder "STEUERUNG" mehrere Werte auswählen.
    Vorgabewert: Wenn Sie hier nichts eingeben, nimmt baseportal den Wert 1.

    Werte
    Gibt die Auswahlmöglichkeiten an (In jeder Zeile eine).

 Beispiele 
    Sternzeichen:

    Feldname: Sternzeichen
    Werte: 1. Zeile "Widder", 2. Zeile "Stier", 3. Zeile "Zwilling", usw.
    Alle anderen Felder leer

     
    Hobbies:

    Feldname: Hobbies
    Zeilen: 4
    Werte:
    1. Zeile "Schwimmen", 2. Zeile "Radfahren", 3. Zeile "Boxen", 4. Zeile "Segeln"
    Der Nutzer kann durch gleichzeitiges Drücken von "SHIFT" oder "STEUERUNG" auch mehrere Hobbies auswählen

 

 
 hidden (versteckter Wert)  zur Übersicht

 
    Pos:
    Feldname:
    Sortierung:
    Wert:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Sortierung
    Gibt die Art der Sortierung an: Bei Keine wird dieses Feld nicht sortiert (spart Zeit und Platz), bei Zahl wird dieses Feld nach Zahlen sortiert (2 vor 10), bei Text wird dieses Feld nach Text sortiert (10 vor 2).

    Wert
    Dieser Text wird unsichtbar als Wert übergeben. Das Feld selbst ist beim Eingabeformular nicht zu sehen.
    HTML-Entsprechung: Parameter "value".

 

 
 Zahl  zur Übersicht

 
    Pos:
    Feldname:
    Sortierung:
    Eingabe nötig:
    Minimum:
    Maximum:
    Dezimalstellen:
    Dezimalzeichen:  Punkt  Komma
    Vorgabe:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Sortierung
    Gibt an, ob das Feld sortiert werden soll oder nicht (spart Zeit und Platz). Die Sortierung erfolgt immer nach "Zahlen" ("2" vor "10").

    Eingabe nötig
    Ist hier markiert, muss der Nutzer etwas in dieses Feld schreiben, ansonsten wird die gesamte Eingabe mit einer Fehlermeldung zurückgewiesen.

    Minimum
    Gibt die kleinste Zahl an, die ein Nutzer eingeben muss. Auch negative Zahlen sind möglich.

    Maximum
    Gibt die grösste Zahl an, die ein Nutzer eingeben muss. Auch negative Zahlen sind möglich. Der Wert von "Maximum" muss grösser sein, als "Minimum".

    Dezimalstellen
    Gibt die Anzahl Stellen hinter dem Dezimalpunkt an.

    Vorgabe
    Dieser Text erscheint von vornherein im Eingabefeld.
    HTML-Entsprechung: Parameter "value".

     

 Beispiele 
    Anzahl Kinder:

    Feldname: Anzahl Kinder
    Alle anderen Felder leer

     
    Preis:

    Feldname: Preis
    Eingabe nötig: (markiert)
    Minimum: 0
    Maximum: 9999
    Dezimalstellen:
    2

     

 

 
 EMail  zur Übersicht

 
    Pos:
    Feldname:
    Sortierung:
    Eingabe nötig:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Sortierung
    Gibt an, ob das Feld sortiert werden soll oder nicht (spart Zeit und Platz). Die Sortierung erfolgt immer nach "Text" ("10" vor "2").

    Eingabe nötig
    Ist hier markiert, muss der Nutzer etwas in dieses Feld schreiben, ansonsten wird die gesamte Eingabe mit einer Fehlermeldung zurückgewiesen.

     

 Beispiele 
    EMail:

    Feldname: EMail
    Alle anderen Felder leer

 

 
 Link  zur Übersicht

 
    Pos:
    Feldname:
    Sortierung:
    Eingabe nötig:
    Basispfad:
    Endung: oder:
    In neuem Fenster öffnen:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Sortierung
    Gibt an, ob das Feld sortiert werden soll oder nicht (spart Zeit und Platz). Die Sortierung erfolgt immer nach "Text" ("10" vor "2").

    Eingabe nötig
    Ist hier markiert, muss der Nutzer etwas in dieses Feld schreiben, ansonsten wird die gesamte Eingabe mit einer Fehlermeldung zurückgewiesen.

    Basispfad
    Dieser Wert wird vor jeden Link gesetzt.

    Endung
    Dieser Wert wird hinter jeden Link gesetzt.

    In neuem Fenster öffnen
    Ist hier markiert, wird der Link in einem neuen Fenster geöffnet.

     

 Beispiele 
    Bild:

    Feldname: Bild
    Basispfad: http://meinserver.de/pics/
    Endung: .gif
    In neuem Fenster öffnen: (markiert)

 

 
 Datum  zur Übersicht

 
    Pos:
    Feldname:
    Sortierung:
    Eingabe:
    Ausgabe:
    Zeitpunkt:  Erstellung  Änderung  Nutzereingabe
    eigenes Eingabeformat:
    eigenes Ausgabeformat:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Sortierung
    Gibt an, ob das Feld sortiert werden soll oder nicht (spart Zeit und Platz, wenn nicht).

    Eingabe
    Gibt das Eingabe- und Suchformat an. Dabei kann zwischen den gebräuchlichsten Formaten gewählt werden. Bei Zeitpunkt "Erstellung" oder "Änderung" betrifft dies nur das Suchformular, da gar keine Eingabe durch den Nutzer erfolgt.

    Ausgabe
    Gibt das Ausgabeformat des Zeitpunkts an. Es kann zwischen den gebräuchlichsten Formaten gewählt werden.

    Zeitpunkt
    "Erstellung" trägt das Datum und die Uhrzeit (in Sekunden) bei der ersten Neueingabe des Eintrags ein. "Änderung" trägt das Datum und die Uhrzeit (in Sekunden) bei jeder Änderung des Eintrags ein. "Nutzereingabe" erlaubt dem Nutzer die selbständige Eingabe eines Zeitpunkts.

    eigenes Eingabeformat
    Erlaubt die Definition eines eigenen Eingabeformates. Folgende Angaben sind möglich:

     

      Tag Tag des Monats (1 bis 31)
      Monat Monat als Zahl (1 bis 12)
      Monatname Monat als Name ("Januar" bis "Dezember")
      Monatkurz Monat als kurzer Name ("Jan" bis "Dez")
      Jahr vierstelliges Jahr (1920 bis 2019)
      Jahr2 zweistelliges Jahr (00 bis 19)
      Stunde Stunde (00 bis 23)
      Minute Minute (00 bis 59)
      Sekunde Sekunde (00 bis 59)

    Alle anderen Zeichen werden unverändert angezeigt.

    eigenes Ausgabeformat
    Erlaubt die Definition eines eigenen Ausgabeformates. Folgende Angaben sind möglich:

     

      Wochentag Wochentag ("Montag" bis "Sonntag")
      Wochentagkurz Wochentag kurz ("Mo" bis "So")
      Wochentagzahl Wochentag als Zahl (1 bis 7)
      Tag Tag des Monats (1 bis 31)
      Tag0 Tag des Monats mit führender Null (01 bis 31)
      Monat Monat als Zahl (1 bis 12)
      Monat0 Monat als Zahl mit führender Null (01 bis 12)
      Monatname Monat als Name ("Januar" bis "Dezember")
      Monatkurz Monat als kurzer Name ("Jan" bis "Dez")
      Jahr vierstelliges Jahr (1920 bis 2019)
      Jahr2 zweistelliges Jahr (00 bis 19)
      Stunde Stunde (00 bis 23)
      Stunde1 Stunde ohne führende Null (0 bis 23)
      Stunde12 Stunde "analog" (1 bis 12)
      Stunde012 Stunde "analog" mit führender Null (01 bis 12)
      Minute Minute (00 bis 59)
      Minute1 Minute ohne führende Null (0 bis 59)
      Sekunde Sekunde (00 bis 59)
      Sekunde Sekunde ohne führende Null (0 bis 59)

    Alle anderen Zeichen werden unverändert angezeigt.

 

 
 Relation  zur Übersicht

 
    Pos:
    Feldname:
    Datenbank:
    Schlüsselfeld:
     
    Pos
    Die Position die das neue Feld erhalten soll: Neu fügt es an das Ende aller Felder. Andere Positionen fügen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.

    Feldname
    Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie können beliebige Zeichen für den Namen verwenden, auch das Leerzeichen.

    Datenbank
    Gibt die Datenbank an, zu der die Relation hergestellt werden soll. Auf Datenbanken im selben oder in darunterliegenden Verzeichnissen wird relativ verwiesen, auf Datenbanken in darüberliegenden Verzeichnissen absolut.

    Schlüselfeld
    Der Feldinhalt des Feldes mit dem hier angegebenen Namen wird ausgegeben. Enthält die Datenbank, auf die verwiesen wird, mehr als 1 Feld, wird die Ausgabe mit dem Datensatz, auf den verwiesen wird, verlinkt.
    Vorgabewert: Wenn Sie hier nichts eingeben, nimmt baseportal das erste Feld.

 

 
Templates und Tags

 
 Aufbau eines Templates (Ausgabeseite)  zur Übersicht

 

Ausgabeseiten sind ganz gewöhnliche Web-Seiten, in denen Sie jedoch bestimmte neue HTML-Befehle, sog. Tags verwenden können. baseportal bearbeitet die Seiten vor der eigentlichen Ausgabe und ersetzt diese speziellen Tags, z.B. durch den aktuellen Inhalt einer Datenbank, durch eine andere Seite oder auch das Ergebnis einer Berechnung.Da solche Seiten also als Vorlagen für die eigentliche Ausgabe dienen, werden Sie auch "Schablonen" genannt, auf Englisch: Templates.

Beispiel:

 
<html></head><title>Highscore</title></head>
<body bgcolor=ffffff>

<h2>Highscore-Liste</h2>

<include src=einleitung>

<do action=all>

<center>
<table width=90% border="1">
<tr><td>Name</td><td>Punkt</td>

<loop sort=- range=0,10>
<tr>
<td><b>$Name</b></td>
<td>$Punkt</td>
</tr>
</loop>

</table>
</center>

</body></html>

Alle schwarzen Tags sind ganz normale HTML-Befehle.

Rot = Neue, baseportal-spezifische Tags (Befehle)

Wie im Standard HTML auch, fangen baseportal-Tags mit dem Kleiner-Zeichen < an und hören mit dem Grösser-Zeichen > auf. Manche Tags stehen alleine, wie <include...>, manche umschliessen einen Bereich, den sie beeinflussen. Das Ende des Bereichs wird dann mit einem zugehörigen abschliessenden Tag markiert, das genauso heisst, wie das Start-Tag, allerdings mit einem vorangestellten Schrägstrich / beginnt, wie z.B. <loop> ... </loop>. Gross/Kleinschreibung ist egal, üblich ist allerdings durchwegs alles klein zu schreiben.

Blau = Parameter, die die Ausführung der Befehle beeinflussen

Manche Tags benötigen zusätzliche Angaben, auch Parameter genannt, um ihre Arbeit verrichten zu können, wie z.B. <include src=...>, das den Namen einer Datei braucht, den es an dieser Stelle einfügen soll. Bei anderen Tags sind Parameter nicht unbedingt nötig, sie ermöglichen jedoch die leicht unterschiedliche Ausführung der Befehle, wie z.B. mit einer anderen Sortierung oder mit einer anderen Hintergrundfarbe. Tag und Parameter werden durch Leerzeichen voneinander getrennt, ebenso wie mehrere Parameter untereinander. Achtung: Anführungszeichen werden als Bestandteil des Wertes interpretiert, sie umschliessen nicht, wie in HTML möglich, einen Wert. Also einfach keine Anführungszeichen verwenden...

Grün = Werte (Variablen), die durch aktuelle Daten ersetzt werden

Variablen sind einfach Platzhalter, an deren Stelle der eigentliche Wert eingefügt wird. Sie beginnen (wie in der Programmiersprache Perl) immer mit dem "Dollar"-Zeichen $. Es gibt bei baseportal eine Reihe spezieller Variablen, die z.B. die Anzahl der gelesenen Einträge oder den Namen der auszugebenden Datenbank enthalten. Oft bezeichnen sie aber Felder einer Datenbank und enthalten dann für jeden Datensatz den jeweiligen Wert.

 

 
 include (Einfügen sich wiederholender Textbausteine)  zur Übersicht

 

Oft wiederholen sich bestimmte Texte in verschiedenen HTML-Seiten. In baseportal brauchen Sie nicht, wie bisher üblich, in jeder Datei alles zu wiederholen, sondern können diese immer wieder benötigten Texte in einer gesonderten Datei speichern und sie bei Bedarf in anderen Seiten einfügen. Änderungen in der gesonderten Datei wirken sich automatisch auf alle Seiten aus, die die Datei eingebunden haben.

Definition:

<include src=Templatename[Parameter]>

Beispiel:

Das Template meineseite enthält folgenden Teil:
Jetzt kommt die Einleitung:<p>

<include src=head>

Das wars...

Ein zweites Template head im selben Verzeichnis sieht so aus:
<h2>Schön...</h2>

<i>...dass Sie auf meiner Seite vorbeischauen.</i><br>
Mein besonderer Dank geht an alle die mich kennen!
<p>

Wird nun die Seite meineseite aufgerufen, erscheint die folgende Ausgabe:

 
Jetzt kommt die Einleitung:

 

Schön...

...dass Sie auf meiner Seite vorbeischauen.
Mein besonderer Dank geht an alle die mich kennen!

Das wars...

Besonders nützlich ist include natürlich bei Menüs, die ja gewöhnlich immer gleich auf jeder Seite enthalten sind. Um diese in Einzelheiten anzupassen bieten sich Variablen an.


Verschachtelungen:

Verschachtelungen sind einfach möglich: Angenommen eine dritte Datei enthält den Befehl...

 
<include src=meineseite>

...dann wird die komplette obige Ausgabe an der angegebenen Stelle eingefügt. Ebenso kann eine vierte Datei die dritte enthalten usw. baseportal achtet dabei auf unendliche Schleifen (Datei 1 enthält Datei 2, Datei 2 enthält Datei 3 und diese wiederum Datei 1) und bricht diese ab.


Pfadangaben:

Verweise auf Templates in anderen Verzeichnissen benötigen Pfadangaben. Diese sind relativ...

 
<include src=projekt2/abschluss>

...oder absolut möglich:

 
<include src=/AxelS/menues/standard>

Bindet das Template "standard" im Verzeichnis "menues" des Nutzers "AxelS" ein.

 

 
 do (Aufruf kompletter Funktionen)  zur Übersicht

 
Das Tag do ermöglicht den Aufruf einer bestimmten Funktion. Dabei ist es durch eine Vielzahl von Parametern steuerbar. So werden z.B. durch den Parameter "language=en" die Texte auf Englisch ausgegeben.

Hier eine Aufstellung möglicher Parameter


Definition:

 
<do action=Befehl[Parameter]>

Als Befehl kann all, input, oder list verwendet werden.

 

 
 all ("Alles machen")  zur Übersicht

 

all übernimmt die komplette Ausgabe der Datenbank, erlaubt die Suche nach bestimmten Feldeinträgen, überprüft die Zugriffsrechte und stellt, falls erlaubt, das Eingabeformular aus. Dabei ist es durch eine Vielzahl von Parametern steuerbar.

Beispiele:

Hier meine Adressenliste:<p>

<do action=all db=adressen sort=-Name border="1" datasize=4>

Hier werden die Einträge der Datenbank adressen sortiert nach Namen in umgekehrter Reihenfolge ausgegeben (Z zuerst, A zuletzt). Um die Tabelle wird ein Rahmen gezogen und alle Texte haben die Schriftgrösse 4.

 
Hier meine Adressenliste:<p>

<do action=all listfields=Name,Strasse,Ort keyfield=Ort>

Hier werden die Einträge nach der Id (das heiß: in der Reihenfolge wie sie in der Datenbank stehen) sortiert ausgegeben.
Es werden nur die Felder Name, Straße und Ort angezeigt, der Detaillink zu den restlichen Angaben erfolgt bei Ort.

weitere Parameter siehe hier.

 

 
 input (Eingabe behandeln)  zur Übersicht

 
<do action=input>

Verarbeitet die Nutzer-Eingaben bezüglich dem Hinzufügen, Ändern und Löschen von Einträgen (wenn die dazu benötigten Rechte vorhanden sind). Wenn Sie diese Angabe nicht machen, werden - trotz erfolgreich abgeschicktem Eingabeformular und korrekten Rechten - keine Änderungen an der Datenbank durchgeführt.

 

 
 list (Ausgabe in verschiedenen Formaten)  zur Übersicht

 
list benötigt man, um die Ausgabe des Templates präziser zu steuern.


<do action=list listtype=add db=nutzer>

Gibt das zur Datenbank nutzer zugehörige Eingabeformular aus.


<do action=list listtype=all db=nutzer>

Gibt alles zu der Datenbank nutzer aus (Formular, Reiter, Suche, Inhalt)


<do action=list listtype=list db=nutzer>

Gibt nur den Inhalt der Datenbank nutzer aus


<do action=list listtype=search db=nutzer>

Gibt das Suchformular der Datenbank nutzer aus



Alle Parameter sind je nach listtype möglich

Ein komplettes Template mit etwas freierer Gestaltung als bei der Funktion all könnte so aussehen:

 
<html><head><title>Bug-List</title><head><body>

<do action=input>

Wollen Sie etwas hinzufügen? Nur zu:<p>
<do action=list listtype=add><p>
<hr size=1><p>

Die Einträge:<p>
<do action=list listtype=list databack=ffffff spacing=1 gridcolor=808080 dataface=arial datasize=2 listfields=Titel,Autor,Datum,Stimmen>

</body></html>

Eine mögliche Ausgabe:

----------------------------- Hier Anfang der Ausgabe ----------------------

Wollen Sie etwas hinzufügen? Nur zu:

 
Titel:
Beschreibung:
Autor:
EMail:
 

 


Die Einträge:

 
Titel Autor Datum Stimmen
Link von Datenbank zur Seite geht nicht Christoph Bergmann Donnerstag, 13.Juli.2000, 11:46 Erledigt
Passwort funktioniert nicht Jo Taikoff Mittwoch, 12.Juli.2000, 17:59 Kein Fehler

----------------------------- Hier Ende der Ausgabe ----------------------

 

 

 
 loop (Schrittweises Durchlaufen einer Datenbank-Abfrage)  zur Übersicht

 

Trotz der vielen Einstellmöglichkeiten von do action=all oder do action=list werden Sie in vielen Fällen mit der standardisierten Ausgabeform nicht zufrieden sein: Sie möchten die Ausgabe jedes Feldes selbst bestimmen. loop ermöglicht dies, indem es durch alle Einträge einer Datenbank geht und Zeile für Zeile die einzelnen Felder als Variablen zur Verfügung stellt.

Definition:

 
<loop[Parameter]> ...[$Feldname]... </loop>

Beispiel:

 
<b>Neueste Neuigkeiten:</b>

<loop db=news sort=->

<h3><a href="$URL">$Titel</a></h3>
<ul>$Text</ul>
<i>von $Autor</i>
<p>

</loop>

Dieses Beispiel könnte Teil eines Redaktionssystems sein: loop durchläuft alle Einträge der Datenbank news. Da kein Feld für die Sortierung angegeben wurde, erfolgt die Ausgabe chronologisch - allerdings in umgekehrter Reihenfolge, aufgrund des Minus-Zeichens (sort=-). Die neuesten Einträge kommen also ganz oben, was für ein News-System sicherlich wünschenswert ist.

Die Variablen mit dem vorangestellten "Dollar"-Zeichen $ entsprechen jeweils dem Namen eines Feldes, so wie sie bei der Datenbank-Definition vergeben wurden (Achtung auf Gross/Klein-Schreibung, diese wird unterschieden!). Wird ein Feldname verwendet, der nicht existiert, wird einfach nichts eingefügt.

Etwas komplizierter ist der Zugriff auf Felder, deren Namen nicht als Variablennamen verwendet werden können, z.B. "Preis in $" oder "Frage / Antwort". Wegen der Leerzeichen und den Sonderzeichen ("$", bzw. "/") ist eine direkte Abfrage nicht möglich. Stattdessen müssen Sie folgendes schreiben:

$_loop{"Preis in $"}
$_loop{"Frage / Antwort"}


Und so könnte die Ausgabe der News-Seite aussehen:

 
Neueste Neuigkeiten:

Loveparade fällt dieses Jahr aus... Für immer?

    Nachdem letztes Jahr nur noch wenige Hundert hartnäckige Loveparade-Fans auf dem inzwischen nach Pankow verlegten Techno-Umzug erschienen sind, haben die Veranstalter dieses Jahr aufgrund der wiederum geringen Resonanz gleich abgesagt. Motte meint dazu: Endlich Frieden...
von Anja

 

Microsoft am Ende?

    Nach herben Umsatzeinbrüchen hat sich die Führung von Microsoft nun auch noch heillos über die zukünftige strategische Ausrichtung des ehemals so mächtigen Software-Unternehmens zerstritten. Wo wird das alles enden?
von Hans Albers

 

UFOs in Berlin gelandet!

    Echt wahr!
von Stefan Ehrlich

 

(Achtung: Die Nachrichten sind nur Beispiele und NICHT real!! ;-)

 

 
 perl (Ausführen von Programm-Code)  zur Übersicht

 

Jetzt kommt eines der tollsten Features von baseportal... ;-) Was, wenn Sie irgendeine komplexe Funktion brauchen, z.B. Berechnungen ausführen, komplizierte Textoperationen oder Bedingungen und Schleifen: baseportal stellt Ihnen eine komplette Programmiersprache zur Verfügung und zwar nicht irgendeine neu erfundende, sondern Perl, das alles (und noch mehr) bietet, was man zum Programmieren braucht: Variablen, Schleifen, Bedingungen, sehr gute Textbearbeitungsfunktionen usw. usw.

Darüber hinaus erweitert baseportal Perl um neue Befehle, die den Zugriff auf Datenbanken ermöglichen und die Erstellung von Webseiten erleichtern.

Der Einbau von Perl in Ihre Seiten erfolgt denkbar einfach:

Definition:

 
<perl[Parameter]> ... </perl>

Beispiele:

 
<b>Das kleine Einmaleins:</b><p>

<perl>

for($i=1; $i<=10; $i++)
{
	out "$i * $i = ",$i*$i,"<br>";
}

</perl>

Wenn Sie bisher keine Programmiererfahrung haben, sieht das vielleicht etwas verwirrend aus, aber keine Angst: Programmieren ist gar nicht so schwer. Das obige Programm durchläuft eine sog. Schleife von 1 bis 10 und errechnet das jeweilige Ergebnis.

Wichtig: Beachten Sie, dass die Ausgabe mit out erfolgt, anstatt wie in Perl üblich mit print. out ersetzt vollständig die Funktion von print, es gibt bei der Anwendung keine Unterschiede zwischen out und print. print selbst ist nicht erlaubt und erzeugt eine Fehlermeldung.

Und so sieht die Ausgabe aus:

 
Das kleine Einmaleins:

1 * 1 = 1
2 * 2 = 4
3 * 3 = 9
4 * 4 = 16
5 * 5 = 25
6 * 6 = 36
7 * 7 = 49
8 * 8 = 64
9 * 9 = 81
10 * 10 = 100

Um mehrere Zeilen auf einmal auszugeben können Sie folgendes schreiben:

 
out <<EOF;
Und hier kommt jetzt ganz viel Text...
Auch Variablen können verwendet werden: $Text
Und Leerzeilen:

<b>Und natürlich HTML-Tags!</b>
usw. usw.
EOF

Beachten Sie die beiden Kleiner-Zeichen << und den Strichpunkt nach dem EOF. Das zweite EOF muss alleine in einer Zeile stehen, OHNE Strichpunkt am Ende. Alles zwischen den beiden EOFs wird ausgegeben, wobei Variablen durch Ihren Inhalt ersetzt werden.

Eine ausführliche Beschreibung von Perl würde den Rahmen dieser Dokumentation sprengen, es gibt dazu bereits eine Vielzahl an Büchern oder Anleitungen im Netz, z.B. hat auch Stefan Münz in seinem "selfhtml" einen Abschnitt, der in das Thema einführt: Perl-Sprachelemente (selfthtml)

 

 
Auf- und Abruf von Datenbanken

 
 Aufruf über Browser (URL)  zur Übersicht

 

baseportal erlaubt eine weitgehende Steuerung nur über die URL. In der Tat können Sie alle Parameter, die in einem Template möglich sind, auch über die URL verwenden. Allerdings hat das Template Vorrang vor der URL-Angabe - ein im Template gesetzter Parameter überschreibt denselben in der URL. Bei Bedarf können Sie diesen Vorrang im Template jedoch auch aufheben.

Definition:

 
http://baseportal.de/cgi-bin/baseportal.pl[?Parameter]

Beispiele:

 
http://baseportal.de/cgi-bin/baseportal.pl

Ruft die Anmeldeseite von baseportal auf. Es wird die UserId und das zugehörige Passwort verlangt. Ist beides korrekt, gelangen Sie in den persönlichen Bereich.

 
http://baseportal.de/cgi-bin/baseportal.pl?uid=UserId

Ruft die Anmeldeseite von baseportal auf. Die mitgegebene UserId wird als Vorgabe eingetragen.

 
http://baseportal.de/cgi-bin/baseportal.pl?htx=/main&mode=regi

Hiermit gelangt man zur Registrierung von baseportal.

 
http://baseportal.de/cgi-bin/baseportal.pl?
 htx=/HansAlbers/termine

Gibt das Template termine des Nutzers HansAlbers aus. Wird darin eine Datenbank abgerufen, wird dazu die gleichnamige Datenbank termine verwendet, die sich im selben Verzeichnis befinden muss. Existiert diese nicht, wird die Datenbank main genommen. Existiert diese auch nicht, gibt es eine Fehlermeldung.

 
http://baseportal.de/cgi-bin/baseportal.pl?
 htx=/HansAlbers/code/gesamt&db=/HansAlbers/Projekt1/lieder

Gibt das Template gesamt im Verzeichnis code des Nutzers HansAlbers aus. Als Standard für darin verwendete Datenbanken wird lieder im Verzeichnis Projekt1 (ausgehend vom Hauptverzeichnis des Nutzers HansAlbers) verwendet. Existiert diese nicht, gibt es eine Fehlermeldung.


URL-Parametern Vorrang geben

Ein im Template gesetzter Parameter überschreibt normalerweise einen gleichnamigen Parameter in der URL. Wenn Sie dies nicht wollen, müssen Sie ein "^" vor das Istgleich-Zeichen "=" setzen. Dies funktioniert mit allen Parametern.

 
<action do=all db^=test>

Setzt die Datenbank auf "test", wenn keine Datenbank über die URL angegeben wurde.

 

 
 Datenbank-Abfragen  zur Übersicht

 
Sie können Datenbanken nach beliebigen Kombinationen von Feldinhalten und Bedingungen abfragen. Alle Einträge bei denen das Feld "Name" mit "a" beginnt (gross oder klein), das Feld "Betrag" kleiner als 100 ist und das Feld "VIP" ein "x" ist - kein Problem...

Definition:

 
<Feld><Operator><Wert>[<Verknüpfung>...]

Feld = Feldname der in der Datenbank definiert sein muss

Operator = Bestimmt die Art der Übereinstimmung:

 

Operator Bedeutung
~= Suche Wertanfang; Ignoriere Gross/Klein-Schreibung
== Suche exakten Wert; Ignoriere Gross/Klein
~=! Suche Wertanfang; Beachte Gross/Klein
==! Suche exakten Wert; Beachte Gross/Klein
< <= <> >= > Suche kleiner, kleinergleich, ungleich, grössergleich, grösser Wert; Ignoriere Gross/Klein
<! <=! <>! >=! >! Suche kleiner, kleinergleich, ungleich, grössergleich, grösser Wert; Beachte Gross/Klein
~<= ~<> ~> Suche kleinergleich, ungleich, grösser Wertanfang; Ignoriere Gross/Klein
~<=! ~<>! ~>! Suche kleinergleich, ungleich, grösser Wertanfang; Beachte Gross/Klein
~< ~>= ~<! ~>=! Redundant; Dasselbe wie < >= <! >=!

Wert = Wert nach dem gesucht wird

  Einige Zeichen als Wert haben eine spezielle Bedeutung:

 

Zeichen Bedeutung
* Passt auf alles. Es werden also alle Einträge ausgegeben, sortiert nach dem angegebenen Feld.
# Passt auf den "letzten" Eintrag des angegebenen Felds, z.B. bei den textsortierten Einträgen "a", "b", "c" also das "c".
? Passt auf irgendeinen zufälligen Eintrag. Möglich sind die Operatoren "==", "<" und ">".

Verknüpfung = Art der Verknüpfung der Teilergebnisse:

 

Zeichen Verknüpfung Bedeutung
& AND (Und) Nur Einträge die in beiden Teilmengen enthalten sind
| OR (Oder) Alle Einträge die in einer der beiden Teilmengen enthalten sind
° NOT (Nicht) Nur Einträge die in der ersten, nicht aber in der zweiten Teilmenge enthalten sind



Bitte beachten: Sie können nur Abfragen für Felder machen, bei denen Sie in der Datenbank-Definition eine Sortierung ausgewählt haben!


Beispiele:

 
Name~=c

Liefert alle Einträge, bei denen das Feld "Name" mit "c" (gross oder klein) beginnt.

 
Vorname==andrea

Liefert alle Einträge, bei denen das Feld "Vorname" exakt "andrea" (gross oder klein geschrieben) enthält.

 
Alter<30&Stadt==!Berlin

Liefert alle Einträge, bei denen das Feld "Alter" kleiner als 30 ist UND das Feld "Stadt" exakt den Wert "Berlin" (mit grossem "B" und kleinem Rest) enthält.

 
Beruf==Programmierer|Beruf==System-Administrator&PLZ~=1

Liefert alle Einträge, bei denen das Feld "Beruf" die Werte "Programmierer" ODER "System-Administrator" enthalten UND das Feld "PLZ" mit "1" beginnt.

 
Titel>=!d&Titel<!k°Titel~=!h

Liefert alle Einträge, bei denen das Feld "Titel" mit kleinem "d", "e", "f", "g", "i" oder "j" beginnt.

 
Id==?

Liefert irgendeinen zufälligen Eintrag.


Aufruf über URL:

Sie können die obigen Abfragen nun einfach in der URL verwenden:

 
http://baseportal.de/cgi-bin/baseportal.pl?
 htx=/urxi/out1&db=test&Name>t&Strasse~=baum+str

Eine Datenbank-Ausgabe im Template "out1" des Nutzers "urxi" erhält alle Einträge der Datenbank "test", bei denen das Feld "Name" mit einem Buchstaben grösser "t" und das Feld "Strasse" mit dem Wert "baum str" anfängt. Beachten Sie, dass ein Leerzeichen in einer URL mit "+" kodiert wird.


Aufruf in einem Template:

Sie können die obigen Abfragen auch als Parameter für baseportal-Tags verwenden:

 
<do action=all Rubrik==Krimis or Rubrik==Liebesromane not Sprache==Englisch and Vorhanden==1>

Gibt alle Einträge aus, bei denen das Feld "Rubrik" den Wert "Krimis" oder "Liebesromane" enthält, das Feld "Sprache" nicht "Englisch" ist und das Feld "Vorhanden" auf "1" gesetzt ist. Sie können das "and" auch weglassen, da es die Standard-Verknüpfung ist:

 
<do action=all Firma==Sony Produktart~=tv>

Gibt alle Einträge aus, bei denen das Feld "Firma" den Wert "Sony" und das Feld "Produktart" mit "tv" beginnt.


Umgang mit speziellen Zeichen:

Bei einigen Zeichen gibt es Probleme, wenn sie Teil einer Abfrage sind, z.B. mit dem Leerzeichen, da dieses die Parameter voneinander trennt oder mit dem Grösserzeichen ">", da dieses als Endekennung für Tags dient. Sie müssen deshalb diese "speziellen" Zeichen in Abfragen kennzeichnen, indem Sie ein sog. Backslash "\" voranstellen:

 
<loop Name==Hans\ Albers Alter\>18>

Gibt alle Einträge aus, deren Name "Hans Albers" und das Alter grösser als 18 ist.

 

 
 Sortierung  zur Übersicht

 
Know-How: Sortierung (Index-Erstellung)

Mit der Sortierung hat es folgende Bewandtnis: Natürlich wollen wir unsere Datenbank später auch durchsuchen. Bei vielen Tausend oder sogar Millionen Einträgen würde ein zeilenweises Durchsuchen von vorne bis hinten sehr lange dauern. Zum Glück gibt es einen Ausweg: Die Datenbank sortiert bestimmte Felder vor (man sagt auch, sie erstellt einen "Index" auf die Daten). Egal wie gross die Datenmengen sind, der Zugriff geschieht nun immer sehr schnell. Allerdings hat diese Methode auch Nachteile: Zum einen benötigt man dafür zusätzlichen Speicherplatz und zum anderen muss bei jedem Hinzufügen oder Ändern von Daten neu sortiert werden. Aus diesem Grund sollte man nur Felder sortieren, die man später auch zur Suche braucht.

Definition:

 
sort=[-]Feld[,[-]Feld...]

Wie bei den Abfragen, können Sie auch nur nach Feldern sortieren, bei denen Sie in der Datenbank-Definition eine Sortierung ausgewählt haben. Beachten Sie den Unterschied zwischen der Sortierung als "Zahl" oder "Text":

 
Zahl Text
1 1
7 10
10 115
13 13
22 22
76 7
115 76

Die ungewohnte Reihenfolge bei obiger Textsortierung erklärt sich dadurch, dass Texte zeichenweise verglichen werden und keine Wertigkeit der einzelnen Stellen haben, wie Zahlen.

Beispiele:

Ohne Abfragebedingung wird der komplette Inhalt einer Datenbank in chronologischer Reihenfolge ausgegeben (die zuerst eingetragenen zuerst). Mit Abfrage erfolgt die Sortierung nach dem ersten abgefragten Feld:

 
<do action=all Name~=ba>

Gibt die Einträge sortiert nach dem Feld "Name" aus, z.B: "Bachmann", "baller", "Baffke", "Baumann" usw.

Soll die Ausgabe nach einem anderen Feld sortiert werden, als abgefragt wird, kann dies mit "sort" bestimmt werden.

 
<loop Name~=ba sort=Vorname>$Name, $Vorname<br></loop>

Gibt alle Einträge aus, bei denen das Feld "Name" mit "ba" anfaengt, sortiert nach dem Feld "Vorname", also z.B. "Baffke, Claudia", "baller, jochen", "Baumann, Karen", "Bachmann, Stefan" usw.

Tip: Soll der komplette Inhalt ausgegeben werden, allerdings sortiert nach einem bestimmten Feld, geben Sie folgendes an:

 
<do action=all Name==*>

Der Stern "*" bedeutet: "Passt auf alles". Es werden also alle Einträge ausgegeben, allerdings sortiert nach dem Feld "Name". Dies ist (vor allem bei grossen Datenbanken) schneller als ein "sort=Name".

Soll die Ausgabe umgekehrt werden, muss ein Minuszeichen "-" vor der Feldangabe stehen:

 
<loop Name~=ba sort=-Vorname>$Name, $Vorname<br></loop>

Gibt alle Einträge, bei denen das Feld "Name" mit "ba" anfaengt, sortiert nach dem Feld "Vorname", in umgekehrter Reihenfolge aus, also z.B. "Bachmann, Stefan", "Baumann, Karen", "baller, jochen", "Baffke, Claudia" usw.

Soll der komplette Inhalt, allerdings in umgekehrter Reihenfolge ausgegeben werden, genügt ein "sort=-":

 
<loop sort=->$Name<br></loop>

Gibt alle Einträge in umgekehrter chronologischer Reihenfolge aus

Dies geht auch in Verbindung mit einer Abfrage:

 
<loop Name~=b sort=->$Name<br></loop>

Gibt alle Einträge, bei denen das Feld "Name" mit "b" anfaengt, in umgekehrter Reihenfolge aus, also z.B. "Baumann", "Baffke", "baller", "Bachmann" usw.

Sie können auch mehrere Felder bei "sort" angeben. Die Sortierung erfolgt dann zuerst nach dem ersten Feld, dann nach dem zweiten, dem dritten usw.

 
<loop Name~=ba sort=Name,Vorname,-Alter>$Name, $Vorname ($Alter)<br></loop>

Gibt alle Einträge aus, bei denen das Feld "Name" mit "ba" anfaengt, sortiert nach den Feldern "Name", "Vorname" und "Alter" (letzteres in umgekehrter Reihenfolge), also z.B. "Bachmann, Stefan (31)", "Bachmann, Stefan (11)", "Baumann, Arndt (41)", "Baumann, Claudia (42)", "Baumann, Thorsten (32)", "Baumann, Thorsten (7)", "Baffke, Karen (27)", usw.

Aufruf über URL:

Sie können alle obigen Beispiele auch in der URL verwenden, z.B.:

 
http://baseportal.de/cgi-bin/baseportal.pl?
 htx=/sepperl/adressen&Name==*&sort=-

Gibt alle Einträge, sortiert nach dem Feld "Name", in umgekehrter Reihenfolge aus (Schneller als ein "
sort=-Name" !)

 

 
 Bereiche  zur Übersicht

 

Definition:

 
range=[-]Start[,Anzahl]

Hiermit können Sie bestimmen, wieviele der passenden Einträge ausgegeben werden sollen.

Beispiele:

 
<db action=all sort=- range=0,10>

Gibt die neuesten zehn Einträge aus, der neueste Eintrag (der also zuletzt hinzugefügt wurde) zuerst.

 
<db action=all Name~=a range=5,4>

Gibt die 5. bis 9. Einträge aus, bei denen das Feld "Name" mit "a" beginnt.

 
<db action=all range=10>

Gibt alle Einträge, ab dem zehnten bis zum Schluss, aus.

 
<db action=all Name==* sort=- range=-20,10>

Gibt von den letzten zwanzig Einträgen (sortiert nach Name, in umkehrter Reihenfolge) zehn aus.

Aufruf über URL:

Sie können alle obigen Beispiele auch in der URL verwenden, z.B.:

 
http://baseportal.de/cgi-bin/baseportal.pl?
 htx=/sepperl/adressen&Name==*&range=-18

Gibt die letzten achtzehn Einträge (sortiert nach Name) aus.

 

 
Programmierung

 
 get / get_next (Datenbank abfragen)  zur Übersicht

 
Baseportal stellt spezielle Befehle zur Behandlung von Datenbanken bereit. Sie erlauben den Abruf, das Hinzufügen, Ändern oder Löschen von Datensätzen. Da Sie diese Befehle in Templates einsetzen, die nur Sie verändern können, haben Sie mit diesen Befehlen immer Zugriff auf alle Ihre Datenbanken - unabhängig davon, wie die Rechte dieser Datenbanken gesetzt sind.

 

Definition:

 
get Abfrage, Datenbank, Ergebnis;

Alle Felder sind optional. Ohne irgendeine Angabe werden die per URL übergebenen Parameter genommen, fehlen auch diese, wird die gleichnamige Datenbank (wie das Template) komplett gelesen. Die Abfrage entspricht den Datenbank-Abfragen bei "loop", "do" oder über die URL und kann als String oder Referenz auf eine Liste übergeben werden. Datenbank gibt den Namen der Datenbank an. Ergebnis bezeichnet einen "Hash" in dem die resultierenden Datensätze gespeichert werden sollen; standardmässig wird hier der Name der Datenbank genommen.

Der erste passende Eintrag wird in Variablen, mit den entsprechenden Feldnamen, gespeichert (genau wie bei loop).

Beispiele:

 
get "KundenNr==32631", "adressen";

out "Name: $Name, Ort: $Ort, Telefon: $Telefon";


Holt alle Datensätze bei denen "KundenNr" den Wert "32631" besitzt aus der Datenbank "adressen" und gibt den ersten davon aus.

Hiermit lässt sich ein individueller Zugangsschutz sehr einfach realisieren:

 
get "Name==!$namerein", "nutzer";

if($Passwort ne "" && $Passwort eq $passwortrein)
{
  # Hier die Ausgabe der eigentlichen Datenbank
  # z.B. mit get_next (s.unten)
} else
{
  out "Zugang verboten!";
}


Holt aus der Datenbank "nutzer" den passenden Nutzer mit dem per URL oder Formular übergebenen "namerein". Der Wert des Feldes "Passwort" wird dann mit dem ebenfalls per URL oder Formular übergebenen "passwortrein" verglichen. Stimmen beide überein wird z.B. eine Datenbank ausgegeben, wenn nicht, erfolgt die Ausgabe "Zugang verboten!". Achten Sie darauf, dass die Datenbank "nutzer" keinerlei Rechte für Aussenstehende hat!

Um an mehrere passende Einträge zu kommen, benötigt man einen weiteren Befehl:

get_next

Definition:

 
get_next Ergebnis;

Holt den nächsten Datensatz von Ergebnis und speichert ihn in Variablen, mit den entsprechenden Feldnamen. Ohne Angabe von Ergebnis wird die zuletzt abgerufene Datenbank genommen.

 

Beispiele:

 
get;

while(get_next)
{
  out "Name: $Name - Auto: $Auto<br>";
}


Holt alle Datensätze der zum Template gehörigen oder per URL übergebenen Datenbank und gibt sie aus.

Mehrere Abrufe per "get" und "get_next" können verschachtelt werden:

 
get "Id==*", "kunden";

while(get_next("kunden"))
{
  out "Kunde: $Name<br>";

  get "Name==$Auto", "autos";

  out "Auto: $Name<br>";
  out "Beschreibung: $Beschreibung<p>";
}


Hier wurde eine Relation zwischen den beiden Datenbanken "kunden" und "autos" hergestellt. Jeder Datensatz eines Kunden enthält ein Feld "Auto" mit dem Autonamen des Kunden. Dieser Wert wird verwendet, um den passenden Eintrag aus der Datenbank "autos" zu holen und die Beschreibung für dieses Auto auszugeben.

 

Sie können auch verschiedene Abfragen derselben Datenbank speichern. Zur Unterscheidung dient der "Ergebnis"-Parameter:

 
get "Name~=a", "kunden";

get "Name~=b", "kunden", "kmitb";

out "Alle Kunden mit a:<p>";
while(get_next("kunden"))
{
  out "Kunde: $Name<br>";
}

out "<hr>Alle Kunden mit b:<p>";
while(get_next("kmitb"))
{
  out "Kunde: $Name<br>";
}


Zuerst werden alle Datensätze, die mit "a" beginnen aus der Datenbank "kunden" geholt und im gleichnamigen Ergebnis gespeichert. Dann werden alle Datensätze, die mit "b" beginnen im Ergebnis "kmitb" gespeichert. Schliesslich werden beide Ergebnisse in entsprechenden Schleifen mit "get_next" ausgegeben.

 

 

 
 put (Neue Datensätze speichern)  zur Übersicht

 
Fügt neue Datensätze zu einer Datenbank hinzu.

Definition:

 
put Werte, Datenbank;

Alle Felder sind optional. Ohne irgendeine Angabe werden die per URL oder einem Formular übergebenen Parameter genommen. Werte geben die zu speichernden Datensätze an und können in verschiedener Form übergeben werden. Datenbank gibt den Namen der Datenbank an.

Beispiele:

 
put ["Name", "Gustav Griebig", "Auto", "BMW"], "kunden";

Schreibt einen neuen Datensatz in die Datenbank "kunden". Das Feld "Name" bekommt den Inhalt "Gustav Griebig" und das Feld "Auto" den Inhalt "BMW". Die einzelnen Werte geben also im Wechsel den Namen eines Feldes und den darin zu speichernden Inhalt an. Es müssen dabei nicht alle vorhandenen Felder angegeben werden (entspricht einem leergelassenen Feld in einem Formular), auch die Reihenfolge der Feldangabe ist egal (zuerst das Auto, dann der Name geht ebenfalls)

Man kann damit auch mehrere Datensätze auf einmal hinzufügen, einfach indem man einen Feldnamen, der bereits angegeben wurde wiederholt:

 
put ["Name", "Gustav Griebig", "Auto", "BMW", "Name", "Hans Haberl", "Auto", "VW Golf"], "kunden";

Schreibt zwei neue Datensätze in die Datenbank "kunden" und zwar Eintrag 1 mit Namen "Gustav Griebig" und dem Auto "BMW" und Eintrag 2 mit Namen "Hans Haberl" und dem Auto "VW Golf".

Aus verschiedenen Gründen ist diese Form für mehrere Datensätze aber nicht sonderlich geeignet. Zum ersten kann es Probleme geben, wenn Felder weggelassen werden und zum zweiten muss man ständig die Feldnamen wiederholen. Besser man verwendet gleich folgende Übergabeart:

 
put
{
  Name => ["Hans", "Gisela", "Thomas"],
  Auto => ["Mercedes", undef, "Toyota"]
}, "kunden";

Schreibt drei neue Datensätze in die Datenbank "kunden": Eintrag 1 mit Name "Hans" und Auto "Mercedes", Eintrag 2 mit Name "Gisela" und keinem Eintrag beim Auto und Eintrag 3 mit Name "Thomas" und Auto "Toyota".

 

 

 
 mod (Bestehende Datensätze ändern)  zur Übersicht

 
Ändert bestehende Datensätze.

Definition:

 
mod Abfrage, Werte, Datenbank;

Alle Felder sind optional. Ohne irgendeine Angabe werden die per URL oder einem Formular übergebenen Parameter genommen. Abfrage entspricht den Datenbank-Abfragen bei "get", "loop" oder "do". Werte geben die zu speichernden Datensätze an und entspricht dem Parameter bei "put". Datenbank gibt den Namen der Datenbank an; wird keine angegeben, wird die zuletzt benutzte verwendet.

Beispiele:

 
mod "Name==!Hans", ["Name", "Stefan", "Auto", "Honda"], "kunden";

Ändert den Eintrag mit dem Namen "Hans" der Datenbank "kunden": Das Feld "Name" bekommt den neuen Wert "Stefan" und das Feld "Auto" den Wert "Honda". Wenn kein Datensatz mit der Abfrage übereinstimmt, also kein Nutzer mit dem Namen "Hans" existiert, passiert garnichts.

Nicht angegebene Felder bleiben unverändert:

 
mod "Name==!Gisela", ["Auto", "Golf"], "kunden";

Ändert das Feld "Auto" des Eintrags mit dem Namen "Gisela" der Datenbank "kunden" in "Golf". Der Name "Gisela" bleibt wie er ist.

Um ein Feld zu löschen muss ein Leertext übergeben werden:

 
mod "Name==!Gisela", ["Auto", ""], "kunden";

Leert das Feld "Auto" des Eintrags mit dem Namen "Gisela" der Datenbank "kunden".

Es können auch mehrere Änderungen gleichzeitig durchgeführt werden:

 
mod "Id==3 or Id==4 or Id==7", { Name => [ "Franz", "Thomas", "Claudia" ], Auto => ["Mercedes", "Chrysler", "Toyota"] }, "kunden";

Ändert die Einträge mit den Ids 3, 4 und 7 der Datenbank "kunden": Der Eintrag mit der Id 3 wird zu Name=Franz und Auto=Mercedes, der Eintrag mit der Id 4 zu Name=Thomas und Auto=Chrysler und der Eintrag mit der Id 7 zu Name=Claudia und Auto=Toyota. Beachten Sie die Verknüpfung mit or.

Treffen mehr Datensätze für die Abfrage zu als Sie an Werten zum Ersetzen übergeben, so werden die Werte wiederholt verwendet:

 
mod "Name~=s", [ "Auto", "BMW" ], "kunden";

Ändert das Feld "Auto" aller Einträge, deren Name mit "s" beginnt, auf "BMW".

 

 
 del (Bestehende Datensätze löschen)  zur Übersicht

 
Löscht Datensätze aus einer Datenbank.

Definition:

 
del Abfrage, Datenbank;

Alle Felder sind optional. Ohne irgendeine Angabe werden die per URL oder einem Formular übergebenen Parameter genommen. Abfrage entspricht den Datenbank-Abfragen bei "get", "mod", "loop" oder "do". Datenbank gibt den Namen der Datenbank an.

Beispiele:

 
del "Name==!Hans", "kunden";

Löscht den Eintrag mit dem Namen "Hans" aus der Datenbank "kunden". Existiert dieser Eintrag nicht, passiert nichts.

Es können auch mehrere Einträge auf einmal gelöscht werden:

 
del "Alter<18", "kunden";

Löscht alle Einträge dessen Feld "Alter" kleiner als 18 ist aus der Datenbank "kunden".

 

 
 do_all  zur Übersicht

 
Durch den Aufruf von "do_all" wird die komplette Ausgabe des Tags <do action=all> erzeugt. Parameter, als auch zusätzliche Werte, die bei den Links erhalten bleiben sollen, können mit übergeben werden.


Definition:

 
do_all Parameter, Werte;

Beispiele:

 
do_all "db=adressen maxlistlength=100", "nutzername=sepp", "passwort";

Erzeugt die komplette Datenbankausgabe inkl. Reiter etc. für die Datenbank "adressen". Die Länge bei der Listenausgabe wird auf 100 Zeichen begrenzt. Der Parameter "nutzername" wird mit dem Wert "sepp" und der Parameter "passwort" mit dem bereits gesetzten Wert mit übergeben.

 

 
 list (Listen in verschiedenen Formaten ausgeben)  zur Übersicht

 
Hilfetext noch nicht erstellt.

 

 
 loop  zur Übersicht

 
Sie können auch in der loop-Anweisung Perl-Code verwenden:

Definition:

 
<loop code=perl[Parameter]> ... </loop>

Beispiel:

 
<b>Alles in Gross...</b><p>

<loop code=perl>

out "Nummer: ",++$cnt,"<br>";
out "Name: ",uc($Name),"<br>";
out "Strasse: ",uc($Strasse),"<br>";
out "Ort: ",uc($Ort),"<p>";

</loop>

Für jeden Eintrag der Datenbank wird der angegebene Perl-Code ausgeführt. Die Inhalte der Felder sind über die Variablen mit dem entsprechenden Feldnamen erreichbar. Ausserdem nutzen wir eine Zählvariable ($cnt), die zu Beginn jedes Eintrags die fortlaufende Nummer ausgibt. Die Perl-Funktion uc() wandelt alle Buchstaben in Grossbuchstaben um.

Hier eine mögliche Ausgabe:

 

Alles in Gross...

Nummer: 1
Name: AXEL HUBER
Strasse: WALDWEG 5
Ort: GRUBING

Nummer: 2
Name: GABI BAUMANN
Strasse: KLINGELGASSE 12
Ort: FREIBERG

Nummer: 3
Name: HANS HELFIG
Strasse: VIOLASTRASSE 3
Ort: BINGEN

 

 

 

 
 convert_br / convert_html / convert_url / convert_quote  zur Übersicht

 
Wir haben in baseportal mit allerlei Sonderzeichen zu tun, die aus verschiedenen Sprachen und Standards kommen und unterschiedlich behandelt werden müssen. So steht ein &auml; in HTML z.B. für den Umlaut ä und wenn in einem HTML-Text, der selbst von Hochkommas "..." umschlossen ist ein Hochkomma " vorkommt, so muss dieses mit &quot; umschrieben werden.

Gänzlich anders muss mit Sonderzeichen in einer URL verfahren werden. So darf z.B. kein Leerzeichen darin vorkommen. stattdessen muss dafür ein Plus-Zeichen + stehen. Was aber wenn man nun das Plus-Zeichen + selbst angeben will? Dann muss dieses mit %2b geschrieben werden. Da nun damit das %-Zeichen auch eine besondere Bedeutung hat, muss es mit %25 ebenfalls kodiert werden.

Perl oder Javascript gehen wieder anders mit Sonderzeichen um.

baseportal stellt für diese Fälle eine Reihe von Konvertierungsroutinen bereit:

 
convert_br Wandelt einen Zeilenumbruch in den HTML-Code <br>
convert_html Wandelt &, ", <, > und Umlaute (PC) in die HTML-Pendants &amp;, &quot;, &lt;, &gt;, &auml;, &uuml; usw.
convert_quote Wandelt das Hochkomma ", den Apostroph ' und den Backslash \ in &quot;, \' und \\
convert_url Wandelt %, \, |, &, ", + in den entsprechenden %xx-Code, sowie das Leerzeichen in ein +

Beispiel:

 
<do action=input>

<loop code=perl>

out convert_html($Name)." - ";
out '<a href="/cgi-bin/baseportal.pl?htx=/name/seite&cmd=del&Id=$_id" onclick="return confirm(\''.convert_quote($Name).' wirklich löschen?\')">Löschen?</a>';
out "<p>";

</loop>


"Entschärft" alle HTML-Spezialzeichen des Feldes "Name" und gibt es, zusammen mit einem "Löschen?"-Link aus. Klickt man auf diesen Link erscheint eine Javascript-Abfrage, ob man dies wirklich will. Sollte der Feldinhalt Apostrophe enthalten, werden diese gewandelt, so dass es zu keiner Javascript-Fehlermeldung kommen kann.

 

 
Datum und Zeit

 
 Abfrage im Formular  zur Übersicht

 
Einige tausend Jahre Kultur haben ihre Spuren hinterlassen: Auch wenn es uns durch die jahrelange Gewöhnung nicht so erscheint, ist der Umgang mit der Zeit und dem Datum eine komplexe Angelegenheit. baseportal versucht, den Nutzer von dieser Komplexität möglichst wenig spüren zu lassen und gleichzeitig alle Möglichkeiten offen zu lassen.


Die Abfrage eines Datums kann auf zwei Arten erfolgen:

Abfrage nach Datumteilen

Bei der ersten Möglichkeit muss dem Feldnamen ein Unterstrich "_" vorangestellt, sowie ein "_" und die Angabe des gewünschten Datumteils (Tag, Monat, Jahr usw.) angefügt werden:

 
_Datum_Jahr==2000

Diese Art der Abfrage ist hauptsächlich dafür da, eine Eingabemöglichkeit in einem Formular bereit zu stellen. Hier zwei Beispiele, einmal als Suche mit Pop-Up-Menüs...

 
<form action="/cgi-bin/baseportal.pl?htx=/name/seite" method="post" enctype="multipart/form-data">
<select name="_Geburtstag_Jahr~="> <option>1960<option>1961<option>1962<option>1963...usw.</select>
<select name="_Geburtstag_Monat~="> <option>1<option>2<option>3<option>4...usw.</select>
<select name="_Geburtstag_Tag~="> <option>1<option>2<option>3<option>4...usw.</select>
</form>

...oder als Suchabfrage mit Textfeldern:

 
<form action="/cgi-bin/baseportal.pl?htx=/name/seite" method="post" enctype="multipart/form-data">
Tag: <input type=text name="_Geburtstag_Tag~=">
Monat: <input type=text name="_Geburtstag_Monat~=">
Jahr: <input type=text name="_Geburtstag_Jahr~=">
</form>

 

 

 
 Abfrage über URL / loop / get und Operatoren  zur Übersicht

 
Direkte Abfrage

Wenn Sie die Abfrage selbst kontrollieren, also z.B. in einem "loop"-Tag, beim "get"-Befehl oder über die URL, so ist die zweite Art der Angabe wesentlich bequemer:

 
Datum==1.3.2000,20:15

baseportal ist schlau genug, die verschiedenen Angaben bestmöglich zu erkennen. Hier eine Reihe von Beispielen:

 

    Abfrage Tag Monat Jahr Stunde Minute Sekunde
    1.Juni.2000,23:45.09 1 6 (Juni) 2000 23 45 09
    1.12.2000,23:45 1 12 (Dezember) 2000 23 45  
    01.06.02,1:00 1 6 (Juni) 2002 01 00  
    5.mar.2000 5 3 (März) 2000      
    02.märz.01 2 3 (März) 2001      
    12:57       12 57  
    AUGUST.2005   8 (August) 2005      
    3.7 3 7 (Juli)        
    nov   11 (November)        
    10       10    

Wichtig sind die Trennzeichen: Der Punkt "." (trennt Tag, Monat und Jahr, sowie Minute und Sekunde), das Komma "," (trennt Datum und Zeit) und der Doppelpunkt ":" (trennt Stunde und Minute).


Operatoren

Die Operatoren ~= und == sind gleich bedeutend.

Während das <-Zeichen genauso arbeitet, wie man es sich vorstellt, hat das >-Zeichen eine auf den ersten Blick andere Wirkung: Die Abfrage...

 
Datum>2000

...führt nicht dazu, dass alle Einträge ab (und einschliesslich) dem Jahr 2001 ausgegeben werden, sondern alle Einträge ab der ersten Sekunde im Jahr 2000. Zum gewünschten Ergebnis führt folgende Abfrage:

 
Datum>=2001


Abfrage nach dem momentanen Datum

Mit dem Wert "jetzt" kann nach dem momentanen Datum abgefragt werden:

 
Datum>jetzt

Findet alle Einträge mit einem Datum in der Zukunft.


"Relative" Abfrage nach Vergangenheit und Zukunft

Ausgehend vom momentanen Datum können Sie nach Zeitpunkten in der Vergangenheit oder Zukunft abfragen:

 
Datum>-14

Findet alle Einträge die höchstens 14 Tage alt sind.

 
Datum<+24:00

Findet alle Einträge die maximal 24 Stunden in der Zukunft liegen.

Auch hier erkennt baseportal eine Reihe unterschiedlicher Angaben:

 

    Abfrage Bedeutung
    -7,3:12.11 7 Tage, 3 Stunden, 12 Minuten und 11 Sekunden in der Vergangenheit
    +100 100 Tage in der Zukunft
    -14:00 14 Stunden in der Vergangenheit
    +.31536000 31536000 Sekunden in der Zukunft (=365 Tage)

Wichtig sind wieder die Trennzeichen: Der Punkt "." (trennt Minute und Sekunde), das Komma "," (trennt Tag und Zeit) und der Doppelpunkt ":" (trennt Stunde und Minute).

Achtung: Wenn Sie eine Abfrage, die ein "+"-Zeichen enthält über die URL machen, müssen Sie dieses mit "%2b" umschreiben, da "+"-Zeichen in der URL sonst für Leerzeichen stehen. Eine komplette Abfrage über die URL könnte z.B. so aussehen:

 
http://baseportal.de/cgi-bin/baseportal.pl?htx=/name/seite&Datum>-10&Datum<%2b10


Abfragen nach Datumsteilen

Abfragen "in die Mitte" eines Datums sind nicht möglich, da dieses immer von "oben" her bearbeitet wird. Die Reihenfolge ist:

 
Jahr.Monat.Tag,Stunde:Minute.Sekunde

In einem "normalen" Datumsfeld können Sie also nicht einfach alle Einträge mit dem Monat "Juni" egal in welchem Jahr ausgeben lassen. Ein Abfrage wie...

 
Datum~=juni

...ist dennoch möglich - sie liefert jedoch alle Einträge mit Monat "Juni" des aktuellen Jahres.

Sie können diese Beschränkung jedoch bewusst umgehen, indem Sie eigene Formate definieren.

 

 

 
 eigene Formate (Eingabe / Ausgabe)  zur Übersicht

 
Eigenes Eingabeformat

Sie können bei der Definition des Datumfeldes ein eigenes Format beschreiben. Folgende Angaben sind möglich:

 

    Angabe Bedeutung
    Tag Tag des Monats (1 bis 31)
    Monat Monat als Zahl (1 bis 12)
    Monatname Monat als Name ("Januar" bis "Dezember")
    Monatkurz Monat als kurzer Name ("Jan" bis "Dez")
    Jahr vierstelliges Jahr (1920 bis 2019)
    Jahr2 zweistelliges Jahr (00 bis 19)
    Stunde Stunde (00 bis 23)
    Minute Minute (00 bis 59)
    Sekunde Sekunde (00 bis 59)

Alle anderen Zeichen werden unverändert angezeigt. Das Format...

 
Tag / Monatname

...führt also bei der Eingabe eines Datensatzes oder der späteren Suche zu folgenden zwei Popup-Menüs:

 
/

Aber es hat noch eine weitere Bedeutung: Da das "Jahr" nicht im Eingabeformat enthalten ist, wird es auch nicht mitgespeichert - somit ist eine Abfrage nach Monaten unabhängig vom Jahr möglich:

 
Geburtstag~=April

Liefert damit alle Einträge mit Geburtstagen im April.

Know-How: Probleme bei eigenen Datum-Eingabeformaten

Sie müssen hier wissen, was Sie tun, sonst werden Sie über manche Resultate überrascht sein. Vor allem nachträgliche Änderungen des Eingabeformates bei bereits bestehenden Daten können zu Problemen führen: Angenommen Sie haben ein normales Feld mit allen Datumsteilen (Jahr, Monat, Tag etc.) definiert und fleissig Daten eingegeben. Nun ändern Sie das Eingabeformat, so dass nur noch "Monat" und "Tag" enthalten sind - die alten Daten behalten trotzdem Ihr altes Jahr bei, so dass eine Suche nach beliebigen Monaten nur bedingt möglich sein wird.



Eigenes Ausgabeformat

Ebenso wie bei der Eingabe können Sie bei der Definition des Datumfeldes ein eigenes Ausgabe-Format beschreiben. Folgende Angaben sind möglich:

 

    Angabe Bedeutung
    Wochentag Wochentag ("Montag" bis "Sonntag")
    Wochentagkurz Wochentag kurz ("Mo" bis "So")
    Wochentagzahl Wochentag als Zahl (1 bis 7)
    Tag Tag des Monats (1 bis 31)
    Tag0 Tag des Monats mit führender Null (01 bis 31)
    Monat Monat als Zahl (1 bis 12)
    Monat0 Monat als Zahl mit führender Null (01 bis 12)
    Monatname Monat als Name ("Januar" bis "Dezember")
    Monatkurz Monat als kurzer Name ("Jan" bis "Dez")
    Jahr vierstelliges Jahr (1920 bis 2019)
    Jahr2 zweistelliges Jahr (00 bis 19)
    Stunde Stunde (00 bis 23)
    Stunde1 Stunde ohne führende Null (0 bis 23)
    Stunde12 Stunde "analog" (1 bis 12)
    Stunde012 Stunde "analog" mit führender Null (01 bis 12)
    Minute Minute (00 bis 59)
    Minute1 Minute ohne führende Null (0 bis 59)
    Sekunde Sekunde (00 bis 59)
    Sekunde Sekunde ohne führende Null (0 bis 59)

Alle anderen Zeichen werden unverändert angezeigt. Das Format...

 
Monatname Tag0, Jahr (Wochentag)

...würde beispielsweise zu folgender Ausgabe führen:

 
Dezember 06, 2000 (Mittwoch)

 

 

 
 Datum schreiben (put)  zur Übersicht

 
Das Speichern von Datensätzen mit Datum erfolgt ähnlich wie bei der Abfrage. Auch hier können Sie die einzelnen Datumbestandteile der Reihe nach angeben:

 
put ["_Datum_Jahr", "2000", "_Datum_Monat", "August"];

Diese Art der Abfrage ist wieder hauptsächlich dafür da, eine Eingabemöglichkeit in einem Formular bereit zu stellen:

 
<form action="/cgi-bin/baseportal.pl?htx=/name/seite&cmd=add" method="post" enctype="multipart/form-data">
<select name="_Geburtstag_Jahr:="> <option>1960<option>1961<option>1962<option>1963...usw.</select>
<select name="_Geburtstag_Monat:="> <option>1<option>2<option>3<option>4...usw.</select>
<select name="_Geburtstag_Tag:="> <option>1<option>2<option>3<option>4...usw.</select>
</form>

Oder Sie geben das Datum auf einmal an:

 
put "Datum:=1.7.2001";

Um das momentane Datum zu speichern können Sie den besonderen Wert "jetzt" verwenden:

 
put "Datum:=jetzt";

 

 
 Datum ausgeben  zur Übersicht

 
Sie können die Datumsformate auch bequem im Programmcode nutzen. baseportal stellt Ihnen hierzu die Routine "datum" bereit:

 
datum(Zeitpunkt, Format);

Der Zeitpunkt kann dabei 1. wie bei der direken Abfrage eines Datumsfeldes definiert sein, 2. in Sekunden seit dem 1.1.1970 angegeben werden (Zahl > 100000),  3. "jetzt" für den momentanen Zeitpunkt oder 4. der Wert aus einer Datenbank sein.

Das Format entspricht der Angabe bei der Definition eines eigenen Ausgabeformates. Die Zeile...

 
out datum("1.2.00", "Wochentag, Tag.Monatname.Jahr");

...gibt folgendes aus:

 
Dienstag, 1.Februar.2000

 

Die (in Deutschland) gebräuchlichsten Formate können Sie über eigene Namen ansprechen:

 
Angabe Format
ohne Angabe Tag.Monat.Jahr, Stunde:Minute
lang Wochentag, Tag.Monatname.Jahr, Stunde:Minute
kurz Tag.Monat.Jahr2, Stunde:Minute
intern Jahr.Monat0.Tag0,Stunde:Minute.Sekunde#Wochentagzahl

Auch hier können Sie die Angabe "jetzt" für den momentanen Zeitpunkt verwenden...

 
out datum("jetzt", "lang");

...ergibt z.B. folgende Ausgabe:

 
Freitag, 8.Dezember.2000, 17:03

Ebenso sind die relativen Angaben möglich:

 
out datum("+10");

...gibt das Datum in 10 Tagen in der Standard-Form "Tag.Monat.Jahr, Stunde:Minute" aus.

 

Möchten Sie dagegen ein abgespeichertes Datum aus einer Datenbank ausgeben, stellen Sie die Variable, in der das Datum gespeichert ist, als Zeitpunkt ein:

out datum("$date", "kurz");

In diesem Beispiel ist das Datum in dem Feld "date" in der Datenbank gespeichert. Die Ausgabe erfolgt "Tag.Monat.Jahr2, Stunde:Minute"

 

 
 Datum vergleichen (if)  zur Übersicht

 
Wollen Sie ein Datum aus einer Datenbank mit dem heutigen Datum vergleichen erreichen Sie das über den folgenden Befehl:

 
if($date lt datum("jetzt", "intern"))

Dabei steht das abgespeicherte Datum in dem Feld $date und soll kleiner sein als das heutige. Da in $date das Datum unformatiert steht, muß das jetzige Datum auch das interne Format besitzen. Ein Datum kann nur über Zeichenkettenoperatoren verglichen werden.

der Vergleich kann auch in einer <loop> Schleife mit perl erfolgen. Da aber loop das $date gleich in das richtige Format schreibt, muß mit der Variable $_raw gearbeitet werden um den Vergleich zu ermöglichen.

 
<loop code=perl>
if($_raw(date) lt datum("jetzt", "intern"))
{
 ...
}
</loop>

 

 
Sonstiges

 
 Sonderzeichen maskieren  zur Übersicht

 
In jeder Programmiersprache gibt es bestimmte Zeichen, die eine besondere Bedeutung haben. Hier in dieser Dokumenation haben wir bereits das $-Zeichen als besonderes Zeichen kennengelernt - es wird nicht einfach selbst ausgegebenen, sondern steht am Anfang einer Variablen.

Was, wenn Sie aber statt dem Inhalt der Variablen "test" tatsächlich "$test", also ein $-Zeichen gefolgt von "test" ausgeben wollen? Hierzu müssen Sie das $-Zeichen, das nun ganz normal ausgegeben werden soll, maskieren. Wie in Perl üblich, erfolgt dies mit dem \-Zeichen, auch "Backslash" ("umgedrehter Schrägstrich") oder "Escape"-Zeichen (da sie damit vor der besonderen Bedeutung "flüchten") genannt:

 
Inhalt von \$test: $test

Angenommen die Variable $test enthält den Text "Hallo", dann wird an dieser Stelle:

 
Inhalt von $test: Hallo

ausgegeben.

Manchmal hat ein Zeichen ganz unerwartet eine besondere Bedeutung, wie z.B. das Leerzeichen. Bei dem Tag...

 
<do action=all Name~=a listfields=Name,Strasse>

...dient das Leerzeichen als Trenner zwischen den Parametern. Wenn Sie jetzt ein Feld angeben wollen, das ein oder mehrere Leerzeichen enthält benötigen Sie wieder das \-Zeichen:

 
<do action=all Name\ oder\ Firma~=a listfields=Name\ oder\ Firma,Strasse>

 

 
 Variablen  zur Übersicht

 
Variablen sind "Platzhalter" für Werte und werden wie in vielen Programmiersprachen eingesetzt. Einfache Variablen beginnen mit dem $-Zeichen und müssen mit einem Buchstaben beginnen, gefolgt von weiteren Buchstaben, Zahlen oder Unterstrichen (Beispiele: $Text, $Mein_Name, $urx_123). Inhalte von Variablen können beliebig lang sein und aus Zahlen, Texten oder beliebigen anderen Zeichen bestehen.

Die über eine URL oder in einem baseportal-Tag angegebenen Parameter werden automatisch als Variablen zur Verfügung gestellt.

Beispiele:

 
<perl>
out "Z&auml;hler: ",$cnt++,"<p>";
out '<a href="/cgi-bin/baseportal.pl?htx=/zaehler&cnt=',$cnt,'">Weiter';
</perl>

Dieses Code-Stück fungiert als Zähler. Jeder Klick auf "Weiter" erhöht die Zahl um 1. Dies geschieht durch die Variable $cnt, deren Wert durch den Parameter in der URL weitergegeben wird und im Template zur Verfügung steht.


Pfiffig ist der Einsatz von Variablen, um HTML-Bausteine individuell anzupassen:

 
<font face=arial,helvetica color=red><h2 align="center">$Text</h2></font>

Die Variable $Text wird nun mit dem aktuellen Wert ersetzt. Angenommen obige Zeile wird im Template titel gespeichert, so führt der Einbau in eine andere Seite durch...

 
<include src=titel Text=Einleitung>

...zu folgender Ausgabe:

 

Einleitung



Spezialvariablen

Eine Reihe von Werten werden von baseportal in Spezialvariablen bereitgehalten. Sie beginnen immer mit einem Unterstrich "_". Obwohl es möglich ist, sollten Sie also auf eigene Variablen, die mit einem Unterstricht beginnen, verzichten.

Datenbank-Abruf:

 
$_db Name der zuletzt genutzten Datenbank
$_range Ausgabebereich Start
$_range_length Ausgabebereich Anzahl
$_amount Anzahl Datensätze die beim letzten Abruf tatsächlich geholt wurden.
$_amount_query Anzahl Datensätze die beim letzten Abruf ohne "range" geholt worden wären.
$_amount_all Anzahl Datensätze die in der zuletzt genutzten Datenbank insgesamt enthalten sind.

Parameter und Abfragewerte:

 
%_cgi Werte die über CGI (GET oder POST) mit "=" übergeben wurden
(z.B. Farbe=Rot)
%_get Werte die über CGI, in Tags oder über eine Datenbank-Abfrage gesetzt wurden
(z.B. Farbe=Rot)
%_sel Abfragewerte (z.B. Name==a)
%_put zu schreibende Werte (z.B. Name:=Hans)

Durch die "Hashes" %_cgi und %_get können auch Parameter abgefragt werden, die nicht über Variablen zugänglich sind, weil sie für Variablennamen unzulässige Zeichen enthalten (z.B: Leerzeichen, Sonderzeichen usw.) oder weil Sie durch eigene Variablen überschrieben wurden. Beispiele: $_get{"Mein Name"}; $_cgi{"12345"};

 

 
 Parameter  zur Übersicht

 
Aussehen:

 

border=<zahl> Rahmen, Dicke Vorgabe=0
gridcolor=<farbe>/- Gitter, Farbe Vorgabe=f0f0f0
("-" um Vorgabe zu löschen)
padding=<zahl> Abstand Inhalt:Umrandung Vorgabe=4
spacing=<zahl> Umrandung, Dicke Vorgabe=2
 
dataface=<font> Datenfeld, Textfont
datacolor=<farbe> Datenfeld, Textfarbe
datasize=<zahl> Datenfeld, Textgrösse
databack=<farbe> Datenfeld, Hintergrundfarbe Vorgabe=d0d0d0
("-" um Vorgabe zu löschen)
dataalign=left/middle/right Datenfeld, Ausrichtung
 
headface=<font> Feldname, Textfont (Vorgabe=Wert von dataface, falls dieser gesetzt)
headcolor=<farbe> Feldname, Textfarbe (Vorgabe=Wert von datacolor, falls dieser gesetzt)
headsize=<zahl> Feldname, Textgrösse (Vorgabe=Wert von datasize, falls dieser gesetzt)
headback=<farbe> Feldnamen, Hintergrundfarbe Vorgabe=d0d0f0
("-" um Vorgabe zu löschen)
headalign=left/middle/right Feldnamen, Ausrichtung


Sortieren+Bereich:

 

<feld>==* Sortierung nach Feld
sort=- Reihenfolge umkehren
sort=<(-)feld1,(-)feld2,...> Sortierung erst nach Feld1, dann nach Feld2 usw.
showsort=<feld1,feld2,../*> Feldnamen mit Link zur Sortierung
*=Alle Felder, bei denen Sortierung definiert ist
range=(-)<start>(,<anzahl>) ab Start (bei "-" von hinten), Anzahl (oder bis Ende)


Blättern:

 

showamount=no/all/sel/all,sel Anzahl der passenden Einträge: Nicht anzeigen / bei Gesamt, nicht bei Auswahl / bei Auswahl, nicht bei Gesamt / Anzeige Auswahl, Gesamt
selectbrowse=no/top/bottom (Alles,Neu,Detail ..) Nein / oben / unten / oben + unten
buttonbrowse=no/top/bottom (>, >> ..) Nein / oben / unten / oben + unten
pagebrowse=no/(0)top/bottom/top,bottom (1, 21, usw.) ohne reiter / (0 zu beginn=reiter starten mit 0), reiter oben, reiter unten /oben+unten
indexfield=<feld> Kein Feldreiter / nach Feld (wenn option, dann die werte, sonst: a,b,c..z)
indexbrowse=no/top/bottom


Ausgabe:

 

listfields=<(-)feld1,feld2..>/#<anzahl> Felder die bei der Listen-Ausgabe in der angegebenen Reihenfolge erscheinen sollen (oder mit - die nicht dort erscheinen sollen)
#<anzahl> = max. Zahl Felder ausgeben
allfields=<(-)feld1,feld2..>/#<anzahl> Felder die bei der Detail-Ausgabe in der angegebenen Reihenfolge erscheinen sollen (oder mit - die nicht dort erscheinen sollen)
#<anzahl> = max. Zahl Felder ausgeben
formfields=<(-)feld1,feld2..>/#<anzahl> Felder die beim Eingabe-Formular in der angegebenen Reihenfolge erscheinen sollen (oder mit - die nicht dort erscheinen sollen)
#<anzahl> = max. Zahl Felder ausgeben
searchfields=<(-)feld1,feld2..>/#<anzahl> Felder die beim Such-Formular in der angegebenen Reihenfolge erscheinen sollen (oder mit - die nicht dort erscheinen sollen)
#<anzahl> = max. Zahl Felder ausgeben
keyfield=<feld> Feld das zur Detailausgabe verlinken soll (Vorgabe=erstes Feld)
 
listtype=list/all/add/search Ausgabe-Art
tdparam=<html-code> Zusatz zu den Zellen-<td>'s (z.B. mit "nowrap" - kein Umbruch)
detail=no/link/linktop/linkbottom/top/bottom Detail-Ausgabe: nicht möglich/nach Link alleine,oben,unten/oben/unten
search=no/link/linktop/linkbottom/top/bottom Such-Ausgabe: nicht möglich/nach Link alleine,oben,unten/oben/unten
input=no/link/linktop/linkbottom/top/bottom Eingabe-Formular: nicht möglich/nach Link alleine,oben,unten/oben/unten
 
maxlistlength=0/<zahl> Maximale Textlänge bei Listen-Ausgabe. Zeilenumbrüche werden nicht gewandelt.
0=Zeilenumbrüche bei Listen-Ausgabe nicht wandeln, Länge unbegrenzt
convert_br=<feld1,feld2..>/- Felder, bei denen Zeilenumbrüche in <br> gewandelt werden
-=Kein Feld (ohne Angabe alle)
convert_html=<feld1,feld2..>/* Felder, bei denen HTML-Code in deren HTML-Pendants umgewandelt werden
*=Alle Felder
convert_quote=<feld1,feld2..>/* Felder, bei denen ", ' und \ umgewandelt werden
*=Alle Felder
convert_url=<feld1,feld2..>/* Felder, die für einen URL-Aufruf gewandelt werden
*=Alle Felder
 
language=en Ausgabetexte in Englisch (Vorgabe=auf Deutsch)


Abfrage:

 

db=<datenbank> Zu bearbeitende Datenbank
htx=<template> Auszugebendes Template

 

 
Beispiele

 
 einfaches Gästebuch  zur Übersicht

 
Hilfetext noch nicht erstellt.

 

 
 Bücherverwaltung  zur Übersicht

 
Hilfetext noch nicht erstellt.

 

 
Anhang

 
 Glossar  zur Übersicht

 
Eine Übersicht mit häufigen Fragen aus dem Forum hat Hans mit dem Glossar erstellt. Es wird auf einfache Art erklärt, wie spezielle Probleme angegangen werden können, ohne das man Perl-Profi ist. Schauen Sie unter Glossar

 

 
 Forums-faq's  zur Übersicht

 
Benötigen Sie eine Hilfe um im Forum zu Ihrem Problem eine Frage an andere Baseportaler zu stellen, lesen Sie bitte die Forums-faq's

 

 

Teamwork von Frank B. und Sander. Alle Rechte vorbehalten. :-)

powered by baseportal.de