Beste webdesigners,
ikzelf zit al een poos met het probleem dat ik mijn calender niet kan synchroniseren. Ik gebruik bij voorkeur de google calender, mede omdat ik een Android telefoon heb.
Bij mijn opdrachtgever(s), gebruikt men vrijwel uitsluitend Exchange. Ik wil mijn exchange-calender syncrhoniseren met google. Dat gaat toch? Hoor ik iedereen. Jawel, het nadeel is dat ik zelf met Ubuntu werk, en de sync-programma' s synchroniseren uitsluitend met Outlook (en niet, over het net, met Exchange).
Enfin, ik ben toen zelf gaan denken en ik heb enige basiskennis van PHP. Wat goochelen met variabelen, doorspitten van tutorials, voorbeelden en trial and error, kom ik een eindje. Ik wil een PHP script schrijven welke:
1) Exchange calender ophaalt en de calenderdata in database zet
2) Google calender ophalen en de googlecalender in database zetten
3) De juiste verschillen en wijzigingen doorsturen naar:
4) Google
5) Exchange
2) en 4) is gedaan en bestaat gewoon.
3) lijkt mij geen ál te lastig script
5) nog niet helemaal zeker, afhankelijk van het Davmail programma (heb mail naar dev ervan)
1) mbv davmail werkend, vraag komt hier beneden.
Hebben er mensen interesse mee te kijken, of ook belang bij deze synchronisatie? Het fijne is dat dit op een externe server uitgevoerd wordt zodat de calenders altijd in Sync zijn.
Het bestaat nog niet. Althans, ik heb me ellendig gezocht. Zeker met het oog met migratie naar googledocs van veel partijen is dit soort applicatie sowieso interessant.
Wat ik heb is www.rielity.org/gcal/get.php, waar ik mijn exchangekalender af haal. Onderaan zie je dat ik al enkele waardes in een Array wil zetten zodat ik er mee kan werken.
Enige probleem waar ik tegeop loop:
de UID en vaak de summary beslaat meerdere regels. Een doorlopende regel begint in ical met een spatie. Deze regel moet áán de inhoud van de vorige geplakt worden, totdat er weer een regel zodner spatie begint. Ik heb dit zo half/half klaar maar loop een beejte vast.
Misschien heeft iemand een idee?
(ohja, en hard commentaar over onhandig programmeren mag van mij
)
ikzelf zit al een poos met het probleem dat ik mijn calender niet kan synchroniseren. Ik gebruik bij voorkeur de google calender, mede omdat ik een Android telefoon heb.
Bij mijn opdrachtgever(s), gebruikt men vrijwel uitsluitend Exchange. Ik wil mijn exchange-calender syncrhoniseren met google. Dat gaat toch? Hoor ik iedereen. Jawel, het nadeel is dat ik zelf met Ubuntu werk, en de sync-programma' s synchroniseren uitsluitend met Outlook (en niet, over het net, met Exchange).
Enfin, ik ben toen zelf gaan denken en ik heb enige basiskennis van PHP. Wat goochelen met variabelen, doorspitten van tutorials, voorbeelden en trial and error, kom ik een eindje. Ik wil een PHP script schrijven welke:
1) Exchange calender ophaalt en de calenderdata in database zet
2) Google calender ophalen en de googlecalender in database zetten
3) De juiste verschillen en wijzigingen doorsturen naar:
4) Google
5) Exchange
2) en 4) is gedaan en bestaat gewoon.
3) lijkt mij geen ál te lastig script
5) nog niet helemaal zeker, afhankelijk van het Davmail programma (heb mail naar dev ervan)
1) mbv davmail werkend, vraag komt hier beneden.
Hebben er mensen interesse mee te kijken, of ook belang bij deze synchronisatie? Het fijne is dat dit op een externe server uitgevoerd wordt zodat de calenders altijd in Sync zijn.
Het bestaat nog niet. Althans, ik heb me ellendig gezocht. Zeker met het oog met migratie naar googledocs van veel partijen is dit soort applicatie sowieso interessant.
Wat ik heb is www.rielity.org/gcal/get.php, waar ik mijn exchangekalender af haal. Onderaan zie je dat ik al enkele waardes in een Array wil zetten zodat ik er mee kan werken.
Enige probleem waar ik tegeop loop:
de UID en vaak de summary beslaat meerdere regels. Een doorlopende regel begint in ical met een spatie. Deze regel moet áán de inhoud van de vorige geplakt worden, totdat er weer een regel zodner spatie begint. Ik heb dit zo half/half klaar maar loop een beejte vast.
Misschien heeft iemand een idee?
(ohja, en hard commentaar over onhandig programmeren mag van mij
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| <pre> <?php // Rielity 2010 // get contents from file or davmail // hieronder de link naar server waar davmail exchange connector draait (spuugt ics) # $information = file_get_contents('http://user:*****@rielity.org:1080/users/email@email/calendar/'); //voor snelheid even een lokaal bestand gebruikt $information = file_get_contents('./ical/test.ics'); $add=0; $cal=array(); $item_nr=0; $lineadd=0; $count=0; // Place each line of $information into array items $items = explode("\n",$information); $n_items = count($items); for($item_nr=0;$item_nr<=$n_items;$item_nr++) { echo "$item<br>"; // check for start of events $item=$items[$item_nr]; if (strstr($item,"BEGIN:VEVENT")) { $add=1; $count++; } //start adding items to array if (strstr($item,"END:VEVENT")) { $add=0; } //stop adding items to array /////////check if we have a space character at start of next line, if yes append to previous array if ($lineadd=1) { //when lineadd = 1 , we detected a space (maybe turn aournd with line==' ') ? Review $nextitem=$items[$item_nr+1]; $line=substr($nextitem, 0, 1); if ($line==' '){ $lineadd=1 ; $itemadd=str_replace(' ', '', $nextitem); $item="$item$itemadd"; $item_nr++; } else { // no space in next line, no lineadd, so go on $lineadd=0; } } if ($lineadd=0){ echo"$item -> $item_nr <br>"; } // we can show our item now, all lines are glued togehter? (debug) //////////check done if ($add=="1") { // start adding items to array if(strstr($item,SUMMARY)) {$cal[$count][summary] = "$item";} if(strstr($item,UID)) {$cal[$count][uid] = "$item";} //if(strstr($item,SUMMARY)) {$cal[$count][summary] = "$item";} //if(strstr($item,SUMMARY)) {$cal[$count][summary] = "$item";} //if(strstr($item,SUMMARY)) {$cal[$count][summary] = "$item";} //if(strstr($item,SUMMARY)) {$cal[$count][summary] = "$item";} } if ( $item == "END:VCALENDAR") { print_r($cal); exit("Finished!"); } } ?> </pre> |