[5146] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" |
---|
| 2 | "http://www.w3.org/TR/html4/frameset.dtd"> |
---|
| 3 | <html> |
---|
| 4 | <head> |
---|
| 5 | <title>iCalcreator 2.8 summary</title> |
---|
| 6 | <meta name="author" content="Kjell-Inge Gustafsson - kigkonsult" /> |
---|
| 7 | <meta name="copyright" content="2007-2011 Kjell-Inge Gustafsson - kigkonsult" /> |
---|
| 8 | <meta name="keywords" content="ical, calendar, calender, xcal, xml, icalender, rfc2445, vcalender, php, create" /> |
---|
| 9 | <meta name="description" content="iCalcreator" /> |
---|
| 10 | <style type="text/css"> |
---|
| 11 | body { |
---|
| 12 | FONT-FAMILY : "Lucida Grande","Lucida Sans Unicode", "Bitstream Vera Sans", Lucida, Arial, Geneva, Helvetica, sans-serif; |
---|
| 13 | FONT-SIZE : small; |
---|
| 14 | MARGIN : 10px; |
---|
| 15 | WIDTH : 800px; |
---|
| 16 | } |
---|
| 17 | h1 { |
---|
| 18 | FONT-FAMILY : "Lucida Grande","Lucida Sans Unicode", "Bitstream Vera Sans", Lucida, Arial, Geneva, Helvetica, sans-serif; |
---|
| 19 | FONT-SIZE : large; |
---|
| 20 | } |
---|
| 21 | h2 { |
---|
| 22 | FONT-FAMILY : "Lucida Grande","Lucida Sans Unicode", "Bitstream Vera Sans", Lucida, Arial, Geneva, Helvetica, sans-serif; |
---|
| 23 | FONT-SIZE : large; |
---|
| 24 | } |
---|
| 25 | h4 { |
---|
| 26 | FONT-FAMILY : "Lucida Grande","Lucida Sans Unicode", "Bitstream Vera Sans", Lucida, Arial, Geneva, Helvetica, sans-serif; |
---|
| 27 | FONT-SIZE : small; |
---|
| 28 | FONT-WEIGHT : bold; |
---|
| 29 | } |
---|
| 30 | .code { |
---|
| 31 | FONT-FAMILY : monospace; |
---|
| 32 | FONT-SIZE : medium; |
---|
| 33 | WHITE-SPACE : pre; |
---|
| 34 | } |
---|
| 35 | .comment { |
---|
| 36 | FONT-FAMILY : arial; |
---|
| 37 | FONT-SIZE : small; |
---|
| 38 | FONT-STYLE : italic; |
---|
| 39 | } |
---|
| 40 | </style> |
---|
| 41 | </head> |
---|
| 42 | <body> |
---|
| 43 | <h1>iCalcreator 2.8</h1> |
---|
| 44 | iCalcreator class v2.8<br /> |
---|
| 45 | copyright (c) 2007-2011 Kjell-Inge Gustafsson, kigkonsult<br /> |
---|
| 46 | <a href="http://www.kigkonsult.se/iCalcreator/index.php" title="www.kigkonsult.se/iCalcreator" target="_blank">www.kigkonsult.se/iCalcreator</a><br /> |
---|
| 47 | ical@kigkonsult.se<br /> |
---|
| 48 | <br /> |
---|
| 49 | iCalcreator is a PHP class managing iCal formatted files for non-calendar |
---|
| 50 | systems like CMS, project management systems and other applications able |
---|
| 51 | to process calendar information like agendas, tasks, reports, totos, |
---|
| 52 | journaling data and for communication with calendar systems and applications. |
---|
| 53 | <br /><br /> |
---|
| 54 | This is a <b>short summary</b> how to use iCalcreator; create, parse, edit, select and output functionality. |
---|
| 55 | <br /><br /> |
---|
| 56 | iCalcreator is built of a class file with support of a function class file and are calendar component property oriented. |
---|
| 57 | Development environment is PHP version 5.x but coding is done to meet 4.x backward compatibility and may work. |
---|
| 58 | <h4>iCal</h4> |
---|
| 59 | A short iCal description is found at <a href="http://en.wikipedia.org/wiki/ICalendar#Core_object" title="iCalendar From Wikipedia, the free encyclopedia" target="_blank">Wikipedia</a>. If You are not familiar with iCal, read this first!<br /> |
---|
| 60 | Knowledge of calendar protocol rfc2445/rfc2446 is to recommend;<br /> |
---|
| 61 | <a href="http://www.kigkonsult.se/downloads/dl.php?f=rfc2445" title="RFC2445" target="_blank">rfc2445</a> |
---|
| 62 | - Internet Calendaring and Scheduling Core Object Specification (iCalendar)<br /> |
---|
| 63 | <a href="http://www.kigkonsult.se/downloads/dl.php?f=rfc2446" title="RFC2446" target="_blank">rfc2446</a> |
---|
| 64 | - iCalendar Transport-Independent Interoperability Protocol (iTIP) Scheduling Events, BusyTime, To-dos and Journal Entries <br /> |
---|
| 65 | All functions calls are made as simple as possible BUT (, !!!,) read these rfc's properly!<br /> |
---|
| 66 | <h4>Downloads</h4> |
---|
| 67 | Download |
---|
| 68 | <a href="http://www.kigkonsult.se/downloads/index.php#iCalcreator" title="iCalcreator complete manual" target="_blank"><b>complete manual</b></a> |
---|
| 69 | and |
---|
| 70 | <a href="http://www.kigkonsult.se/downloads/index.php#iCalcreator" title="iCalcreator coding samples" target="_blank"><b>coding samples</b></a>. |
---|
| 71 | from <a href="http://www.kigkonsult.se/iCalcreator/index.php" title="iCalcreator" target="_blank">www.kigkonsult.se/iCalcreator</a>. |
---|
| 72 | <h4>INSTALL</h4> |
---|
| 73 | Unpack to any folder<br /> |
---|
| 74 | - add this folder to your include-path<br /> |
---|
| 75 | - or unpack to your application-(include)-folder<br /> |
---|
| 76 | Add "require_once [folder/]iCalcreator.class.php;" to your php-script. |
---|
| 77 | <br /> |
---|
| 78 | <br /> |
---|
| 79 | If using php version 5.1 or higher, the default timezone need to be set/altered, now "Europe/Stockholm", |
---|
| 80 | line 50 in the iCalcreator.class.php file. |
---|
| 81 | <br /> |
---|
| 82 | When creating a new calendar/component instance, review config settings. |
---|
| 83 | |
---|
| 84 | <h2>CREATE</h2> |
---|
| 85 | |
---|
| 86 | <p class="code">require_once( 'iCalcreator.class.php' ); |
---|
| 87 | $config = array( 'unique_id' => 'icaldomain.com' ); // <span class="comment">set Your unique id</span> |
---|
| 88 | $v = new vcalendar( $config ); // <span class="comment">create a new calendar instance</span> |
---|
| 89 | |
---|
| 90 | $v->setProperty( 'method', 'PUBLISH' ); // <span class="comment">required of some calendar software</span> |
---|
| 91 | $v->setProperty( "x-wr-calname", "Calendar Sample" ); // <span class="comment">required of some calendar software</span> |
---|
| 92 | $v->setProperty( "X-WR-CALDESC", "Calendar Description" ); // <span class="comment">required of some calendar software</span> |
---|
| 93 | $v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" ); // <span class="comment">required of some calendar software</span> |
---|
| 94 | .. . |
---|
| 95 | $vevent = & $v->newComponent( 'vevent' ); // <span class="comment">create an event calendar component</span> |
---|
| 96 | $vevent->setProperty( 'dtstart', array( 'year'=>2007, 'month'=>4, 'day'=>1, 'hour'=>19, 'min'=>0, 'sec'=>0 )); |
---|
| 97 | $vevent->setProperty( 'dtend', array( 'year'=>2007, 'month'=>4, 'day'=>1, 'hour'=>22, 'min'=>30, 'sec'=>0 )); |
---|
| 98 | $vevent->setProperty( 'LOCATION', 'Central Placa' ); // <span class="comment">property name - case independent</span> |
---|
| 99 | $vevent->setProperty( 'summary', 'PHP summit' ); |
---|
| 100 | $vevent->setProperty( 'description', 'This is a description' ); |
---|
| 101 | $vevent->setProperty( 'comment', 'This is a comment' ); |
---|
| 102 | $vevent->setProperty( 'attendee', 'attendee1@icaldomain.net' ); |
---|
| 103 | .. . |
---|
| 104 | $vevent = & $v->newComponent( 'vevent' ); // <span class="comment">create next event calendar component</span> |
---|
| 105 | $vevent->setProperty( 'dtstart', '20070401', array('VALUE' => 'DATE'));// <span class="comment">alt. date format, now for an all-day event</span> |
---|
| 106 | $vevent->setProperty( "organizer" , 'boss@icaldomain.com' ); |
---|
| 107 | $vevent->setProperty( 'summary', 'ALL-DAY event' ); |
---|
| 108 | $vevent->setProperty( 'description', 'This is a description for an all-day event' ); |
---|
| 109 | $vevent->setProperty( 'resources', 'COMPUTER PROJECTOR' ); |
---|
| 110 | $vevent->setProperty( 'rrule', array( 'FREQ' => 'WEEKLY', 'count' => 4));// <span class="comment">weekly, four occasions</span> |
---|
| 111 | $vevent->parse( 'LOCATION:1CP Conference Room 4350' ); // <span class="comment">supporting parse of strict rfc2445 formatted text</span> |
---|
| 112 | .. . |
---|
| 113 | .. .// <span class="comment">all calendar components are described in <a href="http://www.kigkonsult.se/downloads/dl.php?f=rfc2445" title="RFC2445" target="_blank">rfc2445</a></span> |
---|
| 114 | .. .// <span class="comment">a complete iCalcreator function list (ex. setProperty) in <a href="http://www.kigkonsult.se/downloads/index.php#iCalcreator" title="iCalcreator complete manual" target="_blank">iCalcreator manual</a></span> |
---|
| 115 | .. . |
---|
| 116 | $v->returnCalendar(); // <span class="comment">redirect calendar file to browser</span> |
---|
| 117 | </p> |
---|
| 118 | <h2>PARSE</h2> |
---|
| 119 | <p class="code">require_once( 'iCalcreator.class.php' ); |
---|
| 120 | $config = array( 'unique_id', 'icaldomain.com' ); // <span class="comment">set Your unique id, required if any component UID is missing</span> |
---|
| 121 | $v = new vcalendar( $config ); // <span class="comment">create a new calendar instance</span> |
---|
| 122 | |
---|
| 123 | /* start parse of local file */ |
---|
| 124 | $config = array( 'directory' => 'calendar', 'filename' => 'file.ics' ); |
---|
| 125 | $v->setConfig( $config ); // <span class="comment">set directory and file name</span> |
---|
| 126 | $v->parse(); |
---|
| 127 | |
---|
| 128 | /* start parse of remote file */ |
---|
| 129 | $v->setConfig( 'url', 'http://www.aDomain.net/file.ics' ); // <span class="comment">iCalcreator also support parse from or write to remote files</span> |
---|
| 130 | $v->parse(); |
---|
| 131 | |
---|
| 132 | $v->setProperty( 'method', 'PUBLISH' ); // <span class="comment">required of some calendar software</span> |
---|
| 133 | $v->setProperty( "x-wr-calname", "Calendar Sample" ); // <span class="comment">required of some calendar software</span> |
---|
| 134 | $v->setProperty( "X-WR-CALDESC", "Calendar Description" ); // <span class="comment">required of some calendar software</span> |
---|
| 135 | $v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" ); // <span class="comment">required of some calendar software</span> |
---|
| 136 | |
---|
| 137 | .. . |
---|
| 138 | $v->sort(); // <span class="comment">ensure start date order</span> |
---|
| 139 | .. . |
---|
| 140 | </p> |
---|
| 141 | <h2>EDIT</h2> |
---|
| 142 | <p class="code">require_once( 'iCalcreator.class.php' ); |
---|
| 143 | $config = array( 'unique_id' => 'icaldomain.com', 'directory' => 'calendar', 'filename' => 'file.ics' ); |
---|
| 144 | // <span class="comment">set Your unique id, import directory and file name</span> |
---|
| 145 | $v = new vcalendar( $config ); // <span class="comment">create a new calendar instance</span> |
---|
| 146 | |
---|
| 147 | $v->parse(); |
---|
| 148 | |
---|
| 149 | $v->setProperty( 'method', 'PUBLISH' ); // <span class="comment">required of some calendar software</span> |
---|
| 150 | $v->setProperty( "x-wr-calname", "Calendar Sample" ); // <span class="comment">required of some calendar software</span> |
---|
| 151 | $v->setProperty( "X-WR-CALDESC", "Calendar Description" ); // <span class="comment">required of some calendar software</span> |
---|
| 152 | $v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" ); // <span class="comment">required of some calendar software</span> |
---|
| 153 | |
---|
| 154 | while( $vevent = $v->getComponent( 'vevent' )) { // <span class="comment">read events, one by one</span> |
---|
| 155 | $uid = $vevent->getProperty( 'uid' ); // <span class="comment">uid required, one occurence (unique id/key for component)</span> |
---|
| 156 | .. . |
---|
| 157 | $dtstart = $vevent->getProperty( 'dtstart' ); // <span class="comment">dtstart required, one occurence</span> |
---|
| 158 | .. . |
---|
| 159 | if( $description = $vevent->getProperty( 'description', 1 )) { // <span class="comment">description optional, first occurence</span> |
---|
| 160 | .. . // <span class="comment">edit the description</span> |
---|
| 161 | $vevent->setProperty( 'description', $description, FALSE, 1 ); // <span class="comment">update/replace the description</span> |
---|
| 162 | } |
---|
| 163 | while( $comment = $vevent->getProperty( 'comment' )) { // <span class="comment">comment optional, may occur more than once </span> |
---|
| 164 | .. . // <span class="comment">manage comments</span> |
---|
| 165 | } |
---|
| 166 | .. . |
---|
| 167 | while( $vevent->deleteProperty( 'attendee' )) |
---|
| 168 | continue; // <span class="comment">remove all ATTENDEE properties .. .</span> |
---|
| 169 | .. . |
---|
| 170 | $v->setComponent ( $vevent, $uid ); // <span class="comment">update/replace event in calendar with <b>uid</b> as key </span> |
---|
| 171 | } |
---|
| 172 | .. . |
---|
| 173 | .. .// <span class="comment">a complete iCalcreator function list (ex. getProperty, deleteProperty) in <a href="http://www.kigkonsult.se/downloads/index.php" title="iCalcreator complete manual" target="_blank">iCalcreator manual</a></span> |
---|
| 174 | .. . |
---|
| 175 | </p> |
---|
| 176 | <h2>SELECT</h2> |
---|
| 177 | <p class="code">require_once( 'iCalcreator.class.php' ); |
---|
| 178 | $config = array( 'unique_id' => 'icaldomain.com' ); // <span class="comment">set Your unique id</span> |
---|
| 179 | $v = new vcalendar( $config ); // <span class="comment">create a new calendar instance</span> |
---|
| 180 | |
---|
| 181 | $v->setConfig( 'url', 'http://www.aDomain.net/file.ics' ); // <span class="comment">iCalcreator also support remote files</span> |
---|
| 182 | $v->parse(); |
---|
| 183 | $v->sort(); // <span class="comment">ensure start date order</span> |
---|
| 184 | |
---|
| 185 | $v->setProperty( 'method', 'PUBLISH' ); // <span class="comment">required of some calendar software</span> |
---|
| 186 | $v->setProperty( "x-wr-calname", "Calendar Sample" ); // <span class="comment">required of some calendar software</span> |
---|
| 187 | $v->setProperty( "X-WR-CALDESC", "Calendar Description" ); // <span class="comment">required of some calendar software</span> |
---|
| 188 | $v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" ); // <span class="comment">required of some calendar software</span> |
---|
| 189 | |
---|
| 190 | $eventArray = $v->selectComponents(); // <span class="comment">select components occuring <b>today</b></span> |
---|
| 191 | // <span class="comment">(including components with recurrence pattern)</span> |
---|
| 192 | foreach( $eventArray as $year => $yearArray) { |
---|
| 193 | foreach( $yearArray as $month => $monthArray ) { |
---|
| 194 | foreach( $monthArray as $day => $dailyEventsArray ) { |
---|
| 195 | foreach( $dailyEventsArray as $vevent ) { |
---|
| 196 | $currddate = $event->getProperty( 'x-current-dtstart' ); |
---|
| 197 | // <span class="comment">if member of a recurrence set (2nd occurence etc)</span> |
---|
| 198 | // <span class="comment">returns array( 'x-current-dtstart'</span> |
---|
| 199 | // <span class="comment"> , <(string) date("Y-m-d [H:i:s][timezone/UTC offset]")>)</span> |
---|
| 200 | $dtstart = $vevent->getProperty( 'dtstart' ); // <span class="comment">dtstart required, one occurence, (orig. start date)</span> |
---|
| 201 | $summary = $vevent->getProperty( 'summary' ); |
---|
| 202 | $description = $vevent->getProperty( 'description' ); |
---|
| 203 | .. . |
---|
| 204 | .. . |
---|
| 205 | </p> |
---|
| 206 | <h2>OUTPUT</h2> |
---|
| 207 | <p class="code">require_once( 'iCalcreator.class.php' ); |
---|
| 208 | $config = array( 'unique_id' => 'icaldomain.com' ); // <span class="comment">set Your unique id</span> |
---|
| 209 | $v = new vcalendar( $config ); // <span class="comment">create a new calendar instance</span> |
---|
| 210 | |
---|
| 211 | $v->setProperty( 'method', 'PUBLISH' ); // <span class="comment">required of some calendar software</span> |
---|
| 212 | $v->setProperty( "x-wr-calname", "Calendar Sample" ); // <span class="comment">required of some calendar software</span> |
---|
| 213 | $v->setProperty( "X-WR-CALDESC", "Calendar Description" ); // <span class="comment">required of some calendar software</span> |
---|
| 214 | $v->setProperty( "X-WR-TIMEZONE", "Europe/Stockholm" ); // <span class="comment">required of some calendar software</span> |
---|
| 215 | .. . |
---|
| 216 | .. .// <span class="comment">parse calendar file(s) and/or edit/create calendar components.. .</span> |
---|
| 217 | .. . |
---|
| 218 | </p> |
---|
| 219 | <h4> // opt 1</h4> |
---|
| 220 | <p class="code">.. . |
---|
| 221 | $v->returnCalendar(); // <span class="comment">redirect calendar file to browser</span> |
---|
| 222 | </p> |
---|
| 223 | <h4> // opt 2</h4> |
---|
| 224 | <p class="code">.. . |
---|
| 225 | $config = array( 'directory' => 'depot', 'filename' => 'calendar.ics' ); |
---|
| 226 | $v->setConfig( $config ); // <span class="comment">set output directory and file name</span> |
---|
| 227 | $v->saveCalendar(); // <span class="comment">save calendar to (local) file</span> |
---|
| 228 | </p> |
---|
| 229 | <h4> // opt 3</h4> |
---|
| 230 | <p class="code">.. . |
---|
| 231 | $config = array( 'url' => 'http://www.aDomain.net/file.ics' ); |
---|
| 232 | $v->setConfig( $config ); // <span class="comment">set output url</span> |
---|
| 233 | $v->saveCalendar(); // <span class="comment">save calendar to remote url</span> |
---|
| 234 | </p> |
---|
| 235 | |
---|
| 236 | <h2>COPYRIGHT AND LICENSE</h2> |
---|
| 237 | |
---|
| 238 | <h4>Copyright</h4> |
---|
| 239 | iCalcreator class<br /> |
---|
| 240 | copyright (c) 2007-2011 Kjell-Inge Gustafsson, kigkonsult<br /> |
---|
| 241 | <a href="http://www.kigkonsult.se/iCalcreator/index.php" title="www.kigkonsult.se/iCalcreator" target="_blank">www.kigkonsult.se/iCalcreator</a><br /> |
---|
| 242 | ical@kigkonsult.se<br /> |
---|
| 243 | |
---|
| 244 | <h4>License</h4> |
---|
| 245 | |
---|
| 246 | This library is free software; you can redistribute it and/or |
---|
| 247 | modify it under the terms of the GNU Lesser General Public |
---|
| 248 | License as published by the Free Software Foundation; either |
---|
| 249 | version 2.1 of the License, or (at your option) any later version. |
---|
| 250 | <br /><br /> |
---|
| 251 | This library is distributed in the hope that it will be useful, |
---|
| 252 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 253 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
---|
| 254 | Lesser General Public License for more details. |
---|
| 255 | <br /><br /> |
---|
| 256 | You should have received a copy of the GNU Lesser General Public |
---|
| 257 | License along with this library; if not, write to the Free Software |
---|
| 258 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
---|
| 259 | or download it <a href="http://www.kigkonsult.se/downloads/dl.php?f=LGPL" target="_blank">here</a>. |
---|
| 260 | <br /> |
---|
| 261 | <br /> |
---|
| 262 | </body> |
---|
| 263 | </html> |
---|