Projet

Général

Profil

Paste
Télécharger (10 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / libraries / iCalcreator-2.22.1 / lib / vevent.class.php @ 9525582e

1
<?php
2
/*********************************************************************************/
3
/**
4
 *
5
 * iCalcreator, a PHP rfc2445/rfc5545 solution.
6
 *
7
 * @copyright Copyright (c) 2007-2015 Kjell-Inge Gustafsson, kigkonsult, All rights reserved
8
 * @link      http://kigkonsult.se/iCalcreator/index.php
9
 * @license   http://kigkonsult.se/downloads/dl.php?f=LGPL
10
 * @package   iCalcreator
11
 * @version   2.22
12
 */
13
/**
14
 * This library is free software; you can redistribute it and/or
15
 * modify it under the terms of the GNU Lesser General Public
16
 * License as published by the Free Software Foundation; either
17
 * version 2.1 of the License, or (at your option) any later version.
18
 *
19
 * This library is distributed in the hope that it will be useful,
20
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
22
 * Lesser General Public License for more details.
23
 *
24
 * You should have received a copy of the GNU Lesser General Public
25
 * License along with this library; if not, write to the Free Software
26
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
27
 */
28
/*********************************************************************************/
29
/**
30
 * class for calendar component VEVENT
31
 *
32
 * @author Kjell-Inge Gustafsson, kigkonsult <ical@kigkonsult.se>
33
 * @since 2.5.1 - 2008-10-12
34
 */
35
class vevent extends calendarComponent {
36
/**
37
 * @var array $attach         component property value
38
 * @var array $attendee       component property value
39
 * @var array $categories     component property value
40
 * @var array $comment        component property value
41
 * @var array $contact        component property value
42
 * @var array $class          component property value
43
 * @var array $created        component property value
44
 * @var array $description    component property value
45
 * @var array $dtend          component property value
46
 * @var array $dtstart        component property value
47
 * @var array $duration       component property value
48
 * @var array $exdate         component property value
49
 * @var array $exrule         component property value
50
 * @var array $geo            component property value
51
 * @var array $lastmodified   component property value
52
 * @var array $location       component property value
53
 * @var array $organizer      component property value
54
 * @var array $priority       component property value
55
 * @var array $rdate          component property value
56
 * @var array $recurrenceid   component property value
57
 * @var array $relatedto      component property value
58
 * @var array $requeststatus  component property value
59
 * @var array $resources      component property value
60
 * @var array $rrule          component property value
61
 * @var array $sequence       component property value
62
 * @var array $status         component property value
63
 * @var array $summary        component property value
64
 * @var array $transp         component property value
65
 * @var array $url            component property value
66
 * @access protected
67
 */
68
  protected $attach;
69
  protected $attendee;
70
  protected $categories;
71
  protected $comment;
72
  protected $contact;
73
  protected $class;
74
  protected $created;
75
  protected $description;
76
  protected $dtend;
77
  protected $dtstart;
78
  protected $duration;
79
  protected $exdate;
80
  protected $exrule;
81
  protected $geo;
82
  protected $lastmodified;
83
  protected $location;
84
  protected $organizer;
85
  protected $priority;
86
  protected $rdate;
87
  protected $recurrenceid;
88
  protected $relatedto;
89
  protected $requeststatus;
90
  protected $resources;
91
  protected $rrule;
92
  protected $sequence;
93
  protected $status;
94
  protected $summary;
95
  protected $transp;
96
  protected $url;
97
/**
98
 * constructor for calendar component VEVENT object
99
 *
100
 * @author Kjell-Inge Gustafsson, kigkonsult <ical@kigkonsult.se>
101
 * @since 2.8.2 - 2011-05-01
102
 * @param  array $config
103
 * @uses vevent::calendarComponent()
104
 * @uses vevent::$attach
105
 * @uses vevent::$attendee
106
 * @uses vevent::$categories
107
 * @uses vevent::$class
108
 * @uses vevent::$comment
109
 * @uses vevent::$contact
110
 * @uses vevent::$created
111
 * @uses vevent::$description
112
 * @uses vevent::$dtstart
113
 * @uses vevent::$dtend
114
 * @uses vevent::$duration
115
 * @uses vevent::$exdate
116
 * @uses vevent::$exrule
117
 * @uses vevent::$geo
118
 * @uses vevent::$lastmodified
119
 * @uses vevent::$location
120
 * @uses vevent::$organizer
121
 * @uses vevent::$priority
122
 * @uses vevent::$rdate
123
 * @uses vevent::$recurrenceid
124
 * @uses vevent::$relatedto
125
 * @uses vevent::$requeststatus
126
 * @uses vevent::$resources
127
 * @uses vevent::$rrule
128
 * @uses vevent::$sequence
129
 * @uses vevent::$status
130
 * @uses vevent::$summary
131
 * @uses vevent::$transp
132
 * @uses vevent::$url
133
 * @uses vevent::$xprop
134
 * @uses vevent::$components
135
 * @uses calendarComponent::setConfig()
136
 */
137
  function vevent( $config = array()) {
138
    $this->calendarComponent();
139
    $this->attach          = '';
140
    $this->attendee        = '';
141
    $this->categories      = '';
142
    $this->class           = '';
143
    $this->comment         = '';
144
    $this->contact         = '';
145
    $this->created         = '';
146
    $this->description     = '';
147
    $this->dtstart         = '';
148
    $this->dtend           = '';
149
    $this->duration        = '';
150
    $this->exdate          = '';
151
    $this->exrule          = '';
152
    $this->geo             = '';
153
    $this->lastmodified    = '';
154
    $this->location        = '';
155
    $this->organizer       = '';
156
    $this->priority        = '';
157
    $this->rdate           = '';
158
    $this->recurrenceid    = '';
159
    $this->relatedto       = '';
160
    $this->requeststatus   = '';
161
    $this->resources       = '';
162
    $this->rrule           = '';
163
    $this->sequence        = '';
164
    $this->status          = '';
165
    $this->summary         = '';
166
    $this->transp          = '';
167
    $this->url             = '';
168
    $this->xprop           = '';
169
    $this->components      = array();
170
    if( defined( 'ICAL_LANG' ) && !isset( $config['language'] ))
171
                                          $config['language']   = ICAL_LANG;
172
    if( !isset( $config['allowEmpty'] ))  $config['allowEmpty'] = TRUE;
173
    if( !isset( $config['nl'] ))          $config['nl']         = "\r\n";
174
    if( !isset( $config['format'] ))      $config['format']     = 'iCal';
175
    if( !isset( $config['delimiter'] ))   $config['delimiter']  = DIRECTORY_SEPARATOR;
176
    $this->setConfig( $config );
177
  }
178
/**
179
 * create formatted output for calendar component VEVENT object instance
180
 *
181
 * @author Kjell-Inge Gustafsson, kigkonsult <ical@kigkonsult.se>
182
 * @since 2.10.16 - 2011-10-28
183
 * @param array $xcaldecl
184
 * @uses calendarComponent::_createFormat()
185
 * @uses calendarComponent::$componentStart1
186
 * @uses calendarComponent::$componentStart2
187
 * @uses calendarComponent::$nl;
188
 * @uses calendarComponent::createUid()
189
 * @uses calendarComponent::createDtstamp()
190
 * @uses calendarComponent::createAttach()
191
 * @uses calendarComponent::createAttendee()
192
 * @uses calendarComponent::createCategories()
193
 * @uses calendarComponent::createComment()
194
 * @uses calendarComponent::createContact()
195
 * @uses calendarComponent::createClass()
196
 * @uses calendarComponent::createCreated()
197
 * @uses calendarComponent::createDescription()
198
 * @uses calendarComponent::createDtstart()
199
 * @uses calendarComponent::createDtend()
200
 * @uses calendarComponent::createDuration()
201
 * @uses calendarComponent::createExdate()
202
 * @uses calendarComponent::createExrule()
203
 * @uses calendarComponent::createGeo()
204
 * @uses calendarComponent::createLastModified()
205
 * @uses calendarComponent::createLocation()
206
 * @uses calendarComponent::createOrganizer()
207
 * @uses calendarComponent::createPriority()
208
 * @uses calendarComponent::createRdate()
209
 * @uses calendarComponent::createRrule()
210
 * @uses calendarComponent::createRelatedTo()
211
 * @uses calendarComponent::createRequestStatus()
212
 * @uses calendarComponent::createRecurrenceid()
213
 * @uses calendarComponent::createResources()
214
 * @uses calendarComponent::createSequence()
215
 * @uses calendarComponent::createStatus()
216
 * @uses calendarComponent::createSummary()
217
 * @uses calendarComponent::createTransp()
218
 * @uses calendarComponent::createUrl()
219
 * @uses calendarComponent::createXprop()
220
 * @uses calendarComponent::createSubComponent()
221
 * @uses calendarComponent::$componentEnd1
222
 * @uses calendarComponent::$componentEnd2
223
 * @uses calendarComponent::$xcaldecl
224
 * @return string
225
 */
226
  function createComponent( & $xcaldecl ) {
227
    $objectname    = $this->_createFormat();
228
    $component     = $this->componentStart1.$objectname.$this->componentStart2.$this->nl;
229
    $component    .= $this->createUid();
230
    $component    .= $this->createDtstamp();
231
    $component    .= $this->createAttach();
232
    $component    .= $this->createAttendee();
233
    $component    .= $this->createCategories();
234
    $component    .= $this->createComment();
235
    $component    .= $this->createContact();
236
    $component    .= $this->createClass();
237
    $component    .= $this->createCreated();
238
    $component    .= $this->createDescription();
239
    $component    .= $this->createDtstart();
240
    $component    .= $this->createDtend();
241
    $component    .= $this->createDuration();
242
    $component    .= $this->createExdate();
243
    $component    .= $this->createExrule();
244
    $component    .= $this->createGeo();
245
    $component    .= $this->createLastModified();
246
    $component    .= $this->createLocation();
247
    $component    .= $this->createOrganizer();
248
    $component    .= $this->createPriority();
249
    $component    .= $this->createRdate();
250
    $component    .= $this->createRrule();
251
    $component    .= $this->createRelatedTo();
252
    $component    .= $this->createRequestStatus();
253
    $component    .= $this->createRecurrenceid();
254
    $component    .= $this->createResources();
255
    $component    .= $this->createSequence();
256
    $component    .= $this->createStatus();
257
    $component    .= $this->createSummary();
258
    $component    .= $this->createTransp();
259
    $component    .= $this->createUrl();
260
    $component    .= $this->createXprop();
261
    $component    .= $this->createSubComponent();
262
    $component    .= $this->componentEnd1.$objectname.$this->componentEnd2;
263
    if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) {
264
      foreach( $this->xcaldecl as $localxcaldecl )
265
        $xcaldecl[] = $localxcaldecl;
266
    }
267
    return $component;
268
  }
269
}