online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon MichelM vom 15.01.2020, 12:30 Options

GoogelCalender Script! Hilfe

Hallo ihr Superhelden!
Bräuchte eure Hilfe da ich sonst niemanden kenne der mir bei diesem Problem helfen kann!

Es handelt sich um ein Script das die Daten von einem Googelcalender heruasliest und und auf der Homepage sichtbar macht.

Beispielseite hier:

http://www.lkg-werratal.de/seiten/willkommen/willkommen.htm


Nun meine Frage, ist es möglich mehrere Kalender (das bietet ja der Googelcalender an) anzeigen zu lassen? und was muss noch in das Script reinb das er auch die Beschreibung des Calenders holt.

Idee des Scriptes stamt von hier:

http://ajax.phpmagazine.net/2006/04/howto_integrate_google_calenda.html

und was ich nutze (nur JavaScript) ist das hier:

http://webchicanery.com/2006/12/26/gcaljson-final-revision-and-paste-in-code/#comment-5567

Das Script kann man herunterladen hier: http://webchicanery.com/code/gcaljson1.1.zip


Antwort schreiben

Antwort 1 von MichelM vom 15.01.2020, 12:34 Options

Hier noch mal das Script:

/**
gCalJSON
Copyright 2006 Mark Percival -  SquarePush, LLC
mark@squarepush.com
Released under GPL
A JSON implementation of gCalAjax.
**/


var today = new Date();
var startDate = today.getFullYear() + '-';
startDate += (today.getMonth()+1 < 10) ? '0'+(today.getMonth()+1) : today.getMonth()+1; 
startDate += '-';
startDate += (today.getDate() < 10) ? '0'+today.getDate() : today.getDate(); 

gCalFeed += '?alt=json-in-script&callback=jsonhandler&singleevents=true&orderby=starttime&sortorder=a';
gCalFeed += '&start-min='+startDate;
gCalFeed += '&max-results=' + maxResults;

RSSRequest(gCalFeed);


function RSSRequest(url) {
document.write("<script type='text/javascript' language='javascript' src='");
document.write(gCalFeed);
document.write("'></script>");
}

function jsonhandler(response) {
	var feed = response.feed;
	var outputHTML = "<br>";
	var itemTimePrev = new Date();
	itemTimePrev.setTime(0);
	
	if(feed.entry) { 
		for (var i = 0 ; i < feed.entry.length; i++) {
	      var entry = feed.entry[i];
	      var itemTitle = entry['title'].$t;
		  var itemLink = entry['link'][0].href;
		  var itemTimeRaw = entry['gd$when'][0].startTime;
		  // What I added - Mark
		  // *****
		  var itemLocation = entry['gd$where'][0].valueString;
		  var itemDescr = entry['content'].$t;
		  // *****
		  var isAllDay = false; //init isAllDay variable
	      if (itemTimeRaw.length <= 10) isAllDay = true; //just the date is only 10 digits = all day event
	      var itemTime = new Date();
	      itemTime.setTime (Date.UTC(itemTimeRaw.substr(0,4),(itemTimeRaw.substr(5,2)-1),itemTimeRaw.substr(8,2),itemTimeRaw.substr(11,2),itemTimeRaw.substr(14,2)));
	      if ((itemTime.getUTCDate()!=itemTimePrev.getUTCDate())||(itemTime.getUTCMonth()!=itemTimePrev.getUTCMonth()))
	  
	  	  outputHTML += '<br> <datumgd>' + ' <a href="http://www.lkg-werratal.de/seiten/veranstaltungen/veranstaltungen-2.htm"> ' + itemTitle + '</a>' + '</datumgd><br>';
		  outputHTML += '<datumgd>' + 'am ' + itemTime.getUTCDate() + '. ' + getMonthName(itemTime) ;
	                    
	      outputHTML += '<br>'; 
	      if (!isAllDay) outputHTML += 'um ' + getTimeFormatted(itemTime) + ' Uhr - ' + '</datumgd>' ;     
		  //And here as well, I added the location and description to the list item.

	      itemTimePrev.setTime(itemTime); //Save the last timestamp for next iteration comparison	  
	    }
	outputHTML += '<br>' + itemDescr ;
	setHTML("gcalajax", outputHTML);
	setHTML("status", "");
	}
	else {setHTML("status", "No future events.");}
}

/*
* Time Format - Month
*/
function getMonthName(dateObject) {
    var m_names = new Array("Januar", "Februar", "März", 
    "April", "Mai", "Juni", "Juli", "August", "September", 
    "Oktober", "November", "Dezember");
    return(m_names[dateObject.getUTCMonth()]);
}

/*
* Time Format - Hour
*/
function getTimeFormatted(dateObject) {
    var hours = dateObject.getUTCHours();
    var minutes = dateObject.getUTCMinutes();
    var formattedTime = null;
    if (is24Hour) {
        if (minutes < 10){minutes = "0" + minutes;}
        formattedTime = hours + ':' + minutes;
        return (formattedTime);
    }
    else {
        var ampm = "AM";
        if (hours > 12){
            hours = hours - 12;
            ampm = "PM";}
        if (hours == 12){ampm = 'PM';}
        if (hours == 0) {hours = 12;}
        if (minutes < 10){minutes = "0" + minutes;}
        formattedTime = hours + ':' + minutes + ' ' + ampm;
		return (formattedTime);
    }
}

function setHTML(div, data)
{
	document.write(data);
}   


Dazu in der htmlseite der aufruf:


<script type="text/javascript" language="javascript">
<!---
var gCalFeed = 'http://www.google.com/calendar/feeds/eufboi9toaggl4755gi1iqqf7c%40group.calendar.google.com/public/full';
var maxResults = 1;
var is24Hour = true;
-->
</script>

Antwort 2 von katy vom 15.01.2020, 14:59 Options

Hallo Michel,

leider fehlen mir ein bisschen Lust und Zeit die Scripte zu analysieren und die englischsprachigen Texte zu lesen.
Kannst du nicht einfach mal beschreiben, was die Scripte machen, auf was für Daten sie per AJAX zugreifen, und wie diese ausgegeben werden sollen? Und was stattdessen derzeit passiert?
So ist das ganze für mich undurchschaubar.

katy

Antwort 3 von MichelM vom 15.01.2020, 20:18 Options

Hallo und Danke für dein Angebot zu helfen!

Also das Script was ich mit angegebne habe holt die Daten von einen Googel Calender deren xml adresse man angeben muss. Nun möchte ich aber das das script nicht nur die Daten von EINEM Googlecalender holt sondern von mehreren. Das heist alle Calender haben den gleichen Account aber wie du sicherlich weist kann man ja mehrere Calender in Google anlegen. Nun wie mach ich das???

Ich weiß das da ein wenig Arbeit dahinter steckt, aber es wäre echt Prima wenn das jemand hinbekommen würde.

Das zweite Problem was sicherlich einfacher zu lösen ist, ist das das Script auch den Inhalt, also die Beschrebung ausgeben soll.

Der Befehl um es zu holen ist dieser:

var itemDescr = entry['content'].$t;

aber wie und was muss man tun damit er es ausgibt:

outputHTML += ??????


DANKE Das wäre echt hilfreich wenn das einer beschreiben könnte!!!!!!!!

Antwort 4 von katy vom 15.01.2020, 22:21 Options

Hallo Michel,
Zitat:
aber wie du sicherlich weist kann man ja mehrere Calender in Google
gerade da haperts: ich habe keine Ahnung vom Umgang mit google-Calender. Aber offensichtlich werden von dort XML-Dateien geliefert auf http-Anfrage. Nun wäre der Inhalt und Aufbau dieser Dateien eigentlich alles, was zu wissen nötig ist, um ein JavaScript zu schreiben, dass diese XML-Datei holt, ausliest und die Daten in eine HTML-Umgebung schreibt.

Das klingt auf Anhieb so wie "das Rad neu erfinden", es ist auch so ähnlich. Nur beim "neu Erfinden" komme ich eher dahinter, was machbar ist, als beim Studium fremden Codes. Und der, den du oben gepostest hast ist erstens unvollständig, zweitens sehr unübersichtlich und drittens wurde er (leider) durch die Forumssoftware hier verstümmelt.

Also nochmals zusammengefasst:
Wie wird eine Calender-XML aufgerufen?
Wie ist sie aufgebaut?
Welche Informationen daraus sind relevant?
Wie sollen sie ausgewertet werden?

katy

Ähnliche Themen

vb script menüklick simulieren
blaundblubb  26.01.2007 - 83 Hits - 3 Antworten

LAST MODIFIED
didi10  05.04.2007 - 78 Hits - 8 Antworten

Hilfe VBS-Script Programmstart Optionen
Agasthia  09.07.2007 - 31 Hits - 4 Antworten

Script
meliger  19.07.2007 - 25 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026