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>