First Commit Version of 2025-07-20

This commit is contained in:
rxf
2025-07-20 18:45:11 +02:00
commit 1ee33d58d0
2129 changed files with 511202 additions and 0 deletions

13
.gitignore vendored Normal file
View File

@@ -0,0 +1,13 @@
MYSQL
.env
.DS_Store
sternwarte/DBASE_SAVE
bilder
node_modules
vendor
.idea
video
download
*.log
webseiten

42
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,42 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch built-in server and debug",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-S",
"localhost:8000",
"-t",
"."
],
"port": 9003,
"serverReadyAction": {
"action": "openExternally"
}
},
{
"name": "Debug current script in console",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"externalConsole": false,
"port": 9003
},
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html": "${workspaceFolder}/sternwarte"
}
}
]
}

2
do_rsh_down.sh Executable file
View File

@@ -0,0 +1,2 @@
rsync -azv --rsh=ssh --exclude-from=rsh_excludes gfpw.org:sternwarte .

2
do_rsh_down_test.sh Executable file
View File

@@ -0,0 +1,2 @@
rsync -azvn --rsh=ssh --exclude-from=rsh_excludes gfpw.org:sternwarte .

2
do_rsh_up.sh Executable file
View File

@@ -0,0 +1,2 @@
rsync -azv --rsh=ssh --exclude-from=rsh_excludes sternwarte/ gfpw.org:sternwarte

2
do_rsh_up_test.sh Executable file
View File

@@ -0,0 +1,2 @@
rsync -azvn --rsh=ssh --exclude-from=rsh_excludes sternwarte/ gfpw.org:sternwarte

19
rsh_excludes Normal file
View File

@@ -0,0 +1,19 @@
video
wetter
kalender
checkfuehrung
HILFSProgramme
.git
DOCKER
docker-compose.yml
HWeather
beoanswer
.idea
.DS_Store
.gitignore
.htaccess
wetterDBsave
OBSOLETE
.git_vor_20221226
data
vendor

4
sternwarte/.my.cnf Normal file
View File

@@ -0,0 +1,4 @@
[mysqldump]
user=admin_310927
password=5D5u49cKNFqf

91
sternwarte/.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,91 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html": "${workspaceRoot}"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 0,
"runtimeArgs": [
"-dxdebug.start_with_request=yes"
],
"env": {
"XDEBUG_MODE": "debug,develop",
"XDEBUG_CONFIG": "client_port=${port}"
}
},
{
"name": "Launch Built-in web server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-dxdebug.mode=debug",
"-dxdebug.start_with_request=yes",
"-S",
"localhost:0"
],
"program": "",
"cwd": "${workspaceRoot}",
"port": 9003,
"serverReadyAction": {
"pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
},
{
"name": "Launch built-in server and Debug",
"type": "php",
"request": "launch",
"noDebug": false,
"runtimeArgs": [
"-S",
"localhost:8000",
"-t",
"."
],
"cwd": "${workspaceRoot}/.",
"serverReadyAction": {
"action": "openExternally"
}
},
{
"name": "Launch built-in server and Profile",
"type": "php",
"request": "launch",
"noDebug": true,
"runtimeArgs": [
"-S",
"localhost:8000",
"-t",
"."
],
"cwd": "${workspaceRoot}/.",
"serverReadyAction": {
"action": "openExternally"
},
"profile": true,
"openProfile": true
},
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch"
}
]
}

View File

@@ -0,0 +1,99 @@
# Anleitung für Wireguard (VPN)
Um Zugriff auf das Netzwerk der Sternwarte zu erlangen, wurde dort auf der Fritzbox die Software **Wireguard** aktiviert. Diese erlaubt es, über einen sicheren Tunnel von dem Heim-PC (oder auch vom Tablet oder Smartphone) auf das Netzwerk zuzugreifen. Dazu muss auf dem lokalen Gerät (also PC etc). ebenfalls die Software **Wireguard** installiert und aktiviert werden.
###Installation von Wireguard
Unabh. vom Betriebssystem muss zuerst die Konfigurationsdatei (*Sternwarte.conf*) auf das Gerät geladen werden. Diese befindet sich auf dem Sternwartenserver im internen Bereich unter *Anleitungen*.
* Windows (10 /11) oder MacOS oder Linux:
1. **Wireguard** herunterladen
Dazu auf der Webseite <https://www.wireguard.com/install/> das Programm für das entsprechende Betriebssystem herunterladen
2. Die heruntergeladene Datei ausführen
3. je nach Betriebssystem nun 'Tunnel aus Datei importieren' (oder so ähnlich) anklicken.
4. Als Datei die heruntergeladene Datei *Sternwarte.conf* verwenden. Die befindet sich normalerweise im *Downloads*-Verzeichnis
5. Das wars schon !
* IOS:
1. **Wireguard** aus dem APP-Store installieren
2. Die Datei *Sternwarte.conf* auf das IOS-Gerät kopieren
3. Die APP **Wirguard** anklicken
4. Über **+** einen Tunnel erstellen
5. 'Aus Datei oder Archiv erstellen' klicken
6. Die Datei *Sternwarte.conf'* mit Hilfe von *Suchen* finden und anklicken
* Android:
1. App **Wireguard** im Play-Store runterladen
2. Die Datei *Sternwarte.conf* vom Rechner auf das Smartphone kopieren
2. APP ausführen
3. via **+** (rechts unten) einen Tunnel hinzufügen
4. 'Aus Datei oder Archiv importieren' anklicken
5. dann die Datei *Sternwarte.conf* auswählen (ggf. *Suche*)
### VPN (Wireguard) einschalten
* Windows:
* Das Programm aufrufen
* Auf den Button **Aktivieren** drücken
* Es erscheint eine Meldung, dass **Wireguard** aktiviert ist und der Name *Sternwarte* links ist nun mit einem grünen Haken versehen
* Nun kann über die passende IP-Adresse auf Geräte im Sternwarten-Netz zugegriffen werden
* MacOS
*
* Das Progrsamm hat sich rechts oben in die Statusleiste eingenistet
* Hier das Symbol von **Wireguard** anklicken
* Dann auf *Sternwarte* klicken
* Das Symbol wird fett dargestellt, die Verbindung aufgebaut
* IOS
* App **Wireguard** aufrufen
* den Schalter bei *Sternwarte* einschalten
* Verbindung wird aufgebaut
* Android
* App **Wireguard** aufrufen
* den Schalter bei *Sternwarte* einschalten
* Verbindung wird aufgebaut
###Zugriff auf Sternwarten-Netz
Nun kann über die IP-Adresse oder den Namen im Sternwarten-Netz auf die diversen Geräte zugegriffen werden. z.B. kann zum Testen
über **192.168.1.95** der Zugriff auf die Testseite des Wetterserver-Rechners erfolgen.
###Zugriff auf das NAS-Laufwerk
Die Web-Oberfläche des NAS kann über die Adresse **192.168.1.250** direkt im Browser aufgerufen werden. Der Username und das Passwort sind: 'Sternwarte', 'Welzheim92'. Natürlich geht die Verbindun nur dann, wenn Wireguard eingeschaltet ist !!
Außerdem kann das Laufwerk direkt eingebunden werden:
* WIN (10 / 11)
1. Im Explorer *Dieser PC* aufrufen
2. oben im Menue über die 3 Punkte auf
3. *Netzwerklaufwerk verbinden* gehen
4. In dem Fenster dann ausfüllen:
5. Laufwerk: beliebigen (freien) Laufwerksbuchstaben wählen (z.B. **F:**)
5. Ordner: **\\\\Goldgrube\Ereignishorizont** und dann *Fertigstellen* klicken
6. Username und Passwort wie oben
Ab sofort braucht nur Wireguard eingeschaltet sein (oder werden) und der Zugriff geht über den Laufwerksbuchstaben (z.B. F:). Wenn Wireguard aus ist, geht's natürlich nicht.
* MacOS
1. Finder anklicken
2. oben im Menue **Gehe zu**
3. dann ganz unten: **Mit Server verbinden ...**
4. hier dann **smb://Goldgrube/Ereignishorizont** eingeben und *Verbinden* klicken
5. auch hier Username und Passwort wie oben eingeben
Hier läuft dann der Zugriff direkt über *Goldgrube*.
###VPN (Wireguard) verlassen
**\*\*\* NICHT vergessen das VPN wieder ausschalten \*\*\***
Denn sonst läuft **jeder** Internetverkehr über die Fritzbox der Sternwarte !
Je nach Betriebssystem die APP **Wireguard** wieder aufrufen und den entsprechenden Schalter wieder ausschalten (bzw. auf *Deaktivieren* klicken.
####Versionen
Datum | Version | Author | Bemerkung
------|---------|--------|--------
2024-05-15 | 0.1 | rxf | erster Entwurf
2024-06-17 | 1.0 | rxf | vollständige Verison

Binary file not shown.

Binary file not shown.

572
sternwarte/DB4js.php Normal file
View File

@@ -0,0 +1,572 @@
<?php
# Hier werden die Anfragen vom Javascript verarbeitet und die
# Datenbank bedient
include 'config_stern.php';
include 'phpmailer/dosendmail.php';
// Holen der Einträge in der anmelde-Datenbank für den selektierten Tag
// Parameter
// $fid -> so viele Einträge ab jetzt holen <<<???
// Retunrn:
// Array mit den Einträgen
function getAnmeldungen($fid)
{
global $db;
$erg = array();
$sql_stmt = "SELECT * FROM anmeldungen WHERE fid='$fid'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
while ($row = mysqli_fetch_assoc($result)) {
foreach($row as $key => $value) {
$entry[$key] = $value;
}
$erg[] = $entry;
}
return $erg;
}
// Holen der Daten aller oder eine einzelnen BEOs
//
// Parameter:
// $id ID des zu holenden BEOs, undefined -> alle holen
// $og true: nur die, die Führung machen, sonst alle
// Return:
// Array mit allen BEOs
function getBEOs($id, $og, $what)
{
global $db;
if ($id != 'all') {
$sql_stmt = "SELECT $what FROM beos where id='$id' order by name";
} else {
if($og == 'true') {
$sql_stmt = "SELECT $what FROM beos where gruppe !='' order by name";
} else {
$sql_stmt = "SELECT $what FROM beos order by name";
}
}
$erg = array();
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
while ($row = mysqli_fetch_assoc($result)) {
foreach($row as $key => $value) {
$entry[$key] = $value;
}
$erg[] = $entry;
}
return $erg;
}
function getOneBEO($kurz, $what)
{
global $db;
$sql_stmt = "SELECT $what FROM beos where kürzel='$kurz'";
$erg = array();
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
return $data ;
// while ($row = mysqli_fetch_assoc($result)) {
// foreach($row as $key => $value) {
// $entry[$key] = $value;
// }
// $erg[] = $entry;
// }
// return $erg;
}
function updateOneBEOpw($data)
{
global $db;
$sql_stmt = "UPDATE beos SET pw='$data[pw]' where kürzel='$data[kurz]'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
return $result;
}
// Daten eines Teilnehmers abholen
// Parameter:
// $id: Teilnehmer - ID
// Return:
// Dict mit allen Daten des Teilnehmers
function getTeilnehmer($seed,$isid,$withdate)
{
global $db;
$today = date('Ymd');
$erg = array();
$entry = array();
if ($seed == -1) {
$sql_stmt = "SELECT email, fid, id, anzahl FROM anmeldungen WHERE email != '-'";
} else if($isid) {
$sql_stmt = "SELECT * FROM anmeldungen WHERE id='$seed'";
} else {
if ($withdate) {
$sql_stmt = "SELECT * FROM anmeldungen WHERE email='$seed' AND fdatum >= '$today'";
} else {
$sql_stmt = "SELECT * FROM anmeldungen WHERE email='$seed'";
}
}
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
while ($row = mysqli_fetch_assoc($result)) {
foreach ($row as $key => $value) {
$entry[$key] = $value;
}
$erg[] = $entry;
}
return $erg;
}
// Daten aller Teilnehmer ab eines Führungsdatumns abholen
// Parameter:
// $fid: Führungsdatum, ab dem die Info geholt wirdTeilnehmer - ID
// Return:
// Dict mit allen Daten des Teilnehmers
function getAllTeilnehmer($fdatum)
{
global $db;
$erg = array();
$entry = array();
$sql_stmt = "SELECT * FROM anmeldungen WHERE fdatum>='$fdatum' ORDER BY fid ASC";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
while ($row = mysqli_fetch_assoc($result)) {
foreach ($row as $key => $value) {
$entry[$key] = $value;
}
$erg[] = $entry;
}
return $erg;
}
// die Daten der Führungen in dem Bereich start - end
// in ein Array als ISO8601 holen
// Parameter
// $start -> ab diesem Datum
// $end -> bis zu diesem Datum
// Retunrn:
// Array mit den Daten in ISO8601
function getFuehrungen($start, $end) {
global $db;
$erg = array();
$sql_sel = "SELECT * FROM fdatum1 where datum >= '$start' AND datum <= '$end' ORDER BY datum ASC";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
while ($row = mysqli_fetch_assoc($result)) {
foreach ($row as $key => $value) {
$entry[$key] = $value;
}
$erg[] = $entry;
}
return $erg;
}
// die Daten der nächsten $soviel Führungen in ein Array holen
// Parameter
// $soviel -> so viele Einträge ab jetzt holen
// Retunrn:
// Array mit allen Werten aus der Table
function getNextFuehrungen($soviel, $fid) {
global $db;
$erg = array();
$datum_heute = date("Ymd",strtotime("-1 days"));
if ($fid != 0) {
$sql_sel = "SELECT id, wtag, datum, uhrzeit FROM fdatum where id >= $fid order by datum ASC LIMIT $soviel";
} else {
$sql_sel = "SELECT id, wtag, datum, uhrzeit FROM fdatum where datum >='$datum_heute' order by datum ASC LIMIT $soviel";
}
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
while ($row = mysqli_fetch_row($result)) {
$entry = array();
$entry['fid'] = $row[0];
$entry['weekday'] = $row[1];
$entry['date'] = $row[2];
$entry['time'] = $row[3];
$erg[] = $entry;
}
return $erg;
}
function updateTeilnehmer_fdate($id, $fdatum, $fid) {
global $db;
$sql_stmt = "UPDATE anmeldungen SET fdatum=$fdatum,fid=$fid where id=$id";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
return $result;
}
function updateentries($nr,$val,$field)
{
global $db;
$result = false;
for ($i = 0; $i < count($nr); $i++) {
$sql_stmt = "UPDATE anmeldungen SET $field=$val[0] where id=$nr[$i]";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
}
return $result;
}
function delCalentry($id) {
global $db;
$sql_stmt = "DELETE FROM kalender WHERE id='$id'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
return $result;
}
function deleteEntry($id) {
global $db;
$sql_stmt = "DELETE FROM anmeldungen WHERE id='$id'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
return $result;
}
// Zählen, wieviele Personen zu einem Führungstermin angemeldet sind
// Parameter:
// $fid -> id des Führungsdatum
// Return: Anzahl der Personen
function getCountsPerDate($fid) {
global $db;
$sql_stmt = "SELECT SUM(anzahl) AS count FROM anmeldungen WHERE fid='$fid'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
return $data['count'] ;
}
// Zählen, wieviele Personen zu einem Führungstermin angemeldet sind
// Parameter:
// $date -> Datum der Führung (YYYMDD)
// Return: Anzahl der Personen
function getCountsPerDatefromDate($date) {
global $db;
$sql_stmt = "SELECT SUM(anzahl) AS count FROM anmeldungen WHERE fdatum='$date'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
return $data['count'];
}
// aus dem Datum (yyyymmdd) die fid aus der Tabelle holen
function getfid($datum) {
global $db;
$sql_stmt = "SELECT * FROM fdatum1 WHERE datum >= $datum LIMIT 1";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
return $data;
}
// aus der fdatum-Tabelle die Details zur übergeben ID holen
function getOneDate($id) {
global $db;
$sql_stmt = "SELECT * FROM fdatum1 WHERE id='$id'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
return $data;
}
function insertteilnehmer($data) {
global $db;
$name = $data['name'];
$vorname = $data['vorname'];
$strasse = $data['strasse'];
$plz = intval($data['plz']);
$stadt = $data['stadt'];
$telefon = $data['telefon'];
$email = $data['email'];
$anzahl = intval($data['anzahl']);
$remarks = $data['remarks'];
$fid = intval($data['fid']);
$sql_stmt = "INSERT INTO anmeldungen (name,vorname,strasse,plz,stadt,telefon,email,anzahl,remarks,fid,angemeldet) " .
"VALUES ('$name','$vorname','$strasse','$plz','$stadt','$telefon','$email','$anzahl','$remarks','$fid', CURDATE())";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
return $result;
}
function updateteilnehmer($data, $id) {
global $db;
$name = $data['name'];
$vorname = $data['vorname'];
$strasse = $data['strasse'];
$plz = $data['plz'];
$stadt = $data['stadt'];
$telefon = $data['telefon'];
$email = $data['email'];
$anzahl = $data['anzahl'];
$remarks = $data['remarks'];
$fid = $data['fid'];
$sql_stmt = "UPDATE anmeldungen SET " .
"name='$name', vorname='$vorname', strasse='$strasse', plz='$plz', stadt='$stadt', " .
"telefon='$telefon', anzahl='$anzahl', remarks='$remarks', angemeldet=CURDATE() WHERE id='$id'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
return $result;
}
// Email raussenden
function sendConfirmation($subject, $to, $body) {
mb_internal_encoding('UTF-8');
$subject = mb_encode_mimeheader($subject, 'UTF-8', 'Q');
$absender = "noreply@sternwarte-welzheim.de";
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=utf-8";
$headers[] = "From: {$absender}";
$headers[] = "X-Mailer: PHP/" . phpversion();
$headers[] = "Reply-To: {$absender}";
mail($to, $subject, $body, implode("\r\n", $headers),"-f noreply@sternwarte-welzheim.de");
}
// Email raussenden
function sendInfoMail($subject, $to, $body) {
mb_internal_encoding('UTF-8');
$subject = mb_encode_mimeheader($subject, 'UTF-8', 'Q');
$absender = "noreply@sternwarte-welzheim.de";
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=utf-8";
$headers[] = "From: {$absender}";
$headers[] = "X-Mailer: PHP/" . phpversion();
$headers[] = "Reply-To: {$absender}";
mail($to, $subject, $body, implode("\r\n", $headers),"-f noreply@sternwarte-welzheim.de");
}
// Führungsdaten eintragen (für kalender)
function putFdates($data) {
global $db;
foreach ($data as $d) {
$start = $d['start'];
$grp = $d['group'];
$sql_stmt = "INSERT IGNORE INTO fdates (dateTime, grp)" .
"VALUES ('$start','$grp')";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
}
return $result;
}
// die Daten der Führungen (fdatum) in dem Bereich start - end
// in ein Array als ISO8601 holen
// Parameter
// $start -> ab diesem Datum
// $end -> bis zu diesem Datum
// Return:
// Array mit den Daten
function getFdates($start, $end) {
global $db;
$erg = array();
$s = date('Ymd', strtotime($start));
$e = date('Ymd', strtotime($end));
$sql_sel = "SELECT * FROM fdatum1 where datum >= '$s' AND datum <= '$e'";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
while ($row = mysqli_fetch_row($result)) {
$entry = array();
$entry['start'] = $row[2];
$entry['uhr'] = substr($row[3],0,2);
$entry['title'] = $row[5];
$entry['count'] = getCountsPerDatefromDate($row[2]);
$erg[] = $entry;
}
return $erg;
}
function putCalEntry($data) {
global $db;
$t = $data['title'];
$d = $data['description'];
$dt = $data['start'];
$e = $data['end'];
$sql_stmt = "INSERT INTO kalender (start, end, title, description)" .
"VALUES ('$dt', '$e', '$t', '$d')";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
return $result;
}
function getCalEntries($start, $end) {
global $db;
$erg = array();
$s = date('Ymd', strtotime($start));
$e = date('Ymd', strtotime($end));
$sql_sel = "SELECT * FROM kalender where start >= '$s' AND start <= '$e'";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
while ($row = mysqli_fetch_assoc($result)) {
foreach ($row as $key => $value) {
$entry[$key] = $value;
}
$erg[] = $entry;
}
return $erg;
}
function updateCount($date, $anzahl) {
global $db;
$sql_stmt = "UPDATE fdatum1 SET count=count-$anzahl WHERE datum=$date AND count >0";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
return $result;
}
function getOneRecordTermin($termin) {
global $db;
$erg = array();
$sql_sel = "SELECT * FROM SoFue2 WHERE DATE(wtermin)='$termin' AND status=2";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
while ($row = mysqli_fetch_assoc($result)) {
foreach ($row as $key => $value) {
$entry[$key] = $value;
}
$erg[] = $entry;
}
return $erg;
}
$_POST = json_decode(file_get_contents('php://input'), true);
$erg = "";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$cmd = $_POST["cmd"];
/*
$x = "[";
foreach ($_POST as $key => $value) {
if(gettype($value) == "array") {
$value = $value[0];
}
$x = $x . $key . " => " . $value . ",";
}
$x = $x . "]";
*/
switch ($cmd) {
case 'GET_ANMELD':
$erg = getAnmeldungen($_POST['id']);
break;
case 'GET_TEILN':
$erg = getTeilnehmer($_POST['id'], true, false);
break;
case 'GET_DATES':
$erg = getNextFuehrungen($_POST['anzahl'], $_POST['fid']);
break;
case 'UPDATE':
$erg = "Nix gut";
if ((count($_POST['ids']) != 0) and (count($_POST['values']) != 0)) {
$rows = $_POST['ids'];
$values = $_POST['values'];
$erg = updateEntries($rows, $values, $_POST['field']);
}
break;
case 'UPDATETLNFD':
$erg = updateTeilnehmer_fdate($_POST['id'], $_POST['fdatum'], $_POST['fid']);
break;
case 'DELETE_ENTRY':
$erg = deleteEntry($_POST['id']);
break;
case 'GET_COUNTS':
$erg = getCountsPerDate($_POST['id']);
break;
case 'GET_COUNTS_DATE':
$erg = getCountsPerDatefromDate($_POST['date']);
break;
case 'GET_TEILN_EMAIL':
$erg = getTeilnehmer($_POST['mail'], false, false);
break;
case 'GET_DATE_BY_EMAIL':
$erg = getTeilnehmer($_POST['mail'], false, true);
break;
case 'GET_ONE_DATE':
$erg = getOneDate($_POST['fid']);
break;
case 'GET_ALLTEILN':
$erg = getAllTeilnehmer($_POST['fdatum']);
break;
case 'SEND_MAIL':
$erg = sendConfirmation($_POST['subject'], $_POST['to'], $_POST['body']);
break;
case 'SEND_INFO_MAIL':
$erg = sendInfoMail($_POST['subject'], $_POST['to'], $_POST['body']);
break;
case 'SEND_MAIL_HTML':
$absender = "noreply@sternwarte-welzheim.de";
$erg = sendmail($_POST['subject'], $absender, $_POST['body_txt'], [], [], $_POST['to'], $_POST['body_html']);
// function sendmail($subject, $from, $body_txt, $cc=[], $bcc=[], $to=[], $body_html="") {
break;
case 'INSERT_TLN':
$erg = insertTeilnehmer($_POST['data']);
break;
case 'UPDATE_TLN':
$erg = updateTeilnehmer($_POST['data'], $_POST['id']);
break;
case 'DELETE_TLN':
$erg = deleteEntry($_POST['id']);
break;
case 'UPDATECOUNT':
$erg = updateCount($_POST['date'], $_POST['anzahl']);
break;
case 'GET_ALL_EMAILS':
$erg = getTeilnehmer(-1, true, false);
break;
case 'GET_FUEHRUNGEN':
$erg = getFuehrungen($_POST['start'], $_POST['end']);
break;
case 'PUT_FDATES':
$erg = putFdates($_POST['data']);
break;
case 'GET_FDATES':
$erg = getFdates($_POST['start'], $_POST['end']);
break;
case 'GET_BEOS':
if ( isset($_POST['what'])) {
$erg = getBEOs($_POST['id'], $_POST['onlyguides'], $_POST['what']);
} else {
$erg = getBEOs($_POST['id'], $_POST['onlyguides'], '*');
}
break;
case 'GET_ONEBEO':
$erg = getOneBEO($_POST['kurz'], $_POST['what']);
break;
case 'UPDATE_ONEBEOPW':
$erg = updateOneBEOpw($_POST['data']);
break;
case 'PUT_CALENTRY':
$erg = putCalEntry($_POST['data']);
break;
case 'GET_CALENTRIES':
$erg = getCalEntries($_POST['start'], $_POST['end']);
break;
case 'DEL_CALENTRY':
$erg = delCalentry($_POST['id']);
break;
case 'GET_FID':
$erg = getfid($_POST['fdatum']);
break;
case 'GET_MAINT':
include 'maintenance.php';
$erg = $maint;
break;
case 'GET_ONETERMIN':
$erg = getOneRecordTermin($_POST["termin"]);
break;
default:
$erg = ['error' => 'Unknown POST-Command', 'cmd' => $cmd, 'params' => $x];
}
} else {
/*
$x = "[";
foreach ($_GET as $key => $value) {
$x = $x . $key . " => " . $value . ",";
}
$x = $x . "]";
*/
$cmd = $_GET['cmd'];
switch ($cmd) {
case 'GET_FDATES':
$erg = getFdates($_GET['start'], $_GET['end']);
break;
default:
$erg = ['error' => 'Unknown GET-Command', 'params' => $x];
}
}
// header("Content-type: text/json;charset=utf-8");
echo json_encode($erg);

View File

@@ -0,0 +1,33 @@
FROM php:5-apache
RUN apt-get update &&\
apt-get install -y locales &&\
locale-gen en_US.UTF-8
ENV LANG='en_US.UTF-8'
ENV LC_ALL='en_US.UTF-8'
ENV LANGUAGE='en_US.UTF-8'
# configure PHP environment and apache modules
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
# Add ssmtp mailer
RUN apt-get install -y ssmtp
ADD ssmtp.conf /etc/ssmtp/ssmtp.conf
RUN echo 'sendmail_path = /usr/sbin/sendmail -t -i' >> /usr/local/etc/php/php.ini
# mail() calls in PHP should end up in mhsendmail, which sends the mails to the mailhog container
#RUN apt-get install --no-install-recommends --assume-yes --quiet ca-certificates curl git &&\
# rm -rf /var/lib/apt/lists/*
#RUN curl -Lsf 'https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz' | tar -C '/usr/local' -xvzf -
#ENV PATH /usr/local/go/bin:$PATH
#RUN go get github.com/mailhog/mhsendmail
#RUN cp /root/go/bin/mhsendmail /usr/bin/mhsendmail
#RUN echo 'sendmail_path = /usr/bin/mhsendmail --smtp-addr mailhog:1025' >> /usr/local/etc/php/php.ini
# xdebug
# RUN pecl install xdebug-2.5.5 && docker-php-ext-enable xdebug
# RUN echo 'zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so' >> /usr/local/etc/php/php.ini
# RUN echo 'xdebug.remote_port=9000' >> /usr/local/etc/php/php.ini
# RUN echo 'xdebug.remote_enable=1' >> /usr/local/etc/php/php.ini
# RUN echo 'xdebug.remote_connect_back=1' >> /usr/local/etc/php/php.ini

View File

@@ -0,0 +1,27 @@
version: '2'
services:
apache_with_php_m:
build:
context: .
dockerfile: Dockerfile_maillive
volumes:
- /Users/rxf/Projekte/SternDBase/sternwarte:/var/www/html/
ports:
- "8081:80"
environment:
DEVELOP: "true"
mysql:
image: mysql:5.6.33
container_name: stern_mysql
volumes:
- /Users/rxf/Projekte/SternDBase/data:/var/lib/mysql/
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "SFluorit"
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_HOST: "stern_mysql"
ports:
- '8080:80'

View File

@@ -0,0 +1,51 @@
server {
# Set the port to listen on and the server name
listen 80 default_server;
# Set the document root of the project
root /var/www/html;
# Set the directory index files
index index.html index.php;
# Specify the default character set
charset utf-8;
# Setup the default location configuration
location / {
try_files $uri $uri/ /index.php;
}
# Specify the details of favicon.ico
location = /favicon.ico { access_log off; log_not_found off; }
# Specify the details of robots.txt
location = /robots.txt { access_log off; log_not_found off; }
# Specify the logging configuration
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
sendfile off;
client_max_body_size 100m;
# Specify what happens when PHP files are requested
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param APPLICATION_ENV development;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
# Specify what happens what .ht files are requested
location ~ /\.ht {
deny all;
}
}

View File

@@ -0,0 +1,25 @@
FROM arm64v8/php:8.2-fpm
RUN apt-get update &&\
apt-get install -y locales &&\
locale-gen en_US.UTF-8
ENV LANG='en_US.UTF-8'
ENV LC_ALL='en_US.UTF-8'
ENV LANGUAGE='en_US.UTF-8'
# configure PHP environment and apache modules
RUN docker-php-ext-install mysqli pdo pdo_mysql
# RUN cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
# mail() calls in PHP should end up in mhsendmail, which sends the mails to the mailhog container
#RUN apt-get install --no-install-recommends --assume-yes --quiet ca-certificates curl git &&\
# rm -rf /var/lib/apt/lists/*
#RUN curl -Lsf 'https://storage.googleapis.com/golang/go1.20.1.darwin-arm64.tar.gz' | tar -C '/usr/local' -xvzf -
#ENV PATH /usr/local/go/bin:$PATH
#RUN go get github.com/mailhog/mhsendmail
#RUN cp /root/go/bin/mhsendmail /usr/bin/mhsendmail
#RUN echo 'sendmail_path = /usr/bin/mhsendmail --smtp-addr mailhog:1025' >> /usr/local/etc/php/php.ini

View File

@@ -0,0 +1 @@
error_reporting=E_ALL

View File

@@ -0,0 +1,6 @@
zend_extension=xdebug
[xdebug]
xdebug.mode=develop,debug
xdebug.client_host=host.docker.internal
xdebug.start_with_request=yes

View File

@@ -0,0 +1,5 @@
requests==2.18.1
mysqlclient==1.3.10
path.py==10.3.1
python-dateutil==2.6.0
assertpy==0.10

View File

@@ -0,0 +1,31 @@
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
# mailhub=mail
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=rexfue@gmail.com
AuthPass=wrgvpdvwildkpwqy
#mailhub=smtp.1und1.de:587
#UseSTARTTLS=YES
#AuthUser=rxf@fuerst-stuttgart.de
#AuthPass=Jup!ter4
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=castor
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

11
sternwarte/README.md Normal file
View File

@@ -0,0 +1,11 @@
## Sternwarte-Welzheim Webseiten
Start hier mit der Version vom 2021-08-23.
Frühere Versionen sind auf dem MAC-Rechner rxf unter ~/Projekte/sternwarte_2021-08-22 zu finden.
Dort ist alles im lokalen git.
Des Weiteren ist auch Alles noch auf nuccy im GitVerzeichnis sternwarte_20210822.git

Binary file not shown.

View File

@@ -0,0 +1,669 @@
/*! SWFObject v2.0 <http://code.google.com/p/swfobject/>
Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis
This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject = function() {
var UNDEF = "undefined",
OBJECT = "object",
SHOCKWAVE_FLASH = "Shockwave Flash",
SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
FLASH_MIME_TYPE = "application/x-shockwave-flash",
EXPRESS_INSTALL_ID = "SWFObjectExprInst",
win = window,
doc = document,
nav = navigator,
domLoadFnArr = [],
regObjArr = [],
timer = null,
storedAltContent = null,
storedAltContentId = null,
isDomLoaded = false,
isExpressInstallActive = false;
/* Centralized function for browser feature detection
- Proprietary feature detection (conditional compiling) is used to detect Internet Explorer's features
- User agent string detection is only used when no alternative is possible
- Is executed directly for optimal performance
*/
var ua = function() {
var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF && typeof doc.appendChild != UNDEF && typeof doc.replaceChild != UNDEF && typeof doc.removeChild != UNDEF && typeof doc.cloneNode != UNDEF,
playerVersion = [0,0,0],
d = null;
if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
d = nav.plugins[SHOCKWAVE_FLASH].description;
if (d) {
d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
playerVersion[2] = /r/.test(d) ? parseInt(d.replace(/^.*r(.*)$/, "$1"), 10) : 0;
}
}
else if (typeof win.ActiveXObject != UNDEF) {
var a = null, fp6Crash = false;
try {
a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".7");
}
catch(e) {
try {
a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".6");
playerVersion = [6,0,21];
a.AllowScriptAccess = "always"; // Introduced in fp6.0.47
}
catch(e) {
if (playerVersion[0] == 6) {
fp6Crash = true;
}
}
if (!fp6Crash) {
try {
a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
}
catch(e) {}
}
}
if (!fp6Crash && a) { // a will return null when ActiveX is disabled
try {
d = a.GetVariable("$version"); // Will crash fp6.0.21/23/29
if (d) {
d = d.split(" ")[1].split(",");
playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
}
}
catch(e) {}
}
}
var u = nav.userAgent.toLowerCase(),
p = nav.platform.toLowerCase(),
webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
ie = false,
windows = p ? /win/.test(p) : /win/.test(u),
mac = p ? /mac/.test(p) : /mac/.test(u);
/*@cc_on
ie = true;
@if (@_win32)
windows = true;
@elif (@_mac)
mac = true;
@end
@*/
return { w3cdom:w3cdom, pv:playerVersion, webkit:webkit, ie:ie, win:windows, mac:mac };
}();
/* Cross-browser onDomLoad
- Based on Dean Edwards' solution: http://dean.edwards.name/weblog/2006/06/again/
- Will fire an event as soon as the DOM of a page is loaded (supported by Gecko based browsers - like Firefox -, IE, Opera9+, Safari)
*/
var onDomLoad = function() {
if (!ua.w3cdom) {
return;
}
addDomLoadEvent(main);
if (ua.ie && ua.win) {
try { // Avoid a possible Operation Aborted error
doc.write("<scr" + "ipt id=__ie_ondomload defer=true src=//:></scr" + "ipt>"); // String is split into pieces to avoid Norton AV to add code that can cause errors
var s = getElementById("__ie_ondomload");
if (s) {
s.onreadystatechange = function() {
if (this.readyState == "complete") {
this.parentNode.removeChild(this);
callDomLoadFunctions();
}
};
}
}
catch(e) {}
}
if (ua.webkit && typeof doc.readyState != UNDEF) {
timer = setInterval(function() { if (/loaded|complete/.test(doc.readyState)) { callDomLoadFunctions(); }}, 10);
}
if (typeof doc.addEventListener != UNDEF) {
doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, null);
}
addLoadEvent(callDomLoadFunctions);
}();
function callDomLoadFunctions() {
if (isDomLoaded) {
return;
}
if (ua.ie && ua.win) { // Test if we can really add elements to the DOM; we don't want to fire it too early
var s = createElement("span");
try { // Avoid a possible Operation Aborted error
var t = doc.getElementsByTagName("body")[0].appendChild(s);
t.parentNode.removeChild(t);
}
catch (e) {
return;
}
}
isDomLoaded = true;
if (timer) {
clearInterval(timer);
timer = null;
}
var dl = domLoadFnArr.length;
for (var i = 0; i < dl; i++) {
domLoadFnArr[i]();
}
}
function addDomLoadEvent(fn) {
if (isDomLoaded) {
fn();
}
else {
domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
}
}
/* Cross-browser onload
- Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
- Will fire an event as soon as a web page including all of its assets are loaded
*/
function addLoadEvent(fn) {
if (typeof win.addEventListener != UNDEF) {
win.addEventListener("load", fn, false);
}
else if (typeof doc.addEventListener != UNDEF) {
doc.addEventListener("load", fn, false);
}
else if (typeof win.attachEvent != UNDEF) {
win.attachEvent("onload", fn);
}
else if (typeof win.onload == "function") {
var fnOld = win.onload;
win.onload = function() {
fnOld();
fn();
};
}
else {
win.onload = fn;
}
}
/* Main function
- Will preferably execute onDomLoad, otherwise onload (as a fallback)
*/
function main() { // Static publishing only
var rl = regObjArr.length;
for (var i = 0; i < rl; i++) { // For each registered object element
var id = regObjArr[i].id;
if (ua.pv[0] > 0) {
var obj = getElementById(id);
if (obj) {
regObjArr[i].width = obj.getAttribute("width") ? obj.getAttribute("width") : "0";
regObjArr[i].height = obj.getAttribute("height") ? obj.getAttribute("height") : "0";
if (hasPlayerVersion(regObjArr[i].swfVersion)) { // Flash plug-in version >= Flash content version: Houston, we have a match!
if (ua.webkit && ua.webkit < 312) { // Older webkit engines ignore the object element's nested param elements
fixParams(obj);
}
setVisibility(id, true);
}
else if (regObjArr[i].expressInstall && !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac)) { // Show the Adobe Express Install dialog if set by the web page author and if supported (fp6.0.65+ on Win/Mac OS only)
showExpressInstall(regObjArr[i]);
}
else { // Flash plug-in and Flash content version mismatch: display alternative content instead of Flash content
displayAltContent(obj);
}
}
}
else { // If no fp is installed, we let the object element do its job (show alternative content)
setVisibility(id, true);
}
}
}
/* Fix nested param elements, which are ignored by older webkit engines
- This includes Safari up to and including version 1.2.2 on Mac OS 10.3
- Fall back to the proprietary embed element
*/
function fixParams(obj) {
var nestedObj = obj.getElementsByTagName(OBJECT)[0];
if (nestedObj) {
var e = createElement("embed"), a = nestedObj.attributes;
if (a) {
var al = a.length;
for (var i = 0; i < al; i++) {
if (a[i].nodeName.toLowerCase() == "data") {
e.setAttribute("src", a[i].nodeValue);
}
else {
e.setAttribute(a[i].nodeName, a[i].nodeValue);
}
}
}
var c = nestedObj.childNodes;
if (c) {
var cl = c.length;
for (var j = 0; j < cl; j++) {
if (c[j].nodeType == 1 && c[j].nodeName.toLowerCase() == "param") {
e.setAttribute(c[j].getAttribute("name"), c[j].getAttribute("value"));
}
}
}
obj.parentNode.replaceChild(e, obj);
}
}
/* Fix hanging audio/video threads and force open sockets and NetConnections to disconnect
- Occurs when unloading a web page in IE using fp8+ and innerHTML/outerHTML
- Dynamic publishing only
*/
function fixObjectLeaks(id) {
if (ua.ie && ua.win && hasPlayerVersion("8.0.0")) {
win.attachEvent("onunload", function () {
var obj = getElementById(id);
if (obj) {
for (var i in obj) {
if (typeof obj[i] == "function") {
obj[i] = function() {};
}
}
obj.parentNode.removeChild(obj);
}
});
}
}
/* Show the Adobe Express Install dialog
- Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
*/
function showExpressInstall(regObj) {
isExpressInstallActive = true;
var obj = getElementById(regObj.id);
if (obj) {
if (regObj.altContentId) {
var ac = getElementById(regObj.altContentId);
if (ac) {
storedAltContent = ac;
storedAltContentId = regObj.altContentId;
}
}
else {
storedAltContent = abstractAltContent(obj);
}
if (!(/%$/.test(regObj.width)) && parseInt(regObj.width, 10) < 310) {
regObj.width = "310";
}
if (!(/%$/.test(regObj.height)) && parseInt(regObj.height, 10) < 137) {
regObj.height = "137";
}
doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
dt = doc.title,
fv = "MMredirectURL=" + win.location + "&MMplayerType=" + pt + "&MMdoctitle=" + dt,
replaceId = regObj.id;
// For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element
// In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
if (ua.ie && ua.win && obj.readyState != 4) {
var newObj = createElement("div");
replaceId += "SWFObjectNew";
newObj.setAttribute("id", replaceId);
obj.parentNode.insertBefore(newObj, obj); // Insert placeholder div that will be replaced by the object element that loads expressinstall.swf
obj.style.display = "none";
win.attachEvent("onload", function() { obj.parentNode.removeChild(obj); });
}
createSWF({ data:regObj.expressInstall, id:EXPRESS_INSTALL_ID, width:regObj.width, height:regObj.height }, { flashvars:fv }, replaceId);
}
}
/* Functions to abstract and display alternative content
*/
function displayAltContent(obj) {
if (ua.ie && ua.win && obj.readyState != 4) {
// For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element
// In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
var el = createElement("div");
obj.parentNode.insertBefore(el, obj); // Insert placeholder div that will be replaced by the alternative content
el.parentNode.replaceChild(abstractAltContent(obj), el);
obj.style.display = "none";
win.attachEvent("onload", function() { obj.parentNode.removeChild(obj); });
}
else {
obj.parentNode.replaceChild(abstractAltContent(obj), obj);
}
}
function abstractAltContent(obj) {
var ac = createElement("div");
if (ua.win && ua.ie) {
ac.innerHTML = obj.innerHTML;
}
else {
var nestedObj = obj.getElementsByTagName(OBJECT)[0];
if (nestedObj) {
var c = nestedObj.childNodes;
if (c) {
var cl = c.length;
for (var i = 0; i < cl; i++) {
if (!(c[i].nodeType == 1 && c[i].nodeName.toLowerCase() == "param") && !(c[i].nodeType == 8)) {
ac.appendChild(c[i].cloneNode(true));
}
}
}
}
}
return ac;
}
/* Cross-browser dynamic SWF creation
*/
function createSWF(attObj, parObj, id) {
var r, el = getElementById(id);
if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
attObj.id = id;
}
if (ua.ie && ua.win) { // IE, the object element and W3C DOM methods do not combine: fall back to outerHTML
var att = "";
for (var i in attObj) {
if (attObj[i] != Object.prototype[i]) { // Filter out prototype additions from other potential libraries, like Object.prototype.toJSONString = function() {}
if (i == "data") {
parObj.movie = attObj[i];
}
else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
att += ' class="' + attObj[i] + '"';
}
else if (i != "classid") {
att += ' ' + i + '="' + attObj[i] + '"';
}
}
}
var par = "";
for (var j in parObj) {
if (parObj[j] != Object.prototype[j]) { // Filter out prototype additions from other potential libraries
par += '<param name="' + j + '" value="' + parObj[j] + '" />';
}
}
el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
fixObjectLeaks(attObj.id); // This bug affects dynamic publishing only
r = getElementById(attObj.id);
}
else if (ua.webkit && ua.webkit < 312) { // Older webkit engines ignore the object element's nested param elements: fall back to the proprietary embed element
var e = createElement("embed");
e.setAttribute("type", FLASH_MIME_TYPE);
for (var k in attObj) {
if (attObj[k] != Object.prototype[k]) { // Filter out prototype additions from other potential libraries
if (k == "data") {
e.setAttribute("src", attObj[k]);
}
else if (k.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
e.setAttribute("class", attObj[k]);
}
else if (k != "classid") { // Filter out IE specific attribute
e.setAttribute(k, attObj[k]);
}
}
}
for (var l in parObj) {
if (parObj[l] != Object.prototype[l]) { // Filter out prototype additions from other potential libraries
if (l != "movie") { // Filter out IE specific param element
e.setAttribute(l, parObj[l]);
}
}
}
el.parentNode.replaceChild(e, el);
r = e;
}
else { // Well-behaving browsers
var o = createElement(OBJECT);
o.setAttribute("type", FLASH_MIME_TYPE);
for (var m in attObj) {
if (attObj[m] != Object.prototype[m]) { // Filter out prototype additions from other potential libraries
if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
o.setAttribute("class", attObj[m]);
}
else if (m != "classid") { // Filter out IE specific attribute
o.setAttribute(m, attObj[m]);
}
}
}
for (var n in parObj) {
if (parObj[n] != Object.prototype[n] && n != "movie") { // Filter out prototype additions from other potential libraries and IE specific param element
createObjParam(o, n, parObj[n]);
}
}
el.parentNode.replaceChild(o, el);
r = o;
}
return r;
}
function createObjParam(el, pName, pValue) {
var p = createElement("param");
p.setAttribute("name", pName);
p.setAttribute("value", pValue);
el.appendChild(p);
}
function getElementById(id) {
return doc.getElementById(id);
}
function createElement(el) {
return doc.createElement(el);
}
function hasPlayerVersion(rv) {
var pv = ua.pv, v = rv.split(".");
v[0] = parseInt(v[0], 10);
v[1] = parseInt(v[1], 10);
v[2] = parseInt(v[2], 10);
return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
}
/* Cross-browser dynamic CSS creation
- Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php
*/
function createCSS(sel, decl) {
if (ua.ie && ua.mac) {
return;
}
var h = doc.getElementsByTagName("head")[0], s = createElement("style");
s.setAttribute("type", "text/css");
s.setAttribute("media", "screen");
if (!(ua.ie && ua.win) && typeof doc.createTextNode != UNDEF) {
s.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
}
h.appendChild(s);
if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
var ls = doc.styleSheets[doc.styleSheets.length - 1];
if (typeof ls.addRule == OBJECT) {
ls.addRule(sel, decl);
}
}
}
function setVisibility(id, isVisible) {
var v = isVisible ? "visible" : "hidden";
if (isDomLoaded) {
getElementById(id).style.visibility = v;
}
else {
createCSS("#" + id, "visibility:" + v);
}
}
function getTargetVersion(obj) {
if (!obj)
return 0;
var c = obj.childNodes;
var cl = c.length;
for (var i = 0; i < cl; i++) {
if (c[i].nodeType == 1 && c[i].nodeName.toLowerCase() == "object") {
c = c[i].childNodes;
cl = c.length;
i = 0;
}
if (c[i].nodeType == 1 && c[i].nodeName.toLowerCase() == "param" && c[i].getAttribute("name") == "swfversion") {
return c[i].getAttribute("value");
}
}
return 0;
}
function getExpressInstall(obj) {
if (!obj)
return "";
var c = obj.childNodes;
var cl = c.length;
for (var i = 0; i < cl; i++) {
if (c[i].nodeType == 1 && c[i].nodeName.toLowerCase() == "object") {
c = c[i].childNodes;
cl = c.length;
i = 0;
}
if (c[i].nodeType == 1 && c[i].nodeName.toLowerCase() == "param" && c[i].getAttribute("name") == "expressinstall") {
return c[i].getAttribute("value");
}
}
return "";
}
return {
/* Public API
- Reference: http://code.google.com/p/swfobject/wiki/SWFObject_2_0_documentation
*/
registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr) {
if (!ua.w3cdom || !objectIdStr) {
return;
}
var obj = document.getElementById(objectIdStr);
var xi = getExpressInstall(obj);
var regObj = {};
regObj.id = objectIdStr;
regObj.swfVersion = swfVersionStr ? swfVersionStr : getTargetVersion(obj);
regObj.expressInstall = xiSwfUrlStr ? xiSwfUrlStr : ((xi != "") ? xi : false);
regObjArr[regObjArr.length] = regObj;
setVisibility(objectIdStr, false);
},
getObjectById: function(objectIdStr) {
var r = null;
if (ua.w3cdom && isDomLoaded) {
var o = getElementById(objectIdStr);
if (o) {
var n = o.getElementsByTagName(OBJECT)[0];
if (!n || (n && typeof o.SetVariable != UNDEF)) {
r = o;
}
else if (typeof n.SetVariable != UNDEF) {
r = n;
}
}
}
return r;
},
embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj) {
if (!ua.w3cdom || !swfUrlStr || !replaceElemIdStr || !widthStr || !heightStr || !swfVersionStr) {
return;
}
widthStr += ""; // Auto-convert to string to make it idiot proof
heightStr += "";
if (hasPlayerVersion(swfVersionStr)) {
setVisibility(replaceElemIdStr, false);
var att = (typeof attObj == OBJECT) ? attObj : {};
att.data = swfUrlStr;
att.width = widthStr;
att.height = heightStr;
var par = (typeof parObj == OBJECT) ? parObj : {};
if (typeof flashvarsObj == OBJECT) {
for (var i in flashvarsObj) {
if (flashvarsObj[i] != Object.prototype[i]) { // Filter out prototype additions from other potential libraries
if (typeof par.flashvars != UNDEF) {
par.flashvars += "&" + i + "=" + flashvarsObj[i];
}
else {
par.flashvars = i + "=" + flashvarsObj[i];
}
}
}
}
addDomLoadEvent(function() {
createSWF(att, par, replaceElemIdStr);
if (att.id == replaceElemIdStr) {
setVisibility(replaceElemIdStr, true);
}
});
}
else if (xiSwfUrlStr && !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac)) {
setVisibility(replaceElemIdStr, false);
addDomLoadEvent(function() {
var regObj = {};
regObj.id = regObj.altContentId = replaceElemIdStr;
regObj.width = widthStr;
regObj.height = heightStr;
regObj.expressInstall = xiSwfUrlStr;
showExpressInstall(regObj);
});
}
},
getFlashPlayerVersion: function() {
return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
},
hasFlashPlayerVersion:hasPlayerVersion,
createSWF: function(attObj, parObj, replaceElemIdStr) {
if (ua.w3cdom && isDomLoaded) {
return createSWF(attObj, parObj, replaceElemIdStr);
}
else {
return undefined;
}
},
createCSS: function(sel, decl) {
if (ua.w3cdom) {
createCSS(sel, decl);
}
},
addDomLoadEvent:addDomLoadEvent,
addLoadEvent:addLoadEvent,
getQueryParamValue: function(param) {
var q = doc.location.search || doc.location.hash;
if (param == null) {
return q;
}
if(q) {
var pairs = q.substring(1).split("&");
for (var i = 0; i < pairs.length; i++) {
if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
return pairs[i].substring((pairs[i].indexOf("=") + 1));
}
}
}
return "";
},
// For internal usage only
expressInstallCallback: function() {
if (isExpressInstallActive && storedAltContent) {
var obj = getElementById(EXPRESS_INSTALL_ID);
if (obj) {
obj.parentNode.replaceChild(storedAltContent, obj);
if (storedAltContentId) {
setVisibility(storedAltContentId, true);
if (ua.ie && ua.win) {
storedAltContent.style.display = "block";
}
}
storedAltContent = null;
storedAltContentId = null;
isExpressInstallActive = false;
}
}
}
};
}();

27
sternwarte/TstMailer/package-lock.json generated Normal file
View File

@@ -0,0 +1,27 @@
{
"name": "TstMailer",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"dependencies": {
"nodemailer": "^6.7.5"
}
},
"node_modules/nodemailer": {
"version": "6.7.5",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.5.tgz",
"integrity": "sha512-6VtMpwhsrixq1HDYSBBHvW0GwiWawE75dS3oal48VqRhUvKJNnKnJo2RI/bCVQubj1vgrgscMNW4DHaD6xtMCg==",
"engines": {
"node": ">=6.0.0"
}
}
},
"dependencies": {
"nodemailer": {
"version": "6.7.5",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.5.tgz",
"integrity": "sha512-6VtMpwhsrixq1HDYSBBHvW0GwiWawE75dS3oal48VqRhUvKJNnKnJo2RI/bCVQubj1vgrgscMNW4DHaD6xtMCg=="
}
}
}

View File

@@ -0,0 +1,5 @@
{
"dependencies": {
"nodemailer": "^6.7.5"
}
}

View File

@@ -0,0 +1,99 @@
"use strict";
const nodemailer = require("nodemailer");
// async..await is not allowed in global scope, must use a wrapper
async function dosendmail(develop, from, to, subject, bodyTxt, bodyHtml, bcc, cc) {
let transportOptions =
develop ? {
host: 'mailhog',
port: 1025
} : {
host: "sslout.df.eu",
port: 465,
secure: true, // true for 465, false for other ports
auth: {
user: 'sonderfuehrung@sternwarte-welzheim.de', // generated ethereal user
pass: 'M45-Plejaden', // generated ethereal password
},
}
const buildAddrString = (addr) => {
let list = ""
for (let a of addr) {
list += a + ','
}
list = list.slice(0,-1)
console.log(list)
return list
}
console.log(transportOptions)
// cretae new transporter
let transporter = nodemailer.createTransport(transportOptions)
// send mail with defined transport object
let info = await transporter.sendMail({
from: from, // sender address
to: buildAddrString(to), // list of receivers
subject: subject, // Subject line
text: bodyTxt, // plain text body
html: bodyHtml, // html body
});
console.log("Message sent: %s", info.messageId);
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
}
dosendmail(false, 'anmeldung@sternwarte-welzheim.de', ['rxf@gmx.de', 'rexfue@gmail.com', 'rxf@fuerst-stuttgart.de'], 'der ultimative Test', "Text in polain text", "<h1>Text</h1> in dummene <strong>HTML</strong>").catch(console.error);
/*
function sendmail($subject, $from, $body, $cc=[], $bcc=[], $to=[]) {
global $develop;
$ret = [];
$ret['error'] = false;
$mail = new PHPMailer();
$mail->CharSet = 'utf-8';
$mail->isSMTP();
if ($develop == 'true') {
$mail->Host = 'mailhog';
$mail->Port = 1025;
} else {
$mail->SMTPAuth = true;
$mail->Host = "sslout.df.eu";
$mail->Port = "465";
$mail->SMTPSecure = "ssl";
$mail->Username = "sonderfuehrung@sternwarte-welzheim.de";
$mail->Password = "M45-Plejaden";
}
$mail->setFrom($from);
if (count($to) != 0) {
foreach ($to as $t) {
$mail->addAddress($t);
}
}
$mail->Subject = $subject;
$mail->Body = $body;
if (count($cc) != 0) {
foreach ($cc as $c) {
$mail->addCC($c);
}
}
if(count($bcc) != 0) {
foreach ($bcc as $bc) {
$mail->addBCC($bc);
}
}
$mail->addReplyTo($from);
if (!$mail->send()) {
$ret['error'] = true;
$ret['errortext'] = $mail->ErrorInfo;
}
return $ret;
}
*/

View File

@@ -0,0 +1,308 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css"/>
<![endif]--><!--[if IE]>
<style type="text/css">
<
link href
=
"css/ie.css"
rel
=
"stylesheet"
type
=
"text/css"
/
>
</style>
<![endif]-->
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="/javascript/jquery.js"></script>
<link rel="stylesheet" href="/css/prettyPhoto.css" type="text/css" media="screen" charset="utf-8"/>
<script src="/javascript/jquery.prettyPhoto_3.1.6.js" type="text/javascript" charset="utf-8"></script>
<script src="/javascript/initprettyphoto.js" type="text/javascript" charset="utf-8"></script>
</head>
<body class="thrColFixHdr">
<div id="container">
<?php include 'header.php'; ?>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<?php include 'fdatum.php'; ?>
<?php include 'himmelerg.php'; ?>
</div>
<div id="mainContent">
<h1>Aktuelle Bilder der Mitarbeiter der Sternwarte Welzheim </h1>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Polarlicht_Frickenhofen_2024-05-10_22-18MESZ_MG_g.jpg" rel="prettyPhoto[pw]" title="Polarlichter 11.5.2024 Bildautor: Martin Gertz"><img src="bilder/aktuell/Polarlicht_Frickenhofen_2024-05-10_22-18MESZ_MG_k.jpg" width="145" height="97" alt="Polarlichter Frickenhofer Höhe" /></a></dt>
<dd>Polarlichter</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Polarlicht_SternwarteWelzehim2024-05-11_00-34MESZ_MG_g.jpg" rel="prettyPhoto[pw]" title="Polarlichter 11.5.2024 Bildautor: Martin Gertz"><img src="bilder/aktuell/Polarlicht_SternwarteWelzehim2024-05-11_00-34MESZ_MG_k.jpg" width="145" height="97" alt="Polarlichter über der Sternwarte Welzheim " /></a></dt>
<dd>Polarlichter</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/02_Polarlicht_SternwarteWelzehim2024-05-11_00-15MESZ_MG_g.jpg" rel="prettyPhoto[pw]" title="Polarlichter 11.5.2024 Bildautor: Martin Gertz"><img src="bilder/aktuell/02_Polarlicht_SternwarteWelzehim2024-05-11_00-15MESZ_MG_k.jpg" width="145" height="97" alt="Polarlichter über der Sternwarte Welzheim " /></a></dt>
<dd>Polarlichter</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Polarlicht_SternwarteWelzehim2024-05-11_00-11MESZ_MG_g.jpg" rel="prettyPhoto[pw]" title="Polarlichter 11.5.2024 Bildautor: Martin Gertz"><img src="bilder/aktuell/Polarlicht_SternwarteWelzehim2024-05-11_00-11MESZ_MG_k.jpg" width="145" height="97" alt="Polarlichter über der Sternwarte Welzheim " /></a></dt>
<dd>Polarlichter</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/01_Polarlicht_Frickenhofen_2024-05-10_22-48MESZ_MG_g.jpg" rel="prettyPhoto[pw]" title="Polarlichter 10.5.2024 Bildautor: Martin Gertz"><img src="bilder/aktuell/01_Polarlicht_Frickenhofen_2024-05-10_22-48MESZ_MG_k.jpg" width="145" height="97" alt="Polarlichter Frickenhofer Höhe" /></a></dt>
<dd>Polarlichter</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Polarlichter-Sternwarte-Welzheim-20240510_g.jpg" rel="prettyPhoto[pw]" title="Polarlichter 10.5.2024 Bildautor: Andrea Ess"><img src="bilder/aktuell/Polarlichter-Sternwarte-Welzheim-20240510_k.jpg" width="145" height="97" alt="Polarlichter über der Sternwarte Welzheim " /></a></dt>
<dd>Polarlichter</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne_2024-05-10_11-32MESZ_Ha_farbe_MG_g.jpg" rel="prettyPhoto[pw]" title="Sonnenflecken 10.5.2024 Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne_2024-05-10_11-32MESZ_Ha_farbe_MG_k.jpg" width="145" height="97" alt="Sonnenflecken " /></a></dt>
<dd>Sonnenflecken</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne_2024-05-10_11-32MESZ_Ha_MG_g.jpg" rel="prettyPhoto[pw]" title="Sonnenflecken 10.5.2024 Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne_2024-05-10_11-32MESZ_Ha_MG_k.jpg" width="145" height="97" alt="Sonnenflecken " /></a></dt>
<dd>Sonnenflecken</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne_2024-05-10_10-44MESZ_Con_MG_g.jpg" rel="prettyPhoto[pw]" title="Sonnenflecken 10.5.2024 Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne_2024-05-10_10-44MESZ_Con_MG_k.jpg" width="145" height="97" alt="Sonnenflecken " /></a></dt>
<dd>Sonnenflecken</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/P12-Pons-Brooks1_g.jpg" rel="prettyPhoto[pw]" title="Komet 12P/Pons-Brooks aufgenommen am 11. April 2024 von Christoph Weishaar auf La Palma"><img src="bilder/aktuell/P12-Pons-Brooks1_k.jpg" width="145" height="97" alt="Komet 12P/Pons-Brooks aufgenommen am 11. April 2024 von Christoph Weishaar auf La Palma" /></a></dt>
<dd>Komet 12P/Bons/Brooks</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/sofi-april2024_g.jpg" rel="prettyPhoto[pw]" title="Totale Sonnenfinsternis vom 8. April 2024 aufgenommen von Dr. Steffen Brückner in Torreon / Mexiko."><img src="bilder/aktuell/sofi-april2024_k.jpg" width="145" height="97" alt="Totale Sonnenfinsternis vom 8. April 2024 aufgenommen von Dr. Steffen Brückner in Torreon / Mexiko." /></a></dt>
<dd>Totale Sonnenfinsternis</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/C2022ER-ZTF_2023-01-29_21-45MEZ_CW_g.jpg" rel="prettyPhoto[pw]" title="Komet C/2020 E3 (ZTF) Bildautor: Christoph Weishaar"><img src="bilder/aktuell/C2022ER-ZTF_2023-01-29_21-45MEZ_CW_k.jpg" width="145" height="97" alt="Komet C/2020 E3 (ZTF)" /></a></dt>
<dd>Komet C/2020 E3 (ZTF)</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/NGC1499_2016_12_03g.jpg" rel="prettyPhoto[pw]" title="California Nebel NGC 1499 Bildautor: Martin Gertz"><img src="bilder/aktuell/NGC1499_2016_12_03k.jpg" width="145" height="97" alt="California Nebel NGC 1499" /></a></dt>
<dd>California Nebel NGC 1499</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sofi_2022-10-25_12-00MESZ_g.jpg" rel="prettyPhoto[pw]" title="Partielle Sonnenfinsternis (25.10.2022) Bildautor: Martin Gertz"><img src="bilder/aktuell/Sofi_2022-10-25_12-00MESZ_k.jpg" width="145" height="97" alt="Partielle Sonnenfinsternis" /></a></dt>
<dd>Partielle Sonnenfinsternis</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/sofi-oktober2022g.jpg" rel="prettyPhoto[pw]" title="Partielle Sonnenfinsternis (25.10.2022) Bildautor: Olaf Meyer-Hamme"><img src="bilder/aktuell/sofi-oktober2022k.jpg" width="145" height="97" alt="Partielle Sonnenfinsternis" /></a></dt>
<dd>Partielle Sonnenfinsternis</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Regenbogenbucht_2022-05-11-21-53MESZ_g.jpg" rel="prettyPhoto[pw]" title="Regenbogenbucht (11.05.2022) Bildautor: Martin Gertz"><img src="bilder/aktuell/Regenbogenbucht_2022-05-11-21-53MESZ_k.jpg" width="145" height="97" alt="Regenbogenbucht" /></a></dt>
<dd>Regenbogenbucht</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Rima-Hippalus_2022-05-11-21-15MESZ_g.jpg" rel="prettyPhoto[pw]" title="Rima-Hippalus (11.05.2022) Bildautor: Martin Gertz"><img src="bilder/aktuell/Rima-Hippalus_2022-05-11-21-15MESZ_k.jpg" width="145" height="97" alt="/Rima-Hippalus" /></a></dt>
<dd>Rima-Hippalus</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Montes-Carpatus_2022-05-11-21-18MESZ_g.jpg" rel="prettyPhoto[pw]" title="Montes-Carpatus (11.05.2022) Bildautor: Martin Gertz"><img src="bilder/aktuell/Montes-Carpatus_2022-05-11-21-18MESZ_k.jpg" width="145" height="97" alt="Montes-Carpatus" /></a></dt>
<dd>Montes-Carpatus</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Clavius_2022-05-09_21_59MESZ_g.jpg" rel="prettyPhoto[pw]" title="Clavius (09.05.2022) Bildautor: Martin Gertz"><img src="bilder/aktuell/Clavius_2022-05-09_21_59MESZ_k.jpg" width="145" height="97" alt="Clavius" /></a></dt>
<dd>Clavius</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/LangeWand_2022-05-09_22-03MESZ_g.jpg" rel="prettyPhoto[pw]" title="LangeWand (09.05.2022) Bildautor: Martin Gertz"><img src="bilder/aktuell/LangeWand_2022-05-09_22-03MESZ_k.jpg" width="145" height="97" alt="LangeWand" /></a></dt>
<dd>LangeWand</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mare-Imbrium_Serenitatis_2022-05-09_22-08MESZ_g.jpg" rel="prettyPhoto[pw]" title="Mare-Imbrium_Serenitatis (09.05.2022) Bildautor: Martin Gertz"><img src="bilder/aktuell/Mare-Imbrium_Serenitatis_2022-05-09_22-08MESZ_k.jpg" width="145" height="97" alt="MareImbrium Serenitatis" /></a></dt>
<dd>Mare Imbrium </dd>
</dl> <dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Montes-Apenninus-Caucasus_2022-05-09_g.jpg" rel="prettyPhoto[pw]" title="Montes-Apenninus-Caucasus (09.05.2022) Bildautor: Martin Gertz"><img src="bilder/aktuell/Montes-Apenninus-Caucasus_2022-05-09_k.jpg" width="145" height="97" alt="Montes-Apenninus-Caucasus" /></a></dt>
<dd>Montes-Apenninus-Caucasus</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Triesnecker_2022-05-09_22-08MESZ_g.jpg" rel="prettyPhoto[pw]" title="Triesnecker (09.05.2022) Bildautor: Martin Gertz"><img src="bilder/aktuell/Triesnecker_2022-05-09_22-08MESZ_k.jpg" width="145" height="97" alt="Triesnecker" /></a></dt>
<dd>Triesnecker</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/M87-Jet_2022-03-28g.jpg" rel="prettyPhoto[pw]" title="Materiejet von M87 Bildautor: Markus Mitterhuber"><img src="bilder/aktuell/M87-Jet_2022-03-28k.jpg" width="145" height="97" alt="Materiejet von M87 " /></a></dt>
<dd>Materiejet von M87 </dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mond-TCC-2022-03-09_21-02MEZg.jpg" rel="prettyPhoto[pw]" title="Mondkratertrio Theophilus, Cyrillus und Catharina Bildautor: Martin Gertz"><img src="bilder/aktuell/Mond-TCC-2022-03-09_21-02MEZk.jpg" width="145" height="97" alt="Mondkratertrio Theophilus, Cyrillus und Catharina" /></a></dt>
<dd>Mondkratertrio </dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Neptun-und-Triton_2021-09-24g.jpg" rel="prettyPhoto[pw]" title="Neptun und Triton Bildautor: Markus Mitterhuber"><img src="bilder/aktuell/Neptun-und-Triton_2021-09-24k.jpg" width="145" height="97" alt="Neptun und Triton" /></a></dt>
<dd>Neptun und Triton</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mondkrater_Vlacq_IR_2021-09-24g.jpg" rel="prettyPhoto[pw]" title="Mondkrater Vlacq Bildautor: Markus Mitterhuber"><img src="bilder/aktuell/Mondkrater_Vlacq_IR_2021-09-24k.jpg" width="145" height="97" alt="Mondkrater Vlacq" /></a></dt>
<dd>Mondkrater Vlacq</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Jupiter_231021-g.jpg" rel="prettyPhoto[pw]" title="Jupiter Bildautor: Jörg Nikolaizig"><img src="bilder/aktuell/Jupiter_231021-k.jpg" width="145" height="97" alt="Jupiter" /></a></dt>
<dd>Jupiter</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Cygnus_2021_09_03g.jpg" rel="prettyPhoto[pw]" title="Sternbild Schwan Bildautor: Martin Gertz"><img src="bilder/aktuell/Cygnus_2021_09_03k.jpg" width="145" height="97" alt="Sternbild Schwan" /></a></dt>
<dd>Sternbild Schwan</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sofi_2021-06-10_12-25MESZg.jpg" rel="prettyPhoto[pw]" title="Partielle Sonnenfinsternis (10.06.2021). Bildautor: Martin Gertz"><img src="bilder/aktuell/Sofi_2021-06-10_12-25MESZk.jpg" width="145" height="97" alt="Partielle Sonnenfinsternis" /></a></dt>
<dd>Partielle Sonnenfinsternis </dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/M42_Trapez_2021-03-02g.jpg" rel="prettyPhoto[pw]" title="M42 Trapezsterne das Herz des Orionnebels (02.03.2021) Bildautor: Martin Gertz"><img src="bilder/aktuell/M42_Trapez_2021-03-02k.jpg" width="145" height="97" alt="M42 Trapezsterne" /></a></dt>
<dd>M42 Trapezsterne</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mare-Imbrium-2021-01-22_22-20MEZg.jpg" rel="prettyPhoto[pw]" title="Mare Imbrium (Regenmeer). Neben einer Vielzahl an bekannten Mondkratern und Gebirgszüge findet sich etwa in Bildmitte Thors Hämmerchen (22.02.2021). Bildautor: Martin Gertz"><img src="bilder/aktuell/Mare-Imbrium-2021-01-22_22-20MEZk.jpg" width="145" height="97" alt="Mare Imbrium (Regenmeer)" /></a></dt>
<dd>Mare Imbrium (Regenmeer)</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mondkrater-Kopernikus-2021-02-21g.jpg" rel="prettyPhoto[pw]" title="Mondkrater Kopernikus (21.02.2021) Bildautor: Martin Gertz"><img src="bilder/aktuell/Mondkrater-Kopernikus-2021-02-21k.jpg" width="145" height="97" alt="Mondkrater Kopernikus" /></a></dt>
<dd>Mondkrater Kopernikus</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Montes-Apenninus_2021-02-21_21-45MEZg.jpg" rel="prettyPhoto[pw]" title="Mond Apenninen (21.02.2021) Bildautor: Martin Gertz"><img src="bilder/aktuell/Montes-Apenninus_2021-02-21_21-45MEZk.jpg" width="145" height="97" alt="Mond Apenninen" /></a></dt>
<dd>Mond Apenninen</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Weihnachtsterne2020-12-18-17-32MEZ-g.jpg" rel="prettyPhoto[pw]" title="Weihnachtsstern 2020 aufgenommen am Abend des 18. Dezembers über den Wipfeln des Welzheimer Waldes. Die beiden großen Planeten Jupiter & Saturn näherten sich an, so dass diese am Abend des 21. Dezember nur noch als einzelner Lichtpunkt wahrgenommen werden konnten.
In der Astronomie spricht man von der Großen Konjunktion. Ein friedlicher Anblick ähnlich dem vor 2027 Jahren zur Geburt Christi über der Ortschaft Bethlehem. Bildautor: Martin Gertz"><img src="bilder/aktuell/Weihnachtsterne2020-12-18-17-32MEZ-k.jpg" width="145" height="97" alt="Große Konjunktion Jupiter und Saturn" /></a></dt>
<dd>&quot;Weihnachtstern&quot;</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mars_2020_11_07_21-29MEZ_IR-RGB-3g.jpg" rel="prettyPhoto[pw]" title="Mars Bildautor: Martin Gertz"><img src="bilder/aktuell/Mars_2020_11_07_21-29MEZ_IR-RGB-3k.jpg" width="145" height="97" alt="Mars" /></a></dt>
<dd>Mars</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt> <a href="bilder/aktuell/Mars_LRGB_2020-10-24_23-29MESZg.jpg" rel="prettyPhoto[pw]" title="Mars Bildautor: Martin Gertz"><img src="bilder/aktuell/Mars_LRGB_2020-10-24_23-29MESZk1.jpg" width="145" height="97" alt="Mars" /> </a></dt>
<dd>Mars</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt> <a href="bilder/aktuell/C2020F3-NEOWISE2020-07-11_23-31MESZg.jpg" rel="prettyPhoto[pw]" title="Komet NEOWISE C/2020 F3 Bildautor: Martin Gertz"><img src="bilder/aktuell/C2020F3-NEOWISE2020-07-11_23-31MESZk.jpg" width="145" height="97" alt="Komet NEOWISE C/2020 F3" /> </a></dt>
<dd>Komet NEOWISE C/2020 F3</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/C2020F3-NEOWISE2020-07-11_23-45MESZg.jpg" rel="prettyPhoto[pw]" title="Komet NEOWISE C/2020 F3, Bildautor: Martin Gertz"><img src="bilder/aktuell/C2020F3-NEOWISE2020-07-11_23-45MESZk.jpg" width="145" height="97" alt="Komet NEOWISE C/2020 F3" /></a></dt>
<dd>Komet NEOWISE C/2020 F3</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/neowise1_bearbeitet_komprg.jpg" rel="prettyPhoto[pw]" title="Komet NEOWISE C/2020 F3 Bildautor: Olaf Meyer-Hamme"><img src="bilder/aktuell/neowise1_bearbeitet_komprk.jpg" width="145" height="97" alt="Komet NEOWISE C/2020 F3" /></a></dt>
<dd>Komet NEOWISE C/2020 F3</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/neowise2_bearbeitet_komprg.jpg" rel="prettyPhoto[pw]" title="Komet NEOWISE C/2020 F3, Bildautor: Olaf-Meyer-Hamme"><img src="bilder/aktuell/neowise2_bearbeitet_komprk.jpg" width="145" height="97" alt="Komet NEOWISE C/2020 F3" /></a></dt>
<dd>Komet NEOWISE C/2020 F3</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt> <a href="bilder/aktuell/M36-37-38_2020-03-25g.jpg" rel="prettyPhoto[pw]" title="Sternbild Fuhrmann mit seinen
offenen Sternhaufen M36, 37, 38 und dem Flaming Star Nebula IC 405, Bildautor: Martin Gertz"><img src="bilder/aktuell/M36-37-38_2020-03-25k.jpg" width="145" height="97" alt="Sternbild Fuhrmann" /> </a></dt>
<dd>Sternbild Fuhrmann</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Monduntergang_2020-03-25_19-31MEZg.jpg" rel="prettyPhoto[pw]" title=" Aufnahme des Mondes in Alter von 33 Stunden nach Neumond am 25 März 2020, Bildautor: Martin Gertz"><img src="bilder/aktuell/Monduntergang_2020-03-25_19-31MEZk.jpg" width="145" height="97" alt="Schmale Mondsichel" /></a></dt>
<dd>Mondsichel 25.3. 2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/goldener-Henkelg.jpg' rel="prettyPhoto[pw]" title="Mond mit goldenem Henkel, Bildautor: Olaf Meyer-Hamme"><img src="bilder/aktuell/goldener-Henkelk.jpg" width="145" height="97" alt="Mond mit goldenem Henkel" /></a></dt>
<dd>Mond mit goldenem Henkel</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/Venus-Plejaden_2020-04-02g.jpg' rel="prettyPhoto[pw]" title="Venus und Plejaden am 2.4.2020, Bildautor: Martin Gertz"><img src="bilder/aktuell/Venus-Plejaden_2020-04-02g.jpg" width="145" height="97" alt="Venus und Plejaden" /></a></dt>
<dd>Venus und Plejaden am 2.4.2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/venus-plejaden1g.jpg' rel="prettyPhoto[pw]" title="Venus und Plejaden am 3.4.2020, Bildautor: Hans Dschida"><img src="bilder/aktuell/venus-plejaden1k.jpg" width="145" height="97" alt="Venus und Plejaden am 2.4.2020" /></a></dt>
<dd>Venus und Plejaden am 3.4.2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/venus-plejaden2g.jpg' rel="prettyPhoto[pw]" title="Venus und Plejaden am 3.4.2020, Bildautor: Olaf Meyer-Hamme"><img src="bilder/aktuell/venus-plejaden2k.jpg" width="145" height="97" alt="Venus und Plejaden am 3.4.2020" /></a></dt>
<dd>Venus und Plejaden am 3.4.2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/Venus-Plejaden_2020-04-04g.jpg' rel="prettyPhoto[pw]" title="Venus und Plejaden am 4.4.2020, Bildautor: Martin Gertz"><img src="bilder/aktuell/Venus-Plejaden_2020-04-04k.jpg" width="145" height="97" alt="Venus und Plejaden am 4.4.2020" /></a></dt>
<dd>Venus und Plejaden am 4.4.2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/Mond_2020-03-27_HDRg.jpg' rel="prettyPhoto[pw]" title="Mondsichel mit aschgrauem Mondlicht 27.3.2020, Bildautor: Martin Gertz"><img src="bilder/aktuell/Mond_2020-03-27_HDRk.jpg" width="145" height="97" alt="Venus und Plejaden am 4.4.2020" /></a></dt>
<dd>Mondsichel mit aschgrauem Mondlicht 27.3.2020</dd>
</dl>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. -->
<br class="clearfloat"/>
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,215 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim - Aktuelle Bilder</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/javascript/jquery.js"></script>
<link rel="stylesheet" href="/css/prettyPhoto.css" type="text/css" media="screen" charset="utf-8" />
<script src="/javascript/jquery.prettyPhoto.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$("a[rel^='prettyPhoto']").prettyPhoto({
animationSpeed: 'normal', /* fast/slow/normal */
padding: 20, /* padding for each side of the picture */
opacity: 1, /* Value betwee 0 and 1 */
showTitle: false, /* true/false */
allowresize: true, /* true/false */
counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
theme: 'dark_rounded', /* light_rounded / dark_rounded / light_square / dark_square */
callback: function(){}
});
});
</script>
</head>
<body class="thrColFixHdr">
<p>&lt;h3&gt;Aktuelle Bilder&lt;/h3&gt;&lt;br /&gt;<br />
</p>
<p>&lt;div class=&quot;textklein90&quot;&gt; &lt;a href=&quot;aktuelle-bilder.php&quot;&gt;&lt;img src=&quot;bilder/aktuell/Mars_LRGB_2020-10-24_23-29MESZk.jpg&quot; width=&quot;182&quot; height=&quot;115&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;<br />
Mars 24.10.2020<br />
und weitere Bilder<br />
&lt;/div&gt;</p>
<div id="container">
<?php include 'header.php'; ?>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<?php include 'fdatum.php'; ?>
<?php include 'himmelerg.php'; ?>
</div>
<div id="mainContent">
<h1>Aktuelle Bilder der Mitarbeiter der Sternwarte Welzheim </h1>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Neptun-und-Triton_2021-09-24g.jpg" rel="prettyPhoto[pw]" title="Neptun und Triton Bildautor: Markus Mitterhuber"><img src="bilder/aktuell/Neptun-und-Triton_2021-09-24k.jpg" width="145" height="97" alt="Neptun und Triton" /></a></dt>
<dd>Neptun und Triton</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mondkrater_Vlacq_IR_2021-09-24g.jpg" rel="prettyPhoto[pw]" title="Mondkrater Vlacq Bildautor: Markus Mitterhuber"><img src="bilder/aktuell/Mondkrater_Vlacq_IR_2021-09-24k.jpg" width="145" height="97" alt="Mondkrater Vlacq" /></a></dt>
<dd>Mondkrater Vlacq</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Jupiter_231021-g.jpg" rel="prettyPhoto[pw]" title="Jupiter Bildautor: Jörg Nikolaizig"><img src="bilder/aktuell/Jupiter_231021-k.jpg" width="145" height="97" alt="Jupiter" /></a></dt>
<dd>Jupiter</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Cygnus_2021_09_03g.jpg" rel="prettyPhoto[pw]" title="Sternbild Schwan Bildautor: Martin Gertz"><img src="bilder/aktuell/Cygnus_2021_09_03k.jpg" width="145" height="97" alt="Sternbild Schwan" /></a></dt>
<dd>Sternbild Schwan</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne-2021-10-10_10-07MESZ_Farbeg.jpg" rel="prettyPhoto[pw]" title="Sonne Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne-2021-10-10_10-07MESZ_Farbek.jpg" width="145" height="97" alt="Sonne" /></a></dt>
<dd>Sonne</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne-2021-10-10_10-07MESZg.jpg" rel="prettyPhoto[pw]" title="Sonne (10.10.2021) Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne-2021-10-10_10-07MESZk.jpg" width="145" height="97" alt="Sonne" /></a></dt>
<dd>Sonne</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne_2021-08-14_10-56_MESZ-g.jpg" rel="prettyPhoto[pw]" title="Sonne (14.08.2021) Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne_2021-08-14_10-56_MESZ-k.jpg" width="145" height="97" alt="Sonne" /></a></dt>
<dd>Sonne</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne_H-Alpha_2021-06-13_16-20MESZg.jpg" rel="prettyPhoto[pw]" title="Sonne (13.06.2021) Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne_H-Alpha_2021-06-13_16-20MESZk.jpg" width="145" height="97" alt="Sonne" /></a></dt>
<dd>Sonne</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sofi_2021-06-10_12-25MESZg.jpg" rel="prettyPhoto[pw]" title="Partielle Sonnenfinsternis (10.06.2021). Bildautor: Martin Gertz"><img src="bilder/aktuell/Sofi_2021-06-10_12-25MESZk.jpg" width="145" height="97" alt="Partielle Sonnenfinsternis" /></a></dt>
<dd>Partielle Sonnenfinsternis </dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/M42_Trapez_2021-03-02g.jpg" rel="prettyPhoto[pw]" title="M42 Trapezsterne das Herz des Orionnebels (02.03.2021) Bildautor: Martin Gertz"><img src="bilder/aktuell/M42_Trapez_2021-03-02k.jpg" width="145" height="97" alt="M42 Trapezsterne" /></a></dt>
<dd>M42 Trapezsterne</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mare-Imbrium-2021-01-22_22-20MEZg.jpg" rel="prettyPhoto[pw]" title="Mare Imbrium (Regenmeer). Neben einer Vielzahl an bekannten Mondkratern und Gebirgszüge findet sich etwa in Bildmitte Thors Hämmerchen (22.02.2021). Bildautor: Martin Gertz"><img src="bilder/aktuell/Mare-Imbrium-2021-01-22_22-20MEZk.jpg" width="145" height="97" alt="Mare Imbrium (Regenmeer)" /></a></dt>
<dd>Mare Imbrium (Regenmeer)</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mondkrater-Kopernikus-2021-02-21g.jpg" rel="prettyPhoto[pw]" title="Mondkrater Kopernikus (21.02.2021) Bildautor: Martin Gertz"><img src="bilder/aktuell/Mondkrater-Kopernikus-2021-02-21k.jpg" width="145" height="97" alt="Mondkrater Kopernikus" /></a></dt>
<dd>Mondkrater Kopernikus</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Montes-Apenninus_2021-02-21_21-45MEZg.jpg" rel="prettyPhoto[pw]" title="Mond Apenninen (21.02.2021) Bildautor: Martin Gertz"><img src="bilder/aktuell/Montes-Apenninus_2021-02-21_21-45MEZk.jpg" width="145" height="97" alt="Mond Apenninen" /></a></dt>
<dd>Mond Apenninen</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Weihnachtsterne2020-12-18-17-32MEZ-g.jpg" rel="prettyPhoto[pw]" title="Weihnachtsstern 2020 aufgenommen am Abend des 18. Dezembers über den Wipfeln des Welzheimer Waldes. Die beiden großen Planeten Jupiter & Saturn näherten sich an, so dass diese am Abend des 21. Dezember nur noch als einzelner Lichtpunkt wahrgenommen werden konnten.
In der Astronomie spricht man von der Großen Konjunktion. Ein friedlicher Anblick ähnlich dem vor 2027 Jahren zur Geburt Christi über der Ortschaft Bethlehem. Bildautor: Martin Gertz"><img src="bilder/aktuell/Weihnachtsterne2020-12-18-17-32MEZ-k.jpg" width="145" height="97" alt="Große Konjunktion Jupiter und Saturn" /></a></dt>
<dd>&quot;Weihnachtstern&quot;</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne-2020-11-28_13-03_15-10MEZ_Flecken2786-2785g.jpg" rel="prettyPhoto[pw]" title="Sonnenfleckengruppen 2785 und 2786 Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne-2020-11-28_13-03_15-10MEZ_Flecken2786-2785k.jpg" width="145" height="97" alt="Sonnenflecken" /></a></dt>
<dd>Sonnenflecken 2785 und 2786</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne-2020-11-28_13-03MEZg.jpg" rel="prettyPhoto[pw]" title="Sonnenflecken Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne-2020-11-28_13-03MEZk.jpg" width="145" height="97" alt="Sonnenflecken" /></a></dt>
<dd>Sonnenflecken</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Sonne_2020-11-07_15-29MEZ-SWg.jpg" rel="prettyPhoto[pw]" title="Sonnenflecken Bildautor: Martin Gertz"><img src="bilder/aktuell/Sonne_2020-11-07_15-29MEZ-SWk.jpg" width="145" height="97" alt="Sonnenflecken" /></a></dt>
<dd>Sonnenflecken</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Mars_2020_11_07_21-29MEZ_IR-RGB-3g.jpg" rel="prettyPhoto[pw]" title="Mars Bildautor: Martin Gertz"><img src="bilder/aktuell/Mars_2020_11_07_21-29MEZ_IR-RGB-3k.jpg" width="145" height="97" alt="Mars" /></a></dt>
<dd>Mars</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt> <a href="bilder/aktuell/Mars_LRGB_2020-10-24_23-29MESZg.jpg" rel="prettyPhoto[pw]" title="Mars Bildautor: Martin Gertz"><img src="bilder/aktuell/Mars_LRGB_2020-10-24_23-29MESZk1.jpg" width="145" height="97" alt="Mars" /> </a></dt>
<dd>Mars</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt> <a href="bilder/aktuell/C2020F3-NEOWISE2020-07-11_23-31MESZg.jpg" rel="prettyPhoto[pw]" title="Komet NEOWISE C/2020 F3 Bildautor: Martin Gertz"><img src="bilder/aktuell/C2020F3-NEOWISE2020-07-11_23-31MESZk.jpg" width="145" height="97" alt="Komet NEOWISE C/2020 F3" /> </a></dt>
<dd>Komet NEOWISE C/2020 F3</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/C2020F3-NEOWISE2020-07-11_23-45MESZg.jpg" rel="prettyPhoto[pw]" title="Komet NEOWISE C/2020 F3, Bildautor: Martin Gertz"><img src="bilder/aktuell/C2020F3-NEOWISE2020-07-11_23-45MESZk.jpg" width="145" height="97" alt="Komet NEOWISE C/2020 F3" /></a></dt>
<dd>Komet NEOWISE C/2020 F3</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/neowise1_bearbeitet_komprg.jpg" rel="prettyPhoto[pw]" title="Komet NEOWISE C/2020 F3 Bildautor: Olaf Meyer-Hamme"><img src="bilder/aktuell/neowise1_bearbeitet_komprk.jpg" width="145" height="97" alt="Komet NEOWISE C/2020 F3" /></a></dt>
<dd>Komet NEOWISE C/2020 F3</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/neowise2_bearbeitet_komprg.jpg" rel="prettyPhoto[pw]" title="Komet NEOWISE C/2020 F3, Bildautor: Olaf-Meyer-Hamme"><img src="bilder/aktuell/neowise2_bearbeitet_komprk.jpg" width="145" height="97" alt="Komet NEOWISE C/2020 F3" /></a></dt>
<dd>Komet NEOWISE C/2020 F3</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt> <a href="bilder/aktuell/M36-37-38_2020-03-25g.jpg" rel="prettyPhoto[pw]" title="Sternbild Fuhrmann mit seinen
offenen Sternhaufen M36, 37, 38 und dem Flaming Star Nebula IC 405, Bildautor: Martin Gertz"><img src="bilder/aktuell/M36-37-38_2020-03-25k.jpg" width="145" height="97" alt="Sternbild Fuhrmann" /> </a></dt>
<dd>Sternbild Fuhrmann</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href="bilder/aktuell/Monduntergang_2020-03-25_19-31MEZg.jpg" rel="prettyPhoto[pw]" title=" Aufnahme des Mondes in Alter von 33 Stunden nach Neumond am 25 März 2020, Bildautor: Martin Gertz"><img src="bilder/aktuell/Monduntergang_2020-03-25_19-31MEZk.jpg" width="145" height="97" alt="Schmale Mondsichel" /></a></dt>
<dd>Mondsichel 25.3. 2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/goldener-Henkelg.jpg' rel="prettyPhoto[pw]" title="Mond mit goldenem Henkel, Bildautor: Olaf Meyer-Hamme"><img src="bilder/aktuell/goldener-Henkelk.jpg" width="145" height="97" alt="Mond mit goldenem Henkel" /></a></dt>
<dd>Mond mit goldenem Henkel</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/Venus-Plejaden_2020-04-02g.jpg' rel="prettyPhoto[pw]" title="Venus und Plejaden am 2.4.2020, Bildautor: Martin Gertz"><img src="bilder/aktuell/Venus-Plejaden_2020-04-02g.jpg" width="145" height="97" alt="Venus und Plejaden" /></a></dt>
<dd>Venus und Plejaden am 2.4.2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/venus-plejaden1g.jpg' rel="prettyPhoto[pw]" title="Venus und Plejaden am 3.4.2020, Bildautor: Hans Dschida"><img src="bilder/aktuell/venus-plejaden1k.jpg" width="145" height="97" alt="Venus und Plejaden am 2.4.2020" /></a></dt>
<dd>Venus und Plejaden am 3.4.2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/venus-plejaden2g.jpg' rel="prettyPhoto[pw]" title="Venus und Plejaden am 3.4.2020, Bildautor: Olaf Meyer-Hamme"><img src="bilder/aktuell/venus-plejaden2k.jpg" width="145" height="97" alt="Venus und Plejaden am 3.4.2020" /></a></dt>
<dd>Venus und Plejaden am 3.4.2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/Venus-Plejaden_2020-04-04g.jpg' rel="prettyPhoto[pw]" title="Venus und Plejaden am 4.4.2020, Bildautor: Martin Gertz"><img src="bilder/aktuell/Venus-Plejaden_2020-04-04k.jpg" width="145" height="97" alt="Venus und Plejaden am 4.4.2020" /></a></dt>
<dd>Venus und Plejaden am 4.4.2020</dd>
</dl>
<dl class='meImgpw' style='width: 145px;'>
<dt><a href='bilder/aktuell/Mond_2020-03-27_HDRg.jpg' rel="prettyPhoto[pw]" title="Mondsichel mit aschgrauem Mondlicht 27.3.2020, Bildautor: Martin Gertz"><img src="bilder/aktuell/Mond_2020-03-27_HDRk.jpg" width="145" height="97" alt="Venus und Plejaden am 4.4.2020" /></a></dt>
<dd>Mondsichel mit aschgrauem Mondlicht 27.3.2020</dd>
</dl>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,105 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css" />
<style>
table tr td {border:0}
</style>
</head>
<body class="thrColFixHdr">
<div id="container">
<?php include 'header.php'; ?>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<?php include 'fdatum.php'; ?>
<?php include 'himmelerg.php'; ?>
</div>
<div id="mainContent">
<h2>Der Sternenhimmel im Mai 2024</h2>
<p><img src="bilder/sternenhimmel/HJ24_Himmelsanblick-05-01.jpg" width="590" height="528" alt="Himmelsanblick gegen 3:30 Uhr morgens. Tief am Südosthimmel erblickt man Saturn, an dem der abnehmende Halbmond am 31. Mai vorbeizieht." />
<span class="textklein90"> Himmelsanblick gegen 3:30 Uhr morgens. Tief am Südosthimmel erblickt man Saturn, an dem der abnehmende Halbmond am 31. Mai vorbeizieht. Quelle: KOSMOS HIMMELSJAHR</span></p>
<p> <strong>Planeten:</strong><br>
Der abendliche Sternenhimmel zeigt sich in diesem Mai ohne helle Planeten. Venus eilt am Taghimmel der Sonne nach und wird sie Anfang Juni überholen. Im August erscheint sie dann am Abendhimmel und bleibt über das Jahresende Abendstern. <br>Mars erscheint im letzten Maidrittel am Morgenhimmel. Ab 20. kann der rote Planet in der beginnenden Morgendämmerung am Osthimmel aufgespürt werden. Schon am 5. Mai zeigt sich die abnehmende Mondsichel neben Mars. Um Mars gegen 4 Uhr morgens tief am Osthimmel zu erkennen, ist ein Fernglas empfehlenswert. Saturn im Wassermann ist Planet am Morgenhimmel. Der abnehmende Halbmond begegnet dem Ringplaneten am 31. Mai - ein netter Himmelsanblick tief am Südosthimmel gegen 3:30 Uhr morgens.<br>
Jupiter steht am 18. Mai in Konjunktion mit der Sonne und bleibt nachts unbeobachtbar unter dem Horizont. Auch nach dem flinken Merkur wird man vergeblich Ausschau halten. </p>
<p><strong>Mondphasen:</strong><br>
Zu Monatsbeginn sieht man den abnehmenden Halbmond am Morgenhimmel. Am 5. kommt der Mond mit 363 163 Kilometer in Erdnähe. Drei Tage später, am 8. wird um 5:22 Uhr die Neumondposition erreicht. <br>
Der zunehmende Halbmond kann am 15. im Frühlingssternbild Löwe nahe dem Königsstern Regulus gesehen werden. Zwei Tage später passiert er mit 404 640 Kilometer seinen erdfernsten Bahnpunkt.
Am 23. tritt um 15:53 Uhr die Vollmondphase ein, wobei der hell leuchtende Mond im Sternbild der Waage steht.
</p>
<p><strong>Fixsternhimmel:</strong><br>
Zurzeit ist es recht leicht, sich am Sternenhimmel zurechtzufinden. Denn am Abend
stehen die sieben Sterne des Großen Wagen steil über unseren Köpfen. <br>
Der mittlere Stern in der Wagendeichsel wird Mizar genannt fünfzig Milliarden Kilometer voneinander entfernt, dies entspricht der 335-fachen Distanz Erde Sonne. Aus spektroskopischen Beobachtungen entlarvte man beide Mizarsonnen als jeweils eigene Doppelsterne. Mizar entpuppte sich somit als Vierfachsonne, die 81 Lichtjahre von der Erde entfernt ist. <br>
Wie ein überdimensionaler Zeigefinger deutet die gebogene Wagendeichsel auf den orangen Arktur, den Bärenhüter, Hauptstern im Bild des Bootes, dem Rinderhirt. Arktur gehört zu den zehn hellsten Sternen. Er markiert das eine Eck des Frühlingsdreiecks, zu dem noch Regulus im Löwen und Spica in der Jungfrau gehören. Das Frühlingsdreieck besetzt nun den Südhimmel, wobei die Jungfrau gerade den Meridian durchschreitet. Südlich der Jungfrau stößt man auf das Sternentrapez des Raben. Der Rabe ist ein kleines aber gut einprägsames Sternbild. <br>
Im Nordosten strahlt die blauweiße Wega im Sternbild Leier. <br>
Neben dem Bootes fällt ein kleiner Halbkreis von Sternen auf. Er ist gut zu erkennen, auch wenn seine Sterne nicht besonders hell sind. Er markiert das antike Sternbild Nördliche Krone, lateinisch Corona Borealis. Manche vermuten, dass der Stern T CrB bald wieder einen Helligkeitsausbruch erleiden wird. Bald kann heißen, schon Morgen oder in hundert Jahren.
</p>
<p><strong>Sonnenlauf: </strong> <br>
Die Sonne strebt dem Gipfelpunkt ihrer Jahresbahn entgegen, den sie im nächsten Monat erreicht. Am 14. wechselt sie frühmorgens aus dem Sternbild Widder in das Sternbild Stier. In das Tierkreiszeichen Zwillinge tritt sie am 20. nachmittags. Die Mittagshöhen der Sonne nehmen um sieben Grad zu. Die Tageslänge wächst in Welzheim um eine Stunde und siebzehn Minuten.
</p>
<p><br />
Sternwarte Welzheim / HUK</p>
</div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,94 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css" />
<style>
table tr td {border:0}
</style>
</head>
<body class="thrColFixHdr">
<div id="container">
<?php include 'header.php'; ?>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<?php include 'fdatum.php'; ?>
<?php include 'himmelerg.php'; ?>
</div>
<div id="mainContent">
<h2>Der Sternenhimmel im August 2023</h2>
<p><img src="bilder/sternenhimmel/HJ23_Himmelsanblick-08-01.jpg" width="590" height="545" alt="Anblick des Osthimmels drei Stunden nach Mitternacht. Über dem Osthorizont strahlt Jupiter, zu dem sich am 11. Juli der abnehmende Halbmond gesellt." />
<span class="textklein90"> Anblick des Osthimmels vier Stunden nach Mitternacht. Über dem Osthorizont strahlt Jupiter, zu dem sich am 8. August der abnehmende Halbmond gesellt. Quelle: KOSMOS HIMMELSJAHR</span>
<p>Das Sommerdreieck steht nun hoch im Süden. Steil über unseren Köpfen, fast im Zenit, erblickt man die 25 Lichtjahre entfernte Wega in der Leier. Neben der Leier breitet der Schwan seine Flügel aus. Markiert wird er durch ein großes Sternenkreuz, zu dem man auch „Kreuz des Nordens“ sagt. Man kann sich in dieser Sternenkonstellation einen fliegenden Schwan vorstellen. Dabei ist Deneb der hellste Stern im Schwan. Er markiert die Schwanzspitze. Die Bezeichnung stammt aus dem Arabischen. Deneb heißt so viel wie Schwanz. Von Deneb trennen uns 2500 Lichtjahre. </p>
<p>Atair, der dritte Stern des Sommerdreiecks, bildet den Hauptstern des Adlers, der sich auf seine Beute stürzt. Auch Atair ist arabischen Ursprungs und bedeutet „fliegender Adler“. Mit knapp 17 Lichtjahren Entfernung zählt Atair zu den Nachbarsternen unserer Sonne.Ein wenig östlich vom Adler stößt man auf das kleine aber einprägsame Bild des Delphins.Die sommerliche Milchstraße lädt dazu ein, sie einmal mit einem Fernglas abzutasten, wobei man ein möglichst lichtstarkes Instrument mit weitem Gesichtsfeld benutzen sollte.</p>
<p>Der Große Wagen sinkt im Nordwesten zum Horizont hinunter, erreicht ihn aber in unseren Breiten nicht, denn er ist zirkumpolar. Die Kassiopeia, das Himmels-W, hingegen steigt im Nordosten empor. Am Osthimmel ist das Pegasusquadrat aufgegangen, Vorbote des kommenden Herbstes. Man spricht deshalb vom Herbstviereck.</p>
<p> <strong>Venus </strong>hat ihre Abendsternperiode beendet und erscheint im letzten Monatsdrittel am Morgenhimmel. Ab 22. kann man Venus tief am Osthimmel bis knapp vor Sonnenaufgang aufspüren. Am 22. erfolgt der Venusaufgang gegen halb sechs Uhr morgens. Eine Viertelstunde später kann man Venus erkennen. Bis Ende August verfrühen sich die Venusaufgänge auf 4:45 Uhr. Im Teleskop zeigt Venus eine große schmale Sichel, die im Laufe des August kleiner und dicker wird. Mars hat sich vom Abendhimmel für dieses Jahr verabschiedet. </p>
<p><strong>Jupiter</strong> erscheint am späten Abend am Osthimmel und beherrscht die zweite Nachthälfte. Der Riesenplanet hält sich im Sternbild Widder auf.</p>
<p><strong>Saturn</strong> im Sternbild Wassermann kommt am 27<strong>. in Opposition</strong> zur Sonne und ist die gesamte Nacht beobachtbar. Der fast volle Mond passiert den Ringplaneten in der Nacht vom 30. auf 31. August.<br />
Merkur bleibt unsichtbar bei der Sonne am Taghimmel.</p>
<p>Der <strong>August</strong> ist der aktivste <strong>Sternschnuppenmonat.</strong> In seinen lauen Sommernächten sind besonders viele Sternschnuppen zu sehen. Die Ursache liegt in den Perseïden, deren maximale Tätigkeit in diesem Jahr am 13. August nach Tagesanbruch zu erwarten ist. </p>
<p>Bis zum Morgen sollte daher die Anzahl der Perse<strong>ï</strong>den stetig zunehmen. Die Perse<strong>ï</strong>den sind bis 24. August zu verfolgen. </p>
<p>Helle Objekte, sogenannte Feuerkugeln oder Boliden, sind keine Seltenheit. Als schönster und reichster Strom des Jahres bescheren die Perseïden im Maximum bis zu 100 Sternschnuppen pro Stunde. In den Tagen davor und danach sind immer noch stündlich um die 50 Meteore zu erwarten. Die beste Beobachtungszeit liegt zwischen 22 Uhr und 4 Uhr morgens. </p>
<p><strong>Mondphasen: <br />
</strong>Vollmond wird im August 2023 zweimal erreicht: Am 1. um 20:32&nbsp;Uhr und am 31. um 3:36&nbsp;Uhr. Da der Mond am frühen Abend des 30.&nbsp;mit 357 181 Kilometer auch ein zweites Mal in Erdnähe kommt, so erscheint der Vollmond am größten in diesem Jahr.<br />
Neumond tritt am 16.&nbsp;um 11:38 Uhr ein.</p>
<p>Alle Zeiten MESZ (= Mitteleuropäische Sommerzeit = UTC + 2 Stunde)<br />
<br />
Sternwarte Welzheim / HUK</p>
</div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

50
sternwarte/anfahrt.php Executable file
View File

@@ -0,0 +1,50 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container">
<?php include 'header.php'; ?>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<?php include 'fdatum.php'; ?>
<?php include 'himmelerg.php'; ?>
</div>
<div id="mainContent">
<h1> Lage der Sternwarte und Anfahrtsweg</h1>
<p>Die Sternwarte ist erreichbar &uuml;ber die Straße (L 1150) von
Schorndorf nach Welzheim. Vor Welzheim folgt man an der
Abzweigung nach Langenberg den Schildern „Sternwarte“.<br />
</p>
<p>Der Parkplatz „Sternwarte“ ist ausgeschildert. Von hier f&uuml;hrt
ein Feldweg (ca. 500 m) zur Sternwarte. Dieser darf von
Kraftfahrzeugen nicht befahren werden.<br />
</p>
<h2>Ort der Sternwarte</h2>
<p>Geographische &Ouml;stliche Länge: 9&deg; 35&prime; 46&Prime;<br />
Koordinaten: N&ouml;rdliche Breite: 48&deg; 52&prime; 27&Prime;<br />
H&ouml;he &uuml;ber NN: 547 m </p>
<p><strong><img src="bilder/anfahrt.gif" width="589" height="297" alt="Anfahrt zur Sternwarte Welzheim" /></strong></p>
<h2>&nbsp;</h2>
<p><a href="bilder/Anfahrt-Parken-Sternwarte-Welzheim.pdf">Download</a> detaillierte Anfahrtskarte zur Sternwarte Welzheim.</p>
<p><a href="https://www.google.com/maps/dir//48.8708135,9.5983502/@48.8700591,9.5947596,1521m/data=!3m1!1e3!4m2!4m1!3e0" target="_blank">Routenplanung</a> mit Google Maps zum Parkplatz der Sternwarte Welzheim.</p>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

498
sternwarte/anmeldung.php Normal file
View File

@@ -0,0 +1,498 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css"/>
<![endif]-->
<!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css"/>
</style>
<![endif]-->
<link href="css/jquery-ui.min.css" rel="stylesheet" type="text/css"/>
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css"/>
<script src="javascript/jquery-1.11.0.min.js"></script>
<script src="javascript/jquery-ui-1.10.0.custom.min.js"></script>
<script src="javascript/sternwarte.js"></script>
</head>
<body class="thrColFixHdr">
<div id="container">
<?php include 'header.php'; ?>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<?php include 'fdatum.php'; ?>
<?php include 'himmelerg.php'; ?>
</div>
<div id="datenschutz"></div>
<?php
include 'phpmailer/dosendmail.php';
// ---------- globale Konstanten
$vorlauf = 24;
$monthstoadd = '+ 4 month';
?>
<?php
// Aus den 3 Einträgen aus der 'fdatum' table ein leserliches Datum erzeugen
// Parameter:
// $wt -> Wochentag
// $dat -> Datum
// $ti -> Uhrzeit
// Return: Datuns/Zeit-String
function buildDate($wt,$dat,$ti) {
$dat = preg_replace('#^(\d{4})(\d{2})(\d{2})$#', '\3.\2.\1', $dat);
$r = substr($wt,0,2) . ", " . $dat . " " . $ti;
return $r;
}
function holdasdatum($fid) {
global $db;
$sql_sel = "SELECT datum FROM fdatum1 where id = '$fid'";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
$data = $result->fetch_row()[0];
return intval($data);
}
// Aus der DB aus der Table 'fdatum' den Eintrag für $fid holen
// und als Datum/Zeit-String übergeben
// Parameter:
// $fid -> id des Führungsdatums in der Datenbank-Tabelle
// Return: Datum/zeit-String
function holDate($fid) {
global $db;
$sql_sel = "SELECT wtag, datum, uhrzeit FROM fdatum1 where id = '$fid'";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
$ret = array();
$ret[] = $data['wtag'];
$ret[] = $data['datum'];
$ret[] = $data['uhrzeit'];
$ret[] = buildDate($data['wtag'], $data['datum'], $data['uhrzeit']);
return $ret;
}
// die Daten der nächsten Führungen für $monthstoadd Monate in ein Array holen
// Parameter -
// Retunrn: Array mit allen Werte aus der Table
function getNextFuehrungen() {
global $db, $vorlauf, $monthstoadd;
$erg = array();
$toadd = '+' . $vorlauf . 'hour';
$dt = new DateTime($toadd);
$datum_heute = $dt->format('Ymd');
$enddatum = new DateTime('now');
$enddatum->modify($monthstoadd);
$enddatum = $enddatum->format('Ymd');
$sql_sel = "SELECT * FROM fdatum1 where datum >='$datum_heute' && datum <= '$enddatum' order by datum ASC";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
while ($row = mysqli_fetch_assoc($result)) {
foreach ($row as $key => $value) {
$entry[$key] = $value;
}
$erg[] = $entry;
}
return $erg;
}
// 'select'-Tag für die Führungen bauen
// Paramter:
// $fuehrungen -> Array mit den kommenden Führungen
// Return: String mit dem HTML-Code
function bauNextFuehrungen($fuehrungen, $maxP, $selected) {
$r = "<label for='ftermin' class='labeltext'>" .
"<strong>Führungsdatum</strong></label>" .
"<select name='ftermin' id='ftermin'>";
foreach ($fuehrungen as $f) {
// $count = $f['count'];
$count = getCountsPerDate($f['datum']);
$r .= "<option value='" . $f['id'] . "'";
if($count >= $maxP) {
$r .= "disabled";
}
if($selected && ($f['id'] == $selected)) {
$r .= ' selected="selected" ';
}
$r .= ">" . buildDate($f['wtag'], $f['datum'], $f['uhrzeit']);
$r .= " &nbsp;&nbsp;&nbsp;Frei: ";
$frei = $maxP-$count;
if ($frei < 0) $frei = 0;
$r .= $frei;
$r .= "</option>";
}
$r .= "</select>";
return $r;
}
// Zählen, wieviele Personen zu einem Führungstermin angemeldet sind
// Parameter:
// $fid -> id des Führungsdatum
// Return: Anzahl der Personen
function getCountsPerDate($fdate) {
global $db;
$sql_stmt = "SELECT SUM(anzahl) AS count FROM anmeldungen WHERE fdatum='$fdate'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
return $data['count'];
}
// prüfen, og der User schon eine Buchung gemacht hat
// Geprüft wird die Email-Adresse. Es werden nur Buchungen in
// Zukunft geprüft.
function isDoppelBuchung($email) {
global $db;
$ret = [];
$ret['doppelt'] = false;
$now = date('Ymd');
$sql_stmt = "SELECT * FROM anmeldungen WHERE email = '$email' AND fdatum > $now";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
return $data;
}
// die kompletten Daten eines Teilnehmers anhand der ID ais der DB holen
?>
<div id="mainContent">
<?
// Hier werden alle notwendigen Variablen eingesammelt ------------------------
if (isset($_POST['submit'])) {
$stern_name = $_REQUEST['name'];
$stern_vorname = $_REQUEST['vorname'];
$stern_strasse = $_REQUEST['strasse'];
$stern_ort = $_REQUEST['ort'];
$stern_plz = $_REQUEST['plz'];
$stern_tel = $_REQUEST['tel'];
$stern_mail = $_REQUEST['mail'];
$stern_teil = $_REQUEST['teil'];
$xxx = array();
$xxx[] = holDate($_REQUEST['ftermin']);
$stern_datum_date = holdasdatum($_REQUEST['ftermin']);
$stern_datum = $xxx[0][3];
$stern_fdlink = $_REQUEST['ftermin'];
$stern_submit = $_REQUEST['submit'];
$stern_actionstern = $_REQUEST['stern_actionstern'];
$stern_remarks = $_REQUEST['remarks'];
} else {
$stern_name = '';
$stern_vorname = '';
$stern_strasse = '';
$stern_ort = '';
$stern_plz = '';
$stern_tel = '';
$stern_mail = '';
$stern_teil = '';
$stern_datum = '';
$stern_datum_date = 19000101;
$stern_submit = '';
$stern_fdlink = '';
$stern_actionstern = '';
$stern_remarks = '';
}
// Hier werden default Werte gesetzt ------------------------
$stern_error_msg = '';
$stern_meldung = '';
$stern_errors = 0;
$andererTermin = "bitte wählen Sie einen anderen Termin";
// ----------------------------------------------------------
switch ($stern_actionstern) {
case 'senden':
// Hier wir geprüft, ob alle Felder ausgefüllt sind ------------------------
if (trim($stern_name) == '') {
$stern_error_msg .= 'Bitte geben Sie Ihren Namen ein.<br />';
$stern_errors++;
}
if (trim($stern_strasse) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Straße ein.<br />';
$stern_errors ++;
}
if (trim($stern_plz) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Postleitzahl ein.<br />';
$stern_errors ++;
}
if (! preg_match("/^[0-9]{5}$/", $stern_plz)) {
$stern_error_msg .= 'Bitte geben Sie bei der Postleitzahl mindestens fünf Ziffern und keine Buchstaben ein.<br />';
$stern_errors ++;
}
if (trim($stern_ort) == '') {
$stern_error_msg .= 'Bitte geben Sie einen Ort ein.<br />';
$stern_errors ++;
}
$stern_mail = trim($stern_mail);
if (!preg_match("/^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}/",
strtolower($stern_mail))) {
$stern_error_msg .= 'Bitte geben Sie eine gültige E-Mail-Adresse ein.<br />';
$stern_errors++;
}
$belegt = getCountsPerDate($stern_datum_date);
$rest = $maxBesucher-$belegt;
if((trim($stern_teil) + $belegt) > $maxBesucher) {
if ($rest <= 0) {
$stern_error_msg .= "Die Führung ist ausgebucht, $andererTermin<br />";
} else {
$stern_error_msg .= "Die Führung ist schon mit $belegt Personen belegt, es ";
if ($rest == 1) {
$stern_error_msg .= "kann nur noch 1 Person ";
} else {
$stern_error_msg .= "können höchstens noch $rest Personen ";
}
$stern_error_msg .= "angemeldet werden.<br />";
}
$stern_errors++;
}
$teilnehmer = isDoppelBuchung($stern_mail);
if($teilnehmer != null) {
$stern_error_msg = "Dies ist eine Doppelbuchung. Sie wird <strong>nicht</strong> gespeichert.<br /><br />
Sie können Ihre ursprüngliche Buchung stornieren oder umbuchen über die Webseite <a href='/storno/index.php'> https://sternwarte-welzheim.de/storno</a><br />
<p><a class='button' href='/index.php'>Abbruch</a></p>";
$stern_errors++;
}
$nun = strtotime("now");
list($w,$d,$t,$s) = holDate($stern_fdlink);
$fz = strtotime("$d" . "t" . substr($t,0,2) . "00");
$dauer = ($fz - $nun) / 3600;
if ($dauer <= $vorlauf) {
$stern_error_msg .= "Die Anmeldung muss <strong>spätestens</strong> $vorlauf Stunden vor Beginn der Führung erfolgen - $andererTermin.<br />";
$stern_errors++;
}
if ($stern_errors == 0) {
$sql_stmt = "INSERT INTO anmeldungen (name, vorname, strasse, plz, stadt, telefon, email, anzahl, fid, remarks, angemeldet, fdatum)" .
" values('$stern_name', '$stern_vorname', '$stern_strasse', '$stern_plz', '$stern_ort', '$stern_tel'," .
"'$stern_mail', '$stern_teil', '$stern_fdlink', '$stern_remarks', CURDATE(), '$stern_datum_date')";
$ins = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$person = $stern_teil == 1 ? "Person" : "Personen";
$body = "\r\nName, Vorname: $stern_name, $stern_vorname \r\n" .
"Strasse: $stern_strasse \r\n" .
"Ort: $stern_plz $stern_ort \r\n" .
"Telefon: $stern_tel \r\n" .
"E-mail: $stern_mail \r\n" .
"Gewünschter Termin: $stern_datum \r\n" .
"Personen: $stern_teil \r\n" .
"Bemerkungen: $stern_remarks \r\n";
$bodya = "Sehr geehrte Dame, sehr geehrter Herr, \r\n\r\n" .
"hiermit bestätigen wir Ihre Anmeldung zu einer Führung auf der Sternwarte Welzheim für\r\n\r\n" .
"$stern_vorname $stern_name am " . preg_replace("/(\d+) Uhr/","um $0",$stern_datum) . " für $stern_teil $person " .
// $stern_teil == 1 ? "Person" : "Personen" .
".\r\n\r\n" .
"Bitte bringen Sie diese Bestätigung als Ausdruck oder digital zur Führung mit. \r\n\r\n".
"Die Führung findet NUR bei sternklarem Himmel statt. Falls der Himmel bedeckt ist \r\n" .
"und die Führung ausfällt, erhalten Sie bis spätestens eine Stunde vor Führungsbeginn \r\n" .
"eine Email. Sie können sich dann gerne zu einem neuen Termin anmelden.\r\n\r\n" .
"Sollten Sie die Anmeldung stornieren oder umbuchen wollen, so können Sie dies über die Webseite " .
"https://sternwarte-welzheim.de/storno selbst durchführen.\r\n" .
"Bei Problemen oder Fragen wenden Sie sich bitte per E-Mail an anmeldung@sternwarte-welzheim.de \r\n\r\n" .
"Mit freundlichen Grüßen\r\n\r\n" .
"Beobachterteam der Sternwarte Welzheim\r\n\r\n" .
"www.sternwarte-welzheim.de";
$betreff = "Anmeldung zu einer Führung auf der Sternwarte Welzheim";
$betreffBeo = "Anmeldung zur Führung in Welzheim am $stern_datum";
mb_internal_encoding('UTF-8');
$betreff = mb_encode_mimeheader($betreff, 'UTF-8', 'Q');
// Mail an den Anfragenden
sendmail($betreff, $defaultabsender, $bodya, [], ['anmeldungen@sternwarte.rexfue.de'], [$stern_mail]);
// Mail an einige BEOs und an die Liste
$beoliste = array(
//"andrea.ess@t-online.de",
//"sonderfuehrung@sternwarte-welzheim.de",
//"martin.gertz@gmx.de",
// "schittenhelm.klaus@gmx.de",
// "planetarium@stuttgart.de",
//"info@planetarium-stuttgart.de",
//"HUK@observatory-stuttgart.de",
"anmeldung@sternwarte-welzheim.de",
);
sendmail($betreffBeo, $defaultabsender, $body, $beoliste, [], ["rexfue@gmail.com"] );
$stern_meldung = "<p>Vielen Dank für Ihre Anmeldung. <br /><br />
Wir freuen uns über Ihren Besuch auf der Sternwarte Welzheim am<br />
<div style='text-align:center;'>" .
preg_replace('/(\d+) Uhr/','um $0',$stern_datum) .
" mit $stern_teil $person.
</div> <br />
Wir haben Ihnen die Anmelde-Bestätigung per Email zugesandt (bitte sehen Sie ggf. auch in Ihrem Spam-Ordner nach).</p>
<p><a class='button' href='/index.php'>Zurück</a></p>";
// Antwortseite
?>
<?PHP echo $stern_meldung;
?>
<?PHP
// Ende Antwortseite
break;
} // Ende if ($errors == 0)
else {
// Layout der Fehlermeldung
$stern_error_msg = '<div id="fehler">' . $stern_error_msg . '</div>';
}
// Wenn ein Fehler aufgetreten ist ($errors != 0), folgt jetzt der default Teil
// d.h. das Eingabeformular wird nochmals angezeigt mit einer Fehlermeldung.
// ----------------------------------------------------------------------------
default:
?>
<h1 style="text-align:center;">Anmeldung zu einer öffentlichen Führung auf der Sternwarte Welzheim</h1>
<p>Die Führungen auf der Sternwarte Welzheim finden <strong>nur bei
sternklarem Himmel</strong> statt.
</p>
<p>
Bitte beachten Sie, dass der Weg zur Sternwarte Welzheim <strong>mit
Kraftfahrzeugen nicht befahren werden darf</strong>. Sie können
Ihre Fahrzeuge auf dem Parkplatz der Sternwarte abstellen. Von hier
führt ein 430 m langer Fußweg zur Sternwarte. Die Temperatur in den
Beobachtungskuppeln entspricht der Außentemperatur. Besonders in
kalten Winternächten ist warme Bekleidung und warmes Schuhwerk
dringend zu empfehlen.
</p>
<p>Die Fernrohre in den Beobachtungskuppeln sind nur über Treppen zu
erreichen. Es besteht leider keine Möglichkeit, Rollstühle in die
Kuppeln mitzunehmen. Für Kleinkinder sind Sternführungen nicht
geeignet.</p>
<p>Betrieb und Arbeit auf der Sternwarte erfolgen ehrenamtlich.
Unterhalt und Aktivit&auml;ten auf der Sternwarte sind nur durch
Ihre Unterstützung m&ouml;glich. Wir bitten daher um eine ensprechende Spende.
</p>
<p>
An einer Führung dürfen nur maximal <strong><?php echo $maxBesucher;?> Personen </strong>teilnehmen.
Sollte die von Ihnen ausgewählte Führung bereits ausgebucht sein, wählen Sie bitte
einen anderen Termin.
</p>
<p>
Sollte die Führung wegen des Wetters ausfallen, erhalten Sie bis
<strong>spätestens eine Stunde</strong> vor Führungsbeginn eine Email. Wir bitten
Sie, sich dann für einen neuen Termin nochmals anzumelden.
</p>
<p>
Wenn Sie alle Felder ausgefüllt und abgeschickt haben (mit dem "Anmeldung senden"-Knopf),
erhalten Sie eine Anmeldebestätigung per e-mail. Diese bitte unbedingt zur Führung
ausgedruckt oder in digitaler Form mitbringen!
<div style="text-align:center;"><strong>Ohne die mitgebrachte Anmeldebestätigung erfolgt
k e i n Einlass.</strong></div>
</p>
<p>
<?PHP echo $stern_error_msg ?>
</p>
<strong>Anmeldung:</strong>
<span class="textklein">(Alle Felder mit '*' müssen ausgefüllt werden)</span><br />
<br />
<div id="formular" class="fltrt">
<form action="anmeldung.php#form" method="post">
<?
echo bauNextFuehrungen(getNextFuehrungen(), $maxBesucher, $stern_fdlink);
?>
<br />
<div id="unterfuedat" class="textklein">Bitte beachten Sie, dass eine
Anmeldung bis spätestens <? echo $vorlauf?> Stunden vor Führungsbeginn erfolgt sein muss!<br/>
Schon belegte Termine können nicht ausgewählt werden (sie werden grau dargestellt).</div><br/>
<br />
<label for="name" class="labeltext">Zuname *</label>
<input
type="text" maxlength="50" name="name"
value="<? echo $stern_name; ?>" id="name" class="textfeld200"/> <br/>
<label for="vorname" class="labeltext">Vorname</label>
<input
type="text" maxlength="50" name="vorname"
value="<? echo $stern_vorname; ?>" id="vorname" class="textfeld200"/><br/>
<br/>
<label for="strasse" class="labeltext"> Straße / Haus-Nr. *</label>
<input type="text" maxlength="60" name="strasse"
value="<? echo $stern_strasse; ?>" id="strasse" class="textfeld200"/><br/>
<label for="ort" class="labeltext">PLZ / Ort *</label>
<input
type="text" maxlength="5" name="plz" id="plz"
value="<?php echo $stern_plz; ?>" class="textfeld20"/>
<input
type="text" maxlength="60" name="ort" id="ort"
value="<?php echo $stern_ort; ?>" class="textfeld100"/> <br/>
<label
for="tel" class="labeltext"> Telefonnummer</label>
<input
type="text" maxlength="50" name="tel" value="<? echo $stern_tel; ?>"
id="tel" class="textfeld200"/> <br/>
<br />
<label for="mail" class="labeltext">E-Mail-Adresse *</label>
<input
type="text" maxlength="120" name="mail"
value="<? echo $stern_mail; ?>" id="mail" class="textfeld200"/><br />
<br />
<label for="teil" class="labeltext">Anzahl Personen*<br/> </label>
<input type="number" step="1" min="1" max="<? echo $maxProPerson ?>" maxlength="120"
name="teil" value="<? echo $stern_teil == "" ? "1" : $stern_teil; ?>" id="teil" class="textfeld20"/>
<span id="maxpro"
class="textklein">(max. <? echo $maxProPerson ?> Personen)</span>
<br />
<div id="unterfuedat" class="textklein">Größere Gruppen können nur als
<a href="sonderfuehrungen.php">Sonderführung</a> angemeldet werden.</div>
<br />
<div id="bemerk">
<label for="remarks" class="labeltext">Bemerkungen</label>
<textarea name="remarks" id="remarks" rows="2" cols="40" class="textfeld200"></textarea><br/>
<br />
</div>
Eine Sternführung findet nur bei <b>sternklarem</b> Wetter statt.<br/>
<p>
Sollten Sie eine Änderung oder Stornierung ihrer Anmeldung wünschen, so können Sie das über die Webseite <a href="/storno/index.php">https://sternwarte-welzheim.de/storno</a> machen.
Wenn Sie an dem gebuchten Termin verhindert sind, bitten wir Sie, rechtzeitig über obige Adresse zu stornieren.
</p>
<p>
<strong>Das Betreten der Sternwarte erfolgt auf eigene
Gefahr. Die Sternführung wird von ehrenamtlichen
Kräften durchgeführt. Bei Ausfall einer Führung kann kein Schadenersatz
geleistet werden.</strong>
</p>
<div id="sendebutton">
<input type="hidden" name="stern_actionstern" value="senden">
<input type="submit" name="submit" value="Anmeldung senden" class="inputtext">
</div>
<button type="button" class="inputtext cancel" onclick="window.location.href='/index.php';">Abbruch</button>
<br /><br />
<p>
Hinweis zum Datenschutz: <a href="" id="dschu">Datenschutzerklärung</a>
</p>
<p class="lastchange">Letzte Änderungen: 2024-05-22 rxf</p>
</form>
</div>
<?
// ----------------------------------------------------------------------------
} // Ende switch($page)
?>
<!-- end #mainContent -->
</div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. -->
<br class="clearfloat"/>
<!-- end #container -->
</div>
</body>
</html>

View File

@@ -0,0 +1,511 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css"/>
<![endif]-->
<!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css"/>
</style>
<![endif]-->
<link href="css/jquery-ui.min.css" rel="stylesheet" type="text/css"/>
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css"/>
<script src="javascript/jquery-1.11.0.min.js"></script>
<script src="javascript/jquery-ui-1.10.0.custom.min.js"></script>
<script src="javascript/sternwarte.js"></script>
</head>
<body class="thrColFixHdr">
<div id="container">
<?php include 'header.php'; ?>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<?php include 'fdatum.php'; ?>
<?php include 'himmelerg.php'; ?>
</div>
<div id="datenschutz"></div>
<?php
include 'phpmailer/dosendmail.php';
// ---------- globale Konstanten
$vorlauf = 24;
$monthstoadd = '+ 1 month';
?>
<?php
// Aus den 3 Einträgen aus der 'fdatum' table ein leserliches Datum erzeugen
// Parameter:
// $wt -> Wochentag
// $dat -> Datum
// $ti -> Uhrzeit
// Return: Datuns/Zeit-String
function buildDate($wt,$dat,$ti) {
$dat = preg_replace('#^(\d{4})(\d{2})(\d{2})$#', '\3.\2.\1', $dat);
$r = substr($wt,0,2) . ", " . $dat . " " . $ti;
return $r;
}
function holdasdatum($fid) {
global $db;
$sql_sel = "SELECT datum FROM fdatum1 where id = '$fid'";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
$data = $result->fetch_row()[0];
return intval($data);
}
// Aus der DB aus der Table 'fdatum' den Eintrag für $fid holen
// und als Datum/Zeit-String übergeben
// Parameter:
// $fid -> id des Führungsdatums in der Datenbank-Tabelle
// Return: Datum/zeit-String
function holDate($fid) {
global $db;
$sql_sel = "SELECT wtag, datum, uhrzeit FROM fdatum1 where id = '$fid'";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
$ret = array();
$ret[] = $data['wtag'];
$ret[] = $data['datum'];
$ret[] = $data['uhrzeit'];
$ret[] = buildDate($data['wtag'], $data['datum'], $data['uhrzeit']);
return $ret;
}
// die Daten der nächsten Führungen für $monthstoadd Monate in ein Array holen
// Parameter -
// Retunrn: Array mit allen Werte aus der Table
function getNextFuehrungen() {
global $db, $vorlauf, $monthstoadd;
$erg = array();
$toadd = '+' . $vorlauf . 'hour';
$dt = new DateTime($toadd);
$datum_heute = $dt->format('Ymd');
$enddatum = new DateTime('now');
$enddatum->modify($monthstoadd);
$enddatum = new DateTime('2022-03-05'); //<<<<<<<<<<<<<<<<<<<<<<
$enddatum = $enddatum->format('Ymd');
$sql_sel = "SELECT * FROM fdatum1 where datum >='$datum_heute' && datum <= '$enddatum' order by datum ASC";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
while ($row = mysqli_fetch_assoc($result)) {
foreach ($row as $key => $value) {
$entry[$key] = $value;
}
$erg[] = $entry;
}
return $erg;
}
// 'select'-Tag für die Führungen bauen
// Paramter:
// $fuehrungen -> Array mit den kommenden Führungen
// Return: String mit dem HTML-Code
function bauNextFuehrungen($fuehrungen, $maxP, $selected) {
$r = "<label for='ftermin' class='labeltext'>" .
"<strong>Führungsdatum</strong></label>" .
"<select name='ftermin' id='ftermin'>";
foreach ($fuehrungen as $f) {
$count = $f['count'];
$r .= "<option value='" . $f['id'] . "'";
if($count >= $maxP) {
$r .= "disabled";
}
if($selected && ($f['id'] == $selected)) {
$r .= ' selected="selected" ';
}
$r .= ">" . buildDate($f['wtag'], $f['datum'], $f['uhrzeit']);
$r .= " &nbsp;&nbsp;&nbsp;Frei: ";
$r .= $maxP-$count;
$r .= "</option>";
}
$r .= "</select>";
return $r;
}
// Zählen, wieviele Personen zu einem Führungstermin angemeldet sind
// Parameter:
// $fid -> id des Führungsdatum
// Return: Anzahl der Personen
function getCountsPerDate($fdate) {
global $db;
$sql_stmt = "SELECT SUM(anzahl) AS count FROM anmeldungen WHERE fdatum='$fdate'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
return $data['count'];
}
// prüfen, og der User schon eine Buchung gemacht hat
// Geprüft wird die Email-Adresse. Es werden nur Buchungen in
// Zukunft geprüft.
function isDoppelBuchung($email) {
global $db;
$ret = [];
$ret['doppelt'] = false;
$now = date('Ymd');
$sql_stmt = "SELECT * FROM anmeldungen WHERE email = '$email' AND fdatum >= $now";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$data = mysqli_fetch_assoc($result);
return $data;
}
// die kompletten Daten eines Teilnehmers anhand der ID ais der DB holen
?>
<div id="mainContent">
<?
// Hier werden alle notwendigen Variablen eingesammelt ------------------------
if (isset($_POST['submit'])) {
$stern_name = $_REQUEST['name'];
$stern_vorname = $_REQUEST['vorname'];
$stern_strasse = $_REQUEST['strasse'];
$stern_ort = $_REQUEST['ort'];
$stern_plz = $_REQUEST['plz'];
$stern_tel = $_REQUEST['tel'];
$stern_mail = $_REQUEST['mail'];
$stern_teil = $_REQUEST['teil'];
$xxx = array();
$xxx[] = holDate($_REQUEST['ftermin']);
$stern_datum_date = holdasdatum($_REQUEST['ftermin']);
$stern_datum = $xxx[0][3];
$stern_fdlink = $_REQUEST['ftermin'];
$stern_submit = $_REQUEST['submit'];
$stern_actionstern = $_REQUEST['stern_actionstern'];
$stern_remarks = $_REQUEST['remarks'];
} else {
$stern_name = '';
$stern_vorname = '';
$stern_strasse = '';
$stern_ort = '';
$stern_plz = '';
$stern_tel = '';
$stern_mail = '';
$stern_teil = '';
$stern_datum = '';
$stern_datum_date = 19000101;
$stern_submit = '';
$stern_fdlink = '';
$stern_actionstern = '';
$stern_remarks = '';
}
// Hier werden default Werte gesetzt ------------------------
$stern_error_msg = '';
$stern_meldung = '';
$stern_errors = 0;
$andererTermin = "bitte wählen Sie einen anderen Termin";
// ----------------------------------------------------------
switch ($stern_actionstern) {
case 'senden':
// Hier wir geprüft, ob alle Felder ausgefüllt sind ------------------------
if (trim($stern_name) == '') {
$stern_error_msg .= 'Bitte geben Sie Ihren Namen ein.<br />';
$stern_errors++;
}
if (trim($stern_strasse) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Straße ein.<br />';
$stern_errors ++;
}
if (trim($stern_plz) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Postleitzahl ein.<br />';
$stern_errors ++;
}
if (! preg_match("/^[0-9]{5}$/", $stern_plz)) {
$stern_error_msg .= 'Bitte geben Sie bei der Postleitzahl mindestens fünf Ziffern und keine Buchstaben ein.<br />';
$stern_errors ++;
}
if (trim($stern_ort) == '') {
$stern_error_msg .= 'Bitte geben Sie einen Ort ein.<br />';
$stern_errors ++;
}
if (!preg_match("/^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}/",
strtolower($stern_mail))) {
$stern_error_msg .= 'Bitte geben Sie eine gültige E-Mail-Adresse ein.<br />';
$stern_errors++;
}
$belegt = getCountsPerDate($stern_datum_date);
$rest = $maxBesucher-$belegt;
if((trim($stern_teil) + $belegt) > $maxBesucher) {
if ($rest <= 0) {
$stern_error_msg .= "Die Führung ist ausgebucht, $andererTermin<br />";
} else {
$stern_error_msg .= "Die Führung ist schon mit $belegt Personen belegt, es ";
if ($rest == 1) {
$stern_error_msg .= "kann nur noch 1 Person ";
} else {
$stern_error_msg .= "können höchstens noch $rest Personen ";
}
$stern_error_msg .= "angemeldet werden.<br />";
}
$stern_errors++;
}
$teilnehmer = isDoppelBuchung($stern_mail);
if($teilnehmer != null) {
$stern_error_msg = "Die ist eine Doppelbuchung. Sie wird <strong>nicht</strong> gespeichert.<br /><br />
Wenn Sie Ihre ursprünglichen Buchung ändern oder stornieren wollen, so senden Sie bitte eine Email an <a href='mailto:anmeldung@sternwarte.de'>anmeldung@sternwarte.de</a><br />
<p><a class='button' href='/index.php'>Abbruch</a></p>";
$stern_errors++;
}
$nun = strtotime("now");
list($w,$d,$t,$s) = holDate($stern_fdlink);
$fz = strtotime("$d" . "t" . substr($t,0,2) . "00");
$dauer = ($fz - $nun) / 3600;
if ($dauer <= $vorlauf) {
$stern_error_msg .= "Die Anmeldung muss <strong>spätestens</strong> $vorlauf Stunden vor Beginn der Führung erfolgen - $andererTermin.<br />";
$stern_errors++;
}
if ($stern_errors == 0) {
$sql_stmt = "INSERT INTO anmeldungen (name, vorname, strasse, plz, stadt, telefon, email, anzahl, fid, remarks, angemeldet, fdatum)" .
" values('$stern_name', '$stern_vorname', '$stern_strasse', '$stern_plz', '$stern_ort', '$stern_tel'," .
"'$stern_mail', '$stern_teil', '$stern_fdlink', '$stern_remarks', CURDATE(), '$stern_datum_date')";
$ins = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$sql_stmt = "UPDATE fdatum1 SET count = count + '$stern_teil' WHERE datum = '$stern_datum_date'";
$ins = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$person = $stern_teil == 1 ? "Person" : "Personen";
$body = "\r\nName, Vorname: $stern_name, $stern_vorname \r\n" .
"Strasse: $stern_strasse \r\n" .
"Ort: $stern_plz $stern_ort \r\n" .
"Telefon: $stern_tel \r\n" .
"E-mail: $stern_mail \r\n" .
"Gewünschter Termin: $stern_datum \r\n" .
"Teilnehmerzahl: $stern_teil \r\n" .
"Bemerkungen: $stern_remarks \r\n";
$bodya = "Sehr geehrte Dame, sehr geehrter Herr, \r\n\r\n" .
"hiermit bestätigen wir Ihre Anmeldung zu einer Führung auf der Sternwarte Welzheim für\r\n\r\n" .
"$stern_vorname $stern_name am " . preg_replace("/(\d+) Uhr/","um $0",$stern_datum) . " für $stern_teil $person " .
// $stern_teil == 1 ? "Person" : "Personen" .
".\r\n\r\n" .
"Bitte bringen Sie diese Bestätigung als Ausdruck oder digital zur Führung mit. \r\n".
"Ohne diese Bestätigung und 2G-Zertifikat erfolgt ausnahmslos k e i n Einlass.\r\n\r\n" .
"Die Führung findet NUR bei sternklarem Himmel statt. Falls der Himmel bedeckt ist \r\n" .
"und die Führung ausfällt, bitten wir Sie um eine neue Anmeldung.\r\n\r\n" .
"Die Hygienevorschriften sind zu beachten: die Teilnehmer müssen eine medizinische Maske,\r\n" .
"die Mund u n d Nase bedeckt, tragen und den vorgeschriebenen Abstand halten.\r\n\r\n" .
"Nicht teilnehmen dürfen Personen, die in den letzten vierzehn Tagen Kontakt mit einem Coronavirus-Infizierten \r\n" .
"hatten oder Infektionssymptome zeigen.\r\n\r\n" .
"Sollten Sie Fragen haben oder die Anmeldung stornieren wollen, senden Sie bitte eine Email an anmeldung@sternwarte-welzheim.de \n\r\n" .
"Mit freundlichen Grüßen\r\n\r\n" .
"Beobachterteam der Sternwarte Welzheim\r\n\r\n" .
"www.sternwarte-welzheim.de";
$betreff = "Anmeldung zu einer Führung auf der Sternwarte Welzheim";
$betreffBeo = "Anmeldung zur Führung in Welzheim am $stern_datum";
mb_internal_encoding('UTF-8');
$betreff = mb_encode_mimeheader($betreff, 'UTF-8', 'Q');
// Mail an den Anfragenden
sendmail($betreff, $defaultabsender, $bodya, [], ['rexfue@gmail.com'], [$stern_mail]);
// Mail an einige BEOs und an die Liste
$beoliste = array(
//"andrea.ess@t-online.de",
//"sonderfuehrung@sternwarte-welzheim.de",
//"martin.gertz@gmx.de",
// "schittenhelm.klaus@gmx.de",
// "planetarium@stuttgart.de",
//"info@planetarium-stuttgart.de",
//"HUK@observatory-stuttgart.de",
"anmeldung@sternwarte-welzheim.de",
);
sendmail($betreffBeo, $defaultabsender, $body, $beoliste, [], ["rexfue@gmail.com"] );
$stern_meldung = "<p>Vielen Dank für Ihre Anmeldung. <br /><br />
Wir freuen uns über Ihren Besuch auf der Sternwarte Welzheim am<br />
<div style='text-align:center;'>" .
preg_replace('/(\d+) Uhr/','um $0',$stern_datum) .
" mit $stern_teil $person.
</div> <br />
Wir haben Ihnen die Anmelde-Bestätigung per Email zugesandt.</p>
<p><a class='button' href='/index.php'>Zurück</a></p>";
// Antwortseite
?>
<?PHP echo $stern_meldung;
?>
<?PHP
// Ende Antwortseite
break;
} // Ende if ($errors == 0)
else {
// Layout der Fehlermeldung
$stern_error_msg = '<div id="fehler">' . $stern_error_msg . '</div>';
}
// Wenn ein Fehler aufgetreten ist ($errors != 0), folgt jetzt der default Teil
// d.h. das Eingabeformular wird nochmals angezeigt mit einer Fehlermeldung.
// ----------------------------------------------------------------------------
default:
?>
<p style="text-align:center; font-size:120%;">
<strong>Anmeldung zu einer Führung auf der Sternwarte Welzheim</strong>
</p>
<p>
Wegen der Corona-Pandemie dürfen nur angemeldeten Personen an einer Führung in der
Sternwarte Welzheim teilnehmen. Bitte geben Sie unten Ihre Kontaktdaten an.
Nach Maßgabe der aktuellen Corona-Verordnung werden Ihre Daten vier Wochen gespeichert
und anschließend gelöscht.
</p>
<p><strong>Zur Zeit git die 2G-Regel, d.h. es haben nur Personen Zutritt, die nachweislich gegen Corona geimpft oder genesen sind.
Ein 2G-Zertifikat muss vorgelegt werden.</strong><br />
Aus diesem Grund können auch nur Kinder im schulpflichtigen Alter die Sternwarte besuchen.
</p>
<p>
An einer Führung dürfen nur maximal <?php echo $maxBesucher;?> Personen teilnehmen, damit der
vorgeschriebene Sicherheitsabstand eingehalten werden kann. Sollte die von
Ihnen ausgewählte Führung bereits ausgebucht sein, wählen Sie bitte einen anderen Termin.
</p>
<p>
Wenn Sie alle Felder ausgefüllt und abgeschickt haben (mit dem "Anmeldung senden"-Knopf),
erhalten Sie eine Anmeldebestätigung per e-mail. Diese bitte unbedingt zur Führung
ausgedruckt oder in digitaler Form mitbringen!
<div style="text-align:center;"><strong>Ohne die mitgebrachte Anmeldebestätigung und dem Impfzertifikat erfolgt ausnahmslos
k e i n Einlass.</strong></div>
</p>
<p>
Die Hygienevorschriften sind zu beachten: Jeder Teilnehmer muss eine
medizinische Maske, die Mund <strong>und</strong> Nase bedeckt, tragen
und den vorgeschriebenen Abstand einhalten.
Nicht teilnehmen dürfen Personen, die in den letzten vierzehn Tagen Kontakt
mit einem Coronavirus-Infizierten hatten oder Infektionssymptome zeigen.
</p>
<hr/>
<p>Die Führungen auf der Sternwarte Welzheim finden nur bei
sternklarem Himmel statt. Sollte die Führung wegen des Wetters ausfallen, bitten wir
Sie, sich für einen neuen Termin nochmals anzumelden.
</p>
<p>
Bitte beachten Sie, dass der Weg zur Sternwarte Welzheim <strong>mit
Kraftfahrzeugen nicht befahren werden darf</strong>. Sie können
Ihre Fahrzeuge auf dem Parkplatz der Sternwarte abstellen. Von hier
führt ein 430 m langer Fußweg zur Sternwarte. Die Temperatur in den
Beobachtungskuppeln entspricht der Außentemperatur. Besonders in
kalten Winternächten ist warme Bekleidung und warmes Schuhwerk
dringend zu empfehlen.
</p>
<p>Die Fernrohre in den Beobachtungskuppeln sind nur über Treppen zu
erreichen. Es besteht leider keine Möglichkeit, Rollstühle in die
Kuppeln mitzunehmen. Für Kleinkinder sind Sternführungen nicht
geeignet.</p>
<p>Betrieb und Arbeit auf der Sternwarte erfolgen ehrenamtlich.
Unterhalt und Aktivit&auml;ten auf der Sternwarte sind nur durch
Ihre Unterstützung m&ouml;glich. Wir bitten daher um eine ensprechende Spende.
</p>
<p>
<?PHP echo $stern_error_msg ?>
</p>
<strong>Anmeldung:</strong>
<span class="textklein">(Alle Felder mit '*' müssen ausgefüllt werden)</span><br />
<br />
<div id="formular" class="fltrt">
<form action="anmeldung.php#form" method="post">
<?
echo bauNextFuehrungen(getNextFuehrungen(), $maxBesucher, $stern_fdlink);
?>
<br />
<div id="unterfuedat" class="textklein">Bitte beachten Sie, dass eine
Anmeldung bis spätestens <? echo $vorlauf?> Stunden vor Führungsbeginn erfolgt sein muss!<br/>
Schon belegte Termine können nicht ausgewählt werden (sie werden grau dargestellt).</div><br/>
<br />
<label for="name" class="labeltext">Zuname *</label>
<input
type="text" maxlength="50" name="name"
value="<? echo $stern_name; ?>" id="name" class="textfeld200"/> <br/>
<label for="vorname" class="labeltext">Vorname</label>
<input
type="text" maxlength="50" name="vorname"
value="<? echo $stern_vorname; ?>" id="vorname" class="textfeld200"/><br/>
<br/>
<label for="strasse" class="labeltext"> Straße / Haus-Nr. *</label>
<input type="text" maxlength="60" name="strasse"
value="<? echo $stern_strasse; ?>" id="strasse" class="textfeld200"/><br/>
<label for="ort" class="labeltext">PLZ / Ort *</label>
<input
type="text" maxlength="5" name="plz" id="plz"
value="<?php echo $stern_plz; ?>" class="textfeld20"/>
<input
type="text" maxlength="60" name="ort" id="ort"
value="<?php echo $stern_ort; ?>" class="textfeld100"/> <br/>
<label
for="tel" class="labeltext"> Telefonnummer</label>
<input
type="text" maxlength="50" name="tel" value="<? echo $stern_tel; ?>"
id="tel" class="textfeld200"/> <br/>
<br />
<label for="mail" class="labeltext">E-Mail-Adresse *</label>
<input
type="text" maxlength="120" name="mail"
value="<? echo $stern_mail; ?>" id="mail" class="textfeld200"/><br />
<br />
<label for="teil" class="labeltext">Teilnehmerzahl *<br/> <span
class="textklein">(max. <? echo $maxBesucher ?> Personen)</span></label>
<input type="number" step="1" min="1" max="<? echo $maxBesucher ?>" maxlength="120"
name="teil" value="<? echo $stern_teil == "" ? "1" : $stern_teil; ?>" id="teil" class="textfeld20"/> <br/>
<br />
<div id="bemerk">
<label for="remarks" class="labeltext">Bemerkungen</label>
<textarea name="remarks" id="remarks" rows="2" cols="40" class="textfeld200"></textarea><br/>
<br />
</div>
Eine Sternführung findet nur bei <b>sternklarem</b> Wetter statt.<br/>
<p>
Sollten Sie eine Änderung oder Stornierung ihrer Anmeldung wünschen, senden Sie bitte eine E-mail an <a href="mailto:anmeldung@sternwarte-welzheim.de">anmeldung@sternwarte-welzheim.de</a>.
Wenn Sie an dem gebuchten Termin verhindert sind, bitten wir Sie, rechtzeitig eine Abmeldung zu senden.
</p>
<p>
<strong>Das Betreten der Sternwarte erfolgt auf eigene
Gefahr. Die Sternführung wird von ehrenamtlichen
Kräften durchgeführt. Bei Ausfall einer Führung kann kein Schadenersatz
geleistet werden.</strong>
</p>
<div id="sendebutton">
<input type="hidden" name="stern_actionstern" value="senden">
<input type="submit" name="submit" value="Anmeldung senden" class="inputtext">
</div>
<button type="button" class="inputtext cancel" onclick="window.location.href='/index.php';">Abbruch</button>
<br /><br />
<p>
Hinweis zum Datenschutz: <a href="" id="dschu">Datenschutzerklärung</a>
</p>
<p class="lastchange">Letzte Änderungen: 2021-11-29 rxf</p>
</form>
</div>
<?
// ----------------------------------------------------------------------------
} // Ende switch($page)
?>
<!-- end #mainContent -->
</div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. -->
<br class="clearfloat"/>
<!-- end #container -->
</div>
</body>
</html>

View File

@@ -0,0 +1,481 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css"/>
<![endif]-->
<!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css"/>
</style>
<![endif]-->
<link href="css/jquery-ui.min.css" rel="stylesheet" type="text/css"/>
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css"/>
<script src="javascript/jquery-1.11.0.min.js"></script>
<script src="javascript/jquery-ui-1.10.0.custom.min.js"></script>
<script src="javascript/sternwarte.js"></script>
</head>
<body class="thrColFixHdr">
<div id="container">
<?php include 'header.php'; ?>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<?php include 'fdatum.php'; ?>
<?php include 'himmelerg.php'; ?>
</div>
<div id="datenschutz"></div>
<?php
// ---------- globale Konstanten
$vorlauf = 24;
$maxPersonen = 10;
$autofill = false;
?>
<?php
// Aus den 3 Einträgen aus der 'fdatum' table ein leserliches Datum erzeugen
// Parameter:
// $wt -> Wochentag
// $dat -> Datum
// $ti -> Uhrzeit
// Return: Datuns/Zeit-String
function buildDate($wt,$dat,$ti) {
$dat = preg_replace('#^(\d{4})(\d{2})(\d{2})$#', '\3.\2.\1', $dat);
$r = substr($wt,0,2) . ", " . $dat . " " . $ti;
return $r;
}
// Aus der DB aus der Table 'fdatum' den Eintrag für $fid holen
// und als Datum/Zeit-String übergeben
// Parameter:
// $fid -> id des Führungsdatums in der Datenbank-Tabelle
// Return: Datum/zeit-String
function holDate($fid) {
global $db;
$sql_sel = "SELECT wtag, datum, uhrzeit FROM fdatum where id = '$fid'";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error());
$data = mysqli_fetch_assoc($result);
$ret = array();
$ret[] = $data['wtag'];
$ret[] = $data['datum'];
$ret[] = $data['uhrzeit'];
$ret[] = buildDate($data['wtag'], $data['datum'], $data['uhrzeit']);
return $ret;
}
// die Daten der nächsten 30 Führungen in ein Array holen
// Parameter -
// Retunrn: Array mit allen Werte aus der Table
function getNextFuehrungen() {
global $db, $vorlauf;
$erg = array();
$toadd = '+' . $vorlauf . 'hour';
$dt = new DateTime($toadd);
$datum_heute = $dt->format('Ymd');
$sql_sel = "SELECT id, wtag, datum, uhrzeit FROM fdatum where datum >='$datum_heute' order by datum ASC LIMIT 30";
$result = mysqli_query($db, $sql_sel) or die(mysqli_error());
while ($row = mysqli_fetch_row($result)) {
$entry = array();
$entry['fid'] = $row[0];
$entry['weekday'] = $row[1];
$entry['date'] = $row[2];
$entry['time'] = $row[3];
$erg[] = $entry;
}
return $erg;
}
// 'select'-Tag für die Führungen bauen
// Paramter:
// $fuehrungen -> Array mit den kommenden Führungen
// Return: Sring mit dem HTML-Code
function bauNextFuehrungen($fuehrungen, $maxP) {
$r = "<label for='ftermin' class='labeltext'>" .
"<strong>Führungsdatum</strong></label>" .
"<select name='ftermin' id='ftermin'>";
foreach ($fuehrungen as $f) {
$count = getCountsPerDate($f['fid']);
$r .= "<option value='" . $f['fid'] . "'";
if(getCountsPerDate($f['fid']) >= $maxP) {
$r .= "disabled";
}
$r .= ">" . buildDate($f['weekday'],$f['date'],$f['time']);
$r .= " &nbsp;&nbsp;Frei: ";
$r .= $maxP-$count;
$r .= "</option>";
}
$r .= "</select>";
return $r;
}
// Zählen, wieviele Personen zu einem Führungstermin angemeldet sind
// Parameter:
// $fid -> id des Führungsdatum
// Return: Anzahl der Personen
function getCountsPerDate($fid) {
global $db;
$sql_stmt = "SELECT SUM(anzahl) AS count FROM anmeldungen WHERE fid='$fid'";
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error());
$data = mysqli_fetch_assoc($result);
return $data['count'];
}
?>
<div id="mainContent">
<?
// Hier werden alle notwendigen Variablen eingesammelt ------------------------
if (isset($_POST['submit'])) {
$stern_name = $_REQUEST['name'];
$stern_vorname = $_REQUEST['vorname'];
$stern_strasse = $_REQUEST['strasse'];
$stern_ort = $_REQUEST['ort'];
$stern_plz = $_REQUEST['plz'];
$stern_tel = $_REQUEST['tel'];
$stern_mail = $_REQUEST['mail'];
$stern_teil = $_REQUEST['teil'];
$xxx = array();
$xxx[] = holDate($_REQUEST['fdlink']);
$stern_datum = $xxx[0][3];
$stern_fdlink = $_REQUEST['fdlink'];
$stern_submit = $_REQUEST['submit'];
$stern_actionstern = $_REQUEST['stern_actionstern'];
$stern_remarks = $_REQUEST['remarks'];
} else {
$stern_name = '';
$stern_vorname = '';
$stern_strasse = '';
$stern_ort = '';
$stern_tel = '';
$stern_mail = '';
$stern_teil = '';
$stern_datum = '';
$stern_submit = '';
$stern_fdlink = '';
$stern_actionstern = '';
$stern_remarks = '';
}
// Hier werden default Werte gesetzt ------------------------
$stern_error_msg = '';
$stern_meldung = '';
$stern_errors = 0;
$andererTermin = "bitte wählen Sie einen anderen Termin";
// ----------------------------------------------------------
switch ($stern_actionstern) {
case 'senden':
// Hier wir geprüft, ob alle Felder ausgefüllt sind ------------------------
if (trim($stern_name) == '') {
$stern_error_msg .= 'Bitte geben Sie Ihren Namen ein.<br />';
$stern_errors++;
}
/*
if (trim($stern_vorname) == '') {
$stern_error_msg .= 'Bitte geben Sie Ihren Vornamen ein.<br />';
$stern_errors ++;
}
*/
if (trim($stern_strasse) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Straße ein.<br />';
$stern_errors ++;
}
if (trim($stern_plz) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Postleitzahl ein.<br />';
$stern_errors ++;
}
if (! preg_match("/^[0-9]{5}$/", $stern_plz)) {
$stern_error_msg .= 'Bitte geben Sie bei der Postleitzahl mindestens fünf Ziffern und keine Buchstaben ein.<br />';
$stern_errors ++;
}
if (trim($stern_ort) == '') {
$stern_error_msg .= 'Bitte geben Sie einen Ort ein.<br />';
$stern_errors ++;
}
/*
if (trim($stern_tel) == '') {
$stern_error_msg .= 'Bitte geben Sie eine Telefonnummer ein.<br />';
$stern_errors ++;
}
*/
if (!preg_match("/^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}/",
strtolower($stern_mail))) {
$stern_error_msg .= 'Bitte geben Sie eine gültige E-Mail-Adresse ein.<br />';
$stern_errors++;
}
$belegt = getCountsPerDate($stern_fdlink);
$rest = $maxPersonen-$belegt;
if((trim($stern_teil) + $belegt) > $maxPersonen) {
if ($rest <= 0) {
$stern_error_msg .= "Die Führung ist ausgebucht, $andererTermin<br />";
} else {
$stern_error_msg .= "Die Führung ist schon mit $belegt Personen belegt, es ";
if ($rest == 1) {
$stern_error_msg .= "kann nur noch 1 Person ";
} else {
$stern_error_msg .= "können höchstens noch $rest Personen ";
}
$stern_error_msg .= "angemeldet werden.<br />";
}
$stern_errors++;
}
$nun = strtotime("now");
list($w,$d,$t,$s) = holDate($stern_fdlink);
$fzt = substr($fzeit,0,2);
$fz = strtotime("$d" . "t" . substr($t,0,2) . "00");
$dauer = ($fz - $nun) / 3600;
if ($dauer <= $vorlauf) {
$stern_error_msg .= "Die Anmeldung muss <strong>spätestens</strong> $vorlauf Stunden vor Beginn der Führung erfolgen - $andererTermin.<br />";
$stern_errors++;
}
if ($stern_errors == 0) {
$sql_stmt = "INSERT INTO anmeldungen (name, vorname, strasse, plz, stadt, telefon, email, anzahl, fid, remarks, angemeldet)" .
" values('$stern_name', '$stern_vorname', '$stern_strasse', '$stern_plz', '$stern_ort', '$stern_tel'," .
"'$stern_mail', '$stern_teil', '$stern_fdlink', '$stern_remarks', CURDATE())";
$ins = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
$person = $stern_teil == 1 ? "Person" : "Personen";
$body = "\r\nName, Vorname: $stern_name, $stern_vorname \r\n" .
"Strasse: $stern_strasse \r\n" .
"Ort: $stern_plz $stern_ort \r\n" .
"Telefon: $stern_tel \r\n" .
"E-mail: $stern_mail \r\n" .
"Gewünschter Termin: $stern_datum \r\n" .
"Teilnehmerzahl: $stern_teil \r\n" .
"Bemerkungen: $stern_remarks \r\n";
$bodya = "Sehr geehrte Dame, sehr geehrter Herr, \r\n\r\n" .
"hiermit bestätigen wir Ihre Anmeldung zu einer Führung auf der Sternwarte Welzheim für\r\n\r\n" .
"$stern_vorname $stern_name am " . preg_replace("/(\d+) Uhr/","um $0",$stern_datum) . " für $stern_teil $person " .
// $stern_teil == 1 ? "Person" : "Personen" .
".\r\n\r\n" .
"Bitte bringen Sie diese Bestätigung als Ausdruck oder digital zur Führung mit. \r\n".
"Ohne diese Bestätigung erfolgt ausnahmslos k e i n Einlass.\r\n\r\n" .
"Die Führung findet NUR bei sternklarem Himmel statt. Falls der Himmel bedeckt ist \r\n" .
"und die Führung ausfällt, bitten wir Sie um eine neue Anmeldung.\r\n\r\n" .
"Die Hygienevorschriften sind zu beachten: Die Teilnehmer müssen Gesichtsmasken \r\n" .
"tragen und den vorgeschriebenen Abstand halten. " .
"Nicht teilnehmen dürfen Personen, \r\ndie in den letzten vierzehn Tagen Kontakt " .
"mit einem Coronavirus-Infizierten \r\nhatten oder Infektionssymptome zeigen.\r\n\r\n" .
"Mit freundlichen Grüßen\r\n\r\n" .
"Beobachterteam der Sternwarte Welzheim\r\n\r\n" .
"www.sternwarte-welzheim.de";
$betreff = "Anmeldung zu einer Führung auf der Sternwarte Welzheim";
$betreffBeo = "Anmeldung zur Führung in Welzheim am $stern_datum";
mb_internal_encoding('UTF-8');
$betreff = mb_encode_mimeheader($betreff, 'UTF-8', 'Q');
$absender = "noreply@sternwarte-welzheim.de";
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=utf-8";
$headers[] = "From: {$absender}";
$headers[] = "X-Mailer: PHP/" . phpversion();
$headers[] = "Reply-To: {$absender}";
// Mail an den Anfragenden
mail($stern_mail, $betreff, $bodya, implode("\r\n", $headers), "-f noreply@sternwarte-welzheim.de");
mail("rexfue@gmail.com", $betreff, $bodya, implode("\r\n", $headers), "-f noreply@sternwarte-welzheim.de");
// Mail an einige BEOs und an die Liste
$beoliste = array(
//"andrea.ess@t-online.de",
//"sonderfuehrung@sternwarte-welzheim.de",
//"martin.gertz@gmx.de",
// "schittenhelm.klaus@gmx.de",
// "planetarium@stuttgart.de",
//"info@planetarium-stuttgart.de",
//"HUK@observatory-stuttgart.de",
"rexfue@gmail.com",
);
array_pop($headers);
foreach ($beoliste as $to) {
mail($to, $betreffBeo, $body, implode("\r\n", $headers), "-f noreply@sternwarte-welzheim.de");
}
$stern_meldung = "<p>Vielen Dank für Ihre Anmeldung. <br /><br />
Wir freuen uns über Ihren Besuch auf der Sternwarte Welzheim am<br />
<div style='text-align:center;'>" .
preg_replace('/(\d+) Uhr/','um $0',$stern_datum) .
" mit $stern_teil $person.
</div> <br />
Wir haben Ihnen die Anmelde-Bestätigung per Email zugesandt.</p>
<p><a class='button' href='/index.php'>Zurück</a></p>";
// Antwortseite
?>
<?PHP echo $stern_meldung;
?>
<?PHP
// Ende Antwortseite
break;
} // Ende if ($errors == 0)
else {
// Layout der Fehlermeldung
$stern_error_msg = '<div id="fehler">' . $stern_error_msg . '</div>';
}
// Wenn ein Fehler aufgetreten ist ($errors != 0), folgt jetzt der default Teil
// d.h. das Eingabeformular wird nochmals angezeigt mit einer Fehlermeldung.
// ----------------------------------------------------------------------------
default:
?>
<p style="text-align:center; font-size:120%;">
<strong>Anmeldung zu einer Führung auf der Sternwarte Welzheim</strong>
</p>
<p>
Wegen der Corona-Pandemie dürfen nur angemeldeten Personen an einer Führung in der
Sternwarte Welzheim teilnehmen. Bitte geben Sie unten Ihre Kontaktdaten an.
Nach Maßgabe der aktuellen Corona-Verordnung werden Ihre Daten vier Wochen gespeichert
und anschließend gelöscht.
</p>
<p>
An einer Führung dürfen nur maximal zehn Personen teilnehmen, damit der
vorgeschriebene Sicherheitsabstand eingehalten werden kann. Sollte die von
Ihnen ausgewählte Führung bereits ausgebucht sein, wählen Sie bitte einen anderen Termin.
</p>
<p>
Wenn Sie alle Felder ausgefüllt und abgeschickt haben (mit den "Anmeldung senden"-Knopf),
erhalten Sie eine Anmeldebestätigung per e-mail. Diese bitte unbedingt zur Führung
ausgedruckt oder in digitaler Form mitbringen!
<div style="text-align:center;"><strong>Ohne die mitgebrachte Anmeldebestätigung erfolgt ausnahmslos
k e i n Einlass.</strong></div>
</p>
<p>
Die Hygienevorschriften sind zu beachten: Jeder Teilnehmer muss eine
Gesichtsmaske tragen und den vorgeschriebenen Abstand einhalten.
Nicht teilnehmen dürfen Personen, die in den letzten vierzehn Tagen Kontakt
mit einem Coronavirus-Infizierten hatten oder Infektionssymptome zeigen.
</p>
<hr/>
<p>Die Führungen auf der Sternwarte Welzheim finden nur bei
sternklarem Himmel statt. Sollte die Führung wegen des Wetters ausfallen, bitten wir
Sie, sich für einen neuen Termin nochmals anzumelden.
</p>
<p>
Bitte beachten Sie, dass der Weg zur Sternwarte Welzheim <strong>mit
Kraftfahrzeugen nicht befahren werden darf</strong>. Sie können
Ihre Fahrzeuge auf dem Parkplatz der Sternwarte abstellen. Von hier
führt ein 430 m langer Fußweg zur Sternwarte. Die Temperatur in den
Beobachtungskuppeln entspricht der Außentemperatur. Besonders in
kalten Winternächten ist warme Bekleidung und warmes Schuhwerk
dringend zu empfehlen.
</p>
<p>Die Fernrohre in den Beobachtungskuppeln sind nur über Treppen zu
erreichen. Es besteht leider keine Möglichkeit, Rollstühle in die
Kuppeln mitzunehmen. Für Kleinkinder sind Sternführungen nicht
geeignet.</p>
<p>Betrieb und Arbeit auf der Sternwarte erfolgen ehrenamtlich.
Unterhalt und Aktivit&auml;ten auf der Sternwarte sind nur durch
Ihre Unterstützung m&ouml;glich. Wir bitten daher um eine ensprechende Spende.
</p>
<div><a name="form">&nbsp;</a><?PHP echo $stern_error_msg ?></div><br />
<?php
if ($autofill) {
echo '<p><button type="button" id="autofillbutton">Autofill</button></p>';
}
?>
<strong>Anmeldung:</strong>
<span class="textklein">(Alle Felder mit '*' müssen ausgefüllt werden)</span><br />
<br />
<div id="formular" class="fltrt">
<form action="anmeldung.php#form" method="post">
<? echo bauNextFuehrungen(getNextFuehrungen(), $maxPersonen); ?>
<input type="hidden" name="fdlink" id ="fid"><br />
<br style="line-height: 8px" />
<span class="textklein">Bitte beachten Sie, dass eine
Anmeldung bis spätestens <? echo $vorlauf?> Stunden vor Führungsbeginn erfolgt sein muss!<br/>
Schon belegte Termine können nicht ausgewählt werden (sie werden grau dargestellt).</span><br/>
<br />
<label for="name" class="labeltext">Zuname *</label>
<input
type="text" maxlength="50" name="name"
value="<? echo $stern_name; ?>" id="name" class="textfeld200"/> <br/>
<label for="vorname" class="labeltext">Vorname</label>
<input
type="text" maxlength="50" name="vorname"
value="<? echo $stern_vorname; ?>" id="vorname" class="textfeld200"/><br/>
<br/>
<label for="strasse" class="labeltext"> Straße / Haus-Nr. *</label>
<input type="text" maxlength="60" name="strasse"
value="<? echo $stern_strasse; ?>" id="strasse" class="textfeld200"/><br/>
<label for="ort" class="labeltext">PLZ / Ort *</label>
<input
type="text" maxlength="5" name="plz" id="plz"
value="<?php echo $stern_plz; ?>" class="textfeld20"/>
<input
type="text" maxlength="60" name="ort" id="ort"
value="<?php echo $stern_ort; ?>" class="textfeld100"/> <br/>
<label
for="tel" class="labeltext"> Telefonnummer</label>
<input
type="text" maxlength="50" name="tel" value="<? echo $stern_tel; ?>"
id="tel" class="textfeld200"/> <br/>
<br />
<label for="mail" class="labeltext">E-Mail-Adresse *</label>
<input
type="text" maxlength="120" name="mail"
value="<? echo $stern_mail; ?>" id="mail" class="textfeld200"/><br />
<br />
<label for="teil" class="labeltext">Teilnehmerzahl *<br/> <span
class="textklein">(max. <? echo $maxPersonen ?> Personen)</span></label>
<input type="number" step="1" min="1" max="<? echo $maxPersonen ?>" maxlength="120"
name="teil" value="<? echo $stern_teil == "" ? "1" : $stern_teil; ?>" id="teil" class="textfeld20"/> <br/>
<br />
<label for="remarks" class="labeltext">Bemerkungen</label>
<textarea name="remarks" id="remartk" rows="2" cols="40" class="textfeld200"></textarea><br/>
<br />
Eine Sternführung findet nur bei <b>sternklarem</b> Wetter statt.<br/>
<br/>
<strong>Das Betreten der Sternwarte erfolgt auf eigene
Gefahr. Die Sternführung wird von ehrenamtlichen
Kräften durchgeführt. Bei Ausfall einer Führung kann kein Schadenersatz
geleistet werden.</strong><br/>
<p>
<input type="hidden" name="stern_actionstern" value="senden">
<input
type="submit" name="submit" value="Anmeldung senden" class="inputtext"
style="background-color: SkyBlue; height: 40px; font-size: 20px; cursor:pointer;">
</p>
<br />
<p>
Hinweis zum Datenschutz: <a href="" id="dschu">Datenschutzerklärung</a>
</p>
<p>
Bei Problemen mit der Anmeldung bitte eine Email senden an: <a href="mailto:rxf@gmx.de">rxf@gmx.de</a>
</p>
</form>
</div>
<?
// ----------------------------------------------------------------------------
} // Ende switch($page)
?>
<!-- end #mainContent -->
</div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. -->
<br class="clearfloat"/>
<!-- end #container -->
</div>
</body>
</html>

54
sternwarte/ausstellung.php Executable file
View File

@@ -0,0 +1,54 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container">
<div id="header"><img src="bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<h3>Nächste Führung</h3>
<p class="textklein90">
<?php include 'fdatum.php';
?>
<span class="textklein">(Führungen finden nur bei klarem Wetter statt)</span>
<!-- end #sidebar2 -->
</p>
<h3>Aktuell</h3>
<p class="textklein90"><strong>Sternwarte Welzheim <br />
Das Weltall erleben!</strong><br />
<span class="textklein">Ausstellung im Rathaus der Landeshauptstadt Stuttgart 20. Mai bis 10. Juni 2009<br />
<a href="ausstellung.php">weitere Infos</a></span> </p>
<p>&nbsp;</p> <p><a href="http://www.astronomy2009.de/" target="_blank" style="text-decoration:none;"> <img src="bilder/astro2009.jpg" width="182" height="342" alt="Astronomisches Jahr 2009" /></a></p>
</div>
<div id="mainContent">
<p><img src="bilder/leiste_stern.jpg" width="590" height="89" alt="Verschiedene Bilder aus der Ausstellung" class="fltlft"/></p><br />
<h1>Sternwarte Welzheim Das Weltall erleben!</h1>
<p><strong>Ausstellung im Rathaus der Landeshauptstadt Stuttgart 20. Mai bis 10. Juni 2009</strong></p>
<p>An der Sternwarte Welzheim wurden seit 1992 zahlreiche Farbfotos von Himmelsobjekten gemacht, die aufgrund ihrer Qualität europaweite Beachtung fanden und vielfach publiziert wurden. </p>
<p>Im Rahmen einer Ausstellung werden 30 großformatige Bilder mit den schönsten Aufnahmen von Mond, Planeten, Sternhaufen, leuchtenden Gasnebeln und Galaxien ausgestellt. Zusammen mit kurzen Erläuterungen entsteht ein visuelles Potpourri vom Universum, das die Ästhetik von Farben und Formen im Kosmos auf eindrucksvolle Weise vor Augen führt. </p>
<p>Die Ausstellung ist Montag bis Freitag zwischen 8 und 18 Uhr im 3. Obergeschoss des Stuttgarter Rathauses zu besichtigen. Der Zutritt ist frei. <br />
</p>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

81
sternwarte/ausstellung2017.php Executable file
View File

@@ -0,0 +1,81 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container">
<?php include 'header.php'; ?>
<?php include 'navi.php'; ?>
<div id="sidebar2">
<?php include 'fdatum.php'; ?>
<?php include 'himmelerg.php'; ?>
</div>
<div id="mainContent">
<h1>„<strong>Von Welzheim ins Weltall“</strong></h1>
<img src="bilder/aktuell/Museum_Sternwarte.gif" alt=" Mondfinsternis 31.12.2009" width="300" height="437" class="fltlft" />
<strong>ist der Titel einer Sonderausstellung, die vom 3. September bis 29. Oktober 2017 im Museum Welzheim aus Anlass des 25- jährigen Bestehens der Sternwarte Welzheim gezeigt wird.</strong>
<p > Seit nunmehr einem Vierteljahrhundert bietet die Sternwarte Welzheim der Bevölkerung die Möglichkeit, einen Blick in die Tiefen des Weltalls zu werfen. Fast 50.000 Besucherinnen und Besucher der Sternführungen sahen mit den Teleskopen der Sternwarte in den vergangenen 25 Jahren die Gebirge und Krater auf dem Mond, das Ringsystem des Planeten Saturn, die Sichelgestalt unseres Nachbarplaneten Venus, die vier hellen Monde des Jupiters sowie die Wolkenstreifen auf dem Riesenplaneten, Sternhaufen und galaktische Nebel sowie ferne Milchstraßen-systeme in den Tiefen des Universums.</p>
<p > Nicht nur Tausende Mitbürgerinnen und Mitbürger besuchten in den letzten zwanzig Jahren die Sternwarte. Auch interessierte Fachleute kamen in die Sternwarte, die sich inzwischen einen internationalen Ruf erworben hat. Delegationen japanischer und russischer Astronomen und Architekten ließen sich die Teleskope und technischen Einrichtungen zeigen, um Erkenntnisse für die Errichtung eigener Sternwarten zu gewinnen. Unter vielen prominenten Gästen war auch der erste deutsche Astronaut Ulf Merbold, der spontan erklärte, bald wiederzukommen.</p>
<p>Aus Anlass des 25-jährigen Bestehens der Sternwarte Welzheim sind die schönsten Astroaufnahmen, die auf der Sternwarte gewonnen wurden, im Rahmen einer Sonderausstellung im Museum Welzheim zu besichtigen.<strong> </strong></p>
<p>Unter anderem sind folgende Bilder zu sehen: unsere Nachbarmilchstraße, die Andromedagalaxie in drei Millionen Lichtjahren Entfernung, der Orionnebel, ein Sternentstehungsnest, der ringgeschmückte Planet Saturn, der Riesenplanet Jupiter, die totale Sonnenfinsternis vom 11. August 1999, der berühmte Komet Hale-Bopp, der Vorübergang der Venus vor der Sonnenscheibe am 8. Juni 2004, ein so genannter Venustransit - ein extrem seltenes Himmelsereignis. </p>
<p>Die Ausstellungseröffnung findet am 3. September 2017 um 11.30 Uhr im Museum mit einer Einführung zur Ausstellung statt. </p>
<p>Nähere Informationen zu den Öffnungszeiten sowie zu dem Rahmenprogramm auf der Homepage des Museums <a href="http://www.museumwelzheim.de" target="_blank">www.museumwelzheim.de</a>.</p>
<p><span class="textklein90">Text: Heinrich Lindauer, Pressewart Historischer Verein Welzheimer Wald e.V.</span></p>
<p>
<!-- end #mainContent -->
</p>
</div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,377 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>beoanswer</title>
<style type="text/css">
body {
font-family: Helvetica, arial, sans-serif;
font-size: 14px;
line-height: 1.6;
padding-top: 10px;
padding-bottom: 10px;
background-color: white;
padding: 30px; }
body > *:first-child {
margin-top: 0 !important; }
body > *:last-child {
margin-bottom: 0 !important; }
a {
color: #4183C4; }
a.absent {
color: #cc0000; }
a.anchor {
display: block;
padding-left: 30px;
margin-left: -30px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
bottom: 0; }
h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative; }
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
text-decoration: none; }
h1 tt, h1 code {
font-size: inherit; }
h2 tt, h2 code {
font-size: inherit; }
h3 tt, h3 code {
font-size: inherit; }
h4 tt, h4 code {
font-size: inherit; }
h5 tt, h5 code {
font-size: inherit; }
h6 tt, h6 code {
font-size: inherit; }
h1 {
font-size: 28px;
color: black; }
h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color: black; }
h3 {
font-size: 18px; }
h4 {
font-size: 16px; }
h5 {
font-size: 14px; }
h6 {
color: #777777;
font-size: 14px; }
p, blockquote, ul, ol, dl, li, table, pre {
margin: 15px 0; }
hr {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
border: 0 none;
color: #cccccc;
height: 4px;
padding: 0;
}
body > h2:first-child {
margin-top: 0;
padding-top: 0; }
body > h1:first-child {
margin-top: 0;
padding-top: 0; }
body > h1:first-child + h2 {
margin-top: 0;
padding-top: 0; }
body > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child {
margin-top: 0;
padding-top: 0; }
a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0; }
h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
margin-top: 0; }
li p.first {
display: inline-block; }
li {
margin: 0; }
ul, ol {
padding-left: 30px; }
ul :first-child, ol :first-child {
margin-top: 0; }
dl {
padding: 0; }
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px; }
dl dt:first-child {
padding: 0; }
dl dt > :first-child {
margin-top: 0; }
dl dt > :last-child {
margin-bottom: 0; }
dl dd {
margin: 0 0 15px;
padding: 0 15px; }
dl dd > :first-child {
margin-top: 0; }
dl dd > :last-child {
margin-bottom: 0; }
blockquote {
border-left: 4px solid #dddddd;
padding: 0 15px;
color: #777777; }
blockquote > :first-child {
margin-top: 0; }
blockquote > :last-child {
margin-bottom: 0; }
table {
padding: 0;border-collapse: collapse; }
table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
table tr:nth-child(2n) {
background-color: #f8f8f8; }
table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr th :first-child, table tr td :first-child {
margin-top: 0; }
table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }
img {
max-width: 100%; }
span.frame {
display: block;
overflow: hidden; }
span.frame > span {
border: 1px solid #dddddd;
display: block;
float: left;
overflow: hidden;
margin: 13px 0 0;
padding: 7px;
width: auto; }
span.frame span img {
display: block;
float: left; }
span.frame span span {
clear: both;
color: #333333;
display: block;
padding: 5px 0 0; }
span.align-center {
display: block;
overflow: hidden;
clear: both; }
span.align-center > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: center; }
span.align-center span img {
margin: 0 auto;
text-align: center; }
span.align-right {
display: block;
overflow: hidden;
clear: both; }
span.align-right > span {
display: block;
overflow: hidden;
margin: 13px 0 0;
text-align: right; }
span.align-right span img {
margin: 0;
text-align: right; }
span.float-left {
display: block;
margin-right: 13px;
overflow: hidden;
float: left; }
span.float-left span {
margin: 13px 0 0; }
span.float-right {
display: block;
margin-left: 13px;
overflow: hidden;
float: right; }
span.float-right > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: right; }
code, tt {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px; }
pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent; }
.highlight pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre code, pre tt {
background-color: transparent;
border: none; }
sup {
font-size: 0.83em;
vertical-align: super;
line-height: 0;
}
kbd {
display: inline-block;
padding: 3px 5px;
font-size: 11px;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb
}
* {
-webkit-print-color-adjust: exact;
}
@media screen and (min-width: 914px) {
body {
width: 854px;
margin:0 auto;
}
}
@media print {
table, pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
}
</style>
</head>
<body>
<h1 id="toc_0">Anleitung</h1>
<p>Die Webseite hilft bei der Nachbearbeitung von Sonderführungen auf der Sternwarte. Es werden der Reihe nach die relevanten Fragen gestellt, die dann zu beantworten sind. </p>
<ul>
<li><strong>Fand die Führung statt?</strong><br>
Wird benatwortet durch Klick auf <strong>ja</strong> oder <strong>nein</strong>.<br></li>
</ul>
<p>Falls die Führung statt fand, gehts weiter mit:</p>
<ul>
<li><p><strong>Besucher-Anzahl</strong><br>
Hier bitte die tatsächliche Anzahl der Besucher eintragen. Bestätigen mit <em>Return</em> oder durch Klick auf OK. Danach folgt:</p></li>
<li><p><strong>Eine Spende</strong><br>
Es kann gewählt werden, ob eine Barspende eingegangen ist, ob eine Spende überwiesen wird, ob eine Spende in die Spendenkasse
geworfen wurde oder ob keine Spende ausgemacht wurde (z.B. private Führungen). Falls &quot;<em>ist in bar eingegangen</em>&quot; gewäht wurde, kommt:</p></li>
<li><p><strong>Höhe der Barspende</strong><br>
Hier bitte den Betrag in EUR eingeben und wieder mit <em>Return</em> oder Klich aif OK abschließen. </p>
<p>Als Letztes kann noch eine Bemerkung zu der Führung eingegeben werden: </p></li>
<li><p><strong>Bemerkungen (optional)</strong><br>
Diese kann auch leer bleiben. Allerdings <strong>muss</strong> unbeding mit Klick auf OK abgeschlossen werden, sonst gehts nicht weiter.<br>
Danach werden durch Klick auf den <strong>Senden</strong>-Button die Daten an die Datenbank gesendet.</p></li>
</ul>
<p>Falls die Führung <strong>nicht</strong> stattgefunden hat, gehts weiter mit </p>
<ul>
<li><p><strong>Die Führung wurde</strong><br>
<strong>abgestagt</strong> oder <strong>verschoben</strong><br>
Wird <strong>abgesagt</strong> gewählt, erscheint gleich der <strong>Senden</strong>-Button. Die Führung wird dann in der Datenbank als <em>abgesagt</em> markiert.<br>
Wird <strong>verwschoben</strong> gewählt, so erscheint </p></li>
<li><p><strong>Verschoben auf:</strong><br>
und es kann ein neues Datum (mit Uhrzeit) über die aufpoppende Datums-Auswahl gewählt werden. Nach Abschluss mit OK erscheint nun wieder der <strong>Sende</strong>-Button. Durch Klick darauf wird die Führung mit dem neuen Datum als <em>zugesagt</em> in die Datenbank übernommen. Der verantwortliche BEO erhält eine Erinnerungs-Mail.</p>
<p>Während der gesamten Eingabe-Prozedur kann über den <strong>Abbruch</strong>-Button jederzeit der Vorgang abgebrochen und neu begonnen werden.</p></li>
</ul>
<p>rxf 2019-02-04 </p>
</body>
</html>

View File

@@ -0,0 +1,41 @@
#Anleitung
Die Webseite hilft bei der Nachbearbeitung von Sonderführungen auf der Sternwarte. Es werden der Reihe nach die relevanten Fragen gestellt, die dann zu beantworten sind.
* **Fand die Führung statt?**
Wird benatwortet durch Klick auf **ja** oder **nein**.
Falls die Führung statt fand, gehts weiter mit:
* **Besucher-Anzahl**
Hier bitte die tatsächliche Anzahl der Besucher eintragen. Bestätigen mit *Return* oder durch Klick auf OK. Danach folgt:
* **Eine Spende**
Es kann gewählt werden, ob eine Barspende eingegangen ist, ob eine Spende überwiesen wird oder ob keine Spende ausgemacht wurde (z.B. private Führungen). Falss "*ist in bar eingegangen*" gewäht wurde, kommt:
* **Höhe der Barspende**
Hier bitte den Betrag in EUR eingeben und wieder mit *Return* oder Klich aif OK abschließen.
Als Letztes kann noch eine Bemerkung zu der Führung eingegeben werden:
* **Bemerkungen (optional)**
Diese kann auch leer bleiben. Allerdings **muss** unbeding mit Klick auf OK abgeschlossen werden, sonst gehts nicht weiter.
Danach werden durch Klick auf den **Senden**-Button die Daten an die Datenbank gesendet.
Falls die Führung **nicht** stattgefunden hat, gehts weiter mit
* **Die Führung wurde**
**abgestagt** oder **verschoben**
Wird **abgesagt** gewählt, erscheint gleich der **Senden**-Button. Die Führung wird dann in der Datenbank als *abgesagt* markiert.
Wird **verwschoben** gewählt, so erscheint
* **Verschoben auf:**
und es kann ein neues Datum (mit Uhrzeit) über die aufpoppende Datums-Auswahl gewählt werden. Nach Abschluss mit OK erscheint nun wieder der **Sende**-Button. Durch Klick darauf wird die Führung mit dem neuen Datum als *zugesagt* in die Datenbank übernommen. Der verantwortliche BEO erhält eine Erinnerungs-Mail.
Während der gesamten Eingabe-Prozedur kann über den **Abbruch**-Button jederzeit der Vorgang abgebrochen und neu begonnen werden.
rxf 2018-10-17

View File

@@ -0,0 +1,176 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nachbearbeitung</title>
<link rel="stylesheet" type="text/css" media="screen" href="../intern/sofue/css/jquery-ui.min.css" />
<link rel="stylesheet" type="text/css" media="screen" href="../intern/sofue/css/ui.jqgrid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="../intern/sofue/css/jquery-ui-timepicker-addon.css" />
<link href="css/basscss-custom.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" media="screen" href="css/mystyle.css" />
<script type="text/javascript" src="../intern/sofue/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="../intern/sofue/js/i18n/grid.locale-de.js"></script>
<script type="text/javascript" src="../intern/sofue/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="../intern/sofue/js/jquery-ui-1.10.0.custom.min.js"></script>
<script type="text/javascript" src="../intern/sofue/js/jquery-ui-timepicker-addon.js"></script>
<script type="text/javascript" src="../intern/sofue/js/moment.js"></script>
<script type="text/javascript" src="../intern/sofue/js/de.js"></script>
<script type="text/javascript" src="../intern/sofue/js/ajax.js"></script>
<script type="text/javascript" src="js/jquery-ui-slider-access-addon.js"></script>
<script type="text/javascript" src="js/version.js"></script>
<script type="text/javascript" src="js/beoanswer.js"></script>
</head>
<?php
$id = $_GET['id']
?>
<script>
let url_id = <?php echo json_encode($id); ?>;
</script>
<body>
<div id="master" class="container h3 border border-blue m1 bg-darken-1">
<section class="px1">
<h1 id="sofueHead" class="h1 mb0 center">Sonderführung vom <br class="sm-hide"></h1>
<h3 class="h3 mb2 center" id="sofueName">für </h3>
<h2 class="h2 mb3 center bg-yellow">Nachbearbeitung</h2>
<div class="clearfix" >
<div>
<div id="inputstatt" class="mb2 border">
<div class="bold" >Fand die Führung statt?</div>
<div>
<label class="inline">
<input type="radio" id="statt_ja" name="statt" value="ja">
ja
</label>
<label class="inline">
<input type="radio" id="statt_nein" name="statt" value="nein">
nein
</label>
</div>
</div>
<div id="inputabs" class="mb2 border hide">
<div class="bold">Die Führung wurde </div>
<div>
<label class="inline mb2 ">
<input type="radio" id="abges" name="nostatt" value="abgesagt">
abgesagt.
</label>
<label class="inline mb2">
<input type="radio" id="verscho" name="nostatt" value="verschoben">
verschoben.
</label>
</div>
</div>
<div id="verschbn" class="mb2 border hide">
<div class="bold">
<label for="newtermin" class="bold mr2">Verschoben auf:</label>
</div>
<div>
<input type="text" id="newtermin" placeholder="neues Datum wählen">
</div>
</div>
</div>
<div id="besucher" class="mb2 border hide">
<div class="bold">
<label for="beszahl" class="bold mr2">Besucher-Anzahl:</label>
</div>
<div>
<input type="text" id="beszahl" placeholder="Anzahl eingeben">
<button class="btn btn-primary mb1 mr2 ml3 mt1" id="btnOK0">OK</button>
</div>
</div>
<div class="clearfix"></div>
<div id="diespende" class="mb2 border hide">
<div class=" bold">Eine Spende</div>
<div>
<div id="inputspend">
<label class="block"> <input type="radio" id="spendbar"
name="spend" value="bar"> ist in bar eingegangen.
</label>
<label class="block"> <input type="radio"
id="spendueber" name="spend" value="ueberweis"> wird überwiesen.
</label>
<label class="block"> <input type="radio"
id="spendkasse" name="spend" value="kasse"> ist in der Spendenkasse.
</label>
<label class="block mb1"> <input type="radio"
id="spendno" name="spend" value="nospend"> ist nicht vorgesehen.
</label>
</div>
</div>
</div>
<div id="barspend" class="mb2 border hide">
<div class="bold">
<label for="barsp" class="bold mr2">Höhe der Barspende:</label>
</div>
<div>
<input class="mr1" type="text" id="barsp" placeholder="Betrag in EURO">&euro;
<button class="btn btn-primary mb1 mr2 ml3 mt1" id="btnOK1">OK</button>
</div>
</div>
<div class="clearfix"></div>
<div id="remarks" class="mb2 border hide">
<div class="bold">
<label for="remark" class="bold mr2">Bemerkungen (optional):</label>
</div>
<div>
<textarea class="mr1" id="remark" placeholder="Bemerkung"></textarea>
<button class="btn btn-primary mb1 mr2 ml3 mt1" id="btnOK2">OK</button>
</div>
</div>
<div id="fertig" class="mb2 border hide ">
<div class="bold center">
Fertig
</div>
</div>
</div>
<div id="beendet" class="m2 border hide">
<div class="bold center">
Daten in die Datenbank übernommen. <br />
Vielen Dank
</div>
</div>
</section>
<div class="center mt2" id="tosend">
<button class="btn btn-primary mb1 mr2" id="btncancel">Abbruch</button>
<button class="btn btn-primary mb1 mr2" id="btnMan">Anleitung</button>
<button class="btn btn-primary mb1 hide" id="btnsend">Senden</button>
</div>
<!-- Ende von "main" -->
<!-- div für PopUp -->
<div id="maint"></div>
<!-- Info unter Tabelle -->
<div id="author" class="h5 mt2 mb1 py1">
<div id="mailadr" class="left px1">
<a href="mailto:rexfue@gmail.com">mailto:rexfue@gmail.com</a>
</div>
<div id="versn" class="right px1">
</div>
<div class="clearfix"></div>
</div>
<div id='anleitung'></div>
</div>
<!-- container -->
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,53 @@
:root {
--height-w0:45px;
--height-w1:60px;
--height-w2:100px;
--container-width: 30em;
--button-color: black;
--button-background-color: aqua;
}
.btn-primary {
color: #000;
background-color: skyblue;
border-radius: 3px;
}
#master {
border-width: 2px;
}
#author {
border-top: 1px blue solid;
}
.container {
max-width: 30em;
}
#remark {
width: 200px;
/* border: solid 1px blue; */
}
textarea {
line-height: 1.1;
padding: .5rem .5rem;
}
#remarks, #beszahl, #barsp {
/* border: solid 1px green; */
/* float: left; */
}
#btnOK2, #btnOK1, #btnOK0 {
/* border: solid 1px red; */
/* float: left; */
}
#diespende {
clear: both;
}

View File

@@ -0,0 +1,318 @@
/*
*
*******************
2025-06-16:
Da leider kein CRON auf dem Webserver läuft, kann 'checkfuehrung' bis auf
Weiteres nicht weiter gepflegt bzw. ausgeführt werden. 'checkfuehrung' ist
für dieses Programm )beoanswer) hier notwendig.
*******************
*/
$(document).ready(function() {
let sendobject = {
stattgefunden: false,
anzahl: 0,
spende:0,
betrag:0,
rem:'',
newtermin: '1900-01-01',
};
let ajaxURL = '../../intern/sofue/php/sofueDB.php'
$('#versn').html("Version: " + VERSION + ' vom ' + VDATE);
console.log("von php:", url_id);
// Daten der Führung holen
if(url_id != null) {
doAjaxCall_arr(ajaxURL,{cmd: 'GET_ONE', id: url_id}, enterajaxerg);
} else {
alert("Keine ID übergeben");
return false
// throw new Error("Keine ID übergeben");
}
function enterajaxerg(erg) {
console.log(erg)
let t = $('#sofueHead').html();
$('#sofueHead').html(t+(erg.wtermin).substr(0,10));
$('#sofueName').html('für ' + erg.name);
}
// Change bei 'stattgefunden'
$('#inputstatt').change(function() {
let s = $('input[name="statt"]:checked').val();
console.log(s);
if(s == "nein") {
showAbsage();
sendobject.stattgefunden=false;
} else if (s=='ja') {
showBesucher();
sendobject.stattgefunden=true;
}
});
// der JA-Zweig
function showBesucher() {
$('#besucher').removeClass("hide");
}
$('#beszahl').keydown(e=>{
let keycode = e.keyCode || e.which;
if(keycode == 13) {
besucher = $('#beszahl').val();
if($.isNumeric(besucher)) {
console.log(besucher);
sendobject.anzahl = besucher;
showSpende();
} else {
alert("Nur Ziffern eingeben");
}
}
});
$('#btnOK0').click(()=>{
besucher = $('#beszahl').val();
if($.isNumeric(besucher)) {
console.log(besucher);
sendobject.anzahl = besucher;
showSpende();
} else {
alert("Nur Ziffern eingeben");
}
});
function showSpende() {
$('#diespende').removeClass("hide");
}
$('#inputspend').change(function() {
let spende=0;
let s = $('input[name="spend"]:checked').val();
console.log(s);
if(s == "bar") {
spende=1;
showBarspende();
} else {
showRemark();
if (s=='ueberweis') {
spende=2;
} else if (s=='kasse') {
spende=3;
}
}
sendobject.spende = spende;
});
function showBarspende() {
$('#barspend').removeClass("hide");
}
$('#barsp').keydown(e=>{
let keycode = e.keyCode || e.which;
if(keycode == 13) {
let barsp = $('#barsp').val();
if($.isNumeric(barsp)) {
console.log(barsp);
sendobject.betrag = barsp;
showRemark();
} else {
alert("Nur Ziffern eingeben");
}
}
});
$('#btnOK1').click(()=>{
let barsp = $('#barsp').val();
if($.isNumeric(barsp)) {
console.log(barsp);
sendobject.betrag = barsp;
showRemark();
} else {
alert("Nur Ziffern eingeben");
}
});
$('#btnOK2').click(()=>{
sendobject.rem = $('#remark').val();
showFertig();
});
function showRemark() {
let p = $('#btnOK2').offset();
$('#btnOK2').offset({top: p.top-10, left: p.left});
$('#remarks').removeClass('hide');
}
function showFertig() {
$('#fertig').removeClass("hide");
$('#btnsend').removeClass("hide");
}
// der NEIN-Zweig
function showAbsage() {
$('input[name="nostatt"]').prop('checked',"");
$('#inputabs').removeClass("hide");
}
// Change bei 'nicht stattt'
$('#inputabs').change(function() {
let s = $('input[name="nostatt"]:checked').val();
console.log(s);
if(s == "abgesagt") {
showFertig();
} else if (s == "verschoben") {
showVerschoben();
}
});
function showVerschoben() {
$('#verschbn').removeClass("hide");
// Picker für den neuen Termin
$('#newtermin').datetimepicker( // Initialisierung des datetimepickers
{
addSliderAccess: true,
sliderAccessArgs: { touchonly: false },
showOn: 'focus' , // onFocus wird der Picker angezeigt
timeFormat: 'HH:mm',
showMinute: true,
stepMinute: 15,
// showSecond: false,
// showMillisec: false,
// showMicrosec: false,
// showTimezone: false,
hourMin: 13,
dateFormat: "yy-mm-dd", // angezeigt wird in diesem Format
minDate: "+1d", // min Datum: morgen
closeText: "OK", // erst wenn OK geklickt wird, dann gehts weiter
timeText: "Uhrzeit", // Texte dazu
hourText: "Stunde",
onClose: function (dateText, inst) { // was passiert, wenn OK gedrückt wird:
if(dateText != "") {
var dt = moment(dateText).format('YYYY-MM-DD HH:mm');
$("#newtermin").html(dt);
sendobject.newtermin=dt;
showFertig();
}
}
});
}
// Datepicker auf Deutsch einstellen
$.datepicker.regional['de'] = {
closeText: '',
prevText: '<',
nextText: '>',
currentText: '',
monthNames: ['Januar','Februar','M&auml;rz','April','Mai','Juni',
'Juli','August','September','Oktober','November','Dezember'],
monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun',
'Jul','Aug','Sep','Okt','Nov','Dez'],
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
dayNamesShort: ['SON','MON','DIE','MIT','DON','FRE','SAM'],
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
weekHeader: 'KW',
dateFormat: 'yyyy-mm-dd',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['de']); // diese Einstellung nun übernehmen
// Buttons
$('#btncancel').click(()=>location.reload());
$('#btnsend').click(()=>{
console.log("Sende an Datenbank:");
console.log(sendobject);
clearAll(0);
let cmd = {
stattgefunden: sendobject.stattgefunden ? 1 : 0,
id: url_id,
cmd: 'UPDATEAFTER'
};
if(sendobject.stattgefunden) { // der Termin hat stattgefunden
cmd.besucher = sendobject.anzahl;
cmd.remark = sendobject.rem;
cmd.bezahlt = (function() {
console.log("sendobjc:", sendobject);
if( sendobject.spende == 1 ) {
return `bar Kasse (€${sendobject.betrag})`;
} else if (sendobject.spende == 2) {
return 'Überweisung';
} else if (sendobject.spende == 3) {
return 'Spendenkasse';
} else return 'Keine';
})()
} else { // der Termin hat NICHT stattgefunden
cmd.besucher = sendobject.anzahl;
cmd.remark = '';
cmd.bezahlt = 'Keine';
if(sendobject.newtermin != '1900-01-01') {
cmd.wtermin = sendobject.newtermin; // er wurde verlegt, also gibts einen neuen Wunschtermin
} else {
cmd.status = 3; // nicht stattgefunden -> abgesagt
}
}
console.log(cmd);
if(url_id != null) {
doAjaxCall_arr(ajaxURL,cmd,showajaxerg);
}
});
function clearAll(was) {
$('#tosend').addClass('hide');
$('#inputstatt').addClass('hide');
$('#fertig').addClass('hide');
$('#verschbn').addClass('hide');
$('#inputabs').addClass('hide');
$('#besucher').addClass('hide');
$('#diespende').addClass('hide');
$('#barspend').addClass('hide');
$('#remarks').addClass('hide');
}
function showajaxerg(erg) {
console.log("AjaxErg: ", erg);
$('#beendet').removeClass('hide');
}
// Klick auf den Anleitungs-Button
$('#btnMan').click(function() {
$("#anleitung").dialog('open');
});
// 3. Dialog für die Anleitung
// Dieser hat KEINEN Button (wird über das Schließkreuz beendet) und
// eine etwas kleinere Schrift
$("#anleitung").dialog({
autoOpen: false,
width: 400,
modal: true,
position: {my: 'top', at: 'top', of: window },
title: 'Anleitung',
open:
function() {
$(this).load('beoanswer.html');
},
buttons: [
{
text: "Abbrechen",
click : function() {
$(this).dialog("close");
},
width: 150,
}
],
});
});

View File

@@ -0,0 +1,103 @@
/*
* jQuery UI Slider Access
* By: Trent Richardson [http://trentrichardson.com]
* Version 0.2
* Last Modified: 12/12/2011
*
* Copyright 2011 Trent Richardson
* Dual licensed under the MIT and GPL licenses.
* http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
* http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
*
*/
(function ($) {
$.fn.extend({
sliderAccess: function (options) {
options = options || {};
options.touchonly = options.touchonly !== undefined ? options.touchonly : true; // by default only show it if touch device
if (options.touchonly === true && !("ontouchend" in document))
return $(this);
return $(this).each(function (i, obj) {
var $t = $(this),
o = $.extend({}, {
where: 'after',
step: $t.slider('option', 'step'),
upIcon: 'ui-icon-plus',
downIcon: 'ui-icon-minus',
text: false,
upText: '+',
downText: '-',
buttonset: true,
buttonsetTag: 'span',
speed: 150
}, options),
$buttons = $('<' + o.buttonsetTag + ' class="ui-slider-access">' +
'<button data-icon="' + o.downIcon + '" data-step="-' + o.step + '">' + o.downText + '</button>' +
'<button data-icon="' + o.upIcon + '" data-step="' + o.step + '">' + o.upText + '</button>' +
'</' + o.buttonsetTag + '>');
$buttons.children('button').each(function (j, jobj) {
var $jt = $(this),
timeout = null,
increment = function($jt, $t, e) {
var step = $jt.data('step'),
curr = $t.slider('value'),
newval = curr += step * 1,
minval = $t.slider('option', 'min'),
maxval = $t.slider('option', 'max');
e.preventDefault();
if (newval < minval || newval > maxval)
return;
$t.slider('value', newval);
$t.slider("option", "slide").call($t, null, { value: newval });
};
$jt.button({
text: o.text,
icons: { primary: $jt.data('icon') }
})
.bind('touchstart mousedown', function (e) {
increment($jt, $t, e);
timeout = setInterval(function () {
increment($jt, $t, e);
}, o.speed);
});
$(document).bind('touchend mouseup', function (e) {
clearInterval(timeout);
return e.type == 'touchend';
});
});
// before or after
$t[o.where]($buttons);
if (o.buttonset) {
$buttons.removeClass('ui-corner-right').removeClass('ui-corner-left').buttonset();
$buttons.eq(0).addClass('ui-corner-left');
$buttons.eq(1).addClass('ui-corner-right');
}
// adjust the width so we don't break the original layout
var bOuterWidth = $buttons.css({
marginLeft: (o.where == 'after' ? 10 : 0),
marginRight: (o.where == 'before' ? 10 : 0)
}).outerWidth(true) + 5;
var tOuterWidth = $t.outerWidth(true);
// support "always" hide the slider
if (o.hideSlider == 'always' || (o.hideSlider == 'touch' && ("ontouchend" in document))) {
$t.css('display', 'none');
}
else {
$t.css('display', 'inline-block').width(tOuterWidth - bOuterWidth);
}
});
}
});
})(jQuery);

View File

@@ -0,0 +1,17 @@
// VersiosNummern und -Geschichte
var VERSION="1.2";
var VDATE="2024-11-01";
/* History
Rev. Datum Entwickler
1.2 2024-11-01 rxf
- Nur noch ID zur identifizierung der Führung
- Name des Besuchers mit anzeigen
1.1 2018-12-11 rxf
- kleinere Anpassungen
1.0 2018-09-27 rxf
- Los gehts
*/

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<dwsync>
<file name="kat_uebersicht1.php" server="F:/xampp/htdocs/website_sternwarte/" local="128944042832656250" remote="128944042830000000" />
</dwsync>

View File

@@ -0,0 +1,97 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuelles/Collinder.jpg" width="795" height="529" alt="Sternhaufen Collinder 399" /><br />
Sternhaufen Collinder 399<br />
Aufnahme: Martin Gertz
<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell1.php"><img src="../bilder/aktuelles/leier_g.jpg" alt="Sternbild Leier" width="182" height="122" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell2.php"><img src="../bilder/aktuelles/noerdlichekrone_k.jpg" width="182" height="121" alt="Sternbild Nördliche Krone" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell3.php"><img src="../bilder/aktuelles/pfeil_r.jpg" width="182" height="121" alt="Sternbild Pfeil" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell4.php"><img src="../bilder/aktuelles/Gamma-Cygni_k.jpg" width="182" height="121" alt="Gamma Cygni, Sadr" /></a></td>
</tr>
<tr>
<td class="textklein">Sternbild Leier</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Nördliche Krone</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Pfeil</td>
<td>&nbsp;</td>
<td class="textklein">Gamma Cygni, Sadr</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,97 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2">
<p><img src="../bilder/aktuelles/leier.jpg" width="795" height="533" alt="Sternbild Leier" /><br />
Sternbild Leier<br />
Aufnahme:
Martin Gertz<br />
<br />
</p>
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell.php"><img src="../bilder/aktuelles/Collinder_k.jpg" width="182" height="121" alt="Sternhaufen Collinder 399" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell2.php"><img src="../bilder/aktuelles/noerdlichekrone_k.jpg" width="182" height="121" alt="Sternbild Nördliche Krone" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell3.php"><img src="../bilder/aktuelles/pfeil_r.jpg" width="182" height="121" alt="Sternbild Pfeil" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell4.php"><img src="../bilder/aktuelles/Gamma-Cygni_k.jpg" width="182" height="121" alt="Gamma Cygni, Sadr" /></a></td>
</tr>
<tr>
<td class="textklein">Sternhaufen Collinder 399</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Nördliche Krone</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Pfeil</td>
<td>&nbsp;</td>
<td class="textklein">Gamma Cygni, Sadr</td>
</tr>
</table>
<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuelles/noerdlichekrone.jpg" width="795" height="529" alt="Nördliche Krone" /><br />
Sternbild Nördliche Krone<br />
Aufnahme:
Martin Gertz<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell.php"><img src="../bilder/aktuelles/Collinder_k.jpg" width="182" height="121" alt="Sternhaufen Collinder 399" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell1.php"><img src="../bilder/aktuelles/leier_g.jpg" width="182" height="122" alt="Sternbild Leier" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell3.php"><img src="../bilder/aktuelles/pfeil_r.jpg" width="182" height="121" alt="Sternbild Pfeil" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell4.php"><img src="../bilder/aktuelles/Gamma-Cygni_k.jpg" width="182" height="121" alt="Gamma Cygni, Sadr" /></a></td>
</tr>
<tr>
<td class="textklein">Sternhaufen Collinder 399</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Leier</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Pfeil</td>
<td>&nbsp;</td>
<td class="textklein">Gamma Cygni, Sadr</td>
</tr>
</table>
<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuelles/pfeil.jpg" width="795" height="530" alt="Sternbild Pfeil" /><br />
Sternbild Pfeil<br />
Aufnahme:
Martin Gertz<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell.php"><img src="../bilder/aktuelles/Collinder_k.jpg" width="182" height="121" alt="Sternhaufen Collinder 399" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell2.php"><img src="../bilder/aktuelles/noerdlichekrone_k.jpg" width="182" height="121" alt="Sternbild Nördliche Krone" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell1.php"><img src="../bilder/aktuelles/leier_g.jpg" width="182" height="122" alt="Sternbild Leier" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell4.php"><img src="../bilder/aktuelles/Gamma-Cygni_k.jpg" width="182" height="121" alt="Gamma Cygni, Sadr" /></a></td>
</tr>
<tr>
<td class="textklein">Sternhaufen Collinder 399</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Nördliche Krone</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Leier</td>
<td>&nbsp;</td>
<td class="textklein">Gamma Cygni, Sadr</td>
</tr>
</table>
<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuelles/Gamma-Cygni.jpg" width="795" height="529" /><br />
Gamma Cygni, Sadr<br />
Aufnahme:
Martin Gertz<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell.php"><img src="../bilder/aktuelles/Collinder_k.jpg" width="182" height="121" alt="Sternhaufen Collinder 399" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell2.php"><img src="../bilder/aktuelles/noerdlichekrone_k.jpg" width="182" height="121" alt="Sternbild Nördliche Krone" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell1.php"><img src="../bilder/aktuelles/leier_g.jpg" width="182" height="122" alt="Sternbild Leier" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell3.php"><img src="../bilder/aktuelles/pfeil_r.jpg" width="182" height="121" alt="Sternbild Pfeil" /></a></td>
</tr>
<tr>
<td class="textklein">Sternhaufen Collinder 399</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Nördliche Krone</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Leier</td>
<td>&nbsp;</td>
<td class="textklein">Sternbild Pfeil</td>
</tr>
</table>
<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,74 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/bolide.jpg" width="795" height="596" alt="Bolide aufgebommen mit der Allskykamera Sternwarte Welzheim" /><br />
Bolide am 31.03.2014 aufgenommen mit der Allskykamera auf der Sternwarte Welzheim<br />
Aufnahme: Steffen Brückner und Jörg Moosmann<br />
</p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,105 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/Collinder_g.jpg" width="795" height="527" alt="Sternhaufen Collinder 399" /><br />
Sternhaufen Collinder 399 mit dem Kometen C2014 E2 Jacques. <br />
Erkennbar als kleiner grüner Punkt rechts neben dem Kleiderbügelsternhaufen.<br />
Aufnahme: Martin Gertz
<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_dez2.php"><img src="../bilder/aktuell/irisnebel_k.jpg" alt="Irisnebel" width="185" height="123" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez3.php"><img src="../bilder/aktuell/nordamerikanebel_k.jpg" width="185" height="123" alt="Nordamerikanebel" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez4.php"><img src="../bilder/aktuell/herznebel_k.jpg" width="185" height="123" alt="Herznebel" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez5.php"><img src="../bilder/aktuell/Cirrusnebel_k.jpg" alt="Cirrusnebel" width="182" height="121" border="0" /></a></td>
</tr>
<tr>
<td class="textklein">NGC7023 Irisnebel</td>
<td>&nbsp;</td>
<td class="textklein">NGC7000 Nordamerikanebel</td>
<td>&nbsp;</td>
<td class="textklein">IC1805 Herznebel</td>
<td>&nbsp;</td>
<td class="textklein">Cirrusnebel im Sternbild Schwan</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein"><p><a href="aktuell_dez6.php"><img src="../bilder/aktuell/rossettennebel_k.jpg" width="185" height="123" alt="Rosettennebel" /></a><br />
Rosettennebel NGC 2244</p></td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,104 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/irisnebel_g.jpg" width="795" height="530" alt="Sternhaufen Collinder 399" /><br />
NGC7023 Irisnebel<br />
Aufnahme: Martin Gertz
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_dez1.php"><img src="../bilder/aktuell/Collinder_k.jpg" alt="Collinder" width="185" height="123" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez3.php"><img src="../bilder/aktuell/nordamerikanebel_k.jpg" width="185" height="123" alt="Nordamerikanebel" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez4.php"><img src="../bilder/aktuell/herznebel_k.jpg" width="185" height="123" alt="Herznebel" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez5.php"><img src="../bilder/aktuell/Cirrusnebel_k.jpg" width="182" height="121" alt="Cirrusnebel" /></a></td>
</tr>
<tr>
<td class="textklein">Sternhaufen Collinder 399 mit dem Kometen C2014 E2 Jacques.</td>
<td>&nbsp;</td>
<td class="textklein">NGC7000 Nordamerikanebel</td>
<td>&nbsp;</td>
<td class="textklein">IC1805 Herznebel</td>
<td>&nbsp;</td>
<td class="textklein">Cirrusnebel im Sternbild Schwan</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein"><p><a href="aktuell_dez6.php"><img src="../bilder/aktuell/rossettennebel_k.jpg" width="185" height="123" alt="Rosettennebel" /></a><br />
Rosettennebel NGC 2244</p></td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,103 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/nordamerikanebel_g.jpg" width="795" height="527" alt="Nordamerikanebel" /><br />
NGC7000 Nordamerikanebel<br />
Aufnahme: Martin Gertz
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_dez1.php"><img src="../bilder/aktuell/Collinder_k.jpg" alt="Collinder" width="185" height="123" /></a></td>
<td width="8">&nbsp;</td>
<td width="382"><a href="aktuell_dez2.php"><img src="../bilder/aktuell/irisnebel_k.jpg" alt="Irisnebel" width="185" height="123" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez4.php"><img src="../bilder/aktuell/herznebel_k.jpg" alt="Herznebel" width="185" height="123" border="0" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez5.php"><img src="../bilder/aktuell/Cirrusnebel_k.jpg" width="182" height="121" alt="Cirrusnebel" /></a></td>
</tr>
<tr>
<td class="textklein">Sternhaufen Collinder 399 mit dem Kometen C2014 E2 Jacques.</td>
<td>&nbsp;</td>
<td class="textklein">NGC7023 Irisnebel</td>
<td>&nbsp;</td>
<td class="textklein">IC1805 Herznebel</td>
<td>&nbsp;</td>
<td class="textklein">Cirrusnebel im Sternbild Schwan</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein"><p><a href="aktuell_dez6.php"><img src="../bilder/aktuell/rossettennebel_k.jpg" width="185" height="123" alt="Rosettennebel" /></a><br />
Rosettennebel NGC 2244</p></td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,103 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/herznebel_g.jpg" width="795" height="529" alt="Herznebel" /><br />
IC1805 Herznebel<br />
Aufnahme: Martin Gertz
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_dez1.php"><img src="../bilder/aktuell/Collinder_k.jpg" alt="Collinder" width="185" height="123" /></a></td>
<td width="8">&nbsp;</td>
<td width="382"><a href="aktuell_dez2.php"><img src="../bilder/aktuell/irisnebel_k.jpg" alt="Irisnebel" width="185" height="123" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez3.php"><img src="../bilder/aktuell/nordamerikanebel_k.jpg" width="185" height="123" alt="Nordameriaknebel" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez5.php"><img src="../bilder/aktuell/Cirrusnebel_k.jpg" alt="Cirrusnebel" width="182" height="121" border="0" /></a></td>
</tr>
<tr>
<td class="textklein">Sternhaufen Collinder 399 mit dem Kometen C2014 E2 Jacques.</td>
<td>&nbsp;</td>
<td class="textklein">NGC7023 Irisnebel</td>
<td>&nbsp;</td>
<td class="textklein">NGC7000 Nordamerikanebel</td>
<td>&nbsp;</td>
<td class="textklein">Cirrusnebel im Sternbild Schwan</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein"><p><a href="aktuell_dez6.php"><img src="../bilder/aktuell/rossettennebel_k.jpg" width="185" height="123" alt="Rosettennebel" /></a><br />
Rosettennebel NGC 2244</p></td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,103 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/Cirrusnebel_g.jpg" width="795" height="530" alt="Cirrusnebel" /><br />
Cirussnebel im Sternbild Schwan<br />
Aufnahme: Martin Gertz
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_dez1.php"><img src="../bilder/aktuell/Collinder_k.jpg" alt="Collinder" width="185" height="123" /></a></td>
<td width="8">&nbsp;</td>
<td width="382"><a href="aktuell_dez2.php"><img src="../bilder/aktuell/irisnebel_k.jpg" alt="Irisnebel" width="185" height="123" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez3.php"><img src="../bilder/aktuell/nordamerikanebel_k.jpg" width="185" height="123" alt="Nordameriaknebel" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez4.php"><img src="../bilder/aktuell/herznebel_k.jpg" alt="Herznebel" width="185" height="123" border="0" /></a></td>
</tr>
<tr>
<td class="textklein">Sternhaufen Collinder 399 mit dem Kometen C2014 E2 Jacques.</td>
<td>&nbsp;</td>
<td class="textklein">NGC7023 Irisnebel</td>
<td>&nbsp;</td>
<td class="textklein">NGC7000 Nordamerikanebel</td>
<td>&nbsp;</td>
<td class="textklein">IC1805 Herznebel</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein"><p><a href="aktuell_dez6.php"><img src="../bilder/aktuell/rossettennebel_k.jpg" width="185" height="123" alt="Rosettennebel" /></a><br />
Rosettennebel NGC 2244</p></td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,107 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/rossettennebel_g.jpg" width="795" height="529" alt="Rosettennebel" /><br />
Rosettennebel NGC 2244<br />
Aufnahme: Martin Gertz
<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_dez2.php"><img src="../bilder/aktuell/irisnebel_k.jpg" alt="Irisnebel" width="185" height="123" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez3.php"><img src="../bilder/aktuell/nordamerikanebel_k.jpg" width="185" height="123" alt="Nordamerikanebel" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez4.php"><img src="../bilder/aktuell/herznebel_k.jpg" width="185" height="123" alt="Herznebel" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_dez5.php"><img src="../bilder/aktuell/Cirrusnebel_k.jpg" alt="Cirrusnebel" width="182" height="121" border="0" /></a></td>
</tr>
<tr>
<td class="textklein">NGC7023 Irisnebel</td>
<td>&nbsp;</td>
<td class="textklein">NGC7000 Nordamerikanebel</td>
<td>&nbsp;</td>
<td class="textklein">IC1805 Herznebel</td>
<td>&nbsp;</td>
<td class="textklein">Cirrusnebel im Sternbild Schwan</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein"><p><a href="aktuell_dez1.php"><img src="../bilder/aktuell/Collinder_k.jpg" width="185" height="123" alt="Colinder" /></a><br />
Sternhaufen Collinder 399 <br />
mit dem Kometen C2014 E2 Jacques. </p></td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table>
</p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,96 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/jupiter.jpg" width="352" height="352" alt="Jupiter" /><br />
Jupiter<br />
Aufnahme: Jörg Moosmann<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_sonne.php"><img src="../bilder/aktuell/Sonnenfleckenk.jpg" width="182" height="121" alt="Jupiter" /></a></td>
<td width="8">&nbsp;</td>
<td width="384">&nbsp;</td>
<td width="8">&nbsp;</td>
<td width="384">&nbsp;</td>
<td width="8">&nbsp;</td>
<td width="384">&nbsp;</td>
</tr>
<tr>
<td class="textklein">Sonnenflecken</td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,107 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/perseiden/perseiden-bild1.jpg" width="795" height="596" alt="Perseide" /><br />
Perseide
- Bild 1<br />
Aufnahme: All-Sky-Kamera Sternwarte Welzheim
<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_perseide2.php"><img src="../bilder/perseiden/perseiden-bild2k.jpg" alt="Perseide" width="185" height="139" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_perseide3.php"><img src="../bilder/perseiden/perseiden-bild3k.jpg" width="182" height="121" alt="Perseide" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_perseide4.php"><img src="../bilder/perseiden/perseiden-bild3-ausschnittk.jpg" width="185" height="133" alt="Perseide Auschnittsvergrößerung " /></a></td>
<td width="8">&nbsp;</td>
</tr>
<tr>
<td class="textklein">Perseide - Bild 2</td>
<td>&nbsp;</td>
<td class="textklein">Perseide - Bild 3</td>
<td>&nbsp;</td>
<td class="textklein">Ausschnitt von Bild 3</td>
<td>&nbsp;</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein">&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<p><br />
Vier Aufnahmen von Perseiden-Meteoren, die auf der Sternwarte Welzheim gewonnen wurden. </p>
<p>Das sechsköpfige Beobachter-Team hat eine Fallrate von rund 80 Exemplaren pro Stunde registriert.</p>
<p> Fotos wurden von der vollautomatischen All-Sky-Kamera gewonnen (kreisrunde Bilder). Die Daten sind auf den Aufnahmen verzeichnet. Es wurden die hellsten Meteore ausgelesen. Die anderen beiden Bilder wurden von Herrn Dr. Olaf Meyer-Hamme gewonnen. Sie zeigen eine Feuerkugel, die um 0:44 Uhr MESZ am 13.08.2015 aufflammte. Das eine Bild ist lediglich eine Vergrößerung des vorigen. Auf den Bildern ist auch die Milchstraße sowie zwei Sternwarte-Kuppeln zu erkennen. </p>
<p>&nbsp;</p>
<p><br />
</p>
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,100 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/perseiden/perseiden-bild2.jpg" width="785" height="589" alt="Perseide" /><br />
Perseide
- Bild 2<br />
Aufnahme: All-Sky-Kamera Sternwarte Welzheim <br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_perseide1.php"><img src="../bilder/perseiden/perseiden-bild1k.jpg" alt="Perseide " width="185" height="139" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_perseide3.php"><img src="../bilder/perseiden/perseiden-bild3k.jpg" width="182" height="121" alt="Perseide" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_perseide4.php"><img src="../bilder/perseiden/perseiden-bild3-ausschnittk.jpg" width="185" height="133" alt="Perseide Auschnittsvergrößerung" /></a></td>
<td width="8">&nbsp;</td>
</tr>
<tr>
<td class="textklein">Perseide - Bild 1</td>
<td>&nbsp;</td>
<td class="textklein">Perseide - Bild 3</td>
<td>&nbsp;</td>
<td class="textklein">Ausschnitt von Bild 3</td>
<td>&nbsp;</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein">&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,100 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/perseiden/perseiden-bild3.jpg" width="795" height="530" alt="Perseide" /><br />
Perseide
- Bild 3<br />
Aufnahme: Olaf Meyer-Hamme<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_perseide1.php"><img src="../bilder/perseiden/perseiden-bild1k.jpg" alt="Perseide" width="185" height="139" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_perseide2.php"><img src="../bilder/perseiden/perseiden-bild2k.jpg" width="185" height="139" alt="Perseide" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_perseide4.php"><img src="../bilder/perseiden/perseiden-bild3-ausschnittk.jpg" width="185" height="133" alt="Perseide Auschnittsvergrößerung " /></a></td>
<td width="8">&nbsp;</td>
</tr>
<tr>
<td class="textklein">Perseide - Bild 1</td>
<td>&nbsp;</td>
<td class="textklein">Perseide - Bild 3</td>
<td>&nbsp;</td>
<td class="textklein">Ausschnitt von Bild 3</td>
<td>&nbsp;</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein">&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,100 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/perseiden/perseiden-bild3-ausschnitt.jpg" width="795" height="570" alt="Perseide" /><br />
Perseide
- Bild 3 Ausschnitt<br />
Aufnahme: Olaf Meyer-Hamme<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_perseide1.php"><img src="../bilder/perseiden/perseiden-bild1k.jpg" alt="Perseide" width="185" height="139" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_perseide2.php"><img src="../bilder/perseiden/perseiden-bild2k.jpg" width="185" height="139" alt="Perseide" /></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="aktuell_perseide3.php"><img src="../bilder/perseiden/perseiden-bild3k.jpg" width="182" height="121" alt="Perseide Auschnittsvergrößerung " /></a></td>
<td width="8">&nbsp;</td>
</tr>
<tr>
<td class="textklein">Perseide - Bild 1</td>
<td>&nbsp;</td>
<td class="textklein">Perseide - Bild 2</td>
<td>&nbsp;</td>
<td class="textklein">Perseide - Bild 3</td>
<td>&nbsp;</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td colspan="3" align="center" class="textklein">&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,97 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/Sonnenfleckeng.jpg" width="795" height="529" alt="Sonne mit Fleckengruppe AR 1944" /><br />
Sonne mit Fleckengruppe AR 1944<br />
Aufnahme: Martin Gertz
vom 6.1.2014<br />
<br />
<table width="793" border="0">
<tr>
<td width="382"><a href="aktuell_jupiter.php"><img src="../bilder/aktuell/jupiterk.jpg" width="182" height="121" alt="Jupiter" /></a></td>
<td width="8">&nbsp;</td>
<td width="384">&nbsp;</td>
<td width="8">&nbsp;</td>
<td width="384">&nbsp;</td>
<td width="8">&nbsp;</td>
<td width="384">&nbsp;</td>
</tr>
<tr>
<td class="textklein">Jupiter</td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuell/lovejoy.jpg" width="795" height="527" alt="Komet Lovejoy" /><br />
Komet Lovejoy<br />
Aufnahme: Martin Gertz
<br />
<br /></p>
&nbsp;&nbsp;<br />
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,74 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Bildergalerien </h1>
<div class="fltlft2">
<?php include '../config_stern.php';
$abfrage = "SELECT gid, titel, bildk FROM galerie order by
gid ASC";
$ergebnis = mysqli_query($db,$abfrage);
$i = 0;
while($row = mysqli_fetch_object($ergebnis))
{
$gid = $row->gid;
$titel = $row->titel;
$bildk = $row->bildk;
echo "<dl class='meImgLeft' style='width: 190px;'>"."\n";
echo "<dt><a href='gal_bild_aus.php?id=$gid' target='_blank'><img src='../bilder/galerien/bildk/$bildk' border=0 width='190'></a></dt>"."\n";
echo "<dd>$titel</dd>"."\n";
$i++;
echo '</dl>'."\n";
if ($i/4 == round($i/4)){
echo "<br class='clear'/>"."\n";
}
}
?>
<img src="../bilder/orignale/ausstellung/ausstellung1.jpg" width="795" height="933" /></div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,69 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css"/>
<![endif]--><!--[if IE]>
<style type="text/css">
<
link href
=
"css/ie.css"
rel
=
"stylesheet"
type
=
"text/css"
/
>
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css"/>
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<?php include '../header.php'; ?>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Bildergalerie<br/>
Sternwarte Welzheim Das Weltall erleben!</h1>
<p>An der Sternwarte Welzheim wurden seit 1992 zahlreiche Farbfotos von Himmelsobjekten gemacht, die aufgrund
ihrer Qualität europaweite Beachtung fanden und vielfach publiziert wurden. </p>
<p>Im Rahmen einer Ausstellung wurden 30 großformatige Bilder mit den schönsten Aufnahmen von Mond, Planeten,
Sternhaufen, leuchtenden Gasnebeln und Galaxien 2009 im Rathaus in Stuttgart gezeigt. Zusammen mit kurzen
Erläuterungen entstand ein visuelles Potpourri vom Universum, das die Ästhetik von Farben und Formen im
Kosmos auf eindrucksvolle Weise vor Augen führte. </p>
<div class="fltlft2">
<?php include '../config_stern.php';
$abfrage = "SELECT gid, titel, bildk FROM galerie order by
gid ASC";
$ergebnis = mysqli_query($db, $abfrage);
$i = 0;
while ($row = mysqli_fetch_object($ergebnis)) {
$gid = $row->gid;
$titel = $row->titel;
$bildk = $row->bildk;
echo "<dl class='meImgLeft' style='width: 190px;'>" . "\n";
echo "<dt><a href='gal_bild_aus.php?id=$gid'><img src='../bilder/galerien/bildk/$bildk' border=0 width='190'></a></dt>" . "\n";
echo "<dd>$titel</dd>" . "\n";
$i++;
echo '</dl>' . "\n";
if ($i / 4 == round($i / 4)) {
echo "<br class='clear'/>" . "\n";
}
}
?>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. -->
<br class="clearfloat"/>
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,74 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Bildergalerien </h1>
<div class="fltlft2">
<?php include '../config_stern.php';
$abfrage = "SELECT gid, titel, bildk FROM galerie order by
gid ASC";
$ergebnis = mysql_query($db,$abfrage);
$i = 0;
while($row = mysqli_fetch_object($ergebnis))
{
$gid = $row->gid;
$titel = $row->titel;
$bildk = $row->bildk;
echo "<dl class='meImgLeft' style='width: 190px;'>"."\n";
echo "<dt><a href='gal_bild.php?id=$gid' target='_blank'><img src='../bilder/galerien/bildk/$bildk' border=0 width='190'></a></dt>"."\n";
echo "<dd>$titel</dd>"."\n";
$i++;
echo '</dl>'."\n";
if ($i/4 == round($i/4)){
echo "<br class='clear'/>"."\n";
}
}
?>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,68 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<?php include '../header.php'; ?><?php include '../navi.php'; ?>
<div id="mainContentBig">
<div class="fltlft2">
<?php include '../config_stern.php';
$id = $_REQUEST['id'];
$abfrage = "SELECT gid, titel, beschreibung, bildg, autor FROM galerie where gid=$id order by
gid ASC";
$ergebnis = mysqli_query($db,$abfrage);
$i = 0;
while($row = mysqli_fetch_assoc($ergebnis))
{
echo "<h1>".$row['titel']."</h1>";
echo $row['beschreibung']."<br />";
echo "<img src='/bilder/galerien/bildg/".$row['bildg']."' /><br />";
echo "Bildautor:".$row['autor']."<br />";
}
?>
<br/>
<a href="bild_uebersicht_aus.php" class="center">zurück zu Übersicht</a></div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,92 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="sidebar2">
<?php include '../fdatum.php'; ?>
<?php include '../himmelerg.php'; ?>
</div>
<div id="mainContent">
<h1>Bildergalerien </h1>
<?php include '../config_stern.php';
$sql_selkat="SELECT kid, kategorie, bild FROM kategorien order by kategorie ASC" ;
$sql_get_data = mysqli_query($db,"SELECT kid, kategorie, bild FROM kategorien order by kategorie ASC");
while ( $row = mysqli_fetch_array( $sql_get_data ) )
{
$array[ 0 ][] = $row[ 'bild' ]; // 0 = bild, eine spalte zugewiesen
$array[ 1 ][] = $row[ 'kid' ]; // 1 = id, eine spalte zugewiesen
$array[ 2 ][] = $row[ 'kategorie' ]; // 2 = kat, eine spalte zugewiesen
$array[ 3 ][] = $row[ 'frei' ];
}
/*
array im format
[Zeile1] => [Spalte1][Spalte2][Spalte3][...]
[Zeile2] => [Spalte1][Spalte2][Spalte3][...]
[Zeile3] => [Spalte1][Spalte2][Spalte3][...]
*/
$labels_ger = array( 'bild', 'kid', 'kat' );
$max = max( count( $row[ 0 ] ), count( $row[ 1 ] ), count( $row[ 2 ] ) );
echo "<table>";
for ( $i = 0; $i < 3; $i++ ) // 3 zeilen sind vorgegeben
{
echo '<tr> <td>' . $labels_ger[ $i ] . '</td>';
for ( $n = 0; $n < count( $array[ $i ] ); $n++ )
{
echo '<td>' . $array[ $i ][ $n ] . '</td>'; //daten als zeilen
}
for ( $n; $n < $max; $n++ ) //leere felder für valides html
{
echo '<td></td>';
}
echo '</tr>';
}
echo '</table>';
$count=count( $array[ $i ]);
echo"count".$count;
echo"<br />-----------<br />" ;
?>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,79 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="sidebar2">
<?php include '../fdatum.php'; ?>
<?php include '../himmelerg.php'; ?>
</div>
<div id="mainContent">
<h1>Bildergalerien </h1>
<div class="fltlft">
<?php include '../config_stern.php';
$abfrage = "SELECT kid, kategorie, bild FROM kategorien order by
kategorie ASC";
$ergebnis = mysqli_query($db,$abfrage);
$i = 0;
while($row = mysqli_fetch_object($ergebnis))
{
$kid = $row->kid;
$thumb = $row->kategorie;
$urlbild = $row->bild;
echo "<dl class='meImgLeft' style='width: 190px;'>"."\n";
echo "<dt><a href='$kid' target='_blank'><img src='../bilder/galerien/kat/$urlbild' border=0 ></a></dt>"."\n";
echo "<dd>$thumb</dd>"."\n";
$i++;
echo '</dl>'."\n";
if ($i/3 == round($i/3)){
echo "<br class='clear'/>"."\n";
}
}
?>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,97 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/mofi2018/Mofi-2018-2g.jpg" width="795" height="565" alt="Totale Mondfinsternis 2018" /><br />
Totale Mondfinsternis 2018<br />
Aufnahme: Martin Gertz
<br />
<br />
<table width="793" border="0">
<tr>
<td width="382">&nbsp;</td>
<td width="8">&nbsp;</td>
<td width="384"><a href="mofi3-2018.php"><img src="../bilder/mofi2018/Mofi-und-Mars-2018k.jpg" width="182" height="126" alt="Totale Mondfinsternis 2018" /></a><a href="aktuell2.php"></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="mofi2-2018.php"><img src="../bilder/mofi2018/Mofi-2018-1k.jpg" width="182" height="121" alt="Totale Mondfinsternis 2018" /></a></td>
<td width="8">&nbsp;</td>
<td width="384">&nbsp;</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td class="textklein">Totale Mondfinsternis 2018, Mond und Mars</td>
<td>&nbsp;</td>
<td class="textklein">Totale Mondfinsternis 2018</td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,97 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/mofi2018/Mofi-2018-1g.jpg" width="795" height="527" alt="Totale Mondfinsternis 2018" /><br />
Totale Mondfinsternis 2018<br />
Aufnahme: Martin Gertz
<br />
<br />
<table width="793" border="0">
<tr>
<td width="382">&nbsp;</td>
<td width="8">&nbsp;</td>
<td width="384"><a href="mofi3-2018.php"><img src="../bilder/mofi2018/Mofi-und-Mars-2018k.jpg" width="182" height="126" alt="Totale Mondfinsternis 2018" /></a><a href="aktuell2.php"></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="mofi1-2018.php"><img src="../bilder/mofi2018/Mofi-2018-2k.jpg" width="182" height="129" alt="Totale Mondfinsternis 2018" /></a></td>
<td width="8">&nbsp;</td>
<td width="384">&nbsp;</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td class="textklein">Totale Mondfinsternis 2018, Mond und Mars</td>
<td>&nbsp;</td>
<td class="textklein">Totale Mondfinsternis 2018</td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,44 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Partielle Mondfinsternis 31.12.2009</h1>
<div class="fltlft2">
<p><img src="../bilder/mofi/Mofi_2009-12-31g.jpg" width="795" height="968" alt="Partielle Mondfinsternis" /><br />
Instrument: 6&quot; Zeiss / 1200 mm<br />
Kamera: Nikon D90<br />
Objekt: Mondfinsternis<br />
Datum: 31. Dezember 2009<br />
Start der Aufnahmeserie: 20:47 UHR MEZ<br />
Belichtungszeiten: 1/4 sec<br />
Bildautor: Martin Gertz
</p>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<p> Totale Mondfinsternis 21.01.2019</p>
<div class="fltlft2"><img src="../bilder/mofi2019/mofi20190121g.jpg" width="795" height="530" alt="Totale Mondfinsternis 2019" /><br />
Aufnahme: Hans Dschida<br />
<br />
</div>
<div class="fltlft2"><img src="../bilder/mofi2019/mofi20190121_01g.jpg" width="795" height="529" alt="Totale Mondfinsternis 2019" /><br />
Aufnahme: Jörg Nikolaizig<br />
<br />
</div>
<div class="fltlft2"><img src="../bilder/mofi2019/mofi20190121_02g.jpg" width="795" height="529" alt="Totale Mondfinsternis 2019" /><br />
Aufnahme: Jörg Nikolaizig<br />
<br />
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,97 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/mofi2018/Mofi-und-Mars-2018g.jpg" width="795" height="550" alt="Totale Mondfinsternis 2018" /><br />
Totale Mondfinsternis 2018. Mond und Mars<br />
Aufnahme: Martin Gertz
<br />
<br />
<table width="793" border="0">
<tr>
<td width="382">&nbsp;</td>
<td width="8">&nbsp;</td>
<td width="384"><a href="mofi2-2018.php"><img src="../bilder/mofi2018/Mofi-2018-1k.jpg" width="182" height="121" alt="Totale Mondfinsternis 2018" /></a><a href="mofi3-2018.php"></a><a href="aktuell2.php"></a></td>
<td width="8">&nbsp;</td>
<td width="384"><a href="mofi1-2018.php"><img src="../bilder/mofi2018/Mofi-2018-2k.jpg" alt="Totale Mondfinsternis 2018" width="182" height="121" border="0" /></a></td>
<td width="8">&nbsp;</td>
<td width="384">&nbsp;</td>
</tr>
<tr>
<td class="textklein">&nbsp;</td>
<td>&nbsp;</td>
<td class="textklein">Totale Mondfinsternis 2018</td>
<td>&nbsp;</td>
<td class="textklein">Totale Mondfinsternis 2018</td>
<td>&nbsp;</td>
<td class="textklein">&nbsp;</td>
</tr>
</table> </p>
&nbsp;&nbsp;<br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,76 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<div class="fltlft2"><img src="../bilder/aktuelles/Nova_Delphini2013.jpg" width="795" height="530" alt="Nova Delphini 2013" /><br />
Nova Delphini 2013
<br />
Aufnahme:
Martin Gertz<br />
<br />
<a href="aktuell4.php">weitere aktuelle Aufnahmen</a><br />
<h1>&nbsp;</h1>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,38 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Supervollmond 14.11.2016</h1>
<div class="fltlft2">
<p><img src="../bilder/aktuell/Mond_2016-11-14g.jpg" width="795" height="834" alt="Partielle Mondfinsternis" /><br />
Bildautor: Martin Gertz
</p>
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,69 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sternwarte Welzheim</title>
<!--[if IE 5]>
<link href="css/ie5.css" rel="stylesheet" type="text/css" />
<![endif]--><!--[if IE]>
<style type="text/css">
<link href="css/ie.css" rel="stylesheet" type="text/css" />
</style>
<![endif]-->
<link href="../css/sternwarte1.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColFixHdr">
<div id="container2sp">
<div id="header"><img src="../bilder/header1.jpg" width="960" height="150" alt="Sternwarte Welzheim"/><!-- end #header --></div>
<?php include '../navi.php'; ?>
<div id="mainContentBig">
<h1>Aktuelle Aufnahmen</h1>
<p>Martin Gertz und Jörg Nikolaizig nach erfolgreicher Prüfung der frisch gereinigten und justierten Optik des 10 Refraktors der Sternwarte Welzheim.</p>
<div class="fltlft2"><img src="../bilder/teleskoppruefung.jpg" width="400" height="533" alt="Totale Mondfinsternis 2019" /><br />
Aufnahme: Matthias Zoller<br />
<br />
</div>
<!-- end #mainContent --></div>
<!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

View File

@@ -0,0 +1,13 @@
FROM alpine:latest
RUN apk add --no-cache node bash
COPY checkfuehrung.js /checkfuehrung.js
COPY crontab /etc/crontabs/root
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh"]

View File

@@ -0,0 +1,127 @@
/*
chekcSofue.js
Checked per cron jeden Tag die SOFUE - Datenbank. Prüft, ob 'gestern' eine
Führung hätte stattfinden sollen. Wenn ja, wird der BEO der Führung per mail
benachrichtigt mit der Bitte, die Nachbearbeitungs-Webseite auszufüllen.
*******************
2025-06-16:
Da leider kein CRON auf dem Webserver läuft, wird dieses Prgramm bis auf
Weiteres nicht weiter gepflegt, d.h. es wird nicht ausgeführt! Ebenso kann
'beoanswer' nicht ausgeführt werden.
*******************
TODO
Dieses Programm kann auch die Überwachung machen, dass Einträge in der DB gelöscht werden:
- abgesagte: sofort nach Absage
- stattgefundene: nach 6 Monaten, hier nur die persönl. Daten löschen
- Aber Statistik-Daten behalten: Anzahl der Anfragen, davon zugesagt, davon abgesagt
Versions:
V 0.0 2019-02-04 rxf
- Start
*/
"use strict"
const DEVELOP=1; // 1 -> Entwicklung 0-> Produktion
const DAYS=9;
const nodemailer = require('nodemailer');
const moment = require('moment');
const mysql = require('mysql2/promise');
const beo_Url = 'beoanswer/beoanswer.php?fdate=';
const Url = DEVELOP ? 'http://localhost:8081/' : 'https://sternwarte-welzheim.de/';
const DB_host = process.env.DB_HOST || 'localhost';
const DB_port = process.env.DB_PORT || 3306;
const DB_user = process.env.DB_USER || 'root';
const DB_pass = process.env.DB_PASS || 'SFluorit';
const DB_dbase = process.env.DB_NAME || 'sternwarte';
const transporter = DEVELOP ? nodemailer.createTransport({
host: 'localhost',
port: 1025,
secure: false, // true for 465, false for other ports
}) : nodemailer.createTransport({
sendmail: true
// host: 'smtp.1und1.de',
// port: 587,
// secure: false, // true for 465, false for other ports
// auth: {
// user: 'rxf@fuerst-stuttgart.de', // generated ethereal user
// pass: 'tibTop-xopqar-1qyrqe' // generated ethereal password
// }
});
// Ajax-Call, um die Daten von der DBase zu holen
async function fetchDatafromDB(conn,termin) {
let result;
let id;
let query = "select mitarbeiter,id from SoFue2 where DATE(wtermin) = '" + termin + "' and status = 2";
try {
result = await conn.query(query);
if (result[0].length == 0) {
console.log("Keine Führung gewesen");
return;
}
let ma = result[0][0].mitarbeiter;
id = result[0][0].id;
query = "select vorname,email_1 from beos where name = '" + ma + "'";
result = await conn.query(query);
}
catch(err) {
console.log(err);
}
finally {
conn.end();
}
let erg = result[0];
send2BEO({name: erg[0].vorname, email: erg[0].email_1, date: termin, id: id});
}
function send2BEO(info) {
var mailOptions = {
from: 'noreply@sternwarte-welzheim.de',
// to: info.email,
to: 'rexfue@gmail.com',
subject: 'Sonderführung vom '+info.date,
text: 'Hallo ' + info.name +',\n\n'
+ 'Du hattest gestern Führung! '
+ 'Bitte fülle folgendes Webformular aus:\n\n'
+ Url + beo_Url + info.date + '&id=' + info.id
+ '\n\nBitte nur über diesen Link zugreifen (oder exakt abschreiben),\n'
+ 'da sonst die Zuordnung nicht hergestellt werden kann.\n'
+ 'Besten Dank.\n\nGrüße vom Sonderführungsteam'
};
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email gesendet an ' + mailOptions.to);
// console.log(info);
}
});
}
async function main() {
console.log(DB_host, DB_port, DB_user, DB_pass, DB_dbase);
const yesterday = moment().subtract(DAYS, 'd').format('YYYY-MM-DD');
console.log('Yesterday:', yesterday)
const connection = await mysql.createConnection({
host: DB_host,
port: DB_port,
user: DB_user,
password: DB_pass,
database: DB_dbase,
});
await fetchDatafromDB(connection, yesterday);
console.log("All done");
}
main().catch(console.error);

113
sternwarte/checkfuehrung/chkf.js Executable file
View File

@@ -0,0 +1,113 @@
/*
chekcSofue.js
Checked per cron jeden Tag die SOFUE - Datenbank. Prüft, ob 'gestern' eine
Führung hätte stattfinden sollen. Wenn ja, wird der BEO der Führung per mail
benachrichtigt mit der Bitte, die Nachbearbeitungs-Webseite auszufüllen.
Versions:
V 0.0 2019-02-04 rxf
- Start
*/
"use strict"
const DEVELOP=1; // 1 -> Entwicklung 0-> Produktion
const DAYS=9;
const nodemailer = require('nodemailer');
const moment = require('moment');
const mysql = require('mysql2/promise');
const beo_Url = 'beoanswer/beoanswer.php?fdate=';
const Url = DEVELOP ? 'http://localhost:8081/' : 'https://sternwarte-welzheim.de/';
const DB_host = process.env.DB_HOST || 'localhost';
const DB_port = process.env.DB_PORT || 3306;
const DB_user = process.env.DB_USER || 'root';
const DB_pass = process.env.DB_PASS || 'xxxxxxx';
const DB_dbase = process.env.DB_NAME || 'sternwarte';
const transporter = DEVELOP ? nodemailer.createTransport({
host: 'localhost',
port: 1025,
secure: false, // true for 465, false for other ports
}) : nodemailer.createTransport({
sendmail: true
// host: 'smtp.1und1.de',
// port: 587,
// secure: false, // true for 465, false for other ports
// auth: {
// user: 'rxf@fuerst-stuttgart.de', // generated ethereal user
// pass: 'tibTop-xopqar-1qyrqe' // generated ethereal password
// }
});
// Ajax-Call, um die Daten von der DBase zu holen
async function fetchDatafromDB(conn,termin) {
let result;
let id;
let query = "select mitarbeiter,id from SoFue2 where DATE(wtermin) = '" + termin + "' and status = 2";
try {
result = await conn.query(query);
if (result[0].length == 0) {
console.log("Keine Führung gewesen");
return;
}
let ma = result[0][0].mitarbeiter;
id = result[0][0].id;
query = "select vorname,email_1 from beos where name = '" + ma + "'";
result = await conn.query(query);
}
catch(err) {
console.log(err);
}
finally {
conn.end();
}
let erg = result[0];
send2BEO({name: erg[0].vorname, email: erg[0].email_1, date: termin, id: id});
}
function send2BEO(info) {
var mailOptions = {
from: 'noreply@sternwarte-welzheim.de',
// to: info.email,
to: 'rexfue@gmail.com',
subject: 'Sonderführung vom '+info.date,
text: 'Hallo ' + info.name +',\n\n'
+ 'Du hattest gestern Führung! '
+ 'Bitte fülle folgendes Webformular aus:\n\n'
+ Url + beo_Url + info.date + '&id=' + info.id
+ '\n\nBitte nur über diesen Link zugreifen (oder exakt abschreiben),\n'
+ 'da sonst die Zuordnung nicht hergestellt werden kann.\n'
+ 'Besten Dank.\n\nGrüße vom Sonderführungsteam'
};
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email gesendet an ' + mailOptions.to);
// console.log(info);
}
});
}
async function main() {
console.log(DB_host, DB_port, DB_user, DB_pass, DB_dbase);
const yesterday = moment().subtract(DAYS, 'd').format('YYYY-MM-DD');
console.log('Yesterday:', yesterday)
const connection = await mysql.createConnection({
host: DB_host,
port: DB_port,
user: DB_user,
password: DB_pass,
database: DB_dbase,
});
await fetchDatafromDB(connection, yesterday);
console.log("All done");
}
main().catch(console.error);

View File

@@ -0,0 +1,112 @@
# chkf.py (erweiterte Version mit Logging, Unit Tests und Docker-Support)
import os
import smtplib
import mysql.connector
from datetime import datetime, timedelta
from email.mime.text import MIMEText
import logging
# Setup Logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s [%(levelname)s] %(message)s')
logger = logging.getLogger(__name__)
# Konfiguration
DEVELOP = os.environ.get("ENV", "DEV") == "DEV"
DAYS =3
beo_url = 'beoanswer/beoanswer.php?'
base_url = 'http://localhost:8080/' if DEVELOP else 'https://sternwarte-welzheim.de/'
db_config = {
'host': os.environ.get('DB_HOST', 'localhost'),
'port': int(os.environ.get('DB_PORT', 3306)),
'user': os.environ.get('DB_USER', 'root'),
'password': os.environ.get('DB_PASS', 'SFluorit'),
'database': os.environ.get('DB_NAME', 'sternwarte')
}
def send_to_beo(info):
subject = f"Sonderführung vom {info['date']}"
body = (
f"Hallo {info['name']},\n\n"
f"Du hattest gestern Führung für \"{info['kunde']}\"! Bitte fülle folgendes Webformular aus:\n\n"
f"{base_url}{beo_url}id={info['id']}\n\n"
"Bitte nur über diesen Link zugreifen (oder exakt abschreiben),\n"
"da sonst die Zuordnung nicht hergestellt werden kann.\n"
"Besten Dank.\n\nGrüße vom Sonderführungsteam"
)
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = 'noreply@sternwarte-welzheim.de'
msg['To'] = info.get('email', 'rexfue@gmail.com')
try:
if DEVELOP:
server = smtplib.SMTP('localhost', 1025)
else:
server = smtplib.SMTP('smtp.1und1.de', 587)
server.starttls()
server.login('rxf@fuerst-stuttgart.de', 'tibTop-xopqar-1qyrqe')
server.send_message(msg)
logger.info(f"Email gesendet an {msg['To']}")
except Exception as e:
logger.error("Fehler beim Senden der Mail: %s", e)
finally:
server.quit()
def fetch_data_from_db(conn, termin):
try:
cursor = conn.cursor(dictionary=True)
cursor.execute(
"SELECT mitarbeiter, id, name FROM SoFue2 WHERE DATE(wtermin) = %s AND status = 2",
(termin,)
)
row = cursor.fetchone()
if not row:
logger.info("Keine Führung gewesen.")
return
mitarbeiter = row['mitarbeiter']
fuehrung_id = row['id']
name = row['name']
cursor.execute(
"SELECT vorname, email_1 FROM beos WHERE name = %s",
(mitarbeiter,)
)
beo = cursor.fetchone()
if not beo:
logger.warning("Kein BEO gefunden für %s", mitarbeiter)
return
send_to_beo({
'name': beo['vorname'],
'email': beo['email_1'],
'date': termin,
'id': fuehrung_id,
'kunde': name
})
except Exception as e:
logger.error("Datenbankfehler: %s", e)
finally:
cursor.close()
conn.close()
def main():
yesterday = (datetime.today() - timedelta(days=DAYS)).strftime('%Y-%m-%d')
logger.info("Gestern war: %s", yesterday)
logger.info("DB-Konfiguration: %s", db_config)
try:
conn = mysql.connector.connect(**db_config)
fetch_data_from_db(conn, yesterday)
except Exception as e:
logger.error("Verbindung zur DB fehlgeschlagen: %s", e)
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,8 @@
#! /bin/bash
#cd /kunden/310927_70173/sternwarte/intern/anmeld/remove4weeks
cd .
source ./venv/bin/activate
python3 chkf1.py >>chkf1_py.log 2>&1
deactivate
cd

399
sternwarte/checkfuehrung/package-lock.json generated Executable file
View File

@@ -0,0 +1,399 @@
{
"name": "checkfuehrung",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "checkfuehrung",
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"moment": "^2.24.0",
"mysql": "^2.16.0",
"mysql2": "^3.14.1",
"nodemailer": "^7.0.3",
"sendmail": "^1.4.1"
}
},
"node_modules/addressparser": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz",
"integrity": "sha512-aQX7AISOMM7HFE0iZ3+YnD07oIeJqWGVnJ+ZIKaBZAk03ftmVYVqsGas/rbXKR21n4D/hKCSHypvcyOkds/xzg==",
"license": "MIT"
},
"node_modules/aws-ssl-profiles": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz",
"integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==",
"license": "MIT",
"engines": {
"node": ">= 6.0.0"
}
},
"node_modules/bignumber.js": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
"integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==",
"license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/buildmail": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/buildmail/-/buildmail-3.10.0.tgz",
"integrity": "sha512-6e5sDN/pl3en5Klqdfyir7LEIBiFr9oqZuvYaEyVwjxpIbBZN+98e0j87Fz2Ukl8ud32rbk9VGOZAnsOZ7pkaA==",
"deprecated": "This project is unmaintained",
"license": "MIT",
"dependencies": {
"addressparser": "1.0.1",
"libbase64": "0.1.0",
"libmime": "2.1.0",
"libqp": "1.1.0",
"nodemailer-fetch": "1.6.0",
"nodemailer-shared": "1.1.0"
}
},
"node_modules/buildmail/node_modules/iconv-lite": {
"version": "0.4.13",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
"integrity": "sha512-QwVuTNQv7tXC5mMWFX5N5wGjmybjNBBD8P3BReTkPmipoxTUFgWM2gXNvldHQr6T14DH0Dh6qBVg98iJt7u4mQ==",
"license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/buildmail/node_modules/libmime": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/libmime/-/libmime-2.1.0.tgz",
"integrity": "sha512-4be2R6/jOasyPTw0BkpIZBVk2cElqjdIdS0PRPhbOCV4wWuL/ZcYYpN1BCTVB+6eIQ0uuAwp5hQTHFrM5Joa8w==",
"license": "MIT",
"dependencies": {
"iconv-lite": "0.4.13",
"libbase64": "0.1.0",
"libqp": "1.1.0"
}
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"license": "MIT"
},
"node_modules/denque": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
"integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.10"
}
},
"node_modules/dkim-signer": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/dkim-signer/-/dkim-signer-0.2.2.tgz",
"integrity": "sha512-24OZ3cCA30UTRz+Plpg+ibfPq3h7tDtsJRg75Bo0pGakZePXcPBddY80bKi1Bi7Jsz7tL5Cw527mhCRDvNFgfg==",
"license": "MIT",
"dependencies": {
"libmime": "^2.0.3"
}
},
"node_modules/generate-function": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
"integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
"license": "MIT",
"dependencies": {
"is-property": "^1.0.2"
}
},
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
"node_modules/is-property": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
"integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==",
"license": "MIT"
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"license": "MIT"
},
"node_modules/libbase64": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz",
"integrity": "sha512-B91jifmFw1DKEqEWstSpg1PbtUbBzR4yQAPT86kCQXBtud1AJVA+Z6RSklSrqmKe4q2eiEufgnhqJKPgozzfIQ==",
"license": "MIT"
},
"node_modules/libmime": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/libmime/-/libmime-2.1.3.tgz",
"integrity": "sha512-ABr2f4O+K99sypmkF/yPz2aXxUFHEZzv+iUkxItCeKZWHHXdQPpDXd6rV1kBBwL4PserzLU09EIzJ2lxC9hPfQ==",
"license": "MIT",
"dependencies": {
"iconv-lite": "0.4.15",
"libbase64": "0.1.0",
"libqp": "1.1.0"
}
},
"node_modules/libmime/node_modules/iconv-lite": {
"version": "0.4.15",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
"integrity": "sha512-RGR+c9Lm+tLsvU57FTJJtdbv2hQw42Yl2n26tVIBaYmZzLN+EGfroUugN/z9nJf9kOXd49hBmpoGr4FEm+A4pw==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/libqp": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz",
"integrity": "sha512-4Rgfa0hZpG++t1Vi2IiqXG9Ad1ig4QTmtuZF946QJP4bPqOYC78ixUXgz5TW/wE7lNaNKlplSYTxQ+fR2KZ0EA==",
"license": "MIT"
},
"node_modules/long": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
"integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
"license": "Apache-2.0"
},
"node_modules/lru.min": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.2.tgz",
"integrity": "sha512-Nv9KddBcQSlQopmBHXSsZVY5xsdlZkdH/Iey0BlcBYggMd4two7cZnKOK9vmy3nY0O5RGH99z1PCeTpPqszUYg==",
"license": "MIT",
"engines": {
"bun": ">=1.0.0",
"deno": ">=1.30.0",
"node": ">=8.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wellwelwel"
}
},
"node_modules/mailcomposer": {
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-3.12.0.tgz",
"integrity": "sha512-zBeDoKUTNI8IAsazoMQFt3eVSVRtDtgrvBjBVdBjxDEX+5KLlKtEFCrBXnxPhs8aTYufUS1SmbFnGpjHS53deg==",
"deprecated": "This project is unmaintained",
"license": "MIT",
"dependencies": {
"buildmail": "3.10.0",
"libmime": "2.1.0"
}
},
"node_modules/mailcomposer/node_modules/iconv-lite": {
"version": "0.4.13",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
"integrity": "sha512-QwVuTNQv7tXC5mMWFX5N5wGjmybjNBBD8P3BReTkPmipoxTUFgWM2gXNvldHQr6T14DH0Dh6qBVg98iJt7u4mQ==",
"license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/mailcomposer/node_modules/libmime": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/libmime/-/libmime-2.1.0.tgz",
"integrity": "sha512-4be2R6/jOasyPTw0BkpIZBVk2cElqjdIdS0PRPhbOCV4wWuL/ZcYYpN1BCTVB+6eIQ0uuAwp5hQTHFrM5Joa8w==",
"license": "MIT",
"dependencies": {
"iconv-lite": "0.4.13",
"libbase64": "0.1.0",
"libqp": "1.1.0"
}
},
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/mysql": {
"version": "2.18.1",
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
"integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==",
"license": "MIT",
"dependencies": {
"bignumber.js": "9.0.0",
"readable-stream": "2.3.7",
"safe-buffer": "5.1.2",
"sqlstring": "2.3.1"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mysql2": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.14.1.tgz",
"integrity": "sha512-7ytuPQJjQB8TNAYX/H2yhL+iQOnIBjAMam361R7UAL0lOVXWjtdrmoL9HYKqKoLp/8UUTRcvo1QPvK9KL7wA8w==",
"license": "MIT",
"dependencies": {
"aws-ssl-profiles": "^1.1.1",
"denque": "^2.1.0",
"generate-function": "^2.3.1",
"iconv-lite": "^0.6.3",
"long": "^5.2.1",
"lru.min": "^1.0.0",
"named-placeholders": "^1.1.3",
"seq-queue": "^0.0.5",
"sqlstring": "^2.3.2"
},
"engines": {
"node": ">= 8.0"
}
},
"node_modules/mysql2/node_modules/sqlstring": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz",
"integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/named-placeholders": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz",
"integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==",
"license": "MIT",
"dependencies": {
"lru-cache": "^7.14.1"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/named-placeholders/node_modules/lru-cache": {
"version": "7.18.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
"integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
"license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/nodemailer": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.3.tgz",
"integrity": "sha512-Ajq6Sz1x7cIK3pN6KesGTah+1gnwMnx5gKl3piQlQQE/PwyJ4Mbc8is2psWYxK3RJTVeqsDaCv8ZzXLCDHMTZw==",
"license": "MIT-0",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/nodemailer-fetch": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz",
"integrity": "sha512-P7S5CEVGAmDrrpn351aXOLYs1R/7fD5NamfMCHyi6WIkbjS2eeZUB/TkuvpOQr0bvRZicVqo59+8wbhR3yrJbQ==",
"license": "MIT"
},
"node_modules/nodemailer-shared": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz",
"integrity": "sha512-68xW5LSyPWv8R0GLm6veAvm7E+XFXkVgvE3FW0FGxNMMZqMkPFeGDVALfR1DPdSfcoO36PnW7q5AAOgFImEZGg==",
"license": "MIT",
"dependencies": {
"nodemailer-fetch": "1.6.0"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"license": "MIT"
},
"node_modules/readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"license": "MIT"
},
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"license": "MIT"
},
"node_modules/sendmail": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/sendmail/-/sendmail-1.6.1.tgz",
"integrity": "sha512-lIhvnjSi5e5jL8wA1GPP6j2QVlx6JOEfmdn0QIfmuJdmXYGmJ375kcOU0NSm/34J+nypm4sa1AXrYE5w3uNIIA==",
"license": "MIT",
"dependencies": {
"dkim-signer": "0.2.2",
"mailcomposer": "3.12.0"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/seq-queue": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
"integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q=="
},
"node_modules/sqlstring": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
"integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"license": "MIT"
}
}
}

View File

@@ -0,0 +1,18 @@
{
"name": "checkfuehrung",
"version": "1.0.0",
"description": "Prüft regelmäßig die Datenbank nach Führungen",
"main": "checkfuehrung.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "rexfue@gmail.com",
"license": "ISC",
"dependencies": {
"moment": "^2.24.0",
"mysql": "^2.16.0",
"mysql2": "^3.14.1",
"nodemailer": "^7.0.3",
"sendmail": "^1.4.1"
}
}

View File

@@ -0,0 +1,241 @@
<#
.Synopsis
Activate a Python virtual environment for the current PowerShell session.
.Description
Pushes the python executable for a virtual environment to the front of the
$Env:PATH environment variable and sets the prompt to signify that you are
in a Python virtual environment. Makes use of the command line switches as
well as the `pyvenv.cfg` file values present in the virtual environment.
.Parameter VenvDir
Path to the directory that contains the virtual environment to activate. The
default value for this is the parent of the directory that the Activate.ps1
script is located within.
.Parameter Prompt
The prompt prefix to display when this virtual environment is activated. By
default, this prompt is the name of the virtual environment folder (VenvDir)
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
.Example
Activate.ps1
Activates the Python virtual environment that contains the Activate.ps1 script.
.Example
Activate.ps1 -Verbose
Activates the Python virtual environment that contains the Activate.ps1 script,
and shows extra information about the activation as it executes.
.Example
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
Activates the Python virtual environment located in the specified location.
.Example
Activate.ps1 -Prompt "MyPython"
Activates the Python virtual environment that contains the Activate.ps1 script,
and prefixes the current prompt with the specified string (surrounded in
parentheses) while the virtual environment is active.
.Notes
On Windows, it may be required to enable this Activate.ps1 script by setting the
execution policy for the user. You can do this by issuing the following PowerShell
command:
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
For more information on Execution Policies:
https://go.microsoft.com/fwlink/?LinkID=135170
#>
Param(
[Parameter(Mandatory = $false)]
[String]
$VenvDir,
[Parameter(Mandatory = $false)]
[String]
$Prompt
)
<# Function declarations --------------------------------------------------- #>
<#
.Synopsis
Remove all shell session elements added by the Activate script, including the
addition of the virtual environment's Python executable from the beginning of
the PATH variable.
.Parameter NonDestructive
If present, do not remove this function from the global namespace for the
session.
#>
function global:deactivate ([switch]$NonDestructive) {
# Revert to original values
# The prior prompt:
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
}
# The prior PYTHONHOME:
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
}
# The prior PATH:
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
}
# Just remove the VIRTUAL_ENV altogether:
if (Test-Path -Path Env:VIRTUAL_ENV) {
Remove-Item -Path env:VIRTUAL_ENV
}
# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
}
# Leave deactivate function in the global namespace if requested:
if (-not $NonDestructive) {
Remove-Item -Path function:deactivate
}
}
<#
.Description
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
given folder, and returns them in a map.
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
two strings separated by `=` (with any amount of whitespace surrounding the =)
then it is considered a `key = value` line. The left hand string is the key,
the right hand is the value.
If the value starts with a `'` or a `"` then the first and last character is
stripped from the value before being captured.
.Parameter ConfigDir
Path to the directory that contains the `pyvenv.cfg` file.
#>
function Get-PyVenvConfig(
[String]
$ConfigDir
) {
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
# An empty map will be returned if no config file is found.
$pyvenvConfig = @{ }
if ($pyvenvConfigPath) {
Write-Verbose "File exists, parse `key = value` lines"
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
$pyvenvConfigContent | ForEach-Object {
$keyval = $PSItem -split "\s*=\s*", 2
if ($keyval[0] -and $keyval[1]) {
$val = $keyval[1]
# Remove extraneous quotations around a string value.
if ("'""".Contains($val.Substring(0, 1))) {
$val = $val.Substring(1, $val.Length - 2)
}
$pyvenvConfig[$keyval[0]] = $val
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
}
}
}
return $pyvenvConfig
}
<# Begin Activate script --------------------------------------------------- #>
# Determine the containing directory of this script
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
$VenvExecDir = Get-Item -Path $VenvExecPath
Write-Verbose "Activation script is located in path: '$VenvExecPath'"
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
# Set values required in priority: CmdLine, ConfigFile, Default
# First, get the location of the virtual environment, it might not be
# VenvExecDir if specified on the command line.
if ($VenvDir) {
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
}
else {
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
Write-Verbose "VenvDir=$VenvDir"
}
# Next, read the `pyvenv.cfg` file to determine any required value such
# as `prompt`.
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
# Next, set the prompt from the command line, or the config file, or
# just use the name of the virtual environment folder.
if ($Prompt) {
Write-Verbose "Prompt specified as argument, using '$Prompt'"
}
else {
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
$Prompt = $pyvenvCfg['prompt'];
}
else {
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virutal environment)"
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
$Prompt = Split-Path -Path $venvDir -Leaf
}
}
Write-Verbose "Prompt = '$Prompt'"
Write-Verbose "VenvDir='$VenvDir'"
# Deactivate any currently active virtual environment, but leave the
# deactivate function in place.
deactivate -nondestructive
# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
# that there is an activated venv.
$env:VIRTUAL_ENV = $VenvDir
if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
Write-Verbose "Setting prompt to '$Prompt'"
# Set the prompt to include the env name
# Make sure _OLD_VIRTUAL_PROMPT is global
function global:_OLD_VIRTUAL_PROMPT { "" }
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
function global:prompt {
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
_OLD_VIRTUAL_PROMPT
}
}
# Clear PYTHONHOME
if (Test-Path -Path Env:PYTHONHOME) {
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
Remove-Item -Path Env:PYTHONHOME
}
# Add the venv to the PATH
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"

View File

@@ -0,0 +1,66 @@
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
deactivate () {
# reset old environment variables
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
PATH="${_OLD_VIRTUAL_PATH:-}"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
hash -r 2> /dev/null
fi
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
PS1="${_OLD_VIRTUAL_PS1:-}"
export PS1
unset _OLD_VIRTUAL_PS1
fi
unset VIRTUAL_ENV
if [ ! "${1:-}" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}
# unset irrelevant variables
deactivate nondestructive
VIRTUAL_ENV="/Users/rxf/Projekte/sternwarte/sternwarte/checkfuehrung/venv"
export VIRTUAL_ENV
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "${PYTHONHOME:-}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
unset PYTHONHOME
fi
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1:-}"
PS1="(venv) ${PS1:-}"
export PS1
fi
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
hash -r 2> /dev/null
fi

View File

@@ -0,0 +1,25 @@
# This file must be used with "source bin/activate.csh" *from csh*.
# You cannot run it directly.
# Created by Davide Di Blasi <davidedb@gmail.com>.
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate'
# Unset irrelevant variables.
deactivate nondestructive
setenv VIRTUAL_ENV "/Users/rxf/Projekte/sternwarte/sternwarte/checkfuehrung/venv"
set _OLD_VIRTUAL_PATH="$PATH"
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
set _OLD_VIRTUAL_PROMPT="$prompt"
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
set prompt = "(venv) $prompt"
endif
alias pydoc python -m pydoc
rehash

View File

@@ -0,0 +1,64 @@
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
# (https://fishshell.com/); you cannot run it directly.
function deactivate -d "Exit virtual environment and return to normal shell environment"
# reset old environment variables
if test -n "$_OLD_VIRTUAL_PATH"
set -gx PATH $_OLD_VIRTUAL_PATH
set -e _OLD_VIRTUAL_PATH
end
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
set -e _OLD_VIRTUAL_PYTHONHOME
end
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
functions -e fish_prompt
set -e _OLD_FISH_PROMPT_OVERRIDE
functions -c _old_fish_prompt fish_prompt
functions -e _old_fish_prompt
end
set -e VIRTUAL_ENV
if test "$argv[1]" != "nondestructive"
# Self-destruct!
functions -e deactivate
end
end
# Unset irrelevant variables.
deactivate nondestructive
set -gx VIRTUAL_ENV "/Users/rxf/Projekte/sternwarte/sternwarte/checkfuehrung/venv"
set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/bin" $PATH
# Unset PYTHONHOME if set.
if set -q PYTHONHOME
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
set -e PYTHONHOME
end
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
# fish uses a function instead of an env var to generate the prompt.
# Save the current fish_prompt function as the function _old_fish_prompt.
functions -c fish_prompt _old_fish_prompt
# With the original prompt function renamed, we can override with our own.
function fish_prompt
# Save the return status of the last command.
set -l old_status $status
# Output the venv prompt; color taken from the blue of the Python logo.
printf "%s%s%s" (set_color 4B8BBE) "(venv) " (set_color normal)
# Restore the return status of the previous command.
echo "exit $old_status" | .
# Output the original/"old" prompt.
_old_fish_prompt
end
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
end

View File

@@ -0,0 +1,8 @@
#!/Users/rxf/Projekte/sternwarte/sternwarte/checkfuehrung/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View File

@@ -0,0 +1,8 @@
#!/Users/rxf/Projekte/sternwarte/sternwarte/checkfuehrung/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View File

@@ -0,0 +1,8 @@
#!/Users/rxf/Projekte/sternwarte/sternwarte/checkfuehrung/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

Some files were not shown because too many files have changed in this diff Show More