Anhang B: Quelltexte
I:\netscape\server\bin\https\lwcomp -v -o linkadmin.web home.html start.html menue.html leer.html themenbaum.html neuthema.html neuquer.html loeschen.html neulink.html verwaltung.html setvalues.js erfolg.html links.html linkloeschen.html aendern.html linkaendern.html linkwaehlen.html stadtneu.html staedteliste.html stadtaendern.html
function setvalues (id, themenname) { var einzug = 0; var sorti = ""; var ueber = ""; while (parseInt(id) != 0) { thema = database.cursor("SELECT tid, refid, name FROM themen WHERE tid=" + id); thema.next(); einzug += 1; sorti = thema.name + " : " + sorti; ueber = "<a href=links.html?id=" + thema.tid + ">" + thema.name + "</a> : " + ueber; id = thema.refid; } request.einzug = einzug; request.sortierung = sorti + themenname; request.ueberschrift = ueber; } function obj_thema(tid, refid, name) { this.tid = tid; this.refid = refid; this.name = name; }
<html> <head> <title>Linkdatenbank - Verwaltung</title> <script language="javascript"><!--// function pruefen(formular) { var tl = parent.rechts.themenliste; var gueltig = false; // *** ist tid eine Zahl? sonst=0! if (isNaN(parseInt(formular.tid.value))) { alert ("Themen-ID ist keine Zahl. Wählen Sie das Thema aus der rechten Liste!"); return false; } else { formular.tid.value=parseInt(formular.tid.value); } // ** ist tid gültige Themen-ID? for (var i=0; i<tl.length; i++) { if (tl[i].tid == formular.tid.value) gueltig = true; } if (!gueltig) { alert("Themen-ID ist ungültig. Wählen Sie das Thema aus der rechten Liste!"); return false; } formular.submit(); return true; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='themenbaum.html?quer=true'"> <p align="center"><font size="4"><b> Name eines Themas oder Querverweises ändern</b></font></p> <form action="erfolg.html" name="aendern"> <input type=hidden name=form value="aendern"> <table border=0> <tr> <td>ID <input type=text name=tid size=5 maxsize=5> Bezeichnung <input type=text name=thema size=30 maxsize=40><p> <font size=-1><i>Wählen Sie das zu ändernde Thema durch Klicken auf das entsprechende Thema im rechten Rahmen und editieren Sie hier die Bezeichnung.</p><p> Vorsicht: Wenn Sie die ID manuell ändern, ändern Sie die Bezeichnung dieses Themas, und nicht mehr die des zuvor gewählten!</p></i></font> </td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Abschicken" onClick="pruefen(this.form)"> <input type=reset value="Zurücksetzen"></td> <td align=right><input type=button value="Abbrechen" onClick="history.back(); history.back()"></td></tr> </table> </form> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> <!--meta http-equiv=refresh content="3; URL=home.html"--> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='leer.html'"> <p align="center"><font size="4"><b> Linkdatenbank - Verwaltung</b></font></p> <SERVER> var nochlinks = false // Flag für Themenlöschung var keinlink = false // Flag für Hyperlinklöschung // *** Projekt-Objekt sperren und DB-Transaktion starten *** project.lock(); database.beginTransaction(); // *** Neues Thema oder neuen Querverweis anlegen *** if (request.form == "neuquer" || request.form == "neuthema") { // Neue Themen-ID ermitteln project.lastTID = parseInt(project.lastTID) + 1; var newTID = parseInt(project.lastTID); // Bei Originalthema qid=tid setzen if (parseInt(request.qid) == 0) request.qid = newTID; database.execute("INSERT INTO themen (tid, refid, qid, name) VALUES (" + newTID + ", " + request.refid +", " + request.qid + ", '" + request.bezeichnung + "')"); // Themen-Felder Ueberschrift, Sortierung und Einzug berechnen setvalues(request.refid, request.bezeichnung); database.execute("UPDATE themen SET ueberschrift='" + request.ueberschrift + "', sortierung='" + request.sortierung + "', einzug=" + request.einzug + " WHERE tid=" + newTID); } // *** Thema oder Querverweis löschen *** if (request.form == "loeschen") { // Feststellen, ob noch Links zu diesem Thema existieren links = database.cursor("SELECT COUNT(*) FROM Links WHERE thema=" + request.tid); links.next(); if (links[0] == 0) database.execute("DELETE FROM themen WHERE tid=" + request.tid); else nochlinks = true; } // *** Bezeichnung eines Themas oder Querverweises ändern *** if (request.form == "aendern") { // *** Bezeichnung ändern database.execute("UPDATE themen SET name='" + request.thema + "' WHERE tid=" + request.tid); // (anschl. muß Themenkatalog aktualisiert werden) } // *** Themen-Felder Ueberschrift, Sortierung und Einzug // FÜR ALLE Themen und Querverweise neu berechnen if (request.form == "aendern" || request.form == "aktualisieren") { // JavaScript-Array mit allen Themen- und Referenz-IDs aus DB erzeugen var i = 0; jsthemen = new Array(); dbthemen = database.cursor("SELECT tid, refid, name FROM themen"); while (dbthemen.next()) { jsthemen[i++] = new obj_thema(dbthemen.tid, dbthemen.refid, dbthemen.name); } // Neuberechnung für alle Themen durchführen for (i in jsthemen) { setvalues(jsthemen[i].refid, jsthemen[i].name); database.execute("UPDATE themen SET ueberschrift='" + request.ueberschrift + "', sortierung='" + request.sortierung + "', einzug=" + request.einzug + " WHERE tid=" + jsthemen[i].tid); if (database.majorErrorCode() != 0) break; } } // *** Neuen Hyperlink anlegen *** if (request.form == "neulink") { // Neue Link-ID ermitteln project.lastHLID = parseInt(project.lastHLID) + 1; var newHLID = parseInt(project.lastHLID); database.execute("INSERT INTO links (hlid,name,url,beschreibung,sprache,stadt,thema) VALUES (" + newHLID + ", '" + request.titel + "', '" + request.url + "', '" + request.beschreibung + "', " + request.sp_add + ", " + request.stadt + ", " + request.tid + ")"); } // *** Hyperlink löschen *** if (request.form == "linkloeschen") { link = database.cursor("SELECT COUNT(*) FROM links WHERE hlid=" + request.hlid); link.next(); if (link[0] > 0) database.execute("DELETE FROM links WHERE hlid=" + request.hlid); else keinlink = true; } // *** Hyperlink ändern *** // Ungültige Hyperlink-ID gewählt? if (request.form == "linkwaehlen") { keinlink = true; } // Änderungen der Hyperlink-Daten in DB schreiben if (request.form == "linkaendern") { database.execute("UPDATE links SET name='" + request.titel + "', url='" + request.url + "', beschreibung='" + request.beschreibung + "', sprache=" + request.sp_add + ", stadt=" + request.stadt + ", thema=" + request.tid + " WHERE hlid=" + request.hlid); } // *** Neue Stadt anlegen *** if (request.form == "stadtneu") { // Neue Stadt-ID ermitteln project.lastSTID = parseInt(project.lastSTID) + 1; var newSTID = parseInt(project.lastSTID); database.execute("INSERT INTO Staedte (stid, land, region, name) VALUES (" + newSTID + ", " + request.land +", " + request.region + ", '" + request.sname + "')"); } // *** Stadt ändern *** if (request.form == "stadtaendern") { if (request.region == "") { // Stadt löschen database.execute("DELETE FROM staedte WHERE stid=" + request.stid); } else { // Stadt ändern database.execute("UPDATE staedte SET land=" + request.land + ", region=" + request.region + ", name='" + request.sname + "' WHERE stid=" + request.stid); } } // *** Datenbankmeldung auswerten if (database.majorErrorCode() == 0) { // DB-Aktion erfolgreich // Versuch, Thema mit noch vorhandenen Links zu löschen ? if (nochlinks) { write('<font size=4><p align=center>Ihr Auftrag konnte nicht durchgeführt werden!</p>\n<p align=center><b>Es existieren noch Linkeinträge unter dem Thema, das Sie löschen wollen.</b></p>\n<p align=center>Sie müssen erst alle diese Einträge löschen, bevor Sie das Thema löschen können.</p>'); } if (keinlink) { write('<font size=4><p align=center>Ihr Auftrag konnte nicht durchgeführt werden!</p>\n<p align=center><b>Die angegebene ID des Hyperlinkeintrages ist ungültig</b></p>\n<p align=center>Wählen Sie den Hyperlink aus der rechten Liste!</p>'); } if (!nochlinks && !keinlink) { // Erfolgsmeldung ausgeben write('<p align=center><font size=4>Ihr Auftrag wurde erfolgreich durchgeführt!</font></p>'); // Transaktion abschließen database.commitTransaction(); } } else { // DB meldet Fehler // Fehlermeldung des DB-Servers ausgeben write('<font size=4><p align=center>Ihr Auftrag konnte nicht durchgeführt werden!</p>\n<p align=center>Die Datenbank meldet folgenden Fehler:</p>\n<b><p align=center>'); write(database.majorErrorMessage()); write('</p>\n<p align=center>'); write(database.minorErrorMessage()); write('</p></b></font>\n'); // Transaktion rückgängig machen database.rollbackTransaction(); } // *** Projekt-Objekt wieder freigeben *** project.unlock(); </SERVER> <center> <table width=300 border=0 cellpadding=10> <tr> <td width=50% align=center> <form> <b><input type=button value="Auswahlmenü" onClick="top.location='home.html'"></b> </form> <td> <td width=50% align=center> <form> <b><input type=button value="Zurück" onClick="history.back();history.back();"></b> </form> <td> </tr> </table> </center> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> <server> if(!database.connected()) redirect("start.html"); </server> </head> <FRAMESET cols="55,50%,*"> <FRAME src="verwaltung.html" name="app" noresize scrolling="no" marginwidth="0" marginheight="0"> <FRAME src="menue.html" name="links"> <FRAME src="leer.html" name="rechts"> </FRAMESET> <NOFRAMES> <body bgcolor="#0C0D0D" text="#FFFFFF" link="#7a7a7a" vlink="#555555"> <font size=+2><b> <P align=center> This web page uses frames, but your browser doesn't support them.<br> Diese Website benutzt Frames, aber Ihr Browser unterstützt keine Frames. </P> </BODY> </NOFRAMES> </html>
<html> <head> <title> </title> </head> <body bgcolor="#FFFFFF"> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> <SERVER> // Hyperlink-Daten selektieren link = database.cursor("SELECT links.*, themen.name AS themenname FROM links, themen WHERE links.thema=themen.tid AND links.hlid=" + request.hlid); if (!link.next()) redirect("erfolg.html?form=linkwaehlen"); // Staedte selektieren staedte = database.cursor("SELECT laender.lkz, staedte.stid, staedte.region, staedte.name FROM laender, staedte WHERE laender.lid = staedte.land ORDER BY laender.lid, staedte.name, staedte.region"); </SERVER> <script language="javascript"><!--// // *** Überprüfen der Formulareingaben function pruefen(formular) { var tl = parent.rechts.themenliste; // *** Titel und URL nicht leer? if (formular.titel.value == "" || formular.url.value == "") { alert("Titel und URL dürfen nicht leer sein!"); return false; } // *** Beschreibung nicht länger als 250 Zeichen? if (formular.beschreibung.length > 250) { alert("Die Beschreibung kann maximal 250 Zeichen lang sein!"); return false; } // *** sp_add berechnen: mind. eine Sprache muß gewählt werden if (formular.sprache[0].checked) formular.sp_add.value = 1; if (formular.sprache[1].checked) formular.sp_add.value = 2 + parseInt(formular.sp_add.value); if (formular.sprache[2].checked) formular.sp_add.value = 4 + parseInt(formular.sp_add.value); if (0 == formular.sp_add.value) { alert("Sie müssen mindestens eine Sprache angeben!"); return false; } // *** ist tid eine Zahl? sonst=0! if (isNaN(parseInt(formular.tid.value))) { alert ("Themen-ID ist keine Zahl. Wählen Sie das Thema aus der rechten Liste!"); return false; } else { formular.tid.value=parseInt(formular.tid.value); } // *** ist tid gültige Themen-ID? for (var i=0; i<tl.length; i++) if (tl[i].tid == formular.tid.value) { formular.submit(); return true; } alert("Themen-ID ist ungültig. Wählen Sie das Thema aus der rechten Liste!"); return false; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='themenbaum.html?quer=false'"> <p align="center"><font size="4"><b> Hyperlink ändern</b></font></p> <form action="erfolg.html" name="linkaendern"> <input type=hidden name=form value="linkaendern"> <input type=hidden name=hlid value=`link.hlid`> <table border=0> <tr> <td><b>Titel</b></td> <td><input type=text name=titel value=`link.name` size=40 maxsize=80></td></tr> <tr> <td valign=baseline><b>URL</b></td> <td><input type=text name=url value=`link.url` size=40 maxsize=100></td></tr> <tr> <td colspan=2><b>Beschreibung</b><br> <textarea name=beschreibung rows=3 cols=50 wrap><SERVER>write(link.beschreibung)</SERVER></textarea></td></tr> <tr> <td valign=top><b>Sprache</b></td> <td> <SERVER> if (link.sprache==1 || link.sprache==3 || link.sprache==5 || link.sprache==7) write('<input type=checkbox name=sprache value=1 checked>deutsch '); else write('<input type=checkbox name=sprache value=1>deutsch '); if (link.sprache==2 || link.sprache==3 || link.sprache==6 || link.sprache==7) write('<input type=checkbox name=sprache value=2 checked>englisch '); else write('<input type=checkbox name=sprache value=2>englisch '); if (link.sprache==4 || link.sprache==5 || link.sprache==6 || link.sprache==7) write('<input type=checkbox name=sprache value=4 checked>sonstiges'); else write('<input type=checkbox name=sprache value=4>sonstiges'); </SERVER> <input type=hidden name=sp_add value=0></td></tr> <tr> <td valign=top><b>Stadt</b></td> <td><select name=stadt> <SERVER> while (staedte.next()) { write("<option value=", staedte.stid); if (staedte.stid == parseInt(link.stadt)) write(" selected"); write(">", staedte.lkz, " ", staedte.name, " (", staedte.region, ")\n"); } </SERVER> </select><br> <font size=-1><i>Land, Stadt, Region<br> (Für Deutschland: Region = erste zwei Ziffern der Postleitzahl) </i></font></td></tr> <tr> <td valign=baseline><b>Thema</b></td> <td>ID <input type=text name=tid value=`link.thema` size=5 maxsize=5> Bezeichnung <input type=text name=thema value=`link.themenname` size=30 maxsize=40><br> <font size=-1><i>Wählen Sie das Thema für diesen Neueintrag durch Klicken auf das entsprechende Thema im rechten Rahmen!<br> Die Bezeichnung ist nur zur Information. Einzig die ID ist relevant.</i></font> </td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Abschicken" onClick="pruefen(this.form)"> <input type=reset value="Zurücksetzen"></td> <td align=right><input type=button value="Abbrechen" onClick="top.location='home.html'"></td></tr> </table> </form> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> <script language="javascript"><!--// function pruefen(formular) { // *** ist hlid eine Zahl? sonst=0! if (isNaN(parseInt(formular.hlid.value))) { alert ("Hyperlink-ID ist keine Zahl. Wählen Sie den Hyperlink aus der rechten Liste!"); return false; } else { formular.hlid.value=parseInt(formular.hlid.value); } formular.submit(); return true; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='links.html?id=0'"> <p align="center"><font size="4"><b> Hyperlink löschen</b></font></p> <form action="erfolg.html" name="linkloeschen"> <input type=hidden name=form value="linkloeschen"> <table border=0> <tr> <td>ID <input type=text name=hlid size=5 maxsize=5> Titel <input type=text name=titel size=40 maxsize=80> <p><font size=-1><i>Wählen Sie den zu löschenden Linkeintrag durch Klicken auf den entsprechenden Eintrag im rechten Rahmen unterhalb der horizontalen Linie. Sie können dabei mit Hilfe der Themeneinträge oberhalb der horizontalen Linie wie ein Benutzer der Linkdatenbank durch den Themenkatalog navigieren.</p><p> Der Titel ist nur zur Information. Einzig die ID ist relevant.</i></font></p> </td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Abschicken" onClick="pruefen(this.form)"> <input type=reset value="Zurücksetzen"></td> <td align=right><input type=button value="Abbrechen" onClick="top.location='home.html'"></td></tr> </table> </form> </body> </html>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Linkdatenbank - Verwaltung</title> <server> // Überschrift selektieren ueberschrift = database.cursor("SELECT name, ueberschrift FROM themen WHERE tid=" + request.id); // Unterthemen selektieren themen = database.cursor("SELECT qid, name FROM themen WHERE refid=" + request.id + " ORDER BY name"); // Links zu diesem Thema selektieren links = database.cursor("SELECT hlid, url, name, beschreibung FROM links WHERE thema=" + request.id + " ORDER BY name"); </server> </head> <BODY BGCOLOR="#FFFFFF" LINK="#0000FF" ALINK="#FF0000"> <p align="center"><font size="4"><b> Hyperlink auswählen</b></font></p> <p><b><a href="links.html?id=0">Homepage</a> : <SERVER> ueberschrift.next(); if (ueberschrift.ueberschrift != null) write(ueberschrift.ueberschrift, " "); write(ueberschrift.name); ueberschrift.close(); </SERVER></b></p> <table border=0 cellpadding=10><tr><td valign="top" width="50%"><ul> <SERVER> while (themen.next()) write("<li> <a href=links.html?id=", themen.qid, ">", themen.name, "</a>\n"); </SERVER> </ul></td></tr></table> <hr> <table border=0 cellpadding=10><tr><td> <ul> <SERVER> while (links.next()) { write('<li> <a href="javascript:parent.app.insertThema(' + links.hlid + ',\'' + escape(links.name) + '\')">', links.name, '</a><br>\n'); if (links.beschreibung != null) write('<font size=2>', links.beschreibung, '</font>\n'); } links.close(); </SERVER> </ul> </td></tr></table> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> <script language="javascript"><!--// function pruefen(formular) { // *** ist hlid eine Zahl? sonst=0! if (isNaN(parseInt(formular.hlid.value))) { alert ("Hyperlink-ID ist keine Zahl. Wählen Sie den Hyperlink aus der rechten Liste!"); return false; } else { formular.hlid.value=parseInt(formular.hlid.value); } formular.submit(); return true; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='links.html?id=0'"> <p align="center"><font size="4"><b> Zu ändernden Hyperlink auswählen</b></font></p> <form action="linkaendern.html" target="links" name="linkwaehlen"> <table border=0> <tr> <td>ID <input type=text name=hlid size=5 maxsize=5> Titel <input type=text name=titel size=40 maxsize=80> <p><font size=-1><i>Wählen Sie zunächst den zu ändernden Linkeintrag durch Klicken auf den entsprechenden Eintrag im rechten Rahmen unterhalb der horizontalen Linie. Sie können dabei mit Hilfe der Themeneinträge oberhalb der horizontalen Linie wie ein Benutzer der Linkdatenbank durch den Themenkatalog navigieren.</p><p> Wenn Sie den zu ändernden Hyperlink ausgewählt haben, betätigen Sie den "Weiter"-Button, um zum Editierformular zu gelangen.</p><p> Der Titel dient hier nur zur Information. Einzig die ID ist für die Auswahl des Hyperlinks relevant.</i></font></p> </td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Weiter" onClick="pruefen(this.form)"> <input type=reset value="Zurücksetzen"></td> <td align=right><input type=button value="Abbrechen" onClick="top.location='home.html'"></td></tr> </table> </form> </body> </html>
<html> <head> <title>Linkdatenbank - Themenliste</title> <script language="javascript"><!--// function pruefen(formular) { var tl = parent.rechts.themenliste; var gueltig = false; // *** ist tid eine Zahl? sonst=0! if (isNaN(parseInt(formular.tid.value))) { alert ("Themen-ID ist keine Zahl. Wählen Sie das Thema aus der rechten Liste!"); return false; } else { formular.tid.value=parseInt(formular.tid.value); } // *** kann dieses Thema gelöscht werden? for (var i=0; i<tl.length; i++) { // ** ist tid gültige Themen-ID? if (tl[i].tid == formular.tid.value) gueltig = true; // ** gibt es noch Unterthemen bzw. -Querverweise? if (tl[i].refid == formular.tid.value) { alert("Das Thema kann nicht gelöscht werden. Es existieren noch Unterthemen und/oder untergeordnete Querverweise. Löschen Sie diese erst!"); return false; } } if (!gueltig) { alert("Themen-ID ist ungültig. Wählen Sie das Thema aus der rechten Liste!"); return false; } formular.submit(); return true; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='themenbaum.html?quer=true'"> <p align="center"><font size="4"><b> Thema oder Querverweis löschen</b></font></p> <form action="erfolg.html" name=loeschen> <input type=hidden name=form value="loeschen"> <table border=0> <tr> <td>ID <input type=text name=tid size=5 maxsize=5> Bezeichnung <input type=text name=thema size=30 maxsize=40> <font size=-1><i><p>Wählen Sie das zu löschende Thema durch Klicken auf das entsprechende Thema im rechten Rahmen!</p><p> Die Bezeichnung ist nur zur Information. Einzig die ID ist relevant.</p></i></font> </td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Abschicken" onClick="pruefen(this.form)"> <input type=reset value="Zurücksetzen"></td> <td align=right><input type=button value="Abbrechen" onClick="history.back(); history.back()"></td></tr> </table> </form> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> </head> <body bgcolor="#FFFFFF"> <p align="center"><font size="4"><b> <font size="5">L</font>INKDATENBANK - <font size="5">V</font>ERWALTUNG</b></font></p> <center> <table border=0><tr><td> <p><b>Themenkatalog pflegen:</b></p> <ul><li> <a href="neuthema.html">Neues Thema anlegen</a></ul> <ul><li> <a href="neuquer.html">Neuen Querverweis anlegen</a></ul> <ul><li> <a href="loeschen.html">Thema oder Querverweis löschen</a></ul> <ul><li> <a href="aendern.html">Name eines Themas oder Querverweises ändern</a></ul> <ul><li> <a href="erfolg.html?form=aktualisieren">Themenkatalog aktualisieren</a></ul> <p><b>Hyperlinks pflegen:</b></p> <ul><li> <a href="neulink.html">Neuen Hyperlink anlegen</a></ul> <ul><li> <a href="linkloeschen.html">Hyperlink löschen</a></ul> <ul><li> <a href="linkwaehlen.html">Hyperlink ändern</a></ul> <p><b>Städte pflegen:</b></p> <ul><li> <a href="stadtneu.html">Neue Stadt anlegen</a></ul> <ul><li> <a href="stadtaendern.html">Stadt ändern / löschen</a></ul> </td></tr></table> </center> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> <SERVER> staedte = database.cursor("SELECT laender.lkz, staedte.stid, staedte.region, staedte.name FROM laender, staedte WHERE laender.lid = staedte.land ORDER BY laender.lid, staedte.name, staedte.region"); </SERVER> <script language="javascript"><!--// // *** Überprüfen der Formulareingaben function pruefen(formular) { var tl = parent.rechts.themenliste; // *** Titel und URL nicht leer? if (formular.titel.value == "" || formular.url.value == "") { alert("Titel und URL dürfen nicht leer sein!"); return false; } // *** Beschreibung nicht länger als 250 Zeichen? if (formular.beschreibung.length > 250) { alert("Die Beschreibung kann maximal 250 Zeichen lang sein!"); return false; } // *** sp_add berechnen: mind. eine Sprache muß gewählt werden if (formular.sprache[0].checked) formular.sp_add.value = 1; if (formular.sprache[1].checked) formular.sp_add.value = 2 + parseInt(formular.sp_add.value); if (formular.sprache[2].checked) formular.sp_add.value = 4 + parseInt(formular.sp_add.value); if (0 == formular.sp_add.value) { alert("Sie müssen mindestens eine Sprache angeben!"); return false; } // *** ist tid eine Zahl? sonst=0! if (isNaN(parseInt(formular.tid.value))) { alert ("Themen-ID ist keine Zahl. Wählen Sie das Thema aus der rechten Liste!"); return false; } else { formular.tid.value=parseInt(formular.tid.value); } // *** ist tid gültige Themen-ID? for (var i=0; i<tl.length; i++) if (tl[i].tid == formular.tid.value) { formular.submit(); return true; } alert("Themen-ID ist ungültig. Wählen Sie das Thema aus der rechten Liste!"); return false; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='themenbaum.html?quer=false'"> <p align="center"><font size="4"><b> Neuen Hyperlink anlegen</b></font></p> <form action="erfolg.html" name=neulink> <input type=hidden name=form value="neulink"> <input type=hidden name=qid value="0"> <table border=0> <tr> <td><b>Titel</b></td> <td><input type=text name=titel size=40 maxsize=80></td></tr> <tr> <td valign=baseline><b>URL</b></td> <td><input type=text name=url value="http://" size=40 maxsize=100></td></tr> <tr> <td colspan=2><b>Beschreibung</b><br> <textarea name=beschreibung rows=3 cols=50 wrap></textarea></td></tr> <tr> <td valign=top><b>Sprache</b></td> <td><input type=checkbox name=sprache value=1 checked>deutsch <input type=checkbox name=sprache value=2>englisch <input type=checkbox name=sprache value=4>sonstiges <input type=hidden name=sp_add value=0></td></tr> <tr> <td valign=top><b>Stadt</b></td> <td><select name=stadt> <SERVER> while (staedte.next()) write("<option value=" + staedte.stid + ">" + staedte.lkz + " " + staedte.name + " (" + staedte.region + ")\n"); </SERVER> </select><br> <font size=-1><i>Land, Stadt, Region<br> (Für Deutschland: Region = erste zwei Ziffern der Postleitzahl) </i></font></td></tr> <tr> <td valign=baseline><b>Thema</b></td> <td>ID <input type=text name=tid size=5 maxsize=5> Bezeichnung <input type=text name=thema size=30 maxsize=40><br> <font size=-1><i>Wählen Sie das Thema für diesen Neueintrag durch Klicken auf das entsprechende Thema im rechten Rahmen!<br> Die Bezeichnung ist nur zur Information. Einzig die ID ist relevant.</i></font> </td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Abschicken" onClick="pruefen(this.form)"> <input type=reset value="Zurücksetzen"></td> <td align=right><input type=button value="Abbrechen" onClick="history.back(); history.back()"></td></tr> </table> </form> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> <script language="javascript"><!--// function pruefen(formular) { var refid_ok = false; var qid_ok = false; var tl = parent.rechts.themenliste; var bez = formular.bezeichnung.value; // *** Bezeichnung nicht leer? if (bez == "") { alert("Die Bezeichnung des Querverweises darf nicht leer sein!"); return false; } // *** Klammeraffen @ anhängen, falls nicht vom Benutzer geschehen if (bez.substring(bez.length-1, bez.length) != '@') formular.bezeichnung.value += '@'; // *** sind refid und qid Zahlen? sonst=0! if (isNaN(parseInt(formular.refid.value))) { alert ("Oberthemen-ID ist keine Zahl. Wählen Sie das Oberthema aus der rechten Liste!"); return false; } else { formular.refid.value = parseInt(formular.refid.value); } if (isNaN(parseInt(formular.qid.value))) { alert ("Originalthemen-ID ist keine Zahl. Wählen Sie das Originalthema aus der rechten Liste!"); return false; } else { formular.qid.value=parseInt(formular.qid.value); } // *** refid und qid gültige Themen-IDs? for (var i=0; i<tl.length; i++) { if (tl[i].tid == formular.refid.value) refid_ok = true; if (tl[i].tid == formular.qid.value) qid_ok = true; } if (!refid_ok) { alert("Oberthemen-ID ungültig. Wählen Sie das Oberthema aus der rechten Liste!"); return false; } if (!qid_ok) { alert("Originalthemen-ID ungültig. Wählen Sie das Originalthema aus der rechten Liste!"); return false; } // *** alles ok, Formular abschicken! formular.submit(); return true; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='themenbaum.html?quer=false'"> <p align="center"><font size="4"><b> Neuen Querverweis anlegen</b></font></p> <form action="erfolg.html" name="neuquer"> <input type=hidden name=form value="neuquer"> <table border=0 cellpadding=3> <tr> <td><b>Bezeichnung</b></td> <td><input type=text name=bezeichnung size=40 maxsize=40><br> <font size=-1><i>Der Klammeraffe @ wird automatisch angefügt.</i></font></td></tr> <tr> <td colspan=2> </td></tr> <tr> <td valign=baseline><b>Oberthema des<br>Querverweises</b></td> <td><input type=radio name=wo value=refid checked> ID <input type=text name=refid size=4 maxsize=5 onFocus="this.form.wo[0].checked=true"> Bez. <input type=text name=oberthema size=25 maxsize=40 onFocus="this.form.wo[0].checked=true"></td></tr> <tr> <td colspan=2> </td></tr> <tr> <td valign=baseline><b>Originalthema<br>bzw. Ziel des<br>Querverweises</b></td> <td><input type=radio name=wo value=qid> ID <input type=text name=qid size=4 maxsize=5 onFocus="this.form.wo[1].checked=true"> Bez. <input type=text name=originalthema size=25 maxsize=40 onFocus="this.form.wo[1].checked=true"></td></tr> <tr> <td></td> <td><font size=-1><i><p>Wählen Sie Oberthema und Originalthema, indem Sie zunächst den Radiobutton des entsprechenden ID-Feldes anklicken und anschließend das Thema im rechten Rahmen auswählen!</p><p> Die Bezeichnungen von Oberthema und Originalthema sind nur zur Information. Einzig die IDs sind relevant.</p></i></font> </td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Abschicken" onClick="pruefen(this.form)"> <input type=reset value="Zurücksetzen"></td> <td align=right><input type=button value="Abbrechen" onClick="history.back(); history.back()"></td></tr> </table> </form> </body> </html>
<html> <head> <title>Linkdatenbank - Themenliste</title> <script language="javascript"><!--// function pruefen(formular) { var tl = parent.rechts.themenliste; var bez = formular.bezeichnung.value; // *** Bezeichnung nicht leer? if (bez == "") { alert("Die Bezeichnung des Themas darf nicht leer sein!"); return false; } // *** Bezeichnung darf nicht mit Klammeraffe @ enden, // um Verwechslung mit Querverweis zu vermeiden if (bez.substring(bez.length-1, bez.length) == '@') { alert("Die Bezeichnung darf nicht mit einem Klammeraffen @ enden, um Verwechslungen mit Querverweisen zu vermeiden!"); return false; } // *** ist refid eine Zahl? sonst=0! if (isNaN(parseInt(formular.refid.value))) { alert ("Oberthemen-ID ist keine Zahl. Wählen Sie das Oberthema aus der rechten Liste!"); return false; } else { formular.refid.value=parseInt(formular.refid.value); } // *** ist refid gültige Themen-ID? for (var i=0; i<tl.length; i++) if (tl[i].tid == formular.refid.value) { formular.submit(); return true; } alert("Oberthemen-ID ist ungültig. Wählen Sie das Oberthema aus der rechten Liste!"); return false; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='themenbaum.html?quer=false'"> <p align="center"><font size="4"><b> Neues Thema anlegen</b></font></p> <form action="erfolg.html" name=neuthema> <input type=hidden name=form value="neuthema"> <input type=hidden name=qid value="0"> <table border=0> <tr> <td><b>Bezeichnung</b></td> <td><input type=text name=bezeichnung size=40 maxsize=40></td></tr> <tr> <td valign=baseline><b>Oberthema</b></td> <td>ID <input type=text name=refid size=5 maxsize=5> Bezeichnung <input type=text name=oberthema size=30 maxsize=40> <font size=-1><i><p>Wählen Sie das Oberthema für diesen Neueintrag durch Klicken auf das entsprechende Thema im rechten Rahmen!</p><p> Die Bezeichnung ist nur zur Information. Einzig die ID ist relevant.</p></i></font> </td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Abschicken" onClick="pruefen(this.form)"> <input type=reset value="Zurücksetzen"></td> <td align=right><input type=button value="Abbrechen" onClick="history.back(); history.back()"></td></tr> </table> </form> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> <script language="javascript"><!--// function loeschen(formular) { // Region leer = Flag, daß gelöscht wird formular.region.value=""; formular.submit(); return true; } function pruefen(formular) { var i = 0; var sl = parent.rechts.staedteliste; var land = parseInt(formular.land.options[formular.land.selectedIndex].value); var name = formular.sname.value; var upname1 = ""; var upname2 = ""; var region = parseInt(formular.region.value); formular.region.value = region; // *** Stadtname nicht leer? if (name == "") { alert("Der Name der Stadt darf nicht leer sein!"); return false; } // *** Falls Land == Deutschland, muß ( 0 < region < 100 ) gelten! if (region <= 0 || region > 99 || isNaN(region)) { alert("Die PLZ-Region für deutsche Städte muß zwischen 01 und 99 liegen (die ersten zwei Ziffern der Postleitzahl)!"); return false; } // *** Doubletten-Test upname1 = name.toUpperCase(); for (i in sl) { upname2 = sl[i].name.toUpperCase(); if (land == parseInt(sl[i].land) && region == parseInt(sl[i].region) && (upname1.indexOf(upname2) > -1 || upname2.indexOf(upname1) > -1)) { alert("Stadt existiert bereits: " + sl[i].lkz + " - " + sl[i].name + " (" + sl[i].region + ")"); return false; } } formular.submit(); return true; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='staedteliste.html?link=true'"> <p align="center"><font size="4"><b> Stadt ändern / löschen</b></font></p> <form action="erfolg.html" name="stadtaendern"> <input type=hidden name=form value="stadtaendern"> <input type=hidden name=stid value=""> <table border=0> <tr> <td valign=baseline><b>Land</b></td> <td><select name=land> <SERVER> laender = database.cursor("SELECT * FROM laender"); while (laender.next()) write("<option value=", laender.lid, ">", laender.land, "\n"); </SERVER> </select></td></tr> <tr> <td valign=baseline><b>PLZ-Region</b></td> <td><input type=text name=region size=6 maxsize=6><br> <font size=-1><i>Für deutsche Städte werden nur die ersten zwei Ziffern der Postleitzahl ausgewertet! Sonst vollständige PLZ angeben oder Feld frei lassen.</i></font></td></tr> <tr> <td valign=baseline><b>Name</b></td> <td><input type=text name="sname" size=30 maxsize=30><br> <font size=-1><i>Bitte prüfen Sie vor einem Neueintrag einer Stadt in der rechten Liste, ob sie nicht schon vorhanden ist. </i></font></td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Ändern" onClick="pruefen(this.form)"> <input type=button value="Löschen" onClick="loeschen(this.form)"> <input type=reset value="Zurücksetzen"><br> </td> <td align=right valign=top><input type=button value="Abbrechen" onClick="history.back(); history.back()"></td></tr> </table> </form> </body> </html>
<html> <head> <title>Linkdatenbank - Themenliste</title> <script language="javascript"><!--// function pruefen(formular) { var i = 0; var sl = parent.rechts.staedteliste; var land = parseInt(formular.land.options[formular.land.selectedIndex].value); var name = formular.sname.value; var upname1 = ""; var upname2 = ""; var region = parseInt(formular.region.value); if (isNaN(region)) formular.region.value = 0; else formular.region.value = region; // *** Stadtname nicht leer? if (name == "") { alert("Der Name der Stadt darf nicht leer sein!"); return false; } // *** Falls Land == Deutschland, muß ( 0 < region < 100 ) gelten! if (land == 1 && (region <= 0 || region > 99 || isNaN(region))) { alert("Die PLZ-Region für deutsche Städte muß zwischen 01 und 99 liegen (die ersten zwei Ziffern der Postleitzahl)!"); return false; } // *** Doubletten-Test upname1 = name.toUpperCase(); for (i in sl) { upname2 = sl[i].name.toUpperCase(); if (land == parseInt(sl[i].land) && region == parseInt(sl[i].region) && (upname1.indexOf(upname2) > -1 || upname2.indexOf(upname1) > -1)) { alert("Stadt existiert bereits: " + sl[i].lkz + " - " + sl[i].name + " (" + sl[i].region + ")"); return false; } } formular.submit(); return true; } //--></script> </head> <body bgcolor="#FFFFFF" onLoad="parent.rechts.location='staedteliste.html?link=false'"> <p align="center"><font size="4"><b> Neue Stadt anlegen</b></font></p> <form action="erfolg.html" name="stadtneu"> <input type=hidden name=form value="stadtneu"> <table border=0> <tr> <td valign=baseline><b>Land</b></td> <td><select name=land> <SERVER> laender = database.cursor("SELECT * FROM laender"); while (laender.next()) write("<option value=", laender.lid, ">", laender.land, "\n"); </SERVER> </select></td></tr> <tr> <td valign=baseline><b>PLZ-Region</b></td> <td><input type=text name=region size=6 maxsize=6><br> <font size=-1><i>Für deutsche Städte werden nur die ersten zwei Ziffern der Postleitzahl ausgewertet! Sonst vollständige PLZ angeben oder Feld frei lassen.</i></font></td></tr> <tr> <td valign=baseline><b>Name</b></td> <td><input type=text name="sname" size=30 maxsize=30><br> <font size=-1><i>Bitte prüfen Sie vor einem Neueintrag einer Stadt in der rechten Liste, ob sie nicht schon vorhanden ist. </i></font></td></tr> </table> <br><br> <table border=0 cellpadding=3 width=100%> <tr> <td><input type=button value="Abschicken" onClick="pruefen(this.form)"> <input type=reset value="Zurücksetzen"></td> <td align=right><input type=button value="Abbrechen" onClick="history.back(); history.back()"></td></tr> </table> </form> </body> </html>
<html> <head> <title>Linkdatenbank - Staedteliste</title> <SERVER> // Erstellung eines Clientside JavaScriptes mit einem Staedte-Array // zur Eingabevalidierung (gültige ID, vorhandener Link bei Löschung) staedte = database.cursor("SELECT DISTINCT staedte.*, laender.lkz FROM staedte, laender WHERE staedte.land=laender.lid ORDER BY staedte.land, staedte.name, staedte.region"); var i = 0; write('<script language="javascript"><!--\n'); write('staedteliste = new Array();\n'); write('function stadt(stid, land, region, name, lkz) {\n'); write(' this.stid = stid;\n'); write(' this.land = land;\n'); write(' this.region = region;\n'); write(' this.name = name;\n'); write(' this.lkz = lkz;\n}\n'); while (staedte.next()) write("staedteliste[", (i++), "] = new stadt(", staedte.stid + ", " + staedte.land + ", " + staedte.region + ", '" + staedte.name + "', '" + staedte.lkz + "');\n"); write('//--></script>\n'); // Thementabelle für Darstellung des Themenbaumes auslesen // themen = database.cursor("SELECT DISTINCT tid,qid,name,einzug,sortierung FROM themen ORDER BY sortierung"); </SERVER> </head> <body bgcolor="#FFFFFF"> <p align="center"><font size="4"><b>Städteliste</b></font></p> <ul> <SERVER> write('<script language="javascript"><!--\n'); write('var i = 0;\n'); write('var link = ', request.link.toLowerCase(), ';\n'); </SERVER> if (link) { for (i in staedteliste) { document.write('<li> <a href="javascript:parent.app.insertStadt(' + staedteliste[i].stid + ', ' + staedteliste[i].land + ', ' + staedteliste[i].region + ', \'', escape(staedteliste[i].name), '\')">', staedteliste[i].lkz, ' - ', staedteliste[i].name, ' (', staedteliste[i].region, ')</a>\n'); } } else { for (i in staedteliste) { document.write('<li> ', staedteliste[i].lkz, ' - ', staedteliste[i].name, ' (', staedteliste[i].region, ')\n'); } } //--></script> </ul> </body> </html>
<html> <head> <title> Start Linkdb-Administration </title> </head> <body> <server> if (!database.connected()) database.connect("ORACLE","","linkdb","dito","wgs_pc-ibe-inet-srv_ORCL"); if (!database.connected()) write("Fehler: Datenbank kann nicht konnektiert werden.") else { // Projekt-Objekt für exklusiven Schreibzugriff sperren project.lock() // Die höchsten IDs für Neueinträge ermitteln project.lastHLID = 0; project.lastTID = 0; project.lastSTID = 0; maxHLID = database.cursor("SELECT MAX(hlid) FROM links"); maxTID = database.cursor("SELECT MAX(tid) FROM themen"); maxSTID = database.cursor("SELECT MAX(stid) FROM staedte"); maxHLID.next(); maxTID.next(); maxSTID.next(); project.lastHLID = maxHLID[0]; project.lastTID = maxTID[0]; project.lastSTID = maxSTID[0]; maxHLID.close(); maxTID.close(); maxSTID.close(); // Projekt-Objekt wieder freigeben project.unlock() // Homepage anzeigen redirect("home.html") } </server> </body> </html>
<html> <head> <title>Linkdatenbank - Themenbaum</title> <SERVER> // Request-Variable (String) als Boolean auswerten if (request.quer.toUpperCase() == "TRUE") quer = true; else quer = false; // Erstellung eines Clientside JavaScriptes mit einem Themen-Array // zur Eingabevalidierung (gültige ID, Unterthema bei Löschung) if (quer) themenids = database.cursor("SELECT DISTINCT tid, refid FROM themen"); else themenids = database.cursor("SELECT DISTINCT tid, refid FROM themen WHERE qid=tid"); var i = 0; write('<script language="javascript"><!--\n'); write('themenliste = new Array();\n'); write('function thema(tid, refid) {\n'); write(' this.tid = tid;\n'); write(' this.refid = refid;\n}\n'); while (themenids.next()) write("themenliste[" + (i++) +"] = new thema(" + themenids[0] + ", " + themenids[1] + ");\n"); write('//--></script>\n'); // Thementabelle für Darstellung des Themenbaumes auslesen themen = database.cursor("SELECT DISTINCT tid,qid,name,einzug,sortierung FROM themen ORDER BY sortierung"); </SERVER> </head> <body bgcolor="#FFFFFF"> <p align="center"><font size="4"><b>Thema auswählen</b></font></p> <pre> <SERVER> while (themen.next()) { for (var j = 0; j < themen.einzug; j++) write(' '); if (themen.tid != themen.qid && !quer) write(themen.name + '\n'); else write('<a href="javascript:parent.app.insertThema(' + themen.tid + ',\'' + escape(themen.name) + '\')">' + themen.name + '</a>\n'); } </SERVER> </pre> </body> </html>
<html> <head> <title>Linkdatenbank - Verwaltung</title> <script language="javascript"><!--// // Korrigiert eingebaute JavaScript-Funktion unescape // (Rückwandlung von + nach Leerzeichen) function UNescape(escstring) { var i = 0; while ((i=escstring.indexOf("+")) != -1) { a = escstring.substring(0, i); b = escstring.substring(i+1, escstring.length); escstring = "" + a + " " + b; } return(unescape(escstring)); } // Fügt aus rechtem Rahmen gewähltes Thema oder gewählten Link in linkes Formular ein function insertThema(id, thema) { thema = UNescape(thema); var formular = parent.links.document.forms[0]; if (formular.name == 'neuthema') { formular.refid.value = id; formular.oberthema.value = thema; } if (formular.name == 'neuquer') { if (formular.wo[0].checked) { formular.refid.value = id; formular.oberthema.value = thema; } else { formular.qid.value = id; formular.originalthema.value = thema; } } if (formular.name == 'loeschen' || formular.name == 'neulink' || formular.name == 'aendern' || formular.name == 'linkaendern') { formular.tid.value = id; formular.thema.value = thema; } if (formular.name == 'linkloeschen' || formular.name == 'linkwaehlen') { formular.hlid.value = id; formular.titel.value = thema; } } // Fügt aus rechtem Rahmen gewählte Stadt in linkes Formular ein function insertStadt(stid, land, region, name) { name = UNescape(name); var formular = parent.links.document.forms[0]; var i = 0; formular.stid.value = stid; formular.region.value = region; formular.sname.value = name; for (i=0; i<formular.land.length; i++) { if (formular.land.options[i].value == land) { formular.land.selectedIndex = i; break; } } } //--></script> </head> <body bgcolor="#8C0042" text="#FFFFFF"> <table border=0 width=100% height=98% cellspacing=0 cellpadding=0> <tr> <td align=center valign=top> <font size="5"><b> <br>V<br>E<br>R<br>W<br>A<br>L<br>T<br>U<br>N<br>G<br> </b></font> </td> </tr> <tr> <td align=center valign=bottom> <a href="home.html" target="_top"> <img src="home.gif" border=0 hspace=0></a> </td> </tr> </table> </body> </html>