baseportal | ||
Start | ||
Dokumentation |
|
Templates (Ausgabeseiten) | |
Beispiel:
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 | |||||||
Definition:
Beispiel: Das Template meineseite enthält folgenden Teil:
Ein zweites Template head im selben Verzeichnis sieht so aus:
Wird nun die Seite meineseite aufgerufen, erscheint die folgende Ausgabe:
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...
...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...
...oder absolut möglich:
Bindet das Template "standard" im Verzeichnis "menues" des Nutzers "AxelS" ein. |
do | ||||||||||||||||||
Hier eine Aufstellung möglicher Parameter
Beispiele:
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.
Gibt das zur Datenbank nutzer zugehörige Eingabeformular aus.
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. Ein komplettes Template mit etwas freierer Gestaltung als bei der Funktion all könnte so aussehen:
Eine mögliche Ausgabe: ----------------------------- Hier Anfang der Ausgabe ---------------------- Wollen Sie etwas hinzufügen? Nur zu:
Die Einträge:
----------------------------- Hier Ende der Ausgabe ----------------------
|
loop | |||
Definition:
Beispiel:
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 $"}
(Achtung: Die Nachrichten sind nur Beispiele und NICHT real!! ;-) |
perl | |||||||
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:
Beispiele:
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:
Um mehrere Zeilen auf einmal auszugeben können Sie folgendes schreiben:
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)
Perl-Code in loopSie können auch in der loop-Anweisung Perl-Code verwenden: Definition:
Beispiel:
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:
|
Aufruf über Browser (URL) | |||||||
Definition:
Beispiele:
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.
Ruft die Anmeldeseite von baseportal auf. Die mitgegebene UserId wird als Vorgabe eingetragen.
Hiermit gelangt man zur Registrierung von baseportal.
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.
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 gebenEin 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.
Setzt die Datenbank auf "test", wenn keine Datenbank über die URL angegeben wurde.
|
Datenbank-Abfragen | |||||||||||||||||||||||||||||||||||||||||||||||||||
Definition:
Operator = Bestimmt die Art der Übereinstimmung:
Wert = Wert nach dem gesucht wird
Verknüpfung = Art der Verknüpfung der Teilergebnisse:
Bitte beachten: Sie können nur Abfragen für Felder machen, bei denen Sie in der Datenbank-Definition eine Sortierung ausgewählt haben! Beispiele:
Liefert alle Einträge, bei denen das Feld "Name" mit "c" (gross oder klein) beginnt.
Liefert alle Einträge, bei denen das Feld "Vorname" exakt "andrea" (gross oder klein geschrieben) enthält.
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.
Liefert alle Einträge, bei denen das Feld "Beruf" die Werte "Programmierer" ODER "System-Administrator" enthalten UND das Feld "PLZ" mit "1" beginnt.
Liefert alle Einträge, bei denen das Feld "Titel" mit kleinem "d", "e", "f", "g", "i" oder "j" beginnt.
Liefert irgendeinen zufälligen Eintrag. Aufruf über URL: Sie können die obigen Abfragen nun einfach in der URL verwenden:
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:
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:
Gibt alle Einträge aus, bei denen das Feld "Firma" den Wert "Sony" und das Feld "Produktart" mit "tv" beginnt.
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:
Gibt alle Einträge aus, deren Name "Hans Albers" und das Alter grösser als 18 ist. |
Sortierung | ||||||||||||||||||||||||||
Definition:
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":
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:
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.
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:
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:
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=-":
Gibt alle Einträge in umgekehrter chronologischer Reihenfolge aus Dies geht auch in Verbindung mit einer Abfrage:
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.
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.:
Gibt alle Einträge, sortiert nach dem Feld "Name", in umgekehrter Reihenfolge aus (Schneller als ein " sort=-Name " !)
|
Bereiche | ||||||
Definition:
Hiermit können Sie bestimmen, wieviele der passenden Einträge ausgegeben werden sollen. Beispiele:
Gibt die neuesten zehn Einträge aus, der neueste Eintrag (der also zuletzt hinzugefügt wurde) zuerst.
Gibt die 5. bis 9. Einträge aus, bei denen das Feld "Name" mit "a" beginnt.
Gibt alle Einträge, ab dem zehnten bis zum Schluss, aus.
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.:
Gibt die letzten achtzehn Einträge (sortiert nach Name) aus. |
get | |||||||
Definition:
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:
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:
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_nextDefinition:
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:
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:
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:
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 | ||||
Definition:
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:
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:
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:
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 | ||||||
Definition:
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:
Ä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:
Ä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:
Leert das Feld "Auto" des Eintrags mit dem Namen "Gisela" der Datenbank "kunden". Es können auch mehrere Änderungen gleichzeitig durchgeführt werden:
Ä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:
Ändert das Feld "Auto" aller Einträge, deren Name mit "s" beginnt, auf "BMW".
|
del | |||
Definition:
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:
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:
Löscht alle Einträge dessen Feld "Alter" kleiner als 18 ist aus der Datenbank "kunden". |
do_all | ||
Definition:
Beispiele:
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.
|
Sonderzeichen | |||||||||||||
Sonderzeichen ausgebenWas, 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, kennzeichnen. 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:
Angenommen die Variable $test enthält den Text "Hallo", dann wird an dieser Stelle:
ausgegeben. Manchmal hat ein Zeichen ganz unerwartet eine besondere Bedeutung, wie z.B. das Leerzeichen. Bei dem Tag...
...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:
Sonderzeichen umwandeln (Konvertierung)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 ä 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 " 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:
Beispiel:
"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. |
Parameter | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sortieren+Bereich:
Blättern:
Ausgabe:
Abfrage:
|
Zugriffsrechte | |
Es gibt 3 Zugriffsarten, die beliebig kombiniert werden können: Beispiele: |
Datum und Zeit | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AbfrageDie 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:
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...
...oder als Suchabfrage mit Textfeldern:
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:
baseportal ist schlau genug, die verschiedenen Angaben bestmöglich zu erkennen. Hier eine Reihe von Beispielen:
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).
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...
...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:
Abfrage nach dem momentanen Datum Mit dem Wert "jetzt" kann nach dem momentanen Datum abgefragt werden:
Findet alle Einträge mit einem Datum in der Zukunft.
Ausgehend vom momentanen Datum können Sie nach Zeitpunkten in der Vergangenheit oder Zukunft abfragen:
Findet alle Einträge die höchstens 14 Tage alt sind.
Findet alle Einträge die maximal 24 Stunden in der Zukunft liegen. Auch hier erkennt baseportal eine Reihe unterschiedlicher Angaben:
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:
Abfragen nach Datumsteilen Abfragen "in die Mitte" eines Datums sind nicht möglich, da dieses immer von "oben" her bearbeitet wird. Die Reihenfolge ist:
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...
...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 FormateEigenes EingabeformatSie können bei der Definition des Datumfeldes ein eigenes Format beschreiben. Folgende Angaben sind möglich:
Alle anderen Zeichen werden unverändert angezeigt. Das Format...
...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:
Liefert damit alle Einträge mit Geburtstagen im April.
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:
Alle anderen Zeichen werden unverändert angezeigt. Das Format...
...würde beispielsweise zu folgender Ausgabe führen:
Datum schreibenDas Speichern von Datensätzen mit Datum erfolgt ähnlich wie bei der Abfrage. Auch hier können Sie die einzelnen Datumbestandteile der Reihe nach angeben:
Diese Art der Abfrage ist wieder hauptsächlich dafür da, eine Eingabemöglichkeit in einem Formular bereit zu stellen:
Oder Sie geben das Datum auf einmal an:
Um das momentane Datum zu speichern können Sie den besonderen Wert "jetzt" verwenden:
Datum ausgebenSie können die Datumsformate auch bequem im Programmcode nutzen. baseportal stellt Ihnen hierzu die Routine "datum" bereit:
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) oder 3. "jetzt" für den momentanen Zeitpunkt sein. Das Format entspricht der Angabe bei der Definition eines eigenen Ausgabeformates. Die Zeile...
...gibt folgendes aus:
Die (in Deutschland) gebräuchlichsten Formate können Sie über eigene Namen ansprechen:
Auch hier können Sie die Angabe "jetzt" für den momentanen Zeitpunkt verwenden...
...ergibt z.B. folgende Ausgabe:
Ebenso sind die relativen Angaben möglich:
...gibt das Datum in 10 Tagen in der Standard-Form "Tag.Monat.Jahr, Stunde:Minute" aus. |
© 2000 baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen |