Projet

Général

Profil

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

root / drupal7 / sites / all / libraries / iCalcreator-2.22.1 / lib / vtodo.class.php @ 024de6ea

1
<?php
2
/*********************************************************************************/
3
/**
4
 *
5
 * A PHP implementation of rfc2445/rfc5545.
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 VTODO
31
 *
32
 * @author Kjell-Inge Gustafsson, kigkonsult <ical@kigkonsult.se>
33
 * @since 2.5.1 - 2008-10-12
34
 */
35
class vtodo 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 $completed        component property value
42
 * @var array $contact          component property value
43
 * @var array $class            component property value
44
 * @var array $created          component property value
45
 * @var array $description      component property value
46
 * @var array $dtstart          component property value
47
 * @var array $due              component property value
48
 * @var array $duration         component property value
49
 * @var array $exdate           component property value
50
 * @var array $exrule           component property value
51
 * @var array $geo              component property value
52
 * @var array $lastmodified     component property value
53
 * @var array $location         component property value
54
 * @var array $organizer        component property value
55
 * @var array $percentcomplete  component property value
56
 * @var array $priority         component property value
57
 * @var array $rdate            component property value
58
 * @var array $recurrenceid     component property value
59
 * @var array $relatedto        component property value
60
 * @var array $requeststatus    component property value
61
 * @var array $resources        component property value
62
 * @var array $rrule            component property value
63
 * @var array $sequence         component property value
64
 * @var array $status           component property value
65
 * @var array $summary          component property value
66
 * @var arrayr $url;
67
 * @access protected
68
 */
69
  protected $attach;
70
  protected $attendee;
71
  protected $categories;
72
  protected $comment;
73
  protected $completed;
74
  protected $contact;
75
  protected $class;
76
  protected $created;
77
  protected $description;
78
  protected $dtstart;
79
  protected $due;
80
  protected $duration;
81
  protected $exdate;
82
  protected $exrule;
83
  protected $geo;
84
  protected $lastmodified;
85
  protected $location;
86
  protected $organizer;
87
  protected $percentcomplete;
88
  protected $priority;
89
  protected $rdate;
90
  protected $recurrenceid;
91
  protected $relatedto;
92
  protected $requeststatus;
93
  protected $resources;
94
  protected $rrule;
95
  protected $sequence;
96
  protected $status;
97
  protected $summary;
98
  protected $url;
99
/**
100
 * constructor for calendar component VTODO object
101
 *
102
 * @author Kjell-Inge Gustafsson, kigkonsult <ical@kigkonsult.se>
103
 * @since 2.8.2 - 2011-05-01
104
 * @param array $config
105
 * @uses vtodo::calendarComponent()
106
 * @uses vtodo::$attach
107
 * @uses vtodo::$attendee
108
 * @uses vtodo::$categories
109
 * @uses vtodo::$class
110
 * @uses vtodo::$comment
111
 * @uses vtodo::$completed
112
 * @uses vtodo::$contact
113
 * @uses vtodo::$created
114
 * @uses vtodo::$description
115
 * @uses vtodo::$dtstart
116
 * @uses vtodo::$due
117
 * @uses vtodo::$duration
118
 * @uses vtodo::$exdate
119
 * @uses vtodo::$exrule
120
 * @uses vtodo::$geo
121
 * @uses vtodo::$lastmodified
122
 * @uses vtodo::$location
123
 * @uses vtodo::$organizer
124
 * @uses vtodo::$percentcomplete
125
 * @uses vtodo::$priority
126
 * @uses vtodo::$rdate
127
 * @uses vtodo::$recurrenceid
128
 * @uses vtodo::$relatedto
129
 * @uses vtodo::$requeststatus
130
 * @uses vtodo::$resources
131
 * @uses vtodo::$rrule
132
 * @uses vtodo::$sequence
133
 * @uses vtodo::$status
134
 * @uses vtodo::$summary
135
 * @uses vtodo::$url
136
 * @uses vtodo::$xprop
137
 * @uses vtodo::$components
138
 * @uses calendarComponent::setConfig()
139
 */
140
  function vtodo( $config = array()) {
141
    $this->calendarComponent();
142
    $this->attach          = '';
143
    $this->attendee        = '';
144
    $this->categories      = '';
145
    $this->class           = '';
146
    $this->comment         = '';
147
    $this->completed       = '';
148
    $this->contact         = '';
149
    $this->created         = '';
150
    $this->description     = '';
151
    $this->dtstart         = '';
152
    $this->due             = '';
153
    $this->duration        = '';
154
    $this->exdate          = '';
155
    $this->exrule          = '';
156
    $this->geo             = '';
157
    $this->lastmodified    = '';
158
    $this->location        = '';
159
    $this->organizer       = '';
160
    $this->percentcomplete = '';
161
    $this->priority        = '';
162
    $this->rdate           = '';
163
    $this->recurrenceid    = '';
164
    $this->relatedto       = '';
165
    $this->requeststatus   = '';
166
    $this->resources       = '';
167
    $this->rrule           = '';
168
    $this->sequence        = '';
169
    $this->status          = '';
170
    $this->summary         = '';
171
    $this->url             = '';
172
    $this->xprop           = '';
173
    $this->components      = array();
174
    if( defined( 'ICAL_LANG' ) && !isset( $config['language'] ))
175
                                          $config['language']   = ICAL_LANG;
176
    if( !isset( $config['allowEmpty'] ))  $config['allowEmpty'] = TRUE;
177
    if( !isset( $config['nl'] ))          $config['nl']         = "\r\n";
178
    if( !isset( $config['format'] ))      $config['format']     = 'iCal';
179
    if( !isset( $config['delimiter'] ))   $config['delimiter']  = DIRECTORY_SEPARATOR;
180
    $this->setConfig( $config );
181
  }
182
/**
183
 * create formatted output for calendar component VTODO object instance
184
 *
185
 * @author Kjell-Inge Gustafsson, kigkonsult <ical@kigkonsult.se>
186
 * @since 2.5.1 - 2008-11-07
187
 * @param array $xcaldecl
188
 * @uses calendarComponent::_createFormat()
189
 * @uses calendarComponent::$componentStart1
190
 * @uses calendarComponent::$componentStart2
191
 * @uses calendarComponent::$nl;
192
 * @uses calendarComponent::createUid()
193
 * @uses calendarComponent::createDtstamp()
194
 * @uses calendarComponent::createAttach()
195
 * @uses calendarComponent::createAttendee()
196
 * @uses calendarComponent::createCategories()
197
 * @uses calendarComponent::createClass()
198
 * @uses calendarComponent::createComment()
199
 * @uses calendarComponent::createCompleted()
200
 * @uses calendarComponent::createContact()
201
 * @uses calendarComponent::createDescription()
202
 * @uses calendarComponent::createDtstart()
203
 * @uses calendarComponent::createDtend()
204
 * @uses calendarComponent::createDuration()
205
 * @uses calendarComponent::createExdate()
206
 * @uses calendarComponent::createExrule()
207
 * @uses calendarComponent::createGeo()
208
 * @uses calendarComponent::createLastModified()
209
 * @uses calendarComponent::createLocation()
210
 * @uses calendarComponent::createOrganizer()
211
 * @uses calendarComponent::createPriority()
212
 * @uses calendarComponent::createRdate()
213
 * @uses calendarComponent::createRelatedTo()
214
 * @uses calendarComponent::createRequestStatus()
215
 * @uses calendarComponent::createRecurrenceid()
216
 * @uses calendarComponent::createResources()
217
 * @uses calendarComponent::createRrule()
218
 * @uses calendarComponent::createSequence()
219
 * @uses calendarComponent::createStatus()
220
 * @uses calendarComponent::createSummary()
221
 * @uses calendarComponent::createUrl()
222
 * @uses calendarComponent::createXprop()
223
 * @uses calendarComponent::createSubComponent()
224
 * @uses calendarComponent::$componentEnd1
225
 * @uses calendarComponent::$componentEnd2
226
 * @uses calendarComponent::$xcaldecl
227
 * @return string
228
 */
229
  function createComponent( &$xcaldecl ) {
230
    $objectname    = $this->_createFormat();
231
    $component     = $this->componentStart1.$objectname.$this->componentStart2.$this->nl;
232
    $component    .= $this->createUid();
233
    $component    .= $this->createDtstamp();
234
    $component    .= $this->createAttach();
235
    $component    .= $this->createAttendee();
236
    $component    .= $this->createCategories();
237
    $component    .= $this->createClass();
238
    $component    .= $this->createComment();
239
    $component    .= $this->createCompleted();
240
    $component    .= $this->createContact();
241
    $component    .= $this->createCreated();
242
    $component    .= $this->createDescription();
243
    $component    .= $this->createDtstart();
244
    $component    .= $this->createDue();
245
    $component    .= $this->createDuration();
246
    $component    .= $this->createExdate();
247
    $component    .= $this->createExrule();
248
    $component    .= $this->createGeo();
249
    $component    .= $this->createLastModified();
250
    $component    .= $this->createLocation();
251
    $component    .= $this->createOrganizer();
252
    $component    .= $this->createPercentComplete();
253
    $component    .= $this->createPriority();
254
    $component    .= $this->createRdate();
255
    $component    .= $this->createRelatedTo();
256
    $component    .= $this->createRequestStatus();
257
    $component    .= $this->createRecurrenceid();
258
    $component    .= $this->createResources();
259
    $component    .= $this->createRrule();
260
    $component    .= $this->createSequence();
261
    $component    .= $this->createStatus();
262
    $component    .= $this->createSummary();
263
    $component    .= $this->createUrl();
264
    $component    .= $this->createXprop();
265
    $component    .= $this->createSubComponent();
266
    $component    .= $this->componentEnd1.$objectname.$this->componentEnd2;
267
    if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) {
268
      foreach( $this->xcaldecl as $localxcaldecl )
269
        $xcaldecl[] = $localxcaldecl;
270
    }
271
    return $component;
272
  }
273
}