Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 11. Juli 2012 00:36
- bbiederm
- hat von CMS/ms gehört
- Registriert: 11. Juli 2012
- Beiträge: 8
Google Kalender einbinden -- nächster Termin
Hallo zusammen,
ich möchte gerne Termine aus meinem GoogleKalender in CMSMS einbinden. Ich habe auch schon die Lösung per <iframe> gefunden. Nun möchte ich aber auf der Startseite den nächsten Termin aus meinem Google Kalender anzeigen lassen. Dabei habe ich probiert rsss2html zu nutzen. Leider orientiert rss und somit (auch rss2html) sich nicht an den Daten der Termine, sondern an den Erstellungsdaten. Somit sind die Termine in der rss Ansicht durcheinander.
Mache ich etwas falsch?
Wie kann ich vorgehen?
Danke
bbiederm
Offline
#2 15. Juli 2012 20:35
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Für Google Calendar gibt's ein (altes) Modul. Wenn du ein bißchen mit PHP fit bist, sollte sich das relativ einfach anpassen lassen ...
Offline
#3 16. Juli 2012 08:36
- bbiederm
- hat von CMS/ms gehört
- Registriert: 11. Juli 2012
- Beiträge: 8
Re: Google Kalender einbinden -- nächster Termin
Danke für die Antwort!
Am Wochenende habe ich mich auch nochmal drangesetzt und eine andere Lösung gefunden.
Ich löse es nun mit diesem RRS-Feed innnerhalb von RSS2HTML und bin sehr zufrieden:
https://www.google.com/calendar/feeds/[account]/public/basic?orderby=starttime&sortorder=ascending&max-results=5
Hier ist die gesamte Google Calendar API Reference
Beitrag geändert von bbiederm (16. Juli 2012 08:40)
Offline
#4 16. Dezember 2013 18:15
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Re: Google Kalender einbinden -- nächster Termin
Leider eine Weile her dieser Beitrag, aber ich habe folgendes Problem: Feed-Adresse des Formats wie von bbiederm angegeben, wird von RSS2HTML nicht als korrekte Feed-URL akzeptiert. Hat jemand eine Ahnung, woran das liegen kann?
Ich benutze das Modul unter 1.11.9 und habe sonst bisher keine Fehlermeldungen.
Beitrag geändert von COR9 (16. Dezember 2013 18:17)
Offline
#5 17. Dezember 2013 09:44
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Funktioniert der Feed an sich noch bzw gibt dir was gescheites aus?
Offline
#6 17. Dezember 2013 09:53
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Re: Google Kalender einbinden -- nächster Termin
Wenn ich an die googletypische URL .XML anhänge, frisst RSS2HTML die Feed-Adresse, gibt aber an der entsprechenden Stelle nix aus. Über den RSS-Reader in Browsern wird der Kalender prächtig angezeigt.
Habe auch das alte GoogleCalendar ausprobiert, aber das will den Zend-GData-Ordner wissen. Ich nehme mal an, da brauche ich mehr Rechte auf dem Server, um das zu installieren. Bin schon auf PHP 5.3 mit Zend-Optimierung runter, hilft aber nix.
Jetzt stehe ich ganz schön auf dem Schlauch, weil auch XMLMadeSimple nur eine sehr seltsam sortierte XML-Datei ausgibt, in der gerade der Content, den ich filtern will, unter einem Wert zusammengefasst ist.
Offline
#7 17. Dezember 2013 11:01
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Wie gesagt das Modul ist schon etwas älter. Schau mal im Forge. Da gibt es ein Modul, was das Zend Framework bereit stellt. Evtl kannst du den Source dahingehend anpassen, dass es darüber darauf zugreift.
Hab zudem gesehen, dass bei rss2html vermerkt ist, dass es mit CMSMS 1.10 funktioniert. Möglicherweise hängt es an den Änderungen in der 1.11... Zumindest ist das Modul bereits als 'stale' gekennzeichnet.
Offline
#8 17. Dezember 2013 11:03
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Ggf. Mal mit {get_template_vars} checken, ob und was genau im Template ankommt.
Offline
#9 18. Dezember 2013 20:42
- bbiederm
- hat von CMS/ms gehört
- Registriert: 11. Juli 2012
- Beiträge: 8
Re: Google Kalender einbinden -- nächster Termin
Hi COR9,
Ich benutze immernoch rrs2html mit meinem google calender und er funktioniert. Die URL für rrs2html sieht bei mir inzwischen so aus:
http://www.google.com/calendar/feeds/[dein kalender]/public/basic?orderby=starttime&futureevents=true&sortorder=ascending&max-results=3&ctz=Europe/Berlin
Ich benutze:
cmsms 1.11.9
rrs2html 1.2.5.2
News 2.13
Vielleicht liegt es am Template?
Beitrag geändert von bbiederm (18. Dezember 2013 20:43)
Offline
#10 20. Dezember 2013 11:51
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Re: Google Kalender einbinden -- nächster Termin
Danke bbiederm, dass Du Dich der Sache nochmal annimmst.
Es liegt wohl am Template, ich war nur erstmal geplättet, dass die URL überhaupt nicht gefressen wird.
Das Standard-Template benutzt die RSS-typischen XML-Tags wie channel etc. Google Kalender ganz andere.
Würdest Du mir Einblick in Dein Template geben?
Dann schließt sich gleich noch eine Frage an: Unter [content] fasst die Kalenderdatei leider so einiges (Datum, Zeit, Ort, Status, Terminbeschreibung) kaum ungefiltert zusammen. Ich benötige aber nur die Beschreibung selbst, denn der Kalender soll die einzige Datenquelle für News-Content werden und auch zeitunabhängige Daten liefern. Falls Du das Problem auch hattest, wie hast Du es gelöst? truncate etc?
[== XML Ausschnitt ==]
[entry] => SimpleXMLElement Object
(
[id] => http://www.google.com/calendar/feeds/meinkalender%40group.calendar.google.com/public/basic/meinsubkalendercode
[published] => 2013-12-16T15:38:52.000Z
[updated] => 2013-12-16T15:45:56.000Z
[category] => SimpleXMLElement Object
(
[@attributes] => Array
(
[scheme] => http://schemas.google.com/g/2005#kind
[term] => http://schemas.google.com/g/2005#event
)
)
[title] => Christvesper
[summary] => Wann: Di 24. Dez. 2013 15:00 bis 16:00 MEZ
Wo: Mein Ort, Deutschland
Status des Termins: bestätigt
[content] => Wann: Di 24. Dez. 2013 15:00 bis 16:00 MEZ
Wo: Mein Ort, Deutschland
Status des Termins: bestätigt
Terminbeschreibung: Lorem ipsum ZIEMLICH VIEL TEXT, Z.B. EDITORIAL
Beitrag geändert von COR9 (20. Dezember 2013 11:51)
Offline
#11 20. Dezember 2013 12:48
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Daraus liesse sich ein Array machen und die benötigten Werte auslesen:
{$entry->content} // Müsste den Inhalt des Contents hergeben
{assign var="content" value="\n"|explode:$entry->content}
{$content[3]} // Müsste die Terminbeschreibung geben
{assign var="terminbeschreibung" value=":"|explode:$content[3]}
{$terminbeschreibung[1]} // müsste die Terminbeschreibung ohne vorgehende Beschreibung liefern.
Alles ungetestet, reine Hypothese.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#12 20. Dezember 2013 17:57
- bbiederm
- hat von CMS/ms gehört
- Registriert: 11. Juli 2012
- Beiträge: 8
Re: Google Kalender einbinden -- nächster Termin
Hi COR9,
mein template in rss2html sieht wie folgt aus:
{foreach from=$rss->items item='item' name=EBSagenda}
{if $smarty.foreach.EBSagenda.index < 3}
<div id="agenda">
<strong>{$item.title}</strong>
<br><font>{$item.summary}</font>
</div>
{/if}
{/foreach}
dort wird nur der Title und das Summary ausgelesen. So ist es nicht nötig es vorher zu kürzen.
Im CMSMS template rufe ich es dann so auf:
{RSS2HTML feed='rss2html-feedNameGoogleKalender' template="rss2html-Template"}</div>
Auf der Seite benötige ich nur die nächten drei Termine. deswegen ...index < 3
Beitrag geändert von bbiederm (20. Dezember 2013 17:59)
Offline
#13 24. Dezember 2013 13:20
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Re: Google Kalender einbinden -- nächster Termin
Vielen Dank für Eure Antworten einstweilen, ich teste zwischen Weihnachten und Neujahr weiter.
Offline
#14 07. Januar 2014 14:22
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Ist jetzt zwar quick-and-dirty, aber bei mir läuft der Google Calendar mit RSS2HTML und diesem Template:
{foreach from=$rss->items item='item'}
{assign var="ttermin" value=$item.atom_content|strip_tags|regex_replace:"/(\s*\n\s*)+/":"\n"}
{assign var="termin" value="\n"|explode:$ttermin}
{assign var="wann" value=$termin[0]|replace:"Wann: ":""}
{assign var="wo" value=$termin[1]|replace:"Wo: ":""}
{assign var="details" value=$termin[3]|replace:"Terminbeschreibung: ":""}
Wann: {$wann}<br />
Wo: {$wo}<br />
Details: {$details}<hr />
{/foreach}
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#15 16. Januar 2014 12:09
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Re: Google Kalender einbinden -- nächster Termin
Ich weiß leider immer noch nicht, wo es hängt. Habe Eure Vorschläge ausprobiert, der Sch...kalender wird aber sowas von überhaupt nicht geladen. Am Modul grundsätzlich kanns nicht liegen, habe den ARD-Nachrichten-Feed probiert, geht super.
{RSS2HTML|print_r feed='Kalender'} gibt eine 1 aus,
{get_template_vars} im Seitentemplate enthält zwei Infos, die sich dem Modul zuordnen lassen: actionmodule = RSS2HTML und feedtitle = Problem mit:
Mit z.B. dem Template, das bei bbiederm funktioniert, müsste mir ja wenigstens ein Titel angezeigt werden. Aber nicht mal statisches HTML erscheint, wenn ich's ins Template hacke. Zwischenspeicher habe ich jeweils in RSS2HTML als auch global gelöscht. Aufrufe sind korrekt gesetzt. Debug-Modus des Moduls zeigt keinen Effekt.
Hat jemand Verdachtsmomente, woran das liegen könnte? Ich habe testweise parallel XMLMadeSimple installiert, das erkennt den Kalender.
Core 1.11.9
RSS2HTML 1.2.5.2
(XMLMadeSimple 0.1.2)
Offline
#16 16. Januar 2014 15:49
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Ähmm, warum nimmst du XML made simple nicht, wenn es bei dir funktioniert ?
Offline
#17 21. Februar 2014 10:04
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Re: Google Kalender einbinden -- nächster Termin
@cyberman: Es war noch Weihnachtszeit, ich hoffte auf das Wunder der Schnelleinbindung ...
Ansonsten habe ich an Andiministrators Template so lange rumgewerkelt, bis es mir in XML Made Simple nacheinander und in den richtigen Zeilen die Feed-Einträge anzeigte:
{foreach from=$feeds item='item'}
{assign var="ttermin" value=$item->content|strip_tags|strip|replace:"Wann: ":"<br>"|replace:" Wo: ":"<br>"|replace:" Status des Termins: ":"<br>"|replace:" Terminbeschreibung: ":"<br>"}
{assign var="termin" value="<br>"|explode:$ttermin}
{assign var="wann" value=$termin[1]}
{assign var="wo" value=$termin[2]}
{assign var="details" value=$termin[4]}
<p>Wann: {$wann}<br>
Wo: {$wo}<br>
Details: {$details}</p>
{/foreach}
Jetzt stieß ich auf ein neues, recht ekliges Problem:
Ersetzen mit reglären Ausdrücken hatte keine Wirkung, der Quelltext beinhaltete immer noch obskure, keinem eindeutigen Muster folgende Zeilenwechsel. Und da der Explode dem Zeilenwechsel folgt, gab's Salat. Ich habe HTML maskiert und wirklich alles entfernt (z.B. geschützte Leereichen), was einer korrekten Explode-Ausgabe noch im Wege stehen könnte. Keine Wirkung, deshalb habe ich zur strip-Keule gegriffen und musste nach einem anderen Wert für den Explode suchen. Die Mehrfach-replace-Geschichte ist nicht so geschickt, aber noch einen Arry bauen?
Hat jemand eine elegantere Idee bzw. schwere Bedenken? Ich find meinen Umbau nicht so doll, aber er funktioniert zumindest.
Offline
#18 21. Februar 2014 12:23
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
replace ist in der Tat keine sonderlich performante Lösung für dein Problem.
Jedoch sollte sich dies stark relativieren, wenn du die Zwischenspeicherungsdauer des Feeds höher setzt.
Offline
#19 21. Mai 2014 04:25
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Die weiteren Fragen von @COR9 wurden wegen neuer Fragestellung abgespalten und hier weitergeführt:
Offline
#20 21. Mai 2014 12:03
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Für Google Calendar gibt's ein (altes) Modul. Wenn du ein bißchen mit PHP fit bist, sollte sich das relativ einfach anpassen lassen ...
@COR9
Kannst du dir mal eine Installation mit einer alten CMSMS Version bauen und schauen, ob das Modul die Daten liefert, die du benötigst.
Vom Alter des Moduls her sollte es wohl die 1.6 sein, vom Code her könnte es auch mit der 1.9 funktionieren.
Wäre zumindest ein Test, ob es Sinn macht, dieses Modul auf den aktuellen Stand zu bringen.
Offline
#21 21. Mai 2014 15:08
- COR9
- Server-Pate
- Ort: Dresden
- Registriert: 09. November 2010
- Beiträge: 281
Re: Google Kalender einbinden -- nächster Termin
Gute Idee, habe es unter 1.6.1 und der letzten verfügbaren GoogleCalendar-Version probiert. Man braucht CGExtensions dafür, davon habe ich die zeitgemäße Version 1.15 installiert.
Folgt Fehlermeldung im Backendbereich des Moduls:
Zend GData library not found. Please make sure that the path to this library is set correctly in the preferences panel.
Habe keine Rechte, Zend-Bibliotheken zu installieren. Und den Pfad kenne ich auch nicht.
Daraus folgen folgende Fehlermeldungen, wenn ich das Modul einbinde:
Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream: Datei oder Verzeichnis nicht gefunden in /home/benutzer/public_html/modules/GoogleCalendar/GoogleCalendar.module.php on line 115
Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader.php' (include_path='.:/usr/lib/sphereconf/fcgi/php52/lib/php') in /home/benutzer/public_html/modules/GoogleCalendar/GoogleCalendar.module.php on line 115
In Zeile 115 steht einfach nur require_once 'Zend/Loader.php'; und der Loader wird natürlich nicht gefunden.
Anderes Problemchen: Nur eine Kalenderadresse kann eingebunden werden. Vielleicht lassen sich die anzuzeigenden Infos der Unterkalender via Template ausfiltern, da ich mindestens 5-6 Instanzen auf verschiedenen Unterseiten brauche.
Beitrag geändert von COR9 (21. Mai 2014 15:13)
Offline
#22 21. Mai 2014 21:08
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Folgt Fehlermeldung im Backendbereich des Moduls:
Zend GData library not found. Please make sure that the path to this library is set correctly in the preferences panel.
Eigentlich sollte im Backend ein Input-Feld zu finden sein, wo der Pfad zur Zend Bibliothek eingegeben werden muss.
Habe keine Rechte, Zend-Bibliotheken zu installieren. Und den Pfad kenne ich auch nicht.
Möglicherweise hast du da eine falsche Vorstellung . Natürlich kannst du das Zend Framework einbinden (nicht zu verwechseln mit dem Zend Guard & Co, was wirklich Server-Module sind).
In Zeile 115 steht einfach nur require_once 'Zend/Loader.php'; und der Loader wird natürlich nicht gefunden.
Kommentier die Zeile mal aus und installier das Zend Framework Modul
http://dev.cmsmadesimple.org/projects/zendframework
Nur eine Kalenderadresse kann eingebunden werden. Vielleicht lassen sich die anzuzeigenden Infos der Unterkalender via Template ausfiltern,
Schau erst mal, ob es mit einer Kalenderadresse das tut, was es nach deiner Vorstellung soll - falls ja, können wir immer noch schauen, ob und wie man mehrere Adresse ansprechen kann.
Offline
#23 15. Juni 2014 23:03
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Google Kalender einbinden -- nächster Termin
Eigentlich sollte im Backend ein Input-Feld zu finden sein, wo der Pfad zur Zend Bibliothek eingegeben werden muss.
Hast du dieses Feld im Tab Preference / Einstellungen gefunden?
Falls ja, Kommando zurück (also die Auskommentierung wieder weg) und in diesem Feld mal den Systempfad zu Zend/Loader.php (der sich ja innerhalb des ZendFrameworks befindet) eintragen.
Offline
Seiten: 1