Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

Μετατροπή custom ημερολογίου σε vCalendar

Μια περιοχή όπου τα μέλη μας μπορούν να βάζουν τα PHP scripts που έχουν φτιάξει και θέλουν να τα μοιραστούν με τα υπόλοιπα μέλη.

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Μετατροπή custom ημερολογίου σε vCalendar

Δημοσίευση από cherouvim » 05 Αύγ 2006 17:42

Μερικοί από εμάς ίσως έχουν φτιάξει κάποιο web based ημερολόγιο για να κρατάνε σημειώσεις και γεγονότα. Εγώ τουλάχιστον είμουν ένας από αυτούς. Είχα εκατοντάδες events μέσα σε διάστημα 5 ετών, αποθηκευμένα σε ένα database table, μέχρι που κατάλαβα ότι ήρθε η ώρα να τα μετακινήσω σε κάτι πιό standard. Επέλεξα το mozilla sunbird το οποίο κάνει import από διάφορα formats, μεταξύ αυτών, και vCalendar. Επίσης κυκλοφορεί και σε portable έκδοση, που δεν χρειάζεται install και τρέχει από USB. Φυσικά το format αυτό το υποστηρίζουν πολλές εφαρμογές (Outlook κτλ).

Έχω λοιπόν το table μου:
Εικόνα
και με το εξής script παράγω ένα .vcs αρχείο, έτοιμο προς εισαγωγή στο sunbird.

Κώδικας: Επιλογή όλων

<?php
	function vcalDate&#40;$date&#41; &#123;
		$date = str_replace&#40;"-", "", $date&#41;;
		$date = str_replace&#40;"&#58;", "", $date&#41;;
		$date = str_replace&#40;" ", "T", $date&#41;;
		return $date;
	&#125;

	header&#40;"Content-Type&#58; text/html; charset=utf-8"&#41;;
	header&#40;"Content-disposition&#58; attachment; filename=vcalendar.vcs"&#41;;

	include "db2.php";
	$events = get_events&#40;&#41;;

?>
BEGIN&#58;VCALENDAR
VERSION&#58;1.0
PRODID&#58;freestuff vcalendar convertor
METHOD&#58;PUBLISH

<?	foreach&#40;$events as $event&#41; &#123;?>
BEGIN&#58;VEVENT
SUMMARY&#58;<?=$event&#91;'event'&#93;?>

DTSTART&#58;<?=vcalDate&#40;$event&#91;'datetime'&#93;&#41;?>

LOCATION&#58;<?=$event&#91;'location'&#93;?>

END&#58;VEVENT

<?&#125;?>
END&#58;VCALENDAR
Η get_events() τρέχει ένα query της μορφής SELECT * FROM events;
Το αποτέλεσμα όταν καλέσουμε το script μέσα από το browser, είναι να κατέβει το αρχείο vcalendar.vcs

Κώδικας: Επιλογή όλων

BEGIN&#58;VCALENDAR
VERSION&#58;1.0
PRODID&#58;freestuff vcalendar convertor
METHOD&#58;PUBLISH

BEGIN&#58;VEVENT
SUMMARY&#58;Javapolis conference
DTSTART&#58;20061211T100000
LOCATION&#58;Belgium
END&#58;VEVENT

BEGIN&#58;VEVENT
SUMMARY&#58;Tom's Party
DTSTART&#58;20061206T140000
LOCATION&#58;Athens
END&#58;VEVENT

BEGIN&#58;VEVENT
SUMMARY&#58;Dentist
DTSTART&#58;20061218T183000
LOCATION&#58;Athens
END&#58;VEVENT

END&#58;VCALENDAR
...το οποίο κάνουμε import στο sunbird.
Εικόνα


vCalendar/iCalendar formats
http://tools.ietf.org/html/rfc2445
http://www.imc.org/pdi/
http://en.wikipedia.org/wiki/VCalendar
http://en.wikipedia.org/wiki/ICalendar

sunbird
http://www.mozilla.org/projects/calendar/sunbird/

portable sunbird
http://portableapps.com/apps/office/sunbird_portable

Απάντηση

Επιστροφή στο “PHP τα δικά μας scripts”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης