Zum Inhalt springen

Techn. Frage bzgl. KOSIF-Verlinkung


Empfohlene Beiträge

Geschrieben

Ich wurde darauf aufmerksam gemacht, dass auf meiner Meteo-Seite das KOSIF nicht mehr aktuell ist. Wie ich jetzt gemerkt habe, hat Skyguide die URL zum KOSIF geändert.

 

KOSIF von heute: http://www.skyguide.ch/de/AIMServices/AicKosifVfrBulletin/_Kosif_Karten/KOSIF_Karte_20060227.pdf

 

Wie man sieht, ändert sich der Pfad nun täglich. Gibt es eine Möglichkeit, wie man ein solches pdf trotzdem verlinken kann? Oder muss ich nun auf die Einstiegsseite von Skyguide verweisen?

 

Gruss und Dank

Philip

Geschrieben

Salü Philip

 

Wie du vielleicht bemerkt hast, sind die hinteren Stellen des Filenamens das aktuelle Datum. Mit Javascript könntest du nun einen Link bauen, der das aktuelle Datum einschliesst.

 

Beispiel gefällig???

 

Gruss Silvan

Geschrieben

So etwa:

 

<script language="JavaScript">
	function openKosif()
	{		
		// base url
		var baseURL = "http://www.skyguide.ch/de/AIMServices/AicKosifVfrBulletin/_Kosif_Karten/KOSIF_Karte_########.pdf";

		// format YYYYMMDD date
		var today = new Date()

		var y = today.getFullYear();
		var m = (((today.getMonth()+1) < 10) ? "0" + String(today.getMonth()+1) : String(today.getMonth()+1));
		var d = ((today.getDate() < 10) ? "0" + String(today.getDate()) : String(today.getDate()));

		var dateString = y + m + d;

		// link
		window.open(baseURL.replace("########", dateString), 'Kosif', 'menubar=no, resizable=yes, scrollbars=yes, status=no, toolbar=no');
	}
</script>

<a href="javascript:openKosif()">Kosif hier!</a>

 

Gruss Silvan

Geschrieben

Allerbesten Dank, Silvan! Das werde ich gleich mal versuchen. :)

 

Gruss

Philip

Geschrieben

Warum sollte es darum nicht geeignet sein? Javascript hat sehr wohl zugriff auf das aktuelle Datum, auch wenn es nicht über den Server sondern über den Client läuft. Voraussetzung ist natürlich, dass die Uhr am Client einigermassen richtig gestellt ist.

 

Mit PHP gehts natürlich auch.

 

Gruss Silvan

Geschrieben

Zusätzliche Schwierigkeit ist, dass ich sowohl das KOSIF von heute, als auch das KOSIF von morgen verlinken möchte. Dann wird es ungleich schwieriger, richtig?

Geschrieben

Einfach addieren geht in die Hose... Sonst gibts das Problem mit dem 32.Januar. Aber die Date Klasse ist zum Glück so schlau das zu können.

 

Habe meine Methode von oben ein wenig angepasst:

 

<script language="JavaScript">
	function openKosif(dayOffset)
	{		
		// base url
		var baseURL = "http://www.skyguide.ch/de/AIMServices/AicKosifVfrBulletin/_Kosif_Karten/KOSIF_Karte_########.pdf";

		// format YYYYMMDD date
		var today = new Date()
		today.setDate(today.getDate() + dayOffset);

		var y = today.getFullYear();
		var m = (((today.getMonth()+1) < 10) ? "0" + String(today.getMonth()+1) : String(today.getMonth()+1));
		var d = ((today.getDate() < 10) ? "0" + String(today.getDate()) : String(today.getDate()));

		var dateString = y + m + d;

		// link
		window.open(baseURL.replace("########", dateString), 'Kosif', 'menubar=no, resizable=yes, scrollbars=yes, status=no, toolbar=no');
	}
</script>

<a href="javascript:openKosif(0)">Kosif heute</a><br>
<a href="javascript:openKosif(1)">Kosif morgen</a><br>
<a href="javascript:openKosif(2)">Kosif übermorgen</a><br>
<a href="javascript:openKosif(7)">Kosif in einer Woche</a><br>

 

Voraussetzung ist aber auch, dass Skyguide die verlinkten Files auch zur Verfügung stellt.

 

Gruss Silvan

Geschrieben

Silvan, besten Dank für Deine ausführlich Antwort! Für mich als Banause alles etwas kompliziert, aber ich werde es einmal versuchen.

 

Martin: "Morgen = Heute + 1" ... da habe ich ja wieder etwas neues gelernt. Eigentlich wollte ich auf die Schwierigkeiten ansprechen, die Silvan erwähnt hat. ;) Ausserdem ist es für einen Laien wie mich nicht ganz einfach zu einem Datum, das ich ja nicht kenne, 1 dazu zu zählen. Ob man den Begriff "tomorrow" oder "today + 1" wählt... woher weiss ich das. Mit Java und solchen Dingen kenne ich mich zu meiner Schande leider nicht aus.

 

Gruss und Dank

Philip

Geschrieben

Hoi Philip

 

Es ist nicht so eine Hexerei... Kurze Erklärung:

 

today, d, m, y, dateString, baseURL sind nur meine Variablennamen. dayOffset ist der Parameter, der beim Aufruf angegeben wird. Er sagt wieviele Tage dazuaddiert werden sollen.

 

Der Trick vom 32. Januar ist, dass wir das addieren des Tages der "Date" Klasse überlassen und nicht einfach den Tag hochzählen. Dies erledigt today.setDate für uns:

var today = new Date()
today.setDate(today.getDate() + dayOffset);

 

 

Dies hier:

var y = today.getFullYear();
var m = (((today.getMonth()+1) < 10) ? "0" + String(today.getMonth()+1) : String(today.getMonth()+1));
var d = ((today.getDate() < 10) ? "0" + String(today.getDate()) : String(today.getDate()));

Ist nur ein wenig Bastlerei, dass die 0 auch schön vor den Zahlen stehen (20060228 anstatt 2006228)

 

 

Dies hier:

window.open(baseURL.replace("########", dateString), 'Kosif', 'menubar=no, resizable=yes, scrollbars=yes, status=no, toolbar=no');

Ist eigentlich nur ein normales Popup-Aufruf der den Platzhalter im "baseURL" ersetzt. Diesen Platzhalter habe ich eigentlich nur eingebaut, damit sich dieser URL einfacher anpassen lässt.

 

Ich hoffe das war einigermassen verständlich...

 

Gruss Silvan

... der hofft das es endlich Frühling wird und er sich wieder mehr in der Luft als vor dem Compi aufhalten kann.

Geschrieben

Danke Euch beiden für die Antworten. Wie Ihr seht, fehlen mir nicht nur die Grundkenntnisse! :D :009:

 

Um mich weiteren JAVA- und PHP-Peinlichkeiten entziehen zu können, versuche ich mich nun etwas in die Materie zu vertiefen... :o :004:

 

Gruss und Dank von Philip

Geschrieben

Aber bitte nicht Javascript mit Java verwechseln:

 

Javascript --> Clientseitige Scriptsprache für den Browser (das läuft beim Client im Browser)

PHP --> Serverseitige Scriptsprache. Wird auf dem Server interpretiert und sendet die "fertig bearbeitete" Seite an den Browser.

Java --> ganz was anderes... Kann man mit JSP etc auch im Web einsetzten (Serverseitig), das zu erklären würde aber sehr technisch werden.

 

Vor- und Nachteile des ganzen:

 

PHP:

+ Browserunabhängig

+ Zeit vom Server (sollte eigentlich stimmen)

- Benötigt PHP support auf dem Server

- Kann nicht einfach so schnell, schnell lokal getestet werden

 

Javascript:

+ Läuft ohne Plugin

+ Einfach ins HTML reinkopieren und fertig

- Abhängig von der Zeit des Clients

- Browserabhängig (mein Script oben ist kaum problematisch, weil nicht wahnsinnig Umfangreich)

 

Nun musst du selbst wählen, welchen Weg du gehen willst.

 

Gruss Silvan

Geschrieben
Danke Euch beiden für die Antworten. Wie Ihr seht, fehlen mir nicht nur die Grundkenntnisse!

 

Um mich weiteren JAVA- und PHP-Peinlichkeiten entziehen zu können, versuche ich mich nun etwas in die Materie zu vertiefen...

 

Hallo Philip

 

Ein einfacher Verweis auf die skyguide Seite tuts nicht?

 

http://www.skyguide.ch/de/AIMServices/AicKosifVfrBulletin/

 

 

Stefan

Geschrieben

Da hast du definitiv recht... Nur, wie hoch ist die Wahrscheinlichkeit, dass ein potentieller schweizer Kosif-anschauer aus Amerika kommt und eine andere Zeit eingestellt hat? Oder dass jemand seine Uhr um Stunden / Tage verstellt hat, dass das Datum schon nicht mehr stimmt? (OK, ich vielleicht weil ich schon seid einigen Wochen zu faul bin zuhause die Pufferbatterie zu wechseln :009: )

 

<OT>

Man könnte natürlich die Superlösung bauen und mit Javascript und asynchronen Callbacks (AJAX) die Zeit von einem WebService holen. Dann hätte man den Fünfer und das Weggli :007:.

</OT>

 

Gruss Silvan

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...