@@ -86,7 +86,7 @@ discard block |
||
| 86 | 86 | * This functions stores the glossary in the database |
| 87 | 87 | * |
| 88 | 88 | * @param array Array of title + description (glossary_title => $title, glossary_comment => $comment) |
| 89 | - * @return mixed Term id on success, false on failure |
|
| 89 | + * @return false|string Term id on success, false on failure |
|
| 90 | 90 | * @author Christian Fasanando <[email protected]> |
| 91 | 91 | * @author Patrick Cool <[email protected]>, Ghent University, Belgium |
| 92 | 92 | * @version januari 2009, dokeos 1.8.6 |
@@ -443,6 +443,10 @@ discard block |
||
| 443 | 443 | * @param integer Number of items to collect |
| 444 | 444 | * @param string Name of column on which to order |
| 445 | 445 | * @param string Whether to sort in ascending (ASC) or descending (DESC) |
| 446 | + * @param integer $from |
|
| 447 | + * @param integer $number_of_items |
|
| 448 | + * @param integer $column |
|
| 449 | + * @param string $direction |
|
| 446 | 450 | * @return unknown |
| 447 | 451 | * |
| 448 | 452 | * @author Patrick Cool <[email protected]> |
@@ -520,6 +524,7 @@ discard block |
||
| 520 | 524 | * @param integer $glossary_id |
| 521 | 525 | * @param array Parameters to use to affect links |
| 522 | 526 | * @param array The line of results from a query on the glossary table |
| 527 | + * @param string $url_params |
|
| 523 | 528 | * @return string HTML string for the action icons columns |
| 524 | 529 | * |
| 525 | 530 | * @author Patrick Cool <[email protected]>, Ghent University, Belgium |
@@ -39,13 +39,13 @@ discard block |
||
| 39 | 39 | * @param int $glossary_id |
| 40 | 40 | * @return string The glossary description |
| 41 | 41 | */ |
| 42 | - public static function get_glossary_term_by_glossary_id ($glossary_id) |
|
| 42 | + public static function get_glossary_term_by_glossary_id($glossary_id) |
|
| 43 | 43 | { |
| 44 | - $glossary_table = Database::get_course_table(TABLE_GLOSSARY); |
|
| 44 | + $glossary_table = Database::get_course_table(TABLE_GLOSSARY); |
|
| 45 | 45 | $course_id = api_get_course_int_id(); |
| 46 | 46 | $sql = "SELECT description FROM $glossary_table |
| 47 | 47 | WHERE c_id = $course_id AND glossary_id =".intval($glossary_id); |
| 48 | - $rs=Database::query($sql); |
|
| 48 | + $rs = Database::query($sql); |
|
| 49 | 49 | if (Database::num_rows($rs) > 0) { |
| 50 | 50 | $row = Database::fetch_array($rs); |
| 51 | 51 | |
@@ -61,9 +61,9 @@ discard block |
||
| 61 | 61 | * @param string The glossary term name |
| 62 | 62 | * @return string The glossary description |
| 63 | 63 | */ |
| 64 | - public static function get_glossary_term_by_glossary_name ($glossary_name) |
|
| 64 | + public static function get_glossary_term_by_glossary_name($glossary_name) |
|
| 65 | 65 | { |
| 66 | - $glossary_table = Database::get_course_table(TABLE_GLOSSARY); |
|
| 66 | + $glossary_table = Database::get_course_table(TABLE_GLOSSARY); |
|
| 67 | 67 | $session_id = api_get_session_id(); |
| 68 | 68 | $course_id = api_get_course_int_id(); |
| 69 | 69 | $sql_filter = api_get_session_condition($session_id); |
@@ -163,7 +163,7 @@ discard block |
||
| 163 | 163 | $course_id = api_get_course_int_id(); |
| 164 | 164 | |
| 165 | 165 | // check if the glossary term already exists |
| 166 | - if (GlossaryManager::glossary_exists($values['glossary_title'],$values['glossary_id'])) { |
|
| 166 | + if (GlossaryManager::glossary_exists($values['glossary_title'], $values['glossary_id'])) { |
|
| 167 | 167 | // display the feedback message |
| 168 | 168 | if ($message) |
| 169 | 169 | Display::display_error_message(get_lang('GlossaryTermAlreadyExistsYouShouldEditIt')); |
@@ -210,7 +210,7 @@ discard block |
||
| 210 | 210 | $get_max = "SELECT MAX(display_order) FROM $t_glossary |
| 211 | 211 | WHERE c_id = $course_id "; |
| 212 | 212 | $res_max = Database::query($get_max); |
| 213 | - if (Database::num_rows($res_max)==0) { |
|
| 213 | + if (Database::num_rows($res_max) == 0) { |
|
| 214 | 214 | return 0; |
| 215 | 215 | } |
| 216 | 216 | $row = Database::fetch_array($res_max); |
@@ -231,7 +231,7 @@ discard block |
||
| 231 | 231 | * @author Patrick Cool <[email protected]>, Ghent University, Belgium |
| 232 | 232 | * @version januari 2009, dokeos 1.8.6 |
| 233 | 233 | */ |
| 234 | - public static function glossary_exists($term, $not_id='') |
|
| 234 | + public static function glossary_exists($term, $not_id = '') |
|
| 235 | 235 | { |
| 236 | 236 | // Database table definition |
| 237 | 237 | $t_glossary = Database :: get_course_table(TABLE_GLOSSARY); |
@@ -241,7 +241,7 @@ discard block |
||
| 241 | 241 | WHERE |
| 242 | 242 | c_id = $course_id AND |
| 243 | 243 | name = '".Database::escape_string($term)."'"; |
| 244 | - if ($not_id<>'') { |
|
| 244 | + if ($not_id <> '') { |
|
| 245 | 245 | $sql .= " AND glossary_id <> '".intval($not_id)."'"; |
| 246 | 246 | } |
| 247 | 247 | $result = Database::query($sql); |
@@ -347,27 +347,27 @@ discard block |
||
| 347 | 347 | // action links |
| 348 | 348 | echo '<div class="actions">'; |
| 349 | 349 | |
| 350 | - if (api_is_allowed_to_edit(null,true)) { |
|
| 350 | + if (api_is_allowed_to_edit(null, true)) { |
|
| 351 | 351 | echo '<a href="index.php?'.api_get_cidreq().'&action=addglossary&msg=add?'.api_get_cidreq().'">'. |
| 352 | - Display::return_icon('new_glossary_term.png',get_lang('TermAddNew'),'', ICON_SIZE_MEDIUM).'</a>'; |
|
| 352 | + Display::return_icon('new_glossary_term.png', get_lang('TermAddNew'), '', ICON_SIZE_MEDIUM).'</a>'; |
|
| 353 | 353 | } |
| 354 | 354 | |
| 355 | 355 | echo '<a href="index.php?'.api_get_cidreq().'&action=export">'. |
| 356 | - Display::return_icon('export_csv.png',get_lang('ExportGlossaryAsCSV'),'',ICON_SIZE_MEDIUM).'</a>'; |
|
| 357 | - if (api_is_allowed_to_edit(null,true)) { |
|
| 356 | + Display::return_icon('export_csv.png', get_lang('ExportGlossaryAsCSV'), '', ICON_SIZE_MEDIUM).'</a>'; |
|
| 357 | + if (api_is_allowed_to_edit(null, true)) { |
|
| 358 | 358 | echo '<a href="index.php?'.api_get_cidreq().'&action=import">'. |
| 359 | - Display::return_icon('import_csv.png',get_lang('ImportGlossary'),'',ICON_SIZE_MEDIUM).'</a>'; |
|
| 359 | + Display::return_icon('import_csv.png', get_lang('ImportGlossary'), '', ICON_SIZE_MEDIUM).'</a>'; |
|
| 360 | 360 | } |
| 361 | 361 | |
| 362 | 362 | echo '<a href="index.php?'.api_get_cidreq().'&action=export_to_pdf">'. |
| 363 | - Display::return_icon('pdf.png',get_lang('ExportToPDF'),'', ICON_SIZE_MEDIUM).'</a>'; |
|
| 363 | + Display::return_icon('pdf.png', get_lang('ExportToPDF'), '', ICON_SIZE_MEDIUM).'</a>'; |
|
| 364 | 364 | |
| 365 | - if ((isset($_SESSION['glossary_view']) && $_SESSION['glossary_view'] == 'table') or (!isset($_SESSION['glossary_view']))){ |
|
| 365 | + if ((isset($_SESSION['glossary_view']) && $_SESSION['glossary_view'] == 'table') or (!isset($_SESSION['glossary_view']))) { |
|
| 366 | 366 | echo '<a href="index.php?'.api_get_cidreq().'&action=changeview&view=list">'. |
| 367 | - Display::return_icon('view_detailed.png',get_lang('ListView'),'',ICON_SIZE_MEDIUM).'</a>'; |
|
| 367 | + Display::return_icon('view_detailed.png', get_lang('ListView'), '', ICON_SIZE_MEDIUM).'</a>'; |
|
| 368 | 368 | } else { |
| 369 | 369 | echo '<a href="index.php?'.api_get_cidreq().'&action=changeview&view=table">'. |
| 370 | - Display::return_icon('view_text.png',get_lang('TableView'),'',ICON_SIZE_MEDIUM).'</a>'; |
|
| 370 | + Display::return_icon('view_text.png', get_lang('TableView'), '', ICON_SIZE_MEDIUM).'</a>'; |
|
| 371 | 371 | } |
| 372 | 372 | echo '</div>'; |
| 373 | 373 | if (!$_SESSION['glossary_view'] || $_SESSION['glossary_view'] == 'table') { |
@@ -380,9 +380,9 @@ discard block |
||
| 380 | 380 | //$table->set_header(0, '', false); |
| 381 | 381 | $table->set_header(0, get_lang('TermName'), true); |
| 382 | 382 | $table->set_header(1, get_lang('TermDefinition'), true); |
| 383 | - if (api_is_allowed_to_edit(null,true)) { |
|
| 383 | + if (api_is_allowed_to_edit(null, true)) { |
|
| 384 | 384 | $table->set_header(2, get_lang('Actions'), false, 'width=90px', array('class' => 'td_actions')); |
| 385 | - $table->set_column_filter(2, array('GlossaryManager','actions_filter')); |
|
| 385 | + $table->set_column_filter(2, array('GlossaryManager', 'actions_filter')); |
|
| 386 | 386 | } |
| 387 | 387 | $table->display(); |
| 388 | 388 | } |
@@ -399,11 +399,11 @@ discard block |
||
| 399 | 399 | */ |
| 400 | 400 | public static function display_glossary_list() |
| 401 | 401 | { |
| 402 | - $glossary_data = self::get_glossary_data(0,1000,0,'ASC'); |
|
| 402 | + $glossary_data = self::get_glossary_data(0, 1000, 0, 'ASC'); |
|
| 403 | 403 | foreach ($glossary_data as $key => $glossary_item) { |
| 404 | 404 | $actions = ''; |
| 405 | - if (api_is_allowed_to_edit(null,true)) { |
|
| 406 | - $actions = '<div class="pull-right">'.self::actions_filter($glossary_item[2], '',$glossary_item).'</div>'; |
|
| 405 | + if (api_is_allowed_to_edit(null, true)) { |
|
| 406 | + $actions = '<div class="pull-right">'.self::actions_filter($glossary_item[2], '', $glossary_item).'</div>'; |
|
| 407 | 407 | } |
| 408 | 408 | echo Display::panel($glossary_item[1], $glossary_item[0].' '.$actions); |
| 409 | 409 | } |
@@ -418,7 +418,7 @@ discard block |
||
| 418 | 418 | * @author Patrick Cool <[email protected]>, Ghent University, Belgium |
| 419 | 419 | * @version januari 2009, dokeos 1.8.6 |
| 420 | 420 | */ |
| 421 | - public static function get_number_glossary_terms($session_id=0) |
|
| 421 | + public static function get_number_glossary_terms($session_id = 0) |
|
| 422 | 422 | { |
| 423 | 423 | // Database table definition |
| 424 | 424 | $t_glossary = Database :: get_course_table(TABLE_GLOSSARY); |
@@ -456,7 +456,7 @@ discard block |
||
| 456 | 456 | $t_glossary = Database :: get_course_table(TABLE_GLOSSARY); |
| 457 | 457 | $t_item_propery = Database :: get_course_table(TABLE_ITEM_PROPERTY); |
| 458 | 458 | |
| 459 | - if (api_is_allowed_to_edit(null,true)) { |
|
| 459 | + if (api_is_allowed_to_edit(null, true)) { |
|
| 460 | 460 | $col2 = " glossary.glossary_id as col2, "; |
| 461 | 461 | } else { |
| 462 | 462 | $col2 = " "; |
@@ -471,8 +471,8 @@ discard block |
||
| 471 | 471 | 'glossary.session_id' |
| 472 | 472 | ); |
| 473 | 473 | $column = intval($column); |
| 474 | - if (!in_array($direction,array('DESC', 'ASC'))) { |
|
| 475 | - $direction = 'ASC'; |
|
| 474 | + if (!in_array($direction, array('DESC', 'ASC'))) { |
|
| 475 | + $direction = 'ASC'; |
|
| 476 | 476 | } |
| 477 | 477 | $from = intval($from); |
| 478 | 478 | $number_of_items = intval($number_of_items); |
@@ -497,15 +497,15 @@ discard block |
||
| 497 | 497 | while ($data = Database::fetch_array($res)) { |
| 498 | 498 | // Validation when belongs to a session |
| 499 | 499 | $session_img = api_get_session_image($data['session_id'], $_user['status']); |
| 500 | - $array[0] = $data[0] . $session_img; |
|
| 500 | + $array[0] = $data[0].$session_img; |
|
| 501 | 501 | |
| 502 | 502 | if (!$_SESSION['glossary_view'] || $_SESSION['glossary_view'] == 'table') { |
| 503 | - $array[1] = str_replace(array('<p>','</p>'),array('','<br />'),$data[1]); |
|
| 503 | + $array[1] = str_replace(array('<p>', '</p>'), array('', '<br />'), $data[1]); |
|
| 504 | 504 | } else { |
| 505 | 505 | $array[1] = $data[1]; |
| 506 | 506 | } |
| 507 | 507 | |
| 508 | - if (api_is_allowed_to_edit(null,true)) { |
|
| 508 | + if (api_is_allowed_to_edit(null, true)) { |
|
| 509 | 509 | $array[2] = $data[2]; |
| 510 | 510 | } |
| 511 | 511 | $return[] = $array; |
@@ -528,14 +528,14 @@ discard block |
||
| 528 | 528 | public static function actions_filter($glossary_id, $url_params, $row) |
| 529 | 529 | { |
| 530 | 530 | $glossary_id = $row[2]; |
| 531 | - $return = '<a href="'.api_get_self().'?action=edit_glossary&glossary_id='.$glossary_id.'&'.api_get_cidreq().'&msg=edit">'.Display::return_icon('edit.png',get_lang('Edit'),'',22).'</a>'; |
|
| 531 | + $return = '<a href="'.api_get_self().'?action=edit_glossary&glossary_id='.$glossary_id.'&'.api_get_cidreq().'&msg=edit">'.Display::return_icon('edit.png', get_lang('Edit'), '', 22).'</a>'; |
|
| 532 | 532 | $glossary_data = GlossaryManager::get_glossary_information($glossary_id); |
| 533 | 533 | |
| 534 | 534 | $glossary_term = $glossary_data['glossary_title']; |
| 535 | 535 | |
| 536 | 536 | if (api_is_allowed_to_edit(null, true)) { |
| 537 | 537 | if ($glossary_data['session_id'] == api_get_session_id()) { |
| 538 | - $return .= '<a href="'.api_get_self().'?action=delete_glossary&glossary_id='.$glossary_id.'&'.api_get_cidreq().'" onclick="return confirmation(\''.$glossary_term.'\');">'.Display::return_icon('delete.png', get_lang('Delete'),'',22).'</a>'; |
|
| 538 | + $return .= '<a href="'.api_get_self().'?action=delete_glossary&glossary_id='.$glossary_id.'&'.api_get_cidreq().'" onclick="return confirmation(\''.$glossary_term.'\');">'.Display::return_icon('delete.png', get_lang('Delete'), '', 22).'</a>'; |
|
| 539 | 539 | } else { |
| 540 | 540 | $return = get_lang('EditionNotAvailableFromSession'); |
| 541 | 541 | } |
@@ -556,7 +556,7 @@ discard block |
||
| 556 | 556 | { |
| 557 | 557 | return "<script type=\"text/javascript\"> |
| 558 | 558 | function confirmation (name) { |
| 559 | - if (confirm(\" ". get_lang("TermConfirmDelete") ." \"+ name + \" ?\")) |
|
| 559 | + if (confirm(\" ". get_lang("TermConfirmDelete")." \"+ name + \" ?\")) |
|
| 560 | 560 | {return true;} |
| 561 | 561 | else |
| 562 | 562 | {return false;} |
@@ -616,7 +616,7 @@ discard block |
||
| 616 | 616 | $res = Database::query($sql); |
| 617 | 617 | $found = false; |
| 618 | 618 | while ($row = Database::fetch_array($res)) { |
| 619 | - if ($found && empty($next_id)) { |
|
| 619 | + if ($found && empty($next_id)) { |
|
| 620 | 620 | $next_id = $row['glossary_id']; |
| 621 | 621 | $next_display_order = $row['display_order']; |
| 622 | 622 | } |
@@ -108,8 +108,9 @@ discard block |
||
| 108 | 108 | // check if the glossary term already exists |
| 109 | 109 | if (GlossaryManager::glossary_exists($values['glossary_title'])) { |
| 110 | 110 | // display the feedback message |
| 111 | - if ($message) |
|
| 112 | - Display::display_error_message(get_lang('GlossaryTermAlreadyExistsYouShouldEditIt')); |
|
| 111 | + if ($message) { |
|
| 112 | + Display::display_error_message(get_lang('GlossaryTermAlreadyExistsYouShouldEditIt')); |
|
| 113 | + } |
|
| 113 | 114 | return false; |
| 114 | 115 | } else { |
| 115 | 116 | |
@@ -165,8 +166,9 @@ discard block |
||
| 165 | 166 | // check if the glossary term already exists |
| 166 | 167 | if (GlossaryManager::glossary_exists($values['glossary_title'],$values['glossary_id'])) { |
| 167 | 168 | // display the feedback message |
| 168 | - if ($message) |
|
| 169 | - Display::display_error_message(get_lang('GlossaryTermAlreadyExistsYouShouldEditIt')); |
|
| 169 | + if ($message) { |
|
| 170 | + Display::display_error_message(get_lang('GlossaryTermAlreadyExistsYouShouldEditIt')); |
|
| 171 | + } |
|
| 170 | 172 | return false; |
| 171 | 173 | } else { |
| 172 | 174 | $sql = "UPDATE $t_glossary SET |
@@ -188,8 +190,9 @@ discard block |
||
| 188 | 190 | api_get_user_id() |
| 189 | 191 | ); |
| 190 | 192 | // display the feedback message |
| 191 | - if ($message) |
|
| 192 | - Display::display_confirmation_message(get_lang('TermUpdated')); |
|
| 193 | + if ($message) { |
|
| 194 | + Display::display_confirmation_message(get_lang('TermUpdated')); |
|
| 195 | + } |
|
| 193 | 196 | } |
| 194 | 197 | |
| 195 | 198 | return true; |
@@ -323,8 +326,9 @@ discard block |
||
| 323 | 326 | // reorder the remaining terms |
| 324 | 327 | GlossaryManager::reorder_glossary(); |
| 325 | 328 | $_SESSION['max_glossary_display'] = GlossaryManager::get_max_glossary_item(); |
| 326 | - if ($message) |
|
| 327 | - Display::display_confirmation_message(get_lang('TermDeleted')); |
|
| 329 | + if ($message) { |
|
| 330 | + Display::display_confirmation_message(get_lang('TermDeleted')); |
|
| 331 | + } |
|
| 328 | 332 | return true; |
| 329 | 333 | } |
| 330 | 334 | |
@@ -633,8 +637,9 @@ discard block |
||
| 633 | 637 | WHERE c_id = $course_id AND glossary_id = '".Database::escape_string($next_id)."'"; |
| 634 | 638 | Database::query($sql1); |
| 635 | 639 | Database::query($sql2); |
| 636 | - if ($message) |
|
| 637 | - Display::display_confirmation_message(get_lang('TermMoved')); |
|
| 640 | + if ($message) { |
|
| 641 | + Display::display_confirmation_message(get_lang('TermMoved')); |
|
| 642 | + } |
|
| 638 | 643 | } |
| 639 | 644 | |
| 640 | 645 | /** |
@@ -248,6 +248,9 @@ |
||
| 248 | 248 | //event_system(LOG_CAREER_DELETE, LOG_CAREER_ID, $id, api_get_utc_datetime(), api_get_user_id()); |
| 249 | 249 | } |
| 250 | 250 | |
| 251 | + /** |
|
| 252 | + * @param CatForm $form |
|
| 253 | + */ |
|
| 251 | 254 | public function fill_grade_model_select_in_form(&$form, $name = 'gradebook_model_id', $default_value = null) |
| 252 | 255 | { |
| 253 | 256 | if (api_get_setting('gradebook_enable_grade_model') == 'false') { |
@@ -50,15 +50,15 @@ discard block |
||
| 50 | 50 | /** |
| 51 | 51 | * Displays the title + grid |
| 52 | 52 | */ |
| 53 | - public function display() |
|
| 53 | + public function display() |
|
| 54 | 54 | { |
| 55 | - // action links |
|
| 56 | - echo '<div class="actions" style="margin-bottom:20px">'; |
|
| 55 | + // action links |
|
| 56 | + echo '<div class="actions" style="margin-bottom:20px">'; |
|
| 57 | 57 | echo '<a href="grade_models.php">'.Display::return_icon('back.png',get_lang('Back'),'','32').'</a>'; |
| 58 | - echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('add.png',get_lang('Add'),'','32').'</a>'; |
|
| 59 | - echo '</div>'; |
|
| 58 | + echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('add.png',get_lang('Add'),'','32').'</a>'; |
|
| 59 | + echo '</div>'; |
|
| 60 | 60 | echo Display::grid_html('grade_model'); |
| 61 | - } |
|
| 61 | + } |
|
| 62 | 62 | |
| 63 | 63 | /** |
| 64 | 64 | * Returns a Form validator Obj |
@@ -115,7 +115,7 @@ discard block |
||
| 115 | 115 | } |
| 116 | 116 | |
| 117 | 117 | $form->addElement('hidden', 'maxvalue', '100'); |
| 118 | - $form->addElement('hidden', 'minvalue', '0'); |
|
| 118 | + $form->addElement('hidden', 'minvalue', '0'); |
|
| 119 | 119 | $renderer = & $form->defaultRenderer(); |
| 120 | 120 | |
| 121 | 121 | $component_array = array(); |
@@ -127,7 +127,7 @@ discard block |
||
| 127 | 127 | $form->addElement('text', 'components['.$i.'][title]', null); |
| 128 | 128 | $form->addElement('hidden', 'components['.$i.'][id]', null); |
| 129 | 129 | |
| 130 | - $template_percentage = |
|
| 130 | + $template_percentage = |
|
| 131 | 131 | '<div id=' . $i . ' style="display: '.(($i<=$nr_items)?'inline':'none').';" class="control-group"> |
| 132 | 132 | <p> |
| 133 | 133 | <label class="control-label">{label}</label> |
@@ -192,7 +192,7 @@ discard block |
||
| 192 | 192 | // Setting the rules |
| 193 | 193 | $form->addRule('name', get_lang('ThisFieldIsRequired'), 'required'); |
| 194 | 194 | |
| 195 | - return $form; |
|
| 195 | + return $form; |
|
| 196 | 196 | } |
| 197 | 197 | |
| 198 | 198 | public function get_components($id) |
@@ -206,8 +206,8 @@ discard block |
||
| 206 | 206 | |
| 207 | 207 | public function save($params, $show_query = false) |
| 208 | 208 | { |
| 209 | - $id = parent::save($params, $show_query); |
|
| 210 | - if (!empty($id)) { |
|
| 209 | + $id = parent::save($params, $show_query); |
|
| 210 | + if (!empty($id)) { |
|
| 211 | 211 | foreach ($params['components'] as $component) { |
| 212 | 212 | if (!empty($component['title']) && !empty($component['percentage']) && !empty($component['acronym'])) { |
| 213 | 213 | $obj = new GradeModelComponents(); |
@@ -218,7 +218,7 @@ discard block |
||
| 218 | 218 | } |
| 219 | 219 | |
| 220 | 220 | //event_system(LOG_CAREER_CREATE, LOG_CAREER_ID, $id, api_get_utc_datetime(), api_get_user_id()); |
| 221 | - return $id; |
|
| 221 | + return $id; |
|
| 222 | 222 | } |
| 223 | 223 | |
| 224 | 224 | /** |
@@ -244,8 +244,8 @@ discard block |
||
| 244 | 244 | |
| 245 | 245 | public function delete($id) |
| 246 | 246 | { |
| 247 | - parent::delete($id); |
|
| 248 | - //event_system(LOG_CAREER_DELETE, LOG_CAREER_ID, $id, api_get_utc_datetime(), api_get_user_id()); |
|
| 247 | + parent::delete($id); |
|
| 248 | + //event_system(LOG_CAREER_DELETE, LOG_CAREER_ID, $id, api_get_utc_datetime(), api_get_user_id()); |
|
| 249 | 249 | } |
| 250 | 250 | |
| 251 | 251 | public function fill_grade_model_select_in_form(&$form, $name = 'gradebook_model_id', $default_value = null) |
@@ -290,14 +290,14 @@ discard block |
||
| 290 | 290 | public $table; |
| 291 | 291 | public $columns = array('id', 'title', 'percentage', 'acronym', 'grade_model_id'); |
| 292 | 292 | |
| 293 | - public function __construct() |
|
| 293 | + public function __construct() |
|
| 294 | 294 | { |
| 295 | 295 | $this->table = Database::get_main_table(TABLE_GRADE_MODEL_COMPONENTS); |
| 296 | - } |
|
| 296 | + } |
|
| 297 | 297 | |
| 298 | 298 | public function save($params, $show_query = false) |
| 299 | 299 | { |
| 300 | - $id = parent::save($params, $show_query); |
|
| 300 | + $id = parent::save($params, $show_query); |
|
| 301 | 301 | return $id; |
| 302 | 302 | } |
| 303 | 303 | } |
@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | */ |
| 16 | 16 | public function __construct() |
| 17 | 17 | { |
| 18 | - $this->table = Database::get_main_table(TABLE_GRADE_MODEL); |
|
| 18 | + $this->table = Database::get_main_table(TABLE_GRADE_MODEL); |
|
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | /** |
@@ -54,8 +54,8 @@ discard block |
||
| 54 | 54 | { |
| 55 | 55 | // action links |
| 56 | 56 | echo '<div class="actions" style="margin-bottom:20px">'; |
| 57 | - echo '<a href="grade_models.php">'.Display::return_icon('back.png',get_lang('Back'),'','32').'</a>'; |
|
| 58 | - echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('add.png',get_lang('Add'),'','32').'</a>'; |
|
| 57 | + echo '<a href="grade_models.php">'.Display::return_icon('back.png', get_lang('Back'), '', '32').'</a>'; |
|
| 58 | + echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('add.png', get_lang('Add'), '', '32').'</a>'; |
|
| 59 | 59 | echo '</div>'; |
| 60 | 60 | echo Display::grid_html('grade_model'); |
| 61 | 61 | } |
@@ -110,7 +110,7 @@ discard block |
||
| 110 | 110 | |
| 111 | 111 | if ($action == 'edit') { |
| 112 | 112 | if (!empty($components)) { |
| 113 | - $nr_items = count($components) -1; |
|
| 113 | + $nr_items = count($components) - 1; |
|
| 114 | 114 | } |
| 115 | 115 | } |
| 116 | 116 | |
@@ -123,12 +123,12 @@ discard block |
||
| 123 | 123 | for ($i = 0; $i <= $max; $i++) { |
| 124 | 124 | $counter = $i; |
| 125 | 125 | $form->addElement('text', 'components['.$i.'][percentage]', null); |
| 126 | - $form->addElement('text', 'components['.$i.'][acronym]', null); |
|
| 127 | - $form->addElement('text', 'components['.$i.'][title]', null); |
|
| 128 | - $form->addElement('hidden', 'components['.$i.'][id]', null); |
|
| 126 | + $form->addElement('text', 'components['.$i.'][acronym]', null); |
|
| 127 | + $form->addElement('text', 'components['.$i.'][title]', null); |
|
| 128 | + $form->addElement('hidden', 'components['.$i.'][id]', null); |
|
| 129 | 129 | |
| 130 | 130 | $template_percentage = |
| 131 | - '<div id=' . $i . ' style="display: '.(($i<=$nr_items)?'inline':'none').';" class="control-group"> |
|
| 131 | + '<div id='.$i.' style="display: '.(($i <= $nr_items) ? 'inline' : 'none').';" class="control-group"> |
|
| 132 | 132 | <p> |
| 133 | 133 | <label class="control-label">{label}</label> |
| 134 | 134 | <div class="controls"> |
@@ -141,11 +141,11 @@ discard block |
||
| 141 | 141 | |
| 142 | 142 | $template_title = |
| 143 | 143 | ' {element} <!-- BEGIN error --> <span class="form_error">{error}</span><!-- END error --> |
| 144 | - <a href="javascript:plusItem(' . ($counter+1) . ')"> |
|
| 145 | - <img style="display: '.(($counter>=$nr_items)?'inline':'none').';" id="plus-' . ($counter+1) . '" src="'.Display::return_icon('add.png').'" alt="'.get_lang('Add').'" title="'.get_lang('Add').'"> |
|
| 144 | + <a href="javascript:plusItem(' . ($counter + 1).')"> |
|
| 145 | + <img style="display: '.(($counter >= $nr_items) ? 'inline' : 'none').';" id="plus-'.($counter + 1).'" src="'.Display::return_icon('add.png').'" alt="'.get_lang('Add').'" title="'.get_lang('Add').'"> |
|
| 146 | 146 | </a> |
| 147 | - <a href="javascript:minItem(' . ($counter) . ')"> |
|
| 148 | - <img style="display: '.(($counter>=$nr_items)?'inline':'none').';" id="min-' . $counter . '" src="'.Display::return_icon('delete.png').'" alt="'.get_lang('Delete').'" title="'.get_lang('Delete').'"> |
|
| 147 | + <a href="javascript:minItem(' . ($counter).')"> |
|
| 148 | + <img style="display: '.(($counter >= $nr_items) ? 'inline' : 'none').';" id="min-'.$counter.'" src="'.Display::return_icon('delete.png').'" alt="'.get_lang('Delete').'" title="'.get_lang('Delete').'"> |
|
| 149 | 149 | </a> |
| 150 | 150 | </div></p></div>'; |
| 151 | 151 | |
@@ -292,7 +292,7 @@ discard block |
||
| 292 | 292 | |
| 293 | 293 | public function __construct() |
| 294 | 294 | { |
| 295 | - $this->table = Database::get_main_table(TABLE_GRADE_MODEL_COMPONENTS); |
|
| 295 | + $this->table = Database::get_main_table(TABLE_GRADE_MODEL_COMPONENTS); |
|
| 296 | 296 | } |
| 297 | 297 | |
| 298 | 298 | public function save($params, $show_query = false) |
@@ -21,7 +21,7 @@ discard block |
||
| 21 | 21 | * @param int $visibility is active or not |
| 22 | 22 | * @param string $picture |
| 23 | 23 | * |
| 24 | - * @return boolean if success |
|
| 24 | + * @return string|false if success |
|
| 25 | 25 | */ |
| 26 | 26 | public static function add($name, $description, $url, $visibility, $picture = '') |
| 27 | 27 | { |
@@ -57,7 +57,7 @@ discard block |
||
| 57 | 57 | * @param int $visibility |
| 58 | 58 | * @param string $picture_uri |
| 59 | 59 | * @param bool $allowMemberGroupToLeave |
| 60 | - * @return bool if success |
|
| 60 | + * @return Statement|null if success |
|
| 61 | 61 | */ |
| 62 | 62 | public static function update($group_id, $name, $description, $url, $visibility, $picture_uri, $allowMemberGroupToLeave = null) |
| 63 | 63 | { |
@@ -87,7 +87,7 @@ discard block |
||
| 87 | 87 | * Deletes a group |
| 88 | 88 | * @author Julio Montoya |
| 89 | 89 | * @param int $id |
| 90 | - * @return boolean true if success |
|
| 90 | + * @return Statement|null true if success |
|
| 91 | 91 | * */ |
| 92 | 92 | public static function delete($id) |
| 93 | 93 | { |
@@ -175,7 +175,7 @@ discard block |
||
| 175 | 175 | * @param int $group_id |
| 176 | 176 | * @param int $parent_group_id if 0, we delete the parent_group association |
| 177 | 177 | * @param int $relation_type |
| 178 | - * @return resource |
|
| 178 | + * @return Statement|null |
|
| 179 | 179 | **/ |
| 180 | 180 | public static function set_parent_group($group_id, $parent_group_id, $relation_type = 1) |
| 181 | 181 | { |
@@ -652,6 +652,7 @@ discard block |
||
| 652 | 652 | * @author Julio Montoya |
| 653 | 653 | * @param int user_id |
| 654 | 654 | * @param int url_id |
| 655 | + * @param integer $relation_type |
|
| 655 | 656 | * @return boolean true if success |
| 656 | 657 | **/ |
| 657 | 658 | public static function add_user_to_group($user_id, $group_id, $relation_type = GROUP_USER_PERMISSION_READER) |
@@ -735,7 +736,7 @@ discard block |
||
| 735 | 736 | * @author Julio Montoya |
| 736 | 737 | * @param int $group_id |
| 737 | 738 | * @param int $relation_type (optional) |
| 738 | - * @return boolean true if success |
|
| 739 | + * @return Statement|null true if success |
|
| 739 | 740 | * */ |
| 740 | 741 | public static function delete_users($group_id, $relation_type = null) |
| 741 | 742 | { |
@@ -916,6 +917,7 @@ discard block |
||
| 916 | 917 | * If an empty name is provided, then old user photos are deleted only, @see UserManager::delete_user_picture() |
| 917 | 918 | * as the prefered way for deletion. |
| 918 | 919 | * @param string $source_file The full system name of the image from which user photos will be created. |
| 920 | + * @param integer $group_id |
|
| 919 | 921 | * @return string/bool Returns the resulting file name of created images which usually should be stored in DB. |
| 920 | 922 | * When deletion is recuested returns empty string. In case of internal error or negative validation returns FALSE. |
| 921 | 923 | */ |
@@ -1074,7 +1076,9 @@ discard block |
||
| 1074 | 1076 | * |
| 1075 | 1077 | * @param string file picture |
| 1076 | 1078 | * @param int size in pixels |
| 1077 | - * @return obj image object |
|
| 1079 | + * @param string|null $file |
|
| 1080 | + * @param integer $max_size_for_picture |
|
| 1081 | + * @return Image image object |
|
| 1078 | 1082 | */ |
| 1079 | 1083 | public static function resize_picture($file, $max_size_for_picture) |
| 1080 | 1084 | { |
@@ -1335,27 +1335,27 @@ |
||
| 1335 | 1335 | public static function get_groups_by_user_count($user_id = null, $relation_type = GROUP_USER_PERMISSION_READER, $with_image = false) |
| 1336 | 1336 | { |
| 1337 | 1337 | $table_group_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_GROUP); |
| 1338 | - $tbl_group = Database::get_main_table(TABLE_MAIN_GROUP); |
|
| 1339 | - $user_id = intval($user_id); |
|
| 1338 | + $tbl_group = Database::get_main_table(TABLE_MAIN_GROUP); |
|
| 1339 | + $user_id = intval($user_id); |
|
| 1340 | 1340 | |
| 1341 | - if ($relation_type == 0) { |
|
| 1342 | - $where_relation_condition = ''; |
|
| 1343 | - } else { |
|
| 1344 | - $relation_type = intval($relation_type); |
|
| 1345 | - $where_relation_condition = "AND gu.relation_type = $relation_type "; |
|
| 1346 | - } |
|
| 1341 | + if ($relation_type == 0) { |
|
| 1342 | + $where_relation_condition = ''; |
|
| 1343 | + } else { |
|
| 1344 | + $relation_type = intval($relation_type); |
|
| 1345 | + $where_relation_condition = "AND gu.relation_type = $relation_type "; |
|
| 1346 | + } |
|
| 1347 | 1347 | |
| 1348 | - $sql = "SELECT count(g.id) as count |
|
| 1348 | + $sql = "SELECT count(g.id) as count |
|
| 1349 | 1349 | FROM $tbl_group g |
| 1350 | 1350 | INNER JOIN $table_group_rel_user gu |
| 1351 | 1351 | ON gu.group_id = g.id WHERE gu.user_id = $user_id $where_relation_condition "; |
| 1352 | 1352 | |
| 1353 | - $result = Database::query($sql); |
|
| 1354 | - if (Database::num_rows($result) > 0) { |
|
| 1355 | - $row = Database::fetch_array($result, 'ASSOC'); |
|
| 1353 | + $result = Database::query($sql); |
|
| 1354 | + if (Database::num_rows($result) > 0) { |
|
| 1355 | + $row = Database::fetch_array($result, 'ASSOC'); |
|
| 1356 | 1356 | return $row['count']; |
| 1357 | - } |
|
| 1358 | - return 0; |
|
| 1357 | + } |
|
| 1358 | + return 0; |
|
| 1359 | 1359 | } |
| 1360 | 1360 | |
| 1361 | 1361 | /** |
@@ -331,7 +331,7 @@ discard block |
||
| 331 | 331 | if ($i == $max_level) { |
| 332 | 332 | $select_part .= "rg$rg_number.group_id as id_$rg_number "; |
| 333 | 333 | } else { |
| 334 | - $select_part .="rg$rg_number.group_id as id_$rg_number, "; |
|
| 334 | + $select_part .= "rg$rg_number.group_id as id_$rg_number, "; |
|
| 335 | 335 | } |
| 336 | 336 | if ($i == 1) { |
| 337 | 337 | $cond_part .= "FROM $t_rel_group rg0 LEFT JOIN $t_rel_group rg$i on rg$rg_number.group_id = rg$i.subgroup_id "; |
@@ -1334,14 +1334,14 @@ discard block |
||
| 1334 | 1334 | */ |
| 1335 | 1335 | public static function get_groups_by_user_count($user_id = null, $relation_type = GROUP_USER_PERMISSION_READER, $with_image = false) |
| 1336 | 1336 | { |
| 1337 | - $table_group_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_GROUP); |
|
| 1338 | - $tbl_group = Database::get_main_table(TABLE_MAIN_GROUP); |
|
| 1337 | + $table_group_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_GROUP); |
|
| 1338 | + $tbl_group = Database::get_main_table(TABLE_MAIN_GROUP); |
|
| 1339 | 1339 | $user_id = intval($user_id); |
| 1340 | 1340 | |
| 1341 | 1341 | if ($relation_type == 0) { |
| 1342 | 1342 | $where_relation_condition = ''; |
| 1343 | 1343 | } else { |
| 1344 | - $relation_type = intval($relation_type); |
|
| 1344 | + $relation_type = intval($relation_type); |
|
| 1345 | 1345 | $where_relation_condition = "AND gu.relation_type = $relation_type "; |
| 1346 | 1346 | } |
| 1347 | 1347 | |
@@ -1394,7 +1394,7 @@ discard block |
||
| 1394 | 1394 | |
| 1395 | 1395 | // Picture |
| 1396 | 1396 | $form->addElement('file', 'picture', get_lang('AddPicture')); |
| 1397 | - $allowed_picture_types = array ('jpg', 'jpeg', 'png', 'gif'); |
|
| 1397 | + $allowed_picture_types = array('jpg', 'jpeg', 'png', 'gif'); |
|
| 1398 | 1398 | $form->addRule('picture', get_lang('OnlyImagesAllowed').' ('.implode(',', $allowed_picture_types).')', 'filetype', $allowed_picture_types); |
| 1399 | 1399 | |
| 1400 | 1400 | if (!empty($groupData)) { |
@@ -563,8 +563,9 @@ discard block |
||
| 563 | 563 | $new_relation_type[] = "'$rel'"; |
| 564 | 564 | } |
| 565 | 565 | $relation_type = implode(',', $new_relation_type); |
| 566 | - if (!empty($relation_type)) |
|
| 567 | - $where_relation_condition = "AND gu.relation_type IN ($relation_type) "; |
|
| 566 | + if (!empty($relation_type)) { |
|
| 567 | + $where_relation_condition = "AND gu.relation_type IN ($relation_type) "; |
|
| 568 | + } |
|
| 568 | 569 | } |
| 569 | 570 | |
| 570 | 571 | $sql = "SELECT |
@@ -1086,8 +1087,9 @@ discard block |
||
| 1086 | 1087 | $thumbwidth = $max_size_for_picture; |
| 1087 | 1088 | } |
| 1088 | 1089 | $new_height = round(($thumbwidth / $picture_infos['width']) * $picture_infos['height']); |
| 1089 | - if ($new_height > $max_size_for_picture) |
|
| 1090 | - $new_height = $thumbwidth; |
|
| 1090 | + if ($new_height > $max_size_for_picture) { |
|
| 1091 | + $new_height = $thumbwidth; |
|
| 1092 | + } |
|
| 1091 | 1093 | $temp->resize($thumbwidth, $new_height, 0); |
| 1092 | 1094 | } |
| 1093 | 1095 | |
@@ -369,7 +369,7 @@ discard block |
||
| 369 | 369 | * @author Christophe Gesche <[email protected]> |
| 370 | 370 | * @author Hugues Peeters <[email protected]> |
| 371 | 371 | * @author Bart Mollet |
| 372 | - * @param mixed $groupIdList - group(s) to delete. It can be a single id |
|
| 372 | + * @param mixed $group_ids - group(s) to delete. It can be a single id |
|
| 373 | 373 | * (int) or a list of id (array). |
| 374 | 374 | * @param string $course_code Default is current course |
| 375 | 375 | * @return integer - number of groups deleted. |
@@ -573,7 +573,7 @@ discard block |
||
| 573 | 573 | * @param bool Whether self registration is allowed or not |
| 574 | 574 | * @param bool Whether self unregistration is allowed or not |
| 575 | 575 | * @param int $categoryId |
| 576 | - * @return bool TRUE if properties are successfully changed, false otherwise |
|
| 576 | + * @return Statement|null TRUE if properties are successfully changed, false otherwise |
|
| 577 | 577 | */ |
| 578 | 578 | public static function set_group_properties( |
| 579 | 579 | $group_id, |
@@ -724,7 +724,7 @@ discard block |
||
| 724 | 724 | * @param int $group_id The id of the group |
| 725 | 725 | * @param string $course_code The course in which the group is (default = |
| 726 | 726 | * current course) |
| 727 | - * @return array The category |
|
| 727 | + * @return integer The category |
|
| 728 | 728 | */ |
| 729 | 729 | public static function get_category_from_group($group_id, $course_code = null) |
| 730 | 730 | { |
@@ -786,9 +786,9 @@ discard block |
||
| 786 | 786 | * Create group category |
| 787 | 787 | * @param string $title The title of the new category |
| 788 | 788 | * @param string $description The description of the new category |
| 789 | - * @param bool $self_registration_allowed |
|
| 790 | - * @param bool $self_unregistration_allowed |
|
| 791 | - * @param int $max_number_of_students |
|
| 789 | + * @param integer $self_registration_allowed |
|
| 790 | + * @param integer $self_unregistration_allowed |
|
| 791 | + * @param int $maximum_number_of_students |
|
| 792 | 792 | * @param int $groups_per_user |
| 793 | 793 | */ |
| 794 | 794 | public static function create_category( |
@@ -994,6 +994,8 @@ discard block |
||
| 994 | 994 | * @param int $limit |
| 995 | 995 | * @param bool $getCount |
| 996 | 996 | * @param int $courseId |
| 997 | + * @param string $column |
|
| 998 | + * @param string $direction |
|
| 997 | 999 | * @return array list of user id |
| 998 | 1000 | */ |
| 999 | 1001 | public static function get_users( |
@@ -1172,7 +1174,7 @@ discard block |
||
| 1172 | 1174 | * Hugues Peeters <[email protected]> - original version |
| 1173 | 1175 | * @author Roan Embrechts - virtual course support, code cleaning |
| 1174 | 1176 | * @author Bart Mollet - code cleaning, use other GroupManager-functions |
| 1175 | - * @return void |
|
| 1177 | + * @return false|null |
|
| 1176 | 1178 | */ |
| 1177 | 1179 | public static function fill_groups($group_ids) |
| 1178 | 1180 | { |
@@ -1625,7 +1627,7 @@ discard block |
||
| 1625 | 1627 | * Unsubscribe user(s) from a specified group in current course |
| 1626 | 1628 | * @param mixed $user_ids Can be an array with user-id's or a single user-id |
| 1627 | 1629 | * @param int $group_id |
| 1628 | - * @return bool TRUE if successful |
|
| 1630 | + * @return boolean|null TRUE if successful |
|
| 1629 | 1631 | */ |
| 1630 | 1632 | public static function unsubscribe_users($user_ids, $group_id) |
| 1631 | 1633 | { |
@@ -1644,7 +1646,7 @@ discard block |
||
| 1644 | 1646 | |
| 1645 | 1647 | /** |
| 1646 | 1648 | * Unsubscribe all users from one or more groups |
| 1647 | - * @param mixed $group_id Can be an array with group-id's or a single group-id |
|
| 1649 | + * @param mixed $group_ids Can be an array with group-id's or a single group-id |
|
| 1648 | 1650 | * @return bool TRUE if successful |
| 1649 | 1651 | */ |
| 1650 | 1652 | public static function unsubscribe_all_users($group_ids) |
@@ -1676,7 +1678,7 @@ discard block |
||
| 1676 | 1678 | |
| 1677 | 1679 | /** |
| 1678 | 1680 | * Unsubscribe all tutors from one or more groups |
| 1679 | - * @param mixed $group_id Can be an array with group-id's or a single group-id |
|
| 1681 | + * @param mixed $group_ids Can be an array with group-id's or a single group-id |
|
| 1680 | 1682 | * @see unsubscribe_all_users. This function is almost an exact copy of that function. |
| 1681 | 1683 | * @return bool TRUE if successful |
| 1682 | 1684 | * @author Patrick Cool <[email protected]>, Ghent University |
@@ -1861,6 +1863,7 @@ discard block |
||
| 1861 | 1863 | * |
| 1862 | 1864 | * @param $user_array_in list of users (must be sorted). |
| 1863 | 1865 | * @param string $compare_field, the field to be compared |
| 1866 | + * @param string $compare_field |
|
| 1864 | 1867 | */ |
| 1865 | 1868 | public static function filter_duplicates($user_array_in, $compare_field) |
| 1866 | 1869 | { |
@@ -221,8 +221,8 @@ discard block |
||
| 221 | 221 | $sql = "UPDATE $table_group SET id = iid WHERE iid = $lastId"; |
| 222 | 222 | Database::query($sql); |
| 223 | 223 | |
| 224 | - $desired_dir_name= '/'.api_replace_dangerous_char($name).'_groupdocs'; |
|
| 225 | - $my_path = api_get_path(SYS_COURSE_PATH) . $currentCourseRepository . '/document'; |
|
| 224 | + $desired_dir_name = '/'.api_replace_dangerous_char($name).'_groupdocs'; |
|
| 225 | + $my_path = api_get_path(SYS_COURSE_PATH).$currentCourseRepository.'/document'; |
|
| 226 | 226 | |
| 227 | 227 | $newFolderData = create_unexisting_directory( |
| 228 | 228 | $_course, |
@@ -285,11 +285,11 @@ discard block |
||
| 285 | 285 | $values['default_view_type_group']['default_view_type'] = api_get_setting('default_forum_view'); |
| 286 | 286 | $values['group_forum'] = $lastId; |
| 287 | 287 | if ($forumState == '1') { |
| 288 | - $values['public_private_group_forum_group']['public_private_group_forum']='public'; |
|
| 288 | + $values['public_private_group_forum_group']['public_private_group_forum'] = 'public'; |
|
| 289 | 289 | } elseif ($forumState == '2') { |
| 290 | - $values['public_private_group_forum_group']['public_private_group_forum']='private'; |
|
| 290 | + $values['public_private_group_forum_group']['public_private_group_forum'] = 'private'; |
|
| 291 | 291 | } elseif ($forumState == '0') { |
| 292 | - $values['public_private_group_forum_group']['public_private_group_forum']='unavailable'; |
|
| 292 | + $values['public_private_group_forum_group']['public_private_group_forum'] = 'unavailable'; |
|
| 293 | 293 | } |
| 294 | 294 | store_forum($values); |
| 295 | 295 | } |
@@ -320,9 +320,9 @@ discard block |
||
| 320 | 320 | 1 |
| 321 | 321 | ); |
| 322 | 322 | $users = self::get_users($group_id); |
| 323 | - $group_ids = array (); |
|
| 323 | + $group_ids = array(); |
|
| 324 | 324 | |
| 325 | - for ($group_nr = 1; $group_nr <= $number_of_groups; $group_nr ++) { |
|
| 325 | + for ($group_nr = 1; $group_nr <= $number_of_groups; $group_nr++) { |
|
| 326 | 326 | $group_ids[] = self::create_group( |
| 327 | 327 | get_lang('Subgroup').' '.$group_nr, |
| 328 | 328 | $category_id, |
@@ -366,7 +366,7 @@ discard block |
||
| 366 | 366 | 0, |
| 367 | 367 | count($users_ids) |
| 368 | 368 | ); |
| 369 | - self::subscribe_users($users_ids,$group_id); |
|
| 369 | + self::subscribe_users($users_ids, $group_id); |
|
| 370 | 370 | $group_ids[] = $group_id; |
| 371 | 371 | } |
| 372 | 372 | return $group_ids; |
@@ -391,14 +391,14 @@ discard block |
||
| 391 | 391 | $group_table = Database:: get_course_table(TABLE_GROUP); |
| 392 | 392 | $forum_table = Database:: get_course_table(TABLE_FORUM); |
| 393 | 393 | |
| 394 | - $group_ids = is_array($group_ids) ? $group_ids : array ($group_ids); |
|
| 395 | - $group_ids = array_map('intval',$group_ids); |
|
| 394 | + $group_ids = is_array($group_ids) ? $group_ids : array($group_ids); |
|
| 395 | + $group_ids = array_map('intval', $group_ids); |
|
| 396 | 396 | |
| 397 | 397 | if (api_is_course_coach()) { |
| 398 | 398 | //a coach can only delete courses from his session |
| 399 | - for ($i=0 ; $i<count($group_ids) ; $i++) { |
|
| 400 | - if (!api_is_element_in_the_session(TOOL_GROUP,$group_ids[$i])) { |
|
| 401 | - array_splice($group_ids,$i,1); |
|
| 399 | + for ($i = 0; $i < count($group_ids); $i++) { |
|
| 400 | + if (!api_is_element_in_the_session(TOOL_GROUP, $group_ids[$i])) { |
|
| 401 | + array_splice($group_ids, $i, 1); |
|
| 402 | 402 | $i--; |
| 403 | 403 | } |
| 404 | 404 | } |
@@ -633,7 +633,7 @@ discard block |
||
| 633 | 633 | } elseif ($forum_state === 0) { |
| 634 | 634 | $sql2 .= " forum_group_public_private='unavailable' "; |
| 635 | 635 | } |
| 636 | - $sql2 .=" WHERE c_id = $course_id AND forum_of_group=".$group_id; |
|
| 636 | + $sql2 .= " WHERE c_id = $course_id AND forum_of_group=".$group_id; |
|
| 637 | 637 | Database::query($sql2); |
| 638 | 638 | return $result; |
| 639 | 639 | } |
@@ -662,13 +662,13 @@ discard block |
||
| 662 | 662 | public static function get_categories($course_code = null) |
| 663 | 663 | { |
| 664 | 664 | $course_info = api_get_course_info($course_code); |
| 665 | - $course_id = $course_info['real_id']; |
|
| 665 | + $course_id = $course_info['real_id']; |
|
| 666 | 666 | $table_group_cat = Database :: get_course_table(TABLE_GROUP_CATEGORY); |
| 667 | 667 | $sql = "SELECT * FROM $table_group_cat |
| 668 | 668 | WHERE c_id = $course_id |
| 669 | 669 | ORDER BY display_order"; |
| 670 | 670 | $res = Database::query($sql); |
| 671 | - $cats = array (); |
|
| 671 | + $cats = array(); |
|
| 672 | 672 | while ($cat = Database::fetch_array($res)) { |
| 673 | 673 | $cats[] = $cat; |
| 674 | 674 | } |
@@ -779,7 +779,7 @@ discard block |
||
| 779 | 779 | WHERE c_id = $course_id AND category_id='".$cat_id."'"; |
| 780 | 780 | $res = Database::query($sql); |
| 781 | 781 | if (Database::num_rows($res) > 0) { |
| 782 | - $groups_to_delete = array (); |
|
| 782 | + $groups_to_delete = array(); |
|
| 783 | 783 | while ($group = Database::fetch_object($res)) { |
| 784 | 784 | $groups_to_delete[] = $group->id; |
| 785 | 785 | } |
@@ -947,7 +947,7 @@ discard block |
||
| 947 | 947 | */ |
| 948 | 948 | public static function get_current_max_groups_per_user($category_id = null, $course_code = null) |
| 949 | 949 | { |
| 950 | - $course_info = api_get_course_info ($course_code); |
|
| 950 | + $course_info = api_get_course_info($course_code); |
|
| 951 | 951 | $group_table = Database :: get_course_table(TABLE_GROUP); |
| 952 | 952 | $group_user_table = Database :: get_course_table(TABLE_GROUP_USER); |
| 953 | 953 | $sql = 'SELECT COUNT(gu.group_id) AS current_max |
@@ -1186,17 +1186,17 @@ discard block |
||
| 1186 | 1186 | { |
| 1187 | 1187 | $_course = api_get_course_info(); |
| 1188 | 1188 | |
| 1189 | - $group_ids = is_array($group_ids) ? $group_ids : array ($group_ids); |
|
| 1189 | + $group_ids = is_array($group_ids) ? $group_ids : array($group_ids); |
|
| 1190 | 1190 | $group_ids = array_map('intval', $group_ids); |
| 1191 | 1191 | |
| 1192 | 1192 | if (api_is_course_coach()) { |
| 1193 | - for ($i=0 ; $i< count($group_ids) ; $i++) { |
|
| 1194 | - if (!api_is_element_in_the_session(TOOL_GROUP, $group_ids[$i])){ |
|
| 1195 | - array_splice($group_ids,$i,1); |
|
| 1193 | + for ($i = 0; $i < count($group_ids); $i++) { |
|
| 1194 | + if (!api_is_element_in_the_session(TOOL_GROUP, $group_ids[$i])) { |
|
| 1195 | + array_splice($group_ids, $i, 1); |
|
| 1196 | 1196 | $i--; |
| 1197 | 1197 | } |
| 1198 | 1198 | } |
| 1199 | - if (count($group_ids)==0) { |
|
| 1199 | + if (count($group_ids) == 0) { |
|
| 1200 | 1200 | return false; |
| 1201 | 1201 | } |
| 1202 | 1202 | } |
@@ -1235,9 +1235,9 @@ discard block |
||
| 1235 | 1235 | * Retrieve course users (reverse) ordered by the number |
| 1236 | 1236 | * of group they are already enrolled |
| 1237 | 1237 | */ |
| 1238 | - for ($i = 0; $i < count($complete_user_list); $i ++) { |
|
| 1238 | + for ($i = 0; $i < count($complete_user_list); $i++) { |
|
| 1239 | 1239 | //find # of groups the user is enrolled in |
| 1240 | - $number_of_groups = self :: user_in_number_of_groups($complete_user_list[$i]["user_id"], (isset($category['id'])?$category['id']:null)); |
|
| 1240 | + $number_of_groups = self :: user_in_number_of_groups($complete_user_list[$i]["user_id"], (isset($category['id']) ? $category['id'] : null)); |
|
| 1241 | 1241 | //add # of groups to user list |
| 1242 | 1242 | $complete_user_list[$i]['number_groups_left'] = $number_groups_per_user - $number_of_groups; |
| 1243 | 1243 | } |
@@ -1249,7 +1249,7 @@ discard block |
||
| 1249 | 1249 | |
| 1250 | 1250 | //now sort by # of group left |
| 1251 | 1251 | $complete_user_list = TableSort :: sort_table($complete_user_list, 'number_groups_left', SORT_DESC); |
| 1252 | - $userToken = array (); |
|
| 1252 | + $userToken = array(); |
|
| 1253 | 1253 | foreach ($complete_user_list as $this_user) { |
| 1254 | 1254 | if ($this_user['number_groups_left'] > 0) { |
| 1255 | 1255 | $userToken[$this_user['user_id']] = $this_user['number_groups_left']; |
@@ -1444,7 +1444,7 @@ discard block |
||
| 1444 | 1444 | if ($category['groups_per_user'] == self::GROUP_PER_MEMBER_NO_LIMIT) { |
| 1445 | 1445 | $category['groups_per_user'] = self::INFINITE; |
| 1446 | 1446 | } |
| 1447 | - $result = self:: user_in_number_of_groups($user_id, $category['id'] ) < $category['groups_per_user']; |
|
| 1447 | + $result = self:: user_in_number_of_groups($user_id, $category['id']) < $category['groups_per_user']; |
|
| 1448 | 1448 | if ($result == false) { |
| 1449 | 1449 | return false; |
| 1450 | 1450 | } |
@@ -1555,7 +1555,7 @@ discard block |
||
| 1555 | 1555 | tg.group_id='".$group_id."' AND |
| 1556 | 1556 | tg.user_id=u.user_id".$order_clause; |
| 1557 | 1557 | $db_result = Database::query($sql); |
| 1558 | - $users = array (); |
|
| 1558 | + $users = array(); |
|
| 1559 | 1559 | while ($user = Database::fetch_object($db_result)) { |
| 1560 | 1560 | if (!$id_only) { |
| 1561 | 1561 | $member['user_id'] = $user->user_id; |
@@ -1620,8 +1620,8 @@ discard block |
||
| 1620 | 1620 | foreach ($user_ids as $user_id) { |
| 1621 | 1621 | $user_id = intval($user_id); |
| 1622 | 1622 | if (self::can_user_subscribe($user_id, $group_id, false)) { |
| 1623 | - $sql = "INSERT INTO " . $table_group_tutor . " (c_id, user_id, group_id) |
|
| 1624 | - VALUES ('$course_id', '" . $user_id . "', '" . $group_id . "')"; |
|
| 1623 | + $sql = "INSERT INTO ".$table_group_tutor." (c_id, user_id, group_id) |
|
| 1624 | + VALUES ('$course_id', '".$user_id."', '".$group_id."')"; |
|
| 1625 | 1625 | $result &= Database::query($sql); |
| 1626 | 1626 | } |
| 1627 | 1627 | } |
@@ -1637,7 +1637,7 @@ discard block |
||
| 1637 | 1637 | */ |
| 1638 | 1638 | public static function unsubscribe_users($user_ids, $group_id) |
| 1639 | 1639 | { |
| 1640 | - $user_ids = is_array($user_ids) ? $user_ids : array ($user_ids); |
|
| 1640 | + $user_ids = is_array($user_ids) ? $user_ids : array($user_ids); |
|
| 1641 | 1641 | $table_group_user = Database :: get_course_table(TABLE_GROUP_USER); |
| 1642 | 1642 | $group_id = intval($group_id); |
| 1643 | 1643 | $course_id = api_get_course_int_id(); |
@@ -2183,7 +2183,7 @@ discard block |
||
| 2183 | 2183 | * Retrieve course users (reverse) ordered by the number |
| 2184 | 2184 | * of group they are already enrolled |
| 2185 | 2185 | */ |
| 2186 | - for ($i = 0; $i < count($complete_user_list); $i ++) { |
|
| 2186 | + for ($i = 0; $i < count($complete_user_list); $i++) { |
|
| 2187 | 2187 | // find # of groups the user is enrolled in |
| 2188 | 2188 | $number_of_groups = self:: user_in_number_of_groups( |
| 2189 | 2189 | $complete_user_list[$i]["user_id"], |
@@ -2315,14 +2315,14 @@ discard block |
||
| 2315 | 2315 | !(api_is_course_coach() && intval($this_group['session_id']) != $session_id) |
| 2316 | 2316 | ) { |
| 2317 | 2317 | $edit_actions = '<a href="'.$url.'settings.php?'.api_get_cidreq(true, false).'&gidReq='.$this_group['id'].'" title="'.get_lang('Edit').'">'. |
| 2318 | - Display::return_icon('edit.png', get_lang('EditGroup'),'',ICON_SIZE_SMALL).'</a> '; |
|
| 2318 | + Display::return_icon('edit.png', get_lang('EditGroup'), '', ICON_SIZE_SMALL).'</a> '; |
|
| 2319 | 2319 | |
| 2320 | 2320 | if ($this_group['status'] == 1) { |
| 2321 | - $edit_actions .= '<a href="' . api_get_self() . '?' . api_get_cidreq(true,false) . '&category=' . $category_id . '&action=set_invisible&id=' . $this_group['id'] . '" title="' . get_lang('Hide') . '">' . |
|
| 2322 | - Display::return_icon('visible.png', get_lang('Hide'), '', ICON_SIZE_SMALL) . '</a> '; |
|
| 2321 | + $edit_actions .= '<a href="'.api_get_self().'?'.api_get_cidreq(true, false).'&category='.$category_id.'&action=set_invisible&id='.$this_group['id'].'" title="'.get_lang('Hide').'">'. |
|
| 2322 | + Display::return_icon('visible.png', get_lang('Hide'), '', ICON_SIZE_SMALL).'</a> '; |
|
| 2323 | 2323 | } else { |
| 2324 | - $edit_actions .= '<a href="' . api_get_self() . '?' . api_get_cidreq(true, false) . '&category=' . $category_id . '&action=set_visible&id=' . $this_group['id'] . '" title="' . get_lang('Show') . '">' . |
|
| 2325 | - Display::return_icon('invisible.png', get_lang('Show'), '', ICON_SIZE_SMALL) . '</a> '; |
|
| 2324 | + $edit_actions .= '<a href="'.api_get_self().'?'.api_get_cidreq(true, false).'&category='.$category_id.'&action=set_visible&id='.$this_group['id'].'" title="'.get_lang('Show').'">'. |
|
| 2325 | + Display::return_icon('invisible.png', get_lang('Show'), '', ICON_SIZE_SMALL).'</a> '; |
|
| 2326 | 2326 | } |
| 2327 | 2327 | |
| 2328 | 2328 | $edit_actions .= '<a href="'.$url.'member_settings.php?'.api_get_cidreq(true, false).'&gidReq='.$this_group['id'].'" title="'.get_lang('GroupMembers').'">'. |
@@ -2335,10 +2335,10 @@ discard block |
||
| 2335 | 2335 | Display::return_icon('clean.png',get_lang('EmptyGroup'),'',ICON_SIZE_SMALL).'</a> ';*/ |
| 2336 | 2336 | |
| 2337 | 2337 | $edit_actions .= '<a href="'.api_get_self().'?'.api_get_cidreq(true, false).'&category='.$category_id.'&action=fill_one&id='.$this_group['id'].'" onclick="javascript: if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'), ENT_QUOTES))."'".')) return false;" title="'.get_lang('FillGroup').'">'. |
| 2338 | - Display::return_icon('fill.png',get_lang('FillGroup'),'',ICON_SIZE_SMALL).'</a> '; |
|
| 2338 | + Display::return_icon('fill.png', get_lang('FillGroup'), '', ICON_SIZE_SMALL).'</a> '; |
|
| 2339 | 2339 | |
| 2340 | 2340 | $edit_actions .= '<a href="'.api_get_self().'?'.api_get_cidreq(true, false).'&category='.$category_id.'&action=delete_one&id='.$this_group['id'].'" onclick="javascript: if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'), ENT_QUOTES))."'".')) return false;" title="'.get_lang('Delete').'">'. |
| 2341 | - Display::return_icon('delete.png', get_lang('Delete'),'',ICON_SIZE_SMALL).'</a> '; |
|
| 2341 | + Display::return_icon('delete.png', get_lang('Delete'), '', ICON_SIZE_SMALL).'</a> '; |
|
| 2342 | 2342 | |
| 2343 | 2343 | $row[] = $edit_actions; |
| 2344 | 2344 | } |
@@ -2710,7 +2710,7 @@ discard block |
||
| 2710 | 2710 | $activeTutor = null; |
| 2711 | 2711 | $activeMember = null; |
| 2712 | 2712 | |
| 2713 | - switch($default) { |
|
| 2713 | + switch ($default) { |
|
| 2714 | 2714 | case 'settings': |
| 2715 | 2715 | $activeSettings = 'active'; |
| 2716 | 2716 | break; |
@@ -138,7 +138,7 @@ |
||
| 138 | 138 | |
| 139 | 139 | /** |
| 140 | 140 | * Return a list an associative array where keys are the active hook observer class name |
| 141 | - * @param $eventName |
|
| 141 | + * @param string $eventName |
|
| 142 | 142 | * |
| 143 | 143 | * @return array |
| 144 | 144 | */ |
@@ -1,9 +1,9 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | /* For licensing terms, see /license.txt */ |
| 3 | 3 | /** |
| 4 | - * @TODO: Improve description |
|
| 5 | - * @package chamilo.hookmanagement |
|
| 6 | - */ |
|
| 4 | + * @TODO: Improve description |
|
| 5 | + * @package chamilo.hookmanagement |
|
| 6 | + */ |
|
| 7 | 7 | class HookManagement implements HookManagementInterface |
| 8 | 8 | { |
| 9 | 9 | /** |
@@ -145,10 +145,10 @@ discard block |
||
| 145 | 145 | public function listHookObservers($eventName) |
| 146 | 146 | { |
| 147 | 147 | $array = array(); |
| 148 | - $joinTable = $this->tables[TABLE_HOOK_CALL] . ' hc' . |
|
| 149 | - ' INNER JOIN ' . $this->tables[TABLE_HOOK_EVENT] . ' he' . |
|
| 150 | - ' ON hc.hook_event_id = he.id ' . |
|
| 151 | - ' INNER JOIN ' . $this->tables[TABLE_HOOK_OBSERVER] . ' ho ' . |
|
| 148 | + $joinTable = $this->tables[TABLE_HOOK_CALL].' hc'. |
|
| 149 | + ' INNER JOIN '.$this->tables[TABLE_HOOK_EVENT].' he'. |
|
| 150 | + ' ON hc.hook_event_id = he.id '. |
|
| 151 | + ' INNER JOIN '.$this->tables[TABLE_HOOK_OBSERVER].' ho '. |
|
| 152 | 152 | ' ON hc.hook_observer_id = ho.id '; |
| 153 | 153 | $columns = 'ho.class_name, ho.path, ho.plugin_name, hc.enabled'; |
| 154 | 154 | $where = array('where' => array('he.class_name = ? ' => $eventName, 'AND hc.enabled = ? ' => 1)); |
@@ -202,10 +202,10 @@ discard block |
||
| 202 | 202 | public function listAllHookCalls() |
| 203 | 203 | { |
| 204 | 204 | $array = array(); |
| 205 | - $joinTable = $this->tables[TABLE_HOOK_CALL] . ' hc' . |
|
| 206 | - ' INNER JOIN ' . $this->tables[TABLE_HOOK_EVENT] . ' he' . |
|
| 207 | - ' ON hc.hook_event_id = he.id ' . |
|
| 208 | - ' INNER JOIN ' . $this->tables[TABLE_HOOK_OBSERVER] . ' ho ' . |
|
| 205 | + $joinTable = $this->tables[TABLE_HOOK_CALL].' hc'. |
|
| 206 | + ' INNER JOIN '.$this->tables[TABLE_HOOK_EVENT].' he'. |
|
| 207 | + ' ON hc.hook_event_id = he.id '. |
|
| 208 | + ' INNER JOIN '.$this->tables[TABLE_HOOK_OBSERVER].' ho '. |
|
| 209 | 209 | ' ON hc.hook_observer_id = ho.id '; |
| 210 | 210 | $columns = 'he.class_name AS event_class_name, ho.class_name AS observer_class_name, hc.id AS id, hc.type AS type'; |
| 211 | 211 | $rows = Database::select($columns, $joinTable); |
@@ -231,7 +231,7 @@ discard block |
||
| 231 | 231 | if (isset($eventName) && !isset($this->hookEvents[$eventName])) { |
| 232 | 232 | $attributes = array( |
| 233 | 233 | 'class_name' => $eventName, |
| 234 | - 'description' => get_lang('HookDescription' . $eventName), |
|
| 234 | + 'description' => get_lang('HookDescription'.$eventName), |
|
| 235 | 235 | ); |
| 236 | 236 | $id = Database::insert($this->tables[TABLE_HOOK_EVENT], $attributes); |
| 237 | 237 | $this->hookEvents[$eventName] = $id; |
@@ -240,7 +240,7 @@ discard block |
||
| 240 | 240 | // Check if exists hook observer |
| 241 | 241 | if (isset($observerClassName) && |
| 242 | 242 | !isset($this->hookObservers[$observerClassName]) |
| 243 | - ){ |
|
| 243 | + ) { |
|
| 244 | 244 | $object = $observerClassName::create(); |
| 245 | 245 | $attributes = array( |
| 246 | 246 | 'class_name' => $observerClassName, |
@@ -338,10 +338,10 @@ discard block |
||
| 338 | 338 | $eventName = Database::escape_string($eventName); |
| 339 | 339 | $observerClassName($observerClassName); |
| 340 | 340 | $type = Database::escape_string($type); |
| 341 | - $joinTable = $this->tables[TABLE_HOOK_CALL] . ' hc' . |
|
| 342 | - ' INNER JOIN ' . $this->tables[TABLE_HOOK_EVENT] . ' he' . |
|
| 343 | - ' ON hc.hook_event_id = he.id ' . |
|
| 344 | - ' INNER JOIN ' . $this->tables[TABLE_HOOK_OBSERVER] . ' ho ' . |
|
| 341 | + $joinTable = $this->tables[TABLE_HOOK_CALL].' hc'. |
|
| 342 | + ' INNER JOIN '.$this->tables[TABLE_HOOK_EVENT].' he'. |
|
| 343 | + ' ON hc.hook_event_id = he.id '. |
|
| 344 | + ' INNER JOIN '.$this->tables[TABLE_HOOK_OBSERVER].' ho '. |
|
| 345 | 345 | ' ON hc.hook_observer_id = ho.id '; |
| 346 | 346 | $row = Database::select( |
| 347 | 347 | 'id', |
@@ -137,7 +137,7 @@ discard block |
||
| 137 | 137 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 138 | 138 | * @since 2.4.8 - 2008-10-21 |
| 139 | 139 | * @param string $value |
| 140 | - * @return void |
|
| 140 | + * @return false|null |
|
| 141 | 141 | */ |
| 142 | 142 | function setCalscale( $value ) { |
| 143 | 143 | if( empty( $value )) return FALSE; |
@@ -273,7 +273,7 @@ discard block |
||
| 273 | 273 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 274 | 274 | * @since 2.4.8 - 2008-10-23 |
| 275 | 275 | * @param string $value |
| 276 | - * @return void |
|
| 276 | + * @return boolean |
|
| 277 | 277 | */ |
| 278 | 278 | function setVersion( $value ) { |
| 279 | 279 | if( empty( $value )) return FALSE; |
@@ -397,7 +397,7 @@ discard block |
||
| 397 | 397 | * @since 2.5.1 - 2008-11-02 |
| 398 | 398 | * @param string $propName, optional |
| 399 | 399 | * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
| 400 | - * @param bool $inclParam=FALSE |
|
| 400 | + * @param bool $inclParam |
|
| 401 | 401 | * @return mixed |
| 402 | 402 | */ |
| 403 | 403 | function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE ) { |
@@ -448,9 +448,6 @@ discard block |
||
| 448 | 448 | * |
| 449 | 449 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 450 | 450 | * @since 2.2.13 - 2007-11-04 |
| 451 | - * @param mixed $args variable number of function arguments, |
|
| 452 | - * first argument is ALWAYS component name, |
|
| 453 | - * second ALWAYS component value! |
|
| 454 | 451 | * @return bool |
| 455 | 452 | */ |
| 456 | 453 | function setProperty () { |
@@ -480,7 +477,7 @@ discard block |
||
| 480 | 477 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 481 | 478 | * @since 2.4.10 - 2008-10-23 |
| 482 | 479 | * @param string $config |
| 483 | - * @return value |
|
| 480 | + * @return string |
|
| 484 | 481 | */ |
| 485 | 482 | function getConfig( $config ) { |
| 486 | 483 | switch( strtoupper( $config )) { |
@@ -701,7 +698,7 @@ discard block |
||
| 701 | 698 | * @since 2.4.10 - 2008-08-05 |
| 702 | 699 | * @param mixed $arg1 ordno / component type / component uid |
| 703 | 700 | * @param mixed $arg2 optional, ordno if arg1 = component type |
| 704 | - * @return void |
|
| 701 | + * @return boolean |
|
| 705 | 702 | */ |
| 706 | 703 | function deleteComponent( $arg1, $arg2=FALSE ) { |
| 707 | 704 | $argType = $index = null; |
@@ -1060,7 +1057,7 @@ discard block |
||
| 1060 | 1057 | * @param object $component calendar component |
| 1061 | 1058 | * @param mixed $arg1 optional, ordno/component type/ component uid |
| 1062 | 1059 | * @param mixed $arg2 optional, ordno if arg1 = component type |
| 1063 | - * @return void |
|
| 1060 | + * @return boolean |
|
| 1064 | 1061 | */ |
| 1065 | 1062 | function setComponent( $component, $arg1=FALSE, $arg2=FALSE ) { |
| 1066 | 1063 | if( '' >= $component->getConfig( 'language')) |
@@ -2309,7 +2306,7 @@ discard block |
||
| 2309 | 2306 | * @param int $min optional |
| 2310 | 2307 | * @param int $sec optional |
| 2311 | 2308 | * @param array $params optional |
| 2312 | - * @return TRUE |
|
| 2309 | + * @return boolean |
|
| 2313 | 2310 | */ |
| 2314 | 2311 | function setDtstamp( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
| 2315 | 2312 | if( empty( $year )) |
@@ -2792,7 +2789,7 @@ discard block |
||
| 2792 | 2789 | * @param int $min optional |
| 2793 | 2790 | * @param int $sec optional |
| 2794 | 2791 | * @param array $params optional |
| 2795 | - * @return boll |
|
| 2792 | + * @return boolean |
|
| 2796 | 2793 | */ |
| 2797 | 2794 | function setLastModified( $year=FALSE, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
| 2798 | 2795 | if( empty( $year )) |
@@ -3213,7 +3210,6 @@ discard block |
||
| 3213 | 3210 | * |
| 3214 | 3211 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 3215 | 3212 | * @since 2.5.1 - 2008-11-07 |
| 3216 | - * @param float $relid |
|
| 3217 | 3213 | * @param array $params, optional |
| 3218 | 3214 | * @param index $index, optional |
| 3219 | 3215 | * @return bool |
@@ -3251,7 +3247,7 @@ discard block |
||
| 3251 | 3247 | * @since 2.4.8 - 2008-11-04 |
| 3252 | 3248 | * @param string $value |
| 3253 | 3249 | * @param array $params optional |
| 3254 | - * @return void |
|
| 3250 | + * @return boolean |
|
| 3255 | 3251 | */ |
| 3256 | 3252 | function setRepeat( $value, $params=FALSE ) { |
| 3257 | 3253 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
@@ -3374,7 +3370,7 @@ discard block |
||
| 3374 | 3370 | * @param array $rruleset |
| 3375 | 3371 | * @param array $params, optional |
| 3376 | 3372 | * @param integer $index, optional |
| 3377 | - * @return void |
|
| 3373 | + * @return boolean |
|
| 3378 | 3374 | */ |
| 3379 | 3375 | function setRrule( $rruleset, $params=FALSE, $index=FALSE ) { |
| 3380 | 3376 | if( empty( $rruleset )) if( $this->getConfig( 'allowEmpty' )) $rruleset = null; else return FALSE; |
@@ -3800,7 +3796,7 @@ discard block |
||
| 3800 | 3796 | * @since 2.4.8 - 2008-11-04 |
| 3801 | 3797 | * @param string $value |
| 3802 | 3798 | * @param string $params optional |
| 3803 | - * @return boll |
|
| 3799 | + * @return boolean |
|
| 3804 | 3800 | */ |
| 3805 | 3801 | function setTzurl( $value, $params=FALSE ) { |
| 3806 | 3802 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
@@ -3929,7 +3925,7 @@ discard block |
||
| 3929 | 3925 | * @param string $label |
| 3930 | 3926 | * @param mixed $value |
| 3931 | 3927 | * @param array $params optional |
| 3932 | - * @return bool |
|
| 3928 | + * @return null|boolean |
|
| 3933 | 3929 | */ |
| 3934 | 3930 | function setXprop( $label, $value, $params=FALSE ) { |
| 3935 | 3931 | if( empty( $label )) return; |
@@ -4096,7 +4092,7 @@ discard block |
||
| 4096 | 4092 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 4097 | 4093 | * @since 0.9.22 - 2007-04-10 |
| 4098 | 4094 | * @param array $params optional |
| 4099 | - * @param array $ctrKeys optional |
|
| 4095 | + * @param string[] $ctrKeys optional |
|
| 4100 | 4096 | * @return string |
| 4101 | 4097 | */ |
| 4102 | 4098 | function _createParams( $params=array(), $ctrKeys=array() ) { |
@@ -4138,7 +4134,6 @@ discard block |
||
| 4138 | 4134 | * |
| 4139 | 4135 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 4140 | 4136 | * @since 2.4.16 - 2008-10-25 |
| 4141 | - * @param array $date, date to check |
|
| 4142 | 4137 | * @param int $parno, no of date parts (i.e. year, month.. .) |
| 4143 | 4138 | * @return array $params, property parameters |
| 4144 | 4139 | */ |
@@ -4194,7 +4189,6 @@ discard block |
||
| 4194 | 4189 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 4195 | 4190 | * @since 2.2.11 - 2007-11-03 |
| 4196 | 4191 | * @param array $startdate, optional |
| 4197 | - * @param array $duration, optional |
|
| 4198 | 4192 | * @return array duration |
| 4199 | 4193 | */ |
| 4200 | 4194 | function _date2duration( $startdate=FALSE, $enddate=FALSE ) { |
@@ -4228,7 +4222,7 @@ discard block |
||
| 4228 | 4222 | * @since 2.4.8 - 2008-10-30 |
| 4229 | 4223 | * @param array $datetime datetime/(date) |
| 4230 | 4224 | * @param string $tz timezone |
| 4231 | - * @return timestamp |
|
| 4225 | + * @return integer |
|
| 4232 | 4226 | */ |
| 4233 | 4227 | function _date2timestamp( $datetime, $tz=null ) { |
| 4234 | 4228 | $output = null; |
@@ -4541,6 +4535,7 @@ discard block |
||
| 4541 | 4535 | * @param int $hitVal optional, return value if found |
| 4542 | 4536 | * @param int $elseVal optional, return value if not found |
| 4543 | 4537 | * @param int $preSet optional, return value if already preset |
| 4538 | + * @param string $expkey |
|
| 4544 | 4539 | * @return int |
| 4545 | 4540 | */ |
| 4546 | 4541 | function _existRem( &$array, $expkey, $expval=FALSE, $hitVal=null, $elseVal=null, $preSet=null ) { |
@@ -4650,7 +4645,7 @@ discard block |
||
| 4650 | 4645 | * |
| 4651 | 4646 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 4652 | 4647 | * @since 2.4.8 - 2008-10-22 |
| 4653 | - * @param array $recurlabel |
|
| 4648 | + * @param string $recurlabel |
|
| 4654 | 4649 | * @param array $recurdata |
| 4655 | 4650 | * @return string |
| 4656 | 4651 | */ |
@@ -5196,6 +5191,10 @@ discard block |
||
| 5196 | 5191 | else |
| 5197 | 5192 | return FALSE; |
| 5198 | 5193 | } |
| 5194 | + |
|
| 5195 | + /** |
|
| 5196 | + * @param integer $wkst |
|
| 5197 | + */ |
|
| 5199 | 5198 | function _recurIntervalIx( $freq, $date, $wkst ) { |
| 5200 | 5199 | /* create interval index */ |
| 5201 | 5200 | switch( $freq ) { |
@@ -5504,7 +5503,6 @@ discard block |
||
| 5504 | 5503 | * |
| 5505 | 5504 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 5506 | 5505 | * @since 2.4.16 - 2008-10-19 |
| 5507 | - * @param string $offset |
|
| 5508 | 5506 | * @return integer |
| 5509 | 5507 | */ |
| 5510 | 5508 | function _tz2offset( $tz ) { |
@@ -5966,8 +5964,8 @@ discard block |
||
| 5966 | 5964 | * @since 2.5.1 - 2008-11-02 |
| 5967 | 5965 | * @param string $propName, optional |
| 5968 | 5966 | * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
| 5969 | - * @param bool $inclParam=FALSE |
|
| 5970 | - * @param bool $specform=FALSE |
|
| 5967 | + * @param bool $inclParam |
|
| 5968 | + * @param bool $specform |
|
| 5971 | 5969 | * @return mixed |
| 5972 | 5970 | */ |
| 5973 | 5971 | function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE, $specform=FALSE ) { |
@@ -6160,9 +6158,6 @@ discard block |
||
| 6160 | 6158 | * |
| 6161 | 6159 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 6162 | 6160 | * @since 2.5.1 - 2008-11-05 |
| 6163 | - * @param mixed $args variable number of function arguments, |
|
| 6164 | - * first argument is ALWAYS component name, |
|
| 6165 | - * second ALWAYS component value! |
|
| 6166 | 6161 | * @return void |
| 6167 | 6162 | */ |
| 6168 | 6163 | function setProperty() { |
@@ -6276,7 +6271,7 @@ discard block |
||
| 6276 | 6271 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 6277 | 6272 | * @since 2.5.2 - 2008-10-23 |
| 6278 | 6273 | * @param mixed $unparsedtext, optional, strict rfc2445 formatted, single property string or array of property strings |
| 6279 | - * @return bool FALSE if error occurs during parsing |
|
| 6274 | + * @return boolean|null FALSE if error occurs during parsing |
|
| 6280 | 6275 | * |
| 6281 | 6276 | */ |
| 6282 | 6277 | function parse( $unparsedtext=null ) { |
@@ -6578,7 +6573,7 @@ discard block |
||
| 6578 | 6573 | * @since 2.5.1 - 2008-10-15 |
| 6579 | 6574 | * @param mixed $arg1 ordno / component type / component uid |
| 6580 | 6575 | * @param mixed $arg2 optional, ordno if arg1 = component type |
| 6581 | - * @return void |
|
| 6576 | + * @return boolean |
|
| 6582 | 6577 | */ |
| 6583 | 6578 | function deleteComponent( $arg1, $arg2=FALSE ) { |
| 6584 | 6579 | if( !isset( $this->components )) return FALSE; |
@@ -6781,7 +6776,7 @@ discard block |
||
| 6781 | 6776 | * |
| 6782 | 6777 | * @author Kjell-Inge Gustafsson <[email protected]> |
| 6783 | 6778 | * @since 2.2.8 - 2006-09-03 |
| 6784 | - * @param string $value |
|
| 6779 | + * @param string $string |
|
| 6785 | 6780 | * @return string |
| 6786 | 6781 | */ |
| 6787 | 6782 | function _size75( $string ) { |
@@ -1,28 +1,28 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | /*********************************************************************************/ |
| 3 | 3 | /** |
| 4 | - * iCalcreator class v2.6 |
|
| 5 | - * copyright (c) 2007-2008 Kjell-Inge Gustafsson kigkonsult |
|
| 6 | - * www.kigkonsult.se/iCalcreator/index.php |
|
| 7 | - * [email protected] |
|
| 8 | - * |
|
| 9 | - * Description: |
|
| 10 | - * This file is a PHP implementation of RFC 2445. |
|
| 11 | - * |
|
| 12 | - * This library is free software; you can redistribute it and/or |
|
| 13 | - * modify it under the terms of the GNU Lesser General Public |
|
| 14 | - * License as published by the Free Software Foundation; either |
|
| 15 | - * version 2.1 of the License, or (at your option) any later version. |
|
| 16 | - * |
|
| 17 | - * This library is distributed in the hope that it will be useful, |
|
| 18 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
| 19 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
| 20 | - * Lesser General Public License for more details. |
|
| 21 | - * |
|
| 22 | - * You should have received a copy of the GNU Lesser General Public |
|
| 23 | - * License along with this library; if not, write to the Free Software |
|
| 24 | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
| 25 | - */ |
|
| 4 | + * iCalcreator class v2.6 |
|
| 5 | + * copyright (c) 2007-2008 Kjell-Inge Gustafsson kigkonsult |
|
| 6 | + * www.kigkonsult.se/iCalcreator/index.php |
|
| 7 | + * [email protected] |
|
| 8 | + * |
|
| 9 | + * Description: |
|
| 10 | + * This file is a PHP implementation of RFC 2445. |
|
| 11 | + * |
|
| 12 | + * This library is free software; you can redistribute it and/or |
|
| 13 | + * modify it under the terms of the GNU Lesser General Public |
|
| 14 | + * License as published by the Free Software Foundation; either |
|
| 15 | + * version 2.1 of the License, or (at your option) any later version. |
|
| 16 | + * |
|
| 17 | + * This library is distributed in the hope that it will be useful, |
|
| 18 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
| 19 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
| 20 | + * Lesser General Public License for more details. |
|
| 21 | + * |
|
| 22 | + * You should have received a copy of the GNU Lesser General Public |
|
| 23 | + * License along with this library; if not, write to the Free Software |
|
| 24 | + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
| 25 | + */ |
|
| 26 | 26 | /*********************************************************************************/ |
| 27 | 27 | /*********************************************************************************/ |
| 28 | 28 | /* A little setup */ |
@@ -45,41 +45,41 @@ discard block |
||
| 45 | 45 | */ |
| 46 | 46 | /* only for phpversion 5.x, date management, default timezone setting */ |
| 47 | 47 | if( substr( phpversion(), 0, 1) >= '5' ) // && ( 'UTC' == date_default_timezone_get() )) { |
| 48 | - date_default_timezone_set( 'Europe/Stockholm' ); |
|
| 48 | + date_default_timezone_set( 'Europe/Stockholm' ); |
|
| 49 | 49 | /* version string, do NOT remove!! */ |
| 50 | 50 | define( 'ICALCREATOR_VERSION', 'iCalcreator 2.6' ); |
| 51 | 51 | /*********************************************************************************/ |
| 52 | 52 | /*********************************************************************************/ |
| 53 | 53 | /** |
| 54 | - * vcalendar class |
|
| 55 | - * |
|
| 56 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 57 | - * @since 2.2.13 - 2007-12-30 |
|
| 58 | - */ |
|
| 54 | + * vcalendar class |
|
| 55 | + * |
|
| 56 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 57 | + * @since 2.2.13 - 2007-12-30 |
|
| 58 | + */ |
|
| 59 | 59 | class vcalendar { |
| 60 | 60 | // calendar property variables |
| 61 | - var $calscale; |
|
| 62 | - var $method; |
|
| 63 | - var $prodid; |
|
| 64 | - var $version; |
|
| 65 | - var $xprop; |
|
| 61 | + var $calscale; |
|
| 62 | + var $method; |
|
| 63 | + var $prodid; |
|
| 64 | + var $version; |
|
| 65 | + var $xprop; |
|
| 66 | 66 | // container for calendar components |
| 67 | - var $components; |
|
| 67 | + var $components; |
|
| 68 | 68 | // component config variables |
| 69 | - var $allowEmpty; |
|
| 70 | - var $unique_id; |
|
| 71 | - var $language; |
|
| 72 | - var $directory; |
|
| 73 | - var $filename; |
|
| 74 | - var $url; |
|
| 75 | - var $delimiter; |
|
| 76 | - var $nl; |
|
| 77 | - var $format; |
|
| 69 | + var $allowEmpty; |
|
| 70 | + var $unique_id; |
|
| 71 | + var $language; |
|
| 72 | + var $directory; |
|
| 73 | + var $filename; |
|
| 74 | + var $url; |
|
| 75 | + var $delimiter; |
|
| 76 | + var $nl; |
|
| 77 | + var $format; |
|
| 78 | 78 | // component internal variables |
| 79 | - var $attributeDelimiter; |
|
| 80 | - var $valueInit; |
|
| 79 | + var $attributeDelimiter; |
|
| 80 | + var $valueInit; |
|
| 81 | 81 | // component xCal declaration container |
| 82 | - var $xcaldecl; |
|
| 82 | + var $xcaldecl; |
|
| 83 | 83 | /* |
| 84 | 84 | * constructor for calendar object |
| 85 | 85 | * |
@@ -87,7 +87,7 @@ discard block |
||
| 87 | 87 | * @since 2.2.13 - 2007-12-30 |
| 88 | 88 | * @return void |
| 89 | 89 | */ |
| 90 | - function vcalendar () { |
|
| 90 | + function vcalendar () { |
|
| 91 | 91 | $this->_makeVersion(); |
| 92 | 92 | $this->calscale = null; |
| 93 | 93 | $this->method = null; |
@@ -95,10 +95,10 @@ discard block |
||
| 95 | 95 | $this->prodid = null; |
| 96 | 96 | $this->xprop = array(); |
| 97 | 97 | /** |
| 98 | - * language = <Text identifying a language, as defined in [RFC 1766]> |
|
| 99 | - */ |
|
| 98 | + * language = <Text identifying a language, as defined in [RFC 1766]> |
|
| 99 | + */ |
|
| 100 | 100 | if( defined( 'ICAL_LANG' )) |
| 101 | - $this->setConfig( 'language', ICAL_LANG ); |
|
| 101 | + $this->setConfig( 'language', ICAL_LANG ); |
|
| 102 | 102 | $this->setConfig( 'allowEmpty', TRUE ); |
| 103 | 103 | $this->setConfig( 'nl', "\n" ); |
| 104 | 104 | $this->setConfig( 'format', 'iCal'); |
@@ -108,227 +108,226 @@ discard block |
||
| 108 | 108 | $this->setConfig( 'delimiter', DIRECTORY_SEPARATOR ); |
| 109 | 109 | $this->xcaldecl = array(); |
| 110 | 110 | $this->components = array(); |
| 111 | - } |
|
| 111 | + } |
|
| 112 | 112 | /*********************************************************************************/ |
| 113 | 113 | /** |
| 114 | - * Property Name: CALSCALE |
|
| 115 | - */ |
|
| 114 | + * Property Name: CALSCALE |
|
| 115 | + */ |
|
| 116 | 116 | /** |
| 117 | - * creates formatted output for calendar property calscale |
|
| 118 | - * |
|
| 119 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 120 | - * @since 2.4.8 - 2008-10-21 |
|
| 121 | - * @return string |
|
| 122 | - */ |
|
| 123 | - function createCalscale() { |
|
| 117 | + * creates formatted output for calendar property calscale |
|
| 118 | + * |
|
| 119 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 120 | + * @since 2.4.8 - 2008-10-21 |
|
| 121 | + * @return string |
|
| 122 | + */ |
|
| 123 | + function createCalscale() { |
|
| 124 | 124 | if( empty( $this->calscale )) return FALSE; |
| 125 | 125 | switch( $this->format ) { |
| 126 | - case 'xcal': |
|
| 126 | + case 'xcal': |
|
| 127 | 127 | return ' calscale="'.$this->calscale.'"'.$this->nl; |
| 128 | 128 | break; |
| 129 | - default: |
|
| 129 | + default: |
|
| 130 | 130 | return 'CALSCALE:'.$this->calscale.$this->nl; |
| 131 | 131 | break; |
| 132 | 132 | } |
| 133 | - } |
|
| 133 | + } |
|
| 134 | 134 | /** |
| 135 | - * set calendar property calscale |
|
| 136 | - * |
|
| 137 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 138 | - * @since 2.4.8 - 2008-10-21 |
|
| 139 | - * @param string $value |
|
| 140 | - * @return void |
|
| 141 | - */ |
|
| 142 | - function setCalscale( $value ) { |
|
| 135 | + * set calendar property calscale |
|
| 136 | + * |
|
| 137 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 138 | + * @since 2.4.8 - 2008-10-21 |
|
| 139 | + * @param string $value |
|
| 140 | + * @return void |
|
| 141 | + */ |
|
| 142 | + function setCalscale( $value ) { |
|
| 143 | 143 | if( empty( $value )) return FALSE; |
| 144 | 144 | $this->calscale = $value; |
| 145 | - } |
|
| 145 | + } |
|
| 146 | 146 | /*********************************************************************************/ |
| 147 | 147 | /** |
| 148 | - * Property Name: METHOD |
|
| 149 | - */ |
|
| 148 | + * Property Name: METHOD |
|
| 149 | + */ |
|
| 150 | 150 | /** |
| 151 | - * creates formatted output for calendar property method |
|
| 152 | - * |
|
| 153 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 154 | - * @since 0.9.7 - 2006-11-20 |
|
| 155 | - * @return string |
|
| 156 | - */ |
|
| 157 | - function createMethod() { |
|
| 151 | + * creates formatted output for calendar property method |
|
| 152 | + * |
|
| 153 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 154 | + * @since 0.9.7 - 2006-11-20 |
|
| 155 | + * @return string |
|
| 156 | + */ |
|
| 157 | + function createMethod() { |
|
| 158 | 158 | if( empty( $this->method )) return FALSE; |
| 159 | 159 | switch( $this->format ) { |
| 160 | - case 'xcal': |
|
| 160 | + case 'xcal': |
|
| 161 | 161 | return ' method="'.$this->method.'"'.$this->nl; |
| 162 | 162 | break; |
| 163 | - default: |
|
| 163 | + default: |
|
| 164 | 164 | return 'METHOD:'.$this->method.$this->nl; |
| 165 | 165 | break; |
| 166 | 166 | } |
| 167 | - } |
|
| 167 | + } |
|
| 168 | 168 | /** |
| 169 | - * set calendar property method |
|
| 170 | - * |
|
| 171 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 172 | - * @since 2.4.8 - 2008-20-23 |
|
| 173 | - * @param string $value |
|
| 174 | - * @return bool |
|
| 175 | - */ |
|
| 176 | - function setMethod( $value ) { |
|
| 169 | + * set calendar property method |
|
| 170 | + * |
|
| 171 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 172 | + * @since 2.4.8 - 2008-20-23 |
|
| 173 | + * @param string $value |
|
| 174 | + * @return bool |
|
| 175 | + */ |
|
| 176 | + function setMethod( $value ) { |
|
| 177 | 177 | if( empty( $value )) return FALSE; |
| 178 | 178 | $this->method = $value; |
| 179 | 179 | return TRUE; |
| 180 | - } |
|
| 180 | + } |
|
| 181 | 181 | /*********************************************************************************/ |
| 182 | 182 | /** |
| 183 | - * Property Name: PRODID |
|
| 184 | - * |
|
| 185 | - * The identifier is RECOMMENDED to be the identical syntax to the |
|
| 186 | - * [RFC 822] addr-spec. A good method to assure uniqueness is to put the |
|
| 187 | - * domain name or a domain literal IP address of the host on which.. . |
|
| 188 | - */ |
|
| 189 | -/** |
|
| 190 | - * creates formatted output for calendar property prodid |
|
| 191 | - * |
|
| 192 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 193 | - * @since 0.9.7 - 2006-11-20 |
|
| 194 | - * @return string |
|
| 195 | - */ |
|
| 196 | - function createProdid() { |
|
| 183 | + * Property Name: PRODID |
|
| 184 | + * |
|
| 185 | + * The identifier is RECOMMENDED to be the identical syntax to the |
|
| 186 | + * [RFC 822] addr-spec. A good method to assure uniqueness is to put the |
|
| 187 | + * domain name or a domain literal IP address of the host on which.. . |
|
| 188 | + */ |
|
| 189 | +/** |
|
| 190 | + * creates formatted output for calendar property prodid |
|
| 191 | + * |
|
| 192 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 193 | + * @since 0.9.7 - 2006-11-20 |
|
| 194 | + * @return string |
|
| 195 | + */ |
|
| 196 | + function createProdid() { |
|
| 197 | 197 | if( !isset( $this->prodid )) |
| 198 | - $this->_makeProdid(); |
|
| 198 | + $this->_makeProdid(); |
|
| 199 | 199 | switch( $this->format ) { |
| 200 | - case 'xcal': |
|
| 200 | + case 'xcal': |
|
| 201 | 201 | return ' prodid="'.$this->prodid.'"'.$this->nl; |
| 202 | 202 | break; |
| 203 | - default: |
|
| 203 | + default: |
|
| 204 | 204 | return 'PRODID:'.$this->prodid.$this->nl; |
| 205 | 205 | break; |
| 206 | 206 | } |
| 207 | - } |
|
| 207 | + } |
|
| 208 | 208 | /** |
| 209 | - * make default value for calendar prodid |
|
| 210 | - * |
|
| 211 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 212 | - * @since 0.3.0 - 2006-08-10 |
|
| 213 | - * @return void |
|
| 214 | - */ |
|
| 215 | - function _makeProdid() { |
|
| 209 | + * make default value for calendar prodid |
|
| 210 | + * |
|
| 211 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 212 | + * @since 0.3.0 - 2006-08-10 |
|
| 213 | + * @return void |
|
| 214 | + */ |
|
| 215 | + function _makeProdid() { |
|
| 216 | 216 | $this->prodid = '-//'.$this->unique_id.'//NONSGML '.ICALCREATOR_VERSION.'//'.strtoupper( $this->language ); |
| 217 | - } |
|
| 217 | + } |
|
| 218 | 218 | /** |
| 219 | - * Conformance: The property MUST be specified once in an iCalendar object. |
|
| 220 | - * Description: The vendor of the implementation SHOULD assure that this |
|
| 221 | - * is a globally unique identifier; using some technique such as an FPI |
|
| 222 | - * value, as defined in [ISO 9070]. |
|
| 223 | - */ |
|
| 219 | + * Conformance: The property MUST be specified once in an iCalendar object. |
|
| 220 | + * Description: The vendor of the implementation SHOULD assure that this |
|
| 221 | + * is a globally unique identifier; using some technique such as an FPI |
|
| 222 | + * value, as defined in [ISO 9070]. |
|
| 223 | + */ |
|
| 224 | 224 | /** |
| 225 | - * make default unique_id for calendar prodid |
|
| 226 | - * |
|
| 227 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 228 | - * @since 0.3.0 - 2006-08-10 |
|
| 229 | - * @return void |
|
| 230 | - */ |
|
| 231 | - function _makeUnique_id() { |
|
| 225 | + * make default unique_id for calendar prodid |
|
| 226 | + * |
|
| 227 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 228 | + * @since 0.3.0 - 2006-08-10 |
|
| 229 | + * @return void |
|
| 230 | + */ |
|
| 231 | + function _makeUnique_id() { |
|
| 232 | 232 | $this->unique_id = ( isset( $_SERVER['SERVER_NAME'] )) ? gethostbyname( $_SERVER['SERVER_NAME'] ) : 'localhost'; |
| 233 | - } |
|
| 233 | + } |
|
| 234 | 234 | /*********************************************************************************/ |
| 235 | 235 | /** |
| 236 | - * Property Name: VERSION |
|
| 237 | - * |
|
| 238 | - * Description: A value of "2.0" corresponds to this memo. |
|
| 239 | - */ |
|
| 240 | -/** |
|
| 241 | - * creates formatted output for calendar property version |
|
| 242 | - |
|
| 243 | - * |
|
| 244 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 245 | - * @since 0.9.7 - 2006-11-20 |
|
| 246 | - * @return string |
|
| 247 | - */ |
|
| 248 | - function createVersion() { |
|
| 236 | + * Property Name: VERSION |
|
| 237 | + * |
|
| 238 | + * Description: A value of "2.0" corresponds to this memo. |
|
| 239 | + */ |
|
| 240 | +/** |
|
| 241 | + * creates formatted output for calendar property version |
|
| 242 | + * |
|
| 243 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 244 | + * @since 0.9.7 - 2006-11-20 |
|
| 245 | + * @return string |
|
| 246 | + */ |
|
| 247 | + function createVersion() { |
|
| 249 | 248 | if( empty( $this->version )) |
| 250 | - $this->_makeVersion(); |
|
| 249 | + $this->_makeVersion(); |
|
| 251 | 250 | switch( $this->format ) { |
| 252 | - case 'xcal': |
|
| 251 | + case 'xcal': |
|
| 253 | 252 | return ' version="'.$this->version.'"'.$this->nl; |
| 254 | 253 | break; |
| 255 | - default: |
|
| 254 | + default: |
|
| 256 | 255 | return 'VERSION:'.$this->version.$this->nl; |
| 257 | 256 | break; |
| 258 | 257 | } |
| 259 | - } |
|
| 258 | + } |
|
| 260 | 259 | /** |
| 261 | - * set default calendar version |
|
| 262 | - * |
|
| 263 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 264 | - * @since 0.3.0 - 2006-08-10 |
|
| 265 | - * @return void |
|
| 266 | - */ |
|
| 267 | - function _makeVersion() { |
|
| 260 | + * set default calendar version |
|
| 261 | + * |
|
| 262 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 263 | + * @since 0.3.0 - 2006-08-10 |
|
| 264 | + * @return void |
|
| 265 | + */ |
|
| 266 | + function _makeVersion() { |
|
| 268 | 267 | $this->version = '2.0'; |
| 269 | - } |
|
| 268 | + } |
|
| 270 | 269 | /** |
| 271 | - * set calendar version |
|
| 272 | - * |
|
| 273 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 274 | - * @since 2.4.8 - 2008-10-23 |
|
| 275 | - * @param string $value |
|
| 276 | - * @return void |
|
| 277 | - */ |
|
| 278 | - function setVersion( $value ) { |
|
| 270 | + * set calendar version |
|
| 271 | + * |
|
| 272 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 273 | + * @since 2.4.8 - 2008-10-23 |
|
| 274 | + * @param string $value |
|
| 275 | + * @return void |
|
| 276 | + */ |
|
| 277 | + function setVersion( $value ) { |
|
| 279 | 278 | if( empty( $value )) return FALSE; |
| 280 | 279 | $this->version = $value; |
| 281 | 280 | return TRUE; |
| 282 | - } |
|
| 281 | + } |
|
| 283 | 282 | /*********************************************************************************/ |
| 284 | 283 | /** |
| 285 | - * Property Name: x-prop |
|
| 286 | - */ |
|
| 284 | + * Property Name: x-prop |
|
| 285 | + */ |
|
| 287 | 286 | /** |
| 288 | - * creates formatted output for calendar property x-prop, iCal format only |
|
| 289 | - * |
|
| 290 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 291 | - * @since 2.4.11 - 2008-11-03 |
|
| 292 | - * @return string |
|
| 293 | - */ |
|
| 294 | - function createXprop() { |
|
| 287 | + * creates formatted output for calendar property x-prop, iCal format only |
|
| 288 | + * |
|
| 289 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 290 | + * @since 2.4.11 - 2008-11-03 |
|
| 291 | + * @return string |
|
| 292 | + */ |
|
| 293 | + function createXprop() { |
|
| 295 | 294 | if( 'xcal' == $this->format ) |
| 296 | - return false; |
|
| 295 | + return false; |
|
| 297 | 296 | if( 0 >= count( $this->xprop )) |
| 298 | - return; |
|
| 297 | + return; |
|
| 299 | 298 | $output = null; |
| 300 | 299 | $toolbox = new calendarComponent(); |
| 301 | 300 | $toolbox->setConfig( 'language', $this->getConfig( 'language' )); |
| 302 | 301 | $toolbox->setConfig( 'nl', $this->getConfig( 'nl' )); |
| 303 | 302 | $toolbox->_createFormat( $this->getConfig( 'format' )); |
| 304 | 303 | foreach( $this->xprop as $label => $xpropPart ) { |
| 305 | - if( empty( $xpropPart['value'] )) { |
|
| 304 | + if( empty( $xpropPart['value'] )) { |
|
| 306 | 305 | $output .= $toolbox->_createElement( $label ); |
| 307 | 306 | continue; |
| 308 | - } |
|
| 309 | - $attributes = $toolbox->_createParams( $xpropPart['params'], array( 'LANGUAGE' )); |
|
| 310 | - if( is_array( $xpropPart['value'] )) { |
|
| 307 | + } |
|
| 308 | + $attributes = $toolbox->_createParams( $xpropPart['params'], array( 'LANGUAGE' )); |
|
| 309 | + if( is_array( $xpropPart['value'] )) { |
|
| 311 | 310 | foreach( $xpropPart['value'] as $pix => $theXpart ) |
| 312 | - $xpropPart['value'][$pix] = $toolbox->_strrep( $theXpart ); |
|
| 311 | + $xpropPart['value'][$pix] = $toolbox->_strrep( $theXpart ); |
|
| 313 | 312 | $xpropPart['value'] = implode( ',', $xpropPart['value'] ); |
| 314 | - } |
|
| 315 | - else |
|
| 313 | + } |
|
| 314 | + else |
|
| 316 | 315 | $xpropPart['value'] = $toolbox->_strrep( $xpropPart['value'] ); |
| 317 | - $output .= $toolbox->_createElement( $label, $attributes, $xpropPart['value'] ); |
|
| 316 | + $output .= $toolbox->_createElement( $label, $attributes, $xpropPart['value'] ); |
|
| 318 | 317 | } |
| 319 | 318 | return $output; |
| 320 | - } |
|
| 319 | + } |
|
| 321 | 320 | /** |
| 322 | - * set calendar property x-prop |
|
| 323 | - * |
|
| 324 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 325 | - * @since 2.4.11 - 2008-11-04 |
|
| 326 | - * @param string $label |
|
| 327 | - * @param string $value |
|
| 328 | - * @param array $params optional |
|
| 329 | - * @return bool |
|
| 330 | - */ |
|
| 331 | - function setXprop( $label, $value, $params=FALSE ) { |
|
| 321 | + * set calendar property x-prop |
|
| 322 | + * |
|
| 323 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 324 | + * @since 2.4.11 - 2008-11-04 |
|
| 325 | + * @param string $label |
|
| 326 | + * @param string $value |
|
| 327 | + * @param array $params optional |
|
| 328 | + * @return bool |
|
| 329 | + */ |
|
| 330 | + function setXprop( $label, $value, $params=FALSE ) { |
|
| 332 | 331 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 333 | 332 | if( empty( $label )) return FALSE; |
| 334 | 333 | $xprop = array( 'value' => $value ); |
@@ -337,325 +336,325 @@ discard block |
||
| 337 | 336 | if( !is_array( $this->xprop )) $this->xprop = array(); |
| 338 | 337 | $this->xprop[strtoupper( $label )] = $xprop; |
| 339 | 338 | return TRUE; |
| 340 | - } |
|
| 339 | + } |
|
| 341 | 340 | /*********************************************************************************/ |
| 342 | 341 | /** |
| 343 | - * delete calendar property value |
|
| 344 | - * |
|
| 345 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 346 | - * @since 2.4.5 - 2008-11-14 |
|
| 347 | - * @param mixed $propName, bool FALSE => X-property |
|
| 348 | - * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
|
| 349 | - * @return bool, if successfull delete |
|
| 350 | - */ |
|
| 351 | - function deleteProperty( $propName, $propix=FALSE ) { |
|
| 342 | + * delete calendar property value |
|
| 343 | + * |
|
| 344 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 345 | + * @since 2.4.5 - 2008-11-14 |
|
| 346 | + * @param mixed $propName, bool FALSE => X-property |
|
| 347 | + * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
|
| 348 | + * @return bool, if successfull delete |
|
| 349 | + */ |
|
| 350 | + function deleteProperty( $propName, $propix=FALSE ) { |
|
| 352 | 351 | $propName = ( $propName ) ? strtoupper( $propName ) : 'X-PROP'; |
| 353 | 352 | if( !$propix ) |
| 354 | - $propix = ( isset( $this->propdelix[$propName] )) ? $this->propdelix[$propName] + 2 : 1; |
|
| 353 | + $propix = ( isset( $this->propdelix[$propName] )) ? $this->propdelix[$propName] + 2 : 1; |
|
| 355 | 354 | $this->propdelix[$propName] = --$propix; |
| 356 | 355 | $return = FALSE; |
| 357 | 356 | switch( $propName ) { |
| 358 | - case 'CALSCALE': |
|
| 357 | + case 'CALSCALE': |
|
| 359 | 358 | if( isset( $this->calscale )) { |
| 360 | - $this->calscale = null; |
|
| 361 | - $return = TRUE; |
|
| 359 | + $this->calscale = null; |
|
| 360 | + $return = TRUE; |
|
| 362 | 361 | } |
| 363 | 362 | break; |
| 364 | - case 'METHOD': |
|
| 363 | + case 'METHOD': |
|
| 365 | 364 | if( isset( $this->method )) { |
| 366 | - $this->method = null; |
|
| 367 | - $return = TRUE; |
|
| 365 | + $this->method = null; |
|
| 366 | + $return = TRUE; |
|
| 368 | 367 | } |
| 369 | 368 | break; |
| 370 | - default: |
|
| 369 | + default: |
|
| 371 | 370 | $reduced = array(); |
| 372 | 371 | if( $propName != 'X-PROP' ) { |
| 373 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 374 | - foreach( $this->xprop as $k => $a ) { |
|
| 372 | + if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 373 | + foreach( $this->xprop as $k => $a ) { |
|
| 375 | 374 | if(( $k != $propName ) && !empty( $a )) |
| 376 | - $reduced[$k] = $a; |
|
| 377 | - } |
|
| 375 | + $reduced[$k] = $a; |
|
| 376 | + } |
|
| 378 | 377 | } |
| 379 | 378 | else { |
| 380 | - if( count( $this->xprop ) <= $propix ) return FALSE; |
|
| 381 | - $xpropno = 0; |
|
| 382 | - foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 379 | + if( count( $this->xprop ) <= $propix ) return FALSE; |
|
| 380 | + $xpropno = 0; |
|
| 381 | + foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 383 | 382 | if( $propix != $xpropno ) |
| 384 | - $reduced[$xpropkey] = $xpropvalue; |
|
| 383 | + $reduced[$xpropkey] = $xpropvalue; |
|
| 385 | 384 | $xpropno++; |
| 386 | - } |
|
| 385 | + } |
|
| 387 | 386 | } |
| 388 | 387 | $this->xprop = $reduced; |
| 389 | 388 | return TRUE; |
| 390 | 389 | } |
| 391 | 390 | return $return; |
| 392 | - } |
|
| 391 | + } |
|
| 393 | 392 | /** |
| 394 | - * get calendar property value/params |
|
| 395 | - * |
|
| 396 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 397 | - * @since 2.5.1 - 2008-11-02 |
|
| 398 | - * @param string $propName, optional |
|
| 399 | - * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
|
| 400 | - * @param bool $inclParam=FALSE |
|
| 401 | - * @return mixed |
|
| 402 | - */ |
|
| 403 | - function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE ) { |
|
| 393 | + * get calendar property value/params |
|
| 394 | + * |
|
| 395 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 396 | + * @since 2.5.1 - 2008-11-02 |
|
| 397 | + * @param string $propName, optional |
|
| 398 | + * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
|
| 399 | + * @param bool $inclParam=FALSE |
|
| 400 | + * @return mixed |
|
| 401 | + */ |
|
| 402 | + function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE ) { |
|
| 404 | 403 | $propName = ( $propName ) ? strtoupper( $propName ) : 'X-PROP'; |
| 405 | 404 | if( 'X-PROP' == $propName ) { |
| 406 | - if( !$propix ) |
|
| 405 | + if( !$propix ) |
|
| 407 | 406 | $propix = ( isset( $this->propix[$propName] )) ? $this->propix[$propName] + 2 : 1; |
| 408 | - $this->propix[$propName] = --$propix; |
|
| 407 | + $this->propix[$propName] = --$propix; |
|
| 409 | 408 | } |
| 410 | 409 | switch( $propName ) { |
| 411 | - case 'CALSCALE': |
|
| 410 | + case 'CALSCALE': |
|
| 412 | 411 | return ( !empty( $this->calscale )) ? $this->calscale : null; |
| 413 | 412 | break; |
| 414 | - case 'METHOD': |
|
| 413 | + case 'METHOD': |
|
| 415 | 414 | return ( !empty( $this->method )) ? $this->method : null; |
| 416 | 415 | break; |
| 417 | - case 'PRODID': |
|
| 416 | + case 'PRODID': |
|
| 418 | 417 | if( empty( $this->prodid )) |
| 419 | - $this->_makeProdid(); |
|
| 418 | + $this->_makeProdid(); |
|
| 420 | 419 | return $this->prodid; |
| 421 | 420 | break; |
| 422 | - case 'VERSION': |
|
| 421 | + case 'VERSION': |
|
| 423 | 422 | return ( !empty( $this->version )) ? $this->version : null; |
| 424 | 423 | break; |
| 425 | - default: |
|
| 424 | + default: |
|
| 426 | 425 | if( $propName != 'X-PROP' ) { |
| 427 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 428 | - return ( $inclParam ) ? array( $propName, $this->xprop[$propName] ) |
|
| 426 | + if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 427 | + return ( $inclParam ) ? array( $propName, $this->xprop[$propName] ) |
|
| 429 | 428 | : array( $propName, $this->xprop[$propName]['value'] ); |
| 430 | 429 | } |
| 431 | 430 | else { |
| 432 | - if( empty( $this->xprop )) return FALSE; |
|
| 433 | - $xpropno = 0; |
|
| 434 | - foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 431 | + if( empty( $this->xprop )) return FALSE; |
|
| 432 | + $xpropno = 0; |
|
| 433 | + foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 435 | 434 | if( $propix == $xpropno ) |
| 436 | - return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 435 | + return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 437 | 436 | : array( $xpropkey, $this->xprop[$xpropkey]['value'] ); |
| 438 | 437 | else |
| 439 | - $xpropno++; |
|
| 440 | - } |
|
| 441 | - return FALSE; // not found ?? |
|
| 438 | + $xpropno++; |
|
| 439 | + } |
|
| 440 | + return FALSE; // not found ?? |
|
| 442 | 441 | } |
| 443 | 442 | } |
| 444 | 443 | return FALSE; |
| 445 | - } |
|
| 444 | + } |
|
| 446 | 445 | /** |
| 447 | - * general vcalendar property setting |
|
| 448 | - * |
|
| 449 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 450 | - * @since 2.2.13 - 2007-11-04 |
|
| 451 | - * @param mixed $args variable number of function arguments, |
|
| 452 | - * first argument is ALWAYS component name, |
|
| 453 | - * second ALWAYS component value! |
|
| 454 | - * @return bool |
|
| 455 | - */ |
|
| 456 | - function setProperty () { |
|
| 446 | + * general vcalendar property setting |
|
| 447 | + * |
|
| 448 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 449 | + * @since 2.2.13 - 2007-11-04 |
|
| 450 | + * @param mixed $args variable number of function arguments, |
|
| 451 | + * first argument is ALWAYS component name, |
|
| 452 | + * second ALWAYS component value! |
|
| 453 | + * @return bool |
|
| 454 | + */ |
|
| 455 | + function setProperty () { |
|
| 457 | 456 | $numargs = func_num_args(); |
| 458 | 457 | if( 1 > $numargs ) |
| 459 | - return FALSE; |
|
| 458 | + return FALSE; |
|
| 460 | 459 | $arglist = func_get_args(); |
| 461 | 460 | $arglist[0] = strtoupper( $arglist[0] ); |
| 462 | 461 | switch( $arglist[0] ) { |
| 463 | - case 'CALSCALE': |
|
| 462 | + case 'CALSCALE': |
|
| 464 | 463 | return $this->setCalscale( $arglist[1] ); |
| 465 | - case 'METHOD': |
|
| 464 | + case 'METHOD': |
|
| 466 | 465 | return $this->setMethod( $arglist[1] ); |
| 467 | - case 'VERSION': |
|
| 466 | + case 'VERSION': |
|
| 468 | 467 | return $this->setVersion( $arglist[1] ); |
| 469 | - default: |
|
| 468 | + default: |
|
| 470 | 469 | if( !isset( $arglist[1] )) $arglist[1] = null; |
| 471 | 470 | if( !isset( $arglist[2] )) $arglist[2] = null; |
| 472 | 471 | return $this->setXprop( $arglist[0], $arglist[1], $arglist[2] ); |
| 473 | 472 | } |
| 474 | 473 | return FALSE; |
| 475 | - } |
|
| 474 | + } |
|
| 476 | 475 | /*********************************************************************************/ |
| 477 | 476 | /** |
| 478 | - * get vcalendar config values or * calendar components |
|
| 479 | - * |
|
| 480 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 481 | - * @since 2.4.10 - 2008-10-23 |
|
| 482 | - * @param string $config |
|
| 483 | - * @return value |
|
| 484 | - */ |
|
| 485 | - function getConfig( $config ) { |
|
| 477 | + * get vcalendar config values or * calendar components |
|
| 478 | + * |
|
| 479 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 480 | + * @since 2.4.10 - 2008-10-23 |
|
| 481 | + * @param string $config |
|
| 482 | + * @return value |
|
| 483 | + */ |
|
| 484 | + function getConfig( $config ) { |
|
| 486 | 485 | switch( strtoupper( $config )) { |
| 487 | - case 'ALLOWEMPTY': |
|
| 486 | + case 'ALLOWEMPTY': |
|
| 488 | 487 | return $this->allowEmpty; |
| 489 | 488 | break; |
| 490 | - case 'COMPSINFO': |
|
| 489 | + case 'COMPSINFO': |
|
| 491 | 490 | unset( $this->compix ); |
| 492 | 491 | $info = array(); |
| 493 | 492 | foreach( $this->components as $cix => $component ) { |
| 494 | - if( empty( $component )) continue; |
|
| 495 | - unset( $component->propix ); |
|
| 496 | - $info[$cix]['ordno'] = $cix + 1; |
|
| 497 | - $info[$cix]['type'] = $component->objName; |
|
| 498 | - $info[$cix]['uid'] = $component->getProperty( 'uid' ); |
|
| 499 | - $info[$cix]['props'] = $component->getConfig( 'propinfo' ); |
|
| 500 | - $info[$cix]['sub'] = $component->getConfig( 'compsinfo' ); |
|
| 501 | - unset( $component->propix ); |
|
| 493 | + if( empty( $component )) continue; |
|
| 494 | + unset( $component->propix ); |
|
| 495 | + $info[$cix]['ordno'] = $cix + 1; |
|
| 496 | + $info[$cix]['type'] = $component->objName; |
|
| 497 | + $info[$cix]['uid'] = $component->getProperty( 'uid' ); |
|
| 498 | + $info[$cix]['props'] = $component->getConfig( 'propinfo' ); |
|
| 499 | + $info[$cix]['sub'] = $component->getConfig( 'compsinfo' ); |
|
| 500 | + unset( $component->propix ); |
|
| 502 | 501 | } |
| 503 | 502 | return $info; |
| 504 | 503 | break; |
| 505 | - case 'DELIMITER': |
|
| 504 | + case 'DELIMITER': |
|
| 506 | 505 | return $this->delimiter; |
| 507 | 506 | break; |
| 508 | - case 'DIRECTORY': |
|
| 507 | + case 'DIRECTORY': |
|
| 509 | 508 | if( empty( $this->directory )) |
| 510 | - $this->directory = '.'; |
|
| 509 | + $this->directory = '.'; |
|
| 511 | 510 | return $this->directory; |
| 512 | 511 | break; |
| 513 | - case 'DIRFILE': |
|
| 512 | + case 'DIRFILE': |
|
| 514 | 513 | return $this->getConfig( 'directory' ).$this->getConfig( 'delimiter' ).$this->getConfig( 'filename' ); |
| 515 | 514 | break; |
| 516 | - case 'FILEINFO': |
|
| 515 | + case 'FILEINFO': |
|
| 517 | 516 | return array( $this->getConfig( 'directory' ) |
| 518 | 517 | , $this->getConfig( 'filename' ) |
| 519 | 518 | , $this->getConfig( 'filesize' )); |
| 520 | 519 | break; |
| 521 | - case 'FILENAME': |
|
| 520 | + case 'FILENAME': |
|
| 522 | 521 | if( empty( $this->filename )) { |
| 523 | - if( 'xcal' == $this->format ) |
|
| 522 | + if( 'xcal' == $this->format ) |
|
| 524 | 523 | $this->filename = date( 'YmdHis' ).'.xml'; // recommended xcs.. . |
| 525 | - else |
|
| 524 | + else |
|
| 526 | 525 | $this->filename = date( 'YmdHis' ).'.ics'; |
| 527 | 526 | } |
| 528 | 527 | return $this->filename; |
| 529 | 528 | break; |
| 530 | - case 'FILESIZE': |
|
| 529 | + case 'FILESIZE': |
|
| 531 | 530 | $size = 0; |
| 532 | 531 | if( empty( $this->url )) { |
| 533 | - $dirfile = $this->getConfig( 'dirfile' ); |
|
| 534 | - if( FALSE === ( $size = filesize( $dirfile ))) |
|
| 532 | + $dirfile = $this->getConfig( 'dirfile' ); |
|
| 533 | + if( FALSE === ( $size = filesize( $dirfile ))) |
|
| 535 | 534 | $size = 0; |
| 536 | - clearstatcache(); |
|
| 535 | + clearstatcache(); |
|
| 537 | 536 | } |
| 538 | 537 | return $size; |
| 539 | 538 | break; |
| 540 | - case 'FORMAT': |
|
| 539 | + case 'FORMAT': |
|
| 541 | 540 | return $this->format; |
| 542 | 541 | break; |
| 543 | - case 'LANGUAGE': |
|
| 542 | + case 'LANGUAGE': |
|
| 544 | 543 | /* get language for calendar component as defined in [RFC 1766] */ |
| 545 | 544 | return $this->language; |
| 546 | 545 | break; |
| 547 | - case 'NL': |
|
| 546 | + case 'NL': |
|
| 548 | 547 | case 'NEWLINECHAR': |
| 549 | 548 | return $this->nl; |
| 550 | 549 | break; |
| 551 | - case 'UNIQUE_ID': |
|
| 550 | + case 'UNIQUE_ID': |
|
| 552 | 551 | return $this->unique_id; |
| 553 | 552 | break; |
| 554 | - case 'URL': |
|
| 553 | + case 'URL': |
|
| 555 | 554 | if( !empty( $this->url )) |
| 556 | - return $this->url; |
|
| 555 | + return $this->url; |
|
| 557 | 556 | else |
| 558 | - return FALSE; |
|
| 557 | + return FALSE; |
|
| 559 | 558 | break; |
| 560 | 559 | } |
| 561 | - } |
|
| 560 | + } |
|
| 562 | 561 | /** |
| 563 | - * general vcalendar config setting |
|
| 564 | - * |
|
| 565 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 566 | - * @since 2.4.8 - 2008-10-24 |
|
| 567 | - * @param string $config |
|
| 568 | - * @param string $value |
|
| 569 | - * @return void |
|
| 570 | - */ |
|
| 571 | - function setConfig( $config, $value ) { |
|
| 562 | + * general vcalendar config setting |
|
| 563 | + * |
|
| 564 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 565 | + * @since 2.4.8 - 2008-10-24 |
|
| 566 | + * @param string $config |
|
| 567 | + * @param string $value |
|
| 568 | + * @return void |
|
| 569 | + */ |
|
| 570 | + function setConfig( $config, $value ) { |
|
| 572 | 571 | $res = FALSE; |
| 573 | 572 | switch( strtoupper( $config )) { |
| 574 | - case 'ALLOWEMPTY': |
|
| 573 | + case 'ALLOWEMPTY': |
|
| 575 | 574 | $this->allowEmpty = $value; |
| 576 | 575 | $subcfg = array( 'ALLOWEMPTY' => $value ); |
| 577 | 576 | $res = TRUE; |
| 578 | 577 | break; |
| 579 | - case 'DELIMITER': |
|
| 578 | + case 'DELIMITER': |
|
| 580 | 579 | $this->delimiter = $value; |
| 581 | 580 | return TRUE; |
| 582 | 581 | break; |
| 583 | - case 'DIRECTORY': |
|
| 582 | + case 'DIRECTORY': |
|
| 584 | 583 | $value = trim( $value ); |
| 585 | 584 | $nl = $this->getConfig('delimiter'); |
| 586 | 585 | if( $nl == substr( $value, ( 0 - strlen( $nl )))) |
| 587 | - $value = substr( $value, 0, ( strlen( $value ) - strlen( $nl ))); |
|
| 586 | + $value = substr( $value, 0, ( strlen( $value ) - strlen( $nl ))); |
|
| 588 | 587 | if( is_dir( $value )) { |
| 589 | 588 | /* local directory */ |
| 590 | - clearstatcache(); |
|
| 591 | - $this->directory = $value; |
|
| 592 | - $this->url = null; |
|
| 593 | - return TRUE; |
|
| 589 | + clearstatcache(); |
|
| 590 | + $this->directory = $value; |
|
| 591 | + $this->url = null; |
|
| 592 | + return TRUE; |
|
| 594 | 593 | } |
| 595 | 594 | else |
| 596 | - return FALSE; |
|
| 595 | + return FALSE; |
|
| 597 | 596 | break; |
| 598 | - case 'FILENAME': |
|
| 597 | + case 'FILENAME': |
|
| 599 | 598 | $value = trim( $value ); |
| 600 | 599 | if( !empty( $this->url )) { |
| 601 | 600 | /* remote directory+file - URL */ |
| 602 | - $this->filename = $value; |
|
| 603 | - return TRUE; |
|
| 601 | + $this->filename = $value; |
|
| 602 | + return TRUE; |
|
| 604 | 603 | } |
| 605 | 604 | $dirfile = $this->getConfig( 'directory' ).$this->getConfig( 'delimiter' ).$value; |
| 606 | 605 | if( file_exists( $dirfile )) { |
| 607 | 606 | /* local existing file */ |
| 608 | - if( is_readable( $dirfile ) || is_writable( $dirfile )) { |
|
| 607 | + if( is_readable( $dirfile ) || is_writable( $dirfile )) { |
|
| 609 | 608 | clearstatcache(); |
| 610 | 609 | $this->filename = $value; |
| 611 | 610 | return TRUE; |
| 612 | - } |
|
| 613 | - else |
|
| 611 | + } |
|
| 612 | + else |
|
| 614 | 613 | return FALSE; |
| 615 | 614 | } |
| 616 | 615 | elseif( FALSE !== touch( $dirfile )) { |
| 617 | 616 | /* new local file created */ |
| 618 | - $this->filename = $value; |
|
| 619 | - return TRUE; |
|
| 617 | + $this->filename = $value; |
|
| 618 | + return TRUE; |
|
| 620 | 619 | } |
| 621 | 620 | else |
| 622 | - return FALSE; |
|
| 621 | + return FALSE; |
|
| 623 | 622 | break; |
| 624 | - case 'FORMAT': |
|
| 623 | + case 'FORMAT': |
|
| 625 | 624 | $value = trim( $value ); |
| 626 | 625 | if( 'xcal' == strtolower( $value )) { |
| 627 | - $this->format = 'xcal'; |
|
| 628 | - $this->attributeDelimiter = $this->nl; |
|
| 629 | - $this->valueInit = null; |
|
| 626 | + $this->format = 'xcal'; |
|
| 627 | + $this->attributeDelimiter = $this->nl; |
|
| 628 | + $this->valueInit = null; |
|
| 630 | 629 | } |
| 631 | 630 | else { |
| 632 | - $this->format = null; |
|
| 633 | - $this->attributeDelimiter = ';'; |
|
| 634 | - $this->valueInit = ':'; |
|
| 631 | + $this->format = null; |
|
| 632 | + $this->attributeDelimiter = ';'; |
|
| 633 | + $this->valueInit = ':'; |
|
| 635 | 634 | } |
| 636 | 635 | $subcfg = array( 'FORMAT' => $value ); |
| 637 | 636 | $res = TRUE; |
| 638 | 637 | break; |
| 639 | - case 'LANGUAGE': |
|
| 638 | + case 'LANGUAGE': |
|
| 640 | 639 | // set language for calendar component as defined in [RFC 1766] |
| 641 | 640 | $value = trim( $value ); |
| 642 | 641 | $this->language = $value; |
| 643 | 642 | $subcfg = array( 'LANGUAGE' => $value ); |
| 644 | 643 | $res = TRUE; |
| 645 | 644 | break; |
| 646 | - case 'NL': |
|
| 645 | + case 'NL': |
|
| 647 | 646 | case 'NEWLINECHAR': |
| 648 | 647 | $this->nl = $value; |
| 649 | 648 | $subcfg = array( 'NL' => $value ); |
| 650 | 649 | $res = TRUE; |
| 651 | 650 | break; |
| 652 | - case 'UNIQUE_ID': |
|
| 651 | + case 'UNIQUE_ID': |
|
| 653 | 652 | $value = trim( $value ); |
| 654 | 653 | $this->unique_id = $value; |
| 655 | 654 | $subcfg = array( 'UNIQUE_ID' => $value ); |
| 656 | 655 | $res = TRUE; |
| 657 | 656 | break; |
| 658 | - case 'URL': |
|
| 657 | + case 'URL': |
|
| 659 | 658 | /* remote file - URL */ |
| 660 | 659 | $value = trim( $value ); |
| 661 | 660 | $value = str_replace( 'HTTP://', 'http://', $value ); |
@@ -669,151 +668,151 @@ discard block |
||
| 669 | 668 | } |
| 670 | 669 | if( !$res ) return FALSE; |
| 671 | 670 | if( isset( $subcfg ) && !empty( $this->components )) { |
| 672 | - foreach( $subcfg as $cfgkey => $cfgvalue ) { |
|
| 671 | + foreach( $subcfg as $cfgkey => $cfgvalue ) { |
|
| 673 | 672 | foreach( $this->components as $cix => $component ) { |
| 674 | - $res = $component->setConfig( $cfgkey, $cfgvalue ); |
|
| 675 | - if( !$res ) |
|
| 673 | + $res = $component->setConfig( $cfgkey, $cfgvalue ); |
|
| 674 | + if( !$res ) |
|
| 676 | 675 | break 2; |
| 677 | - $this->components[$cix] = $component->copy(); // PHP4 compliant |
|
| 676 | + $this->components[$cix] = $component->copy(); // PHP4 compliant |
|
| 677 | + } |
|
| 678 | 678 | } |
| 679 | - } |
|
| 680 | 679 | } |
| 681 | 680 | return $res; |
| 682 | - } |
|
| 681 | + } |
|
| 683 | 682 | /*********************************************************************************/ |
| 684 | 683 | /** |
| 685 | - * add calendar component to container |
|
| 686 | - * |
|
| 687 | - * alias to setComponent |
|
| 688 | - * |
|
| 689 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 690 | - * @since 1.x.x - 2007-04-24 |
|
| 691 | - * @param object $component calendar component |
|
| 692 | - * @return void |
|
| 693 | - */ |
|
| 694 | - function addComponent( $component ) { |
|
| 684 | + * add calendar component to container |
|
| 685 | + * |
|
| 686 | + * alias to setComponent |
|
| 687 | + * |
|
| 688 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 689 | + * @since 1.x.x - 2007-04-24 |
|
| 690 | + * @param object $component calendar component |
|
| 691 | + * @return void |
|
| 692 | + */ |
|
| 693 | + function addComponent( $component ) { |
|
| 695 | 694 | $this->setComponent( $component ); |
| 696 | - } |
|
| 695 | + } |
|
| 697 | 696 | /** |
| 698 | - * delete calendar component from container |
|
| 699 | - * |
|
| 700 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 701 | - * @since 2.4.10 - 2008-08-05 |
|
| 702 | - * @param mixed $arg1 ordno / component type / component uid |
|
| 703 | - * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 704 | - * @return void |
|
| 705 | - */ |
|
| 706 | - function deleteComponent( $arg1, $arg2=FALSE ) { |
|
| 697 | + * delete calendar component from container |
|
| 698 | + * |
|
| 699 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 700 | + * @since 2.4.10 - 2008-08-05 |
|
| 701 | + * @param mixed $arg1 ordno / component type / component uid |
|
| 702 | + * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 703 | + * @return void |
|
| 704 | + */ |
|
| 705 | + function deleteComponent( $arg1, $arg2=FALSE ) { |
|
| 707 | 706 | $argType = $index = null; |
| 708 | 707 | if ( ctype_digit( (string) $arg1 )) { |
| 709 | - $argType = 'INDEX'; |
|
| 710 | - $index = (int) $arg1 - 1; |
|
| 708 | + $argType = 'INDEX'; |
|
| 709 | + $index = (int) $arg1 - 1; |
|
| 711 | 710 | } |
| 712 | 711 | elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
| 713 | - $argType = strtolower( $arg1 ); |
|
| 714 | - $index = ( !empty( $arg2 ) && ctype_digit( (string) $arg2 )) ? (( int ) $arg2 - 1 ) : 0; |
|
| 712 | + $argType = strtolower( $arg1 ); |
|
| 713 | + $index = ( !empty( $arg2 ) && ctype_digit( (string) $arg2 )) ? (( int ) $arg2 - 1 ) : 0; |
|
| 715 | 714 | } |
| 716 | 715 | $cix1dC = 0; |
| 717 | 716 | foreach ( $this->components as $cix => $component) { |
| 718 | - if( empty( $component )) continue; |
|
| 719 | - unset( $component->propix ); |
|
| 720 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 717 | + if( empty( $component )) continue; |
|
| 718 | + unset( $component->propix ); |
|
| 719 | + if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 721 | 720 | unset( $this->components[$cix] ); |
| 722 | 721 | return TRUE; |
| 723 | - } |
|
| 724 | - elseif( $argType == $component->objName ) { |
|
| 722 | + } |
|
| 723 | + elseif( $argType == $component->objName ) { |
|
| 725 | 724 | if( $index == $cix1dC ) { |
| 726 | - unset( $this->components[$cix] ); |
|
| 727 | - return TRUE; |
|
| 725 | + unset( $this->components[$cix] ); |
|
| 726 | + return TRUE; |
|
| 728 | 727 | } |
| 729 | 728 | $cix1dC++; |
| 730 | - } |
|
| 731 | - elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 729 | + } |
|
| 730 | + elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 732 | 731 | unset( $this->components[$cix] ); |
| 733 | 732 | return TRUE; |
| 734 | - } |
|
| 733 | + } |
|
| 735 | 734 | } |
| 736 | 735 | return FALSE; |
| 737 | - } |
|
| 736 | + } |
|
| 738 | 737 | /** |
| 739 | - * get calendar component from container |
|
| 740 | - * |
|
| 741 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 742 | - * @since 2.4.10 - 2008-08-06 |
|
| 743 | - * @param mixed $arg1 optional, ordno/component type/ component uid |
|
| 744 | - * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 745 | - * @return object |
|
| 746 | - */ |
|
| 747 | - function getComponent( $arg1=FALSE, $arg2=FALSE ) { |
|
| 738 | + * get calendar component from container |
|
| 739 | + * |
|
| 740 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 741 | + * @since 2.4.10 - 2008-08-06 |
|
| 742 | + * @param mixed $arg1 optional, ordno/component type/ component uid |
|
| 743 | + * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 744 | + * @return object |
|
| 745 | + */ |
|
| 746 | + function getComponent( $arg1=FALSE, $arg2=FALSE ) { |
|
| 748 | 747 | $index = $argType = null; |
| 749 | 748 | if ( !$arg1 ) { |
| 750 | - $argType = 'INDEX'; |
|
| 751 | - $index = $this->compix['INDEX'] = |
|
| 749 | + $argType = 'INDEX'; |
|
| 750 | + $index = $this->compix['INDEX'] = |
|
| 752 | 751 | ( isset( $this->compix['INDEX'] )) ? $this->compix['INDEX'] + 1 : 1; |
| 753 | 752 | } |
| 754 | 753 | elseif ( ctype_digit( (string) $arg1 )) { |
| 755 | - $argType = 'INDEX'; |
|
| 756 | - $index = (int) $arg1; |
|
| 757 | - unset( $this->compix ); |
|
| 754 | + $argType = 'INDEX'; |
|
| 755 | + $index = (int) $arg1; |
|
| 756 | + unset( $this->compix ); |
|
| 758 | 757 | } |
| 759 | 758 | elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
| 760 | - unset( $this->compix['INDEX'] ); |
|
| 761 | - $argType = strtolower( $arg1 ); |
|
| 762 | - if( !$arg2 ) |
|
| 759 | + unset( $this->compix['INDEX'] ); |
|
| 760 | + $argType = strtolower( $arg1 ); |
|
| 761 | + if( !$arg2 ) |
|
| 763 | 762 | $index = $this->compix[$argType] = |
| 764 | 763 | ( isset( $this->compix[$argType] )) ? $this->compix[$argType] + 1 : 1; |
| 765 | - else |
|
| 764 | + else |
|
| 766 | 765 | $index = (int) $arg2; |
| 767 | 766 | } |
| 768 | 767 | $index -= 1; |
| 769 | 768 | $ckeys = array_keys( $this->components ); |
| 770 | 769 | if( !empty( $index) && ( $index > end( $ckeys ))) |
| 771 | - return FALSE; |
|
| 770 | + return FALSE; |
|
| 772 | 771 | $cix1gC = 0; |
| 773 | 772 | foreach ( $this->components as $cix => $component) { |
| 774 | - if( empty( $component )) continue; |
|
| 775 | - unset( $component->propix ); |
|
| 776 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) |
|
| 773 | + if( empty( $component )) continue; |
|
| 774 | + unset( $component->propix ); |
|
| 775 | + if(( 'INDEX' == $argType ) && ( $index == $cix )) |
|
| 777 | 776 | return $component->copy(); |
| 778 | - elseif( $argType == $component->objName ) { |
|
| 779 | - if( $index == $cix1gC ) |
|
| 780 | - return $component->copy(); |
|
| 781 | - $cix1gC++; |
|
| 782 | - } |
|
| 783 | - elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 777 | + elseif( $argType == $component->objName ) { |
|
| 778 | + if( $index == $cix1gC ) |
|
| 779 | + return $component->copy(); |
|
| 780 | + $cix1gC++; |
|
| 781 | + } |
|
| 782 | + elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 784 | 783 | unset( $component->propix ); |
| 785 | 784 | return $component->copy(); |
| 786 | - } |
|
| 785 | + } |
|
| 787 | 786 | } |
| 788 | 787 | /* not found.. . */ |
| 789 | 788 | unset( $this->compix ); |
| 790 | 789 | return FALSE; |
| 791 | - } |
|
| 790 | + } |
|
| 792 | 791 | /** |
| 793 | - * select components from calendar on date basis |
|
| 794 | - * |
|
| 795 | - * Ensure DTSTART is set for every component. |
|
| 796 | - * No date controls occurs. |
|
| 797 | - * |
|
| 798 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 799 | - * @since 2.4.16 - 2008-10-18 |
|
| 800 | - * @param int $startY optional, start Year, default current Year |
|
| 801 | - * @param int $startM optional, start Month, default current Month |
|
| 802 | - * @param int $startD optional, start Day, default current Day |
|
| 803 | - * @param int $endY optional, end Year, default $startY |
|
| 804 | - * @param int $endY optional, end Month, default $startM |
|
| 805 | - * @param int $endY optional, end Day, default $startD |
|
| 806 | - * @param mixed $cType optional, calendar component type(-s), default FALSE=all else string/array type(-s) |
|
| 807 | - * @param bool $flat optional, FALSE (default) => output : array[Year][Month][Day][] |
|
| 808 | - * TRUE => output : array[] (ignores split) |
|
| 809 | - * @param bool $any optional, TRUE (default) - select component that take place within period |
|
| 810 | - * FALSE - only components that starts within period |
|
| 811 | - * @param bool $split optional, TRUE (default) - one component copy every day it take place during the |
|
| 812 | - * period (implies flat=FALSE) |
|
| 813 | - * FALSE - one occurance of component only in output array</tr> |
|
| 814 | - * @return array or FALSE |
|
| 815 | - */ |
|
| 816 | - function selectComponents( $startY=FALSE, $startM=FALSE, $startD=FALSE, $endY=FALSE, $endM=FALSE, $endD=FALSE, $cType=FALSE, $flat=FALSE, $any=TRUE, $split=TRUE ) { |
|
| 792 | + * select components from calendar on date basis |
|
| 793 | + * |
|
| 794 | + * Ensure DTSTART is set for every component. |
|
| 795 | + * No date controls occurs. |
|
| 796 | + * |
|
| 797 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 798 | + * @since 2.4.16 - 2008-10-18 |
|
| 799 | + * @param int $startY optional, start Year, default current Year |
|
| 800 | + * @param int $startM optional, start Month, default current Month |
|
| 801 | + * @param int $startD optional, start Day, default current Day |
|
| 802 | + * @param int $endY optional, end Year, default $startY |
|
| 803 | + * @param int $endY optional, end Month, default $startM |
|
| 804 | + * @param int $endY optional, end Day, default $startD |
|
| 805 | + * @param mixed $cType optional, calendar component type(-s), default FALSE=all else string/array type(-s) |
|
| 806 | + * @param bool $flat optional, FALSE (default) => output : array[Year][Month][Day][] |
|
| 807 | + * TRUE => output : array[] (ignores split) |
|
| 808 | + * @param bool $any optional, TRUE (default) - select component that take place within period |
|
| 809 | + * FALSE - only components that starts within period |
|
| 810 | + * @param bool $split optional, TRUE (default) - one component copy every day it take place during the |
|
| 811 | + * period (implies flat=FALSE) |
|
| 812 | + * FALSE - one occurance of component only in output array</tr> |
|
| 813 | + * @return array or FALSE |
|
| 814 | + */ |
|
| 815 | + function selectComponents( $startY=FALSE, $startM=FALSE, $startD=FALSE, $endY=FALSE, $endM=FALSE, $endD=FALSE, $cType=FALSE, $flat=FALSE, $any=TRUE, $split=TRUE ) { |
|
| 817 | 816 | /* check if empty calendar */ |
| 818 | 817 | if( 0 >= count( $this->components )) return FALSE; |
| 819 | 818 | /* check default dates */ |
@@ -828,54 +827,54 @@ discard block |
||
| 828 | 827 | /* check component types */ |
| 829 | 828 | $validTypes = array('vevent', 'vtodo', 'vjournal', 'vfreebusy' ); |
| 830 | 829 | if( is_array( $cType )) { |
| 831 | - foreach( $cType as $cix => $theType ) { |
|
| 830 | + foreach( $cType as $cix => $theType ) { |
|
| 832 | 831 | $cType[$cix] = $theType = strtolower( $theType ); |
| 833 | 832 | if( !in_array( $theType, $validTypes )) |
| 834 | - $cType[$cix] = 'vevent'; |
|
| 835 | - } |
|
| 836 | - $cType = array_unique( $cType ); |
|
| 833 | + $cType[$cix] = 'vevent'; |
|
| 834 | + } |
|
| 835 | + $cType = array_unique( $cType ); |
|
| 837 | 836 | } |
| 838 | 837 | elseif( !empty( $cType )) { |
| 839 | - $cType = strtolower( $cType ); |
|
| 840 | - if( !in_array( $cType, $validTypes )) |
|
| 838 | + $cType = strtolower( $cType ); |
|
| 839 | + if( !in_array( $cType, $validTypes )) |
|
| 841 | 840 | $cType = array( 'vevent' ); |
| 842 | - else |
|
| 841 | + else |
|
| 843 | 842 | $cType = array( $cType ); |
| 844 | 843 | } |
| 845 | 844 | else |
| 846 | - $cType = $validTypes; |
|
| 845 | + $cType = $validTypes; |
|
| 847 | 846 | if( 0 >= count( $cType )) |
| 848 | - $cType = $validTypes; |
|
| 847 | + $cType = $validTypes; |
|
| 849 | 848 | /* iterate components */ |
| 850 | 849 | $result = array(); |
| 851 | 850 | foreach ( $this->components as $cix => $component ) { |
| 852 | - if( empty( $component )) continue; |
|
| 853 | - unset( $component->propix, $start ); |
|
| 851 | + if( empty( $component )) continue; |
|
| 852 | + unset( $component->propix, $start ); |
|
| 854 | 853 | /* deselect unvalid type components */ |
| 855 | - if( !in_array( $component->objName, $cType )) continue; |
|
| 854 | + if( !in_array( $component->objName, $cType )) continue; |
|
| 856 | 855 | /* deselect components without dtstart set */ |
| 857 | - if( FALSE === ( $start = $component->getProperty( 'dtstart' ))) continue; |
|
| 858 | - $dtendExist = $dueExist = $durationExist = $endAllDayEvent = FALSE; |
|
| 859 | - unset( $end, $startWdate, $endWdate, $rdurWsecs, $rdur, $exdatelist, $workstart, $workend ); // clean up |
|
| 860 | - $startWdate = $component->_date2timestamp( $start ); |
|
| 861 | - $startDateFormat = ( isset( $start['hour'] )) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 856 | + if( FALSE === ( $start = $component->getProperty( 'dtstart' ))) continue; |
|
| 857 | + $dtendExist = $dueExist = $durationExist = $endAllDayEvent = FALSE; |
|
| 858 | + unset( $end, $startWdate, $endWdate, $rdurWsecs, $rdur, $exdatelist, $workstart, $workend ); // clean up |
|
| 859 | + $startWdate = $component->_date2timestamp( $start ); |
|
| 860 | + $startDateFormat = ( isset( $start['hour'] )) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 862 | 861 | /* get end date from dtend/due/duration properties */ |
| 863 | - $end = $component->getProperty( 'dtend' ); |
|
| 864 | - if( !empty( $end )) { |
|
| 862 | + $end = $component->getProperty( 'dtend' ); |
|
| 863 | + if( !empty( $end )) { |
|
| 865 | 864 | $dtendExist = TRUE; |
| 866 | 865 | $endDateFormat = ( isset( $end['hour'] )) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
| 867 | - } |
|
| 868 | - // if( !empty($end)) echo 'selectComp 1 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 869 | - if( empty($end) && ( $component->objName == 'vtodo' )) { |
|
| 866 | + } |
|
| 867 | + // if( !empty($end)) echo 'selectComp 1 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 868 | + if( empty($end) && ( $component->objName == 'vtodo' )) { |
|
| 870 | 869 | $end = $component->getProperty( 'due' ); |
| 871 | 870 | if( !empty( $end )) { |
| 872 | - $dueExist = TRUE; |
|
| 873 | - $endDateFormat = ( isset( $end['hour'] )) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 871 | + $dueExist = TRUE; |
|
| 872 | + $endDateFormat = ( isset( $end['hour'] )) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 874 | 873 | } |
| 875 | - // if( !empty($end)) echo 'selectComp 2 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 876 | - } |
|
| 877 | - if( !empty( $end ) && !isset( $end['hour'] )) { |
|
| 878 | - /* a DTEND without time part regards an event that ends the day before, |
|
| 874 | + // if( !empty($end)) echo 'selectComp 2 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 875 | + } |
|
| 876 | + if( !empty( $end ) && !isset( $end['hour'] )) { |
|
| 877 | + /* a DTEND without time part regards an event that ends the day before, |
|
| 879 | 878 | for an all-day event DTSTART=20071201 DTEND=20071202 (taking place 20071201!!! */ |
| 880 | 879 | $endAllDayEvent = TRUE; |
| 881 | 880 | $endWdate = mktime( 23, 59, 59, $end['month'], ($end['day'] - 1), $end['year'] ); |
@@ -884,594 +883,594 @@ discard block |
||
| 884 | 883 | $end['day'] = date( 'd', $endWdate ); |
| 885 | 884 | $end['hour'] = 23; |
| 886 | 885 | $end['min'] = $end['sec'] = 59; |
| 887 | - // if( !empty($end)) echo 'selectComp 3 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 888 | - } |
|
| 889 | - if( empty( $end )) { |
|
| 886 | + // if( !empty($end)) echo 'selectComp 3 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 887 | + } |
|
| 888 | + if( empty( $end )) { |
|
| 890 | 889 | $end = $component->getProperty( 'duration', FALSE, FALSE, TRUE );// in dtend (array) format |
| 891 | 890 | if( !empty( $end )) |
| 892 | - $durationExist = TRUE; |
|
| 893 | - // if( !empty($end)) echo 'selectComp 4 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 894 | - } |
|
| 895 | - if( empty( $end )) { // assume one day duration if missing end date |
|
| 891 | + $durationExist = TRUE; |
|
| 892 | + // if( !empty($end)) echo 'selectComp 4 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 893 | + } |
|
| 894 | + if( empty( $end )) { // assume one day duration if missing end date |
|
| 896 | 895 | $end = array( 'year' => $start['year'], 'month' => $start['month'], 'day' => $start['day'], 'hour' => 23, 'min' => 59, 'sec' => 59 ); |
| 897 | - // if( isset($end)) echo 'selectComp 5 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 898 | - } |
|
| 899 | - $endWdate = $component->_date2timestamp( $end ); |
|
| 900 | - if( $endWdate < $startWdate ) { // MUST be after start date!! |
|
| 896 | + // if( isset($end)) echo 'selectComp 5 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
|
| 897 | + } |
|
| 898 | + $endWdate = $component->_date2timestamp( $end ); |
|
| 899 | + if( $endWdate < $startWdate ) { // MUST be after start date!! |
|
| 901 | 900 | $end = array( 'year' => $start['year'], 'month' => $start['month'], 'day' => $start['day'], 'hour' => 23, 'min' => 59, 'sec' => 59 ); |
| 902 | 901 | $endWdate = $component->_date2timestamp( $end ); |
| 903 | - } |
|
| 904 | - $rdurWsecs = $endWdate - $startWdate; // compute component duration in seconds |
|
| 905 | - $rdur = $component->_date2duration( $start, $end ); // compute component duration, array |
|
| 902 | + } |
|
| 903 | + $rdurWsecs = $endWdate - $startWdate; // compute component duration in seconds |
|
| 904 | + $rdur = $component->_date2duration( $start, $end ); // compute component duration, array |
|
| 906 | 905 | /* make a list of optional exclude dates for component occurence from exrule and exdate */ |
| 907 | - $exdatelist = array(); |
|
| 908 | - $workstart = $component->_timestamp2date(( $startDate - $rdurWsecs ), 6); |
|
| 909 | - $workend = $component->_timestamp2date(( $endDate + $rdurWsecs ), 6); |
|
| 910 | - while( FALSE !== ( $exrule = $component->getProperty( 'exrule' ))) // check exrule |
|
| 906 | + $exdatelist = array(); |
|
| 907 | + $workstart = $component->_timestamp2date(( $startDate - $rdurWsecs ), 6); |
|
| 908 | + $workend = $component->_timestamp2date(( $endDate + $rdurWsecs ), 6); |
|
| 909 | + while( FALSE !== ( $exrule = $component->getProperty( 'exrule' ))) // check exrule |
|
| 911 | 910 | $component->_recur2date( $exdatelist, $exrule, $start, $workstart, $workend ); |
| 912 | - while( FALSE !== ( $exdate = $component->getProperty( 'exdate' ))) { // check exdate |
|
| 911 | + while( FALSE !== ( $exdate = $component->getProperty( 'exdate' ))) { // check exdate |
|
| 913 | 912 | foreach( $exdate as $theExdate ) { |
| 914 | - $exWdate = $component->_date2timestamp( $theExdate ); |
|
| 915 | - if((( $startDate - $rdurWsecs ) <= $exWdate ) && ( $endDate >= $exWdate )) |
|
| 913 | + $exWdate = $component->_date2timestamp( $theExdate ); |
|
| 914 | + if((( $startDate - $rdurWsecs ) <= $exWdate ) && ( $endDate >= $exWdate )) |
|
| 916 | 915 | $exdatelist[$exWdate] = TRUE; |
| 917 | 916 | } |
| 918 | - } |
|
| 917 | + } |
|
| 919 | 918 | /* if 'any' components, check repeating components, removing all excluding dates */ |
| 920 | - if( TRUE === $any ) { |
|
| 919 | + if( TRUE === $any ) { |
|
| 921 | 920 | /* make a list of optional repeating dates for component occurence, rrule, rdate */ |
| 922 | 921 | $recurlist = array(); |
| 923 | 922 | while( FALSE !== ( $rrule = $component->getProperty( 'rrule' ))) // check rrule |
| 924 | - $component->_recur2date( $recurlist, $rrule, $start, $workstart, $workend ); |
|
| 923 | + $component->_recur2date( $recurlist, $rrule, $start, $workstart, $workend ); |
|
| 925 | 924 | foreach( $recurlist as $recurkey => $recurvalue ) // key=match date as timestamp |
| 926 | - $recurlist[$recurkey] = $rdurWsecs; // add duration in seconds |
|
| 925 | + $recurlist[$recurkey] = $rdurWsecs; // add duration in seconds |
|
| 927 | 926 | while( FALSE !== ( $rdate = $component->getProperty( 'rdate' ))) { // check rdate |
| 928 | - foreach( $rdate as $theRdate ) { |
|
| 927 | + foreach( $rdate as $theRdate ) { |
|
| 929 | 928 | if( is_array( $theRdate ) && ( 2 == count( $theRdate )) && // all days within PERIOD |
| 930 | 929 | array_key_exists( '0', $theRdate ) && array_key_exists( '1', $theRdate )) { |
| 931 | - $rstart = $component->_date2timestamp( $theRdate[0] ); |
|
| 932 | - if(( $rstart < ( $startDate - $rdurWsecs )) || ( $rstart > $endDate )) |
|
| 930 | + $rstart = $component->_date2timestamp( $theRdate[0] ); |
|
| 931 | + if(( $rstart < ( $startDate - $rdurWsecs )) || ( $rstart > $endDate )) |
|
| 933 | 932 | continue; |
| 934 | - if( isset( $theRdate[1]['year'] )) // date-date period |
|
| 933 | + if( isset( $theRdate[1]['year'] )) // date-date period |
|
| 935 | 934 | $rend = $component->_date2timestamp( $theRdate[1] ); |
| 936 | - else { // date-duration period |
|
| 935 | + else { // date-duration period |
|
| 937 | 936 | $rend = $component->duration2date( $theRdate[0], $theRdate[1] ); |
| 938 | 937 | $rend = $component->_date2timestamp( $rend ); |
| 939 | - } |
|
| 940 | - if((( $startDate - $rdurWsecs ) <= $rstart ) && ( $endDate >= $rstart )) |
|
| 938 | + } |
|
| 939 | + if((( $startDate - $rdurWsecs ) <= $rstart ) && ( $endDate >= $rstart )) |
|
| 941 | 940 | $recurlist[$rstart] = ( $rstart - $rend ); // set start date + rdate duration in seconds |
| 942 | 941 | } // PERIOD end |
| 943 | 942 | else { // single date |
| 944 | - $theRdate = $component->_date2timestamp( $theRdate ); |
|
| 945 | - if((( $startDate - $rdurWsecs ) <= $theRdate ) && ( $endDate >= $theRdate )) |
|
| 943 | + $theRdate = $component->_date2timestamp( $theRdate ); |
|
| 944 | + if((( $startDate - $rdurWsecs ) <= $theRdate ) && ( $endDate >= $theRdate )) |
|
| 946 | 945 | $recurlist[$theRdate] = $rdurWsecs; // set start date + event duration in seconds |
| 947 | 946 | } |
| 948 | - } |
|
| 947 | + } |
|
| 949 | 948 | } |
| 950 | 949 | if( 0 < count( $recurlist )) { |
| 951 | - ksort( $recurlist ); |
|
| 952 | - foreach( $recurlist as $recurkey => $durvalue ) { |
|
| 950 | + ksort( $recurlist ); |
|
| 951 | + foreach( $recurlist as $recurkey => $durvalue ) { |
|
| 953 | 952 | if((( $startDate - $rdurWsecs ) > $recurkey ) || ( $endDate < $recurkey )) // not within period |
| 954 | - continue; |
|
| 953 | + continue; |
|
| 955 | 954 | if( isset( $exdatelist[$recurkey] )) // check excluded dates |
| 956 | - continue; |
|
| 955 | + continue; |
|
| 957 | 956 | if( $startWdate >= $recurkey ) // exclude component start date |
| 958 | - continue; |
|
| 957 | + continue; |
|
| 959 | 958 | $component2 = $component->copy(); |
| 960 | 959 | $rstart = $component2->_timestamp2date( $recurkey, 6); |
| 961 | 960 | $datevalue = $rstart['month'].'/'.$rstart['day'].'/'.$rstart['year']; |
| 962 | 961 | if( isset( $start['hour'] ) || isset( $start['min'] ) || isset( $start['sec'] )) { |
| 963 | - $datevalue .= ( isset( $rstart['hour'] )) ? ' '.$rstart['hour'] : ' 00'; |
|
| 964 | - $datevalue .= ( isset( $rstart['min'] )) ? ':'.$rstart['min'] : ':00'; |
|
| 965 | - $datevalue .= ( isset( $rstart['sec'] )) ? ':'.$rstart['sec'] : ':00'; |
|
| 962 | + $datevalue .= ( isset( $rstart['hour'] )) ? ' '.$rstart['hour'] : ' 00'; |
|
| 963 | + $datevalue .= ( isset( $rstart['min'] )) ? ':'.$rstart['min'] : ':00'; |
|
| 964 | + $datevalue .= ( isset( $rstart['sec'] )) ? ':'.$rstart['sec'] : ':00'; |
|
| 966 | 965 | } |
| 967 | 966 | $datestring = date( $startDateFormat, strtotime( $datevalue )); |
| 968 | 967 | if( isset( $start['tz'] )) |
| 969 | - $datestring .= ' '.$start['tz']; |
|
| 968 | + $datestring .= ' '.$start['tz']; |
|
| 970 | 969 | $component2->setProperty( 'X-CURRENT-DTSTART', $datestring ); |
| 971 | 970 | $rend = $component2->_timestamp2date(( $recurkey + $durvalue ), 6); |
| 972 | 971 | if( $dtendExist || $dueExist ) { |
| 973 | - if( $endAllDayEvent ) { |
|
| 972 | + if( $endAllDayEvent ) { |
|
| 974 | 973 | $rend2 = mktime( 0, 0, 0, $rend['month'], ($rend['day'] + 1), $rend['year'] ); |
| 975 | 974 | $datevalue = date( 'm', $rend2 ).'/'.date( 'd', $rend2 ).'/'.date( 'Y', $rend2 ); |
| 976 | - } |
|
| 977 | - else { |
|
| 975 | + } |
|
| 976 | + else { |
|
| 978 | 977 | $datevalue = $rend['month'].'/'.$rend['day'].'/'.$rend['year']; |
| 979 | 978 | if( isset( $end['hour'] ) || isset( $end['min'] ) || isset( $end['sec'] )) { |
| 980 | - $datevalue .= ( isset( $rend['hour'] )) ? ' '.$rend['hour'] : ' 00'; |
|
| 981 | - $datevalue .= ( isset( $rend['min'] )) ? ':'.$rend['min'] : ':00'; |
|
| 982 | - $datevalue .= ( isset( $rend['sec'] )) ? ':'.$rend['sec'] : ':00'; |
|
| 979 | + $datevalue .= ( isset( $rend['hour'] )) ? ' '.$rend['hour'] : ' 00'; |
|
| 980 | + $datevalue .= ( isset( $rend['min'] )) ? ':'.$rend['min'] : ':00'; |
|
| 981 | + $datevalue .= ( isset( $rend['sec'] )) ? ':'.$rend['sec'] : ':00'; |
|
| 983 | 982 | } |
| 984 | - } |
|
| 985 | - $datestring = date( $endDateFormat, strtotime( $datevalue )); |
|
| 986 | - if( isset( $end['tz'] )) |
|
| 983 | + } |
|
| 984 | + $datestring = date( $endDateFormat, strtotime( $datevalue )); |
|
| 985 | + if( isset( $end['tz'] )) |
|
| 987 | 986 | $datestring .= ' '.$end['tz']; |
| 988 | - if( $dtendExist ) |
|
| 987 | + if( $dtendExist ) |
|
| 989 | 988 | $component2->setProperty( 'X-CURRENT-DTEND', $datestring ); |
| 990 | - elseif( $dueExist ) |
|
| 989 | + elseif( $dueExist ) |
|
| 991 | 990 | $component2->setProperty( 'X-CURRENT-DUE', $datestring ); |
| 992 | 991 | } |
| 993 | 992 | $rend = $component2->_date2timestamp( $rend ); |
| 994 | 993 | $rstart = $recurkey; |
| 995 | 994 | /* add repeating components within valid dates to output array, only start date */ |
| 996 | 995 | if( $flat ) |
| 997 | - $result[] = $component2->copy(); // copy to output |
|
| 996 | + $result[] = $component2->copy(); // copy to output |
|
| 998 | 997 | elseif( $split ) { |
| 999 | - if( $rend > $endDate ) |
|
| 998 | + if( $rend > $endDate ) |
|
| 1000 | 999 | $rend = $endDate; |
| 1001 | - while( $rstart <= $rend ) { // iterate |
|
| 1000 | + while( $rstart <= $rend ) { // iterate |
|
| 1002 | 1001 | $wd = getdate( $rstart ); |
| 1003 | 1002 | if(( $rstart > $startDate ) && // date after dtstart |
| 1004 | 1003 | !isset( $exdatelist[$rstart] )) // check exclude date |
| 1005 | - $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component2->copy(); // copy to output |
|
| 1004 | + $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component2->copy(); // copy to output |
|
| 1006 | 1005 | $rstart += ( 24*60*60 ); // step one day |
| 1007 | - } |
|
| 1006 | + } |
|
| 1008 | 1007 | } |
| 1009 | 1008 | elseif(( $rstart >= $startDate ) && // date within period |
| 1010 | 1009 | !isset( $exdatelist[$rstart] )) { // check exclude date |
| 1011 | - $wd = getdate( $rstart ); |
|
| 1012 | - $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component2->copy(); // copy to output |
|
| 1010 | + $wd = getdate( $rstart ); |
|
| 1011 | + $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component2->copy(); // copy to output |
|
| 1012 | + } |
|
| 1013 | 1013 | } |
| 1014 | - } |
|
| 1015 | 1014 | } |
| 1016 | 1015 | /* deselect components with startdate/enddate not within period */ |
| 1017 | 1016 | if(( $endWdate < $startDate ) || ( $startWdate > $endDate )) continue; |
| 1018 | - } |
|
| 1017 | + } |
|
| 1019 | 1018 | /* deselect components with startdate not within period */ |
| 1020 | - elseif(( $startWdate < $startDate ) || ( $startWdate > $endDate )) continue; |
|
| 1019 | + elseif(( $startWdate < $startDate ) || ( $startWdate > $endDate )) continue; |
|
| 1021 | 1020 | /* add selected components within valid dates to output array */ |
| 1022 | - if( $flat ) |
|
| 1021 | + if( $flat ) |
|
| 1023 | 1022 | $result[] = $component->copy(); // copy to output; |
| 1024 | - elseif( $split ) { |
|
| 1023 | + elseif( $split ) { |
|
| 1025 | 1024 | if( $endWdate > $endDate ) |
| 1026 | - $endWdate = $endDate; // use period end date |
|
| 1025 | + $endWdate = $endDate; // use period end date |
|
| 1027 | 1026 | if( !isset( $exdatelist[$startWdate] )) { // check excluded dates |
| 1028 | - if( $startWdate < $startDate ) |
|
| 1027 | + if( $startWdate < $startDate ) |
|
| 1029 | 1028 | $startWdate = $startDate; // use period start date |
| 1030 | - while( $startWdate <= $endWdate ) { // iterate |
|
| 1029 | + while( $startWdate <= $endWdate ) { // iterate |
|
| 1031 | 1030 | $wd = getdate( $startWdate ); |
| 1032 | 1031 | $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component->copy(); // copy to output |
| 1033 | 1032 | $startWdate += ( 24*60*60 ); // step one day |
| 1034 | - } |
|
| 1033 | + } |
|
| 1035 | 1034 | } |
| 1036 | - } // use component date |
|
| 1037 | - elseif( !isset( $exdatelist[$startWdate] ) && // check excluded dates |
|
| 1035 | + } // use component date |
|
| 1036 | + elseif( !isset( $exdatelist[$startWdate] ) && // check excluded dates |
|
| 1038 | 1037 | ( $startWdate >= $startDate )) { // within period |
| 1039 | 1038 | $wd = getdate( $startWdate ); |
| 1040 | 1039 | $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component->copy(); // copy to output |
| 1041 | - } |
|
| 1040 | + } |
|
| 1042 | 1041 | } |
| 1043 | 1042 | if( 0 >= count( $result )) return FALSE; |
| 1044 | 1043 | elseif( !$flat ) { |
| 1045 | - foreach( $result as $y => $yeararr ) { |
|
| 1044 | + foreach( $result as $y => $yeararr ) { |
|
| 1046 | 1045 | foreach( $yeararr as $m => $montharr ) { |
| 1047 | - ksort( $result[$y][$m] ); |
|
| 1046 | + ksort( $result[$y][$m] ); |
|
| 1048 | 1047 | } |
| 1049 | 1048 | ksort( $result[$y] ); |
| 1050 | - } |
|
| 1051 | - ksort( $result ); |
|
| 1049 | + } |
|
| 1050 | + ksort( $result ); |
|
| 1052 | 1051 | } |
| 1053 | 1052 | return $result; |
| 1054 | - } |
|
| 1053 | + } |
|
| 1055 | 1054 | /** |
| 1056 | - * add calendar component to container |
|
| 1057 | - * |
|
| 1058 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1059 | - * @since 2.4.10 - 2008-08-06 |
|
| 1060 | - * @param object $component calendar component |
|
| 1061 | - * @param mixed $arg1 optional, ordno/component type/ component uid |
|
| 1062 | - * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 1063 | - * @return void |
|
| 1064 | - */ |
|
| 1065 | - function setComponent( $component, $arg1=FALSE, $arg2=FALSE ) { |
|
| 1055 | + * add calendar component to container |
|
| 1056 | + * |
|
| 1057 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1058 | + * @since 2.4.10 - 2008-08-06 |
|
| 1059 | + * @param object $component calendar component |
|
| 1060 | + * @param mixed $arg1 optional, ordno/component type/ component uid |
|
| 1061 | + * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 1062 | + * @return void |
|
| 1063 | + */ |
|
| 1064 | + function setComponent( $component, $arg1=FALSE, $arg2=FALSE ) { |
|
| 1066 | 1065 | if( '' >= $component->getConfig( 'language')) |
| 1067 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 1066 | + $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 1068 | 1067 | $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
| 1069 | 1068 | $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
| 1070 | 1069 | $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
| 1071 | 1070 | $component->setConfig( 'format', $this->getConfig( 'format' )); |
| 1072 | 1071 | if( !in_array( $component->objName, array( 'valarm', 'vtimezone' ))) { |
| 1073 | - unset( $component->propix ); |
|
| 1072 | + unset( $component->propix ); |
|
| 1074 | 1073 | /* make sure dtstamp and uid is set */ |
| 1075 | - $dummy1 = $component->getProperty( 'dtstamp' ); |
|
| 1076 | - $dummy2 = $component->getProperty( 'uid' ); |
|
| 1074 | + $dummy1 = $component->getProperty( 'dtstamp' ); |
|
| 1075 | + $dummy2 = $component->getProperty( 'uid' ); |
|
| 1077 | 1076 | } |
| 1078 | 1077 | if( !$arg1 ) { |
| 1079 | - $this->components[] = $component->copy(); |
|
| 1080 | - return TRUE; |
|
| 1078 | + $this->components[] = $component->copy(); |
|
| 1079 | + return TRUE; |
|
| 1081 | 1080 | } |
| 1082 | 1081 | $argType = $index = null; |
| 1083 | 1082 | if ( ctype_digit( (string) $arg1 )) { |
| 1084 | - $argType = 'INDEX'; |
|
| 1085 | - $index = (int) $arg1 - 1; |
|
| 1083 | + $argType = 'INDEX'; |
|
| 1084 | + $index = (int) $arg1 - 1; |
|
| 1086 | 1085 | } |
| 1087 | 1086 | elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
| 1088 | - $argType = strtolower( $arg1 ); |
|
| 1089 | - $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0; |
|
| 1087 | + $argType = strtolower( $arg1 ); |
|
| 1088 | + $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0; |
|
| 1090 | 1089 | } |
| 1091 | 1090 | $cix1sC = 0; |
| 1092 | 1091 | foreach ( $this->components as $cix => $component2) { |
| 1093 | - if( empty( $component2 )) continue; |
|
| 1094 | - unset( $component2->propix ); |
|
| 1095 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 1092 | + if( empty( $component2 )) continue; |
|
| 1093 | + unset( $component2->propix ); |
|
| 1094 | + if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 1096 | 1095 | $this->components[$cix] = $component->copy(); |
| 1097 | 1096 | return TRUE; |
| 1098 | - } |
|
| 1099 | - elseif( $argType == $component2->objName ) { |
|
| 1097 | + } |
|
| 1098 | + elseif( $argType == $component2->objName ) { |
|
| 1100 | 1099 | if( $index == $cix1sC ) { |
| 1101 | - $this->components[$cix] = $component->copy(); |
|
| 1102 | - return TRUE; |
|
| 1100 | + $this->components[$cix] = $component->copy(); |
|
| 1101 | + return TRUE; |
|
| 1103 | 1102 | } |
| 1104 | 1103 | $cix1sC++; |
| 1105 | - } |
|
| 1106 | - elseif( !$argType && ( $arg1 == $component2->getProperty( 'uid' ))) { |
|
| 1104 | + } |
|
| 1105 | + elseif( !$argType && ( $arg1 == $component2->getProperty( 'uid' ))) { |
|
| 1107 | 1106 | $this->components[$cix] = $component->copy(); |
| 1108 | 1107 | return TRUE; |
| 1109 | - } |
|
| 1108 | + } |
|
| 1110 | 1109 | } |
| 1111 | 1110 | /* not found.. . insert last in chain anyway .. .*/ |
| 1112 | 1111 | $this->components[] = $component->copy(); |
| 1113 | 1112 | return TRUE; |
| 1114 | - } |
|
| 1113 | + } |
|
| 1115 | 1114 | /** |
| 1116 | - * sort iCal compoments, only local date sort |
|
| 1117 | - * |
|
| 1118 | - * ascending sort on properties (if exist) x-current-dtstart, dtstart, |
|
| 1119 | - * x-current-dtend, dtend, x-current-due, due, duration, created, dtstamp, uid |
|
| 1120 | - * |
|
| 1121 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1122 | - * @since 2.4.10 - 2008-09-24 |
|
| 1123 | - * @return sort param |
|
| 1124 | - * |
|
| 1125 | - */ |
|
| 1126 | - function sort() { |
|
| 1115 | + * sort iCal compoments, only local date sort |
|
| 1116 | + * |
|
| 1117 | + * ascending sort on properties (if exist) x-current-dtstart, dtstart, |
|
| 1118 | + * x-current-dtend, dtend, x-current-due, due, duration, created, dtstamp, uid |
|
| 1119 | + * |
|
| 1120 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1121 | + * @since 2.4.10 - 2008-09-24 |
|
| 1122 | + * @return sort param |
|
| 1123 | + * |
|
| 1124 | + */ |
|
| 1125 | + function sort() { |
|
| 1127 | 1126 | if( is_array( $this->components )) { |
| 1128 | - $this->_sortkeys = array( 'year', 'month', 'day', 'hour', 'min', 'sec' ); |
|
| 1129 | - usort( $this->components, array( $this, '_cmpfcn' )); |
|
| 1127 | + $this->_sortkeys = array( 'year', 'month', 'day', 'hour', 'min', 'sec' ); |
|
| 1128 | + usort( $this->components, array( $this, '_cmpfcn' )); |
|
| 1130 | 1129 | } |
| 1131 | - } |
|
| 1132 | - function _cmpfcn( $a, $b ) { |
|
| 1130 | + } |
|
| 1131 | + function _cmpfcn( $a, $b ) { |
|
| 1133 | 1132 | if( empty( $a )) return -1; |
| 1134 | 1133 | if( empty( $b )) return 1; |
| 1135 | 1134 | if( 'vtimezone' == $a->objName) return -1; |
| 1136 | 1135 | if( 'vtimezone' == $b->objName) return 1; |
| 1137 | 1136 | $astart = ( isset( $a->xprop['X-CURRENT-DTSTART']['value'] )) ? $a->_date_time_string( $a->xprop['X-CURRENT-DTSTART']['value'] ) : null; |
| 1138 | 1137 | if( empty( $astart ) && isset( $a->dtstart['value'] )) |
| 1139 | - $astart = & $a->dtstart['value']; |
|
| 1138 | + $astart = & $a->dtstart['value']; |
|
| 1140 | 1139 | $bstart = ( isset( $b->xprop['X-CURRENT-DTSTART']['value'] )) ? $b->_date_time_string( $b->xprop['X-CURRENT-DTSTART']['value'] ) : null; |
| 1141 | 1140 | if( empty( $bstart ) && isset( $b->dtstart['value'] )) |
| 1142 | - $bstart = & $b->dtstart['value']; |
|
| 1141 | + $bstart = & $b->dtstart['value']; |
|
| 1143 | 1142 | if( empty( $astart )) return -1; |
| 1144 | 1143 | elseif( empty( $bstart )) return 1; |
| 1145 | 1144 | foreach( $this->_sortkeys as $key ) { |
| 1146 | - if ( empty( $astart[$key] )) return -1; |
|
| 1147 | - elseif( empty( $bstart[$key] )) return 1; |
|
| 1148 | - if ( $astart[$key] == $bstart[$key]) continue; |
|
| 1149 | - if (( (int) $astart[$key] ) < ((int) $bstart[$key] )) |
|
| 1150 | - return -1; |
|
| 1151 | - elseif(( (int) $astart[$key] ) > ((int) $bstart[$key] )) |
|
| 1152 | - return 1; |
|
| 1145 | + if ( empty( $astart[$key] )) return -1; |
|
| 1146 | + elseif( empty( $bstart[$key] )) return 1; |
|
| 1147 | + if ( $astart[$key] == $bstart[$key]) continue; |
|
| 1148 | + if (( (int) $astart[$key] ) < ((int) $bstart[$key] )) |
|
| 1149 | + return -1; |
|
| 1150 | + elseif(( (int) $astart[$key] ) > ((int) $bstart[$key] )) |
|
| 1151 | + return 1; |
|
| 1153 | 1152 | } |
| 1154 | 1153 | $c = ( isset( $a->xprop['X-CURRENT-DTEND']['value'] )) ? $a->_date_time_string( $a->xprop['X-CURRENT-DTEND']['value'] ) : null; |
| 1155 | 1154 | if( empty( $c ) && !empty( $a->dtend['value'] )) |
| 1156 | - $c = & $a->dtend['value']; |
|
| 1155 | + $c = & $a->dtend['value']; |
|
| 1157 | 1156 | if( empty( $c ) && isset( $a->xprop['X-CURRENT-DUE']['value'] )) |
| 1158 | - $c = $a->_date_time_string( $a->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1157 | + $c = $a->_date_time_string( $a->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1159 | 1158 | if( empty( $c ) && !empty( $a->due['value'] )) |
| 1160 | - $c = & $a->due['value']; |
|
| 1159 | + $c = & $a->due['value']; |
|
| 1161 | 1160 | if( empty( $c ) && !empty( $a->duration['value'] )) |
| 1162 | - $c = $a->duration2date(); |
|
| 1161 | + $c = $a->duration2date(); |
|
| 1163 | 1162 | $d = ( isset( $b->xprop['X-CURRENT-DTEND']['value'] )) ? $b->_date_time_string( $b->xprop['X-CURRENT-DTEND']['value'] ) : null; |
| 1164 | 1163 | if( empty( $d ) && !empty( $b->dtend['value'] )) |
| 1165 | - $d = & $b->dtend['value']; |
|
| 1164 | + $d = & $b->dtend['value']; |
|
| 1166 | 1165 | if( empty( $d ) && isset( $b->xprop['X-CURRENT-DUE']['value'] )) |
| 1167 | - $d = $b->_date_time_string( $b->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1166 | + $d = $b->_date_time_string( $b->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1168 | 1167 | if( empty( $d ) && !empty( $b->due['value'] )) |
| 1169 | - $d = & $b->due['value']; |
|
| 1168 | + $d = & $b->due['value']; |
|
| 1170 | 1169 | if( empty( $d ) && !empty( $b->duration['value'] )) |
| 1171 | - $d = $b->duration2date(); |
|
| 1170 | + $d = $b->duration2date(); |
|
| 1172 | 1171 | if( empty( $c )) return -1; |
| 1173 | 1172 | elseif( empty( $d )) return 1; |
| 1174 | 1173 | foreach( $this->_sortkeys as $key ) { |
| 1175 | - if ( !isset( $c[$key] )) return -1; |
|
| 1176 | - elseif( !isset( $d[$key] )) return 1; |
|
| 1177 | - if ( $c[$key] == $d[$key] ) continue; |
|
| 1178 | - if (( (int) $c[$key] ) < ((int) $d[$key])) return -1; |
|
| 1179 | - elseif(( (int) $c[$key] ) > ((int) $d[$key])) return 1; |
|
| 1174 | + if ( !isset( $c[$key] )) return -1; |
|
| 1175 | + elseif( !isset( $d[$key] )) return 1; |
|
| 1176 | + if ( $c[$key] == $d[$key] ) continue; |
|
| 1177 | + if (( (int) $c[$key] ) < ((int) $d[$key])) return -1; |
|
| 1178 | + elseif(( (int) $c[$key] ) > ((int) $d[$key])) return 1; |
|
| 1180 | 1179 | } |
| 1181 | 1180 | if( isset( $a->created['value'] )) |
| 1182 | - $e = & $a->created['value']; |
|
| 1181 | + $e = & $a->created['value']; |
|
| 1183 | 1182 | else |
| 1184 | - $e = & $a->dtstamp['value']; |
|
| 1183 | + $e = & $a->dtstamp['value']; |
|
| 1185 | 1184 | if( isset( $b->created['value'] )) |
| 1186 | - $f = & $b->created['value']; |
|
| 1185 | + $f = & $b->created['value']; |
|
| 1187 | 1186 | else |
| 1188 | - $f = & $b->dtstamp['value']; |
|
| 1187 | + $f = & $b->dtstamp['value']; |
|
| 1189 | 1188 | foreach( $this->_sortkeys as $key ) { |
| 1190 | - if( !isset( $e[$key] )) return -1; |
|
| 1191 | - elseif( !isset( $f[$key] )) return 1; |
|
| 1192 | - if ( $e[$key] == $f[$key] ) continue; |
|
| 1193 | - if (( (int) $e[$key] ) < ((int) $f[$key])) return -1; |
|
| 1194 | - elseif(( (int) $e[$key] ) > ((int) $f[$key])) return 1; |
|
| 1189 | + if( !isset( $e[$key] )) return -1; |
|
| 1190 | + elseif( !isset( $f[$key] )) return 1; |
|
| 1191 | + if ( $e[$key] == $f[$key] ) continue; |
|
| 1192 | + if (( (int) $e[$key] ) < ((int) $f[$key])) return -1; |
|
| 1193 | + elseif(( (int) $e[$key] ) > ((int) $f[$key])) return 1; |
|
| 1195 | 1194 | } |
| 1196 | 1195 | if (( $a->uid['value'] ) < |
| 1197 | - ( $b->uid['value'] )) return -1; |
|
| 1196 | + ( $b->uid['value'] )) return -1; |
|
| 1198 | 1197 | elseif(( $a->uid['value'] ) > |
| 1199 | - ( $b->uid['value'] )) return 1; |
|
| 1198 | + ( $b->uid['value'] )) return 1; |
|
| 1200 | 1199 | return 0; |
| 1201 | - } |
|
| 1200 | + } |
|
| 1202 | 1201 | /** |
| 1203 | - * parse iCal file into vcalendar, components, properties and parameters |
|
| 1204 | - * |
|
| 1205 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1206 | - * @since 2.4.10 - 2008-08-06 |
|
| 1207 | - * @param string $filename optional filname (incl. opt. directory/path) or URL |
|
| 1208 | - * @return bool FALSE if error occurs during parsing |
|
| 1209 | - * |
|
| 1210 | - */ |
|
| 1211 | - function parse( $filename=FALSE ) { |
|
| 1202 | + * parse iCal file into vcalendar, components, properties and parameters |
|
| 1203 | + * |
|
| 1204 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1205 | + * @since 2.4.10 - 2008-08-06 |
|
| 1206 | + * @param string $filename optional filname (incl. opt. directory/path) or URL |
|
| 1207 | + * @return bool FALSE if error occurs during parsing |
|
| 1208 | + * |
|
| 1209 | + */ |
|
| 1210 | + function parse( $filename=FALSE ) { |
|
| 1212 | 1211 | if( !$filename ) { |
| 1213 | 1212 | /* directory/filename previous set via setConfig directory+filename / url */ |
| 1214 | - if( FALSE === ( $filename = $this->getConfig( 'url' ))) |
|
| 1213 | + if( FALSE === ( $filename = $this->getConfig( 'url' ))) |
|
| 1215 | 1214 | $filename = $this->getConfig( 'dirfile' ); |
| 1216 | 1215 | } |
| 1217 | 1216 | elseif(( 'http://' == strtolower( substr( $filename, 0, 7 ))) || |
| 1218 | 1217 | ( 'webcal://' == strtolower( substr( $filename, 0, 9 )))) { |
| 1219 | 1218 | /* remote file - URL */ |
| 1220 | - $this->setConfig( 'URL', $filename ); |
|
| 1221 | - if( !$filename = $this->getConfig( 'url' )) |
|
| 1219 | + $this->setConfig( 'URL', $filename ); |
|
| 1220 | + if( !$filename = $this->getConfig( 'url' )) |
|
| 1222 | 1221 | return FALSE; /* err 2 */ |
| 1223 | 1222 | } |
| 1224 | 1223 | else { |
| 1225 | 1224 | /* local directory/filename */ |
| 1226 | - $parts = pathinfo( $filename ); |
|
| 1227 | - if( !empty( $parts['dirname'] ) && ( '.' != $parts['dirname'] )) { |
|
| 1225 | + $parts = pathinfo( $filename ); |
|
| 1226 | + if( !empty( $parts['dirname'] ) && ( '.' != $parts['dirname'] )) { |
|
| 1228 | 1227 | if( !$this->setConfig( 'directory', $parts['dirname'] )) |
| 1229 | - return FALSE; /* err 3 */ |
|
| 1230 | - } |
|
| 1231 | - if( !$this->setConfig( 'filename', $parts['basename'] )) |
|
| 1228 | + return FALSE; /* err 3 */ |
|
| 1229 | + } |
|
| 1230 | + if( !$this->setConfig( 'filename', $parts['basename'] )) |
|
| 1232 | 1231 | return FALSE; /* err 4 */ |
| 1233 | 1232 | } |
| 1234 | 1233 | if( 'http://' != substr( $filename, 0, 7 )) { |
| 1235 | 1234 | /* local file error tests */ |
| 1236 | - if( !is_file( $filename )) /* err 5 */ |
|
| 1235 | + if( !is_file( $filename )) /* err 5 */ |
|
| 1237 | 1236 | return FALSE; |
| 1238 | - if( !is_readable( $filename )) |
|
| 1237 | + if( !is_readable( $filename )) |
|
| 1239 | 1238 | return FALSE; /* err 6 */ |
| 1240 | - if( !filesize( $filename )) |
|
| 1239 | + if( !filesize( $filename )) |
|
| 1241 | 1240 | return FALSE; /* err 7 */ |
| 1242 | - clearstatcache(); |
|
| 1241 | + clearstatcache(); |
|
| 1243 | 1242 | } |
| 1244 | 1243 | /* READ FILE */ |
| 1245 | 1244 | if( FALSE === ( $rows = file( $filename ))) |
| 1246 | - return FALSE; /* err 1 */ |
|
| 1245 | + return FALSE; /* err 1 */ |
|
| 1247 | 1246 | /* identify BEGIN:VCALENDAR, MUST be first row */ |
| 1248 | 1247 | if( 'BEGIN:VCALENDAR' != strtoupper( trim( $rows[0] ))) |
| 1249 | - return FALSE; /* err 8 */ |
|
| 1248 | + return FALSE; /* err 8 */ |
|
| 1250 | 1249 | /* remove empty trailing lines */ |
| 1251 | 1250 | while( '' == trim( $rows[count( $rows ) - 1] )) { |
| 1252 | - unset( $rows[count( $rows ) - 1] ); |
|
| 1253 | - $rows = array_values( $rows ); |
|
| 1251 | + unset( $rows[count( $rows ) - 1] ); |
|
| 1252 | + $rows = array_values( $rows ); |
|
| 1254 | 1253 | } |
| 1255 | 1254 | /* identify ending END:VCALENDAR row */ |
| 1256 | 1255 | if( 'END:VCALENDAR' != strtoupper( trim( $rows[count( $rows ) - 1] ))) { |
| 1257 | - return FALSE; /* err 9 */ |
|
| 1256 | + return FALSE; /* err 9 */ |
|
| 1258 | 1257 | } |
| 1259 | 1258 | if( 3 > count( $rows )) |
| 1260 | - return FALSE; /* err 10 */ |
|
| 1259 | + return FALSE; /* err 10 */ |
|
| 1261 | 1260 | $comp = $subcomp = null; |
| 1262 | 1261 | $actcomp = & $this; |
| 1263 | 1262 | $nl = $this->getConfig( 'nl' ); |
| 1264 | 1263 | $calsync = 0; |
| 1265 | 1264 | /* identify components and update unparsed data within component */ |
| 1266 | 1265 | foreach( $rows as $line ) { |
| 1267 | - if( '' == trim( $line )) |
|
| 1266 | + if( '' == trim( $line )) |
|
| 1268 | 1267 | continue; |
| 1269 | - if( $nl == substr( $line, 0 - strlen( $nl ))) |
|
| 1268 | + if( $nl == substr( $line, 0 - strlen( $nl ))) |
|
| 1270 | 1269 | $line = substr( $line, 0, ( strlen( $line ) - strlen( $nl ))).'\n'; |
| 1271 | - if( 'BEGIN:VCALENDAR' == strtoupper( substr( $line, 0, 15 ))) { |
|
| 1270 | + if( 'BEGIN:VCALENDAR' == strtoupper( substr( $line, 0, 15 ))) { |
|
| 1272 | 1271 | $calsync++; |
| 1273 | 1272 | continue; |
| 1274 | - } |
|
| 1275 | - elseif( 'END:VCALENDAR' == strtoupper( substr( $line, 0, 13 ))) { |
|
| 1273 | + } |
|
| 1274 | + elseif( 'END:VCALENDAR' == strtoupper( substr( $line, 0, 13 ))) { |
|
| 1276 | 1275 | $calsync--; |
| 1277 | 1276 | continue; |
| 1278 | - } |
|
| 1279 | - elseif( 1 != $calsync ) |
|
| 1277 | + } |
|
| 1278 | + elseif( 1 != $calsync ) |
|
| 1280 | 1279 | return FALSE; /* err 20 */ |
| 1281 | - if( 'END:' == strtoupper( substr( $line, 0, 4 ))) { |
|
| 1280 | + if( 'END:' == strtoupper( substr( $line, 0, 4 ))) { |
|
| 1282 | 1281 | if( null != $subcomp ) { |
| 1283 | - $comp->setComponent( $subcomp ); |
|
| 1284 | - $subcomp = null; |
|
| 1282 | + $comp->setComponent( $subcomp ); |
|
| 1283 | + $subcomp = null; |
|
| 1285 | 1284 | } |
| 1286 | 1285 | else { |
| 1287 | - $this->setComponent( $comp ); |
|
| 1288 | - $comp = null; |
|
| 1286 | + $this->setComponent( $comp ); |
|
| 1287 | + $comp = null; |
|
| 1289 | 1288 | } |
| 1290 | 1289 | $actcomp = null; |
| 1291 | 1290 | continue; |
| 1292 | - } // end - if ( 'END:' ==.. . |
|
| 1293 | - elseif( 'BEGIN:' == strtoupper( substr( $line, 0, 6 ))) { |
|
| 1291 | + } // end - if ( 'END:' ==.. . |
|
| 1292 | + elseif( 'BEGIN:' == strtoupper( substr( $line, 0, 6 ))) { |
|
| 1294 | 1293 | $line = str_replace( '\n', '', $line ); |
| 1295 | 1294 | $compname = trim (strtoupper( substr( $line, 6 ))); |
| 1296 | 1295 | if( null != $comp ) { |
| 1297 | - if( 'VALARM' == $compname ) |
|
| 1296 | + if( 'VALARM' == $compname ) |
|
| 1298 | 1297 | $subcomp = new valarm(); |
| 1299 | - elseif( 'STANDARD' == $compname ) |
|
| 1298 | + elseif( 'STANDARD' == $compname ) |
|
| 1300 | 1299 | $subcomp = new vtimezone( 'STANDARD' ); |
| 1301 | - elseif( 'DAYLIGHT' == $compname ) |
|
| 1300 | + elseif( 'DAYLIGHT' == $compname ) |
|
| 1302 | 1301 | $subcomp = new vtimezone( 'DAYLIGHT' ); |
| 1303 | - else |
|
| 1302 | + else |
|
| 1304 | 1303 | return FALSE; /* err 6 */ |
| 1305 | - $actcomp = & $subcomp; |
|
| 1304 | + $actcomp = & $subcomp; |
|
| 1306 | 1305 | } |
| 1307 | 1306 | else { |
| 1308 | - switch( $compname ) { |
|
| 1307 | + switch( $compname ) { |
|
| 1309 | 1308 | case 'VALARM': |
| 1310 | 1309 | $comp = new valarm(); |
| 1311 | - break; |
|
| 1310 | + break; |
|
| 1312 | 1311 | case 'VEVENT': |
| 1313 | 1312 | $comp = new vevent(); |
| 1314 | - break; |
|
| 1313 | + break; |
|
| 1315 | 1314 | case 'VFREEBUSY'; |
| 1316 | - $comp = new vfreebusy(); |
|
| 1317 | - break; |
|
| 1315 | + $comp = new vfreebusy(); |
|
| 1316 | + break; |
|
| 1318 | 1317 | case 'VJOURNAL': |
| 1319 | 1318 | $comp = new vjournal(); |
| 1320 | - break; |
|
| 1319 | + break; |
|
| 1321 | 1320 | case 'VTODO': |
| 1322 | 1321 | $comp = new vtodo(); |
| 1323 | - break; |
|
| 1322 | + break; |
|
| 1324 | 1323 | case 'VTIMEZONE': |
| 1325 | 1324 | $comp = new vtimezone(); |
| 1326 | - break; |
|
| 1325 | + break; |
|
| 1327 | 1326 | default: |
| 1328 | 1327 | return FALSE; // err 7 |
| 1329 | - break; |
|
| 1330 | - } // end - switch |
|
| 1331 | - $actcomp = & $comp; |
|
| 1328 | + break; |
|
| 1329 | + } // end - switch |
|
| 1330 | + $actcomp = & $comp; |
|
| 1332 | 1331 | } |
| 1333 | 1332 | continue; |
| 1334 | - } // end - elsif ( 'BEGIN:'.. . |
|
| 1333 | + } // end - elsif ( 'BEGIN:'.. . |
|
| 1335 | 1334 | /* update selected component with unparsed data */ |
| 1336 | - $actcomp->unparsed[] = $line; |
|
| 1335 | + $actcomp->unparsed[] = $line; |
|
| 1337 | 1336 | } // end - foreach( rows.. . |
| 1338 | 1337 | /* parse data for calendar (this) object */ |
| 1339 | 1338 | if( is_array( $this->unparsed ) && ( 0 < count( $this->unparsed ))) { |
| 1340 | 1339 | /* concatenate property values spread over several lines */ |
| 1341 | - $lastix = -1; |
|
| 1342 | - $propnames = array( 'calscale','method','prodid','version','x-' ); |
|
| 1343 | - $proprows = array(); |
|
| 1344 | - foreach( $this->unparsed as $line ) { |
|
| 1340 | + $lastix = -1; |
|
| 1341 | + $propnames = array( 'calscale','method','prodid','version','x-' ); |
|
| 1342 | + $proprows = array(); |
|
| 1343 | + foreach( $this->unparsed as $line ) { |
|
| 1345 | 1344 | $newProp = FALSE; |
| 1346 | 1345 | foreach ( $propnames as $propname ) { |
| 1347 | - if( $propname == strtolower( substr( $line, 0, strlen( $propname )))) { |
|
| 1346 | + if( $propname == strtolower( substr( $line, 0, strlen( $propname )))) { |
|
| 1348 | 1347 | $newProp = TRUE; |
| 1349 | 1348 | break; |
| 1350 | - } |
|
| 1349 | + } |
|
| 1351 | 1350 | } |
| 1352 | 1351 | if( $newProp ) { |
| 1353 | - $newProp = FALSE; |
|
| 1354 | - $lastix++; |
|
| 1355 | - $proprows[$lastix] = $line; |
|
| 1352 | + $newProp = FALSE; |
|
| 1353 | + $lastix++; |
|
| 1354 | + $proprows[$lastix] = $line; |
|
| 1356 | 1355 | } |
| 1357 | 1356 | else { |
| 1358 | 1357 | /* remove line breaks */ |
| 1359 | - if(( '\n' == substr( $proprows[$lastix], -2 )) && |
|
| 1358 | + if(( '\n' == substr( $proprows[$lastix], -2 )) && |
|
| 1360 | 1359 | ( ' ' == substr( $line, 0, 1 ))) { |
| 1361 | 1360 | $proprows[$lastix] = substr( $proprows[$lastix], 0, strlen( $proprows[$lastix] ) - 2 ); |
| 1362 | 1361 | $line = substr( $line, 1 ); |
| 1363 | - } |
|
| 1364 | - $proprows[$lastix] .= $line; |
|
| 1362 | + } |
|
| 1363 | + $proprows[$lastix] .= $line; |
|
| 1365 | 1364 | } |
| 1366 | - } |
|
| 1367 | - $toolbox = new calendarComponent(); |
|
| 1368 | - foreach( $proprows as $line ) { |
|
| 1365 | + } |
|
| 1366 | + $toolbox = new calendarComponent(); |
|
| 1367 | + foreach( $proprows as $line ) { |
|
| 1369 | 1368 | if( '\n' == substr( $line, -2 )) |
| 1370 | - $line = substr( $line, 0, strlen( $line ) - 2 ); |
|
| 1369 | + $line = substr( $line, 0, strlen( $line ) - 2 ); |
|
| 1371 | 1370 | /* get propname */ |
| 1372 | 1371 | $cix = $propname = null; |
| 1373 | 1372 | for( $cix=0; $cix < strlen( $line ); $cix++ ) { |
| 1374 | - if( in_array( $line{$cix}, array( ':', ';' ))) |
|
| 1373 | + if( in_array( $line{$cix}, array( ':', ';' ))) |
|
| 1375 | 1374 | break; |
| 1376 | - else |
|
| 1375 | + else |
|
| 1377 | 1376 | $propname .= $line{$cix}; |
| 1378 | 1377 | } |
| 1379 | 1378 | /* ignore version/prodid properties */ |
| 1380 | 1379 | if( in_array( strtoupper( $propname ), array( 'VERSION', 'PRODID' ))) |
| 1381 | - continue; |
|
| 1380 | + continue; |
|
| 1382 | 1381 | $line = substr( $line, $cix); |
| 1383 | 1382 | /* separate attributes from value */ |
| 1384 | 1383 | $attr = array(); |
| 1385 | 1384 | $attrix = -1; |
| 1386 | 1385 | $strlen = strlen( $line ); |
| 1387 | 1386 | for( $cix=0; $cix < $strlen; $cix++ ) { |
| 1388 | - if(( ':' == $line{$cix} ) && |
|
| 1387 | + if(( ':' == $line{$cix} ) && |
|
| 1389 | 1388 | ( '://' != substr( $line, $cix, 3 )) && |
| 1390 | 1389 | ( 'mailto:' != strtolower( substr( $line, $cix - 6, 7 )))) { |
| 1391 | 1390 | $attrEnd = TRUE; |
| 1392 | 1391 | if(( $cix < ( $strlen - 4 )) && |
| 1393 | 1392 | ctype_digit( substr( $line, $cix+1, 4 ))) { // an URI with a (4pos) portnr?? |
| 1394 | - for( $c2ix = $cix; 3 < $c2ix; $c2ix-- ) { |
|
| 1393 | + for( $c2ix = $cix; 3 < $c2ix; $c2ix-- ) { |
|
| 1395 | 1394 | if( '://' == substr( $line, $c2ix - 2, 3 )) { |
| 1396 | - $attrEnd = FALSE; |
|
| 1397 | - break; // an URI with a portnr!! |
|
| 1395 | + $attrEnd = FALSE; |
|
| 1396 | + break; // an URI with a portnr!! |
|
| 1397 | + } |
|
| 1398 | 1398 | } |
| 1399 | - } |
|
| 1400 | 1399 | } |
| 1401 | 1400 | if( $attrEnd) { |
| 1402 | - $line = substr( $line, $cix + 1 ); |
|
| 1403 | - break; |
|
| 1401 | + $line = substr( $line, $cix + 1 ); |
|
| 1402 | + break; |
|
| 1403 | + } |
|
| 1404 | 1404 | } |
| 1405 | - } |
|
| 1406 | - if( ';' == $line{$cix} ) |
|
| 1405 | + if( ';' == $line{$cix} ) |
|
| 1407 | 1406 | $attr[++$attrix] = null; |
| 1408 | - else |
|
| 1407 | + else |
|
| 1409 | 1408 | $attr[$attrix] .= $line{$cix}; |
| 1410 | 1409 | } |
| 1411 | 1410 | |
| 1412 | 1411 | /* make attributes in array format */ |
| 1413 | 1412 | $propattr = array(); |
| 1414 | 1413 | foreach( $attr as $attribute ) { |
| 1415 | - $attrsplit = explode( '=', $attribute, 2 ); |
|
| 1416 | - if( 1 < count( $attrsplit )) |
|
| 1414 | + $attrsplit = explode( '=', $attribute, 2 ); |
|
| 1415 | + if( 1 < count( $attrsplit )) |
|
| 1417 | 1416 | $propattr[$attrsplit[0]] = $attrsplit[1]; |
| 1418 | - else |
|
| 1417 | + else |
|
| 1419 | 1418 | $propattr[] = $attribute; |
| 1420 | 1419 | } |
| 1421 | 1420 | /* update Property */ |
| 1422 | 1421 | if( FALSE !== strpos( $line, ',' )) { |
| 1423 | - $content = explode( ',', $line ); |
|
| 1424 | - $clen = count( $content ); |
|
| 1425 | - for( $cix = 0; $cix < $clen; $cix++ ) { |
|
| 1422 | + $content = explode( ',', $line ); |
|
| 1423 | + $clen = count( $content ); |
|
| 1424 | + for( $cix = 0; $cix < $clen; $cix++ ) { |
|
| 1426 | 1425 | if( "\\" == substr( $content[$cix], -1 )) { |
| 1427 | - $content[$cix] .= ','.$content[$cix + 1]; |
|
| 1428 | - unset( $content[$cix + 1] ); |
|
| 1429 | - $cix++; |
|
| 1426 | + $content[$cix] .= ','.$content[$cix + 1]; |
|
| 1427 | + unset( $content[$cix + 1] ); |
|
| 1428 | + $cix++; |
|
| 1429 | + } |
|
| 1430 | 1430 | } |
| 1431 | - } |
|
| 1432 | - if( 1 < count( $content )) { |
|
| 1431 | + if( 1 < count( $content )) { |
|
| 1433 | 1432 | foreach( $content as $cix => $contentPart ) |
| 1434 | - $content[$cix] = $toolbox->_strunrep( $contentPart ); |
|
| 1433 | + $content[$cix] = $toolbox->_strunrep( $contentPart ); |
|
| 1435 | 1434 | $this->setProperty( $propname, $content, $propattr ); |
| 1436 | 1435 | continue; |
| 1437 | - } |
|
| 1438 | - else |
|
| 1436 | + } |
|
| 1437 | + else |
|
| 1439 | 1438 | $line = reset( $content ); |
| 1440 | - $line = $toolbox->_strunrep( $line ); |
|
| 1439 | + $line = $toolbox->_strunrep( $line ); |
|
| 1441 | 1440 | } |
| 1442 | 1441 | $this->setProperty( $propname, trim( $line ), $propattr ); |
| 1443 | - } // end - foreach( $this->unparsed.. . |
|
| 1442 | + } // end - foreach( $this->unparsed.. . |
|
| 1444 | 1443 | } // end - if( is_array( $this->unparsed.. . |
| 1445 | 1444 | /* parse Components */ |
| 1446 | 1445 | if( is_array( $this->components ) && ( 0 < count( $this->components ))) { |
| 1447 | - for( $six = 0; $six < count( $this->components ); $six++ ) { |
|
| 1446 | + for( $six = 0; $six < count( $this->components ); $six++ ) { |
|
| 1448 | 1447 | if( !empty( $this->components[$six] )) |
| 1449 | - $this->components[$six]->parse(); |
|
| 1450 | - } |
|
| 1448 | + $this->components[$six]->parse(); |
|
| 1449 | + } |
|
| 1451 | 1450 | } |
| 1452 | 1451 | else |
| 1453 | - return FALSE; /* err 91 or something.. . */ |
|
| 1452 | + return FALSE; /* err 91 or something.. . */ |
|
| 1454 | 1453 | return TRUE; |
| 1455 | - } |
|
| 1454 | + } |
|
| 1456 | 1455 | /*********************************************************************************/ |
| 1457 | 1456 | /** |
| 1458 | - * creates formatted output for calendar object instance |
|
| 1459 | - * |
|
| 1460 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1461 | - * @since 2.4.10 - 2008-08-06 |
|
| 1462 | - * @return string |
|
| 1463 | - */ |
|
| 1464 | - function createCalendar() { |
|
| 1457 | + * creates formatted output for calendar object instance |
|
| 1458 | + * |
|
| 1459 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1460 | + * @since 2.4.10 - 2008-08-06 |
|
| 1461 | + * @return string |
|
| 1462 | + */ |
|
| 1463 | + function createCalendar() { |
|
| 1465 | 1464 | $calendarInit1 = $calendarInit2 = $calendarxCaldecl = $calendarStart = $calendar = null; |
| 1466 | 1465 | switch( $this->format ) { |
| 1467 | - case 'xcal': |
|
| 1466 | + case 'xcal': |
|
| 1468 | 1467 | $calendarInit1 = '<?xml version="1.0" encoding="UTF-8"?>'.$this->nl. |
| 1469 | - '<!DOCTYPE iCalendar PUBLIC "-//IETF//DTD XCAL/iCalendar XML//EN"'.$this->nl. |
|
| 1470 | - '"http://www.ietf.org/internet-drafts/draft-ietf-calsch-many-xcal-01.txt"'; |
|
| 1468 | + '<!DOCTYPE iCalendar PUBLIC "-//IETF//DTD XCAL/iCalendar XML//EN"'.$this->nl. |
|
| 1469 | + '"http://www.ietf.org/internet-drafts/draft-ietf-calsch-many-xcal-01.txt"'; |
|
| 1471 | 1470 | $calendarInit2 = '>'.$this->nl; |
| 1472 | 1471 | $calendarStart = '<vcalendar'; |
| 1473 | 1472 | break; |
| 1474 | - default: |
|
| 1473 | + default: |
|
| 1475 | 1474 | $calendarStart = 'BEGIN:VCALENDAR'.$this->nl; |
| 1476 | 1475 | break; |
| 1477 | 1476 | } |
@@ -1480,217 +1479,217 @@ discard block |
||
| 1480 | 1479 | $calendarStart .= $this->createProdid(); |
| 1481 | 1480 | $calendarStart .= $this->createVersion(); |
| 1482 | 1481 | switch( $this->format ) { |
| 1483 | - case 'xcal': |
|
| 1482 | + case 'xcal': |
|
| 1484 | 1483 | $nlstrlen = strlen( $this->nl ); |
| 1485 | 1484 | if( $this->nl == substr( $calendarStart, ( 0 - $nlstrlen ))) |
| 1486 | - $calendarStart = substr( $calendarStart, 0, ( strlen( $calendarStart ) - $nlstrlen )); |
|
| 1485 | + $calendarStart = substr( $calendarStart, 0, ( strlen( $calendarStart ) - $nlstrlen )); |
|
| 1487 | 1486 | $calendarStart .= '>'.$this->nl; |
| 1488 | 1487 | break; |
| 1489 | - default: |
|
| 1488 | + default: |
|
| 1490 | 1489 | break; |
| 1491 | 1490 | } |
| 1492 | 1491 | $calendar .= $this->createXprop(); |
| 1493 | 1492 | foreach( $this->components as $component ) { |
| 1494 | - if( empty( $component )) continue; |
|
| 1495 | - if( '' >= $component->getConfig( 'language')) |
|
| 1493 | + if( empty( $component )) continue; |
|
| 1494 | + if( '' >= $component->getConfig( 'language')) |
|
| 1496 | 1495 | $component->setConfig( 'language', $this->getConfig( 'language' )); |
| 1497 | - $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
|
| 1498 | - $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
|
| 1499 | - $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
|
| 1500 | - $component->setConfig( 'format', $this->getConfig( 'format' )); |
|
| 1501 | - $calendar .= $component->createComponent( $this->xcaldecl ); |
|
| 1496 | + $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
|
| 1497 | + $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
|
| 1498 | + $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
|
| 1499 | + $component->setConfig( 'format', $this->getConfig( 'format' )); |
|
| 1500 | + $calendar .= $component->createComponent( $this->xcaldecl ); |
|
| 1502 | 1501 | } |
| 1503 | 1502 | if(( 0 < count( $this->xcaldecl )) && ( 'xcal' == $this->format )) { // xCal only |
| 1504 | - $calendarInit1 .= $this->nl.'['.$this->nl; |
|
| 1505 | - $old_xcaldecl = array(); |
|
| 1506 | - foreach( $this->xcaldecl as $declix => $declPart ) { |
|
| 1503 | + $calendarInit1 .= $this->nl.'['.$this->nl; |
|
| 1504 | + $old_xcaldecl = array(); |
|
| 1505 | + foreach( $this->xcaldecl as $declix => $declPart ) { |
|
| 1507 | 1506 | if(( 0 < count( $old_xcaldecl)) && |
| 1508 | 1507 | ( in_array( $declPart['uri'], $old_xcaldecl['uri'] )) && |
| 1509 | 1508 | ( in_array( $declPart['external'], $old_xcaldecl['external'] ))) |
| 1510 | - continue; // no duplicate uri and ext. references |
|
| 1509 | + continue; // no duplicate uri and ext. references |
|
| 1511 | 1510 | $calendarxCaldecl .= '<!'; |
| 1512 | 1511 | foreach( $declPart as $declKey => $declValue ) { |
| 1513 | - switch( $declKey ) { // index |
|
| 1512 | + switch( $declKey ) { // index |
|
| 1514 | 1513 | case 'xmldecl': // no 1 |
| 1515 | 1514 | $calendarxCaldecl .= $declValue.' '; |
| 1516 | - break; |
|
| 1515 | + break; |
|
| 1517 | 1516 | case 'uri': // no 2 |
| 1518 | 1517 | $calendarxCaldecl .= $declValue.' '; |
| 1519 | - $old_xcaldecl['uri'][] = $declValue; |
|
| 1520 | - break; |
|
| 1518 | + $old_xcaldecl['uri'][] = $declValue; |
|
| 1519 | + break; |
|
| 1521 | 1520 | case 'ref': // no 3 |
| 1522 | 1521 | $calendarxCaldecl .= $declValue.' '; |
| 1523 | - break; |
|
| 1522 | + break; |
|
| 1524 | 1523 | case 'external': // no 4 |
| 1525 | 1524 | $calendarxCaldecl .= '"'.$declValue.'" '; |
| 1526 | - $old_xcaldecl['external'][] = $declValue; |
|
| 1527 | - break; |
|
| 1525 | + $old_xcaldecl['external'][] = $declValue; |
|
| 1526 | + break; |
|
| 1528 | 1527 | case 'type': // no 5 |
| 1529 | 1528 | $calendarxCaldecl .= $declValue.' '; |
| 1530 | - break; |
|
| 1529 | + break; |
|
| 1531 | 1530 | case 'type2': // no 6 |
| 1532 | 1531 | $calendarxCaldecl .= $declValue; |
| 1533 | - break; |
|
| 1534 | - } |
|
| 1532 | + break; |
|
| 1533 | + } |
|
| 1535 | 1534 | } |
| 1536 | 1535 | $calendarxCaldecl .= '>'.$this->nl; |
| 1537 | - } |
|
| 1538 | - $calendarInit2 = ']'.$calendarInit2; |
|
| 1536 | + } |
|
| 1537 | + $calendarInit2 = ']'.$calendarInit2; |
|
| 1539 | 1538 | } |
| 1540 | 1539 | switch( $this->format ) { |
| 1541 | - case 'xcal': |
|
| 1540 | + case 'xcal': |
|
| 1542 | 1541 | $calendar .= '</vcalendar>'.$this->nl; |
| 1543 | 1542 | break; |
| 1544 | - default: |
|
| 1543 | + default: |
|
| 1545 | 1544 | $calendar .= 'END:VCALENDAR'.$this->nl; |
| 1546 | 1545 | break; |
| 1547 | 1546 | } |
| 1548 | 1547 | return $calendarInit1.$calendarxCaldecl.$calendarInit2.$calendarStart.$calendar; |
| 1549 | - } |
|
| 1548 | + } |
|
| 1550 | 1549 | /** |
| 1551 | - * a HTTP redirect header is sent with created, updated and/or parsed calendar |
|
| 1552 | - * |
|
| 1553 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1554 | - * @since 2.2.12 - 2007-10-23 |
|
| 1555 | - * @return redirect |
|
| 1556 | - */ |
|
| 1557 | - function returnCalendar() { |
|
| 1550 | + * a HTTP redirect header is sent with created, updated and/or parsed calendar |
|
| 1551 | + * |
|
| 1552 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1553 | + * @since 2.2.12 - 2007-10-23 |
|
| 1554 | + * @return redirect |
|
| 1555 | + */ |
|
| 1556 | + function returnCalendar() { |
|
| 1558 | 1557 | $filename = $this->getConfig( 'filename' ); |
| 1559 | 1558 | $output = $this->createCalendar(); |
| 1560 | 1559 | $filesize = strlen( $output ); |
| 1561 | 1560 | // if( headers_sent( $filename, $linenum )) |
| 1562 | 1561 | // die( "Headers already sent in $filename on line $linenum\n" ); |
| 1563 | 1562 | if( 'xcal' == $this->format ) |
| 1564 | - header( 'Content-Type: application/calendar+xml; charset=utf-8' ); |
|
| 1563 | + header( 'Content-Type: application/calendar+xml; charset=utf-8' ); |
|
| 1565 | 1564 | else |
| 1566 | - header( 'Content-Type: text/calendar; charset=utf-8' ); |
|
| 1565 | + header( 'Content-Type: text/calendar; charset=utf-8' ); |
|
| 1567 | 1566 | header( 'Content-Length: '.$filesize ); |
| 1568 | 1567 | header( 'Content-Disposition: attachment; filename="'.$filename.'"' ); |
| 1569 | 1568 | header( 'Cache-Control: max-age=10' ); |
| 1570 | 1569 | echo $output; |
| 1571 | 1570 | die(); |
| 1572 | - } |
|
| 1571 | + } |
|
| 1573 | 1572 | /** |
| 1574 | - * save content in a file |
|
| 1575 | - * |
|
| 1576 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1577 | - * @since 2.2.12 - 2007-12-30 |
|
| 1578 | - * @param string $directory optional |
|
| 1579 | - * @param string $filename optional |
|
| 1580 | - * @param string $delimiter optional |
|
| 1581 | - * @return bool |
|
| 1582 | - */ |
|
| 1583 | - function saveCalendar( $directory=FALSE, $filename=FALSE, $delimiter=FALSE ) { |
|
| 1573 | + * save content in a file |
|
| 1574 | + * |
|
| 1575 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1576 | + * @since 2.2.12 - 2007-12-30 |
|
| 1577 | + * @param string $directory optional |
|
| 1578 | + * @param string $filename optional |
|
| 1579 | + * @param string $delimiter optional |
|
| 1580 | + * @return bool |
|
| 1581 | + */ |
|
| 1582 | + function saveCalendar( $directory=FALSE, $filename=FALSE, $delimiter=FALSE ) { |
|
| 1584 | 1583 | if( $directory ) |
| 1585 | - $this->setConfig( 'directory', $directory ); |
|
| 1584 | + $this->setConfig( 'directory', $directory ); |
|
| 1586 | 1585 | if( $filename ) |
| 1587 | - $this->setConfig( 'filename', $filename ); |
|
| 1586 | + $this->setConfig( 'filename', $filename ); |
|
| 1588 | 1587 | if( $delimiter && ($delimiter != DIRECTORY_SEPARATOR )) |
| 1589 | - $this->setConfig( 'delimiter', $delimiter ); |
|
| 1588 | + $this->setConfig( 'delimiter', $delimiter ); |
|
| 1590 | 1589 | if( FALSE === ( $dirfile = $this->getConfig( 'url' ))) |
| 1591 | - $dirfile = $this->getConfig( 'dirfile' ); |
|
| 1590 | + $dirfile = $this->getConfig( 'dirfile' ); |
|
| 1592 | 1591 | $iCalFile = @fopen( $dirfile, 'w' ); |
| 1593 | 1592 | if( $iCalFile ) { |
| 1594 | - if( FALSE === fwrite( $iCalFile, $this->createCalendar() )) |
|
| 1593 | + if( FALSE === fwrite( $iCalFile, $this->createCalendar() )) |
|
| 1595 | 1594 | return FALSE; |
| 1596 | - fclose( $iCalFile ); |
|
| 1597 | - return TRUE; |
|
| 1595 | + fclose( $iCalFile ); |
|
| 1596 | + return TRUE; |
|
| 1598 | 1597 | } |
| 1599 | 1598 | else |
| 1600 | - return FALSE; |
|
| 1601 | - } |
|
| 1599 | + return FALSE; |
|
| 1600 | + } |
|
| 1602 | 1601 | /** |
| 1603 | - * if recent version of calendar file exists (default one hour), an HTTP redirect header is sent |
|
| 1604 | - * else FALSE is returned |
|
| 1605 | - * |
|
| 1606 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1607 | - * @since 2.2.12 - 2007-10-28 |
|
| 1608 | - * @param string $directory optional alt. int timeout |
|
| 1609 | - * @param string $filename optional |
|
| 1610 | - * @param string $delimiter optional |
|
| 1611 | - * @param int timeout optional, default 3600 sec |
|
| 1612 | - * @return redirect/FALSE |
|
| 1613 | - */ |
|
| 1614 | - function useCachedCalendar( $directory=FALSE, $filename=FALSE, $delimiter=FALSE, $timeout=3600) { |
|
| 1602 | + * if recent version of calendar file exists (default one hour), an HTTP redirect header is sent |
|
| 1603 | + * else FALSE is returned |
|
| 1604 | + * |
|
| 1605 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1606 | + * @since 2.2.12 - 2007-10-28 |
|
| 1607 | + * @param string $directory optional alt. int timeout |
|
| 1608 | + * @param string $filename optional |
|
| 1609 | + * @param string $delimiter optional |
|
| 1610 | + * @param int timeout optional, default 3600 sec |
|
| 1611 | + * @return redirect/FALSE |
|
| 1612 | + */ |
|
| 1613 | + function useCachedCalendar( $directory=FALSE, $filename=FALSE, $delimiter=FALSE, $timeout=3600) { |
|
| 1615 | 1614 | if ( $directory && ctype_digit( (string) $directory ) && !$filename ) { |
| 1616 | - $timeout = (int) $directory; |
|
| 1617 | - $directory = FALSE; |
|
| 1615 | + $timeout = (int) $directory; |
|
| 1616 | + $directory = FALSE; |
|
| 1618 | 1617 | } |
| 1619 | 1618 | if( $directory ) |
| 1620 | - $this->setConfig( 'directory', $directory ); |
|
| 1619 | + $this->setConfig( 'directory', $directory ); |
|
| 1621 | 1620 | if( $filename ) |
| 1622 | - $this->setConfig( 'filename', $filename ); |
|
| 1621 | + $this->setConfig( 'filename', $filename ); |
|
| 1623 | 1622 | if( $delimiter && ( $delimiter != DIRECTORY_SEPARATOR )) |
| 1624 | - $this->setConfig( 'delimiter', $delimiter ); |
|
| 1623 | + $this->setConfig( 'delimiter', $delimiter ); |
|
| 1625 | 1624 | $filesize = $this->getConfig( 'filesize' ); |
| 1626 | 1625 | if( 0 >= $filesize ) |
| 1627 | - return FALSE; |
|
| 1626 | + return FALSE; |
|
| 1628 | 1627 | $dirfile = $this->getConfig( 'dirfile' ); |
| 1629 | 1628 | if( time() - filemtime( $dirfile ) < $timeout) { |
| 1630 | - clearstatcache(); |
|
| 1631 | - $dirfile = $this->getConfig( 'dirfile' ); |
|
| 1632 | - $filename = $this->getConfig( 'filename' ); |
|
| 1629 | + clearstatcache(); |
|
| 1630 | + $dirfile = $this->getConfig( 'dirfile' ); |
|
| 1631 | + $filename = $this->getConfig( 'filename' ); |
|
| 1633 | 1632 | // if( headers_sent( $filename, $linenum )) |
| 1634 | 1633 | // die( "Headers already sent in $filename on line $linenum\n" ); |
| 1635 | - if( 'xcal' == $this->format ) |
|
| 1634 | + if( 'xcal' == $this->format ) |
|
| 1636 | 1635 | header( 'Content-Type: application/calendar+xml; charset=utf-8' ); |
| 1637 | - else |
|
| 1636 | + else |
|
| 1638 | 1637 | header( 'Content-Type: text/calendar; charset=utf-8' ); |
| 1639 | - header( 'Content-Length: '.$filesize ); |
|
| 1640 | - header( 'Content-Disposition: attachment; filename="'.$filename.'"' ); |
|
| 1641 | - header( 'Cache-Control: max-age=10' ); |
|
| 1642 | - $fp = @$fopen( $dirfile, 'r' ); |
|
| 1643 | - if( $fp ) { |
|
| 1638 | + header( 'Content-Length: '.$filesize ); |
|
| 1639 | + header( 'Content-Disposition: attachment; filename="'.$filename.'"' ); |
|
| 1640 | + header( 'Cache-Control: max-age=10' ); |
|
| 1641 | + $fp = @$fopen( $dirfile, 'r' ); |
|
| 1642 | + if( $fp ) { |
|
| 1644 | 1643 | fpassthru( $fp ); |
| 1645 | 1644 | fclose( $fp ); |
| 1646 | - } |
|
| 1647 | - die(); |
|
| 1645 | + } |
|
| 1646 | + die(); |
|
| 1648 | 1647 | } |
| 1649 | 1648 | else |
| 1650 | - return FALSE; |
|
| 1651 | - } |
|
| 1649 | + return FALSE; |
|
| 1650 | + } |
|
| 1652 | 1651 | } |
| 1653 | 1652 | /*********************************************************************************/ |
| 1654 | 1653 | /*********************************************************************************/ |
| 1655 | 1654 | /** |
| 1656 | - * abstract class for calendar components |
|
| 1657 | - * |
|
| 1658 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1659 | - * @since 2.4.19 - 2008-10-12 |
|
| 1660 | - */ |
|
| 1655 | + * abstract class for calendar components |
|
| 1656 | + * |
|
| 1657 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1658 | + * @since 2.4.19 - 2008-10-12 |
|
| 1659 | + */ |
|
| 1661 | 1660 | class calendarComponent { |
| 1662 | 1661 | // component property variables |
| 1663 | - var $uid; |
|
| 1664 | - var $dtstamp; |
|
| 1662 | + var $uid; |
|
| 1663 | + var $dtstamp; |
|
| 1665 | 1664 | |
| 1666 | 1665 | // component config variables |
| 1667 | - var $allowEmpty; |
|
| 1668 | - var $language; |
|
| 1669 | - var $nl; |
|
| 1670 | - var $unique_id; |
|
| 1671 | - var $format; |
|
| 1672 | - var $objName; // created automatically at instance creation |
|
| 1666 | + var $allowEmpty; |
|
| 1667 | + var $language; |
|
| 1668 | + var $nl; |
|
| 1669 | + var $unique_id; |
|
| 1670 | + var $format; |
|
| 1671 | + var $objName; // created automatically at instance creation |
|
| 1673 | 1672 | // component internal variables |
| 1674 | - var $componentStart1; |
|
| 1675 | - var $componentStart2; |
|
| 1676 | - var $componentEnd1; |
|
| 1677 | - var $componentEnd2; |
|
| 1678 | - var $elementStart1; |
|
| 1679 | - var $elementStart2; |
|
| 1680 | - var $elementEnd1; |
|
| 1681 | - var $elementEnd2; |
|
| 1682 | - var $intAttrDelimiter; |
|
| 1683 | - var $attributeDelimiter; |
|
| 1684 | - var $valueInit; |
|
| 1673 | + var $componentStart1; |
|
| 1674 | + var $componentStart2; |
|
| 1675 | + var $componentEnd1; |
|
| 1676 | + var $componentEnd2; |
|
| 1677 | + var $elementStart1; |
|
| 1678 | + var $elementStart2; |
|
| 1679 | + var $elementEnd1; |
|
| 1680 | + var $elementEnd2; |
|
| 1681 | + var $intAttrDelimiter; |
|
| 1682 | + var $attributeDelimiter; |
|
| 1683 | + var $valueInit; |
|
| 1685 | 1684 | // component xCal declaration container |
| 1686 | - var $xcaldecl; |
|
| 1687 | -/** |
|
| 1688 | - * constructor for calendar component object |
|
| 1689 | - * |
|
| 1690 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1691 | - * @since 2.4.19 - 2008-10-23 |
|
| 1692 | - */ |
|
| 1693 | - function calendarComponent() { |
|
| 1685 | + var $xcaldecl; |
|
| 1686 | +/** |
|
| 1687 | + * constructor for calendar component object |
|
| 1688 | + * |
|
| 1689 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1690 | + * @since 2.4.19 - 2008-10-23 |
|
| 1691 | + */ |
|
| 1692 | + function calendarComponent() { |
|
| 1694 | 1693 | $this->objName = ( isset( $this->timezonetype )) ? |
| 1695 | 1694 | strtolower( $this->timezonetype ) : get_class ( $this ); |
| 1696 | 1695 | $this->uid = array(); |
@@ -1705,203 +1704,203 @@ discard block |
||
| 1705 | 1704 | |
| 1706 | 1705 | $this->_createFormat(); |
| 1707 | 1706 | $this->_makeDtstamp(); |
| 1708 | - } |
|
| 1707 | + } |
|
| 1709 | 1708 | /*********************************************************************************/ |
| 1710 | 1709 | /** |
| 1711 | - * Property Name: ACTION |
|
| 1712 | - */ |
|
| 1710 | + * Property Name: ACTION |
|
| 1711 | + */ |
|
| 1713 | 1712 | /** |
| 1714 | - * creates formatted output for calendar component property action |
|
| 1715 | - * |
|
| 1716 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1717 | - * @since 2.4.8 - 2008-10-22 |
|
| 1718 | - * @return string |
|
| 1719 | - */ |
|
| 1720 | - function createAction() { |
|
| 1713 | + * creates formatted output for calendar component property action |
|
| 1714 | + * |
|
| 1715 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1716 | + * @since 2.4.8 - 2008-10-22 |
|
| 1717 | + * @return string |
|
| 1718 | + */ |
|
| 1719 | + function createAction() { |
|
| 1721 | 1720 | if( empty( $this->action )) return FALSE; |
| 1722 | 1721 | if( empty( $this->action['value'] )) |
| 1723 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ACTION' ) : FALSE; |
|
| 1722 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ACTION' ) : FALSE; |
|
| 1724 | 1723 | $attributes = $this->_createParams( $this->action['params'] ); |
| 1725 | 1724 | return $this->_createElement( 'ACTION', $attributes, $this->action['value'] ); |
| 1726 | - } |
|
| 1725 | + } |
|
| 1727 | 1726 | /** |
| 1728 | - * set calendar component property action |
|
| 1729 | - * |
|
| 1730 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1731 | - * @since 2.4.8 - 2008-11-04 |
|
| 1732 | - * @param string $value "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE" |
|
| 1733 | - * @param mixed $params |
|
| 1734 | - * @return bool |
|
| 1735 | - */ |
|
| 1736 | - function setAction( $value, $params=FALSE ) { |
|
| 1727 | + * set calendar component property action |
|
| 1728 | + * |
|
| 1729 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1730 | + * @since 2.4.8 - 2008-11-04 |
|
| 1731 | + * @param string $value "AUDIO" / "DISPLAY" / "EMAIL" / "PROCEDURE" |
|
| 1732 | + * @param mixed $params |
|
| 1733 | + * @return bool |
|
| 1734 | + */ |
|
| 1735 | + function setAction( $value, $params=FALSE ) { |
|
| 1737 | 1736 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 1738 | 1737 | $this->action = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 1739 | 1738 | return TRUE; |
| 1740 | - } |
|
| 1739 | + } |
|
| 1741 | 1740 | /*********************************************************************************/ |
| 1742 | 1741 | /** |
| 1743 | - * Property Name: ATTACH |
|
| 1744 | - */ |
|
| 1742 | + * Property Name: ATTACH |
|
| 1743 | + */ |
|
| 1745 | 1744 | /** |
| 1746 | - * creates formatted output for calendar component property attach |
|
| 1747 | - * |
|
| 1748 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1749 | - * @since 0.9.7 - 2006-11-23 |
|
| 1750 | - * @return string |
|
| 1751 | - */ |
|
| 1752 | - function createAttach() { |
|
| 1745 | + * creates formatted output for calendar component property attach |
|
| 1746 | + * |
|
| 1747 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1748 | + * @since 0.9.7 - 2006-11-23 |
|
| 1749 | + * @return string |
|
| 1750 | + */ |
|
| 1751 | + function createAttach() { |
|
| 1753 | 1752 | if( empty( $this->attach )) return FALSE; |
| 1754 | 1753 | $output = null; |
| 1755 | 1754 | foreach( $this->attach as $attachPart ) { |
| 1756 | - if(! empty( $attachPart['value'] )) { |
|
| 1755 | + if(! empty( $attachPart['value'] )) { |
|
| 1757 | 1756 | $attributes = $this->_createParams( $attachPart['params'] ); |
| 1758 | 1757 | $output .= $this->_createElement( 'ATTACH', $attributes, $attachPart['value'] ); |
| 1759 | - } |
|
| 1760 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'ATTACH' ); |
|
| 1758 | + } |
|
| 1759 | + elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'ATTACH' ); |
|
| 1761 | 1760 | } |
| 1762 | 1761 | return $output; |
| 1763 | - } |
|
| 1762 | + } |
|
| 1764 | 1763 | /** |
| 1765 | - * set calendar component property attach |
|
| 1766 | - * |
|
| 1767 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1768 | - * @since 2.5.1 - 2008-11-06 |
|
| 1769 | - * @param string $value |
|
| 1770 | - * @param array $params, optional |
|
| 1771 | - * @param integer $index, optional |
|
| 1772 | - * @return bool |
|
| 1773 | - */ |
|
| 1774 | - function setAttach( $value, $params=FALSE, $index=FALSE ) { |
|
| 1764 | + * set calendar component property attach |
|
| 1765 | + * |
|
| 1766 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1767 | + * @since 2.5.1 - 2008-11-06 |
|
| 1768 | + * @param string $value |
|
| 1769 | + * @param array $params, optional |
|
| 1770 | + * @param integer $index, optional |
|
| 1771 | + * @return bool |
|
| 1772 | + */ |
|
| 1773 | + function setAttach( $value, $params=FALSE, $index=FALSE ) { |
|
| 1775 | 1774 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 1776 | 1775 | $this->_setMval( $this->attach, $value, $params, FALSE, $index ); |
| 1777 | 1776 | return TRUE; |
| 1778 | - } |
|
| 1777 | + } |
|
| 1779 | 1778 | /*********************************************************************************/ |
| 1780 | 1779 | /** |
| 1781 | - * Property Name: ATTENDEE |
|
| 1782 | - */ |
|
| 1780 | + * Property Name: ATTENDEE |
|
| 1781 | + */ |
|
| 1783 | 1782 | /** |
| 1784 | - * creates formatted output for calendar component property attendee |
|
| 1785 | - * |
|
| 1786 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1787 | - * @since 2.4.8 - 2008-09-23 |
|
| 1788 | - * @return string |
|
| 1789 | - */ |
|
| 1790 | - function createAttendee() { |
|
| 1783 | + * creates formatted output for calendar component property attendee |
|
| 1784 | + * |
|
| 1785 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1786 | + * @since 2.4.8 - 2008-09-23 |
|
| 1787 | + * @return string |
|
| 1788 | + */ |
|
| 1789 | + function createAttendee() { |
|
| 1791 | 1790 | if( empty( $this->attendee )) return FALSE; |
| 1792 | 1791 | $output = null; |
| 1793 | 1792 | foreach( $this->attendee as $attendeePart ) { // start foreach 1 |
| 1794 | - if( empty( $attendeePart['value'] )) { |
|
| 1793 | + if( empty( $attendeePart['value'] )) { |
|
| 1795 | 1794 | if( $this->getConfig( 'allowEmpty' )) |
| 1796 | - $output .= $this->_createElement( 'ATTENDEE' ); |
|
| 1795 | + $output .= $this->_createElement( 'ATTENDEE' ); |
|
| 1797 | 1796 | continue; |
| 1798 | - } |
|
| 1799 | - $attendee1 = $attendee2 = $attendeeLANG = $attendeeCN = null; |
|
| 1800 | - foreach( $attendeePart as $paramlabel => $paramvalue ) { // start foreach 2 |
|
| 1797 | + } |
|
| 1798 | + $attendee1 = $attendee2 = $attendeeLANG = $attendeeCN = null; |
|
| 1799 | + foreach( $attendeePart as $paramlabel => $paramvalue ) { // start foreach 2 |
|
| 1801 | 1800 | if( 'value' == $paramlabel ) |
| 1802 | - $attendee2 .= 'MAILTO:'.$paramvalue; |
|
| 1801 | + $attendee2 .= 'MAILTO:'.$paramvalue; |
|
| 1803 | 1802 | elseif(( 'params' == $paramlabel ) && ( is_array( $paramvalue ))) { // start elseif |
| 1804 | - foreach( $paramvalue as $optparamlabel => $optparamvalue ) { // start foreach 3 |
|
| 1803 | + foreach( $paramvalue as $optparamlabel => $optparamvalue ) { // start foreach 3 |
|
| 1805 | 1804 | $attendee11 = $attendee12 = null; |
| 1806 | 1805 | if( is_int( $optparamlabel )) { |
| 1807 | - $attendee1 .= $this->intAttrDelimiter.$optparamvalue; |
|
| 1808 | - continue; |
|
| 1806 | + $attendee1 .= $this->intAttrDelimiter.$optparamvalue; |
|
| 1807 | + continue; |
|
| 1809 | 1808 | } |
| 1810 | 1809 | switch( $optparamlabel ) { // start switch |
| 1811 | - case 'CUTYPE': |
|
| 1810 | + case 'CUTYPE': |
|
| 1812 | 1811 | case 'PARTSTAT': |
| 1813 | 1812 | case 'ROLE': |
| 1814 | 1813 | case 'RSVP': |
| 1815 | 1814 | $attendee1 .= $this->intAttrDelimiter.$optparamlabel.'="'.$optparamvalue.'"'; |
| 1816 | 1815 | break; |
| 1817 | - case 'SENT-BY': |
|
| 1816 | + case 'SENT-BY': |
|
| 1818 | 1817 | $attendee1 .= $this->intAttrDelimiter.'SENT-BY="MAILTO:'.$optparamvalue.'"'; |
| 1819 | 1818 | break; |
| 1820 | - case 'MEMBER': |
|
| 1819 | + case 'MEMBER': |
|
| 1821 | 1820 | $attendee11 = $this->intAttrDelimiter.'MEMBER='; |
| 1822 | - case 'DELEGATED-TO': |
|
| 1821 | + case 'DELEGATED-TO': |
|
| 1823 | 1822 | $attendee11 = ( !$attendee11 ) ? $this->intAttrDelimiter.'DELEGATED-TO=' : $attendee11; |
| 1824 | - case 'DELEGATED-FROM': |
|
| 1823 | + case 'DELEGATED-FROM': |
|
| 1825 | 1824 | $attendee11 = ( !$attendee11 ) ? $this->intAttrDelimiter.'DELEGATED-FROM=' : $attendee11; |
| 1826 | 1825 | foreach( $optparamvalue as $cix => $calUserAddress ) { |
| 1827 | - $attendee12 .= ( $cix ) ? ',' : null; |
|
| 1828 | - $attendee12 .= '"MAILTO:'.$calUserAddress.'"'; |
|
| 1826 | + $attendee12 .= ( $cix ) ? ',' : null; |
|
| 1827 | + $attendee12 .= '"MAILTO:'.$calUserAddress.'"'; |
|
| 1829 | 1828 | } |
| 1830 | 1829 | $attendee1 .= $attendee11.$attendee12; |
| 1831 | 1830 | break; |
| 1832 | - case 'CN': |
|
| 1831 | + case 'CN': |
|
| 1833 | 1832 | $attendeeCN .= $this->intAttrDelimiter.'CN="'.$optparamvalue.'"'; |
| 1834 | 1833 | break; |
| 1835 | - case 'DIR': |
|
| 1834 | + case 'DIR': |
|
| 1836 | 1835 | $attendee1 .= $this->intAttrDelimiter.'DIR="'.$optparamvalue.'"'; |
| 1837 | 1836 | break; |
| 1838 | - case 'LANGUAGE': |
|
| 1837 | + case 'LANGUAGE': |
|
| 1839 | 1838 | $attendeeLANG .= $this->intAttrDelimiter.'LANGUAGE='.$optparamvalue; |
| 1840 | 1839 | break; |
| 1841 | - default: |
|
| 1840 | + default: |
|
| 1842 | 1841 | $attendee1 .= $this->intAttrDelimiter."$optparamlabel=$optparamvalue"; |
| 1843 | 1842 | break; |
| 1844 | 1843 | } // end switch |
| 1845 | - } // end foreach 3 |
|
| 1844 | + } // end foreach 3 |
|
| 1846 | 1845 | } // end elseif |
| 1847 | - } // end foreach 2 |
|
| 1848 | - $output .= $this->_createElement( 'ATTENDEE', $attendee1.$attendeeLANG.$attendeeCN, $attendee2 ); |
|
| 1846 | + } // end foreach 2 |
|
| 1847 | + $output .= $this->_createElement( 'ATTENDEE', $attendee1.$attendeeLANG.$attendeeCN, $attendee2 ); |
|
| 1849 | 1848 | } // end foreach 1 |
| 1850 | 1849 | return $output; |
| 1851 | - } |
|
| 1850 | + } |
|
| 1852 | 1851 | /** |
| 1853 | - * set calendar component property attach |
|
| 1854 | - * |
|
| 1855 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1856 | - * @since 2.5.1 - 2008-11-05 |
|
| 1857 | - * @param string $value |
|
| 1858 | - * @param array $params, optional |
|
| 1859 | - * @param integer $index, optional |
|
| 1860 | - * @return bool |
|
| 1861 | - */ |
|
| 1862 | - function setAttendee( $value, $params=FALSE, $index=FALSE ) { |
|
| 1852 | + * set calendar component property attach |
|
| 1853 | + * |
|
| 1854 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1855 | + * @since 2.5.1 - 2008-11-05 |
|
| 1856 | + * @param string $value |
|
| 1857 | + * @param array $params, optional |
|
| 1858 | + * @param integer $index, optional |
|
| 1859 | + * @return bool |
|
| 1860 | + */ |
|
| 1861 | + function setAttendee( $value, $params=FALSE, $index=FALSE ) { |
|
| 1863 | 1862 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 1864 | 1863 | $value = str_replace ( 'MAILTO:', '', $value ); |
| 1865 | 1864 | $value = str_replace ( 'mailto:', '', $value ); |
| 1866 | 1865 | $params2 = array(); |
| 1867 | 1866 | if( is_array($params )) { |
| 1868 | - $optarrays = array(); |
|
| 1869 | - foreach( $params as $optparamlabel => $optparamvalue ) { |
|
| 1867 | + $optarrays = array(); |
|
| 1868 | + foreach( $params as $optparamlabel => $optparamvalue ) { |
|
| 1870 | 1869 | $optparamlabel = strtoupper( $optparamlabel ); |
| 1871 | 1870 | switch( $optparamlabel ) { |
| 1872 | - case 'MEMBER': |
|
| 1871 | + case 'MEMBER': |
|
| 1873 | 1872 | case 'DELEGATED-TO': |
| 1874 | 1873 | case 'DELEGATED-FROM': |
| 1875 | 1874 | if( is_array( $optparamvalue )) { |
| 1876 | - foreach( $optparamvalue as $part ) { |
|
| 1875 | + foreach( $optparamvalue as $part ) { |
|
| 1877 | 1876 | $part = str_replace( 'MAILTO:', '', $part ); |
| 1878 | 1877 | $part = str_replace( 'mailto:', '', $part ); |
| 1879 | 1878 | if(( '"' == $part{0} ) && ( '"' == $part{strlen($part)-1} )) |
| 1880 | - $part = substr( $part, 1, ( strlen($part)-2 )); |
|
| 1879 | + $part = substr( $part, 1, ( strlen($part)-2 )); |
|
| 1881 | 1880 | $optarrays[$optparamlabel][] = $part; |
| 1882 | - } |
|
| 1881 | + } |
|
| 1883 | 1882 | } |
| 1884 | 1883 | else { |
| 1885 | - $part = str_replace( 'MAILTO:', '', $optparamvalue ); |
|
| 1886 | - $part = str_replace( 'mailto:', '', $part ); |
|
| 1887 | - if(( '"' == $part{0} ) && ( '"' == $part{strlen($part)-1} )) |
|
| 1884 | + $part = str_replace( 'MAILTO:', '', $optparamvalue ); |
|
| 1885 | + $part = str_replace( 'mailto:', '', $part ); |
|
| 1886 | + if(( '"' == $part{0} ) && ( '"' == $part{strlen($part)-1} )) |
|
| 1888 | 1887 | $part = substr( $part, 1, ( strlen($part)-2 )); |
| 1889 | - $optarrays[$optparamlabel][] = $part; |
|
| 1888 | + $optarrays[$optparamlabel][] = $part; |
|
| 1890 | 1889 | } |
| 1891 | 1890 | break; |
| 1892 | - default: |
|
| 1891 | + default: |
|
| 1893 | 1892 | if( 'SENT-BY' == $optparamlabel ) { |
| 1894 | - $optparamvalue = str_replace( 'MAILTO:', '', $optparamvalue ); |
|
| 1895 | - $optparamvalue = str_replace( 'mailto:', '', $optparamvalue ); |
|
| 1893 | + $optparamvalue = str_replace( 'MAILTO:', '', $optparamvalue ); |
|
| 1894 | + $optparamvalue = str_replace( 'mailto:', '', $optparamvalue ); |
|
| 1896 | 1895 | } |
| 1897 | 1896 | if(( '"' == substr( $optparamvalue, 0, 1 )) && |
| 1898 | 1897 | ( '"' == substr( $optparamvalue, -1 ))) |
| 1899 | - $optparamvalue = substr( $optparamvalue, 1, ( strlen( $optparamvalue ) - 2 )); |
|
| 1898 | + $optparamvalue = substr( $optparamvalue, 1, ( strlen( $optparamvalue ) - 2 )); |
|
| 1900 | 1899 | $params2[$optparamlabel] = $optparamvalue; |
| 1901 | 1900 | break; |
| 1902 | 1901 | } // end switch( $optparamlabel.. . |
| 1903 | - } // end foreach( $optparam.. . |
|
| 1904 | - foreach( $optarrays as $optparamlabel => $optparams ) |
|
| 1902 | + } // end foreach( $optparam.. . |
|
| 1903 | + foreach( $optarrays as $optparamlabel => $optparams ) |
|
| 1905 | 1904 | $params2[$optparamlabel] = $optparams; |
| 1906 | 1905 | } |
| 1907 | 1906 | // remove defaults |
@@ -1911,144 +1910,144 @@ discard block |
||
| 1911 | 1910 | $this->_existRem( $params2, 'RSVP', 'FALSE' ); |
| 1912 | 1911 | // check language setting |
| 1913 | 1912 | if( isset( $params2['CN' ] )) { |
| 1914 | - $lang = $this->getConfig( 'language' ); |
|
| 1915 | - if( !isset( $params2['LANGUAGE' ] ) && !empty( $lang )) |
|
| 1913 | + $lang = $this->getConfig( 'language' ); |
|
| 1914 | + if( !isset( $params2['LANGUAGE' ] ) && !empty( $lang )) |
|
| 1916 | 1915 | $params2['LANGUAGE' ] = $lang; |
| 1917 | 1916 | } |
| 1918 | 1917 | $this->_setMval( $this->attendee, $value, $params2, FALSE, $index ); |
| 1919 | 1918 | return TRUE; |
| 1920 | - } |
|
| 1919 | + } |
|
| 1921 | 1920 | /*********************************************************************************/ |
| 1922 | 1921 | /** |
| 1923 | - * Property Name: CATEGORIES |
|
| 1924 | - */ |
|
| 1922 | + * Property Name: CATEGORIES |
|
| 1923 | + */ |
|
| 1925 | 1924 | /** |
| 1926 | - * creates formatted output for calendar component property categories |
|
| 1927 | - * |
|
| 1928 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1929 | - * @since 2.4.8 - 2008-10-22 |
|
| 1930 | - * @return string |
|
| 1931 | - */ |
|
| 1932 | - function createCategories() { |
|
| 1925 | + * creates formatted output for calendar component property categories |
|
| 1926 | + * |
|
| 1927 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1928 | + * @since 2.4.8 - 2008-10-22 |
|
| 1929 | + * @return string |
|
| 1930 | + */ |
|
| 1931 | + function createCategories() { |
|
| 1933 | 1932 | if( empty( $this->categories )) return FALSE; |
| 1934 | 1933 | $output = null; |
| 1935 | 1934 | foreach( $this->categories as $category ) { |
| 1936 | - if( empty( $category['value'] )) { |
|
| 1935 | + if( empty( $category['value'] )) { |
|
| 1937 | 1936 | if ( $this->getConfig( 'allowEmpty' )) |
| 1938 | - $output .= $this->_createElement( 'CATEGORIES' ); |
|
| 1937 | + $output .= $this->_createElement( 'CATEGORIES' ); |
|
| 1939 | 1938 | continue; |
| 1940 | - } |
|
| 1941 | - $attributes = $this->_createParams( $category['params'], array( 'LANGUAGE' )); |
|
| 1942 | - if( is_array( $category['value'] )) { |
|
| 1939 | + } |
|
| 1940 | + $attributes = $this->_createParams( $category['params'], array( 'LANGUAGE' )); |
|
| 1941 | + if( is_array( $category['value'] )) { |
|
| 1943 | 1942 | foreach( $category['value'] as $cix => $categoryPart ) |
| 1944 | - $category['value'][$cix] = $this->_strrep( $categoryPart ); |
|
| 1943 | + $category['value'][$cix] = $this->_strrep( $categoryPart ); |
|
| 1945 | 1944 | $content = implode( ',', $category['value'] ); |
| 1946 | - } |
|
| 1947 | - else |
|
| 1945 | + } |
|
| 1946 | + else |
|
| 1948 | 1947 | $content = $this->_strrep( $category['value'] ); |
| 1949 | - $output .= $this->_createElement( 'CATEGORIES', $attributes, $content ); |
|
| 1948 | + $output .= $this->_createElement( 'CATEGORIES', $attributes, $content ); |
|
| 1950 | 1949 | } |
| 1951 | 1950 | return $output; |
| 1952 | - } |
|
| 1951 | + } |
|
| 1953 | 1952 | /** |
| 1954 | - * set calendar component property categories |
|
| 1955 | - * |
|
| 1956 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1957 | - * @since 2.5.1 - 2008-11-06 |
|
| 1958 | - * @param mixed $value |
|
| 1959 | - * @param array $params, optional |
|
| 1960 | - * @param integer $index, optional |
|
| 1961 | - * @return bool |
|
| 1962 | - */ |
|
| 1963 | - function setCategories( $value, $params=FALSE, $index=FALSE ) { |
|
| 1953 | + * set calendar component property categories |
|
| 1954 | + * |
|
| 1955 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1956 | + * @since 2.5.1 - 2008-11-06 |
|
| 1957 | + * @param mixed $value |
|
| 1958 | + * @param array $params, optional |
|
| 1959 | + * @param integer $index, optional |
|
| 1960 | + * @return bool |
|
| 1961 | + */ |
|
| 1962 | + function setCategories( $value, $params=FALSE, $index=FALSE ) { |
|
| 1964 | 1963 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 1965 | 1964 | $this->_setMval( $this->categories, $value, $params, FALSE, $index ); |
| 1966 | 1965 | return TRUE; |
| 1967 | - } |
|
| 1966 | + } |
|
| 1968 | 1967 | /*********************************************************************************/ |
| 1969 | 1968 | /** |
| 1970 | - * Property Name: CLASS |
|
| 1971 | - */ |
|
| 1969 | + * Property Name: CLASS |
|
| 1970 | + */ |
|
| 1972 | 1971 | /** |
| 1973 | - * creates formatted output for calendar component property class |
|
| 1974 | - * |
|
| 1975 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1976 | - * @since 0.9.7 - 2006-11-20 |
|
| 1977 | - * @return string |
|
| 1978 | - */ |
|
| 1979 | - function createClass() { |
|
| 1972 | + * creates formatted output for calendar component property class |
|
| 1973 | + * |
|
| 1974 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1975 | + * @since 0.9.7 - 2006-11-20 |
|
| 1976 | + * @return string |
|
| 1977 | + */ |
|
| 1978 | + function createClass() { |
|
| 1980 | 1979 | if( empty( $this->class )) return FALSE; |
| 1981 | 1980 | if( empty( $this->class['value'] )) |
| 1982 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'CLASS' ) : FALSE; |
|
| 1981 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'CLASS' ) : FALSE; |
|
| 1983 | 1982 | $attributes = $this->_createParams( $this->class['params'] ); |
| 1984 | 1983 | return $this->_createElement( 'CLASS', $attributes, $this->class['value'] ); |
| 1985 | - } |
|
| 1984 | + } |
|
| 1986 | 1985 | /** |
| 1987 | - * set calendar component property class |
|
| 1988 | - * |
|
| 1989 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1990 | - * @since 2.4.8 - 2008-11-04 |
|
| 1991 | - * @param string $value "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token / x-name |
|
| 1992 | - * @param array $params optional |
|
| 1993 | - * @return bool |
|
| 1994 | - */ |
|
| 1995 | - function setClass( $value, $params=FALSE ) { |
|
| 1986 | + * set calendar component property class |
|
| 1987 | + * |
|
| 1988 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 1989 | + * @since 2.4.8 - 2008-11-04 |
|
| 1990 | + * @param string $value "PUBLIC" / "PRIVATE" / "CONFIDENTIAL" / iana-token / x-name |
|
| 1991 | + * @param array $params optional |
|
| 1992 | + * @return bool |
|
| 1993 | + */ |
|
| 1994 | + function setClass( $value, $params=FALSE ) { |
|
| 1996 | 1995 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 1997 | 1996 | $this->class = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 1998 | 1997 | return TRUE; |
| 1999 | - } |
|
| 1998 | + } |
|
| 2000 | 1999 | /*********************************************************************************/ |
| 2001 | 2000 | /** |
| 2002 | - * Property Name: COMMENT |
|
| 2003 | - */ |
|
| 2001 | + * Property Name: COMMENT |
|
| 2002 | + */ |
|
| 2004 | 2003 | /** |
| 2005 | - * creates formatted output for calendar component property comment |
|
| 2006 | - * |
|
| 2007 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2008 | - * @since 2.4.8 - 2008-10-22 |
|
| 2009 | - * @return string |
|
| 2010 | - */ |
|
| 2011 | - function createComment() { |
|
| 2004 | + * creates formatted output for calendar component property comment |
|
| 2005 | + * |
|
| 2006 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2007 | + * @since 2.4.8 - 2008-10-22 |
|
| 2008 | + * @return string |
|
| 2009 | + */ |
|
| 2010 | + function createComment() { |
|
| 2012 | 2011 | if( empty( $this->comment )) return FALSE; |
| 2013 | 2012 | $output = null; |
| 2014 | 2013 | foreach( $this->comment as $commentPart ) { |
| 2015 | - if( empty( $commentPart['value'] )) { |
|
| 2014 | + if( empty( $commentPart['value'] )) { |
|
| 2016 | 2015 | if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'COMMENT' ); |
| 2017 | 2016 | continue; |
| 2018 | - } |
|
| 2019 | - $attributes = $this->_createParams( $commentPart['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 2020 | - $content = $this->_strrep( $commentPart['value'] ); |
|
| 2021 | - $output .= $this->_createElement( 'COMMENT', $attributes, $content ); |
|
| 2017 | + } |
|
| 2018 | + $attributes = $this->_createParams( $commentPart['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 2019 | + $content = $this->_strrep( $commentPart['value'] ); |
|
| 2020 | + $output .= $this->_createElement( 'COMMENT', $attributes, $content ); |
|
| 2022 | 2021 | } |
| 2023 | 2022 | return $output; |
| 2024 | - } |
|
| 2023 | + } |
|
| 2025 | 2024 | /** |
| 2026 | - * set calendar component property comment |
|
| 2027 | - * |
|
| 2028 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2029 | - * @since 2.5.1 - 2008-11-06 |
|
| 2030 | - * @param string $value |
|
| 2031 | - * @param array $params, optional |
|
| 2032 | - * @param integer $index, optional |
|
| 2033 | - * @return bool |
|
| 2034 | - */ |
|
| 2035 | - function setComment( $value, $params=FALSE, $index=FALSE ) { |
|
| 2025 | + * set calendar component property comment |
|
| 2026 | + * |
|
| 2027 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2028 | + * @since 2.5.1 - 2008-11-06 |
|
| 2029 | + * @param string $value |
|
| 2030 | + * @param array $params, optional |
|
| 2031 | + * @param integer $index, optional |
|
| 2032 | + * @return bool |
|
| 2033 | + */ |
|
| 2034 | + function setComment( $value, $params=FALSE, $index=FALSE ) { |
|
| 2036 | 2035 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 2037 | 2036 | $this->_setMval( $this->comment, $value, $params, FALSE, $index ); |
| 2038 | 2037 | return TRUE; |
| 2039 | - } |
|
| 2038 | + } |
|
| 2040 | 2039 | /*********************************************************************************/ |
| 2041 | 2040 | /** |
| 2042 | - * Property Name: COMPLETED |
|
| 2043 | - */ |
|
| 2041 | + * Property Name: COMPLETED |
|
| 2042 | + */ |
|
| 2044 | 2043 | /** |
| 2045 | - * creates formatted output for calendar component property completed |
|
| 2046 | - * |
|
| 2047 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2048 | - * @since 2.4.8 - 2008-10-22 |
|
| 2049 | - * @return string |
|
| 2050 | - */ |
|
| 2051 | - function createCompleted( ) { |
|
| 2044 | + * creates formatted output for calendar component property completed |
|
| 2045 | + * |
|
| 2046 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2047 | + * @since 2.4.8 - 2008-10-22 |
|
| 2048 | + * @return string |
|
| 2049 | + */ |
|
| 2050 | + function createCompleted( ) { |
|
| 2052 | 2051 | if( empty( $this->completed )) return FALSE; |
| 2053 | 2052 | if( !isset( $this->completed['value']['year'] ) && |
| 2054 | 2053 | !isset( $this->completed['value']['month'] ) && |
@@ -2056,167 +2055,167 @@ discard block |
||
| 2056 | 2055 | !isset( $this->completed['value']['hour'] ) && |
| 2057 | 2056 | !isset( $this->completed['value']['min'] ) && |
| 2058 | 2057 | !isset( $this->completed['value']['sec'] )) |
| 2059 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2058 | + if( $this->getConfig( 'allowEmpty' )) |
|
| 2060 | 2059 | return $this->_createElement( 'COMPLETED' ); |
| 2061 | - else return FALSE; |
|
| 2060 | + else return FALSE; |
|
| 2062 | 2061 | $formatted = $this->_format_date_time( $this->completed['value'], 7 ); |
| 2063 | 2062 | $attributes = $this->_createParams( $this->completed['params'] ); |
| 2064 | 2063 | return $this->_createElement( 'COMPLETED', $attributes, $formatted ); |
| 2065 | - } |
|
| 2064 | + } |
|
| 2066 | 2065 | /** |
| 2067 | - * set calendar component property completed |
|
| 2068 | - * |
|
| 2069 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2070 | - * @since 2.4.8 - 2008-10-23 |
|
| 2071 | - * @param mixed $year |
|
| 2072 | - * @param mixed $month optional |
|
| 2073 | - * @param int $day optional |
|
| 2074 | - * @param int $hour optional |
|
| 2075 | - * @param int $min optional |
|
| 2076 | - * @param int $sec optional |
|
| 2077 | - * @param array $params optional |
|
| 2078 | - * @return bool |
|
| 2079 | - */ |
|
| 2080 | - function setCompleted( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2066 | + * set calendar component property completed |
|
| 2067 | + * |
|
| 2068 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2069 | + * @since 2.4.8 - 2008-10-23 |
|
| 2070 | + * @param mixed $year |
|
| 2071 | + * @param mixed $month optional |
|
| 2072 | + * @param int $day optional |
|
| 2073 | + * @param int $hour optional |
|
| 2074 | + * @param int $min optional |
|
| 2075 | + * @param int $sec optional |
|
| 2076 | + * @param array $params optional |
|
| 2077 | + * @return bool |
|
| 2078 | + */ |
|
| 2079 | + function setCompleted( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2081 | 2080 | if( empty( $year )) { |
| 2082 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2081 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2083 | 2082 | $this->completed = array( 'value' => null, 'params' => $this->_setParams( $params )); |
| 2084 | 2083 | return TRUE; |
| 2085 | - } |
|
| 2086 | - else |
|
| 2084 | + } |
|
| 2085 | + else |
|
| 2087 | 2086 | return FALSE; |
| 2088 | 2087 | } |
| 2089 | 2088 | $this->completed = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
| 2090 | 2089 | return TRUE; |
| 2091 | - } |
|
| 2090 | + } |
|
| 2092 | 2091 | /*********************************************************************************/ |
| 2093 | 2092 | /** |
| 2094 | - * Property Name: CONTACT |
|
| 2095 | - */ |
|
| 2093 | + * Property Name: CONTACT |
|
| 2094 | + */ |
|
| 2096 | 2095 | /** |
| 2097 | - * creates formatted output for calendar component property contact |
|
| 2098 | - * |
|
| 2099 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2100 | - * @since 2.4.8 - 2008-10-23 |
|
| 2101 | - * @return string |
|
| 2102 | - */ |
|
| 2103 | - function createContact() { |
|
| 2096 | + * creates formatted output for calendar component property contact |
|
| 2097 | + * |
|
| 2098 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2099 | + * @since 2.4.8 - 2008-10-23 |
|
| 2100 | + * @return string |
|
| 2101 | + */ |
|
| 2102 | + function createContact() { |
|
| 2104 | 2103 | if( empty( $this->contact )) return FALSE; |
| 2105 | 2104 | $output = null; |
| 2106 | 2105 | foreach( $this->contact as $contact ) { |
| 2107 | - if( !empty( $contact['value'] )) { |
|
| 2106 | + if( !empty( $contact['value'] )) { |
|
| 2108 | 2107 | $attributes = $this->_createParams( $contact['params'], array( 'ALTREP', 'LANGUAGE' )); |
| 2109 | 2108 | $content = $this->_strrep( $contact['value'] ); |
| 2110 | 2109 | $output .= $this->_createElement( 'CONTACT', $attributes, $content ); |
| 2111 | - } |
|
| 2112 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'CONTACT' ); |
|
| 2110 | + } |
|
| 2111 | + elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'CONTACT' ); |
|
| 2113 | 2112 | } |
| 2114 | 2113 | return $output; |
| 2115 | - } |
|
| 2114 | + } |
|
| 2116 | 2115 | /** |
| 2117 | - * set calendar component property contact |
|
| 2118 | - * |
|
| 2119 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2120 | - * @since 2.5.1 - 2008-11-05 |
|
| 2121 | - * @param string $value |
|
| 2122 | - * @param array $params, optional |
|
| 2123 | - * @param integer $index, optional |
|
| 2124 | - * @return bool |
|
| 2125 | - */ |
|
| 2126 | - function setContact( $value, $params=FALSE, $index=FALSE ) { |
|
| 2116 | + * set calendar component property contact |
|
| 2117 | + * |
|
| 2118 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2119 | + * @since 2.5.1 - 2008-11-05 |
|
| 2120 | + * @param string $value |
|
| 2121 | + * @param array $params, optional |
|
| 2122 | + * @param integer $index, optional |
|
| 2123 | + * @return bool |
|
| 2124 | + */ |
|
| 2125 | + function setContact( $value, $params=FALSE, $index=FALSE ) { |
|
| 2127 | 2126 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 2128 | 2127 | $this->_setMval( $this->contact, $value, $params, FALSE, $index ); |
| 2129 | 2128 | return TRUE; |
| 2130 | - } |
|
| 2129 | + } |
|
| 2131 | 2130 | /*********************************************************************************/ |
| 2132 | 2131 | /** |
| 2133 | - * Property Name: CREATED |
|
| 2134 | - */ |
|
| 2132 | + * Property Name: CREATED |
|
| 2133 | + */ |
|
| 2135 | 2134 | /** |
| 2136 | - * creates formatted output for calendar component property created |
|
| 2137 | - * |
|
| 2138 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2139 | - * @since 2.4.8 - 2008-10-21 |
|
| 2140 | - * @return string |
|
| 2141 | - */ |
|
| 2142 | - function createCreated() { |
|
| 2135 | + * creates formatted output for calendar component property created |
|
| 2136 | + * |
|
| 2137 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2138 | + * @since 2.4.8 - 2008-10-21 |
|
| 2139 | + * @return string |
|
| 2140 | + */ |
|
| 2141 | + function createCreated() { |
|
| 2143 | 2142 | if( empty( $this->created )) return FALSE; |
| 2144 | 2143 | $formatted = $this->_format_date_time( $this->created['value'], 7 ); |
| 2145 | 2144 | $attributes = $this->_createParams( $this->created['params'] ); |
| 2146 | 2145 | return $this->_createElement( 'CREATED', $attributes, $formatted ); |
| 2147 | - } |
|
| 2146 | + } |
|
| 2148 | 2147 | /** |
| 2149 | - * set calendar component property created |
|
| 2150 | - * |
|
| 2151 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2152 | - * @since 2.4.8 - 2008-10-23 |
|
| 2153 | - * @param mixed $year optional |
|
| 2154 | - * @param mixed $month optional |
|
| 2155 | - * @param int $day optional |
|
| 2156 | - * @param int $hour optional |
|
| 2157 | - * @param int $min optional |
|
| 2158 | - * @param int $sec optional |
|
| 2159 | - * @param mixed $params optional |
|
| 2160 | - * @return bool |
|
| 2161 | - */ |
|
| 2162 | - function setCreated( $year=FALSE, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2148 | + * set calendar component property created |
|
| 2149 | + * |
|
| 2150 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2151 | + * @since 2.4.8 - 2008-10-23 |
|
| 2152 | + * @param mixed $year optional |
|
| 2153 | + * @param mixed $month optional |
|
| 2154 | + * @param int $day optional |
|
| 2155 | + * @param int $hour optional |
|
| 2156 | + * @param int $min optional |
|
| 2157 | + * @param int $sec optional |
|
| 2158 | + * @param mixed $params optional |
|
| 2159 | + * @return bool |
|
| 2160 | + */ |
|
| 2161 | + function setCreated( $year=FALSE, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2163 | 2162 | if( !isset( $year )) { |
| 2164 | - $year = date('Ymd\THis', mktime( date( 'H' ), date( 'i' ), date( 's' ) - date( 'Z'), date( 'm' ), date( 'd' ), date( 'Y' ))); |
|
| 2163 | + $year = date('Ymd\THis', mktime( date( 'H' ), date( 'i' ), date( 's' ) - date( 'Z'), date( 'm' ), date( 'd' ), date( 'Y' ))); |
|
| 2165 | 2164 | } |
| 2166 | 2165 | $this->created = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
| 2167 | 2166 | return TRUE; |
| 2168 | - } |
|
| 2167 | + } |
|
| 2169 | 2168 | /*********************************************************************************/ |
| 2170 | 2169 | /** |
| 2171 | - * Property Name: DESCRIPTION |
|
| 2172 | - */ |
|
| 2170 | + * Property Name: DESCRIPTION |
|
| 2171 | + */ |
|
| 2173 | 2172 | /** |
| 2174 | - * creates formatted output for calendar component property description |
|
| 2175 | - * |
|
| 2176 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2177 | - * @since 2.4.8 - 2008-10-22 |
|
| 2178 | - * @return string |
|
| 2179 | - */ |
|
| 2180 | - function createDescription() { |
|
| 2173 | + * creates formatted output for calendar component property description |
|
| 2174 | + * |
|
| 2175 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2176 | + * @since 2.4.8 - 2008-10-22 |
|
| 2177 | + * @return string |
|
| 2178 | + */ |
|
| 2179 | + function createDescription() { |
|
| 2181 | 2180 | if( empty( $this->description )) return FALSE; |
| 2182 | 2181 | $output = null; |
| 2183 | 2182 | foreach( $this->description as $description ) { |
| 2184 | - if( !empty( $description['value'] )) { |
|
| 2183 | + if( !empty( $description['value'] )) { |
|
| 2185 | 2184 | $attributes = $this->_createParams( $description['params'], array( 'ALTREP', 'LANGUAGE' )); |
| 2186 | 2185 | $content = $this->_strrep( $description['value'] ); |
| 2187 | 2186 | $output .= $this->_createElement( 'DESCRIPTION', $attributes, $content ); |
| 2188 | - } |
|
| 2189 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'DESCRIPTION' ); |
|
| 2187 | + } |
|
| 2188 | + elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'DESCRIPTION' ); |
|
| 2190 | 2189 | } |
| 2191 | 2190 | return $output; |
| 2192 | - } |
|
| 2191 | + } |
|
| 2193 | 2192 | /** |
| 2194 | - * set calendar component property description |
|
| 2195 | - * |
|
| 2196 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2197 | - * @since 2.5.1 - 2008-11-05 |
|
| 2198 | - * @param string $value |
|
| 2199 | - * @param array $params, optional |
|
| 2200 | - * @param integer $index, optional |
|
| 2201 | - * @return bool |
|
| 2202 | - */ |
|
| 2203 | - function setDescription( $value, $params=FALSE, $index=FALSE ) { |
|
| 2193 | + * set calendar component property description |
|
| 2194 | + * |
|
| 2195 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2196 | + * @since 2.5.1 - 2008-11-05 |
|
| 2197 | + * @param string $value |
|
| 2198 | + * @param array $params, optional |
|
| 2199 | + * @param integer $index, optional |
|
| 2200 | + * @return bool |
|
| 2201 | + */ |
|
| 2202 | + function setDescription( $value, $params=FALSE, $index=FALSE ) { |
|
| 2204 | 2203 | if( empty( $value )) { if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; } |
| 2205 | 2204 | $this->_setMval( $this->description, $value, $params, FALSE, $index ); |
| 2206 | 2205 | return TRUE; |
| 2207 | - } |
|
| 2206 | + } |
|
| 2208 | 2207 | /*********************************************************************************/ |
| 2209 | 2208 | /** |
| 2210 | - * Property Name: DTEND |
|
| 2211 | - */ |
|
| 2209 | + * Property Name: DTEND |
|
| 2210 | + */ |
|
| 2212 | 2211 | /** |
| 2213 | - * creates formatted output for calendar component property dtend |
|
| 2214 | - * |
|
| 2215 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2216 | - * @since 2.4.8 - 2008-10-21 |
|
| 2217 | - * @return string |
|
| 2218 | - */ |
|
| 2219 | - function createDtend() { |
|
| 2212 | + * creates formatted output for calendar component property dtend |
|
| 2213 | + * |
|
| 2214 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2215 | + * @since 2.4.8 - 2008-10-21 |
|
| 2216 | + * @return string |
|
| 2217 | + */ |
|
| 2218 | + function createDtend() { |
|
| 2220 | 2219 | if( empty( $this->dtend )) return FALSE; |
| 2221 | 2220 | if( !isset( $this->dtend['value']['year'] ) && |
| 2222 | 2221 | !isset( $this->dtend['value']['month'] ) && |
@@ -2224,112 +2223,112 @@ discard block |
||
| 2224 | 2223 | !isset( $this->dtend['value']['hour'] ) && |
| 2225 | 2224 | !isset( $this->dtend['value']['min'] ) && |
| 2226 | 2225 | !isset( $this->dtend['value']['sec'] )) |
| 2227 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2226 | + if( $this->getConfig( 'allowEmpty' )) |
|
| 2228 | 2227 | return $this->_createElement( 'DTEND' ); |
| 2229 | - else return FALSE; |
|
| 2228 | + else return FALSE; |
|
| 2230 | 2229 | $formatted = $this->_format_date_time( $this->dtend['value'] ); |
| 2231 | 2230 | $attributes = $this->_createParams( $this->dtend['params'] ); |
| 2232 | 2231 | return $this->_createElement( 'DTEND', $attributes, $formatted ); |
| 2233 | - } |
|
| 2232 | + } |
|
| 2234 | 2233 | /** |
| 2235 | - * set calendar component property dtend |
|
| 2236 | - * |
|
| 2237 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2238 | - * @since 2.4.8 - 2008-10-23 |
|
| 2239 | - * @param mixed $year |
|
| 2240 | - * @param mixed $month optional |
|
| 2241 | - * @param int $day optional |
|
| 2242 | - * @param int $hour optional |
|
| 2243 | - * @param int $min optional |
|
| 2244 | - * @param int $sec optional |
|
| 2245 | - * @param string $tz optional |
|
| 2246 | - * @param array params optional |
|
| 2247 | - * @return bool |
|
| 2248 | - */ |
|
| 2249 | - function setDtend( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 2234 | + * set calendar component property dtend |
|
| 2235 | + * |
|
| 2236 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2237 | + * @since 2.4.8 - 2008-10-23 |
|
| 2238 | + * @param mixed $year |
|
| 2239 | + * @param mixed $month optional |
|
| 2240 | + * @param int $day optional |
|
| 2241 | + * @param int $hour optional |
|
| 2242 | + * @param int $min optional |
|
| 2243 | + * @param int $sec optional |
|
| 2244 | + * @param string $tz optional |
|
| 2245 | + * @param array params optional |
|
| 2246 | + * @return bool |
|
| 2247 | + */ |
|
| 2248 | + function setDtend( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 2250 | 2249 | if( empty( $year )) { |
| 2251 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2250 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2252 | 2251 | $this->dtend = array( 'value' => null, 'params' => $this->_setParams( $params )); |
| 2253 | 2252 | return TRUE; |
| 2254 | - } |
|
| 2255 | - else |
|
| 2253 | + } |
|
| 2254 | + else |
|
| 2256 | 2255 | return FALSE; |
| 2257 | 2256 | } |
| 2258 | 2257 | $this->dtend = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params ); |
| 2259 | 2258 | return TRUE; |
| 2260 | - } |
|
| 2259 | + } |
|
| 2261 | 2260 | /*********************************************************************************/ |
| 2262 | 2261 | /** |
| 2263 | - * Property Name: DTSTAMP |
|
| 2264 | - */ |
|
| 2262 | + * Property Name: DTSTAMP |
|
| 2263 | + */ |
|
| 2265 | 2264 | /** |
| 2266 | - * creates formatted output for calendar component property dtstamp |
|
| 2267 | - * |
|
| 2268 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2269 | - * @since 2.4.4 - 2008-03-07 |
|
| 2270 | - * @return string |
|
| 2271 | - */ |
|
| 2272 | - function createDtstamp() { |
|
| 2265 | + * creates formatted output for calendar component property dtstamp |
|
| 2266 | + * |
|
| 2267 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2268 | + * @since 2.4.4 - 2008-03-07 |
|
| 2269 | + * @return string |
|
| 2270 | + */ |
|
| 2271 | + function createDtstamp() { |
|
| 2273 | 2272 | if( !isset( $this->dtstamp['value']['year'] ) && |
| 2274 | 2273 | !isset( $this->dtstamp['value']['month'] ) && |
| 2275 | 2274 | !isset( $this->dtstamp['value']['day'] ) && |
| 2276 | 2275 | !isset( $this->dtstamp['value']['hour'] ) && |
| 2277 | 2276 | !isset( $this->dtstamp['value']['min'] ) && |
| 2278 | 2277 | !isset( $this->dtstamp['value']['sec'] )) |
| 2279 | - $this->_makeDtstamp(); |
|
| 2278 | + $this->_makeDtstamp(); |
|
| 2280 | 2279 | $formatted = $this->_format_date_time( $this->dtstamp['value'], 7 ); |
| 2281 | 2280 | $attributes = $this->_createParams( $this->dtstamp['params'] ); |
| 2282 | 2281 | return $this->_createElement( 'DTSTAMP', $attributes, $formatted ); |
| 2283 | - } |
|
| 2282 | + } |
|
| 2284 | 2283 | /** |
| 2285 | - * computes datestamp for calendar component object instance dtstamp |
|
| 2286 | - * |
|
| 2287 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2288 | - * @since 1.x.x - 2007-05-13 |
|
| 2289 | - * @return void |
|
| 2290 | - */ |
|
| 2291 | - function _makeDtstamp() { |
|
| 2284 | + * computes datestamp for calendar component object instance dtstamp |
|
| 2285 | + * |
|
| 2286 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2287 | + * @since 1.x.x - 2007-05-13 |
|
| 2288 | + * @return void |
|
| 2289 | + */ |
|
| 2290 | + function _makeDtstamp() { |
|
| 2292 | 2291 | $this->dtstamp['value'] = array( 'year' => date( 'Y' ) |
| 2293 | - , 'month' => date( 'm' ) |
|
| 2294 | - , 'day' => date( 'd' ) |
|
| 2295 | - , 'hour' => date( 'H' ) |
|
| 2296 | - , 'min' => date( 'i' ) |
|
| 2297 | - , 'sec' => date( 's' ) - date( 'Z' )); |
|
| 2292 | + , 'month' => date( 'm' ) |
|
| 2293 | + , 'day' => date( 'd' ) |
|
| 2294 | + , 'hour' => date( 'H' ) |
|
| 2295 | + , 'min' => date( 'i' ) |
|
| 2296 | + , 'sec' => date( 's' ) - date( 'Z' )); |
|
| 2298 | 2297 | $this->dtstamp['params'] = null; |
| 2299 | - } |
|
| 2298 | + } |
|
| 2300 | 2299 | /** |
| 2301 | - * set calendar component property dtstamp |
|
| 2302 | - * |
|
| 2303 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2304 | - * @since 2.4.8 - 2008-10-23 |
|
| 2305 | - * @param mixed $year |
|
| 2306 | - * @param mixed $month optional |
|
| 2307 | - * @param int $day optional |
|
| 2308 | - * @param int $hour optional |
|
| 2309 | - * @param int $min optional |
|
| 2310 | - * @param int $sec optional |
|
| 2311 | - * @param array $params optional |
|
| 2312 | - * @return TRUE |
|
| 2313 | - */ |
|
| 2314 | - function setDtstamp( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2300 | + * set calendar component property dtstamp |
|
| 2301 | + * |
|
| 2302 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2303 | + * @since 2.4.8 - 2008-10-23 |
|
| 2304 | + * @param mixed $year |
|
| 2305 | + * @param mixed $month optional |
|
| 2306 | + * @param int $day optional |
|
| 2307 | + * @param int $hour optional |
|
| 2308 | + * @param int $min optional |
|
| 2309 | + * @param int $sec optional |
|
| 2310 | + * @param array $params optional |
|
| 2311 | + * @return TRUE |
|
| 2312 | + */ |
|
| 2313 | + function setDtstamp( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2315 | 2314 | if( empty( $year )) |
| 2316 | - $this->_makeDtstamp(); |
|
| 2315 | + $this->_makeDtstamp(); |
|
| 2317 | 2316 | else |
| 2318 | - $this->dtstamp = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
|
| 2317 | + $this->dtstamp = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
|
| 2319 | 2318 | return TRUE; |
| 2320 | - } |
|
| 2319 | + } |
|
| 2321 | 2320 | /*********************************************************************************/ |
| 2322 | 2321 | /** |
| 2323 | - * Property Name: DTSTART |
|
| 2324 | - */ |
|
| 2322 | + * Property Name: DTSTART |
|
| 2323 | + */ |
|
| 2325 | 2324 | /** |
| 2326 | - * creates formatted output for calendar component property dtstart |
|
| 2327 | - * |
|
| 2328 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2329 | - * @since 2.4.16 - 2008-10-26 |
|
| 2330 | - * @return string |
|
| 2331 | - */ |
|
| 2332 | - function createDtstart() { |
|
| 2325 | + * creates formatted output for calendar component property dtstart |
|
| 2326 | + * |
|
| 2327 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2328 | + * @since 2.4.16 - 2008-10-26 |
|
| 2329 | + * @return string |
|
| 2330 | + */ |
|
| 2331 | + function createDtstart() { |
|
| 2333 | 2332 | if( empty( $this->dtstart )) return FALSE; |
| 2334 | 2333 | if( !isset( $this->dtstart['value']['year'] ) && |
| 2335 | 2334 | !isset( $this->dtstart['value']['month'] ) && |
@@ -2338,53 +2337,53 @@ discard block |
||
| 2338 | 2337 | !isset( $this->dtstart['value']['min'] ) && |
| 2339 | 2338 | !isset( $this->dtstart['value']['sec'] )) |
| 2340 | 2339 | if( $this->getConfig( 'allowEmpty' )) |
| 2341 | - return $this->_createElement( 'DTSTART' ); |
|
| 2340 | + return $this->_createElement( 'DTSTART' ); |
|
| 2342 | 2341 | else return FALSE; |
| 2343 | 2342 | if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) |
| 2344 | - unset( $this->dtstart['value']['tz'], $this->dtstart['params']['TZID'] ); |
|
| 2343 | + unset( $this->dtstart['value']['tz'], $this->dtstart['params']['TZID'] ); |
|
| 2345 | 2344 | $formatted = $this->_format_date_time( $this->dtstart['value'] ); |
| 2346 | 2345 | $attributes = $this->_createParams( $this->dtstart['params'] ); |
| 2347 | 2346 | return $this->_createElement( 'DTSTART', $attributes, $formatted ); |
| 2348 | - } |
|
| 2347 | + } |
|
| 2349 | 2348 | /** |
| 2350 | - * set calendar component property dtstart |
|
| 2351 | - * |
|
| 2352 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2353 | - * @since 2.4.16 - 2008-11-04 |
|
| 2354 | - * @param mixed $year |
|
| 2355 | - * @param mixed $month optional |
|
| 2356 | - * @param int $day optional |
|
| 2357 | - * @param int $hour optional |
|
| 2358 | - * @param int $min optional |
|
| 2359 | - * @param int $sec optional |
|
| 2360 | - * @param string $tz optional |
|
| 2361 | - * @param array $params optional |
|
| 2362 | - * @return bool |
|
| 2363 | - */ |
|
| 2364 | - function setDtstart( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 2349 | + * set calendar component property dtstart |
|
| 2350 | + * |
|
| 2351 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2352 | + * @since 2.4.16 - 2008-11-04 |
|
| 2353 | + * @param mixed $year |
|
| 2354 | + * @param mixed $month optional |
|
| 2355 | + * @param int $day optional |
|
| 2356 | + * @param int $hour optional |
|
| 2357 | + * @param int $min optional |
|
| 2358 | + * @param int $sec optional |
|
| 2359 | + * @param string $tz optional |
|
| 2360 | + * @param array $params optional |
|
| 2361 | + * @return bool |
|
| 2362 | + */ |
|
| 2363 | + function setDtstart( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 2365 | 2364 | if( empty( $year )) { |
| 2366 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2365 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2367 | 2366 | $this->dtstart = array( 'value' => null, 'params' => $this->_setParams( $params )); |
| 2368 | 2367 | return TRUE; |
| 2369 | - } |
|
| 2370 | - else |
|
| 2368 | + } |
|
| 2369 | + else |
|
| 2371 | 2370 | return FALSE; |
| 2372 | 2371 | } |
| 2373 | 2372 | $this->dtstart = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params, 'dtstart' ); |
| 2374 | 2373 | return TRUE; |
| 2375 | - } |
|
| 2374 | + } |
|
| 2376 | 2375 | /*********************************************************************************/ |
| 2377 | 2376 | /** |
| 2378 | - * Property Name: DUE |
|
| 2379 | - */ |
|
| 2377 | + * Property Name: DUE |
|
| 2378 | + */ |
|
| 2380 | 2379 | /** |
| 2381 | - * creates formatted output for calendar component property due |
|
| 2382 | - * |
|
| 2383 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2384 | - * @since 2.4.8 - 2008-10-22 |
|
| 2385 | - * @return string |
|
| 2386 | - */ |
|
| 2387 | - function createDue() { |
|
| 2380 | + * creates formatted output for calendar component property due |
|
| 2381 | + * |
|
| 2382 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2383 | + * @since 2.4.8 - 2008-10-22 |
|
| 2384 | + * @return string |
|
| 2385 | + */ |
|
| 2386 | + function createDue() { |
|
| 2388 | 2387 | if( empty( $this->due )) return FALSE; |
| 2389 | 2388 | if( !isset( $this->due['value']['year'] ) && |
| 2390 | 2389 | !isset( $this->due['value']['month'] ) && |
@@ -2392,154 +2391,154 @@ discard block |
||
| 2392 | 2391 | !isset( $this->due['value']['hour'] ) && |
| 2393 | 2392 | !isset( $this->due['value']['min'] ) && |
| 2394 | 2393 | !isset( $this->due['value']['sec'] )) |
| 2395 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2394 | + if( $this->getConfig( 'allowEmpty' )) |
|
| 2396 | 2395 | return $this->_createElement( 'DUE' ); |
| 2397 | - else return FALSE; |
|
| 2396 | + else return FALSE; |
|
| 2398 | 2397 | $formatted = $this->_format_date_time( $this->due['value'] ); |
| 2399 | 2398 | $attributes = $this->_createParams( $this->due['params'] ); |
| 2400 | 2399 | return $this->_createElement( 'DUE', $attributes, $formatted ); |
| 2401 | - } |
|
| 2400 | + } |
|
| 2402 | 2401 | /** |
| 2403 | - * set calendar component property due |
|
| 2404 | - * |
|
| 2405 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2406 | - * @since 2.4.8 - 2008-11-04 |
|
| 2407 | - * @param mixed $year |
|
| 2408 | - * @param mixed $month optional |
|
| 2409 | - * @param int $day optional |
|
| 2410 | - * @param int $hour optional |
|
| 2411 | - * @param int $min optional |
|
| 2412 | - * @param int $sec optional |
|
| 2413 | - * @param array $params optional |
|
| 2414 | - * @return bool |
|
| 2415 | - */ |
|
| 2416 | - function setDue( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 2402 | + * set calendar component property due |
|
| 2403 | + * |
|
| 2404 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2405 | + * @since 2.4.8 - 2008-11-04 |
|
| 2406 | + * @param mixed $year |
|
| 2407 | + * @param mixed $month optional |
|
| 2408 | + * @param int $day optional |
|
| 2409 | + * @param int $hour optional |
|
| 2410 | + * @param int $min optional |
|
| 2411 | + * @param int $sec optional |
|
| 2412 | + * @param array $params optional |
|
| 2413 | + * @return bool |
|
| 2414 | + */ |
|
| 2415 | + function setDue( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 2417 | 2416 | if( empty( $year )) { |
| 2418 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2417 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2419 | 2418 | $this->due = array( 'value' => null, 'params' => $this->_setParams( $params )); |
| 2420 | 2419 | return TRUE; |
| 2421 | - } |
|
| 2422 | - else |
|
| 2420 | + } |
|
| 2421 | + else |
|
| 2423 | 2422 | return FALSE; |
| 2424 | 2423 | } |
| 2425 | 2424 | $this->due = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params ); |
| 2426 | 2425 | return TRUE; |
| 2427 | - } |
|
| 2426 | + } |
|
| 2428 | 2427 | /*********************************************************************************/ |
| 2429 | 2428 | /** |
| 2430 | - * Property Name: DURATION |
|
| 2431 | - */ |
|
| 2429 | + * Property Name: DURATION |
|
| 2430 | + */ |
|
| 2432 | 2431 | /** |
| 2433 | - * creates formatted output for calendar component property duration |
|
| 2434 | - * |
|
| 2435 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2436 | - * @since 2.4.8 - 2008-10-21 |
|
| 2437 | - * @return string |
|
| 2438 | - */ |
|
| 2439 | - function createDuration() { |
|
| 2432 | + * creates formatted output for calendar component property duration |
|
| 2433 | + * |
|
| 2434 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2435 | + * @since 2.4.8 - 2008-10-21 |
|
| 2436 | + * @return string |
|
| 2437 | + */ |
|
| 2438 | + function createDuration() { |
|
| 2440 | 2439 | if( empty( $this->duration )) return FALSE; |
| 2441 | 2440 | if( !isset( $this->duration['value']['week'] ) && |
| 2442 | 2441 | !isset( $this->duration['value']['day'] ) && |
| 2443 | 2442 | !isset( $this->duration['value']['hour'] ) && |
| 2444 | 2443 | !isset( $this->duration['value']['min'] ) && |
| 2445 | 2444 | !isset( $this->duration['value']['sec'] )) |
| 2446 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2445 | + if( $this->getConfig( 'allowEmpty' )) |
|
| 2447 | 2446 | return $this->_createElement( 'DURATION', array(), null ); |
| 2448 | - else return FALSE; |
|
| 2447 | + else return FALSE; |
|
| 2449 | 2448 | $attributes = $this->_createParams( $this->duration['params'] ); |
| 2450 | 2449 | return $this->_createElement( 'DURATION', $attributes, $this->_format_duration( $this->duration['value'] )); |
| 2451 | - } |
|
| 2450 | + } |
|
| 2452 | 2451 | /** |
| 2453 | - * set calendar component property duration |
|
| 2454 | - * |
|
| 2455 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2456 | - * @since 2.4.8 - 2008-11-04 |
|
| 2457 | - * @param mixed $week |
|
| 2458 | - * @param mixed $day optional |
|
| 2459 | - * @param int $hour optional |
|
| 2460 | - * @param int $min optional |
|
| 2461 | - * @param int $sec optional |
|
| 2462 | - * @param array $params optional |
|
| 2463 | - * @return bool |
|
| 2464 | - */ |
|
| 2465 | - function setDuration( $week, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2452 | + * set calendar component property duration |
|
| 2453 | + * |
|
| 2454 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2455 | + * @since 2.4.8 - 2008-11-04 |
|
| 2456 | + * @param mixed $week |
|
| 2457 | + * @param mixed $day optional |
|
| 2458 | + * @param int $hour optional |
|
| 2459 | + * @param int $min optional |
|
| 2460 | + * @param int $sec optional |
|
| 2461 | + * @param array $params optional |
|
| 2462 | + * @return bool |
|
| 2463 | + */ |
|
| 2464 | + function setDuration( $week, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2466 | 2465 | if( empty( $week )) if( $this->getConfig( 'allowEmpty' )) $week = null; else return FALSE; |
| 2467 | 2466 | if( is_array( $week ) && ( 1 <= count( $week ))) |
| 2468 | - $this->duration = array( 'value' => $this->_duration_array( $week ), 'params' => $this->_setParams( $day )); |
|
| 2467 | + $this->duration = array( 'value' => $this->_duration_array( $week ), 'params' => $this->_setParams( $day )); |
|
| 2469 | 2468 | elseif( is_string( $week ) && ( 3 <= strlen( trim( $week )))) { |
| 2470 | - $week = trim( $week ); |
|
| 2471 | - if( in_array( substr( $week, 0, 1 ), array( '+', '-' ))) |
|
| 2469 | + $week = trim( $week ); |
|
| 2470 | + if( in_array( substr( $week, 0, 1 ), array( '+', '-' ))) |
|
| 2472 | 2471 | $week = substr( $week, 1 ); |
| 2473 | - $this->duration = array( 'value' => $this->_duration_string( $week ), 'params' => $this->_setParams( $day )); |
|
| 2472 | + $this->duration = array( 'value' => $this->_duration_string( $week ), 'params' => $this->_setParams( $day )); |
|
| 2474 | 2473 | } |
| 2475 | 2474 | elseif( empty( $week ) && empty( $day ) && empty( $hour ) && empty( $min ) && empty( $sec )) |
| 2476 | - return FALSE; |
|
| 2475 | + return FALSE; |
|
| 2477 | 2476 | else |
| 2478 | - $this->duration = array( 'value' => $this->_duration_array( array( $week, $day, $hour, $min, $sec )), 'params' => $this->_setParams( $params )); |
|
| 2477 | + $this->duration = array( 'value' => $this->_duration_array( array( $week, $day, $hour, $min, $sec )), 'params' => $this->_setParams( $params )); |
|
| 2479 | 2478 | return TRUE; |
| 2480 | - } |
|
| 2479 | + } |
|
| 2481 | 2480 | /*********************************************************************************/ |
| 2482 | 2481 | /** |
| 2483 | - * Property Name: EXDATE |
|
| 2484 | - */ |
|
| 2482 | + * Property Name: EXDATE |
|
| 2483 | + */ |
|
| 2485 | 2484 | /** |
| 2486 | - * creates formatted output for calendar component property exdate |
|
| 2487 | - * |
|
| 2488 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2489 | - * @since 2.4.8 - 2008-10-22 |
|
| 2490 | - * @return string |
|
| 2491 | - */ |
|
| 2492 | - function createExdate() { |
|
| 2485 | + * creates formatted output for calendar component property exdate |
|
| 2486 | + * |
|
| 2487 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2488 | + * @since 2.4.8 - 2008-10-22 |
|
| 2489 | + * @return string |
|
| 2490 | + */ |
|
| 2491 | + function createExdate() { |
|
| 2493 | 2492 | if( empty( $this->exdate )) return FALSE; |
| 2494 | 2493 | $output = null; |
| 2495 | 2494 | foreach( $this->exdate as $ex => $theExdate ) { |
| 2496 | - if( empty( $theExdate['value'] )) { |
|
| 2495 | + if( empty( $theExdate['value'] )) { |
|
| 2497 | 2496 | if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'EXDATE' ); |
| 2498 | 2497 | continue; |
| 2499 | - } |
|
| 2500 | - $content = $attributes = null; |
|
| 2501 | - foreach( $theExdate['value'] as $eix => $exdatePart ) { |
|
| 2498 | + } |
|
| 2499 | + $content = $attributes = null; |
|
| 2500 | + foreach( $theExdate['value'] as $eix => $exdatePart ) { |
|
| 2502 | 2501 | $parno = count( $exdatePart ); |
| 2503 | 2502 | $formatted = $this->_format_date_time( $exdatePart, $parno ); |
| 2504 | 2503 | if( isset( $theExdate['params']['TZID'] )) |
| 2505 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 2504 | + $formatted = str_replace( 'Z', '', $formatted); |
|
| 2506 | 2505 | if( 0 < $eix ) { |
| 2507 | - if( isset( $theExdate['value'][0]['tz'] )) { |
|
| 2506 | + if( isset( $theExdate['value'][0]['tz'] )) { |
|
| 2508 | 2507 | if( ctype_digit( substr( $theExdate['value'][0]['tz'], -4 )) || |
| 2509 | 2508 | ( 'Z' == $theExdate['value'][0]['tz'] )) { |
| 2510 | - if( 'Z' != substr( $formatted, -1 )) |
|
| 2509 | + if( 'Z' != substr( $formatted, -1 )) |
|
| 2511 | 2510 | $formatted .= 'Z'; |
| 2512 | 2511 | } |
| 2513 | 2512 | else |
| 2514 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2515 | - } |
|
| 2516 | - else |
|
| 2513 | + $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2514 | + } |
|
| 2515 | + else |
|
| 2517 | 2516 | $formatted = str_replace( 'Z', '', $formatted ); |
| 2518 | 2517 | } |
| 2519 | 2518 | $content .= ( 0 < $eix ) ? ','.$formatted : $formatted; |
| 2520 | - } |
|
| 2521 | - $attributes .= $this->_createParams( $theExdate['params'] ); |
|
| 2522 | - $output .= $this->_createElement( 'EXDATE', $attributes, $content ); |
|
| 2519 | + } |
|
| 2520 | + $attributes .= $this->_createParams( $theExdate['params'] ); |
|
| 2521 | + $output .= $this->_createElement( 'EXDATE', $attributes, $content ); |
|
| 2523 | 2522 | } |
| 2524 | 2523 | return $output; |
| 2525 | - } |
|
| 2524 | + } |
|
| 2526 | 2525 | /** |
| 2527 | - * set calendar component property exdate |
|
| 2528 | - * |
|
| 2529 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2530 | - * @since 2.5.1 - 2008-11-05 |
|
| 2531 | - * @param array exdates |
|
| 2532 | - * @param array $params, optional |
|
| 2533 | - * @param integer $index, optional |
|
| 2534 | - * @return bool |
|
| 2535 | - */ |
|
| 2536 | - function setExdate( $exdates, $params=FALSE, $index=FALSE ) { |
|
| 2526 | + * set calendar component property exdate |
|
| 2527 | + * |
|
| 2528 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2529 | + * @since 2.5.1 - 2008-11-05 |
|
| 2530 | + * @param array exdates |
|
| 2531 | + * @param array $params, optional |
|
| 2532 | + * @param integer $index, optional |
|
| 2533 | + * @return bool |
|
| 2534 | + */ |
|
| 2535 | + function setExdate( $exdates, $params=FALSE, $index=FALSE ) { |
|
| 2537 | 2536 | if( empty( $exdates )) { |
| 2538 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2537 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2539 | 2538 | $this->_setMval( $this->exdate, null, $params, FALSE, $index ); |
| 2540 | 2539 | return TRUE; |
| 2541 | - } |
|
| 2542 | - else |
|
| 2540 | + } |
|
| 2541 | + else |
|
| 2543 | 2542 | return FALSE; |
| 2544 | 2543 | } |
| 2545 | 2544 | $input = array( 'params' => $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' ))); |
@@ -2547,519 +2546,519 @@ discard block |
||
| 2547 | 2546 | $this->_chkdatecfg( reset( $exdates ), $parno, $input['params'] ); |
| 2548 | 2547 | $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME' ); // remove default parameter |
| 2549 | 2548 | foreach( $exdates as $eix => $theExdate ) { |
| 2550 | - if( $this->_isArrayTimestampDate( $theExdate )) |
|
| 2549 | + if( $this->_isArrayTimestampDate( $theExdate )) |
|
| 2551 | 2550 | $exdatea = $this->_timestamp2date( $theExdate, $parno ); |
| 2552 | - elseif( is_array( $theExdate )) |
|
| 2551 | + elseif( is_array( $theExdate )) |
|
| 2553 | 2552 | $exdatea = $this->_date_time_array( $theExdate, $parno ); |
| 2554 | - elseif( 8 <= strlen( trim( $theExdate ))) // ex. 2006-08-03 10:12:18 |
|
| 2553 | + elseif( 8 <= strlen( trim( $theExdate ))) // ex. 2006-08-03 10:12:18 |
|
| 2555 | 2554 | $exdatea = $this->_date_time_string( $theExdate, $parno ); |
| 2556 | - if( 3 == $parno ) |
|
| 2555 | + if( 3 == $parno ) |
|
| 2557 | 2556 | unset( $exdatea['hour'], $exdatea['min'], $exdatea['sec'], $exdatea['tz'] ); |
| 2558 | - elseif( isset( $exdatea['tz'] )) |
|
| 2557 | + elseif( isset( $exdatea['tz'] )) |
|
| 2559 | 2558 | $exdatea['tz'] = (string) $exdatea['tz']; |
| 2560 | - if( isset( $input['params']['TZID'] ) || |
|
| 2559 | + if( isset( $input['params']['TZID'] ) || |
|
| 2561 | 2560 | ( isset( $exdatea['tz'] ) && !$this->_isOffset( $exdatea['tz'] )) || |
| 2562 | 2561 | ( isset( $input['value'][0] ) && ( !isset( $input['value'][0]['tz'] ))) || |
| 2563 | 2562 | ( isset( $input['value'][0]['tz'] ) && !$this->_isOffset( $input['value'][0]['tz'] ))) |
| 2564 | 2563 | unset( $exdatea['tz'] ); |
| 2565 | - $input['value'][] = $exdatea; |
|
| 2564 | + $input['value'][] = $exdatea; |
|
| 2566 | 2565 | } |
| 2567 | 2566 | if( 0 >= count( $input['value'] )) |
| 2568 | - return FALSE; |
|
| 2567 | + return FALSE; |
|
| 2569 | 2568 | if( 3 == $parno ) { |
| 2570 | - $input['params']['VALUE'] = 'DATE'; |
|
| 2571 | - unset( $input['params']['TZID'] ); |
|
| 2569 | + $input['params']['VALUE'] = 'DATE'; |
|
| 2570 | + unset( $input['params']['TZID'] ); |
|
| 2572 | 2571 | } |
| 2573 | 2572 | $this->_setMval( $this->exdate, $input['value'], $input['params'], FALSE, $index ); |
| 2574 | 2573 | return TRUE; |
| 2575 | - } |
|
| 2574 | + } |
|
| 2576 | 2575 | /*********************************************************************************/ |
| 2577 | 2576 | /** |
| 2578 | - * Property Name: EXRULE |
|
| 2579 | - */ |
|
| 2577 | + * Property Name: EXRULE |
|
| 2578 | + */ |
|
| 2580 | 2579 | /** |
| 2581 | - * creates formatted output for calendar component property exrule |
|
| 2582 | - * |
|
| 2583 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2584 | - * @since 2.4.8 - 2008-10-22 |
|
| 2585 | - * @return string |
|
| 2586 | - */ |
|
| 2587 | - function createExrule() { |
|
| 2580 | + * creates formatted output for calendar component property exrule |
|
| 2581 | + * |
|
| 2582 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2583 | + * @since 2.4.8 - 2008-10-22 |
|
| 2584 | + * @return string |
|
| 2585 | + */ |
|
| 2586 | + function createExrule() { |
|
| 2588 | 2587 | if( empty( $this->exrule )) return FALSE; |
| 2589 | 2588 | return $this->_format_recur( 'EXRULE', $this->exrule ); |
| 2590 | - } |
|
| 2589 | + } |
|
| 2591 | 2590 | /** |
| 2592 | - * set calendar component property exdate |
|
| 2593 | - * |
|
| 2594 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2595 | - * @since 2.5.1 - 2008-11-05 |
|
| 2596 | - * @param array $exruleset |
|
| 2597 | - * @param array $params, optional |
|
| 2598 | - * @param integer $index, optional |
|
| 2599 | - * @return bool |
|
| 2600 | - */ |
|
| 2601 | - function setExrule( $exruleset, $params=FALSE, $index=FALSE ) { |
|
| 2591 | + * set calendar component property exdate |
|
| 2592 | + * |
|
| 2593 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2594 | + * @since 2.5.1 - 2008-11-05 |
|
| 2595 | + * @param array $exruleset |
|
| 2596 | + * @param array $params, optional |
|
| 2597 | + * @param integer $index, optional |
|
| 2598 | + * @return bool |
|
| 2599 | + */ |
|
| 2600 | + function setExrule( $exruleset, $params=FALSE, $index=FALSE ) { |
|
| 2602 | 2601 | if( empty( $exruleset )) if( $this->getConfig( 'allowEmpty' )) $exruleset = null; else return FALSE; |
| 2603 | 2602 | $this->_setMval( $this->exrule, $this->_setRexrule( $exruleset ), $params, FALSE, $index ); |
| 2604 | 2603 | return TRUE; |
| 2605 | - } |
|
| 2604 | + } |
|
| 2606 | 2605 | /*********************************************************************************/ |
| 2607 | 2606 | /** |
| 2608 | - * Property Name: FREEBUSY |
|
| 2609 | - */ |
|
| 2607 | + * Property Name: FREEBUSY |
|
| 2608 | + */ |
|
| 2610 | 2609 | /** |
| 2611 | - * creates formatted output for calendar component property freebusy |
|
| 2612 | - * |
|
| 2613 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2614 | - * @since 2.4.8 - 2008-10-22 |
|
| 2615 | - * @return string |
|
| 2616 | - */ |
|
| 2617 | - function createFreebusy() { |
|
| 2610 | + * creates formatted output for calendar component property freebusy |
|
| 2611 | + * |
|
| 2612 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2613 | + * @since 2.4.8 - 2008-10-22 |
|
| 2614 | + * @return string |
|
| 2615 | + */ |
|
| 2616 | + function createFreebusy() { |
|
| 2618 | 2617 | if( empty( $this->freebusy )) return FALSE; |
| 2619 | 2618 | $output = null; |
| 2620 | 2619 | foreach( $this->freebusy as $freebusyPart ) { |
| 2621 | - if( empty( $freebusyPart['value'] )) { |
|
| 2620 | + if( empty( $freebusyPart['value'] )) { |
|
| 2622 | 2621 | if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'FREEBUSY' ); |
| 2623 | 2622 | continue; |
| 2624 | - } |
|
| 2625 | - $attributes = $content = null; |
|
| 2626 | - if( isset( $freebusyPart['value']['fbtype'] )) { |
|
| 2623 | + } |
|
| 2624 | + $attributes = $content = null; |
|
| 2625 | + if( isset( $freebusyPart['value']['fbtype'] )) { |
|
| 2627 | 2626 | $attributes .= $this->intAttrDelimiter.'FBTYPE='.$freebusyPart['value']['fbtype']; |
| 2628 | 2627 | unset( $freebusyPart['value']['fbtype'] ); |
| 2629 | 2628 | $freebusyPart['value'] = array_values( $freebusyPart['value'] ); |
| 2630 | - } |
|
| 2631 | - else |
|
| 2629 | + } |
|
| 2630 | + else |
|
| 2632 | 2631 | $attributes .= $this->intAttrDelimiter.'FBTYPE=BUSY'; |
| 2633 | - $attributes .= $this->_createParams( $freebusyPart['params'] ); |
|
| 2634 | - $fno = 1; |
|
| 2635 | - $cnt = count( $freebusyPart['value']); |
|
| 2636 | - foreach( $freebusyPart['value'] as $periodix => $freebusyPeriod ) { |
|
| 2632 | + $attributes .= $this->_createParams( $freebusyPart['params'] ); |
|
| 2633 | + $fno = 1; |
|
| 2634 | + $cnt = count( $freebusyPart['value']); |
|
| 2635 | + foreach( $freebusyPart['value'] as $periodix => $freebusyPeriod ) { |
|
| 2637 | 2636 | $formatted = $this->_format_date_time( $freebusyPeriod[0] ); |
| 2638 | 2637 | $content .= $formatted; |
| 2639 | 2638 | $content .= '/'; |
| 2640 | 2639 | $cnt2 = count( $freebusyPeriod[1]); |
| 2641 | 2640 | if( array_key_exists( 'year', $freebusyPeriod[1] )) // date-time |
| 2642 | - $cnt2 = 7; |
|
| 2641 | + $cnt2 = 7; |
|
| 2643 | 2642 | elseif( array_key_exists( 'week', $freebusyPeriod[1] )) // duration |
| 2644 | - $cnt2 = 5; |
|
| 2643 | + $cnt2 = 5; |
|
| 2645 | 2644 | if(( 7 == $cnt2 ) && // period= -> date-time |
| 2646 | 2645 | isset( $freebusyPeriod[1]['year'] ) && |
| 2647 | 2646 | isset( $freebusyPeriod[1]['month'] ) && |
| 2648 | 2647 | isset( $freebusyPeriod[1]['day'] )) { |
| 2649 | - $content .= $this->_format_date_time( $freebusyPeriod[1] ); |
|
| 2648 | + $content .= $this->_format_date_time( $freebusyPeriod[1] ); |
|
| 2650 | 2649 | } |
| 2651 | 2650 | else { // period= -> dur-time |
| 2652 | - $content .= $this->_format_duration( $freebusyPeriod[1] ); |
|
| 2651 | + $content .= $this->_format_duration( $freebusyPeriod[1] ); |
|
| 2653 | 2652 | } |
| 2654 | 2653 | if( $fno < $cnt ) |
| 2655 | - $content .= ','; |
|
| 2654 | + $content .= ','; |
|
| 2656 | 2655 | $fno++; |
| 2657 | - } |
|
| 2658 | - $output .= $this->_createElement( 'FREEBUSY', $attributes, $content ); |
|
| 2656 | + } |
|
| 2657 | + $output .= $this->_createElement( 'FREEBUSY', $attributes, $content ); |
|
| 2659 | 2658 | } |
| 2660 | 2659 | return $output; |
| 2661 | - } |
|
| 2660 | + } |
|
| 2662 | 2661 | /** |
| 2663 | - * set calendar component property freebusy |
|
| 2664 | - * |
|
| 2665 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2666 | - * @since 2.5.1 - 2008-11-05 |
|
| 2667 | - * @param string $fbType |
|
| 2668 | - * @param array $fbValues |
|
| 2669 | - * @param array $params, optional |
|
| 2670 | - * @param integer $index, optional |
|
| 2671 | - * @return bool |
|
| 2672 | - */ |
|
| 2673 | - function setFreebusy( $fbType, $fbValues, $params=FALSE, $index=FALSE ) { |
|
| 2662 | + * set calendar component property freebusy |
|
| 2663 | + * |
|
| 2664 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2665 | + * @since 2.5.1 - 2008-11-05 |
|
| 2666 | + * @param string $fbType |
|
| 2667 | + * @param array $fbValues |
|
| 2668 | + * @param array $params, optional |
|
| 2669 | + * @param integer $index, optional |
|
| 2670 | + * @return bool |
|
| 2671 | + */ |
|
| 2672 | + function setFreebusy( $fbType, $fbValues, $params=FALSE, $index=FALSE ) { |
|
| 2674 | 2673 | if( empty( $fbValues )) { |
| 2675 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2674 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2676 | 2675 | $this->_setMval( $this->freebusy, null, $params, FALSE, $index ); |
| 2677 | 2676 | return TRUE; |
| 2678 | - } |
|
| 2679 | - else |
|
| 2677 | + } |
|
| 2678 | + else |
|
| 2680 | 2679 | return FALSE; |
| 2681 | 2680 | } |
| 2682 | 2681 | $fbType = strtoupper( $fbType ); |
| 2683 | 2682 | if(( !in_array( $fbType, array( 'FREE', 'BUSY', 'BUSY-UNAVAILABLE', 'BUSY-TENTATIVE' ))) && |
| 2684 | 2683 | ( 'X-' != substr( $fbType, 0, 2 ))) |
| 2685 | - $fbType = 'BUSY'; |
|
| 2684 | + $fbType = 'BUSY'; |
|
| 2686 | 2685 | $input = array( 'fbtype' => $fbType ); |
| 2687 | 2686 | foreach( $fbValues as $fbPeriod ) { // periods => period |
| 2688 | - $freebusyPeriod = array(); |
|
| 2689 | - foreach( $fbPeriod as $fbMember ) { // pairs => singlepart |
|
| 2687 | + $freebusyPeriod = array(); |
|
| 2688 | + foreach( $fbPeriod as $fbMember ) { // pairs => singlepart |
|
| 2690 | 2689 | $freebusyPairMember = array(); |
| 2691 | 2690 | if( is_array( $fbMember )) { |
| 2692 | - if( $this->_isArrayDate( $fbMember )) { // date-time value |
|
| 2691 | + if( $this->_isArrayDate( $fbMember )) { // date-time value |
|
| 2693 | 2692 | $freebusyPairMember = $this->_date_time_array( $fbMember, 7 ); |
| 2694 | 2693 | $freebusyPairMember['tz'] = 'Z'; |
| 2695 | - } |
|
| 2696 | - elseif( $this->_isArrayTimestampDate( $fbMember )) { // timestamp value |
|
| 2694 | + } |
|
| 2695 | + elseif( $this->_isArrayTimestampDate( $fbMember )) { // timestamp value |
|
| 2697 | 2696 | $freebusyPairMember = $this->_timestamp2date( $fbMember['timestamp'], 7 ); |
| 2698 | 2697 | $freebusyPairMember['tz'] = 'Z'; |
| 2699 | - } |
|
| 2700 | - else { // array format duration |
|
| 2698 | + } |
|
| 2699 | + else { // array format duration |
|
| 2701 | 2700 | $freebusyPairMember = $this->_duration_array( $fbMember ); |
| 2702 | - } |
|
| 2701 | + } |
|
| 2703 | 2702 | } |
| 2704 | 2703 | elseif(( 3 <= strlen( trim( $fbMember ))) && // string format duration |
| 2705 | 2704 | ( in_array( $fbMember{0}, array( 'P', '+', '-' )))) { |
| 2706 | - if( 'P' != $fbMember{0} ) |
|
| 2705 | + if( 'P' != $fbMember{0} ) |
|
| 2707 | 2706 | $fbmember = substr( $fbMember, 1 ); |
| 2708 | - $freebusyPairMember = $this->_duration_string( $fbMember ); |
|
| 2707 | + $freebusyPairMember = $this->_duration_string( $fbMember ); |
|
| 2709 | 2708 | } |
| 2710 | 2709 | elseif( 8 <= strlen( trim( $fbMember ))) { // text date ex. 2006-08-03 10:12:18 |
| 2711 | - $freebusyPairMember = $this->_date_time_string( $fbMember, 7 ); |
|
| 2712 | - $freebusyPairMember['tz'] = 'Z'; |
|
| 2710 | + $freebusyPairMember = $this->_date_time_string( $fbMember, 7 ); |
|
| 2711 | + $freebusyPairMember['tz'] = 'Z'; |
|
| 2713 | 2712 | } |
| 2714 | 2713 | $freebusyPeriod[] = $freebusyPairMember; |
| 2715 | - } |
|
| 2716 | - $input[] = $freebusyPeriod; |
|
| 2714 | + } |
|
| 2715 | + $input[] = $freebusyPeriod; |
|
| 2717 | 2716 | } |
| 2718 | 2717 | $this->_setMval( $this->freebusy, $input, $params, FALSE, $index ); |
| 2719 | 2718 | return TRUE; |
| 2720 | - } |
|
| 2719 | + } |
|
| 2721 | 2720 | /*********************************************************************************/ |
| 2722 | 2721 | /** |
| 2723 | - * Property Name: GEO |
|
| 2724 | - */ |
|
| 2722 | + * Property Name: GEO |
|
| 2723 | + */ |
|
| 2725 | 2724 | /** |
| 2726 | - * creates formatted output for calendar component property geo |
|
| 2727 | - * |
|
| 2728 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2729 | - * @since 2.4.8 - 2008-10-21 |
|
| 2730 | - * @return string |
|
| 2731 | - */ |
|
| 2732 | - function createGeo() { |
|
| 2725 | + * creates formatted output for calendar component property geo |
|
| 2726 | + * |
|
| 2727 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2728 | + * @since 2.4.8 - 2008-10-21 |
|
| 2729 | + * @return string |
|
| 2730 | + */ |
|
| 2731 | + function createGeo() { |
|
| 2733 | 2732 | if( empty( $this->geo )) return FALSE; |
| 2734 | 2733 | if( empty( $this->geo['value'] )) |
| 2735 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'GEO' ) : FALSE; |
|
| 2734 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'GEO' ) : FALSE; |
|
| 2736 | 2735 | $attributes = $this->_createParams( $this->geo['params'] ); |
| 2737 | 2736 | $content = null; |
| 2738 | 2737 | $content .= number_format( (float) $this->geo['value']['latitude'], 6, '.', ''); |
| 2739 | 2738 | $content .= ';'; |
| 2740 | 2739 | $content .= number_format( (float) $this->geo['value']['longitude'], 6, '.', ''); |
| 2741 | 2740 | return $this->_createElement( 'GEO', $attributes, $content ); |
| 2742 | - } |
|
| 2741 | + } |
|
| 2743 | 2742 | /** |
| 2744 | - * set calendar component property geo |
|
| 2745 | - * |
|
| 2746 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2747 | - * @since 2.4.8 - 2008-11-04 |
|
| 2748 | - * @param float $latitude |
|
| 2749 | - * @param float $longitude |
|
| 2750 | - * @param array $params optional |
|
| 2751 | - * @return bool |
|
| 2752 | - */ |
|
| 2753 | - function setGeo( $latitude, $longitude, $params=FALSE ) { |
|
| 2743 | + * set calendar component property geo |
|
| 2744 | + * |
|
| 2745 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2746 | + * @since 2.4.8 - 2008-11-04 |
|
| 2747 | + * @param float $latitude |
|
| 2748 | + * @param float $longitude |
|
| 2749 | + * @param array $params optional |
|
| 2750 | + * @return bool |
|
| 2751 | + */ |
|
| 2752 | + function setGeo( $latitude, $longitude, $params=FALSE ) { |
|
| 2754 | 2753 | if( !empty( $latitude ) && !empty( $longitude )) { |
| 2755 | - if( !is_array( $this->geo )) $this->geo = array(); |
|
| 2756 | - $this->geo['value']['latitude'] = $latitude; |
|
| 2757 | - $this->geo['value']['longitude'] = $longitude; |
|
| 2758 | - $this->geo['params'] = $this->_setParams( $params ); |
|
| 2754 | + if( !is_array( $this->geo )) $this->geo = array(); |
|
| 2755 | + $this->geo['value']['latitude'] = $latitude; |
|
| 2756 | + $this->geo['value']['longitude'] = $longitude; |
|
| 2757 | + $this->geo['params'] = $this->_setParams( $params ); |
|
| 2759 | 2758 | } |
| 2760 | 2759 | elseif( $this->getConfig( 'allowEmpty' )) |
| 2761 | - $this->geo = array( 'value' => null, 'params' => $this->_setParams( $params ) ); |
|
| 2760 | + $this->geo = array( 'value' => null, 'params' => $this->_setParams( $params ) ); |
|
| 2762 | 2761 | else |
| 2763 | - return FALSE; |
|
| 2762 | + return FALSE; |
|
| 2764 | 2763 | return TRUE; |
| 2765 | - } |
|
| 2764 | + } |
|
| 2766 | 2765 | /*********************************************************************************/ |
| 2767 | 2766 | /** |
| 2768 | - * Property Name: LAST-MODIFIED |
|
| 2769 | - */ |
|
| 2767 | + * Property Name: LAST-MODIFIED |
|
| 2768 | + */ |
|
| 2770 | 2769 | /** |
| 2771 | - * creates formatted output for calendar component property last-modified |
|
| 2772 | - * |
|
| 2773 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2774 | - * @since 2.4.8 - 2008-10-21 |
|
| 2775 | - * @return string |
|
| 2776 | - */ |
|
| 2777 | - function createLastModified() { |
|
| 2770 | + * creates formatted output for calendar component property last-modified |
|
| 2771 | + * |
|
| 2772 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2773 | + * @since 2.4.8 - 2008-10-21 |
|
| 2774 | + * @return string |
|
| 2775 | + */ |
|
| 2776 | + function createLastModified() { |
|
| 2778 | 2777 | if( empty( $this->lastmodified )) return FALSE; |
| 2779 | 2778 | $attributes = $this->_createParams( $this->lastmodified['params'] ); |
| 2780 | 2779 | $formatted = $this->_format_date_time( $this->lastmodified['value'], 7 ); |
| 2781 | 2780 | return $this->_createElement( 'LAST-MODIFIED', $attributes, $formatted ); |
| 2782 | - } |
|
| 2781 | + } |
|
| 2783 | 2782 | /** |
| 2784 | - * set calendar component property completed |
|
| 2785 | - * |
|
| 2786 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2787 | - * @since 2.4.8 - 2008-10-23 |
|
| 2788 | - * @param mixed $year optional |
|
| 2789 | - * @param mixed $month optional |
|
| 2790 | - * @param int $day optional |
|
| 2791 | - * @param int $hour optional |
|
| 2792 | - * @param int $min optional |
|
| 2793 | - * @param int $sec optional |
|
| 2794 | - * @param array $params optional |
|
| 2795 | - * @return boll |
|
| 2796 | - */ |
|
| 2797 | - function setLastModified( $year=FALSE, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2783 | + * set calendar component property completed |
|
| 2784 | + * |
|
| 2785 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2786 | + * @since 2.4.8 - 2008-10-23 |
|
| 2787 | + * @param mixed $year optional |
|
| 2788 | + * @param mixed $month optional |
|
| 2789 | + * @param int $day optional |
|
| 2790 | + * @param int $hour optional |
|
| 2791 | + * @param int $min optional |
|
| 2792 | + * @param int $sec optional |
|
| 2793 | + * @param array $params optional |
|
| 2794 | + * @return boll |
|
| 2795 | + */ |
|
| 2796 | + function setLastModified( $year=FALSE, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2798 | 2797 | if( empty( $year )) |
| 2799 | - $year = date('Ymd\THis', mktime( date( 'H' ), date( 'i' ), date( 's' ) - date( 'Z'), date( 'm' ), date( 'd' ), date( 'Y' ))); |
|
| 2798 | + $year = date('Ymd\THis', mktime( date( 'H' ), date( 'i' ), date( 's' ) - date( 'Z'), date( 'm' ), date( 'd' ), date( 'Y' ))); |
|
| 2800 | 2799 | $this->lastmodified = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
| 2801 | 2800 | return TRUE; |
| 2802 | - } |
|
| 2801 | + } |
|
| 2803 | 2802 | /*********************************************************************************/ |
| 2804 | 2803 | /** |
| 2805 | - * Property Name: LOCATION |
|
| 2806 | - */ |
|
| 2804 | + * Property Name: LOCATION |
|
| 2805 | + */ |
|
| 2807 | 2806 | /** |
| 2808 | - * creates formatted output for calendar component property location |
|
| 2809 | - * |
|
| 2810 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2811 | - * @since 2.4.8 - 2008-10-22 |
|
| 2812 | - * @return string |
|
| 2813 | - */ |
|
| 2814 | - function createLocation() { |
|
| 2807 | + * creates formatted output for calendar component property location |
|
| 2808 | + * |
|
| 2809 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2810 | + * @since 2.4.8 - 2008-10-22 |
|
| 2811 | + * @return string |
|
| 2812 | + */ |
|
| 2813 | + function createLocation() { |
|
| 2815 | 2814 | if( empty( $this->location )) return FALSE; |
| 2816 | 2815 | if( empty( $this->location['value'] )) |
| 2817 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'LOCATION' ) : FALSE; |
|
| 2816 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'LOCATION' ) : FALSE; |
|
| 2818 | 2817 | $attributes = $this->_createParams( $this->location['params'], array( 'ALTREP', 'LANGUAGE' )); |
| 2819 | 2818 | $content = $this->_strrep( $this->location['value'] ); |
| 2820 | 2819 | return $this->_createElement( 'LOCATION', $attributes, $content ); |
| 2821 | - } |
|
| 2820 | + } |
|
| 2822 | 2821 | /** |
| 2823 | - * set calendar component property location |
|
| 2822 | + * set calendar component property location |
|
| 2824 | 2823 | ' |
| 2825 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2826 | - * @since 2.4.8 - 2008-11-04 |
|
| 2827 | - * @param string $value |
|
| 2828 | - * @param array params optional |
|
| 2829 | - * @return bool |
|
| 2830 | - */ |
|
| 2831 | - function setLocation( $value, $params=FALSE ) { |
|
| 2824 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2825 | + * @since 2.4.8 - 2008-11-04 |
|
| 2826 | + * @param string $value |
|
| 2827 | + * @param array params optional |
|
| 2828 | + * @return bool |
|
| 2829 | + */ |
|
| 2830 | + function setLocation( $value, $params=FALSE ) { |
|
| 2832 | 2831 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 2833 | 2832 | $this->location = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 2834 | 2833 | return TRUE; |
| 2835 | - } |
|
| 2834 | + } |
|
| 2836 | 2835 | /*********************************************************************************/ |
| 2837 | 2836 | /** |
| 2838 | - * Property Name: ORGANIZER |
|
| 2839 | - */ |
|
| 2837 | + * Property Name: ORGANIZER |
|
| 2838 | + */ |
|
| 2840 | 2839 | /** |
| 2841 | - * creates formatted output for calendar component property organizer |
|
| 2842 | - * |
|
| 2843 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2844 | - * @since 2.4.8 - 2008-10-21 |
|
| 2845 | - * @return string |
|
| 2846 | - */ |
|
| 2847 | - function createOrganizer() { |
|
| 2840 | + * creates formatted output for calendar component property organizer |
|
| 2841 | + * |
|
| 2842 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2843 | + * @since 2.4.8 - 2008-10-21 |
|
| 2844 | + * @return string |
|
| 2845 | + */ |
|
| 2846 | + function createOrganizer() { |
|
| 2848 | 2847 | if( empty( $this->organizer )) return FALSE; |
| 2849 | 2848 | if( empty( $this->organizer['value'] )) |
| 2850 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ORGANIZER' ) : FALSE; |
|
| 2849 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ORGANIZER' ) : FALSE; |
|
| 2851 | 2850 | $attributes = $this->_createParams( $this->organizer['params'] |
| 2852 | - , array( 'CN', 'DIR', 'LANGUAGE', 'SENT-BY' )); |
|
| 2851 | + , array( 'CN', 'DIR', 'LANGUAGE', 'SENT-BY' )); |
|
| 2853 | 2852 | $content = 'MAILTO:'.$this->organizer['value']; |
| 2854 | 2853 | return $this->_createElement( 'ORGANIZER', $attributes, $content ); |
| 2855 | - } |
|
| 2854 | + } |
|
| 2856 | 2855 | /** |
| 2857 | - * set calendar component property organizer |
|
| 2858 | - * |
|
| 2859 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2860 | - * @since 2.4.8 - 2008-11-04 |
|
| 2861 | - * @param string $value |
|
| 2862 | - * @param array params optional |
|
| 2863 | - * @return bool |
|
| 2864 | - */ |
|
| 2865 | - function setOrganizer( $value, $params=FALSE ) { |
|
| 2856 | + * set calendar component property organizer |
|
| 2857 | + * |
|
| 2858 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2859 | + * @since 2.4.8 - 2008-11-04 |
|
| 2860 | + * @param string $value |
|
| 2861 | + * @param array params optional |
|
| 2862 | + * @return bool |
|
| 2863 | + */ |
|
| 2864 | + function setOrganizer( $value, $params=FALSE ) { |
|
| 2866 | 2865 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 2867 | 2866 | $value = str_replace ( 'MAILTO:', '', $value ); |
| 2868 | 2867 | $value = str_replace ( 'mailto:', '', $value ); |
| 2869 | 2868 | $this->organizer = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 2870 | 2869 | if( isset( $this->organizer['params']['SENT-BY'] )) { |
| 2871 | - if( 'MAILTO' == strtoupper( substr( $this->organizer['params']['SENT-BY'], 0, 6 ))) |
|
| 2870 | + if( 'MAILTO' == strtoupper( substr( $this->organizer['params']['SENT-BY'], 0, 6 ))) |
|
| 2872 | 2871 | $this->organizer['params']['SENT-BY'] = substr( $this->organizer['params']['SENT-BY'], 7 ); |
| 2873 | 2872 | } |
| 2874 | 2873 | return TRUE; |
| 2875 | - } |
|
| 2874 | + } |
|
| 2876 | 2875 | /*********************************************************************************/ |
| 2877 | 2876 | /** |
| 2878 | - * Property Name: PERCENT-COMPLETE |
|
| 2879 | - */ |
|
| 2877 | + * Property Name: PERCENT-COMPLETE |
|
| 2878 | + */ |
|
| 2880 | 2879 | /** |
| 2881 | - * creates formatted output for calendar component property percent-complete |
|
| 2882 | - * |
|
| 2883 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2884 | - * @since 2.4.8 - 2008-10-22 |
|
| 2885 | - * @return string |
|
| 2886 | - */ |
|
| 2887 | - function createPercentComplete() { |
|
| 2880 | + * creates formatted output for calendar component property percent-complete |
|
| 2881 | + * |
|
| 2882 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2883 | + * @since 2.4.8 - 2008-10-22 |
|
| 2884 | + * @return string |
|
| 2885 | + */ |
|
| 2886 | + function createPercentComplete() { |
|
| 2888 | 2887 | if( empty( $this->percentcomplete )) return FALSE; |
| 2889 | 2888 | if( empty( $this->percentcomplete['value'] )) |
| 2890 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PERCENT-COMPLETE' ) : FALSE; |
|
| 2889 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PERCENT-COMPLETE' ) : FALSE; |
|
| 2891 | 2890 | $attributes = $this->_createParams( $this->percentcomplete['params'] ); |
| 2892 | 2891 | return $this->_createElement( 'PERCENT-COMPLETE', $attributes, $this->percentcomplete['value'] ); |
| 2893 | - } |
|
| 2892 | + } |
|
| 2894 | 2893 | /** |
| 2895 | - * set calendar component property percent-complete |
|
| 2896 | - * |
|
| 2897 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2898 | - * @since 2.4.8 - 2008-11-04 |
|
| 2899 | - * @param int $value |
|
| 2900 | - * @param array $params optional |
|
| 2901 | - * @return bool |
|
| 2902 | - */ |
|
| 2903 | - function setPercentComplete( $value, $params=FALSE ) { |
|
| 2894 | + * set calendar component property percent-complete |
|
| 2895 | + * |
|
| 2896 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2897 | + * @since 2.4.8 - 2008-11-04 |
|
| 2898 | + * @param int $value |
|
| 2899 | + * @param array $params optional |
|
| 2900 | + * @return bool |
|
| 2901 | + */ |
|
| 2902 | + function setPercentComplete( $value, $params=FALSE ) { |
|
| 2904 | 2903 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 2905 | 2904 | $this->percentcomplete = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 2906 | 2905 | return TRUE; |
| 2907 | - } |
|
| 2906 | + } |
|
| 2908 | 2907 | /*********************************************************************************/ |
| 2909 | 2908 | /** |
| 2910 | - * Property Name: PRIORITY |
|
| 2911 | - */ |
|
| 2909 | + * Property Name: PRIORITY |
|
| 2910 | + */ |
|
| 2912 | 2911 | /** |
| 2913 | - * creates formatted output for calendar component property priority |
|
| 2914 | - * |
|
| 2915 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2916 | - * @since 2.4.8 - 2008-10-21 |
|
| 2917 | - * @return string |
|
| 2918 | - */ |
|
| 2919 | - function createPriority() { |
|
| 2912 | + * creates formatted output for calendar component property priority |
|
| 2913 | + * |
|
| 2914 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2915 | + * @since 2.4.8 - 2008-10-21 |
|
| 2916 | + * @return string |
|
| 2917 | + */ |
|
| 2918 | + function createPriority() { |
|
| 2920 | 2919 | if( empty( $this->priority )) return FALSE; |
| 2921 | 2920 | if( empty( $this->priority['value'] )) |
| 2922 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PRIORITY' ) : FALSE; |
|
| 2921 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PRIORITY' ) : FALSE; |
|
| 2923 | 2922 | $attributes = $this->_createParams( $this->priority['params'] ); |
| 2924 | 2923 | return $this->_createElement( 'PRIORITY', $attributes, $this->priority['value'] ); |
| 2925 | - } |
|
| 2924 | + } |
|
| 2926 | 2925 | /** |
| 2927 | - * set calendar component property priority |
|
| 2928 | - * |
|
| 2929 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2930 | - * @since 2.4.8 - 2008-11-04 |
|
| 2931 | - * @param int $value |
|
| 2932 | - * @param array $params optional |
|
| 2933 | - * @return bool |
|
| 2934 | - */ |
|
| 2935 | - function setPriority( $value, $params=FALSE ) { |
|
| 2926 | + * set calendar component property priority |
|
| 2927 | + * |
|
| 2928 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2929 | + * @since 2.4.8 - 2008-11-04 |
|
| 2930 | + * @param int $value |
|
| 2931 | + * @param array $params optional |
|
| 2932 | + * @return bool |
|
| 2933 | + */ |
|
| 2934 | + function setPriority( $value, $params=FALSE ) { |
|
| 2936 | 2935 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 2937 | 2936 | $this->priority = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 2938 | 2937 | return TRUE; |
| 2939 | - } |
|
| 2938 | + } |
|
| 2940 | 2939 | /*********************************************************************************/ |
| 2941 | 2940 | /** |
| 2942 | - * Property Name: RDATE |
|
| 2943 | - */ |
|
| 2941 | + * Property Name: RDATE |
|
| 2942 | + */ |
|
| 2944 | 2943 | /** |
| 2945 | - * creates formatted output for calendar component property rdate |
|
| 2946 | - * |
|
| 2947 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2948 | - * @since 2.4.16 - 2008-10-26 |
|
| 2949 | - * @return string |
|
| 2950 | - */ |
|
| 2951 | - function createRdate() { |
|
| 2944 | + * creates formatted output for calendar component property rdate |
|
| 2945 | + * |
|
| 2946 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 2947 | + * @since 2.4.16 - 2008-10-26 |
|
| 2948 | + * @return string |
|
| 2949 | + */ |
|
| 2950 | + function createRdate() { |
|
| 2952 | 2951 | if( empty( $this->rdate )) return FALSE; |
| 2953 | 2952 | $utctime = ( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) ? TRUE : FALSE; |
| 2954 | 2953 | $output = null; |
| 2955 | 2954 | if( $utctime ) |
| 2956 | - unset( $this->rdate['params']['TZID'] ); |
|
| 2955 | + unset( $this->rdate['params']['TZID'] ); |
|
| 2957 | 2956 | foreach( $this->rdate as $theRdate ) { |
| 2958 | - if( empty( $theRdate['value'] )) { |
|
| 2957 | + if( empty( $theRdate['value'] )) { |
|
| 2959 | 2958 | if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'RDATE' ); |
| 2960 | 2959 | continue; |
| 2961 | - } |
|
| 2962 | - if( $utctime ) |
|
| 2960 | + } |
|
| 2961 | + if( $utctime ) |
|
| 2963 | 2962 | unset( $theRdate['params']['TZID'] ); |
| 2964 | - $attributes = $this->_createParams( $theRdate['params'] ); |
|
| 2965 | - $cnt = count( $theRdate['value'] ); |
|
| 2966 | - $content = null; |
|
| 2967 | - $rno = 1; |
|
| 2968 | - foreach( $theRdate['value'] as $rpix => $rdatePart ) { |
|
| 2963 | + $attributes = $this->_createParams( $theRdate['params'] ); |
|
| 2964 | + $cnt = count( $theRdate['value'] ); |
|
| 2965 | + $content = null; |
|
| 2966 | + $rno = 1; |
|
| 2967 | + foreach( $theRdate['value'] as $rpix => $rdatePart ) { |
|
| 2969 | 2968 | $contentPart = null; |
| 2970 | 2969 | if( is_array( $rdatePart ) && |
| 2971 | 2970 | isset( $theRdate['params']['VALUE'] ) && ( 'PERIOD' == $theRdate['params']['VALUE'] )) { // PERIOD |
| 2972 | - if( $utctime ) |
|
| 2971 | + if( $utctime ) |
|
| 2973 | 2972 | unset( $rdatePart[0]['tz'] ); |
| 2974 | - $formatted = $this->_format_date_time( $rdatePart[0]); // PERIOD part 1 |
|
| 2975 | - if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 2973 | + $formatted = $this->_format_date_time( $rdatePart[0]); // PERIOD part 1 |
|
| 2974 | + if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 2976 | 2975 | $formatted = str_replace( 'Z', '', $formatted); |
| 2977 | - if( 0 < $rpix ) { |
|
| 2976 | + if( 0 < $rpix ) { |
|
| 2978 | 2977 | if( !empty( $rdatePart[0]['tz'] ) && $this->_isOffset( $rdatePart[0]['tz'] )) { |
| 2979 | - if( 'Z' != substr( $formatted, -1 )) $formatted .= 'Z'; |
|
| 2978 | + if( 'Z' != substr( $formatted, -1 )) $formatted .= 'Z'; |
|
| 2980 | 2979 | } |
| 2981 | 2980 | else |
| 2982 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2983 | - } |
|
| 2984 | - $contentPart .= $formatted; |
|
| 2985 | - $contentPart .= '/'; |
|
| 2986 | - $cnt2 = count( $rdatePart[1]); |
|
| 2987 | - if( array_key_exists( 'year', $rdatePart[1] )) { |
|
| 2981 | + $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2982 | + } |
|
| 2983 | + $contentPart .= $formatted; |
|
| 2984 | + $contentPart .= '/'; |
|
| 2985 | + $cnt2 = count( $rdatePart[1]); |
|
| 2986 | + if( array_key_exists( 'year', $rdatePart[1] )) { |
|
| 2988 | 2987 | if( array_key_exists( 'hour', $rdatePart[1] )) |
| 2989 | - $cnt2 = 7; // date-time |
|
| 2988 | + $cnt2 = 7; // date-time |
|
| 2990 | 2989 | else |
| 2991 | - $cnt2 = 3; // date |
|
| 2992 | - } |
|
| 2993 | - elseif( array_key_exists( 'week', $rdatePart[1] )) // duration |
|
| 2990 | + $cnt2 = 3; // date |
|
| 2991 | + } |
|
| 2992 | + elseif( array_key_exists( 'week', $rdatePart[1] )) // duration |
|
| 2994 | 2993 | $cnt2 = 5; |
| 2995 | - if(( 7 == $cnt2 ) && // period= -> date-time |
|
| 2994 | + if(( 7 == $cnt2 ) && // period= -> date-time |
|
| 2996 | 2995 | isset( $rdatePart[1]['year'] ) && |
| 2997 | 2996 | isset( $rdatePart[1]['month'] ) && |
| 2998 | 2997 | isset( $rdatePart[1]['day'] )) { |
| 2999 | 2998 | if( $utctime ) |
| 3000 | - unset( $rdatePart[1]['tz'] ); |
|
| 2999 | + unset( $rdatePart[1]['tz'] ); |
|
| 3001 | 3000 | $formatted = $this->_format_date_time( $rdatePart[1] ); // PERIOD part 2 |
| 3002 | 3001 | if( $utctime || !empty( $theRdate['params']['TZID'] )) |
| 3003 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 3002 | + $formatted = str_replace( 'Z', '', $formatted); |
|
| 3004 | 3003 | if( !empty( $rdatePart[0]['tz'] ) && $this->_isOffset( $rdatePart[0]['tz'] )) { |
| 3005 | - if( 'Z' != substr( $formatted, -1 )) $formatted .= 'Z'; |
|
| 3004 | + if( 'Z' != substr( $formatted, -1 )) $formatted .= 'Z'; |
|
| 3006 | 3005 | } |
| 3007 | 3006 | else |
| 3008 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3009 | - $contentPart .= $formatted; |
|
| 3010 | - } |
|
| 3011 | - else { // period= -> dur-time |
|
| 3007 | + $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3008 | + $contentPart .= $formatted; |
|
| 3009 | + } |
|
| 3010 | + else { // period= -> dur-time |
|
| 3012 | 3011 | $contentPart .= $this->_format_duration( $rdatePart[1] ); |
| 3013 | - } |
|
| 3012 | + } |
|
| 3014 | 3013 | } // PERIOD end |
| 3015 | 3014 | else { // SINGLE date start |
| 3016 | - if( $utctime ) |
|
| 3015 | + if( $utctime ) |
|
| 3017 | 3016 | unset( $rdatePart['tz'] ); |
| 3018 | - $formatted = $this->_format_date_time( $rdatePart); |
|
| 3019 | - if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 3017 | + $formatted = $this->_format_date_time( $rdatePart); |
|
| 3018 | + if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 3020 | 3019 | $formatted = str_replace( 'Z', '', $formatted); |
| 3021 | - if( !$utctime && ( 0 < $rpix )) { |
|
| 3020 | + if( !$utctime && ( 0 < $rpix )) { |
|
| 3022 | 3021 | if( !empty( $theRdate['value'][0]['tz'] ) && $this->_isOffset( $theRdate['value'][0]['tz'] )) { |
| 3023 | - if( 'Z' != substr( $formatted, -1 )) |
|
| 3022 | + if( 'Z' != substr( $formatted, -1 )) |
|
| 3024 | 3023 | $formatted .= 'Z'; |
| 3025 | 3024 | } |
| 3026 | 3025 | else |
| 3027 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3028 | - } |
|
| 3029 | - $contentPart .= $formatted; |
|
| 3026 | + $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3027 | + } |
|
| 3028 | + $contentPart .= $formatted; |
|
| 3030 | 3029 | } |
| 3031 | 3030 | $content .= $contentPart; |
| 3032 | 3031 | if( $rno < $cnt ) |
| 3033 | - $content .= ','; |
|
| 3032 | + $content .= ','; |
|
| 3034 | 3033 | $rno++; |
| 3035 | - } |
|
| 3036 | - $output .= $this->_createElement( 'RDATE', $attributes, $content ); |
|
| 3034 | + } |
|
| 3035 | + $output .= $this->_createElement( 'RDATE', $attributes, $content ); |
|
| 3037 | 3036 | } |
| 3038 | 3037 | return $output; |
| 3039 | - } |
|
| 3038 | + } |
|
| 3040 | 3039 | /** |
| 3041 | - * set calendar component property rdate |
|
| 3042 | - * |
|
| 3043 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3044 | - * @since 2.5.1 - 2008-11-07 |
|
| 3045 | - * @param array $rdates |
|
| 3046 | - * @param array $params, optional |
|
| 3047 | - * @param integer $index, optional |
|
| 3048 | - * @return bool |
|
| 3049 | - */ |
|
| 3050 | - function setRdate( $rdates, $params=FALSE, $index=FALSE ) { |
|
| 3040 | + * set calendar component property rdate |
|
| 3041 | + * |
|
| 3042 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3043 | + * @since 2.5.1 - 2008-11-07 |
|
| 3044 | + * @param array $rdates |
|
| 3045 | + * @param array $params, optional |
|
| 3046 | + * @param integer $index, optional |
|
| 3047 | + * @return bool |
|
| 3048 | + */ |
|
| 3049 | + function setRdate( $rdates, $params=FALSE, $index=FALSE ) { |
|
| 3051 | 3050 | if( empty( $rdates )) { |
| 3052 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 3051 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 3053 | 3052 | $this->_setMval( $this->rdate, null, $params, FALSE, $index ); |
| 3054 | 3053 | return TRUE; |
| 3055 | - } |
|
| 3056 | - else |
|
| 3054 | + } |
|
| 3055 | + else |
|
| 3057 | 3056 | return FALSE; |
| 3058 | 3057 | } |
| 3059 | 3058 | $input = array( 'params' => $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' ))); |
| 3060 | 3059 | if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) { |
| 3061 | - unset( $input['params']['TZID'] ); |
|
| 3062 | - $input['params']['VALUE'] = 'DATE-TIME'; |
|
| 3060 | + unset( $input['params']['TZID'] ); |
|
| 3061 | + $input['params']['VALUE'] = 'DATE-TIME'; |
|
| 3063 | 3062 | } |
| 3064 | 3063 | /* check if PERIOD, if not set */ |
| 3065 | 3064 | if((!isset( $input['params']['VALUE'] ) || !in_array( $input['params']['VALUE'], array( 'DATE', 'PERIOD' ))) && |
@@ -3069,769 +3068,769 @@ discard block |
||
| 3069 | 3068 | $this->_isArrayDate( $rdates[0][0] ))) || |
| 3070 | 3069 | ( is_string( $rdates[0][0] ) && ( 8 <= strlen( trim( $rdates[0][0] ))))) && |
| 3071 | 3070 | ( is_array( $rdates[0][1] ) || ( is_string( $rdates[0][1] ) && ( 3 <= strlen( trim( $rdates[0][1] )))))) |
| 3072 | - $input['params']['VALUE'] = 'PERIOD'; |
|
| 3071 | + $input['params']['VALUE'] = 'PERIOD'; |
|
| 3073 | 3072 | /* check 1:st date, upd. $parno (opt) and save ev. timezone **/ |
| 3074 | 3073 | $date = reset( $rdates ); |
| 3075 | 3074 | if( isset( $input['params']['VALUE'] ) && ( 'PERIOD' == $input['params']['VALUE'] )) // PERIOD |
| 3076 | - $date = reset( $date ); |
|
| 3075 | + $date = reset( $date ); |
|
| 3077 | 3076 | $this->_chkdatecfg( $date, $parno, $input['params'] ); |
| 3078 | 3077 | if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) |
| 3079 | - unset( $input['params']['TZID'] ); |
|
| 3078 | + unset( $input['params']['TZID'] ); |
|
| 3080 | 3079 | $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME' ); // remove default |
| 3081 | 3080 | foreach( $rdates as $rpix => $theRdate ) { |
| 3082 | - $inputa = null; |
|
| 3083 | - if( is_array( $theRdate )) { |
|
| 3081 | + $inputa = null; |
|
| 3082 | + if( is_array( $theRdate )) { |
|
| 3084 | 3083 | if( isset( $input['params']['VALUE'] ) && ( 'PERIOD' == $input['params']['VALUE'] )) { // PERIOD |
| 3085 | - foreach( $theRdate as $rix => $rPeriod ) { |
|
| 3084 | + foreach( $theRdate as $rix => $rPeriod ) { |
|
| 3086 | 3085 | if( is_array( $rPeriod )) { |
| 3087 | - if( $this->_isArrayTimestampDate( $rPeriod )) // timestamp |
|
| 3086 | + if( $this->_isArrayTimestampDate( $rPeriod )) // timestamp |
|
| 3088 | 3087 | $inputab = ( isset( $rPeriod['tz'] )) ? $this->_timestamp2date( $rPeriod, $parno ) : $this->_timestamp2date( $rPeriod, 6 ); |
| 3089 | - elseif( $this->_isArrayDate( $rPeriod )) |
|
| 3088 | + elseif( $this->_isArrayDate( $rPeriod )) |
|
| 3090 | 3089 | $inputab = ( 3 < count ( $rPeriod )) ? $this->_date_time_array( $rPeriod, $parno ) : $this->_date_time_array( $rPeriod, 6 ); |
| 3091 | - elseif (( 1 == count( $rPeriod )) && ( 8 <= strlen( reset( $rPeriod )))) // text-date |
|
| 3090 | + elseif (( 1 == count( $rPeriod )) && ( 8 <= strlen( reset( $rPeriod )))) // text-date |
|
| 3092 | 3091 | $inputab = $this->_date_time_string( reset( $rPeriod ), $parno ); |
| 3093 | - else // array format duration |
|
| 3092 | + else // array format duration |
|
| 3094 | 3093 | $inputab = $this->_duration_array( $rPeriod ); |
| 3095 | 3094 | } |
| 3096 | 3095 | elseif(( 3 <= strlen( trim( $rPeriod ))) && // string format duration |
| 3097 | 3096 | ( in_array( $rPeriod{0}, array( 'P', '+', '-' )))) { |
| 3098 | - if( 'P' != $rPeriod{0} ) |
|
| 3097 | + if( 'P' != $rPeriod{0} ) |
|
| 3099 | 3098 | $rPeriod = substr( $rPeriod, 1 ); |
| 3100 | - $inputab = $this->_duration_string( $rPeriod ); |
|
| 3099 | + $inputab = $this->_duration_string( $rPeriod ); |
|
| 3101 | 3100 | } |
| 3102 | 3101 | elseif( 8 <= strlen( trim( $rPeriod ))) // text date ex. 2006-08-03 10:12:18 |
| 3103 | - $inputab = $this->_date_time_string( $rPeriod, $parno ); |
|
| 3102 | + $inputab = $this->_date_time_string( $rPeriod, $parno ); |
|
| 3104 | 3103 | if( isset( $input['params']['TZID'] ) || |
| 3105 | 3104 | ( isset( $inputab['tz'] ) && !$this->_isOffset( $inputab['tz'] )) || |
| 3106 | 3105 | ( isset( $inputa[0] ) && ( !isset( $inputa[0]['tz'] ))) || |
| 3107 | 3106 | ( isset( $inputa[0]['tz'] ) && !$this->_isOffset( $inputa[0]['tz'] ))) |
| 3108 | - unset( $inputab['tz'] ); |
|
| 3107 | + unset( $inputab['tz'] ); |
|
| 3109 | 3108 | $inputa[] = $inputab; |
| 3110 | - } |
|
| 3109 | + } |
|
| 3111 | 3110 | } // PERIOD end |
| 3112 | 3111 | elseif ( $this->_isArrayTimestampDate( $theRdate )) // timestamp |
| 3113 | - $inputa = $this->_timestamp2date( $theRdate, $parno ); |
|
| 3112 | + $inputa = $this->_timestamp2date( $theRdate, $parno ); |
|
| 3114 | 3113 | else // date[-time] |
| 3115 | - $inputa = $this->_date_time_array( $theRdate, $parno ); |
|
| 3116 | - } |
|
| 3117 | - elseif( 8 <= strlen( trim( $theRdate ))) // text date ex. 2006-08-03 10:12:18 |
|
| 3114 | + $inputa = $this->_date_time_array( $theRdate, $parno ); |
|
| 3115 | + } |
|
| 3116 | + elseif( 8 <= strlen( trim( $theRdate ))) // text date ex. 2006-08-03 10:12:18 |
|
| 3118 | 3117 | $inputa = $this->_date_time_string( $theRdate, $parno ); |
| 3119 | - if( !isset( $input['params']['VALUE'] ) || ( 'PERIOD' != $input['params']['VALUE'] )) { // no PERIOD |
|
| 3118 | + if( !isset( $input['params']['VALUE'] ) || ( 'PERIOD' != $input['params']['VALUE'] )) { // no PERIOD |
|
| 3120 | 3119 | if( 3 == $parno ) |
| 3121 | - unset( $inputa['hour'], $inputa['min'], $inputa['sec'], $inputa['tz'] ); |
|
| 3120 | + unset( $inputa['hour'], $inputa['min'], $inputa['sec'], $inputa['tz'] ); |
|
| 3122 | 3121 | elseif( isset( $inputa['tz'] )) |
| 3123 | - $inputa['tz'] = (string) $inputa['tz']; |
|
| 3122 | + $inputa['tz'] = (string) $inputa['tz']; |
|
| 3124 | 3123 | if( isset( $input['params']['TZID'] ) || |
| 3125 | 3124 | ( isset( $inputa['tz'] ) && !$this->_isOffset( $inputa['tz'] )) || |
| 3126 | 3125 | ( isset( $input['value'][0] ) && ( !isset( $input['value'][0]['tz'] ))) || |
| 3127 | 3126 | ( isset( $input['value'][0]['tz'] ) && !$this->_isOffset( $input['value'][0]['tz'] ))) |
| 3128 | - unset( $inputa['tz'] ); |
|
| 3129 | - } |
|
| 3130 | - $input['value'][] = $inputa; |
|
| 3127 | + unset( $inputa['tz'] ); |
|
| 3128 | + } |
|
| 3129 | + $input['value'][] = $inputa; |
|
| 3131 | 3130 | } |
| 3132 | 3131 | if( 3 == $parno ) { |
| 3133 | - $input['params']['VALUE'] = 'DATE'; |
|
| 3134 | - unset( $input['params']['TZID'] ); |
|
| 3132 | + $input['params']['VALUE'] = 'DATE'; |
|
| 3133 | + unset( $input['params']['TZID'] ); |
|
| 3135 | 3134 | } |
| 3136 | 3135 | $this->_setMval( $this->rdate, $input['value'], $input['params'], FALSE, $index ); |
| 3137 | 3136 | return TRUE; |
| 3138 | - } |
|
| 3137 | + } |
|
| 3139 | 3138 | /*********************************************************************************/ |
| 3140 | 3139 | /** |
| 3141 | - * Property Name: RECURRENCE-ID |
|
| 3142 | - */ |
|
| 3140 | + * Property Name: RECURRENCE-ID |
|
| 3141 | + */ |
|
| 3143 | 3142 | /** |
| 3144 | - * creates formatted output for calendar component property recurrence-id |
|
| 3145 | - * |
|
| 3146 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3147 | - * @since 2.4.8 - 2008-10-21 |
|
| 3148 | - * @return string |
|
| 3149 | - */ |
|
| 3150 | - function createRecurrenceid() { |
|
| 3143 | + * creates formatted output for calendar component property recurrence-id |
|
| 3144 | + * |
|
| 3145 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3146 | + * @since 2.4.8 - 2008-10-21 |
|
| 3147 | + * @return string |
|
| 3148 | + */ |
|
| 3149 | + function createRecurrenceid() { |
|
| 3151 | 3150 | if( empty( $this->recurrenceid )) return FALSE; |
| 3152 | 3151 | if( empty( $this->recurrenceid['value'] )) |
| 3153 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'RECURRENCE-ID' ) : FALSE; |
|
| 3152 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'RECURRENCE-ID' ) : FALSE; |
|
| 3154 | 3153 | $formatted = $this->_format_date_time( $this->recurrenceid['value'] ); |
| 3155 | 3154 | $attributes = $this->_createParams( $this->recurrenceid['params'] ); |
| 3156 | 3155 | return $this->_createElement( 'RECURRENCE-ID', $attributes, $formatted ); |
| 3157 | - } |
|
| 3156 | + } |
|
| 3158 | 3157 | /** |
| 3159 | - * set calendar component property recurrence-id |
|
| 3160 | - * |
|
| 3161 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3162 | - * @since 2.4.8 - 2008-10-23 |
|
| 3163 | - * @param mixed $year |
|
| 3164 | - * @param mixed $month optional |
|
| 3165 | - * @param int $day optional |
|
| 3166 | - * @param int $hour optional |
|
| 3167 | - * @param int $min optional |
|
| 3168 | - * @param int $sec optional |
|
| 3169 | - * @param array $params optional |
|
| 3170 | - * @return bool |
|
| 3171 | - */ |
|
| 3172 | - function setRecurrenceid( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 3158 | + * set calendar component property recurrence-id |
|
| 3159 | + * |
|
| 3160 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3161 | + * @since 2.4.8 - 2008-10-23 |
|
| 3162 | + * @param mixed $year |
|
| 3163 | + * @param mixed $month optional |
|
| 3164 | + * @param int $day optional |
|
| 3165 | + * @param int $hour optional |
|
| 3166 | + * @param int $min optional |
|
| 3167 | + * @param int $sec optional |
|
| 3168 | + * @param array $params optional |
|
| 3169 | + * @return bool |
|
| 3170 | + */ |
|
| 3171 | + function setRecurrenceid( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 3173 | 3172 | if( empty( $year )) { |
| 3174 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 3173 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 3175 | 3174 | $this->recurrenceid = array( 'value' => null, 'params' => null ); |
| 3176 | 3175 | return TRUE; |
| 3177 | - } |
|
| 3178 | - else |
|
| 3176 | + } |
|
| 3177 | + else |
|
| 3179 | 3178 | return FALSE; |
| 3180 | 3179 | } |
| 3181 | 3180 | $this->recurrenceid = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params ); |
| 3182 | 3181 | return TRUE; |
| 3183 | - } |
|
| 3182 | + } |
|
| 3184 | 3183 | /*********************************************************************************/ |
| 3185 | 3184 | /** |
| 3186 | - * Property Name: RELATED-TO |
|
| 3187 | - */ |
|
| 3185 | + * Property Name: RELATED-TO |
|
| 3186 | + */ |
|
| 3188 | 3187 | /** |
| 3189 | - * creates formatted output for calendar component property related-to |
|
| 3190 | - * |
|
| 3191 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3192 | - * @since 2.4.8 - 2008-10-23 |
|
| 3193 | - * @return string |
|
| 3194 | - */ |
|
| 3195 | - function createRelatedTo() { |
|
| 3188 | + * creates formatted output for calendar component property related-to |
|
| 3189 | + * |
|
| 3190 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3191 | + * @since 2.4.8 - 2008-10-23 |
|
| 3192 | + * @return string |
|
| 3193 | + */ |
|
| 3194 | + function createRelatedTo() { |
|
| 3196 | 3195 | if( empty( $this->relatedto )) return FALSE; |
| 3197 | 3196 | $output = null; |
| 3198 | 3197 | foreach( $this->relatedto as $relation ) { |
| 3199 | - if( empty( $relation['value'] )) { |
|
| 3198 | + if( empty( $relation['value'] )) { |
|
| 3200 | 3199 | if( $this->getConfig( 'allowEmpty' )) $output.= $this->_createElement( 'RELATED-TO', $this->_createParams( $relation['params'] )); |
| 3201 | 3200 | continue; |
| 3202 | - } |
|
| 3203 | - $attributes = $this->_createParams( $relation['params'] ); |
|
| 3204 | - $content = ( 'xcal' != $this->format ) ? '<' : ''; |
|
| 3205 | - $content .= $this->_strrep( $relation['value'] ); |
|
| 3206 | - $content .= ( 'xcal' != $this->format ) ? '>' : ''; |
|
| 3207 | - $output .= $this->_createElement( 'RELATED-TO', $attributes, $content ); |
|
| 3201 | + } |
|
| 3202 | + $attributes = $this->_createParams( $relation['params'] ); |
|
| 3203 | + $content = ( 'xcal' != $this->format ) ? '<' : ''; |
|
| 3204 | + $content .= $this->_strrep( $relation['value'] ); |
|
| 3205 | + $content .= ( 'xcal' != $this->format ) ? '>' : ''; |
|
| 3206 | + $output .= $this->_createElement( 'RELATED-TO', $attributes, $content ); |
|
| 3208 | 3207 | } |
| 3209 | 3208 | return $output; |
| 3210 | - } |
|
| 3209 | + } |
|
| 3211 | 3210 | /** |
| 3212 | - * set calendar component property related-to |
|
| 3213 | - * |
|
| 3214 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3215 | - * @since 2.5.1 - 2008-11-07 |
|
| 3216 | - * @param float $relid |
|
| 3217 | - * @param array $params, optional |
|
| 3218 | - * @param index $index, optional |
|
| 3219 | - * @return bool |
|
| 3220 | - */ |
|
| 3221 | - function setRelatedTo( $value, $params=FALSE, $index=FALSE ) { |
|
| 3211 | + * set calendar component property related-to |
|
| 3212 | + * |
|
| 3213 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3214 | + * @since 2.5.1 - 2008-11-07 |
|
| 3215 | + * @param float $relid |
|
| 3216 | + * @param array $params, optional |
|
| 3217 | + * @param index $index, optional |
|
| 3218 | + * @return bool |
|
| 3219 | + */ |
|
| 3220 | + function setRelatedTo( $value, $params=FALSE, $index=FALSE ) { |
|
| 3222 | 3221 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3223 | 3222 | if(( '<' == substr( $value, 0, 1 )) && ( '>' == substr( $value, -1 ))) |
| 3224 | - $value = substr( $value, 1, ( strlen( $value ) - 2 )); |
|
| 3223 | + $value = substr( $value, 1, ( strlen( $value ) - 2 )); |
|
| 3225 | 3224 | $this->_existRem( $params, 'RELTYPE', 'PARENT', TRUE ); // remove default |
| 3226 | 3225 | $this->_setMval( $this->relatedto, $value, $params, FALSE, $index ); |
| 3227 | 3226 | return TRUE; |
| 3228 | - } |
|
| 3227 | + } |
|
| 3229 | 3228 | /*********************************************************************************/ |
| 3230 | 3229 | /** |
| 3231 | - * Property Name: REPEAT |
|
| 3232 | - */ |
|
| 3230 | + * Property Name: REPEAT |
|
| 3231 | + */ |
|
| 3233 | 3232 | /** |
| 3234 | - * creates formatted output for calendar component property repeat |
|
| 3235 | - * |
|
| 3236 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3237 | - * @since 2.4.8 - 2008-10-21 |
|
| 3238 | - * @return string |
|
| 3239 | - */ |
|
| 3240 | - function createRepeat() { |
|
| 3233 | + * creates formatted output for calendar component property repeat |
|
| 3234 | + * |
|
| 3235 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3236 | + * @since 2.4.8 - 2008-10-21 |
|
| 3237 | + * @return string |
|
| 3238 | + */ |
|
| 3239 | + function createRepeat() { |
|
| 3241 | 3240 | if( empty( $this->repeat )) return FALSE; |
| 3242 | 3241 | if( empty( $this->repeat['value'] )) |
| 3243 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'REPEAT' ) : FALSE; |
|
| 3242 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'REPEAT' ) : FALSE; |
|
| 3244 | 3243 | $attributes = $this->_createParams( $this->repeat['params'] ); |
| 3245 | 3244 | return $this->_createElement( 'REPEAT', $attributes, $this->repeat['value'] ); |
| 3246 | - } |
|
| 3245 | + } |
|
| 3247 | 3246 | /** |
| 3248 | - * set calendar component property transp |
|
| 3249 | - * |
|
| 3250 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3251 | - * @since 2.4.8 - 2008-11-04 |
|
| 3252 | - * @param string $value |
|
| 3253 | - * @param array $params optional |
|
| 3254 | - * @return void |
|
| 3255 | - */ |
|
| 3256 | - function setRepeat( $value, $params=FALSE ) { |
|
| 3247 | + * set calendar component property transp |
|
| 3248 | + * |
|
| 3249 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3250 | + * @since 2.4.8 - 2008-11-04 |
|
| 3251 | + * @param string $value |
|
| 3252 | + * @param array $params optional |
|
| 3253 | + * @return void |
|
| 3254 | + */ |
|
| 3255 | + function setRepeat( $value, $params=FALSE ) { |
|
| 3257 | 3256 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3258 | 3257 | $this->repeat = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3259 | 3258 | return TRUE; |
| 3260 | - } |
|
| 3259 | + } |
|
| 3261 | 3260 | /*********************************************************************************/ |
| 3262 | 3261 | /** |
| 3263 | - * Property Name: REQUEST-STATUS |
|
| 3264 | - */ |
|
| 3262 | + * Property Name: REQUEST-STATUS |
|
| 3263 | + */ |
|
| 3265 | 3264 | /** |
| 3266 | - * creates formatted output for calendar component property request-status |
|
| 3267 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3268 | - * @since 2.4.8 - 2008-10-23 |
|
| 3269 | - * @return string |
|
| 3270 | - */ |
|
| 3271 | - function createRequestStatus() { |
|
| 3265 | + * creates formatted output for calendar component property request-status |
|
| 3266 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3267 | + * @since 2.4.8 - 2008-10-23 |
|
| 3268 | + * @return string |
|
| 3269 | + */ |
|
| 3270 | + function createRequestStatus() { |
|
| 3272 | 3271 | if( empty( $this->requeststatus )) return FALSE; |
| 3273 | 3272 | $output = null; |
| 3274 | 3273 | foreach( $this->requeststatus as $rstat ) { |
| 3275 | - if( empty( $rstat['value']['statcode'] )) { |
|
| 3274 | + if( empty( $rstat['value']['statcode'] )) { |
|
| 3276 | 3275 | if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'REQUEST-STATUS' ); |
| 3277 | 3276 | continue; |
| 3278 | - } |
|
| 3279 | - $attributes = $this->_createParams( $rstat['params'], array( 'LANGUAGE' )); |
|
| 3280 | - $content = number_format( (float) $rstat['value']['statcode'], 2, '.', ''); |
|
| 3281 | - $content .= ';'.$this->_strrep( $rstat['value']['text'] ); |
|
| 3282 | - if( isset( $rstat['value']['extdata'] )) |
|
| 3277 | + } |
|
| 3278 | + $attributes = $this->_createParams( $rstat['params'], array( 'LANGUAGE' )); |
|
| 3279 | + $content = number_format( (float) $rstat['value']['statcode'], 2, '.', ''); |
|
| 3280 | + $content .= ';'.$this->_strrep( $rstat['value']['text'] ); |
|
| 3281 | + if( isset( $rstat['value']['extdata'] )) |
|
| 3283 | 3282 | $content .= ';'.$this->_strrep( $rstat['value']['extdata'] ); |
| 3284 | - $output .= $this->_createElement( 'REQUEST-STATUS', $attributes, $content ); |
|
| 3283 | + $output .= $this->_createElement( 'REQUEST-STATUS', $attributes, $content ); |
|
| 3285 | 3284 | } |
| 3286 | 3285 | return $output; |
| 3287 | - } |
|
| 3286 | + } |
|
| 3288 | 3287 | /** |
| 3289 | - * set calendar component property request-status |
|
| 3290 | - * |
|
| 3291 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3292 | - * @since 2.5.1 - 2008-11-05 |
|
| 3293 | - * @param float $statcode |
|
| 3294 | - * @param string $text |
|
| 3295 | - * @param string $extdata, optional |
|
| 3296 | - * @param array $params, optional |
|
| 3297 | - * @param integer $index, optional |
|
| 3298 | - * @return bool |
|
| 3299 | - */ |
|
| 3300 | - function setRequestStatus( $statcode, $text, $extdata=FALSE, $params=FALSE, $index=FALSE ) { |
|
| 3288 | + * set calendar component property request-status |
|
| 3289 | + * |
|
| 3290 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3291 | + * @since 2.5.1 - 2008-11-05 |
|
| 3292 | + * @param float $statcode |
|
| 3293 | + * @param string $text |
|
| 3294 | + * @param string $extdata, optional |
|
| 3295 | + * @param array $params, optional |
|
| 3296 | + * @param integer $index, optional |
|
| 3297 | + * @return bool |
|
| 3298 | + */ |
|
| 3299 | + function setRequestStatus( $statcode, $text, $extdata=FALSE, $params=FALSE, $index=FALSE ) { |
|
| 3301 | 3300 | if( empty( $statcode ) || empty( $text )) if( $this->getConfig( 'allowEmpty' )) $statcode = $text = null; else return FALSE; |
| 3302 | 3301 | $input = array( 'statcode' => $statcode, 'text' => $text ); |
| 3303 | 3302 | if( $extdata ) |
| 3304 | - $input['extdata'] = $extdata; |
|
| 3303 | + $input['extdata'] = $extdata; |
|
| 3305 | 3304 | $this->_setMval( $this->requeststatus, $input, $params, FALSE, $index ); |
| 3306 | 3305 | return TRUE; |
| 3307 | - } |
|
| 3306 | + } |
|
| 3308 | 3307 | /*********************************************************************************/ |
| 3309 | 3308 | /** |
| 3310 | - * Property Name: RESOURCES |
|
| 3311 | - */ |
|
| 3309 | + * Property Name: RESOURCES |
|
| 3310 | + */ |
|
| 3312 | 3311 | /** |
| 3313 | - * creates formatted output for calendar component property resources |
|
| 3314 | - * |
|
| 3315 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3316 | - * @since 2.4.8 - 2008-10-23 |
|
| 3317 | - * @return string |
|
| 3318 | - */ |
|
| 3319 | - function createResources() { |
|
| 3312 | + * creates formatted output for calendar component property resources |
|
| 3313 | + * |
|
| 3314 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3315 | + * @since 2.4.8 - 2008-10-23 |
|
| 3316 | + * @return string |
|
| 3317 | + */ |
|
| 3318 | + function createResources() { |
|
| 3320 | 3319 | if( empty( $this->resources )) return FALSE; |
| 3321 | 3320 | $output = null; |
| 3322 | 3321 | foreach( $this->resources as $resource ) { |
| 3323 | - if( empty( $resource['value'] )) { |
|
| 3322 | + if( empty( $resource['value'] )) { |
|
| 3324 | 3323 | if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'RESOURCES' ); |
| 3325 | 3324 | continue; |
| 3326 | - } |
|
| 3327 | - $attributes = $this->_createParams( $resource['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 3328 | - if( is_array( $resource['value'] )) { |
|
| 3325 | + } |
|
| 3326 | + $attributes = $this->_createParams( $resource['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 3327 | + if( is_array( $resource['value'] )) { |
|
| 3329 | 3328 | foreach( $resource['value'] as $rix => $resourcePart ) |
| 3330 | - $resource['value'][$rix] = $this->_strrep( $resourcePart ); |
|
| 3329 | + $resource['value'][$rix] = $this->_strrep( $resourcePart ); |
|
| 3331 | 3330 | $content = implode( ',', $resource['value'] ); |
| 3332 | - } |
|
| 3333 | - else |
|
| 3331 | + } |
|
| 3332 | + else |
|
| 3334 | 3333 | $content = $this->_strrep( $resource['value'] ); |
| 3335 | - $output .= $this->_createElement( 'RESOURCES', $attributes, $content ); |
|
| 3334 | + $output .= $this->_createElement( 'RESOURCES', $attributes, $content ); |
|
| 3336 | 3335 | } |
| 3337 | 3336 | return $output; |
| 3338 | - } |
|
| 3337 | + } |
|
| 3339 | 3338 | /** |
| 3340 | - * set calendar component property recources |
|
| 3341 | - * |
|
| 3342 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3343 | - * @since 2.5.1 - 2008-11-05 |
|
| 3344 | - * @param mixed $value |
|
| 3345 | - * @param array $params, optional |
|
| 3346 | - * @param integer $index, optional |
|
| 3347 | - * @return bool |
|
| 3348 | - */ |
|
| 3349 | - function setResources( $value, $params=FALSE, $index=FALSE ) { |
|
| 3339 | + * set calendar component property recources |
|
| 3340 | + * |
|
| 3341 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3342 | + * @since 2.5.1 - 2008-11-05 |
|
| 3343 | + * @param mixed $value |
|
| 3344 | + * @param array $params, optional |
|
| 3345 | + * @param integer $index, optional |
|
| 3346 | + * @return bool |
|
| 3347 | + */ |
|
| 3348 | + function setResources( $value, $params=FALSE, $index=FALSE ) { |
|
| 3350 | 3349 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3351 | 3350 | $this->_setMval( $this->resources, $value, $params, FALSE, $index ); |
| 3352 | 3351 | return TRUE; |
| 3353 | - } |
|
| 3352 | + } |
|
| 3354 | 3353 | /*********************************************************************************/ |
| 3355 | 3354 | /** |
| 3356 | - * Property Name: RRULE |
|
| 3357 | - */ |
|
| 3355 | + * Property Name: RRULE |
|
| 3356 | + */ |
|
| 3358 | 3357 | /** |
| 3359 | - * creates formatted output for calendar component property rrule |
|
| 3360 | - * |
|
| 3361 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3362 | - * @since 2.4.8 - 2008-10-21 |
|
| 3363 | - * @return string |
|
| 3364 | - */ |
|
| 3365 | - function createRrule() { |
|
| 3358 | + * creates formatted output for calendar component property rrule |
|
| 3359 | + * |
|
| 3360 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3361 | + * @since 2.4.8 - 2008-10-21 |
|
| 3362 | + * @return string |
|
| 3363 | + */ |
|
| 3364 | + function createRrule() { |
|
| 3366 | 3365 | if( empty( $this->rrule )) return FALSE; |
| 3367 | 3366 | return $this->_format_recur( 'RRULE', $this->rrule ); |
| 3368 | - } |
|
| 3367 | + } |
|
| 3369 | 3368 | /** |
| 3370 | - * set calendar component property rrule |
|
| 3371 | - * |
|
| 3372 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3373 | - * @since 2.5.1 - 2008-11-05 |
|
| 3374 | - * @param array $rruleset |
|
| 3375 | - * @param array $params, optional |
|
| 3376 | - * @param integer $index, optional |
|
| 3377 | - * @return void |
|
| 3378 | - */ |
|
| 3379 | - function setRrule( $rruleset, $params=FALSE, $index=FALSE ) { |
|
| 3369 | + * set calendar component property rrule |
|
| 3370 | + * |
|
| 3371 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3372 | + * @since 2.5.1 - 2008-11-05 |
|
| 3373 | + * @param array $rruleset |
|
| 3374 | + * @param array $params, optional |
|
| 3375 | + * @param integer $index, optional |
|
| 3376 | + * @return void |
|
| 3377 | + */ |
|
| 3378 | + function setRrule( $rruleset, $params=FALSE, $index=FALSE ) { |
|
| 3380 | 3379 | if( empty( $rruleset )) if( $this->getConfig( 'allowEmpty' )) $rruleset = null; else return FALSE; |
| 3381 | 3380 | $this->_setMval( $this->rrule, $this->_setRexrule( $rruleset ), $params, FALSE, $index ); |
| 3382 | 3381 | return TRUE; |
| 3383 | - } |
|
| 3382 | + } |
|
| 3384 | 3383 | /*********************************************************************************/ |
| 3385 | 3384 | /** |
| 3386 | - * Property Name: SEQUENCE |
|
| 3387 | - */ |
|
| 3385 | + * Property Name: SEQUENCE |
|
| 3386 | + */ |
|
| 3388 | 3387 | /** |
| 3389 | - * creates formatted output for calendar component property sequence |
|
| 3390 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3391 | - * @since 0.9.7 - 2006-11-20 |
|
| 3392 | - * @return string |
|
| 3393 | - */ |
|
| 3394 | - function createSequence() { |
|
| 3388 | + * creates formatted output for calendar component property sequence |
|
| 3389 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3390 | + * @since 0.9.7 - 2006-11-20 |
|
| 3391 | + * @return string |
|
| 3392 | + */ |
|
| 3393 | + function createSequence() { |
|
| 3395 | 3394 | if( empty( $this->sequence )) return FALSE; |
| 3396 | 3395 | if( empty( $this->sequence['value'] )) |
| 3397 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SEQUENCE' ) : FALSE; |
|
| 3396 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SEQUENCE' ) : FALSE; |
|
| 3398 | 3397 | $attributes = $this->_createParams( $this->sequence['params'] ); |
| 3399 | 3398 | return $this->_createElement( 'SEQUENCE', $attributes, $this->sequence['value'] ); |
| 3400 | - } |
|
| 3399 | + } |
|
| 3401 | 3400 | /** |
| 3402 | - * set calendar component property sequence |
|
| 3403 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3404 | - * @since 2.4.8 - 2008-11-04 |
|
| 3405 | - * @param int $value optional |
|
| 3406 | - * @param array $params optional |
|
| 3407 | - * @return bool |
|
| 3408 | - */ |
|
| 3409 | - function setSequence( $value=FALSE, $params=FALSE ) { |
|
| 3401 | + * set calendar component property sequence |
|
| 3402 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3403 | + * @since 2.4.8 - 2008-11-04 |
|
| 3404 | + * @param int $value optional |
|
| 3405 | + * @param array $params optional |
|
| 3406 | + * @return bool |
|
| 3407 | + */ |
|
| 3408 | + function setSequence( $value=FALSE, $params=FALSE ) { |
|
| 3410 | 3409 | if( empty( $value )) |
| 3411 | - $value = ( isset( $this->sequence['value'] ) && ( 0 < $this->sequence['value'] )) ? $this->sequence['value'] + 1 : 1; |
|
| 3410 | + $value = ( isset( $this->sequence['value'] ) && ( 0 < $this->sequence['value'] )) ? $this->sequence['value'] + 1 : 1; |
|
| 3412 | 3411 | $this->sequence = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3413 | 3412 | return TRUE; |
| 3414 | - } |
|
| 3413 | + } |
|
| 3415 | 3414 | /*********************************************************************************/ |
| 3416 | 3415 | /** |
| 3417 | - * Property Name: STATUS |
|
| 3418 | - */ |
|
| 3416 | + * Property Name: STATUS |
|
| 3417 | + */ |
|
| 3419 | 3418 | /** |
| 3420 | - * creates formatted output for calendar component property status |
|
| 3421 | - * |
|
| 3422 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3423 | - * @since 2.4.8 - 2008-10-21 |
|
| 3424 | - * @return string |
|
| 3425 | - */ |
|
| 3426 | - function createStatus() { |
|
| 3419 | + * creates formatted output for calendar component property status |
|
| 3420 | + * |
|
| 3421 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3422 | + * @since 2.4.8 - 2008-10-21 |
|
| 3423 | + * @return string |
|
| 3424 | + */ |
|
| 3425 | + function createStatus() { |
|
| 3427 | 3426 | if( empty( $this->status )) return FALSE; |
| 3428 | 3427 | if( empty( $this->status['value'] )) |
| 3429 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'STATUS' ) : FALSE; |
|
| 3428 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'STATUS' ) : FALSE; |
|
| 3430 | 3429 | $attributes = $this->_createParams( $this->status['params'] ); |
| 3431 | 3430 | return $this->_createElement( 'STATUS', $attributes, $this->status['value'] ); |
| 3432 | - } |
|
| 3431 | + } |
|
| 3433 | 3432 | /** |
| 3434 | - * set calendar component property status |
|
| 3435 | - * |
|
| 3436 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3437 | - * @since 2.4.8 - 2008-11-04 |
|
| 3438 | - * @param string $value |
|
| 3439 | - * @param array $params optional |
|
| 3440 | - * @return bool |
|
| 3441 | - */ |
|
| 3442 | - function setStatus( $value, $params=FALSE ) { |
|
| 3433 | + * set calendar component property status |
|
| 3434 | + * |
|
| 3435 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3436 | + * @since 2.4.8 - 2008-11-04 |
|
| 3437 | + * @param string $value |
|
| 3438 | + * @param array $params optional |
|
| 3439 | + * @return bool |
|
| 3440 | + */ |
|
| 3441 | + function setStatus( $value, $params=FALSE ) { |
|
| 3443 | 3442 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3444 | 3443 | $this->status = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3445 | 3444 | return TRUE; |
| 3446 | - } |
|
| 3445 | + } |
|
| 3447 | 3446 | /*********************************************************************************/ |
| 3448 | 3447 | /** |
| 3449 | - * Property Name: SUMMARY |
|
| 3450 | - */ |
|
| 3448 | + * Property Name: SUMMARY |
|
| 3449 | + */ |
|
| 3451 | 3450 | /** |
| 3452 | - * creates formatted output for calendar component property summary |
|
| 3453 | - * |
|
| 3454 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3455 | - * @since 2.4.8 - 2008-10-21 |
|
| 3456 | - * @return string |
|
| 3457 | - */ |
|
| 3458 | - function createSummary() { |
|
| 3451 | + * creates formatted output for calendar component property summary |
|
| 3452 | + * |
|
| 3453 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3454 | + * @since 2.4.8 - 2008-10-21 |
|
| 3455 | + * @return string |
|
| 3456 | + */ |
|
| 3457 | + function createSummary() { |
|
| 3459 | 3458 | if( empty( $this->summary )) return FALSE; |
| 3460 | 3459 | if( empty( $this->summary['value'] )) |
| 3461 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SUMMARY' ) : FALSE; |
|
| 3460 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SUMMARY' ) : FALSE; |
|
| 3462 | 3461 | $attributes = $this->_createParams( $this->summary['params'], array( 'ALTREP', 'LANGUAGE' )); |
| 3463 | 3462 | $content = $this->_strrep( $this->summary['value'] ); |
| 3464 | 3463 | return $this->_createElement( 'SUMMARY', $attributes, $content ); |
| 3465 | - } |
|
| 3464 | + } |
|
| 3466 | 3465 | /** |
| 3467 | - * set calendar component property summary |
|
| 3468 | - * |
|
| 3469 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3470 | - * @since 2.4.8 - 2008-11-04 |
|
| 3471 | - * @param string $value |
|
| 3472 | - * @param string $params optional |
|
| 3473 | - * @return bool |
|
| 3474 | - */ |
|
| 3475 | - function setSummary( $value, $params=FALSE ) { |
|
| 3466 | + * set calendar component property summary |
|
| 3467 | + * |
|
| 3468 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3469 | + * @since 2.4.8 - 2008-11-04 |
|
| 3470 | + * @param string $value |
|
| 3471 | + * @param string $params optional |
|
| 3472 | + * @return bool |
|
| 3473 | + */ |
|
| 3474 | + function setSummary( $value, $params=FALSE ) { |
|
| 3476 | 3475 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3477 | 3476 | $this->summary = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3478 | 3477 | return TRUE; |
| 3479 | - } |
|
| 3478 | + } |
|
| 3480 | 3479 | /*********************************************************************************/ |
| 3481 | 3480 | /** |
| 3482 | - * Property Name: TRANSP |
|
| 3483 | - */ |
|
| 3481 | + * Property Name: TRANSP |
|
| 3482 | + */ |
|
| 3484 | 3483 | /** |
| 3485 | - * creates formatted output for calendar component property transp |
|
| 3486 | - * |
|
| 3487 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3488 | - * @since 2.4.8 - 2008-10-21 |
|
| 3489 | - * @return string |
|
| 3490 | - */ |
|
| 3491 | - function createTransp() { |
|
| 3484 | + * creates formatted output for calendar component property transp |
|
| 3485 | + * |
|
| 3486 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3487 | + * @since 2.4.8 - 2008-10-21 |
|
| 3488 | + * @return string |
|
| 3489 | + */ |
|
| 3490 | + function createTransp() { |
|
| 3492 | 3491 | if( empty( $this->transp )) return FALSE; |
| 3493 | 3492 | if( empty( $this->transp['value'] )) |
| 3494 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRANSP' ) : FALSE; |
|
| 3493 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRANSP' ) : FALSE; |
|
| 3495 | 3494 | $attributes = $this->_createParams( $this->transp['params'] ); |
| 3496 | 3495 | return $this->_createElement( 'TRANSP', $attributes, $this->transp['value'] ); |
| 3497 | - } |
|
| 3496 | + } |
|
| 3498 | 3497 | /** |
| 3499 | - * set calendar component property transp |
|
| 3500 | - * |
|
| 3501 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3502 | - * @since 2.4.8 - 2008-11-04 |
|
| 3503 | - * @param string $value |
|
| 3504 | - * @param string $params optional |
|
| 3505 | - * @return bool |
|
| 3506 | - */ |
|
| 3507 | - function setTransp( $value, $params=FALSE ) { |
|
| 3498 | + * set calendar component property transp |
|
| 3499 | + * |
|
| 3500 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3501 | + * @since 2.4.8 - 2008-11-04 |
|
| 3502 | + * @param string $value |
|
| 3503 | + * @param string $params optional |
|
| 3504 | + * @return bool |
|
| 3505 | + */ |
|
| 3506 | + function setTransp( $value, $params=FALSE ) { |
|
| 3508 | 3507 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3509 | 3508 | $this->transp = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3510 | 3509 | return TRUE; |
| 3511 | - } |
|
| 3510 | + } |
|
| 3512 | 3511 | /*********************************************************************************/ |
| 3513 | 3512 | /** |
| 3514 | - * Property Name: TRIGGER |
|
| 3515 | - */ |
|
| 3513 | + * Property Name: TRIGGER |
|
| 3514 | + */ |
|
| 3516 | 3515 | /** |
| 3517 | - * creates formatted output for calendar component property trigger |
|
| 3518 | - * |
|
| 3519 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3520 | - * @since 2.4.16 - 2008-10-21 |
|
| 3521 | - * @return string |
|
| 3522 | - */ |
|
| 3523 | - function createTrigger() { |
|
| 3516 | + * creates formatted output for calendar component property trigger |
|
| 3517 | + * |
|
| 3518 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3519 | + * @since 2.4.16 - 2008-10-21 |
|
| 3520 | + * @return string |
|
| 3521 | + */ |
|
| 3522 | + function createTrigger() { |
|
| 3524 | 3523 | if( empty( $this->trigger )) return FALSE; |
| 3525 | 3524 | if( empty( $this->trigger['value'] )) |
| 3526 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRIGGER' ) : FALSE; |
|
| 3525 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRIGGER' ) : FALSE; |
|
| 3527 | 3526 | $content = $attributes = null; |
| 3528 | 3527 | if( isset( $this->trigger['value']['year'] ) && |
| 3529 | 3528 | isset( $this->trigger['value']['month'] ) && |
| 3530 | 3529 | isset( $this->trigger['value']['day'] )) |
| 3531 | - $content .= $this->_format_date_time( $this->trigger['value'] ); |
|
| 3530 | + $content .= $this->_format_date_time( $this->trigger['value'] ); |
|
| 3532 | 3531 | else { |
| 3533 | - if( TRUE !== $this->trigger['value']['relatedStart'] ) |
|
| 3532 | + if( TRUE !== $this->trigger['value']['relatedStart'] ) |
|
| 3534 | 3533 | $attributes .= $this->intAttrDelimiter.'RELATED=END'; |
| 3535 | - if( $this->trigger['value']['before'] ) |
|
| 3534 | + if( $this->trigger['value']['before'] ) |
|
| 3536 | 3535 | $content .= '-'; |
| 3537 | - $content .= $this->_format_duration( $this->trigger['value'] ); |
|
| 3536 | + $content .= $this->_format_duration( $this->trigger['value'] ); |
|
| 3538 | 3537 | } |
| 3539 | 3538 | $attributes .= $this->_createParams( $this->trigger['params'] ); |
| 3540 | 3539 | return $this->_createElement( 'TRIGGER', $attributes, $content ); |
| 3541 | - } |
|
| 3540 | + } |
|
| 3542 | 3541 | /** |
| 3543 | - * set calendar component property trigger |
|
| 3544 | - * |
|
| 3545 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3546 | - * @since 2.4.16 - 2008-11-04 |
|
| 3547 | - * @param mixed $year |
|
| 3548 | - * @param mixed $month optional |
|
| 3549 | - * @param int $day optional |
|
| 3550 | - * @param int $week optional |
|
| 3551 | - * @param int $hour optional |
|
| 3552 | - * @param int $min optional |
|
| 3553 | - * @param int $sec optional |
|
| 3554 | - * @param bool $relatedStart optional |
|
| 3555 | - * @param bool $before optional |
|
| 3556 | - * @param array $params optional |
|
| 3557 | - * @return bool |
|
| 3558 | - */ |
|
| 3559 | - function setTrigger( $year, $month=null, $day=null, $week=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $relatedStart=TRUE, $before=TRUE, $params=FALSE ) { |
|
| 3542 | + * set calendar component property trigger |
|
| 3543 | + * |
|
| 3544 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3545 | + * @since 2.4.16 - 2008-11-04 |
|
| 3546 | + * @param mixed $year |
|
| 3547 | + * @param mixed $month optional |
|
| 3548 | + * @param int $day optional |
|
| 3549 | + * @param int $week optional |
|
| 3550 | + * @param int $hour optional |
|
| 3551 | + * @param int $min optional |
|
| 3552 | + * @param int $sec optional |
|
| 3553 | + * @param bool $relatedStart optional |
|
| 3554 | + * @param bool $before optional |
|
| 3555 | + * @param array $params optional |
|
| 3556 | + * @return bool |
|
| 3557 | + */ |
|
| 3558 | + function setTrigger( $year, $month=null, $day=null, $week=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $relatedStart=TRUE, $before=TRUE, $params=FALSE ) { |
|
| 3560 | 3559 | if( empty( $year ) && empty( $month ) && empty( $day ) && empty( $week ) && empty( $hour ) && empty( $min ) && empty( $sec )) |
| 3561 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 3560 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 3562 | 3561 | $this->trigger = array( 'value' => null, 'params' => $this->_setParams( $params ) ); |
| 3563 | 3562 | return TRUE; |
| 3564 | - } |
|
| 3565 | - else |
|
| 3563 | + } |
|
| 3564 | + else |
|
| 3566 | 3565 | return FALSE; |
| 3567 | 3566 | if( $this->_isArrayTimestampDate( $year )) { // timestamp |
| 3568 | - $params = $this->_setParams( $month ); |
|
| 3569 | - $date = $this->_timestamp2date( $year, 7 ); |
|
| 3570 | - foreach( $date as $k => $v ) |
|
| 3567 | + $params = $this->_setParams( $month ); |
|
| 3568 | + $date = $this->_timestamp2date( $year, 7 ); |
|
| 3569 | + foreach( $date as $k => $v ) |
|
| 3571 | 3570 | $$k = $v; |
| 3572 | 3571 | } |
| 3573 | 3572 | elseif( is_array( $year ) && ( is_array( $month ) || empty( $month ))) { |
| 3574 | - $params = $this->_setParams( $month ); |
|
| 3575 | - if(!(array_key_exists( 'year', $year ) && // exclude date-time |
|
| 3573 | + $params = $this->_setParams( $month ); |
|
| 3574 | + if(!(array_key_exists( 'year', $year ) && // exclude date-time |
|
| 3576 | 3575 | array_key_exists( 'month', $year ) && |
| 3577 | 3576 | array_key_exists( 'day', $year ))) { // so this must be a duration |
| 3578 | 3577 | if( isset( $params['RELATED'] ) && ( 'END' == $params['RELATED'] )) |
| 3579 | - $relatedStart = FALSE; |
|
| 3578 | + $relatedStart = FALSE; |
|
| 3580 | 3579 | else |
| 3581 | - $relatedStart = ( array_key_exists( 'relatedStart', $year ) && ( TRUE !== $year['relatedStart'] )) ? FALSE : TRUE; |
|
| 3580 | + $relatedStart = ( array_key_exists( 'relatedStart', $year ) && ( TRUE !== $year['relatedStart'] )) ? FALSE : TRUE; |
|
| 3582 | 3581 | $before = ( array_key_exists( 'before', $year ) && ( TRUE !== $year['before'] )) ? FALSE : TRUE; |
| 3583 | - } |
|
| 3584 | - $SSYY = ( array_key_exists( 'year', $year )) ? $year['year'] : null; |
|
| 3585 | - $month = ( array_key_exists( 'month', $year )) ? $year['month'] : null; |
|
| 3586 | - $day = ( array_key_exists( 'day', $year )) ? $year['day'] : null; |
|
| 3587 | - $week = ( array_key_exists( 'week', $year )) ? $year['week'] : null; |
|
| 3588 | - $hour = ( array_key_exists( 'hour', $year )) ? $year['hour'] : 0; //null; |
|
| 3589 | - $min = ( array_key_exists( 'min', $year )) ? $year['min'] : 0; //null; |
|
| 3590 | - $sec = ( array_key_exists( 'sec', $year )) ? $year['sec'] : 0; //null; |
|
| 3591 | - $year = $SSYY; |
|
| 3582 | + } |
|
| 3583 | + $SSYY = ( array_key_exists( 'year', $year )) ? $year['year'] : null; |
|
| 3584 | + $month = ( array_key_exists( 'month', $year )) ? $year['month'] : null; |
|
| 3585 | + $day = ( array_key_exists( 'day', $year )) ? $year['day'] : null; |
|
| 3586 | + $week = ( array_key_exists( 'week', $year )) ? $year['week'] : null; |
|
| 3587 | + $hour = ( array_key_exists( 'hour', $year )) ? $year['hour'] : 0; //null; |
|
| 3588 | + $min = ( array_key_exists( 'min', $year )) ? $year['min'] : 0; //null; |
|
| 3589 | + $sec = ( array_key_exists( 'sec', $year )) ? $year['sec'] : 0; //null; |
|
| 3590 | + $year = $SSYY; |
|
| 3592 | 3591 | } |
| 3593 | 3592 | elseif(is_string( $year ) && ( is_array( $month ) || empty( $month ))) { // duration or date in a string |
| 3594 | - $params = $this->_setParams( $month ); |
|
| 3595 | - if( in_array( $year{0}, array( 'P', '+', '-' ))) { // duration |
|
| 3593 | + $params = $this->_setParams( $month ); |
|
| 3594 | + if( in_array( $year{0}, array( 'P', '+', '-' ))) { // duration |
|
| 3596 | 3595 | $relatedStart = ( isset( $params['RELATED'] ) && ( 'END' == $params['RELATED'] )) ? FALSE : TRUE; |
| 3597 | 3596 | $before = ( '-' == $year{0} ) ? TRUE : FALSE; |
| 3598 | 3597 | if( 'P' != $year{0} ) |
| 3599 | - $year = substr( $year, 1 ); |
|
| 3598 | + $year = substr( $year, 1 ); |
|
| 3600 | 3599 | $date = $this->_duration_string( $year); |
| 3601 | - } |
|
| 3602 | - else // date |
|
| 3600 | + } |
|
| 3601 | + else // date |
|
| 3603 | 3602 | $date = $this->_date_time_string( $year, 7 ); |
| 3604 | - unset( $year, $month, $day ); |
|
| 3605 | - foreach( $date as $k => $v ) |
|
| 3603 | + unset( $year, $month, $day ); |
|
| 3604 | + foreach( $date as $k => $v ) |
|
| 3606 | 3605 | $$k = $v; |
| 3607 | 3606 | } |
| 3608 | 3607 | else // single values in function input parameters |
| 3609 | - $params = $this->_setParams( $params ); |
|
| 3608 | + $params = $this->_setParams( $params ); |
|
| 3610 | 3609 | if( !empty( $year ) && !empty( $month ) && !empty( $day )) { // date |
| 3611 | - $params['VALUE'] = 'DATE-TIME'; |
|
| 3612 | - $hour = ( $hour ) ? $hour : 0; |
|
| 3613 | - $min = ( $min ) ? $min : 0; |
|
| 3614 | - $sec = ( $sec ) ? $sec : 0; |
|
| 3615 | - $this->trigger = array( 'params' => $params ); |
|
| 3616 | - $this->trigger['value'] = array( 'year' => $year |
|
| 3617 | - , 'month' => $month |
|
| 3618 | - , 'day' => $day |
|
| 3619 | - , 'hour' => $hour |
|
| 3620 | - , 'min' => $min |
|
| 3621 | - , 'sec' => $sec |
|
| 3622 | - , 'tz' => 'Z' ); |
|
| 3623 | - return TRUE; |
|
| 3610 | + $params['VALUE'] = 'DATE-TIME'; |
|
| 3611 | + $hour = ( $hour ) ? $hour : 0; |
|
| 3612 | + $min = ( $min ) ? $min : 0; |
|
| 3613 | + $sec = ( $sec ) ? $sec : 0; |
|
| 3614 | + $this->trigger = array( 'params' => $params ); |
|
| 3615 | + $this->trigger['value'] = array( 'year' => $year |
|
| 3616 | + , 'month' => $month |
|
| 3617 | + , 'day' => $day |
|
| 3618 | + , 'hour' => $hour |
|
| 3619 | + , 'min' => $min |
|
| 3620 | + , 'sec' => $sec |
|
| 3621 | + , 'tz' => 'Z' ); |
|
| 3622 | + return TRUE; |
|
| 3624 | 3623 | } |
| 3625 | 3624 | elseif(( empty( $year ) && empty( $month )) && // duration |
| 3626 | 3625 | (!empty( $week ) || !empty( $day ) || !empty( $hour ) || !empty( $min ) || !empty( $sec ))) { |
| 3627 | - unset( $params['RELATED'] ); // set at output creation (END only) |
|
| 3628 | - unset( $params['VALUE'] ); // 'DURATION' default |
|
| 3629 | - $this->trigger = array( 'params' => $params ); |
|
| 3630 | - $relatedStart = ( FALSE !== $relatedStart ) ? TRUE : FALSE; |
|
| 3631 | - $before = ( FALSE !== $before ) ? TRUE : FALSE; |
|
| 3632 | - $this->trigger['value'] = array( 'relatedStart' => $relatedStart |
|
| 3633 | - , 'before' => $before ); |
|
| 3634 | - if( !empty( $week )) $this->trigger['value']['week'] = $week; |
|
| 3635 | - if( !empty( $day )) $this->trigger['value']['day'] = $day; |
|
| 3636 | - if( !empty( $hour )) $this->trigger['value']['hour'] = $hour; |
|
| 3637 | - if( !empty( $min )) $this->trigger['value']['min'] = $min; |
|
| 3638 | - if( !empty( $sec )) $this->trigger['value']['sec'] = $sec; |
|
| 3639 | - return TRUE; |
|
| 3626 | + unset( $params['RELATED'] ); // set at output creation (END only) |
|
| 3627 | + unset( $params['VALUE'] ); // 'DURATION' default |
|
| 3628 | + $this->trigger = array( 'params' => $params ); |
|
| 3629 | + $relatedStart = ( FALSE !== $relatedStart ) ? TRUE : FALSE; |
|
| 3630 | + $before = ( FALSE !== $before ) ? TRUE : FALSE; |
|
| 3631 | + $this->trigger['value'] = array( 'relatedStart' => $relatedStart |
|
| 3632 | + , 'before' => $before ); |
|
| 3633 | + if( !empty( $week )) $this->trigger['value']['week'] = $week; |
|
| 3634 | + if( !empty( $day )) $this->trigger['value']['day'] = $day; |
|
| 3635 | + if( !empty( $hour )) $this->trigger['value']['hour'] = $hour; |
|
| 3636 | + if( !empty( $min )) $this->trigger['value']['min'] = $min; |
|
| 3637 | + if( !empty( $sec )) $this->trigger['value']['sec'] = $sec; |
|
| 3638 | + return TRUE; |
|
| 3640 | 3639 | } |
| 3641 | 3640 | return FALSE; |
| 3642 | - } |
|
| 3641 | + } |
|
| 3643 | 3642 | /*********************************************************************************/ |
| 3644 | 3643 | /** |
| 3645 | - * Property Name: TZID |
|
| 3646 | - */ |
|
| 3644 | + * Property Name: TZID |
|
| 3645 | + */ |
|
| 3647 | 3646 | /** |
| 3648 | - * creates formatted output for calendar component property tzid |
|
| 3649 | - * |
|
| 3650 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3651 | - * @since 2.4.8 - 2008-10-21 |
|
| 3652 | - * @return string |
|
| 3653 | - */ |
|
| 3654 | - function createTzid() { |
|
| 3647 | + * creates formatted output for calendar component property tzid |
|
| 3648 | + * |
|
| 3649 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3650 | + * @since 2.4.8 - 2008-10-21 |
|
| 3651 | + * @return string |
|
| 3652 | + */ |
|
| 3653 | + function createTzid() { |
|
| 3655 | 3654 | if( empty( $this->tzid )) return FALSE; |
| 3656 | 3655 | if( empty( $this->tzid['value'] )) |
| 3657 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZID' ) : FALSE; |
|
| 3656 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZID' ) : FALSE; |
|
| 3658 | 3657 | $attributes = $this->_createParams( $this->tzid['params'] ); |
| 3659 | 3658 | return $this->_createElement( 'TZID', $attributes, $this->_strrep( $this->tzid['value'] )); |
| 3660 | - } |
|
| 3659 | + } |
|
| 3661 | 3660 | /** |
| 3662 | - * set calendar component property tzid |
|
| 3663 | - * |
|
| 3664 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3665 | - * @since 2.4.8 - 2008-11-04 |
|
| 3666 | - * @param string $value |
|
| 3667 | - * @param array $params optional |
|
| 3668 | - * @return bool |
|
| 3669 | - */ |
|
| 3670 | - function setTzid( $value, $params=FALSE ) { |
|
| 3661 | + * set calendar component property tzid |
|
| 3662 | + * |
|
| 3663 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3664 | + * @since 2.4.8 - 2008-11-04 |
|
| 3665 | + * @param string $value |
|
| 3666 | + * @param array $params optional |
|
| 3667 | + * @return bool |
|
| 3668 | + */ |
|
| 3669 | + function setTzid( $value, $params=FALSE ) { |
|
| 3671 | 3670 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3672 | 3671 | $this->tzid = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3673 | 3672 | return TRUE; |
| 3674 | - } |
|
| 3673 | + } |
|
| 3675 | 3674 | /*********************************************************************************/ |
| 3676 | 3675 | /** |
| 3677 | - * .. . |
|
| 3678 | - * Property Name: TZNAME |
|
| 3679 | - */ |
|
| 3680 | -/** |
|
| 3681 | - * creates formatted output for calendar component property tzname |
|
| 3682 | - * |
|
| 3683 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3684 | - * @since 2.4.8 - 2008-10-21 |
|
| 3685 | - * @return string |
|
| 3686 | - */ |
|
| 3687 | - function createTzname() { |
|
| 3676 | + * .. . |
|
| 3677 | + * Property Name: TZNAME |
|
| 3678 | + */ |
|
| 3679 | +/** |
|
| 3680 | + * creates formatted output for calendar component property tzname |
|
| 3681 | + * |
|
| 3682 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3683 | + * @since 2.4.8 - 2008-10-21 |
|
| 3684 | + * @return string |
|
| 3685 | + */ |
|
| 3686 | + function createTzname() { |
|
| 3688 | 3687 | if( empty( $this->tzname )) return FALSE; |
| 3689 | 3688 | $output = null; |
| 3690 | 3689 | foreach( $this->tzname as $theName ) { |
| 3691 | - if( !empty( $theName['value'] )) { |
|
| 3690 | + if( !empty( $theName['value'] )) { |
|
| 3692 | 3691 | $attributes = $this->_createParams( $theName['params'], array( 'LANGUAGE' )); |
| 3693 | 3692 | $output .= $this->_createElement( 'TZNAME', $attributes, $this->_strrep( $theName['value'] )); |
| 3694 | - } |
|
| 3695 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'TZNAME' ); |
|
| 3693 | + } |
|
| 3694 | + elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'TZNAME' ); |
|
| 3696 | 3695 | } |
| 3697 | 3696 | return $output; |
| 3698 | - } |
|
| 3697 | + } |
|
| 3699 | 3698 | /** |
| 3700 | - * set calendar component property tzname |
|
| 3701 | - * |
|
| 3702 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3703 | - * @since 2.5.1 - 2008-11-05 |
|
| 3704 | - * @param string $value |
|
| 3705 | - * @param string $params, optional |
|
| 3706 | - * @param integer $index, optional |
|
| 3707 | - * @return bool |
|
| 3708 | - */ |
|
| 3709 | - function setTzname( $value, $params=FALSE, $index=FALSE ) { |
|
| 3699 | + * set calendar component property tzname |
|
| 3700 | + * |
|
| 3701 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3702 | + * @since 2.5.1 - 2008-11-05 |
|
| 3703 | + * @param string $value |
|
| 3704 | + * @param string $params, optional |
|
| 3705 | + * @param integer $index, optional |
|
| 3706 | + * @return bool |
|
| 3707 | + */ |
|
| 3708 | + function setTzname( $value, $params=FALSE, $index=FALSE ) { |
|
| 3710 | 3709 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3711 | 3710 | $this->_setMval( $this->tzname, $value, $params, FALSE, $index ); |
| 3712 | 3711 | return TRUE; |
| 3713 | - } |
|
| 3712 | + } |
|
| 3714 | 3713 | /*********************************************************************************/ |
| 3715 | 3714 | /** |
| 3716 | - * Property Name: TZOFFSETFROM |
|
| 3717 | - */ |
|
| 3715 | + * Property Name: TZOFFSETFROM |
|
| 3716 | + */ |
|
| 3718 | 3717 | /** |
| 3719 | - * creates formatted output for calendar component property tzoffsetfrom |
|
| 3720 | - * |
|
| 3721 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3722 | - * @since 2.4.8 - 2008-10-21 |
|
| 3723 | - * @return string |
|
| 3724 | - */ |
|
| 3725 | - function createTzoffsetfrom() { |
|
| 3718 | + * creates formatted output for calendar component property tzoffsetfrom |
|
| 3719 | + * |
|
| 3720 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3721 | + * @since 2.4.8 - 2008-10-21 |
|
| 3722 | + * @return string |
|
| 3723 | + */ |
|
| 3724 | + function createTzoffsetfrom() { |
|
| 3726 | 3725 | if( empty( $this->tzoffsetfrom )) return FALSE; |
| 3727 | 3726 | if( empty( $this->tzoffsetfrom['value'] )) |
| 3728 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETFROM' ) : FALSE; |
|
| 3727 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETFROM' ) : FALSE; |
|
| 3729 | 3728 | $attributes = $this->_createParams( $this->tzoffsetfrom['params'] ); |
| 3730 | 3729 | return $this->_createElement( 'TZOFFSETFROM', $attributes, $this->tzoffsetfrom['value'] ); |
| 3731 | - } |
|
| 3730 | + } |
|
| 3732 | 3731 | /** |
| 3733 | - * set calendar component property tzoffsetfrom |
|
| 3734 | - * |
|
| 3735 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3736 | - * @since 2.4.8 - 2008-11-04 |
|
| 3737 | - * @param string $value |
|
| 3738 | - * @param string $params optional |
|
| 3739 | - * @return bool |
|
| 3740 | - */ |
|
| 3741 | - function setTzoffsetfrom( $value, $params=FALSE ) { |
|
| 3732 | + * set calendar component property tzoffsetfrom |
|
| 3733 | + * |
|
| 3734 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3735 | + * @since 2.4.8 - 2008-11-04 |
|
| 3736 | + * @param string $value |
|
| 3737 | + * @param string $params optional |
|
| 3738 | + * @return bool |
|
| 3739 | + */ |
|
| 3740 | + function setTzoffsetfrom( $value, $params=FALSE ) { |
|
| 3742 | 3741 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3743 | 3742 | $this->tzoffsetfrom = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3744 | 3743 | return TRUE; |
| 3745 | - } |
|
| 3744 | + } |
|
| 3746 | 3745 | /*********************************************************************************/ |
| 3747 | 3746 | /** |
| 3748 | - * Property Name: TZOFFSETTO |
|
| 3749 | - */ |
|
| 3747 | + * Property Name: TZOFFSETTO |
|
| 3748 | + */ |
|
| 3750 | 3749 | /** |
| 3751 | - * creates formatted output for calendar component property tzoffsetto |
|
| 3752 | - * |
|
| 3753 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3754 | - * @since 2.4.8 - 2008-10-21 |
|
| 3755 | - * @return string |
|
| 3756 | - */ |
|
| 3757 | - function createTzoffsetto() { |
|
| 3750 | + * creates formatted output for calendar component property tzoffsetto |
|
| 3751 | + * |
|
| 3752 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3753 | + * @since 2.4.8 - 2008-10-21 |
|
| 3754 | + * @return string |
|
| 3755 | + */ |
|
| 3756 | + function createTzoffsetto() { |
|
| 3758 | 3757 | if( empty( $this->tzoffsetto )) return FALSE; |
| 3759 | 3758 | if( empty( $this->tzoffsetto['value'] )) |
| 3760 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETTO' ) : FALSE; |
|
| 3759 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETTO' ) : FALSE; |
|
| 3761 | 3760 | $attributes = $this->_createParams( $this->tzoffsetto['params'] ); |
| 3762 | 3761 | return $this->_createElement( 'TZOFFSETTO', $attributes, $this->tzoffsetto['value'] ); |
| 3763 | - } |
|
| 3762 | + } |
|
| 3764 | 3763 | /** |
| 3765 | - * set calendar component property tzoffsetto |
|
| 3766 | - * |
|
| 3767 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3768 | - * @since 2.4.8 - 2008-11-04 |
|
| 3769 | - * @param string $value |
|
| 3770 | - * @param string $params optional |
|
| 3771 | - * @return bool |
|
| 3772 | - */ |
|
| 3773 | - function setTzoffsetto( $value, $params=FALSE ) { |
|
| 3764 | + * set calendar component property tzoffsetto |
|
| 3765 | + * |
|
| 3766 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3767 | + * @since 2.4.8 - 2008-11-04 |
|
| 3768 | + * @param string $value |
|
| 3769 | + * @param string $params optional |
|
| 3770 | + * @return bool |
|
| 3771 | + */ |
|
| 3772 | + function setTzoffsetto( $value, $params=FALSE ) { |
|
| 3774 | 3773 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3775 | 3774 | $this->tzoffsetto = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3776 | 3775 | return TRUE; |
| 3777 | - } |
|
| 3776 | + } |
|
| 3778 | 3777 | /*********************************************************************************/ |
| 3779 | 3778 | /** |
| 3780 | - * Property Name: TZURL |
|
| 3781 | - */ |
|
| 3779 | + * Property Name: TZURL |
|
| 3780 | + */ |
|
| 3782 | 3781 | /** |
| 3783 | - * creates formatted output for calendar component property tzurl |
|
| 3784 | - * |
|
| 3785 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3786 | - * @since 2.4.8 - 2008-10-21 |
|
| 3787 | - * @return string |
|
| 3788 | - */ |
|
| 3789 | - function createTzurl() { |
|
| 3782 | + * creates formatted output for calendar component property tzurl |
|
| 3783 | + * |
|
| 3784 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3785 | + * @since 2.4.8 - 2008-10-21 |
|
| 3786 | + * @return string |
|
| 3787 | + */ |
|
| 3788 | + function createTzurl() { |
|
| 3790 | 3789 | if( empty( $this->tzurl )) return FALSE; |
| 3791 | 3790 | if( empty( $this->tzurl['value'] )) |
| 3792 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZURL' ) : FALSE; |
|
| 3791 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZURL' ) : FALSE; |
|
| 3793 | 3792 | $attributes = $this->_createParams( $this->tzurl['params'] ); |
| 3794 | 3793 | return $this->_createElement( 'TZURL', $attributes, $this->tzurl['value'] ); |
| 3795 | - } |
|
| 3794 | + } |
|
| 3796 | 3795 | /** |
| 3797 | - * set calendar component property tzurl |
|
| 3798 | - * |
|
| 3799 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3800 | - * @since 2.4.8 - 2008-11-04 |
|
| 3801 | - * @param string $value |
|
| 3802 | - * @param string $params optional |
|
| 3803 | - * @return boll |
|
| 3804 | - */ |
|
| 3805 | - function setTzurl( $value, $params=FALSE ) { |
|
| 3796 | + * set calendar component property tzurl |
|
| 3797 | + * |
|
| 3798 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3799 | + * @since 2.4.8 - 2008-11-04 |
|
| 3800 | + * @param string $value |
|
| 3801 | + * @param string $params optional |
|
| 3802 | + * @return boll |
|
| 3803 | + */ |
|
| 3804 | + function setTzurl( $value, $params=FALSE ) { |
|
| 3806 | 3805 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3807 | 3806 | $this->tzurl = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3808 | 3807 | return TRUE; |
| 3809 | - } |
|
| 3808 | + } |
|
| 3810 | 3809 | /*********************************************************************************/ |
| 3811 | 3810 | /** |
| 3812 | - * Property Name: UID |
|
| 3813 | - */ |
|
| 3811 | + * Property Name: UID |
|
| 3812 | + */ |
|
| 3814 | 3813 | /** |
| 3815 | - * creates formatted output for calendar component property uid |
|
| 3816 | - * |
|
| 3817 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3818 | - * @since 0.9.7 - 2006-11-20 |
|
| 3819 | - * @return string |
|
| 3820 | - */ |
|
| 3821 | - function createUid() { |
|
| 3814 | + * creates formatted output for calendar component property uid |
|
| 3815 | + * |
|
| 3816 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3817 | + * @since 0.9.7 - 2006-11-20 |
|
| 3818 | + * @return string |
|
| 3819 | + */ |
|
| 3820 | + function createUid() { |
|
| 3822 | 3821 | if( 0 >= count( $this->uid )) |
| 3823 | - $this->_makeuid(); |
|
| 3822 | + $this->_makeuid(); |
|
| 3824 | 3823 | $attributes = $this->_createParams( $this->uid['params'] ); |
| 3825 | 3824 | return $this->_createElement( 'UID', $attributes, $this->uid['value'] ); |
| 3826 | - } |
|
| 3825 | + } |
|
| 3827 | 3826 | /** |
| 3828 | - * create an unique id for this calendar component object instance |
|
| 3829 | - * |
|
| 3830 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3831 | - * @since 2.2.7 - 2007-09-04 |
|
| 3832 | - * @return void |
|
| 3833 | - */ |
|
| 3834 | - function _makeUid() { |
|
| 3827 | + * create an unique id for this calendar component object instance |
|
| 3828 | + * |
|
| 3829 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3830 | + * @since 2.2.7 - 2007-09-04 |
|
| 3831 | + * @return void |
|
| 3832 | + */ |
|
| 3833 | + function _makeUid() { |
|
| 3835 | 3834 | $date = date('Ymd\THisT'); |
| 3836 | 3835 | $unique = substr(microtime(), 2, 4); |
| 3837 | 3836 | $base = 'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPrRsStTuUvVxXuUvVwWzZ1234567890'; |
@@ -3840,98 +3839,98 @@ discard block |
||
| 3840 | 3839 | $length = 6; |
| 3841 | 3840 | $str = null; |
| 3842 | 3841 | for( $p = 0; $p < $length; $p++ ) |
| 3843 | - $unique .= $base{mt_rand( $start, $end )}; |
|
| 3842 | + $unique .= $base{mt_rand( $start, $end )}; |
|
| 3844 | 3843 | $this->uid = array( 'params' => null ); |
| 3845 | 3844 | $this->uid['value'] = $date.'-'.$unique.'@'.$this->getConfig( 'unique_id' ); |
| 3846 | - } |
|
| 3845 | + } |
|
| 3847 | 3846 | /** |
| 3848 | - * set calendar component property uid |
|
| 3849 | - * |
|
| 3850 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3851 | - * @since 2.4.8 - 2008-11-04 |
|
| 3852 | - * @param string $value |
|
| 3853 | - * @param string $params optional |
|
| 3854 | - * @return bool |
|
| 3855 | - */ |
|
| 3856 | - function setUid( $value, $params=FALSE ) { |
|
| 3847 | + * set calendar component property uid |
|
| 3848 | + * |
|
| 3849 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3850 | + * @since 2.4.8 - 2008-11-04 |
|
| 3851 | + * @param string $value |
|
| 3852 | + * @param string $params optional |
|
| 3853 | + * @return bool |
|
| 3854 | + */ |
|
| 3855 | + function setUid( $value, $params=FALSE ) { |
|
| 3857 | 3856 | if( empty( $value )) return FALSE; // no allowEmpty check here !!!! |
| 3858 | 3857 | $this->uid = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3859 | 3858 | return TRUE; |
| 3860 | - } |
|
| 3859 | + } |
|
| 3861 | 3860 | /*********************************************************************************/ |
| 3862 | 3861 | /** |
| 3863 | - * Property Name: URL |
|
| 3864 | - */ |
|
| 3862 | + * Property Name: URL |
|
| 3863 | + */ |
|
| 3865 | 3864 | /** |
| 3866 | - * creates formatted output for calendar component property url |
|
| 3867 | - * |
|
| 3868 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3869 | - * @since 2.4.8 - 2008-10-21 |
|
| 3870 | - * @return string |
|
| 3871 | - */ |
|
| 3872 | - function createUrl() { |
|
| 3865 | + * creates formatted output for calendar component property url |
|
| 3866 | + * |
|
| 3867 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3868 | + * @since 2.4.8 - 2008-10-21 |
|
| 3869 | + * @return string |
|
| 3870 | + */ |
|
| 3871 | + function createUrl() { |
|
| 3873 | 3872 | if( empty( $this->url )) return FALSE; |
| 3874 | 3873 | if( empty( $this->url['value'] )) |
| 3875 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'URL' ) : FALSE; |
|
| 3874 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'URL' ) : FALSE; |
|
| 3876 | 3875 | $attributes = $this->_createParams( $this->url['params'] ); |
| 3877 | 3876 | return $this->_createElement( 'URL', $attributes, $this->url['value'] ); |
| 3878 | - } |
|
| 3877 | + } |
|
| 3879 | 3878 | /** |
| 3880 | - * set calendar component property url |
|
| 3881 | - * |
|
| 3882 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3883 | - * @since 2.4.8 - 2008-11-04 |
|
| 3884 | - * @param string $value |
|
| 3885 | - * @param string $params optional |
|
| 3886 | - * @return bool |
|
| 3887 | - */ |
|
| 3888 | - function setUrl( $value, $params=FALSE ) { |
|
| 3879 | + * set calendar component property url |
|
| 3880 | + * |
|
| 3881 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3882 | + * @since 2.4.8 - 2008-11-04 |
|
| 3883 | + * @param string $value |
|
| 3884 | + * @param string $params optional |
|
| 3885 | + * @return bool |
|
| 3886 | + */ |
|
| 3887 | + function setUrl( $value, $params=FALSE ) { |
|
| 3889 | 3888 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3890 | 3889 | $this->url = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3891 | 3890 | return TRUE; |
| 3892 | - } |
|
| 3891 | + } |
|
| 3893 | 3892 | /*********************************************************************************/ |
| 3894 | 3893 | /** |
| 3895 | - * Property Name: x-prop |
|
| 3896 | - */ |
|
| 3894 | + * Property Name: x-prop |
|
| 3895 | + */ |
|
| 3897 | 3896 | /** |
| 3898 | - * creates formatted output for calendar component property x-prop |
|
| 3899 | - * |
|
| 3900 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3901 | - * @since 2.4.11 - 2008-10-22 |
|
| 3902 | - * @return string |
|
| 3903 | - */ |
|
| 3904 | - function createXprop() { |
|
| 3897 | + * creates formatted output for calendar component property x-prop |
|
| 3898 | + * |
|
| 3899 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3900 | + * @since 2.4.11 - 2008-10-22 |
|
| 3901 | + * @return string |
|
| 3902 | + */ |
|
| 3903 | + function createXprop() { |
|
| 3905 | 3904 | if( empty( $this->xprop )) return FALSE; |
| 3906 | 3905 | $output = null; |
| 3907 | 3906 | foreach( $this->xprop as $label => $xpropPart ) { |
| 3908 | - if( empty( $xpropPart['value'] )) { |
|
| 3907 | + if( empty( $xpropPart['value'] )) { |
|
| 3909 | 3908 | if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( $label ); |
| 3910 | 3909 | continue; |
| 3911 | - } |
|
| 3912 | - $attributes = $this->_createParams( $xpropPart['params'], array( 'LANGUAGE' )); |
|
| 3913 | - if( is_array( $xpropPart['value'] )) { |
|
| 3910 | + } |
|
| 3911 | + $attributes = $this->_createParams( $xpropPart['params'], array( 'LANGUAGE' )); |
|
| 3912 | + if( is_array( $xpropPart['value'] )) { |
|
| 3914 | 3913 | foreach( $xpropPart['value'] as $pix => $theXpart ) |
| 3915 | - $xpropPart['value'][$pix] = $this->_strrep( $theXpart ); |
|
| 3914 | + $xpropPart['value'][$pix] = $this->_strrep( $theXpart ); |
|
| 3916 | 3915 | $xpropPart['value'] = implode( ',', $xpropPart['value'] ); |
| 3917 | - } |
|
| 3918 | - else |
|
| 3916 | + } |
|
| 3917 | + else |
|
| 3919 | 3918 | $xpropPart['value'] = $this->_strrep( $xpropPart['value'] ); |
| 3920 | - $output .= $this->_createElement( $label, $attributes, $xpropPart['value'] ); |
|
| 3919 | + $output .= $this->_createElement( $label, $attributes, $xpropPart['value'] ); |
|
| 3921 | 3920 | } |
| 3922 | 3921 | return $output; |
| 3923 | - } |
|
| 3922 | + } |
|
| 3924 | 3923 | /** |
| 3925 | - * set calendar component property x-prop |
|
| 3926 | - * |
|
| 3927 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3928 | - * @since 2.4.11 - 2008-11-04 |
|
| 3929 | - * @param string $label |
|
| 3930 | - * @param mixed $value |
|
| 3931 | - * @param array $params optional |
|
| 3932 | - * @return bool |
|
| 3933 | - */ |
|
| 3934 | - function setXprop( $label, $value, $params=FALSE ) { |
|
| 3924 | + * set calendar component property x-prop |
|
| 3925 | + * |
|
| 3926 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3927 | + * @since 2.4.11 - 2008-11-04 |
|
| 3928 | + * @param string $label |
|
| 3929 | + * @param mixed $value |
|
| 3930 | + * @param array $params optional |
|
| 3931 | + * @return bool |
|
| 3932 | + */ |
|
| 3933 | + function setXprop( $label, $value, $params=FALSE ) { |
|
| 3935 | 3934 | if( empty( $label )) return; |
| 3936 | 3935 | if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
| 3937 | 3936 | $xprop = array( 'value' => $value ); |
@@ -3940,20 +3939,20 @@ discard block |
||
| 3940 | 3939 | if( !is_array( $this->xprop )) $this->xprop = array(); |
| 3941 | 3940 | $this->xprop[strtoupper( $label )] = $xprop; |
| 3942 | 3941 | return TRUE; |
| 3943 | - } |
|
| 3942 | + } |
|
| 3944 | 3943 | /*********************************************************************************/ |
| 3945 | 3944 | /*********************************************************************************/ |
| 3946 | 3945 | /** |
| 3947 | - * create element format parts |
|
| 3948 | - * |
|
| 3949 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3950 | - * @since 2.0.6 - 2006-06-20 |
|
| 3951 | - * @return string |
|
| 3952 | - */ |
|
| 3953 | - function _createFormat() { |
|
| 3946 | + * create element format parts |
|
| 3947 | + * |
|
| 3948 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3949 | + * @since 2.0.6 - 2006-06-20 |
|
| 3950 | + * @return string |
|
| 3951 | + */ |
|
| 3952 | + function _createFormat() { |
|
| 3954 | 3953 | $objectname = null; |
| 3955 | 3954 | switch( $this->format ) { |
| 3956 | - case 'xcal': |
|
| 3955 | + case 'xcal': |
|
| 3957 | 3956 | $objectname = ( isset( $this->timezonetype )) ? |
| 3958 | 3957 | strtolower( $this->timezonetype ) : strtolower( $this->objName ); |
| 3959 | 3958 | $this->componentStart1 = $this->elementStart1 = '<'; |
@@ -3964,7 +3963,7 @@ discard block |
||
| 3964 | 3963 | $this->attributeDelimiter = $this->nl; |
| 3965 | 3964 | $this->valueInit = null; |
| 3966 | 3965 | break; |
| 3967 | - default: |
|
| 3966 | + default: |
|
| 3968 | 3967 | $objectname = ( isset( $this->timezonetype )) ? |
| 3969 | 3968 | strtoupper( $this->timezonetype ) : strtoupper( $this->objName ); |
| 3970 | 3969 | $this->componentStart1 = 'BEGIN:'; |
@@ -3981,232 +3980,232 @@ discard block |
||
| 3981 | 3980 | break; |
| 3982 | 3981 | } |
| 3983 | 3982 | return $objectname; |
| 3984 | - } |
|
| 3983 | + } |
|
| 3985 | 3984 | /** |
| 3986 | - * creates formatted output for calendar component property |
|
| 3987 | - * |
|
| 3988 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3989 | - * @since 2.4.8 - 2008-10-23 |
|
| 3990 | - * @param string $label property name |
|
| 3991 | - * @param string $attributes property attributes |
|
| 3992 | - * @param string $content property content (optional) |
|
| 3993 | - * @return string |
|
| 3994 | - */ |
|
| 3995 | - function _createElement( $label, $attributes=null, $content=FALSE ) { |
|
| 3985 | + * creates formatted output for calendar component property |
|
| 3986 | + * |
|
| 3987 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 3988 | + * @since 2.4.8 - 2008-10-23 |
|
| 3989 | + * @param string $label property name |
|
| 3990 | + * @param string $attributes property attributes |
|
| 3991 | + * @param string $content property content (optional) |
|
| 3992 | + * @return string |
|
| 3993 | + */ |
|
| 3994 | + function _createElement( $label, $attributes=null, $content=FALSE ) { |
|
| 3996 | 3995 | $label = $this->_formatPropertyName( $label ); |
| 3997 | 3996 | $output = $this->elementStart1.$label; |
| 3998 | 3997 | $categoriesAttrLang = null; |
| 3999 | 3998 | $attachInlineBinary = FALSE; |
| 4000 | 3999 | $attachfmttype = null; |
| 4001 | 4000 | if( !empty( $attributes )) { |
| 4002 | - $attributes = trim( $attributes ); |
|
| 4003 | - if ( 'xcal' == $this->format) { |
|
| 4001 | + $attributes = trim( $attributes ); |
|
| 4002 | + if ( 'xcal' == $this->format) { |
|
| 4004 | 4003 | $attributes2 = explode( $this->intAttrDelimiter, $attributes ); |
| 4005 | 4004 | $attributes = null; |
| 4006 | 4005 | foreach( $attributes2 as $attribute ) { |
| 4007 | - $attrKVarr = explode( '=', $attribute ); |
|
| 4008 | - if( empty( $attrKVarr[0] )) |
|
| 4006 | + $attrKVarr = explode( '=', $attribute ); |
|
| 4007 | + if( empty( $attrKVarr[0] )) |
|
| 4009 | 4008 | continue; |
| 4010 | - if( !isset( $attrKVarr[1] )) { |
|
| 4009 | + if( !isset( $attrKVarr[1] )) { |
|
| 4011 | 4010 | $attrValue = $attrKVarr[0]; |
| 4012 | 4011 | $attrKey = null; |
| 4013 | - } |
|
| 4014 | - elseif( 2 == count( $attrKVarr)) { |
|
| 4012 | + } |
|
| 4013 | + elseif( 2 == count( $attrKVarr)) { |
|
| 4015 | 4014 | $attrKey = strtolower( $attrKVarr[0] ); |
| 4016 | 4015 | $attrValue = $attrKVarr[1]; |
| 4017 | - } |
|
| 4018 | - else { |
|
| 4016 | + } |
|
| 4017 | + else { |
|
| 4019 | 4018 | $attrKey = strtolower( $attrKVarr[0] ); |
| 4020 | 4019 | unset( $attrKVarr[0] ); |
| 4021 | 4020 | $attrValue = implode( '=', $attrKVarr ); |
| 4022 | - } |
|
| 4023 | - if(( 'attach' == $label ) && ( in_array( $attrKey, array( 'fmttype', 'encoding', 'value' )))) { |
|
| 4021 | + } |
|
| 4022 | + if(( 'attach' == $label ) && ( in_array( $attrKey, array( 'fmttype', 'encoding', 'value' )))) { |
|
| 4024 | 4023 | $attachInlineBinary = TRUE; |
| 4025 | 4024 | if( 'fmttype' == $attrKey ) |
| 4026 | - $attachfmttype = $attrKey.'='.$attrValue; |
|
| 4025 | + $attachfmttype = $attrKey.'='.$attrValue; |
|
| 4027 | 4026 | continue; |
| 4028 | - } |
|
| 4029 | - elseif(( 'categories' == $label ) && ( 'language' == $attrKey )) |
|
| 4027 | + } |
|
| 4028 | + elseif(( 'categories' == $label ) && ( 'language' == $attrKey )) |
|
| 4030 | 4029 | $categoriesAttrLang = $attrKey.'='.$attrValue; |
| 4031 | - else { |
|
| 4030 | + else { |
|
| 4032 | 4031 | $attributes .= ( empty( $attributes )) ? ' ' : $this->attributeDelimiter.' '; |
| 4033 | 4032 | $attributes .= ( !empty( $attrKey )) ? $attrKey.'=' : null; |
| 4034 | 4033 | if(( '"' == substr( $attrValue, 0, 1 )) && ( '"' == substr( $attrValue, -1 ))) { |
| 4035 | - $attrValue = substr( $attrValue, 1, ( strlen( $attrValue ) - 2 )); |
|
| 4036 | - $attrValue = str_replace( '"', '', $attrValue ); |
|
| 4034 | + $attrValue = substr( $attrValue, 1, ( strlen( $attrValue ) - 2 )); |
|
| 4035 | + $attrValue = str_replace( '"', '', $attrValue ); |
|
| 4037 | 4036 | } |
| 4038 | 4037 | $attributes .= '"'.htmlspecialchars( $attrValue ).'"'; |
| 4039 | - } |
|
| 4038 | + } |
|
| 4039 | + } |
|
| 4040 | 4040 | } |
| 4041 | - } |
|
| 4042 | - else { |
|
| 4041 | + else { |
|
| 4043 | 4042 | $attributes = str_replace( $this->intAttrDelimiter, $this->attributeDelimiter, $attributes ); |
| 4044 | - } |
|
| 4043 | + } |
|
| 4045 | 4044 | } |
| 4046 | 4045 | if(((( 'attach' == $label ) && !$attachInlineBinary ) || |
| 4047 | 4046 | ( in_array( $label, array( 'tzurl', 'url' )))) && ( 'xcal' == $this->format)) { |
| 4048 | - $pos = strrpos($content, "/"); |
|
| 4049 | - $docname = ( $pos !== false) ? substr( $content, (1 - strlen( $content ) + $pos )) : $content; |
|
| 4050 | - $this->xcaldecl[] = array( 'xmldecl' => 'ENTITY' |
|
| 4051 | - , 'uri' => $docname |
|
| 4052 | - , 'ref' => 'SYSTEM' |
|
| 4053 | - , 'external' => $content |
|
| 4054 | - , 'type' => 'NDATA' |
|
| 4055 | - , 'type2' => 'BINERY' ); |
|
| 4056 | - $attributes .= ( empty( $attributes )) ? ' ' : $this->attributeDelimiter.' '; |
|
| 4057 | - $attributes .= 'uri="'.$docname.'"'; |
|
| 4058 | - $content = null; |
|
| 4059 | - if( 'attach' == $label ) { |
|
| 4047 | + $pos = strrpos($content, "/"); |
|
| 4048 | + $docname = ( $pos !== false) ? substr( $content, (1 - strlen( $content ) + $pos )) : $content; |
|
| 4049 | + $this->xcaldecl[] = array( 'xmldecl' => 'ENTITY' |
|
| 4050 | + , 'uri' => $docname |
|
| 4051 | + , 'ref' => 'SYSTEM' |
|
| 4052 | + , 'external' => $content |
|
| 4053 | + , 'type' => 'NDATA' |
|
| 4054 | + , 'type2' => 'BINERY' ); |
|
| 4055 | + $attributes .= ( empty( $attributes )) ? ' ' : $this->attributeDelimiter.' '; |
|
| 4056 | + $attributes .= 'uri="'.$docname.'"'; |
|
| 4057 | + $content = null; |
|
| 4058 | + if( 'attach' == $label ) { |
|
| 4060 | 4059 | $attributes = str_replace( $this->attributeDelimiter, $this->intAttrDelimiter, $attributes ); |
| 4061 | 4060 | $content = $this->_createElement( 'extref', $attributes, null ); |
| 4062 | 4061 | $attributes = null; |
| 4063 | - } |
|
| 4062 | + } |
|
| 4064 | 4063 | } |
| 4065 | 4064 | elseif(( 'attach' == $label ) && $attachInlineBinary && ( 'xcal' == $this->format)) { |
| 4066 | - $content = $this->nl.$this->_createElement( 'b64bin', $attachfmttype, $content ); // max one attribute |
|
| 4065 | + $content = $this->nl.$this->_createElement( 'b64bin', $attachfmttype, $content ); // max one attribute |
|
| 4067 | 4066 | } |
| 4068 | 4067 | $output .= $attributes; |
| 4069 | 4068 | if( !$content ) { |
| 4070 | - switch( $this->format ) { |
|
| 4069 | + switch( $this->format ) { |
|
| 4071 | 4070 | case 'xcal': |
| 4072 | 4071 | $output .= ' /'; |
| 4073 | - $output .= $this->elementStart2; |
|
| 4074 | - return $output; |
|
| 4075 | - break; |
|
| 4072 | + $output .= $this->elementStart2; |
|
| 4073 | + return $output; |
|
| 4074 | + break; |
|
| 4076 | 4075 | default: |
| 4077 | 4076 | $output .= $this->elementStart2.$this->valueInit; |
| 4078 | - return $this->_size75( $output ); |
|
| 4079 | - break; |
|
| 4080 | - } |
|
| 4077 | + return $this->_size75( $output ); |
|
| 4078 | + break; |
|
| 4079 | + } |
|
| 4081 | 4080 | } |
| 4082 | 4081 | $output .= $this->elementStart2; |
| 4083 | 4082 | $output .= $this->valueInit.$content; |
| 4084 | 4083 | switch( $this->format ) { |
| 4085 | - case 'xcal': |
|
| 4084 | + case 'xcal': |
|
| 4086 | 4085 | return $output.$this->elementEnd1.$label.$this->elementEnd2; |
| 4087 | 4086 | break; |
| 4088 | - default: |
|
| 4087 | + default: |
|
| 4089 | 4088 | return $this->_size75( $output ); |
| 4090 | 4089 | break; |
| 4091 | 4090 | } |
| 4092 | - } |
|
| 4091 | + } |
|
| 4093 | 4092 | /** |
| 4094 | - * creates formatted output for calendar component property parameters |
|
| 4095 | - * |
|
| 4096 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4097 | - * @since 0.9.22 - 2007-04-10 |
|
| 4098 | - * @param array $params optional |
|
| 4099 | - * @param array $ctrKeys optional |
|
| 4100 | - * @return string |
|
| 4101 | - */ |
|
| 4102 | - function _createParams( $params=array(), $ctrKeys=array() ) { |
|
| 4093 | + * creates formatted output for calendar component property parameters |
|
| 4094 | + * |
|
| 4095 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4096 | + * @since 0.9.22 - 2007-04-10 |
|
| 4097 | + * @param array $params optional |
|
| 4098 | + * @param array $ctrKeys optional |
|
| 4099 | + * @return string |
|
| 4100 | + */ |
|
| 4101 | + function _createParams( $params=array(), $ctrKeys=array() ) { |
|
| 4103 | 4102 | $attrLANG = $attr1 = $attr2 = null; |
| 4104 | 4103 | $CNattrKey = ( in_array( 'CN', $ctrKeys )) ? TRUE : FALSE ; |
| 4105 | 4104 | $LANGattrKey = ( in_array( 'LANGUAGE', $ctrKeys )) ? TRUE : FALSE ; |
| 4106 | 4105 | $CNattrExist = $LANGattrExist = FALSE; |
| 4107 | 4106 | if( is_array( $params )) { |
| 4108 | - foreach( $params as $paramKey => $paramValue ) { |
|
| 4107 | + foreach( $params as $paramKey => $paramValue ) { |
|
| 4109 | 4108 | if( is_int( $paramKey )) |
| 4110 | - $attr2 .= $this->intAttrDelimiter.$paramValue; |
|
| 4109 | + $attr2 .= $this->intAttrDelimiter.$paramValue; |
|
| 4111 | 4110 | elseif(( 'LANGUAGE' == $paramKey ) && $LANGattrKey ) { |
| 4112 | - $attrLANG .= $this->intAttrDelimiter."LANGUAGE=$paramValue"; |
|
| 4113 | - $LANGattrExist = TRUE; |
|
| 4111 | + $attrLANG .= $this->intAttrDelimiter."LANGUAGE=$paramValue"; |
|
| 4112 | + $LANGattrExist = TRUE; |
|
| 4114 | 4113 | } |
| 4115 | 4114 | elseif(( 'CN' == $paramKey ) && $CNattrKey ) { |
| 4116 | - $attr1 = $this->intAttrDelimiter.'CN="'.$paramValue.'"'; |
|
| 4117 | - $CNattrExist = TRUE; |
|
| 4115 | + $attr1 = $this->intAttrDelimiter.'CN="'.$paramValue.'"'; |
|
| 4116 | + $CNattrExist = TRUE; |
|
| 4118 | 4117 | } |
| 4119 | 4118 | elseif(( 'ALTREP' == $paramKey ) && in_array( $paramKey, $ctrKeys )) |
| 4120 | - $attr2 .= $this->intAttrDelimiter.'ALTREP="'.$paramValue.'"'; |
|
| 4119 | + $attr2 .= $this->intAttrDelimiter.'ALTREP="'.$paramValue.'"'; |
|
| 4121 | 4120 | elseif(( 'DIR' == $paramKey ) && in_array( $paramKey, $ctrKeys )) |
| 4122 | - $attr2 .= $this->intAttrDelimiter.'DIR="'.$paramValue.'"'; |
|
| 4121 | + $attr2 .= $this->intAttrDelimiter.'DIR="'.$paramValue.'"'; |
|
| 4123 | 4122 | elseif(( 'SENT-BY' == $paramKey ) && in_array( $paramKey, $ctrKeys )) |
| 4124 | - $attr2 .= $this->intAttrDelimiter.'SENT-BY="MAILTO:'.$paramValue.'"'; |
|
| 4123 | + $attr2 .= $this->intAttrDelimiter.'SENT-BY="MAILTO:'.$paramValue.'"'; |
|
| 4125 | 4124 | else |
| 4126 | - $attr2 .= $this->intAttrDelimiter."$paramKey=$paramValue"; |
|
| 4127 | - } |
|
| 4125 | + $attr2 .= $this->intAttrDelimiter."$paramKey=$paramValue"; |
|
| 4126 | + } |
|
| 4128 | 4127 | } |
| 4129 | 4128 | if( !$LANGattrExist ) { |
| 4130 | - $lang = $this->getConfig( 'language' ); |
|
| 4131 | - if(( $CNattrExist || $LANGattrKey ) && $lang ) |
|
| 4129 | + $lang = $this->getConfig( 'language' ); |
|
| 4130 | + if(( $CNattrExist || $LANGattrKey ) && $lang ) |
|
| 4132 | 4131 | $attrLANG .= $this->intAttrDelimiter.'LANGUAGE='.$lang; |
| 4133 | 4132 | } |
| 4134 | 4133 | return $attrLANG.$attr1.$attr2; |
| 4135 | - } |
|
| 4134 | + } |
|
| 4136 | 4135 | /** |
| 4137 | - * check a date(-time) for an opt. timezone and if it is a DATE-TIME or DATE |
|
| 4138 | - * |
|
| 4139 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4140 | - * @since 2.4.16 - 2008-10-25 |
|
| 4141 | - * @param array $date, date to check |
|
| 4142 | - * @param int $parno, no of date parts (i.e. year, month.. .) |
|
| 4143 | - * @return array $params, property parameters |
|
| 4144 | - */ |
|
| 4145 | - function _chkdatecfg( $theDate, & $parno, & $params ) { |
|
| 4136 | + * check a date(-time) for an opt. timezone and if it is a DATE-TIME or DATE |
|
| 4137 | + * |
|
| 4138 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4139 | + * @since 2.4.16 - 2008-10-25 |
|
| 4140 | + * @param array $date, date to check |
|
| 4141 | + * @param int $parno, no of date parts (i.e. year, month.. .) |
|
| 4142 | + * @return array $params, property parameters |
|
| 4143 | + */ |
|
| 4144 | + function _chkdatecfg( $theDate, & $parno, & $params ) { |
|
| 4146 | 4145 | if( isset( $params['TZID'] )) |
| 4147 | - $parno = 6; |
|
| 4146 | + $parno = 6; |
|
| 4148 | 4147 | elseif( isset( $params['VALUE'] ) && ( 'DATE' == $params['VALUE'] )) |
| 4149 | - $parno = 3; |
|
| 4148 | + $parno = 3; |
|
| 4150 | 4149 | else { |
| 4151 | - if( isset( $params['VALUE'] ) && ( 'PERIOD' == $params['VALUE'] )) |
|
| 4150 | + if( isset( $params['VALUE'] ) && ( 'PERIOD' == $params['VALUE'] )) |
|
| 4152 | 4151 | $parno = 7; |
| 4153 | - if( is_array( $theDate )) { |
|
| 4152 | + if( is_array( $theDate )) { |
|
| 4154 | 4153 | if( isset( $theDate['timestamp'] )) |
| 4155 | - $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : null; |
|
| 4154 | + $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : null; |
|
| 4156 | 4155 | else |
| 4157 | - $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : ( 7 == count( $theDate )) ? end( $theDate ) : null; |
|
| 4156 | + $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : ( 7 == count( $theDate )) ? end( $theDate ) : null; |
|
| 4158 | 4157 | if( !empty( $tzid )) { |
| 4159 | - $parno = 7; |
|
| 4160 | - if( !$this->_isOffset( $tzid )) |
|
| 4158 | + $parno = 7; |
|
| 4159 | + if( !$this->_isOffset( $tzid )) |
|
| 4161 | 4160 | $params['TZID'] = $tzid; // save only timezone |
| 4162 | 4161 | } |
| 4163 | 4162 | elseif( !$parno && ( 3 == count( $theDate )) && |
| 4164 | 4163 | ( isset( $params['VALUE'] ) && ( 'DATE' == $params['VALUE'] ))) |
| 4165 | - $parno = 3; |
|
| 4164 | + $parno = 3; |
|
| 4166 | 4165 | else |
| 4167 | - $parno = 6; |
|
| 4168 | - } |
|
| 4169 | - else { // string |
|
| 4166 | + $parno = 6; |
|
| 4167 | + } |
|
| 4168 | + else { // string |
|
| 4170 | 4169 | $date = trim( $theDate ); |
| 4171 | 4170 | if( 'Z' == substr( $date, -1 )) |
| 4172 | - $parno = 7; // UTC DATE-TIME |
|
| 4171 | + $parno = 7; // UTC DATE-TIME |
|
| 4173 | 4172 | elseif((( 8 == strlen( $date ) && ctype_digit( $date )) || ( 11 >= strlen( $date ))) && |
| 4174 | 4173 | ( !isset( $params['VALUE'] ) || !in_array( $params['VALUE'], array( 'DATE-TIME', 'PERIOD' )))) |
| 4175 | - $parno = 3; // DATE |
|
| 4174 | + $parno = 3; // DATE |
|
| 4176 | 4175 | $date = $this->_date_time_string( $date, $parno ); |
| 4177 | 4176 | if( !empty( $date['tz'] )) { |
| 4178 | - $parno = 7; |
|
| 4179 | - if( !$this->_isOffset( $date['tz'] )) |
|
| 4177 | + $parno = 7; |
|
| 4178 | + if( !$this->_isOffset( $date['tz'] )) |
|
| 4180 | 4179 | $params['TZID'] = $date['tz']; // save only timezone |
| 4181 | 4180 | } |
| 4182 | 4181 | elseif( empty( $parno )) |
| 4183 | - $parno = 6; |
|
| 4184 | - } |
|
| 4185 | - if( isset( $params['TZID'] )) |
|
| 4182 | + $parno = 6; |
|
| 4183 | + } |
|
| 4184 | + if( isset( $params['TZID'] )) |
|
| 4186 | 4185 | $parno = 6; |
| 4187 | 4186 | } |
| 4188 | - } |
|
| 4187 | + } |
|
| 4189 | 4188 | /** |
| 4190 | - * convert local startdate/enddate (Ymd[His]) to duration |
|
| 4191 | - * |
|
| 4192 | - * uses this component dates if missing input dates |
|
| 4193 | - * |
|
| 4194 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4195 | - * @since 2.2.11 - 2007-11-03 |
|
| 4196 | - * @param array $startdate, optional |
|
| 4197 | - * @param array $duration, optional |
|
| 4198 | - * @return array duration |
|
| 4199 | - */ |
|
| 4200 | - function _date2duration( $startdate=FALSE, $enddate=FALSE ) { |
|
| 4189 | + * convert local startdate/enddate (Ymd[His]) to duration |
|
| 4190 | + * |
|
| 4191 | + * uses this component dates if missing input dates |
|
| 4192 | + * |
|
| 4193 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4194 | + * @since 2.2.11 - 2007-11-03 |
|
| 4195 | + * @param array $startdate, optional |
|
| 4196 | + * @param array $duration, optional |
|
| 4197 | + * @return array duration |
|
| 4198 | + */ |
|
| 4199 | + function _date2duration( $startdate=FALSE, $enddate=FALSE ) { |
|
| 4201 | 4200 | if( !$startdate || !$enddate ) { |
| 4202 | - if( FALSE === ( $startdate = $this->getProperty( 'dtstart' ))) |
|
| 4201 | + if( FALSE === ( $startdate = $this->getProperty( 'dtstart' ))) |
|
| 4203 | 4202 | return null; |
| 4204 | - if( FALSE === ( $enddate = $this->getProperty( 'dtend' ))) // vevent/vfreebusy |
|
| 4203 | + if( FALSE === ( $enddate = $this->getProperty( 'dtend' ))) // vevent/vfreebusy |
|
| 4205 | 4204 | if( FALSE === ( $enddate = $this->getProperty( 'due' ))) // vtodo |
| 4206 | - return null; |
|
| 4205 | + return null; |
|
| 4207 | 4206 | } |
| 4208 | 4207 | if( !$startdate || !$enddate ) |
| 4209 | - return null; |
|
| 4208 | + return null; |
|
| 4210 | 4209 | $startWdate = mktime( 0, 0, 0, $startdate['month'], $startdate['day'], $startdate['year'] ); |
| 4211 | 4210 | $endWdate = mktime( 0, 0, 0, $enddate['month'], $enddate['day'], $enddate['year'] ); |
| 4212 | 4211 | $wduration = $endWdate - $startWdate; |
@@ -4220,137 +4219,137 @@ discard block |
||
| 4220 | 4219 | $dur['min'] = (int) floor( $wduration / ( 60 )); |
| 4221 | 4220 | $dur['sec'] = (int) $wduration % ( 60 ); |
| 4222 | 4221 | return $dur; |
| 4223 | - } |
|
| 4222 | + } |
|
| 4224 | 4223 | /** |
| 4225 | - * convert date/datetime to timestamp |
|
| 4226 | - * |
|
| 4227 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4228 | - * @since 2.4.8 - 2008-10-30 |
|
| 4229 | - * @param array $datetime datetime/(date) |
|
| 4230 | - * @param string $tz timezone |
|
| 4231 | - * @return timestamp |
|
| 4232 | - */ |
|
| 4233 | - function _date2timestamp( $datetime, $tz=null ) { |
|
| 4224 | + * convert date/datetime to timestamp |
|
| 4225 | + * |
|
| 4226 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4227 | + * @since 2.4.8 - 2008-10-30 |
|
| 4228 | + * @param array $datetime datetime/(date) |
|
| 4229 | + * @param string $tz timezone |
|
| 4230 | + * @return timestamp |
|
| 4231 | + */ |
|
| 4232 | + function _date2timestamp( $datetime, $tz=null ) { |
|
| 4234 | 4233 | $output = null; |
| 4235 | 4234 | if( !isset( $datetime['hour'] )) $datetime['hour'] = '0'; |
| 4236 | 4235 | if( !isset( $datetime['min'] )) $datetime['min'] = '0'; |
| 4237 | 4236 | if( !isset( $datetime['sec'] )) $datetime['sec'] = '0'; |
| 4238 | 4237 | foreach( $datetime as $dkey => $dvalue ) { |
| 4239 | - if( 'tz' != $dkey ) |
|
| 4238 | + if( 'tz' != $dkey ) |
|
| 4240 | 4239 | $datetime[$dkey] = (integer) $dvalue; |
| 4241 | 4240 | } |
| 4242 | 4241 | if( $tz ) |
| 4243 | - $datetime['tz'] = $tz; |
|
| 4242 | + $datetime['tz'] = $tz; |
|
| 4244 | 4243 | $offset = ( isset( $datetime['tz'] ) && ( '' < trim ( $datetime['tz'] ))) ? $this->_tz2offset( $datetime['tz'] ) : 0; |
| 4245 | 4244 | $output = mktime( $datetime['hour'], $datetime['min'], ($datetime['sec'] + $offset), $datetime['month'], $datetime['day'], $datetime['year'] ); |
| 4246 | 4245 | return $output; |
| 4247 | - } |
|
| 4246 | + } |
|
| 4248 | 4247 | /** |
| 4249 | - * ensures internal date-time/date format for input date-time/date in array format |
|
| 4250 | - * |
|
| 4251 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4252 | - * @since 0.3.0 - 2006-08-15 |
|
| 4253 | - * @param array $datetime |
|
| 4254 | - * @param int $parno optional, default FALSE |
|
| 4255 | - * @return array |
|
| 4256 | - */ |
|
| 4257 | - function _date_time_array( $datetime, $parno=FALSE ) { |
|
| 4248 | + * ensures internal date-time/date format for input date-time/date in array format |
|
| 4249 | + * |
|
| 4250 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4251 | + * @since 0.3.0 - 2006-08-15 |
|
| 4252 | + * @param array $datetime |
|
| 4253 | + * @param int $parno optional, default FALSE |
|
| 4254 | + * @return array |
|
| 4255 | + */ |
|
| 4256 | + function _date_time_array( $datetime, $parno=FALSE ) { |
|
| 4258 | 4257 | $output = array(); |
| 4259 | 4258 | foreach( $datetime as $dateKey => $datePart ) { |
| 4260 | - switch ( $dateKey ) { |
|
| 4259 | + switch ( $dateKey ) { |
|
| 4261 | 4260 | case '0': case 'year': $output['year'] = $datePart; break; |
| 4262 | 4261 | case '1': case 'month': $output['month'] = $datePart; break; |
| 4263 | 4262 | case '2': case 'day': $output['day'] = $datePart; break; |
| 4264 | - } |
|
| 4265 | - if( 3 != $parno ) { |
|
| 4263 | + } |
|
| 4264 | + if( 3 != $parno ) { |
|
| 4266 | 4265 | switch ( $dateKey ) { |
| 4267 | - case '0': |
|
| 4266 | + case '0': |
|
| 4268 | 4267 | case '1': |
| 4269 | 4268 | case '2': break; |
| 4270 | - case '3': case 'hour': $output['hour'] = $datePart; break; |
|
| 4271 | - case '4': case 'min' : $output['min'] = $datePart; break; |
|
| 4272 | - case '5': case 'sec' : $output['sec'] = $datePart; break; |
|
| 4273 | - case '6': case 'tz' : $output['tz'] = $datePart; break; |
|
| 4269 | + case '3': case 'hour': $output['hour'] = $datePart; break; |
|
| 4270 | + case '4': case 'min' : $output['min'] = $datePart; break; |
|
| 4271 | + case '5': case 'sec' : $output['sec'] = $datePart; break; |
|
| 4272 | + case '6': case 'tz' : $output['tz'] = $datePart; break; |
|
| 4273 | + } |
|
| 4274 | 4274 | } |
| 4275 | - } |
|
| 4276 | 4275 | } |
| 4277 | 4276 | if( 3 != $parno ) { |
| 4278 | - if( !isset( $output['hour'] )) |
|
| 4277 | + if( !isset( $output['hour'] )) |
|
| 4279 | 4278 | $output['hour'] = 0; |
| 4280 | - if( !isset( $output['min'] )) |
|
| 4279 | + if( !isset( $output['min'] )) |
|
| 4281 | 4280 | $output['min'] = 0; |
| 4282 | - if( !isset( $output['sec'] )) |
|
| 4281 | + if( !isset( $output['sec'] )) |
|
| 4283 | 4282 | $output['sec'] = 0; |
| 4284 | 4283 | } |
| 4285 | 4284 | return $output; |
| 4286 | - } |
|
| 4285 | + } |
|
| 4287 | 4286 | /** |
| 4288 | - * ensures internal date-time/date format for input date-time/date in string fromat |
|
| 4289 | - * |
|
| 4290 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4291 | - * @since 2.2.10 - 2007-10-19 |
|
| 4292 | - * @param array $datetime |
|
| 4293 | - * @param int $parno optional, default FALSE |
|
| 4294 | - * @return array |
|
| 4295 | - */ |
|
| 4296 | - function _date_time_string( $datetime, $parno=FALSE ) { |
|
| 4287 | + * ensures internal date-time/date format for input date-time/date in string fromat |
|
| 4288 | + * |
|
| 4289 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4290 | + * @since 2.2.10 - 2007-10-19 |
|
| 4291 | + * @param array $datetime |
|
| 4292 | + * @param int $parno optional, default FALSE |
|
| 4293 | + * @return array |
|
| 4294 | + */ |
|
| 4295 | + function _date_time_string( $datetime, $parno=FALSE ) { |
|
| 4297 | 4296 | $datetime = (string) trim( $datetime ); |
| 4298 | 4297 | $tz = null; |
| 4299 | 4298 | $len = strlen( $datetime ) - 1; |
| 4300 | 4299 | if( 'Z' == substr( $datetime, -1 )) { |
| 4301 | - $tz = 'Z'; |
|
| 4302 | - $datetime = trim( substr( $datetime, 0, $len )); |
|
| 4300 | + $tz = 'Z'; |
|
| 4301 | + $datetime = trim( substr( $datetime, 0, $len )); |
|
| 4303 | 4302 | } |
| 4304 | 4303 | elseif( ( ctype_digit( substr( $datetime, -2, 2 ))) && // time or date |
| 4305 | 4304 | ( '-' == substr( $datetime, -3, 1 )) || |
| 4306 | 4305 | ( ':' == substr( $datetime, -3, 1 )) || |
| 4307 | 4306 | ( '.' == substr( $datetime, -3, 1 ))) { |
| 4308 | - $continue = TRUE; |
|
| 4307 | + $continue = TRUE; |
|
| 4309 | 4308 | } |
| 4310 | 4309 | elseif( ( ctype_digit( substr( $datetime, -4, 4 ))) && // 4 pos offset |
| 4311 | 4310 | ( ' +' == substr( $datetime, -6, 2 )) || |
| 4312 | 4311 | ( ' -' == substr( $datetime, -6, 2 ))) { |
| 4313 | - $tz = substr( $datetime, -5, 5 ); |
|
| 4314 | - $datetime = substr( $datetime, 0, ($len - 5)); |
|
| 4312 | + $tz = substr( $datetime, -5, 5 ); |
|
| 4313 | + $datetime = substr( $datetime, 0, ($len - 5)); |
|
| 4315 | 4314 | } |
| 4316 | 4315 | elseif( ( ctype_digit( substr( $datetime, -6, 6 ))) && // 6 pos offset |
| 4317 | 4316 | ( ' +' == substr( $datetime, -8, 2 )) || |
| 4318 | 4317 | ( ' -' == substr( $datetime, -8, 2 ))) { |
| 4319 | - $tz = substr( $datetime, -7, 7 ); |
|
| 4320 | - $datetime = substr( $datetime, 0, ($len - 7)); |
|
| 4318 | + $tz = substr( $datetime, -7, 7 ); |
|
| 4319 | + $datetime = substr( $datetime, 0, ($len - 7)); |
|
| 4321 | 4320 | } |
| 4322 | 4321 | elseif( ( 6 < $len ) && ( ctype_digit( substr( $datetime, -6, 6 )))) { |
| 4323 | - $continue = TRUE; |
|
| 4322 | + $continue = TRUE; |
|
| 4324 | 4323 | } |
| 4325 | 4324 | elseif( 'T' == substr( $datetime, -7, 1 )) { |
| 4326 | - $continue = TRUE; |
|
| 4325 | + $continue = TRUE; |
|
| 4327 | 4326 | } |
| 4328 | 4327 | else { |
| 4329 | - $cx = $tx = 0; // 19970415T133000 US-Eastern |
|
| 4330 | - for( $cx = -1; $cx > ( 9 - $len ); $cx-- ) { |
|
| 4328 | + $cx = $tx = 0; // 19970415T133000 US-Eastern |
|
| 4329 | + for( $cx = -1; $cx > ( 9 - $len ); $cx-- ) { |
|
| 4331 | 4330 | if(( ' ' == substr( $datetime, $cx, 1 )) || ctype_digit( substr( $datetime, $cx, 1 ))) |
| 4332 | - break; // if exists, tz ends here.. . ? |
|
| 4331 | + break; // if exists, tz ends here.. . ? |
|
| 4333 | 4332 | elseif( ctype_alpha( substr( $datetime, $cx, 1 )) || |
| 4334 | 4333 | ( in_array( substr( $datetime, $cx, 1 ), array( '-', '/' )))) |
| 4335 | - $tx--; // tz length counter |
|
| 4336 | - } |
|
| 4337 | - if( 0 > $tx ) { |
|
| 4334 | + $tx--; // tz length counter |
|
| 4335 | + } |
|
| 4336 | + if( 0 > $tx ) { |
|
| 4338 | 4337 | $tz = substr( $datetime, $tx ); |
| 4339 | 4338 | $datetime = trim( substr( $datetime, 0, $len + $tx + 1 )); |
| 4340 | - } |
|
| 4339 | + } |
|
| 4341 | 4340 | } |
| 4342 | 4341 | if( 0 < substr_count( $datetime, '-' )) { |
| 4343 | - $datetime = str_replace( '-', '/', $datetime ); |
|
| 4342 | + $datetime = str_replace( '-', '/', $datetime ); |
|
| 4344 | 4343 | } |
| 4345 | 4344 | elseif( ctype_digit( substr( $datetime, 0, 8 )) && |
| 4346 | 4345 | ( 'T' == substr( $datetime, 8, 1 )) && |
| 4347 | 4346 | ctype_digit( substr( $datetime, 9, 6 ))) { |
| 4348 | - $datetime = substr( $datetime, 4, 2 ) |
|
| 4349 | - .'/'.substr( $datetime, 6, 2 ) |
|
| 4350 | - .'/'.substr( $datetime, 0, 4 ) |
|
| 4351 | - .' '.substr( $datetime, 9, 2 ) |
|
| 4352 | - .':'.substr( $datetime, 11, 2 ) |
|
| 4353 | - .':'.substr( $datetime, 13); |
|
| 4347 | + $datetime = substr( $datetime, 4, 2 ) |
|
| 4348 | + .'/'.substr( $datetime, 6, 2 ) |
|
| 4349 | + .'/'.substr( $datetime, 0, 4 ) |
|
| 4350 | + .' '.substr( $datetime, 9, 2 ) |
|
| 4351 | + .':'.substr( $datetime, 11, 2 ) |
|
| 4352 | + .':'.substr( $datetime, 13); |
|
| 4354 | 4353 | } |
| 4355 | 4354 | $datestring = date( 'Y-m-d H:i:s', strtotime( $datetime )); |
| 4356 | 4355 | $tz = trim( $tz ); |
@@ -4359,112 +4358,112 @@ discard block |
||
| 4359 | 4358 | $output['month'] = substr( $datestring, 5, 2 ); |
| 4360 | 4359 | $output['day'] = substr( $datestring, 8, 2 ); |
| 4361 | 4360 | if(( 6 == $parno ) || ( 7 == $parno )) { |
| 4362 | - $output['hour'] = substr( $datestring, 11, 2 ); |
|
| 4363 | - $output['min'] = substr( $datestring, 14, 2 ); |
|
| 4364 | - $output['sec'] = substr( $datestring, 17, 2 ); |
|
| 4365 | - if( !empty( $tz )) |
|
| 4361 | + $output['hour'] = substr( $datestring, 11, 2 ); |
|
| 4362 | + $output['min'] = substr( $datestring, 14, 2 ); |
|
| 4363 | + $output['sec'] = substr( $datestring, 17, 2 ); |
|
| 4364 | + if( !empty( $tz )) |
|
| 4366 | 4365 | $output['tz'] = $tz; |
| 4367 | 4366 | } |
| 4368 | 4367 | elseif( 3 != $parno ) { |
| 4369 | - if(( '00' < substr( $datestring, 11, 2 )) || |
|
| 4368 | + if(( '00' < substr( $datestring, 11, 2 )) || |
|
| 4370 | 4369 | ( '00' < substr( $datestring, 14, 2 )) || |
| 4371 | 4370 | ( '00' < substr( $datestring, 17, 2 ))) { |
| 4372 | 4371 | $output['hour'] = substr( $datestring, 11, 2 ); |
| 4373 | 4372 | $output['min'] = substr( $datestring, 14, 2 ); |
| 4374 | 4373 | $output['sec'] = substr( $datestring, 17, 2 ); |
| 4375 | - } |
|
| 4376 | - if( !empty( $tz )) |
|
| 4374 | + } |
|
| 4375 | + if( !empty( $tz )) |
|
| 4377 | 4376 | $output['tz'] = $tz; |
| 4378 | 4377 | } |
| 4379 | 4378 | return $output; |
| 4380 | - } |
|
| 4379 | + } |
|
| 4381 | 4380 | /** |
| 4382 | - * ensures internal duration format for input in array format |
|
| 4383 | - * |
|
| 4384 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4385 | - * @since 2.1.1 - 2007-06-24 |
|
| 4386 | - * @param array $duration |
|
| 4387 | - * @return array |
|
| 4388 | - */ |
|
| 4389 | - function _duration_array( $duration ) { |
|
| 4381 | + * ensures internal duration format for input in array format |
|
| 4382 | + * |
|
| 4383 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4384 | + * @since 2.1.1 - 2007-06-24 |
|
| 4385 | + * @param array $duration |
|
| 4386 | + * @return array |
|
| 4387 | + */ |
|
| 4388 | + function _duration_array( $duration ) { |
|
| 4390 | 4389 | $output = array(); |
| 4391 | 4390 | if( is_array( $duration ) && |
| 4392 | 4391 | ( 1 == count( $duration )) && |
| 4393 | 4392 | isset( $duration['sec'] ) && |
| 4394 | 4393 | ( 60 < $duration['sec'] )) { |
| 4395 | - $durseconds = $duration['sec']; |
|
| 4396 | - $output['week'] = floor( $durseconds / ( 60 * 60 * 24 * 7 )); |
|
| 4397 | - $durseconds = $durseconds % ( 60 * 60 * 24 * 7 ); |
|
| 4398 | - $output['day'] = floor( $durseconds / ( 60 * 60 * 24 )); |
|
| 4399 | - $durseconds = $durseconds % ( 60 * 60 * 24 ); |
|
| 4400 | - $output['hour'] = floor( $durseconds / ( 60 * 60 )); |
|
| 4401 | - $durseconds = $durseconds % ( 60 * 60 ); |
|
| 4402 | - $output['min'] = floor( $durseconds / ( 60 )); |
|
| 4403 | - $output['sec'] = ( $durseconds % ( 60 )); |
|
| 4394 | + $durseconds = $duration['sec']; |
|
| 4395 | + $output['week'] = floor( $durseconds / ( 60 * 60 * 24 * 7 )); |
|
| 4396 | + $durseconds = $durseconds % ( 60 * 60 * 24 * 7 ); |
|
| 4397 | + $output['day'] = floor( $durseconds / ( 60 * 60 * 24 )); |
|
| 4398 | + $durseconds = $durseconds % ( 60 * 60 * 24 ); |
|
| 4399 | + $output['hour'] = floor( $durseconds / ( 60 * 60 )); |
|
| 4400 | + $durseconds = $durseconds % ( 60 * 60 ); |
|
| 4401 | + $output['min'] = floor( $durseconds / ( 60 )); |
|
| 4402 | + $output['sec'] = ( $durseconds % ( 60 )); |
|
| 4404 | 4403 | } |
| 4405 | 4404 | else { |
| 4406 | - foreach( $duration as $durKey => $durValue ) { |
|
| 4405 | + foreach( $duration as $durKey => $durValue ) { |
|
| 4407 | 4406 | if( empty( $durValue )) continue; |
| 4408 | 4407 | switch ( $durKey ) { |
| 4409 | - case '0': case 'week': $output['week'] = $durValue; break; |
|
| 4410 | - case '1': case 'day': $output['day'] = $durValue; break; |
|
| 4411 | - case '2': case 'hour': $output['hour'] = $durValue; break; |
|
| 4412 | - case '3': case 'min': $output['min'] = $durValue; break; |
|
| 4413 | - case '4': case 'sec': $output['sec'] = $durValue; break; |
|
| 4408 | + case '0': case 'week': $output['week'] = $durValue; break; |
|
| 4409 | + case '1': case 'day': $output['day'] = $durValue; break; |
|
| 4410 | + case '2': case 'hour': $output['hour'] = $durValue; break; |
|
| 4411 | + case '3': case 'min': $output['min'] = $durValue; break; |
|
| 4412 | + case '4': case 'sec': $output['sec'] = $durValue; break; |
|
| 4413 | + } |
|
| 4414 | 4414 | } |
| 4415 | - } |
|
| 4416 | 4415 | } |
| 4417 | 4416 | if( isset( $output['week'] ) && ( 0 < $output['week'] )) { |
| 4418 | - unset( $output['day'], $output['hour'], $output['min'], $output['sec'] ); |
|
| 4419 | - return $output; |
|
| 4417 | + unset( $output['day'], $output['hour'], $output['min'], $output['sec'] ); |
|
| 4418 | + return $output; |
|
| 4420 | 4419 | } |
| 4421 | 4420 | unset( $output['week'] ); |
| 4422 | 4421 | if( empty( $output['day'] )) |
| 4423 | - unset( $output['day'] ); |
|
| 4422 | + unset( $output['day'] ); |
|
| 4424 | 4423 | if ( isset( $output['hour'] ) || isset( $output['min'] ) || isset( $output['sec'] )) { |
| 4425 | - if( !isset( $output['hour'] )) $output['hour'] = 0; |
|
| 4426 | - if( !isset( $output['min'] )) $output['min'] = 0; |
|
| 4427 | - if( !isset( $output['sec'] )) $output['sec'] = 0; |
|
| 4428 | - if(( 0 == $output['hour'] ) && ( 0 == $output['min'] ) && ( 0 == $output['sec'] )) |
|
| 4424 | + if( !isset( $output['hour'] )) $output['hour'] = 0; |
|
| 4425 | + if( !isset( $output['min'] )) $output['min'] = 0; |
|
| 4426 | + if( !isset( $output['sec'] )) $output['sec'] = 0; |
|
| 4427 | + if(( 0 == $output['hour'] ) && ( 0 == $output['min'] ) && ( 0 == $output['sec'] )) |
|
| 4429 | 4428 | unset( $output['hour'], $output['min'], $output['sec'] ); |
| 4430 | 4429 | } |
| 4431 | 4430 | return $output; |
| 4432 | - } |
|
| 4431 | + } |
|
| 4433 | 4432 | /** |
| 4434 | - * convert duration to date in array format based on input or dtstart value |
|
| 4435 | - * |
|
| 4436 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4437 | - * @since 2.4.8 - 2008-10-30 |
|
| 4438 | - * @param array $startdate, optional |
|
| 4439 | - * @param array $duration, optional |
|
| 4440 | - * @return array, date format |
|
| 4441 | - */ |
|
| 4442 | - function duration2date( $startdate=FALSE, $duration=FALSE ) { |
|
| 4433 | + * convert duration to date in array format based on input or dtstart value |
|
| 4434 | + * |
|
| 4435 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4436 | + * @since 2.4.8 - 2008-10-30 |
|
| 4437 | + * @param array $startdate, optional |
|
| 4438 | + * @param array $duration, optional |
|
| 4439 | + * @return array, date format |
|
| 4440 | + */ |
|
| 4441 | + function duration2date( $startdate=FALSE, $duration=FALSE ) { |
|
| 4443 | 4442 | if( $startdate && $duration ) { |
| 4444 | - $d1 = $startdate; |
|
| 4445 | - $dur = $duration; |
|
| 4443 | + $d1 = $startdate; |
|
| 4444 | + $dur = $duration; |
|
| 4446 | 4445 | } |
| 4447 | 4446 | elseif( isset( $this->dtstart['value'] ) && isset( $this->duration['value'] )) { |
| 4448 | - $d1 = $this->dtstart['value']; |
|
| 4449 | - $dur = $this->duration['value']; |
|
| 4447 | + $d1 = $this->dtstart['value']; |
|
| 4448 | + $dur = $this->duration['value']; |
|
| 4450 | 4449 | } |
| 4451 | 4450 | else |
| 4452 | - return null; |
|
| 4451 | + return null; |
|
| 4453 | 4452 | $dateOnly = ( isset( $d1['hour'] ) || isset( $d1['min'] ) || isset( $d1['sec'] )) ? FALSE : TRUE; |
| 4454 | 4453 | $d1['hour'] = ( isset( $d1['hour'] )) ? $d1['hour'] : 0; |
| 4455 | 4454 | $d1['min'] = ( isset( $d1['min'] )) ? $d1['min'] : 0; |
| 4456 | 4455 | $d1['sec'] = ( isset( $d1['sec'] )) ? $d1['sec'] : 0; |
| 4457 | 4456 | $dtend = mktime( $d1['hour'], $d1['min'], $d1['sec'], $d1['month'], $d1['day'], $d1['year'] ); |
| 4458 | 4457 | if( isset( $dur['week'] )) |
| 4459 | - $dtend += ( $dur['week'] * 7 * 24 * 60 * 60 ); |
|
| 4458 | + $dtend += ( $dur['week'] * 7 * 24 * 60 * 60 ); |
|
| 4460 | 4459 | if( isset( $dur['day'] )) |
| 4461 | - $dtend += ( $dur['day'] * 24 * 60 * 60 ); |
|
| 4460 | + $dtend += ( $dur['day'] * 24 * 60 * 60 ); |
|
| 4462 | 4461 | if( isset( $dur['hour'] )) |
| 4463 | - $dtend += ( $dur['hour'] * 60 *60 ); |
|
| 4462 | + $dtend += ( $dur['hour'] * 60 *60 ); |
|
| 4464 | 4463 | if( isset( $dur['min'] )) |
| 4465 | - $dtend += ( $dur['min'] * 60 ); |
|
| 4464 | + $dtend += ( $dur['min'] * 60 ); |
|
| 4466 | 4465 | if( isset( $dur['sec'] )) |
| 4467 | - $dtend += $dur['sec']; |
|
| 4466 | + $dtend += $dur['sec']; |
|
| 4468 | 4467 | $dtend2 = array(); |
| 4469 | 4468 | $dtend2['year'] = date('Y', $dtend ); |
| 4470 | 4469 | $dtend2['month'] = date('m', $dtend ); |
@@ -4473,112 +4472,112 @@ discard block |
||
| 4473 | 4472 | $dtend2['min'] = date('i', $dtend ); |
| 4474 | 4473 | $dtend2['sec'] = date('s', $dtend ); |
| 4475 | 4474 | if( isset( $d1['tz'] )) |
| 4476 | - $dtend2['tz'] = $d1['tz']; |
|
| 4475 | + $dtend2['tz'] = $d1['tz']; |
|
| 4477 | 4476 | if( $dateOnly && (( 0 == $dtend2['hour'] ) && ( 0 == $dtend2['min'] ) && ( 0 == $dtend2['sec'] ))) |
| 4478 | - unset( $dtend2['hour'], $dtend2['min'], $dtend2['sec'] ); |
|
| 4477 | + unset( $dtend2['hour'], $dtend2['min'], $dtend2['sec'] ); |
|
| 4479 | 4478 | return $dtend2; |
| 4480 | - } |
|
| 4479 | + } |
|
| 4481 | 4480 | /** |
| 4482 | - * ensures internal duration format for input in string format |
|
| 4483 | - * |
|
| 4484 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4485 | - * @since 2.0.5 - 2007-03-14 |
|
| 4486 | - * @param string $duration |
|
| 4487 | - * @return array |
|
| 4488 | - */ |
|
| 4489 | - function _duration_string( $duration ) { |
|
| 4490 | - $duration = (string) trim( $duration ); |
|
| 4491 | - while( 'P' != strtoupper( substr( $duration, 0, 1 ))) { |
|
| 4492 | - if( 0 < strlen( $duration )) |
|
| 4493 | - $duration = substr( $duration, 1 ); |
|
| 4494 | - else |
|
| 4495 | - return false; // no leading P !?!? |
|
| 4496 | - } |
|
| 4497 | - $duration = substr( $duration, 1 ); // skip P |
|
| 4498 | - $duration = str_replace ( 't', 'T', $duration ); |
|
| 4499 | - $duration = str_replace ( 'T', '', $duration ); |
|
| 4500 | - $output = array(); |
|
| 4501 | - $val = null; |
|
| 4502 | - for( $ix=0; $ix < strlen( $duration ); $ix++ ) { |
|
| 4503 | - switch( strtoupper( $duration{$ix} )) { |
|
| 4504 | - case 'W': |
|
| 4481 | + * ensures internal duration format for input in string format |
|
| 4482 | + * |
|
| 4483 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4484 | + * @since 2.0.5 - 2007-03-14 |
|
| 4485 | + * @param string $duration |
|
| 4486 | + * @return array |
|
| 4487 | + */ |
|
| 4488 | + function _duration_string( $duration ) { |
|
| 4489 | + $duration = (string) trim( $duration ); |
|
| 4490 | + while( 'P' != strtoupper( substr( $duration, 0, 1 ))) { |
|
| 4491 | + if( 0 < strlen( $duration )) |
|
| 4492 | + $duration = substr( $duration, 1 ); |
|
| 4493 | + else |
|
| 4494 | + return false; // no leading P !?!? |
|
| 4495 | + } |
|
| 4496 | + $duration = substr( $duration, 1 ); // skip P |
|
| 4497 | + $duration = str_replace ( 't', 'T', $duration ); |
|
| 4498 | + $duration = str_replace ( 'T', '', $duration ); |
|
| 4499 | + $output = array(); |
|
| 4500 | + $val = null; |
|
| 4501 | + for( $ix=0; $ix < strlen( $duration ); $ix++ ) { |
|
| 4502 | + switch( strtoupper( $duration{$ix} )) { |
|
| 4503 | + case 'W': |
|
| 4505 | 4504 | $output['week'] = $val; |
| 4506 | 4505 | $val = null; |
| 4507 | 4506 | break; |
| 4508 | - case 'D': |
|
| 4507 | + case 'D': |
|
| 4509 | 4508 | $output['day'] = $val; |
| 4510 | 4509 | $val = null; |
| 4511 | 4510 | break; |
| 4512 | - case 'H': |
|
| 4511 | + case 'H': |
|
| 4513 | 4512 | $output['hour'] = $val; |
| 4514 | 4513 | $val = null; |
| 4515 | 4514 | break; |
| 4516 | - case 'M': |
|
| 4515 | + case 'M': |
|
| 4517 | 4516 | $output['min'] = $val; |
| 4518 | 4517 | $val = null; |
| 4519 | 4518 | break; |
| 4520 | - case 'S': |
|
| 4519 | + case 'S': |
|
| 4521 | 4520 | $output['sec'] = $val; |
| 4522 | 4521 | $val = null; |
| 4523 | 4522 | break; |
| 4524 | - default: |
|
| 4523 | + default: |
|
| 4525 | 4524 | if( !ctype_digit( $duration{$ix} )) |
| 4526 | - return false; // unknown duration controll character !?!? |
|
| 4525 | + return false; // unknown duration controll character !?!? |
|
| 4527 | 4526 | else |
| 4528 | - $val .= $duration{$ix}; |
|
| 4529 | - } |
|
| 4530 | - } |
|
| 4531 | - return $this->_duration_array( $output ); |
|
| 4532 | - } |
|
| 4533 | -/** |
|
| 4534 | - * if not preSet, if exist, remove key with expected value from array and return hit value else return elseValue |
|
| 4535 | - * |
|
| 4536 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4537 | - * @since 2.4.16 - 2008-11-08 |
|
| 4538 | - * @param array $array |
|
| 4539 | - * @param string $expkey, expected key |
|
| 4540 | - * @param string $expval, expected value |
|
| 4541 | - * @param int $hitVal optional, return value if found |
|
| 4542 | - * @param int $elseVal optional, return value if not found |
|
| 4543 | - * @param int $preSet optional, return value if already preset |
|
| 4544 | - * @return int |
|
| 4545 | - */ |
|
| 4546 | - function _existRem( &$array, $expkey, $expval=FALSE, $hitVal=null, $elseVal=null, $preSet=null ) { |
|
| 4527 | + $val .= $duration{$ix}; |
|
| 4528 | + } |
|
| 4529 | + } |
|
| 4530 | + return $this->_duration_array( $output ); |
|
| 4531 | + } |
|
| 4532 | +/** |
|
| 4533 | + * if not preSet, if exist, remove key with expected value from array and return hit value else return elseValue |
|
| 4534 | + * |
|
| 4535 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4536 | + * @since 2.4.16 - 2008-11-08 |
|
| 4537 | + * @param array $array |
|
| 4538 | + * @param string $expkey, expected key |
|
| 4539 | + * @param string $expval, expected value |
|
| 4540 | + * @param int $hitVal optional, return value if found |
|
| 4541 | + * @param int $elseVal optional, return value if not found |
|
| 4542 | + * @param int $preSet optional, return value if already preset |
|
| 4543 | + * @return int |
|
| 4544 | + */ |
|
| 4545 | + function _existRem( &$array, $expkey, $expval=FALSE, $hitVal=null, $elseVal=null, $preSet=null ) { |
|
| 4547 | 4546 | if( $preSet ) |
| 4548 | - return $preSet; |
|
| 4547 | + return $preSet; |
|
| 4549 | 4548 | if( !is_array( $array ) || ( 0 == count( $array ))) |
| 4550 | - return $elseVal; |
|
| 4549 | + return $elseVal; |
|
| 4551 | 4550 | foreach( $array as $key => $value ) { |
| 4552 | - if( strtoupper( $expkey ) == strtoupper( $key )) { |
|
| 4551 | + if( strtoupper( $expkey ) == strtoupper( $key )) { |
|
| 4553 | 4552 | if( !$expval || ( strtoupper( $expval ) == strtoupper( $array[$key] ))) { |
| 4554 | - unset( $array[$key] ); |
|
| 4555 | - return $hitVal; |
|
| 4553 | + unset( $array[$key] ); |
|
| 4554 | + return $hitVal; |
|
| 4555 | + } |
|
| 4556 | 4556 | } |
| 4557 | - } |
|
| 4558 | 4557 | } |
| 4559 | 4558 | return $elseVal; |
| 4560 | - } |
|
| 4559 | + } |
|
| 4561 | 4560 | /** |
| 4562 | - * creates formatted output for calendar component property data value type date/date-time |
|
| 4563 | - * |
|
| 4564 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4565 | - * @since 2.4.8 - 2008-10-30 |
|
| 4566 | - * @param array $datetime |
|
| 4567 | - * @param int $parno, optional, default 6 |
|
| 4568 | - * @return string |
|
| 4569 | - */ |
|
| 4570 | - function _format_date_time( $datetime, $parno=6 ) { |
|
| 4561 | + * creates formatted output for calendar component property data value type date/date-time |
|
| 4562 | + * |
|
| 4563 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4564 | + * @since 2.4.8 - 2008-10-30 |
|
| 4565 | + * @param array $datetime |
|
| 4566 | + * @param int $parno, optional, default 6 |
|
| 4567 | + * @return string |
|
| 4568 | + */ |
|
| 4569 | + function _format_date_time( $datetime, $parno=6 ) { |
|
| 4571 | 4570 | if( !isset( $datetime['year'] ) && |
| 4572 | 4571 | !isset( $datetime['month'] ) && |
| 4573 | 4572 | !isset( $datetime['day'] ) && |
| 4574 | 4573 | !isset( $datetime['hour'] ) && |
| 4575 | 4574 | !isset( $datetime['min'] ) && |
| 4576 | 4575 | !isset( $datetime['sec'] )) |
| 4577 | - return ; |
|
| 4576 | + return ; |
|
| 4578 | 4577 | $output = null; |
| 4579 | 4578 | // if( !isset( $datetime['day'] )) { $o=''; foreach($datetime as $k=>$v) {if(is_array($v)) $v=implode('-',$v);$o.=" $k=>$v";} echo " day SAKNAS : $o <br />\n"; } |
| 4580 | 4579 | foreach( $datetime as $dkey => $dvalue ) { |
| 4581 | - if( 'tz' != $dkey ) |
|
| 4580 | + if( 'tz' != $dkey ) |
|
| 4582 | 4581 | $datetime[$dkey] = (integer) $dvalue; |
| 4583 | 4582 | } |
| 4584 | 4583 | $output = date('Ymd', mktime( 0, 0, 0, $datetime['month'], $datetime['day'], $datetime['year'])); |
@@ -4586,101 +4585,101 @@ discard block |
||
| 4586 | 4585 | isset( $datetime['min'] ) || |
| 4587 | 4586 | isset( $datetime['sec'] ) || |
| 4588 | 4587 | isset( $datetime['tz'] )) { |
| 4589 | - if( isset( $datetime['tz'] ) && |
|
| 4588 | + if( isset( $datetime['tz'] ) && |
|
| 4590 | 4589 | !isset( $datetime['hour'] )) |
| 4591 | 4590 | $datetime['hour'] = 0; |
| 4592 | - if( isset( $datetime['hour'] ) && |
|
| 4591 | + if( isset( $datetime['hour'] ) && |
|
| 4593 | 4592 | !isset( $datetime['min'] )) |
| 4594 | 4593 | $datetime['min'] = 0; |
| 4595 | - if( isset( $datetime['hour'] ) && |
|
| 4594 | + if( isset( $datetime['hour'] ) && |
|
| 4596 | 4595 | isset( $datetime['min'] ) && |
| 4597 | 4596 | !isset( $datetime['sec'] )) |
| 4598 | 4597 | $datetime['sec'] = 0; |
| 4599 | - $date = mktime( $datetime['hour'], $datetime['min'], $datetime['sec'], $datetime['month'], $datetime['day'], $datetime['year']); |
|
| 4600 | - $output .= date('\THis', $date ); |
|
| 4601 | - if( isset( $datetime['tz'] ) && ( '' < trim ( $datetime['tz'] ))) { |
|
| 4598 | + $date = mktime( $datetime['hour'], $datetime['min'], $datetime['sec'], $datetime['month'], $datetime['day'], $datetime['year']); |
|
| 4599 | + $output .= date('\THis', $date ); |
|
| 4600 | + if( isset( $datetime['tz'] ) && ( '' < trim ( $datetime['tz'] ))) { |
|
| 4602 | 4601 | $datetime['tz'] = trim( $datetime['tz'] ); |
| 4603 | 4602 | if( 'Z' == $datetime['tz'] ) |
| 4604 | - $output .= 'Z'; |
|
| 4603 | + $output .= 'Z'; |
|
| 4605 | 4604 | $offset = $this->_tz2offset( $datetime['tz'] ); |
| 4606 | 4605 | if( 0 != $offset ) { |
| 4607 | - $date = mktime( $datetime['hour'], $datetime['min'], ($datetime['sec'] + $offset), $datetime['month'], $datetime['day'], $datetime['year']); |
|
| 4608 | - $output = date( 'Ymd\THis\Z', $date ); |
|
| 4606 | + $date = mktime( $datetime['hour'], $datetime['min'], ($datetime['sec'] + $offset), $datetime['month'], $datetime['day'], $datetime['year']); |
|
| 4607 | + $output = date( 'Ymd\THis\Z', $date ); |
|
| 4609 | 4608 | } |
| 4610 | - } |
|
| 4611 | - elseif( 7 == $parno ) |
|
| 4609 | + } |
|
| 4610 | + elseif( 7 == $parno ) |
|
| 4612 | 4611 | $output .= 'Z'; |
| 4613 | 4612 | } |
| 4614 | 4613 | return $output; |
| 4615 | - } |
|
| 4614 | + } |
|
| 4616 | 4615 | /** |
| 4617 | - * creates formatted output for calendar component property data value type duration |
|
| 4618 | - * |
|
| 4619 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4620 | - * @since 2.4.16 - 2008-10-10 |
|
| 4621 | - * @param array $duration ( week, day, hour, min, sec ) |
|
| 4622 | - * @return string |
|
| 4623 | - */ |
|
| 4624 | - function _format_duration( $duration ) { |
|
| 4616 | + * creates formatted output for calendar component property data value type duration |
|
| 4617 | + * |
|
| 4618 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4619 | + * @since 2.4.16 - 2008-10-10 |
|
| 4620 | + * @param array $duration ( week, day, hour, min, sec ) |
|
| 4621 | + * @return string |
|
| 4622 | + */ |
|
| 4623 | + function _format_duration( $duration ) { |
|
| 4625 | 4624 | if( !isset( $duration['week'] ) && |
| 4626 | 4625 | !isset( $duration['day'] ) && |
| 4627 | 4626 | !isset( $duration['hour'] ) && |
| 4628 | 4627 | !isset( $duration['min'] ) && |
| 4629 | 4628 | !isset( $duration['sec'] )) |
| 4630 | - return; |
|
| 4629 | + return; |
|
| 4631 | 4630 | $output = 'P'; |
| 4632 | 4631 | if( isset( $duration['week'] ) && ( 0 < $duration['week'] )) |
| 4633 | - $output .= $duration['week'].'W'; |
|
| 4632 | + $output .= $duration['week'].'W'; |
|
| 4634 | 4633 | else { |
| 4635 | - if( isset($duration['day'] ) && ( 0 < $duration['day'] )) |
|
| 4634 | + if( isset($duration['day'] ) && ( 0 < $duration['day'] )) |
|
| 4636 | 4635 | $output .= $duration['day'].'D'; |
| 4637 | - if(( isset( $duration['hour']) && ( 0 < $duration['hour'] )) || |
|
| 4636 | + if(( isset( $duration['hour']) && ( 0 < $duration['hour'] )) || |
|
| 4638 | 4637 | ( isset( $duration['min']) && ( 0 < $duration['min'] )) || |
| 4639 | 4638 | ( isset( $duration['sec']) && ( 0 < $duration['sec'] ))) { |
| 4640 | 4639 | $output .= 'T'; |
| 4641 | 4640 | $output .= ( isset( $duration['hour']) && ( 0 < $duration['hour'] )) ? $duration['hour'].'H' : '0H'; |
| 4642 | 4641 | $output .= ( isset( $duration['min']) && ( 0 < $duration['min'] )) ? $duration['min']. 'M' : '0M'; |
| 4643 | 4642 | $output .= ( isset( $duration['sec']) && ( 0 < $duration['sec'] )) ? $duration['sec']. 'S' : '0S'; |
| 4644 | - } |
|
| 4643 | + } |
|
| 4645 | 4644 | } |
| 4646 | 4645 | return $output; |
| 4647 | - } |
|
| 4646 | + } |
|
| 4648 | 4647 | /** |
| 4649 | - * creates formatted output for calendar component property data value type recur |
|
| 4650 | - * |
|
| 4651 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4652 | - * @since 2.4.8 - 2008-10-22 |
|
| 4653 | - * @param array $recurlabel |
|
| 4654 | - * @param array $recurdata |
|
| 4655 | - * @return string |
|
| 4656 | - */ |
|
| 4657 | - function _format_recur( $recurlabel, $recurdata ) { |
|
| 4648 | + * creates formatted output for calendar component property data value type recur |
|
| 4649 | + * |
|
| 4650 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4651 | + * @since 2.4.8 - 2008-10-22 |
|
| 4652 | + * @param array $recurlabel |
|
| 4653 | + * @param array $recurdata |
|
| 4654 | + * @return string |
|
| 4655 | + */ |
|
| 4656 | + function _format_recur( $recurlabel, $recurdata ) { |
|
| 4658 | 4657 | $output = null; |
| 4659 | 4658 | foreach( $recurdata as $therule ) { |
| 4660 | - if( empty( $therule['value'] )) { |
|
| 4659 | + if( empty( $therule['value'] )) { |
|
| 4661 | 4660 | if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( $recurlabel ); |
| 4662 | 4661 | continue; |
| 4663 | - } |
|
| 4664 | - $attributes = ( isset( $therule['params'] )) ? $this->_createParams( $therule['params'] ) : null; |
|
| 4665 | - $content1 = $content2 = null; |
|
| 4666 | - foreach( $therule['value'] as $rulelabel => $rulevalue ) { |
|
| 4662 | + } |
|
| 4663 | + $attributes = ( isset( $therule['params'] )) ? $this->_createParams( $therule['params'] ) : null; |
|
| 4664 | + $content1 = $content2 = null; |
|
| 4665 | + foreach( $therule['value'] as $rulelabel => $rulevalue ) { |
|
| 4667 | 4666 | switch( $rulelabel ) { |
| 4668 | - case 'FREQ': { |
|
| 4667 | + case 'FREQ': { |
|
| 4669 | 4668 | $content1 .= "FREQ=$rulevalue"; |
| 4670 | 4669 | break; |
| 4671 | - } |
|
| 4672 | - case 'UNTIL': { |
|
| 4670 | + } |
|
| 4671 | + case 'UNTIL': { |
|
| 4673 | 4672 | $content2 .= ";UNTIL="; |
| 4674 | 4673 | $content2 .= $this->_format_date_time( $rulevalue ); |
| 4675 | 4674 | break; |
| 4676 | - } |
|
| 4677 | - case 'COUNT': |
|
| 4675 | + } |
|
| 4676 | + case 'COUNT': |
|
| 4678 | 4677 | case 'INTERVAL': |
| 4679 | 4678 | case 'WKST': { |
| 4680 | 4679 | $content2 .= ";$rulelabel=$rulevalue"; |
| 4681 | 4680 | break; |
| 4682 | - } |
|
| 4683 | - case 'BYSECOND': |
|
| 4681 | + } |
|
| 4682 | + case 'BYSECOND': |
|
| 4684 | 4683 | case 'BYMINUTE': |
| 4685 | 4684 | case 'BYHOUR': |
| 4686 | 4685 | case 'BYMONTHDAY': |
@@ -4690,144 +4689,144 @@ discard block |
||
| 4690 | 4689 | case 'BYSETPOS': { |
| 4691 | 4690 | $content2 .= ";$rulelabel="; |
| 4692 | 4691 | if( is_array( $rulevalue )) { |
| 4693 | - foreach( $rulevalue as $vix => $valuePart ) { |
|
| 4692 | + foreach( $rulevalue as $vix => $valuePart ) { |
|
| 4694 | 4693 | $content2 .= ( $vix ) ? ',' : null; |
| 4695 | 4694 | $content2 .= $valuePart; |
| 4696 | - } |
|
| 4695 | + } |
|
| 4697 | 4696 | } |
| 4698 | 4697 | else |
| 4699 | - $content2 .= $rulevalue; |
|
| 4698 | + $content2 .= $rulevalue; |
|
| 4700 | 4699 | break; |
| 4701 | - } |
|
| 4702 | - case 'BYDAY': { |
|
| 4700 | + } |
|
| 4701 | + case 'BYDAY': { |
|
| 4703 | 4702 | $content2 .= ";$rulelabel="; |
| 4704 | 4703 | $bydaycnt = 0; |
| 4705 | 4704 | foreach( $rulevalue as $vix => $valuePart ) { |
| 4706 | - $content21 = $content22 = null; |
|
| 4707 | - if( is_array( $valuePart )) { |
|
| 4705 | + $content21 = $content22 = null; |
|
| 4706 | + if( is_array( $valuePart )) { |
|
| 4708 | 4707 | $content2 .= ( $bydaycnt ) ? ',' : null; |
| 4709 | 4708 | foreach( $valuePart as $vix2 => $valuePart2 ) { |
| 4710 | - if( 'DAY' != strtoupper( $vix2 )) |
|
| 4711 | - $content21 .= $valuePart2; |
|
| 4712 | - else |
|
| 4709 | + if( 'DAY' != strtoupper( $vix2 )) |
|
| 4710 | + $content21 .= $valuePart2; |
|
| 4711 | + else |
|
| 4713 | 4712 | $content22 .= $valuePart2; |
| 4714 | 4713 | } |
| 4715 | 4714 | $content2 .= $content21.$content22; |
| 4716 | 4715 | $bydaycnt++; |
| 4717 | - } |
|
| 4718 | - else { |
|
| 4716 | + } |
|
| 4717 | + else { |
|
| 4719 | 4718 | $content2 .= ( $bydaycnt ) ? ',' : null; |
| 4720 | 4719 | if( 'DAY' != strtoupper( $vix )) |
| 4721 | 4720 | $content21 .= $valuePart; |
| 4722 | 4721 | else { |
| 4723 | - $content22 .= $valuePart; |
|
| 4724 | - $bydaycnt++; |
|
| 4722 | + $content22 .= $valuePart; |
|
| 4723 | + $bydaycnt++; |
|
| 4725 | 4724 | } |
| 4726 | 4725 | $content2 .= $content21.$content22; |
| 4727 | - } |
|
| 4726 | + } |
|
| 4728 | 4727 | } |
| 4729 | 4728 | break; |
| 4730 | - } |
|
| 4731 | - default: { |
|
| 4729 | + } |
|
| 4730 | + default: { |
|
| 4732 | 4731 | $content2 .= ";$rulelabel=$rulevalue"; |
| 4733 | 4732 | break; |
| 4734 | - } |
|
| 4733 | + } |
|
| 4734 | + } |
|
| 4735 | 4735 | } |
| 4736 | - } |
|
| 4737 | - $output .= $this->_createElement( $recurlabel, $attributes, $content1.$content2 ); |
|
| 4736 | + $output .= $this->_createElement( $recurlabel, $attributes, $content1.$content2 ); |
|
| 4738 | 4737 | } |
| 4739 | 4738 | return $output; |
| 4740 | - } |
|
| 4739 | + } |
|
| 4741 | 4740 | /** |
| 4742 | - * create property name case - lower/upper |
|
| 4743 | - * |
|
| 4744 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4745 | - * @since 0.9.7 - 2006-11-20 |
|
| 4746 | - * @param string $propertyName |
|
| 4747 | - * @return string |
|
| 4748 | - */ |
|
| 4749 | - function _formatPropertyName( $propertyName ) { |
|
| 4741 | + * create property name case - lower/upper |
|
| 4742 | + * |
|
| 4743 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4744 | + * @since 0.9.7 - 2006-11-20 |
|
| 4745 | + * @param string $propertyName |
|
| 4746 | + * @return string |
|
| 4747 | + */ |
|
| 4748 | + function _formatPropertyName( $propertyName ) { |
|
| 4750 | 4749 | switch( $this->format ) { |
| 4751 | - case 'xcal': |
|
| 4750 | + case 'xcal': |
|
| 4752 | 4751 | return strtolower( $propertyName ); |
| 4753 | 4752 | break; |
| 4754 | - default: |
|
| 4753 | + default: |
|
| 4755 | 4754 | return strtoupper( $propertyName ); |
| 4756 | 4755 | break; |
| 4757 | 4756 | } |
| 4758 | - } |
|
| 4757 | + } |
|
| 4759 | 4758 | /** |
| 4760 | - * checks if input array contains a date |
|
| 4761 | - * |
|
| 4762 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4763 | - * @since 2.4.16 - 2008-10-25 |
|
| 4764 | - * @param array $input |
|
| 4765 | - * @return bool |
|
| 4766 | - */ |
|
| 4767 | - function _isArrayDate( $input ) { |
|
| 4759 | + * checks if input array contains a date |
|
| 4760 | + * |
|
| 4761 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4762 | + * @since 2.4.16 - 2008-10-25 |
|
| 4763 | + * @param array $input |
|
| 4764 | + * @return bool |
|
| 4765 | + */ |
|
| 4766 | + function _isArrayDate( $input ) { |
|
| 4768 | 4767 | if( isset( $input['week'] ) || ( !in_array( count( $input ), array( 3, 6, 7 )))) |
| 4769 | - return FALSE; |
|
| 4768 | + return FALSE; |
|
| 4770 | 4769 | if( 7 == count( $input )) |
| 4771 | - return TRUE; |
|
| 4770 | + return TRUE; |
|
| 4772 | 4771 | if( isset( $input['year'] ) && isset( $input['month'] ) && isset( $input['day'] )) |
| 4773 | - return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 4772 | + return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 4774 | 4773 | if( isset( $input['day'] ) || isset( $input['hour'] ) || isset( $input['min'] ) || isset( $input['sec'] )) |
| 4775 | - return FALSE; |
|
| 4774 | + return FALSE; |
|
| 4776 | 4775 | if( in_array( 0, $input )) |
| 4777 | - return FALSE; |
|
| 4776 | + return FALSE; |
|
| 4778 | 4777 | if(( 1970 > $input[0] ) || ( 12 < $input[1] ) || ( 31 < $input[2] )) |
| 4779 | - return FALSE; |
|
| 4778 | + return FALSE; |
|
| 4780 | 4779 | if(( isset( $input[0] ) && isset( $input[1] ) && isset( $input[2] )) && |
| 4781 | 4780 | checkdate( (int) $input[1], (int) $input[2], (int) $input[0] )) |
| 4782 | - return TRUE; |
|
| 4781 | + return TRUE; |
|
| 4783 | 4782 | $input = $this->_date_time_string( $input[1].'/'.$input[2].'/'.$input[0], 3 ); // m - d - Y |
| 4784 | 4783 | if( isset( $input['year'] ) && isset( $input['month'] ) && isset( $input['day'] )) |
| 4785 | - return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 4784 | + return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 4786 | 4785 | return FALSE; |
| 4787 | - } |
|
| 4786 | + } |
|
| 4788 | 4787 | /** |
| 4789 | - * checks if input array contains a timestamp date |
|
| 4790 | - * |
|
| 4791 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4792 | - * @since 2.4.16 - 2008-10-18 |
|
| 4793 | - * @param array $input |
|
| 4794 | - * @return bool |
|
| 4795 | - */ |
|
| 4796 | - function _isArrayTimestampDate( $input ) { |
|
| 4788 | + * checks if input array contains a timestamp date |
|
| 4789 | + * |
|
| 4790 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4791 | + * @since 2.4.16 - 2008-10-18 |
|
| 4792 | + * @param array $input |
|
| 4793 | + * @return bool |
|
| 4794 | + */ |
|
| 4795 | + function _isArrayTimestampDate( $input ) { |
|
| 4797 | 4796 | return ( is_array( $input ) && isset( $input['timestamp'] )) ? TRUE : FALSE ; |
| 4798 | - } |
|
| 4797 | + } |
|
| 4799 | 4798 | /** |
| 4800 | - * controll if input string contains traling UTC offset |
|
| 4801 | - * |
|
| 4802 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4803 | - * @since 2.4.16 - 2008-10-19 |
|
| 4804 | - * @param string $input |
|
| 4805 | - * @return bool |
|
| 4806 | - */ |
|
| 4807 | - function _isOffset( $input ) { |
|
| 4799 | + * controll if input string contains traling UTC offset |
|
| 4800 | + * |
|
| 4801 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4802 | + * @since 2.4.16 - 2008-10-19 |
|
| 4803 | + * @param string $input |
|
| 4804 | + * @return bool |
|
| 4805 | + */ |
|
| 4806 | + function _isOffset( $input ) { |
|
| 4808 | 4807 | $input = trim( (string) $input ); |
| 4809 | 4808 | if( 'Z' == substr( $input, -1 )) |
| 4810 | - return TRUE; |
|
| 4809 | + return TRUE; |
|
| 4811 | 4810 | elseif(( 5 <= strlen( $input )) && |
| 4812 | 4811 | ( in_array( substr( $input, -5, 1 ), array( '+', '-' ))) && |
| 4813 | 4812 | ( '0000' < substr( $input, -4 )) && ( '9999' >= substr( $input, -4 ))) |
| 4814 | - return TRUE; |
|
| 4813 | + return TRUE; |
|
| 4815 | 4814 | elseif(( 7 <= strlen( $input )) && |
| 4816 | 4815 | ( in_array( substr( $input, -7, 1 ), array( '+', '-' ))) && |
| 4817 | 4816 | ( '000000' < substr( $input, -6 )) && ( '999999' >= substr( $input, -6 ))) |
| 4818 | - return TRUE; |
|
| 4817 | + return TRUE; |
|
| 4819 | 4818 | return FALSE; |
| 4820 | 4819 | |
| 4821 | - } |
|
| 4820 | + } |
|
| 4822 | 4821 | /** |
| 4823 | - * check if property not exists within component |
|
| 4824 | - * |
|
| 4825 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4826 | - * @since 2.5.1 - 2008-10-15 |
|
| 4827 | - * @param string $propName |
|
| 4828 | - * @return bool |
|
| 4829 | - */ |
|
| 4830 | - function _notExistProp( $propName ) { |
|
| 4822 | + * check if property not exists within component |
|
| 4823 | + * |
|
| 4824 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4825 | + * @since 2.5.1 - 2008-10-15 |
|
| 4826 | + * @param string $propName |
|
| 4827 | + * @return bool |
|
| 4828 | + */ |
|
| 4829 | + function _notExistProp( $propName ) { |
|
| 4831 | 4830 | if( empty( $propName )) return FALSE; // when deleting x-prop, an empty propName may be used=allowed |
| 4832 | 4831 | $propName = strtolower( $propName ); |
| 4833 | 4832 | if( 'last-modified' == $propName ) { if( !isset( $this->lastmodified )) return TRUE; } |
@@ -4837,270 +4836,270 @@ discard block |
||
| 4837 | 4836 | elseif( 'request-status' == $propName ) { if( !isset( $this->requeststatus )) return TRUE; } |
| 4838 | 4837 | elseif(( 'x-' != substr($propName,0,2)) && !isset( $this->$propName )) return TRUE; |
| 4839 | 4838 | return FALSE; |
| 4840 | - } |
|
| 4839 | + } |
|
| 4841 | 4840 | /** |
| 4842 | - * remakes a recur pattern to an array of dates |
|
| 4843 | - * |
|
| 4844 | - * if missing, UNTIL is set 1 year from startdate (emergency break) |
|
| 4845 | - * |
|
| 4846 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4847 | - * @since 2.4.16 - 2008-10-18 |
|
| 4848 | - * @param array $result, array to update, array([timestamp] => timestamp) |
|
| 4849 | - * @param array $recur, pattern for recurrency (only value part, params ignored) |
|
| 4850 | - * @param array $wdate, component start date |
|
| 4851 | - * @param array $startdate, start date |
|
| 4852 | - * @param array $enddate, optional |
|
| 4853 | - * @return array of recurrence (start-)dates as index |
|
| 4854 | - * @todo BYHOUR, BYMINUTE, BYSECOND, ev. BYSETPOS due to ambiguity, WEEKLY at year end/start |
|
| 4855 | - */ |
|
| 4856 | - function _recur2date( & $result, $recur, $wdate, $startdate, $enddate=FALSE ) { |
|
| 4841 | + * remakes a recur pattern to an array of dates |
|
| 4842 | + * |
|
| 4843 | + * if missing, UNTIL is set 1 year from startdate (emergency break) |
|
| 4844 | + * |
|
| 4845 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 4846 | + * @since 2.4.16 - 2008-10-18 |
|
| 4847 | + * @param array $result, array to update, array([timestamp] => timestamp) |
|
| 4848 | + * @param array $recur, pattern for recurrency (only value part, params ignored) |
|
| 4849 | + * @param array $wdate, component start date |
|
| 4850 | + * @param array $startdate, start date |
|
| 4851 | + * @param array $enddate, optional |
|
| 4852 | + * @return array of recurrence (start-)dates as index |
|
| 4853 | + * @todo BYHOUR, BYMINUTE, BYSECOND, ev. BYSETPOS due to ambiguity, WEEKLY at year end/start |
|
| 4854 | + */ |
|
| 4855 | + function _recur2date( & $result, $recur, $wdate, $startdate, $enddate=FALSE ) { |
|
| 4857 | 4856 | foreach( $wdate as $k => $v ) if( ctype_digit( $v )) $wdate[$k] = (int) $v; |
| 4858 | 4857 | $wdatets = $this->_date2timestamp( $wdate ); |
| 4859 | 4858 | $startdatets = $this->_date2timestamp( $startdate ); |
| 4860 | 4859 | if( !$enddate ) { |
| 4861 | - $enddate = $startdate; |
|
| 4862 | - $enddate['year'] += 1; |
|
| 4860 | + $enddate = $startdate; |
|
| 4861 | + $enddate['year'] += 1; |
|
| 4863 | 4862 | // echo "recur __in_ ".implode('-',$startdate)." period start ".implode('-',$wdate)." period end ".implode('-',$enddate)."<br />\n";print_r($recur);echo "<br />\n";//test### |
| 4864 | 4863 | } |
| 4865 | 4864 | $endDatets = $this->_date2timestamp( $enddate ); // fix break |
| 4866 | 4865 | if( !isset( $recur['COUNT'] ) && !isset( $recur['UNTIL'] )) |
| 4867 | - $recur['UNTIL'] = $enddate; // create break |
|
| 4866 | + $recur['UNTIL'] = $enddate; // create break |
|
| 4868 | 4867 | if( isset( $recur['UNTIL'] )) { |
| 4869 | - $tdatets = $this->_date2timestamp( $recur['UNTIL'] ); |
|
| 4870 | - if( $endDatets > $tdatets ) { |
|
| 4868 | + $tdatets = $this->_date2timestamp( $recur['UNTIL'] ); |
|
| 4869 | + if( $endDatets > $tdatets ) { |
|
| 4871 | 4870 | $endDatets = $tdatets; // emergency break |
| 4872 | 4871 | $enddate = $this->_timestamp2date( $endDatets, 6 ); |
| 4873 | - } |
|
| 4874 | - else |
|
| 4872 | + } |
|
| 4873 | + else |
|
| 4875 | 4874 | $recur['UNTIL'] = $this->_timestamp2date( $endDatets, 6 ); |
| 4876 | 4875 | } |
| 4877 | 4876 | if( $wdatets > $endDatets ) { |
| 4878 | - //echo "recur out of date ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$wdatets),6))."<br />\n";//test |
|
| 4879 | - return array(); // nothing to do.. . |
|
| 4877 | + //echo "recur out of date ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$wdatets),6))."<br />\n";//test |
|
| 4878 | + return array(); // nothing to do.. . |
|
| 4880 | 4879 | } |
| 4881 | 4880 | if( !isset( $recur['FREQ'] )) // "MUST be specified.. ." |
| 4882 | - $recur['FREQ'] = 'DAILY'; // ?? |
|
| 4881 | + $recur['FREQ'] = 'DAILY'; // ?? |
|
| 4883 | 4882 | $wkst = ( isset( $recur['WKST'] ) && ( 'SU' == $recur['WKST'] )) ? 24*60*60 : 0; // ?? |
| 4884 | 4883 | if( !isset( $recur['INTERVAL'] )) |
| 4885 | - $recur['INTERVAL'] = 1; |
|
| 4884 | + $recur['INTERVAL'] = 1; |
|
| 4886 | 4885 | $countcnt = ( !isset( $recur['BYSETPOS'] )) ? 1 : 0; // DTSTART counts as the first occurrence |
| 4887 | 4886 | /* find out how to step up dates and set index for interval count */ |
| 4888 | 4887 | $step = array(); |
| 4889 | 4888 | if( 'YEARLY' == $recur['FREQ'] ) |
| 4890 | - $step['year'] = 1; |
|
| 4889 | + $step['year'] = 1; |
|
| 4891 | 4890 | elseif( 'MONTHLY' == $recur['FREQ'] ) |
| 4892 | - $step['month'] = 1; |
|
| 4891 | + $step['month'] = 1; |
|
| 4893 | 4892 | elseif( 'WEEKLY' == $recur['FREQ'] ) |
| 4894 | - $step['day'] = 7; |
|
| 4893 | + $step['day'] = 7; |
|
| 4895 | 4894 | else |
| 4896 | - $step['day'] = 1; |
|
| 4895 | + $step['day'] = 1; |
|
| 4897 | 4896 | if( isset( $step['year'] ) && isset( $recur['BYMONTH'] )) |
| 4898 | - $step = array( 'month' => 1 ); |
|
| 4897 | + $step = array( 'month' => 1 ); |
|
| 4899 | 4898 | if( empty( $step ) && isset( $recur['BYWEEKNO'] )) // ?? |
| 4900 | - $step = array( 'day' => 7 ); |
|
| 4899 | + $step = array( 'day' => 7 ); |
|
| 4901 | 4900 | if( isset( $recur['BYYEARDAY'] ) || isset( $recur['BYMONTHDAY'] ) || isset( $recur['BYDAY'] )) |
| 4902 | - $step = array( 'day' => 1 ); |
|
| 4901 | + $step = array( 'day' => 1 ); |
|
| 4903 | 4902 | $intervalarr = array(); |
| 4904 | 4903 | if( 1 < $recur['INTERVAL'] ) { |
| 4905 | - $intervalix = $this->_recurIntervalIx( $recur['FREQ'], $wdate, $wkst ); |
|
| 4906 | - $intervalarr = array( $intervalix => 0 ); |
|
| 4904 | + $intervalix = $this->_recurIntervalIx( $recur['FREQ'], $wdate, $wkst ); |
|
| 4905 | + $intervalarr = array( $intervalix => 0 ); |
|
| 4907 | 4906 | } |
| 4908 | 4907 | if( isset( $recur['BYSETPOS'] )) { // save start date + weekno |
| 4909 | - $bysetposymd1 = $bysetposymd2 = $bysetposw1 = $bysetposw2 = array(); |
|
| 4910 | - $bysetposWold = (int) date( 'W', ( $wdatets + $wkst )); |
|
| 4911 | - $bysetposYold = $wdate['year']; |
|
| 4912 | - $bysetposMold = $wdate['month']; |
|
| 4913 | - $bysetposDold = $wdate['day']; |
|
| 4914 | - if( is_array( $recur['BYSETPOS'] )) { |
|
| 4908 | + $bysetposymd1 = $bysetposymd2 = $bysetposw1 = $bysetposw2 = array(); |
|
| 4909 | + $bysetposWold = (int) date( 'W', ( $wdatets + $wkst )); |
|
| 4910 | + $bysetposYold = $wdate['year']; |
|
| 4911 | + $bysetposMold = $wdate['month']; |
|
| 4912 | + $bysetposDold = $wdate['day']; |
|
| 4913 | + if( is_array( $recur['BYSETPOS'] )) { |
|
| 4915 | 4914 | foreach( $recur['BYSETPOS'] as $bix => $bval ) |
| 4916 | - $recur['BYSETPOS'][$bix] = (int) $bval; |
|
| 4917 | - } |
|
| 4918 | - else |
|
| 4915 | + $recur['BYSETPOS'][$bix] = (int) $bval; |
|
| 4916 | + } |
|
| 4917 | + else |
|
| 4919 | 4918 | $recur['BYSETPOS'] = array( (int) $recur['BYSETPOS'] ); |
| 4920 | - $this->_stepdate( $enddate, $endDatets, $step); // make sure to count whole last period |
|
| 4919 | + $this->_stepdate( $enddate, $endDatets, $step); // make sure to count whole last period |
|
| 4921 | 4920 | } |
| 4922 | 4921 | $this->_stepdate( $wdate, $wdatets, $step); |
| 4923 | 4922 | $year_old = null; |
| 4924 | 4923 | $daynames = array( 'SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA' ); |
| 4925 | - /* MAIN LOOP */ |
|
| 4926 | - // echo "recur start ".implode('-',$wdate)." end ".implode('-',$enddate)."<br />\n";//test |
|
| 4924 | + /* MAIN LOOP */ |
|
| 4925 | + // echo "recur start ".implode('-',$wdate)." end ".implode('-',$enddate)."<br />\n";//test |
|
| 4927 | 4926 | while( TRUE ) { |
| 4928 | - if( isset( $endDatets ) && ( $wdatets > $endDatets )) |
|
| 4927 | + if( isset( $endDatets ) && ( $wdatets > $endDatets )) |
|
| 4929 | 4928 | break; |
| 4930 | - if( isset( $recur['COUNT'] ) && ( $countcnt >= $recur['COUNT'] )) |
|
| 4929 | + if( isset( $recur['COUNT'] ) && ( $countcnt >= $recur['COUNT'] )) |
|
| 4931 | 4930 | break; |
| 4932 | - if( $year_old != $wdate['year'] ) { |
|
| 4931 | + if( $year_old != $wdate['year'] ) { |
|
| 4933 | 4932 | $year_old = $wdate['year']; |
| 4934 | 4933 | $daycnts = array(); |
| 4935 | 4934 | $yeardays = $weekno = 0; |
| 4936 | 4935 | $yeardaycnt = array(); |
| 4937 | 4936 | for( $m = 1; $m <= 12; $m++ ) { // count up and update up-counters |
| 4938 | - $daycnts[$m] = array(); |
|
| 4939 | - $weekdaycnt = array(); |
|
| 4940 | - foreach( $daynames as $dn ) |
|
| 4937 | + $daycnts[$m] = array(); |
|
| 4938 | + $weekdaycnt = array(); |
|
| 4939 | + foreach( $daynames as $dn ) |
|
| 4941 | 4940 | $yeardaycnt[$dn] = $weekdaycnt[$dn] = 0; |
| 4942 | - $mcnt = date( 't', mktime( 0, 0, 0, $m, 1, $wdate['year'] )); |
|
| 4943 | - for( $d = 1; $d <= $mcnt; $d++ ) { |
|
| 4941 | + $mcnt = date( 't', mktime( 0, 0, 0, $m, 1, $wdate['year'] )); |
|
| 4942 | + for( $d = 1; $d <= $mcnt; $d++ ) { |
|
| 4944 | 4943 | $daycnts[$m][$d] = array(); |
| 4945 | 4944 | if( isset( $recur['BYYEARDAY'] )) { |
| 4946 | - $yeardays++; |
|
| 4947 | - $daycnts[$m][$d]['yearcnt_up'] = $yeardays; |
|
| 4945 | + $yeardays++; |
|
| 4946 | + $daycnts[$m][$d]['yearcnt_up'] = $yeardays; |
|
| 4948 | 4947 | } |
| 4949 | 4948 | if( isset( $recur['BYDAY'] )) { |
| 4950 | - $day = date( 'w', mktime( 0, 0, 0, $m, $d, $wdate['year'] )); |
|
| 4951 | - $day = $daynames[$day]; |
|
| 4952 | - $daycnts[$m][$d]['DAY'] = $day; |
|
| 4953 | - $weekdaycnt[$day]++; |
|
| 4954 | - $daycnts[$m][$d]['monthdayno_up'] = $weekdaycnt[$day]; |
|
| 4955 | - $yeardaycnt[$day]++; |
|
| 4956 | - $daycnts[$m][$d]['yeardayno_up'] = $yeardaycnt[$day]; |
|
| 4949 | + $day = date( 'w', mktime( 0, 0, 0, $m, $d, $wdate['year'] )); |
|
| 4950 | + $day = $daynames[$day]; |
|
| 4951 | + $daycnts[$m][$d]['DAY'] = $day; |
|
| 4952 | + $weekdaycnt[$day]++; |
|
| 4953 | + $daycnts[$m][$d]['monthdayno_up'] = $weekdaycnt[$day]; |
|
| 4954 | + $yeardaycnt[$day]++; |
|
| 4955 | + $daycnts[$m][$d]['yeardayno_up'] = $yeardaycnt[$day]; |
|
| 4957 | 4956 | } |
| 4958 | 4957 | if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) |
| 4959 | - $daycnts[$m][$d]['weekno_up'] =(int)date('W',mktime(0,0,$wkst,$m,$d,$wdate['year'])); |
|
| 4960 | - } |
|
| 4958 | + $daycnts[$m][$d]['weekno_up'] =(int)date('W',mktime(0,0,$wkst,$m,$d,$wdate['year'])); |
|
| 4959 | + } |
|
| 4961 | 4960 | } |
| 4962 | 4961 | $daycnt = 0; |
| 4963 | 4962 | $yeardaycnt = array(); |
| 4964 | 4963 | if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) { |
| 4965 | - $weekno = null; |
|
| 4966 | - for( $d=31; $d > 25; $d-- ) { // get last weekno for year |
|
| 4964 | + $weekno = null; |
|
| 4965 | + for( $d=31; $d > 25; $d-- ) { // get last weekno for year |
|
| 4967 | 4966 | if( !$weekno ) |
| 4968 | - $weekno = $daycnts[12][$d]['weekno_up']; |
|
| 4967 | + $weekno = $daycnts[12][$d]['weekno_up']; |
|
| 4969 | 4968 | elseif( $weekno < $daycnts[12][$d]['weekno_up'] ) { |
| 4970 | - $weekno = $daycnts[12][$d]['weekno_up']; |
|
| 4971 | - break; |
|
| 4969 | + $weekno = $daycnts[12][$d]['weekno_up']; |
|
| 4970 | + break; |
|
| 4971 | + } |
|
| 4972 | 4972 | } |
| 4973 | - } |
|
| 4974 | 4973 | } |
| 4975 | 4974 | for( $m = 12; $m > 0; $m-- ) { // count down and update down-counters |
| 4976 | - $weekdaycnt = array(); |
|
| 4977 | - foreach( $daynames as $dn ) |
|
| 4975 | + $weekdaycnt = array(); |
|
| 4976 | + foreach( $daynames as $dn ) |
|
| 4978 | 4977 | $yeardaycnt[$dn] = $weekdaycnt[$dn] = 0; |
| 4979 | - $monthcnt = 0; |
|
| 4980 | - $mcnt = date( 't', mktime( 0, 0, 0, $m, 1, $wdate['year'] )); |
|
| 4981 | - for( $d = $mcnt; $d > 0; $d-- ) { |
|
| 4978 | + $monthcnt = 0; |
|
| 4979 | + $mcnt = date( 't', mktime( 0, 0, 0, $m, 1, $wdate['year'] )); |
|
| 4980 | + for( $d = $mcnt; $d > 0; $d-- ) { |
|
| 4982 | 4981 | if( isset( $recur['BYYEARDAY'] )) { |
| 4983 | - $daycnt -= 1; |
|
| 4984 | - $daycnts[$m][$d]['yearcnt_down'] = $daycnt; |
|
| 4982 | + $daycnt -= 1; |
|
| 4983 | + $daycnts[$m][$d]['yearcnt_down'] = $daycnt; |
|
| 4985 | 4984 | } |
| 4986 | 4985 | if( isset( $recur['BYMONTHDAY'] )) { |
| 4987 | - $monthcnt -= 1; |
|
| 4988 | - $daycnts[$m][$d]['monthcnt_down'] = $monthcnt; |
|
| 4986 | + $monthcnt -= 1; |
|
| 4987 | + $daycnts[$m][$d]['monthcnt_down'] = $monthcnt; |
|
| 4989 | 4988 | } |
| 4990 | 4989 | if( isset( $recur['BYDAY'] )) { |
| 4991 | - $day = $daycnts[$m][$d]['DAY']; |
|
| 4992 | - $weekdaycnt[$day] -= 1; |
|
| 4993 | - $daycnts[$m][$d]['monthdayno_down'] = $weekdaycnt[$day]; |
|
| 4994 | - $yeardaycnt[$day] -= 1; |
|
| 4995 | - $daycnts[$m][$d]['yeardayno_down'] = $yeardaycnt[$day]; |
|
| 4990 | + $day = $daycnts[$m][$d]['DAY']; |
|
| 4991 | + $weekdaycnt[$day] -= 1; |
|
| 4992 | + $daycnts[$m][$d]['monthdayno_down'] = $weekdaycnt[$day]; |
|
| 4993 | + $yeardaycnt[$day] -= 1; |
|
| 4994 | + $daycnts[$m][$d]['yeardayno_down'] = $yeardaycnt[$day]; |
|
| 4996 | 4995 | } |
| 4997 | 4996 | if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) |
| 4998 | - $daycnts[$m][$d]['weekno_down'] = ($daycnts[$m][$d]['weekno_up'] - $weekno - 1); |
|
| 4999 | - } |
|
| 4997 | + $daycnts[$m][$d]['weekno_down'] = ($daycnts[$m][$d]['weekno_up'] - $weekno - 1); |
|
| 4998 | + } |
|
| 4999 | + } |
|
| 5000 | 5000 | } |
| 5001 | - } |
|
| 5002 | 5001 | /* check interval */ |
| 5003 | - if( 1 < $recur['INTERVAL'] ) { |
|
| 5002 | + if( 1 < $recur['INTERVAL'] ) { |
|
| 5004 | 5003 | /* create interval index */ |
| 5005 | 5004 | $intervalix = $this->_recurIntervalIx( $recur['FREQ'], $wdate, $wkst ); |
| 5006 | 5005 | /* check interval */ |
| 5007 | 5006 | $currentKey = array_keys( $intervalarr ); |
| 5008 | 5007 | $currentKey = end( $currentKey ); // get last index |
| 5009 | 5008 | if( $currentKey != $intervalix ) |
| 5010 | - $intervalarr = array( $intervalix => ( $intervalarr[$currentKey] + 1 )); |
|
| 5009 | + $intervalarr = array( $intervalix => ( $intervalarr[$currentKey] + 1 )); |
|
| 5011 | 5010 | if(( $recur['INTERVAL'] != $intervalarr[$intervalix] ) && |
| 5012 | 5011 | ( 0 != $intervalarr[$intervalix] )) { |
| 5013 | 5012 | /* step up date */ |
| 5014 | 5013 | //echo "skip: ".implode('-',$wdate)." ix=$intervalix old=$currentKey interval=".$intervalarr[$intervalix]."<br />\n";//test |
| 5015 | - $this->_stepdate( $wdate, $wdatets, $step); |
|
| 5016 | - continue; |
|
| 5014 | + $this->_stepdate( $wdate, $wdatets, $step); |
|
| 5015 | + continue; |
|
| 5017 | 5016 | } |
| 5018 | 5017 | else // continue within the selected interval |
| 5019 | - $intervalarr[$intervalix] = 0; |
|
| 5020 | - //echo "cont: ".implode('-',$wdate)." ix=$intervalix old=$currentKey interval=".$intervalarr[$intervalix]."<br />\n";//test |
|
| 5021 | - } |
|
| 5022 | - $updateOK = TRUE; |
|
| 5023 | - if( $updateOK && isset( $recur['BYMONTH'] )) |
|
| 5018 | + $intervalarr[$intervalix] = 0; |
|
| 5019 | + //echo "cont: ".implode('-',$wdate)." ix=$intervalix old=$currentKey interval=".$intervalarr[$intervalix]."<br />\n";//test |
|
| 5020 | + } |
|
| 5021 | + $updateOK = TRUE; |
|
| 5022 | + if( $updateOK && isset( $recur['BYMONTH'] )) |
|
| 5024 | 5023 | $updateOK = $this->_recurBYcntcheck( $recur['BYMONTH'] |
| 5025 | - , $wdate['month'] |
|
| 5026 | - ,($wdate['month'] - 13)); |
|
| 5027 | - if( $updateOK && isset( $recur['BYWEEKNO'] )) |
|
| 5024 | + , $wdate['month'] |
|
| 5025 | + ,($wdate['month'] - 13)); |
|
| 5026 | + if( $updateOK && isset( $recur['BYWEEKNO'] )) |
|
| 5028 | 5027 | $updateOK = $this->_recurBYcntcheck( $recur['BYWEEKNO'] |
| 5029 | - , $daycnts[$wdate['month']][$wdate['day']]['weekno_up'] |
|
| 5030 | - , $daycnts[$wdate['month']][$wdate['day']]['weekno_down'] ); |
|
| 5031 | - if( $updateOK && isset( $recur['BYYEARDAY'] )) |
|
| 5028 | + , $daycnts[$wdate['month']][$wdate['day']]['weekno_up'] |
|
| 5029 | + , $daycnts[$wdate['month']][$wdate['day']]['weekno_down'] ); |
|
| 5030 | + if( $updateOK && isset( $recur['BYYEARDAY'] )) |
|
| 5032 | 5031 | $updateOK = $this->_recurBYcntcheck( $recur['BYYEARDAY'] |
| 5033 | - , $daycnts[$wdate['month']][$wdate['day']]['yearcnt_up'] |
|
| 5034 | - , $daycnts[$wdate['month']][$wdate['day']]['yearcnt_down'] ); |
|
| 5035 | - if( $updateOK && isset( $recur['BYMONTHDAY'] )) |
|
| 5032 | + , $daycnts[$wdate['month']][$wdate['day']]['yearcnt_up'] |
|
| 5033 | + , $daycnts[$wdate['month']][$wdate['day']]['yearcnt_down'] ); |
|
| 5034 | + if( $updateOK && isset( $recur['BYMONTHDAY'] )) |
|
| 5036 | 5035 | $updateOK = $this->_recurBYcntcheck( $recur['BYMONTHDAY'] |
| 5037 | - , $wdate['day'] |
|
| 5038 | - , $daycnts[$wdate['month']][$wdate['day']]['monthcnt_down'] ); |
|
| 5036 | + , $wdate['day'] |
|
| 5037 | + , $daycnts[$wdate['month']][$wdate['day']]['monthcnt_down'] ); |
|
| 5039 | 5038 | //echo "efter BYMONTHDAY: ".implode('-',$wdate).' status: '; echo ($updateOK) ? 'TRUE' : 'FALSE'; echo "<br />\n";//test### |
| 5040 | - if( $updateOK && isset( $recur['BYDAY'] )) { |
|
| 5039 | + if( $updateOK && isset( $recur['BYDAY'] )) { |
|
| 5041 | 5040 | $updateOK = FALSE; |
| 5042 | 5041 | $m = $wdate['month']; |
| 5043 | 5042 | $d = $wdate['day']; |
| 5044 | 5043 | if( isset( $recur['BYDAY']['DAY'] )) { // single day, opt with year/month day order no |
| 5045 | - $daynoexists = $daynosw = $daynamesw = FALSE; |
|
| 5046 | - if( $recur['BYDAY']['DAY'] == $daycnts[$m][$d]['DAY'] ) |
|
| 5044 | + $daynoexists = $daynosw = $daynamesw = FALSE; |
|
| 5045 | + if( $recur['BYDAY']['DAY'] == $daycnts[$m][$d]['DAY'] ) |
|
| 5047 | 5046 | $daynamesw = TRUE; |
| 5048 | - if( isset( $recur['BYDAY'][0] )) { |
|
| 5047 | + if( isset( $recur['BYDAY'][0] )) { |
|
| 5049 | 5048 | $daynoexists = TRUE; |
| 5050 | 5049 | if(( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'MONTHLY' )) || isset( $recur['BYMONTH'] )) |
| 5051 | - $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5050 | + $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5052 | 5051 | , $daycnts[$m][$d]['monthdayno_up'] |
| 5053 | 5052 | , $daycnts[$m][$d]['monthdayno_down'] ); |
| 5054 | 5053 | elseif( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'YEARLY' )) |
| 5055 | - $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5054 | + $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5056 | 5055 | , $daycnts[$m][$d]['yeardayno_up'] |
| 5057 | 5056 | , $daycnts[$m][$d]['yeardayno_down'] ); |
| 5058 | - } |
|
| 5059 | - if(( $daynoexists && $daynosw && $daynamesw ) || |
|
| 5057 | + } |
|
| 5058 | + if(( $daynoexists && $daynosw && $daynamesw ) || |
|
| 5060 | 5059 | ( !$daynoexists && !$daynosw && $daynamesw )) { |
| 5061 | 5060 | $updateOK = TRUE; |
| 5062 | - } |
|
| 5061 | + } |
|
| 5063 | 5062 | //echo "daynoexists:$daynoexists daynosw:$daynosw daynamesw:$daynamesw<br />\n"; // test ### |
| 5064 | 5063 | } |
| 5065 | 5064 | else { |
| 5066 | - foreach( $recur['BYDAY'] as $bydayvalue ) { |
|
| 5065 | + foreach( $recur['BYDAY'] as $bydayvalue ) { |
|
| 5067 | 5066 | $daynoexists = $daynosw = $daynamesw = FALSE; |
| 5068 | 5067 | if( isset( $bydayvalue['DAY'] ) && |
| 5069 | 5068 | ( $bydayvalue['DAY'] == $daycnts[$m][$d]['DAY'] )) |
| 5070 | - $daynamesw = TRUE; |
|
| 5069 | + $daynamesw = TRUE; |
|
| 5071 | 5070 | if( isset( $bydayvalue[0] )) { |
| 5072 | - $daynoexists = TRUE; |
|
| 5073 | - if(( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'MONTHLY' )) || |
|
| 5071 | + $daynoexists = TRUE; |
|
| 5072 | + if(( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'MONTHLY' )) || |
|
| 5074 | 5073 | isset( $recur['BYMONTH'] )) |
| 5075 | 5074 | $daynosw = $this->_recurBYcntcheck( $bydayvalue['0'] |
| 5076 | - , $daycnts[$m][$d]['monthdayno_up'] |
|
| 5077 | - , $daycnts[$m][$d]['monthdayno_down'] ); |
|
| 5078 | - elseif( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'YEARLY' )) |
|
| 5075 | + , $daycnts[$m][$d]['monthdayno_up'] |
|
| 5076 | + , $daycnts[$m][$d]['monthdayno_down'] ); |
|
| 5077 | + elseif( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'YEARLY' )) |
|
| 5079 | 5078 | $daynosw = $this->_recurBYcntcheck( $bydayvalue['0'] |
| 5080 | - , $daycnts[$m][$d]['yeardayno_up'] |
|
| 5081 | - , $daycnts[$m][$d]['yeardayno_down'] ); |
|
| 5079 | + , $daycnts[$m][$d]['yeardayno_up'] |
|
| 5080 | + , $daycnts[$m][$d]['yeardayno_down'] ); |
|
| 5082 | 5081 | } |
| 5083 | 5082 | //echo "daynoexists:$daynoexists daynosw:$daynosw daynamesw:$daynamesw<br />\n"; // test ### |
| 5084 | 5083 | if(( $daynoexists && $daynosw && $daynamesw ) || |
| 5085 | 5084 | ( !$daynoexists && !$daynosw && $daynamesw )) { |
| 5086 | - $updateOK = TRUE; |
|
| 5087 | - break; |
|
| 5085 | + $updateOK = TRUE; |
|
| 5086 | + break; |
|
| 5088 | 5087 | } |
| 5089 | - } |
|
| 5088 | + } |
|
| 5089 | + } |
|
| 5090 | 5090 | } |
| 5091 | - } |
|
| 5092 | - //echo "efter BYDAY: ".implode('-',$wdate).' status: '; echo ($updateOK) ? 'TRUE' : 'FALSE'; echo "<br />\n"; // test ### |
|
| 5091 | + //echo "efter BYDAY: ".implode('-',$wdate).' status: '; echo ($updateOK) ? 'TRUE' : 'FALSE'; echo "<br />\n"; // test ### |
|
| 5093 | 5092 | /* check BYSETPOS */ |
| 5094 | - if( $updateOK ) { |
|
| 5093 | + if( $updateOK ) { |
|
| 5095 | 5094 | if( isset( $recur['BYSETPOS'] ) && |
| 5096 | 5095 | ( in_array( $recur['FREQ'], array( 'YEARLY', 'MONTHLY', 'WEEKLY', 'DAILY' )))) { |
| 5097 | - if( isset( $recur['WEEKLY'] )) { |
|
| 5096 | + if( isset( $recur['WEEKLY'] )) { |
|
| 5098 | 5097 | if( $bysetposWold == $daycnts[$wdate['month']][$wdate['day']]['weekno_up'] ) |
| 5099 | - $bysetposw1[] = $wdatets; |
|
| 5098 | + $bysetposw1[] = $wdatets; |
|
| 5100 | 5099 | else |
| 5101 | - $bysetposw2[] = $wdatets; |
|
| 5102 | - } |
|
| 5103 | - else { |
|
| 5100 | + $bysetposw2[] = $wdatets; |
|
| 5101 | + } |
|
| 5102 | + else { |
|
| 5104 | 5103 | if(( isset( $recur['FREQ'] ) && ( 'YEARLY' == $recur['FREQ'] ) && |
| 5105 | 5104 | ( $bysetposYold == $wdate['year'] )) || |
| 5106 | 5105 | ( isset( $recur['FREQ'] ) && ( 'MONTHLY' == $recur['FREQ'] ) && |
@@ -5110,438 +5109,438 @@ discard block |
||
| 5110 | 5109 | (( $bysetposYold == $wdate['year'] ) && |
| 5111 | 5110 | ( $bysetposMold == $wdate['month']) && |
| 5112 | 5111 | ( $bysetposDold == $wdate['sday'] )))) |
| 5113 | - $bysetposymd1[] = $wdatets; |
|
| 5112 | + $bysetposymd1[] = $wdatets; |
|
| 5114 | 5113 | else |
| 5115 | - $bysetposymd2[] = $wdatets; |
|
| 5116 | - } |
|
| 5114 | + $bysetposymd2[] = $wdatets; |
|
| 5115 | + } |
|
| 5117 | 5116 | } |
| 5118 | 5117 | else { |
| 5119 | 5118 | /* update result array if BYSETPOS is set */ |
| 5120 | - $countcnt++; |
|
| 5121 | - if( $startdatets <= $wdatets ) { // only output within period |
|
| 5119 | + $countcnt++; |
|
| 5120 | + if( $startdatets <= $wdatets ) { // only output within period |
|
| 5122 | 5121 | $result[$wdatets] = TRUE; |
| 5123 | - //echo "recur ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$wdatets),6))."<br />\n";//test |
|
| 5124 | - } |
|
| 5125 | - //else echo "recur undate ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$wdatets),6))." okdatstart ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$startdatets),6))."<br />\n";//test |
|
| 5126 | - $updateOK = FALSE; |
|
| 5122 | + //echo "recur ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$wdatets),6))."<br />\n";//test |
|
| 5123 | + } |
|
| 5124 | + //else echo "recur undate ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$wdatets),6))." okdatstart ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$startdatets),6))."<br />\n";//test |
|
| 5125 | + $updateOK = FALSE; |
|
| 5126 | + } |
|
| 5127 | 5127 | } |
| 5128 | - } |
|
| 5129 | 5128 | /* step up date */ |
| 5130 | - $this->_stepdate( $wdate, $wdatets, $step); |
|
| 5129 | + $this->_stepdate( $wdate, $wdatets, $step); |
|
| 5131 | 5130 | /* check if BYSETPOS is set for updating result array */ |
| 5132 | - if( $updateOK && isset( $recur['BYSETPOS'] )) { |
|
| 5131 | + if( $updateOK && isset( $recur['BYSETPOS'] )) { |
|
| 5133 | 5132 | $bysetpos = FALSE; |
| 5134 | 5133 | if( isset( $recur['FREQ'] ) && ( 'YEARLY' == $recur['FREQ'] ) && |
| 5135 | 5134 | ( $bysetposYold != $wdate['year'] )) { |
| 5136 | - $bysetpos = TRUE; |
|
| 5137 | - $bysetposYold = $wdate['year']; |
|
| 5135 | + $bysetpos = TRUE; |
|
| 5136 | + $bysetposYold = $wdate['year']; |
|
| 5138 | 5137 | } |
| 5139 | 5138 | elseif( isset( $recur['FREQ'] ) && ( 'MONTHLY' == $recur['FREQ'] && |
| 5140 | 5139 | (( $bysetposYold != $wdate['year'] ) || ( $bysetposMold != $wdate['month'] )))) { |
| 5141 | - $bysetpos = TRUE; |
|
| 5142 | - $bysetposYold = $wdate['year']; |
|
| 5143 | - $bysetposMold = $wdate['month']; |
|
| 5140 | + $bysetpos = TRUE; |
|
| 5141 | + $bysetposYold = $wdate['year']; |
|
| 5142 | + $bysetposMold = $wdate['month']; |
|
| 5144 | 5143 | } |
| 5145 | 5144 | elseif( isset( $recur['FREQ'] ) && ( 'WEEKLY' == $recur['FREQ'] )) { |
| 5146 | - $weekno = (int) date( 'W', mktime( 0, 0, $wkst, $wdate['month'], $wdate['day'], $wdate['year'])); |
|
| 5147 | - if( $bysetposWold != $weekno ) { |
|
| 5145 | + $weekno = (int) date( 'W', mktime( 0, 0, $wkst, $wdate['month'], $wdate['day'], $wdate['year'])); |
|
| 5146 | + if( $bysetposWold != $weekno ) { |
|
| 5148 | 5147 | $bysetposWold = $weekno; |
| 5149 | 5148 | $bysetpos = TRUE; |
| 5150 | - } |
|
| 5149 | + } |
|
| 5151 | 5150 | } |
| 5152 | 5151 | elseif( isset( $recur['FREQ'] ) && ( 'DAILY' == $recur['FREQ'] ) && |
| 5153 | 5152 | (( $bysetposYold != $wdate['year'] ) || |
| 5154 | 5153 | ( $bysetposMold != $wdate['month'] ) || |
| 5155 | 5154 | ( $bysetposDold != $wdate['sday'] ))) { |
| 5156 | - $bysetpos = TRUE; |
|
| 5157 | - $bysetposYold = $wdate['year']; |
|
| 5158 | - $bysetposMold = $wdate['month']; |
|
| 5159 | - $bysetposDold = $wdate['day']; |
|
| 5155 | + $bysetpos = TRUE; |
|
| 5156 | + $bysetposYold = $wdate['year']; |
|
| 5157 | + $bysetposMold = $wdate['month']; |
|
| 5158 | + $bysetposDold = $wdate['day']; |
|
| 5160 | 5159 | } |
| 5161 | 5160 | if( $bysetpos ) { |
| 5162 | - if( isset( $recur['BYWEEKNO'] )) { |
|
| 5161 | + if( isset( $recur['BYWEEKNO'] )) { |
|
| 5163 | 5162 | $bysetposarr1 = & $bysetposw1; |
| 5164 | 5163 | $bysetposarr2 = & $bysetposw2; |
| 5165 | - } |
|
| 5166 | - else { |
|
| 5164 | + } |
|
| 5165 | + else { |
|
| 5167 | 5166 | $bysetposarr1 = & $bysetposymd1; |
| 5168 | 5167 | $bysetposarr2 = & $bysetposymd2; |
| 5169 | - } |
|
| 5170 | - foreach( $recur['BYSETPOS'] as $ix ) { |
|
| 5168 | + } |
|
| 5169 | + foreach( $recur['BYSETPOS'] as $ix ) { |
|
| 5171 | 5170 | if( 0 > $ix ) // both positive and negative BYSETPOS allowed |
| 5172 | - $ix = ( count( $bysetposarr1 ) + $ix + 1); |
|
| 5171 | + $ix = ( count( $bysetposarr1 ) + $ix + 1); |
|
| 5173 | 5172 | $ix--; |
| 5174 | 5173 | if( isset( $bysetposarr1[$ix] )) { |
| 5175 | - if( $startdatets <= $bysetposarr1[$ix] ) { // only output within period |
|
| 5174 | + if( $startdatets <= $bysetposarr1[$ix] ) { // only output within period |
|
| 5176 | 5175 | $result[$bysetposarr1[$ix]] = TRUE; |
| 5177 | - //echo "recur ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$bysetposarr1[$ix]),6))."<br />\n";//test |
|
| 5178 | - } |
|
| 5179 | - $countcnt++; |
|
| 5176 | + //echo "recur ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$bysetposarr1[$ix]),6))."<br />\n";//test |
|
| 5177 | + } |
|
| 5178 | + $countcnt++; |
|
| 5180 | 5179 | } |
| 5181 | 5180 | if( isset( $recur['COUNT'] ) && ( $countcnt >= $recur['COUNT'] )) |
| 5182 | - break; |
|
| 5183 | - } |
|
| 5184 | - $bysetposarr1 = $bysetposarr2; |
|
| 5185 | - $bysetposarr2 = array(); |
|
| 5181 | + break; |
|
| 5182 | + } |
|
| 5183 | + $bysetposarr1 = $bysetposarr2; |
|
| 5184 | + $bysetposarr2 = array(); |
|
| 5185 | + } |
|
| 5186 | 5186 | } |
| 5187 | - } |
|
| 5188 | 5187 | } |
| 5189 | - } |
|
| 5190 | - function _recurBYcntcheck( $BYvalue, $upValue, $downValue ) { |
|
| 5188 | + } |
|
| 5189 | + function _recurBYcntcheck( $BYvalue, $upValue, $downValue ) { |
|
| 5191 | 5190 | if( is_array( $BYvalue ) && |
| 5192 | 5191 | ( in_array( $upValue, $BYvalue ) || in_array( $downValue, $BYvalue ))) |
| 5193 | - return TRUE; |
|
| 5192 | + return TRUE; |
|
| 5194 | 5193 | elseif(( $BYvalue == $upValue ) || ( $BYvalue == $downValue )) |
| 5195 | - return TRUE; |
|
| 5194 | + return TRUE; |
|
| 5196 | 5195 | else |
| 5197 | - return FALSE; |
|
| 5198 | - } |
|
| 5199 | - function _recurIntervalIx( $freq, $date, $wkst ) { |
|
| 5196 | + return FALSE; |
|
| 5197 | + } |
|
| 5198 | + function _recurIntervalIx( $freq, $date, $wkst ) { |
|
| 5200 | 5199 | /* create interval index */ |
| 5201 | 5200 | switch( $freq ) { |
| 5202 | - case 'YEARLY': |
|
| 5201 | + case 'YEARLY': |
|
| 5203 | 5202 | $intervalix = $date['year']; |
| 5204 | 5203 | break; |
| 5205 | - case 'MONTHLY': |
|
| 5204 | + case 'MONTHLY': |
|
| 5206 | 5205 | $intervalix = $date['year'].'-'.$date['month']; |
| 5207 | 5206 | break; |
| 5208 | - case 'WEEKLY': |
|
| 5207 | + case 'WEEKLY': |
|
| 5209 | 5208 | $wdatets = $this->_date2timestamp( $date ); |
| 5210 | 5209 | $intervalix = (int) date( 'W', ( $wdatets + $wkst )); |
| 5211 | - break; |
|
| 5212 | - case 'DAILY': |
|
| 5210 | + break; |
|
| 5211 | + case 'DAILY': |
|
| 5213 | 5212 | default: |
| 5214 | 5213 | $intervalix = $date['year'].'-'.$date['month'].'-'.$date['day']; |
| 5215 | 5214 | break; |
| 5216 | 5215 | } |
| 5217 | 5216 | return $intervalix; |
| 5218 | - } |
|
| 5217 | + } |
|
| 5219 | 5218 | /** |
| 5220 | - * convert input format for exrule and rrule to internal format |
|
| 5221 | - * |
|
| 5222 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5223 | - * @since 2.4.16 - 2008-10-19 |
|
| 5224 | - * @param array $rexrule |
|
| 5225 | - * @return array |
|
| 5226 | - */ |
|
| 5227 | - function _setRexrule( $rexrule ) { |
|
| 5219 | + * convert input format for exrule and rrule to internal format |
|
| 5220 | + * |
|
| 5221 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5222 | + * @since 2.4.16 - 2008-10-19 |
|
| 5223 | + * @param array $rexrule |
|
| 5224 | + * @return array |
|
| 5225 | + */ |
|
| 5226 | + function _setRexrule( $rexrule ) { |
|
| 5228 | 5227 | $input = array(); |
| 5229 | 5228 | if( empty( $rexrule )) |
| 5230 | - return $input; |
|
| 5229 | + return $input; |
|
| 5231 | 5230 | foreach( $rexrule as $rexrulelabel => $rexrulevalue ) { |
| 5232 | - $rexrulelabel = strtoupper( $rexrulelabel ); |
|
| 5233 | - if( 'UNTIL' != $rexrulelabel ) |
|
| 5231 | + $rexrulelabel = strtoupper( $rexrulelabel ); |
|
| 5232 | + if( 'UNTIL' != $rexrulelabel ) |
|
| 5234 | 5233 | $input[$rexrulelabel] = $rexrulevalue; |
| 5235 | - else { |
|
| 5234 | + else { |
|
| 5236 | 5235 | if( $this->_isArrayTimestampDate( $rexrulevalue )) // timestamp date |
| 5237 | - $input[$rexrulelabel] = $this->_timestamp2date( $rexrulevalue, 6 ); |
|
| 5236 | + $input[$rexrulelabel] = $this->_timestamp2date( $rexrulevalue, 6 ); |
|
| 5238 | 5237 | elseif( $this->_isArrayDate( $rexrulevalue )) // date-time |
| 5239 | - $input[$rexrulelabel] = $this->_date_time_array( $rexrulevalue, 6 ); |
|
| 5238 | + $input[$rexrulelabel] = $this->_date_time_array( $rexrulevalue, 6 ); |
|
| 5240 | 5239 | elseif( 8 <= strlen( trim( $rexrulevalue ))) // ex. 2006-08-03 10:12:18 |
| 5241 | - $input[$rexrulelabel] = $this->_date_time_string( $rexrulevalue ); |
|
| 5240 | + $input[$rexrulelabel] = $this->_date_time_string( $rexrulevalue ); |
|
| 5242 | 5241 | if(( 3 < count( $input[$rexrulelabel] )) && !isset( $input[$rexrulelabel]['tz'] )) |
| 5243 | - $input[$rexrulelabel]['tz'] = 'Z'; |
|
| 5244 | - } |
|
| 5242 | + $input[$rexrulelabel]['tz'] = 'Z'; |
|
| 5243 | + } |
|
| 5245 | 5244 | } |
| 5246 | 5245 | return $input; |
| 5247 | - } |
|
| 5246 | + } |
|
| 5248 | 5247 | /** |
| 5249 | - * convert format for input date to internal date with parameters |
|
| 5250 | - * |
|
| 5251 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5252 | - * @since 2.4.17 - 2008-10-31 |
|
| 5253 | - * @param mixed $year |
|
| 5254 | - * @param mixed $month optional |
|
| 5255 | - * @param int $day optional |
|
| 5256 | - * @param int $hour optional |
|
| 5257 | - * @param int $min optional |
|
| 5258 | - * @param int $sec optional |
|
| 5259 | - * @param array $params optional |
|
| 5260 | - * @param string $caller optional |
|
| 5261 | - * @return array |
|
| 5262 | - */ |
|
| 5263 | - function _setDate( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE, $caller=null ) { |
|
| 5248 | + * convert format for input date to internal date with parameters |
|
| 5249 | + * |
|
| 5250 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5251 | + * @since 2.4.17 - 2008-10-31 |
|
| 5252 | + * @param mixed $year |
|
| 5253 | + * @param mixed $month optional |
|
| 5254 | + * @param int $day optional |
|
| 5255 | + * @param int $hour optional |
|
| 5256 | + * @param int $min optional |
|
| 5257 | + * @param int $sec optional |
|
| 5258 | + * @param array $params optional |
|
| 5259 | + * @param string $caller optional |
|
| 5260 | + * @return array |
|
| 5261 | + */ |
|
| 5262 | + function _setDate( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE, $caller=null ) { |
|
| 5264 | 5263 | $input = $parno = null; |
| 5265 | 5264 | $localtime = (( 'dtstart' == $caller ) && in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) ? TRUE : FALSE; |
| 5266 | 5265 | if( $this->_isArrayDate( $year )) { |
| 5267 | - if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5268 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5269 | - if( isset( $input['params']['TZID'] )) { |
|
| 5266 | + if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5267 | + $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5268 | + if( isset( $input['params']['TZID'] )) { |
|
| 5270 | 5269 | $input['params']['VALUE'] = 'DATE-TIME'; |
| 5271 | 5270 | unset( $year['tz'] ); |
| 5272 | - } |
|
| 5273 | - $hitval = (( !empty( $year['tz'] ) || !empty( $year[6] ))) ? 7 : 6; |
|
| 5274 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval ); |
|
| 5275 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3, count( $year ), $parno ); |
|
| 5276 | - $input['value'] = $this->_date_time_array( $year, $parno ); |
|
| 5271 | + } |
|
| 5272 | + $hitval = (( !empty( $year['tz'] ) || !empty( $year[6] ))) ? 7 : 6; |
|
| 5273 | + $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval ); |
|
| 5274 | + $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3, count( $year ), $parno ); |
|
| 5275 | + $input['value'] = $this->_date_time_array( $year, $parno ); |
|
| 5277 | 5276 | } |
| 5278 | 5277 | elseif( $this->_isArrayTimestampDate( $year )) { |
| 5279 | - if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5280 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5281 | - if( isset( $input['params']['TZID'] )) { |
|
| 5278 | + if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5279 | + $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5280 | + if( isset( $input['params']['TZID'] )) { |
|
| 5282 | 5281 | $input['params']['VALUE'] = 'DATE-TIME'; |
| 5283 | 5282 | unset( $year['tz'] ); |
| 5284 | - } |
|
| 5285 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3 ); |
|
| 5286 | - $hitval = ( isset( $year['tz'] )) ? 7 : 6; |
|
| 5287 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval, $parno ); |
|
| 5288 | - $input['value'] = $this->_timestamp2date( $year, $parno ); |
|
| 5283 | + } |
|
| 5284 | + $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3 ); |
|
| 5285 | + $hitval = ( isset( $year['tz'] )) ? 7 : 6; |
|
| 5286 | + $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval, $parno ); |
|
| 5287 | + $input['value'] = $this->_timestamp2date( $year, $parno ); |
|
| 5289 | 5288 | } |
| 5290 | 5289 | elseif( 8 <= strlen( trim( $year ))) { // ex. 2006-08-03 10:12:18 |
| 5291 | - if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5292 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5293 | - if( isset( $input['params']['TZID'] )) { |
|
| 5290 | + if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5291 | + $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5292 | + if( isset( $input['params']['TZID'] )) { |
|
| 5294 | 5293 | $input['params']['VALUE'] = 'DATE-TIME'; |
| 5295 | 5294 | $parno = 6; |
| 5296 | - } |
|
| 5297 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', 7, $parno ); |
|
| 5298 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3, $parno, $parno ); |
|
| 5299 | - $input['value'] = $this->_date_time_string( $year, $parno ); |
|
| 5295 | + } |
|
| 5296 | + $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', 7, $parno ); |
|
| 5297 | + $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3, $parno, $parno ); |
|
| 5298 | + $input['value'] = $this->_date_time_string( $year, $parno ); |
|
| 5300 | 5299 | } |
| 5301 | 5300 | else { |
| 5302 | - if( is_array( $params )) { |
|
| 5301 | + if( is_array( $params )) { |
|
| 5303 | 5302 | if( $localtime ) unset ( $params['VALUE'], $params['TZID'] ); |
| 5304 | 5303 | $input['params'] = $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' )); |
| 5305 | - } |
|
| 5306 | - elseif( is_array( $tz )) { |
|
| 5304 | + } |
|
| 5305 | + elseif( is_array( $tz )) { |
|
| 5307 | 5306 | $input['params'] = $this->_setParams( $tz, array( 'VALUE' => 'DATE-TIME' )); |
| 5308 | 5307 | $tz = FALSE; |
| 5309 | - } |
|
| 5310 | - elseif( is_array( $hour )) { |
|
| 5308 | + } |
|
| 5309 | + elseif( is_array( $hour )) { |
|
| 5311 | 5310 | $input['params'] = $this->_setParams( $hour, array( 'VALUE' => 'DATE-TIME' )); |
| 5312 | 5311 | $hour = $min = $sec = $tz = FALSE; |
| 5313 | - } |
|
| 5314 | - if( isset( $input['params']['TZID'] )) { |
|
| 5312 | + } |
|
| 5313 | + if( isset( $input['params']['TZID'] )) { |
|
| 5315 | 5314 | $tz = null; |
| 5316 | 5315 | $input['params']['VALUE'] = 'DATE-TIME'; |
| 5317 | - } |
|
| 5318 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3 ); |
|
| 5319 | - $hitval = ( !empty( $tz )) ? 7 : 6; |
|
| 5320 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval, $parno, $parno ); |
|
| 5321 | - $input['value'] = array( 'year' => $year, 'month' => $month, 'day' => $day ); |
|
| 5322 | - if( 3 != $parno ) { |
|
| 5316 | + } |
|
| 5317 | + $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3 ); |
|
| 5318 | + $hitval = ( !empty( $tz )) ? 7 : 6; |
|
| 5319 | + $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval, $parno, $parno ); |
|
| 5320 | + $input['value'] = array( 'year' => $year, 'month' => $month, 'day' => $day ); |
|
| 5321 | + if( 3 != $parno ) { |
|
| 5323 | 5322 | $input['value']['hour'] = ( $hour ) ? $hour : '0'; |
| 5324 | 5323 | $input['value']['min'] = ( $min ) ? $min : '0'; |
| 5325 | 5324 | $input['value']['sec'] = ( $sec ) ? $sec : '0'; |
| 5326 | 5325 | if( !empty( $tz )) |
| 5327 | - $input['value']['tz'] = $tz; |
|
| 5328 | - } |
|
| 5326 | + $input['value']['tz'] = $tz; |
|
| 5327 | + } |
|
| 5329 | 5328 | } |
| 5330 | 5329 | if( 3 == $parno ) { |
| 5331 | - $input['params']['VALUE'] = 'DATE'; |
|
| 5332 | - unset( $input['value']['tz'] ); |
|
| 5333 | - unset( $input['params']['TZID'] ); |
|
| 5330 | + $input['params']['VALUE'] = 'DATE'; |
|
| 5331 | + unset( $input['value']['tz'] ); |
|
| 5332 | + unset( $input['params']['TZID'] ); |
|
| 5334 | 5333 | } |
| 5335 | 5334 | elseif( isset( $input['params']['TZID'] )) |
| 5336 | - unset( $input['value']['tz'] ); |
|
| 5335 | + unset( $input['value']['tz'] ); |
|
| 5337 | 5336 | if( $localtime ) unset( $input['value']['tz'], $input['params']['TZID'] ); |
| 5338 | 5337 | if( isset( $input['value']['tz'] )) |
| 5339 | - $input['value']['tz'] = (string) $input['value']['tz']; |
|
| 5338 | + $input['value']['tz'] = (string) $input['value']['tz']; |
|
| 5340 | 5339 | if( !empty( $input['value']['tz'] ) && ( 'Z' != $input['value']['tz'] ) && |
| 5341 | 5340 | ( !$this->_isOffset( $input['value']['tz'] ))) |
| 5342 | - $input['params']['TZID'] = $input['value']['tz']; |
|
| 5341 | + $input['params']['TZID'] = $input['value']['tz']; |
|
| 5343 | 5342 | return $input; |
| 5344 | - } |
|
| 5343 | + } |
|
| 5345 | 5344 | /** |
| 5346 | - * convert format for input date (UTC) to internal date with parameters |
|
| 5347 | - * |
|
| 5348 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5349 | - * @since 2.4.17 - 2008-10-31 |
|
| 5350 | - * @param mixed $year |
|
| 5351 | - * @param mixed $month optional |
|
| 5352 | - * @param int $day optional |
|
| 5353 | - * @param int $hour optional |
|
| 5354 | - * @param int $min optional |
|
| 5355 | - * @param int $sec optional |
|
| 5356 | - * @param array $params optional |
|
| 5357 | - * @return array |
|
| 5358 | - */ |
|
| 5359 | - function _setDate2( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 5345 | + * convert format for input date (UTC) to internal date with parameters |
|
| 5346 | + * |
|
| 5347 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5348 | + * @since 2.4.17 - 2008-10-31 |
|
| 5349 | + * @param mixed $year |
|
| 5350 | + * @param mixed $month optional |
|
| 5351 | + * @param int $day optional |
|
| 5352 | + * @param int $hour optional |
|
| 5353 | + * @param int $min optional |
|
| 5354 | + * @param int $sec optional |
|
| 5355 | + * @param array $params optional |
|
| 5356 | + * @return array |
|
| 5357 | + */ |
|
| 5358 | + function _setDate2( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 5360 | 5359 | $input = null; |
| 5361 | 5360 | if( $this->_isArrayDate( $year )) { |
| 5362 | - $input['value'] = $this->_date_time_array( $year, 7 ); |
|
| 5363 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
|
| 5361 | + $input['value'] = $this->_date_time_array( $year, 7 ); |
|
| 5362 | + $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
|
| 5364 | 5363 | } |
| 5365 | 5364 | elseif( $this->_isArrayTimestampDate( $year )) { |
| 5366 | - $input['value'] = $this->_timestamp2date( $year, 7 ); |
|
| 5367 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
|
| 5365 | + $input['value'] = $this->_timestamp2date( $year, 7 ); |
|
| 5366 | + $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
|
| 5368 | 5367 | } |
| 5369 | 5368 | elseif( 8 <= strlen( trim( $year ))) { // ex. 2006-08-03 10:12:18 |
| 5370 | - $input['value'] = $this->_date_time_string( $year, 7 ); |
|
| 5371 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
|
| 5369 | + $input['value'] = $this->_date_time_string( $year, 7 ); |
|
| 5370 | + $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
|
| 5372 | 5371 | } |
| 5373 | 5372 | else { |
| 5374 | - $input['value'] = array( 'year' => $year |
|
| 5375 | - , 'month' => $month |
|
| 5376 | - , 'day' => $day |
|
| 5377 | - , 'hour' => $hour |
|
| 5378 | - , 'min' => $min |
|
| 5379 | - , 'sec' => $sec ); |
|
| 5380 | - $input['params'] = $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5373 | + $input['value'] = array( 'year' => $year |
|
| 5374 | + , 'month' => $month |
|
| 5375 | + , 'day' => $day |
|
| 5376 | + , 'hour' => $hour |
|
| 5377 | + , 'min' => $min |
|
| 5378 | + , 'sec' => $sec ); |
|
| 5379 | + $input['params'] = $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5381 | 5380 | } |
| 5382 | 5381 | $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', 7 ); // remove default |
| 5383 | 5382 | if( !isset( $input['value']['hour'] )) |
| 5384 | - $input['value']['hour'] = 0; |
|
| 5383 | + $input['value']['hour'] = 0; |
|
| 5385 | 5384 | if( !isset( $input['value']['min'] )) |
| 5386 | - $input['value']['min'] = 0; |
|
| 5385 | + $input['value']['min'] = 0; |
|
| 5387 | 5386 | if( !isset( $input['value']['sec'] )) |
| 5388 | - $input['value']['sec'] = 0; |
|
| 5387 | + $input['value']['sec'] = 0; |
|
| 5389 | 5388 | if( !isset( $input['value']['tz'] ) || !$this->_isOffset( $input['value']['tz'] )) |
| 5390 | - $input['value']['tz'] = 'Z'; |
|
| 5389 | + $input['value']['tz'] = 'Z'; |
|
| 5391 | 5390 | return $input; |
| 5392 | - } |
|
| 5391 | + } |
|
| 5393 | 5392 | /** |
| 5394 | - * check index and set (an indexed) content in multiple value array |
|
| 5395 | - * |
|
| 5396 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5397 | - * @since 2.5.1 - 2008-11-06 |
|
| 5398 | - * @param array $valArr |
|
| 5399 | - * @param mixed $value |
|
| 5400 | - * @param array $params |
|
| 5401 | - * @param array $defaults |
|
| 5402 | - * @param int $index |
|
| 5403 | - * @return void |
|
| 5404 | - */ |
|
| 5405 | - function _setMval( & $valArr, $value, $params=FALSE, $defaults=FALSE, $index=FALSE ) { |
|
| 5393 | + * check index and set (an indexed) content in multiple value array |
|
| 5394 | + * |
|
| 5395 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5396 | + * @since 2.5.1 - 2008-11-06 |
|
| 5397 | + * @param array $valArr |
|
| 5398 | + * @param mixed $value |
|
| 5399 | + * @param array $params |
|
| 5400 | + * @param array $defaults |
|
| 5401 | + * @param int $index |
|
| 5402 | + * @return void |
|
| 5403 | + */ |
|
| 5404 | + function _setMval( & $valArr, $value, $params=FALSE, $defaults=FALSE, $index=FALSE ) { |
|
| 5406 | 5405 | if( !is_array( $valArr )) $valArr = array(); |
| 5407 | 5406 | if( $index ) |
| 5408 | - $index = $index - 1; |
|
| 5407 | + $index = $index - 1; |
|
| 5409 | 5408 | elseif( 0 < count( $valArr )) { |
| 5410 | - $index = end( array_keys( $valArr )); |
|
| 5411 | - $index += 1; |
|
| 5409 | + $index = end( array_keys( $valArr )); |
|
| 5410 | + $index += 1; |
|
| 5412 | 5411 | } |
| 5413 | 5412 | else |
| 5414 | - $index = 0; |
|
| 5413 | + $index = 0; |
|
| 5415 | 5414 | $valArr[$index] = array( 'value' => $value, 'params' => $this->_setParams( $params, $defaults )); |
| 5416 | 5415 | ksort( $valArr ); |
| 5417 | - } |
|
| 5416 | + } |
|
| 5418 | 5417 | /** |
| 5419 | - * set input (formatted) parameters- component property attributes |
|
| 5420 | - * |
|
| 5421 | - * default parameters can be set, if missing |
|
| 5422 | - * |
|
| 5423 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5424 | - * @since 1.x.x - 2007-05-01 |
|
| 5425 | - * @param array $params |
|
| 5426 | - * @param array $defaults |
|
| 5427 | - * @return array |
|
| 5428 | - */ |
|
| 5429 | - function _setParams( $params, $defaults=FALSE ) { |
|
| 5418 | + * set input (formatted) parameters- component property attributes |
|
| 5419 | + * |
|
| 5420 | + * default parameters can be set, if missing |
|
| 5421 | + * |
|
| 5422 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5423 | + * @since 1.x.x - 2007-05-01 |
|
| 5424 | + * @param array $params |
|
| 5425 | + * @param array $defaults |
|
| 5426 | + * @return array |
|
| 5427 | + */ |
|
| 5428 | + function _setParams( $params, $defaults=FALSE ) { |
|
| 5430 | 5429 | if( !is_array( $params)) |
| 5431 | - $params = array(); |
|
| 5430 | + $params = array(); |
|
| 5432 | 5431 | $input = array(); |
| 5433 | 5432 | foreach( $params as $paramKey => $paramValue ) { |
| 5434 | - if( is_array( $paramValue )) { |
|
| 5433 | + if( is_array( $paramValue )) { |
|
| 5435 | 5434 | foreach( $paramValue as $pkey => $pValue ) { |
| 5436 | - if(( '"' == substr( $pValue, 0, 1 )) && ( '"' == substr( $pValue, -1 ))) |
|
| 5435 | + if(( '"' == substr( $pValue, 0, 1 )) && ( '"' == substr( $pValue, -1 ))) |
|
| 5437 | 5436 | $paramValue[$pkey] = substr( $pValue, 1, ( strlen( $pValue ) - 2 )); |
| 5438 | 5437 | } |
| 5439 | - } |
|
| 5440 | - elseif(( '"' == substr( $paramValue, 0, 1 )) && ( '"' == substr( $paramValue, -1 ))) |
|
| 5438 | + } |
|
| 5439 | + elseif(( '"' == substr( $paramValue, 0, 1 )) && ( '"' == substr( $paramValue, -1 ))) |
|
| 5441 | 5440 | $paramValue = substr( $paramValue, 1, ( strlen( $paramValue ) - 2 )); |
| 5442 | - if( 'VALUE' == strtoupper( $paramKey )) |
|
| 5441 | + if( 'VALUE' == strtoupper( $paramKey )) |
|
| 5443 | 5442 | $input['VALUE'] = strtoupper( $paramValue ); |
| 5444 | - else |
|
| 5443 | + else |
|
| 5445 | 5444 | $input[strtoupper( $paramKey )] = $paramValue; |
| 5446 | 5445 | } |
| 5447 | 5446 | if( is_array( $defaults )) { |
| 5448 | - foreach( $defaults as $paramKey => $paramValue ) { |
|
| 5447 | + foreach( $defaults as $paramKey => $paramValue ) { |
|
| 5449 | 5448 | if( !isset( $input[$paramKey] )) |
| 5450 | - $input[$paramKey] = $paramValue; |
|
| 5451 | - } |
|
| 5449 | + $input[$paramKey] = $paramValue; |
|
| 5450 | + } |
|
| 5452 | 5451 | } |
| 5453 | 5452 | return (0 < count( $input )) ? $input : null; |
| 5454 | - } |
|
| 5453 | + } |
|
| 5455 | 5454 | /** |
| 5456 | - * step date, return updated date, array and timpstamp |
|
| 5457 | - * |
|
| 5458 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5459 | - * @since 2.4.16 - 2008-10-18 |
|
| 5460 | - * @param array $date, date to step |
|
| 5461 | - * @param int $timestamp |
|
| 5462 | - * @param array $step, default array( 'day' => 1 ) |
|
| 5463 | - * @return void |
|
| 5464 | - */ |
|
| 5465 | - function _stepdate( &$date, &$timestamp, $step=array( 'day' => 1 )) { |
|
| 5455 | + * step date, return updated date, array and timpstamp |
|
| 5456 | + * |
|
| 5457 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5458 | + * @since 2.4.16 - 2008-10-18 |
|
| 5459 | + * @param array $date, date to step |
|
| 5460 | + * @param int $timestamp |
|
| 5461 | + * @param array $step, default array( 'day' => 1 ) |
|
| 5462 | + * @return void |
|
| 5463 | + */ |
|
| 5464 | + function _stepdate( &$date, &$timestamp, $step=array( 'day' => 1 )) { |
|
| 5466 | 5465 | foreach( $step as $stepix => $stepvalue ) |
| 5467 | - $date[$stepix] += $stepvalue; |
|
| 5466 | + $date[$stepix] += $stepvalue; |
|
| 5468 | 5467 | $timestamp = $this->_date2timestamp( $date ); |
| 5469 | 5468 | $date = $this->_timestamp2date( $timestamp, 6 ); |
| 5470 | 5469 | foreach( $date as $k => $v ) { |
| 5471 | - if( ctype_digit( $v )) |
|
| 5470 | + if( ctype_digit( $v )) |
|
| 5472 | 5471 | $date[$k] = (int) $v; |
| 5473 | 5472 | } |
| 5474 | - } |
|
| 5473 | + } |
|
| 5475 | 5474 | /** |
| 5476 | - * convert timestamp to date array |
|
| 5477 | - * |
|
| 5478 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5479 | - * @since 2.4.16 - 2008-11-01 |
|
| 5480 | - * @param mixed $timestamp |
|
| 5481 | - * @param int $parno |
|
| 5482 | - * @return array |
|
| 5483 | - */ |
|
| 5484 | - function _timestamp2date( $timestamp, $parno=6 ) { |
|
| 5475 | + * convert timestamp to date array |
|
| 5476 | + * |
|
| 5477 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5478 | + * @since 2.4.16 - 2008-11-01 |
|
| 5479 | + * @param mixed $timestamp |
|
| 5480 | + * @param int $parno |
|
| 5481 | + * @return array |
|
| 5482 | + */ |
|
| 5483 | + function _timestamp2date( $timestamp, $parno=6 ) { |
|
| 5485 | 5484 | if( is_array( $timestamp )) { |
| 5486 | - if(( 7 == $parno ) && !empty( $timestamp['tz'] )) |
|
| 5485 | + if(( 7 == $parno ) && !empty( $timestamp['tz'] )) |
|
| 5487 | 5486 | $tz = $timestamp['tz']; |
| 5488 | - $timestamp = $timestamp['timestamp']; |
|
| 5487 | + $timestamp = $timestamp['timestamp']; |
|
| 5489 | 5488 | } |
| 5490 | 5489 | $output = array( 'year' => date( 'Y', $timestamp ) |
| 5491 | - , 'month' => date( 'm', $timestamp ) |
|
| 5492 | - , 'day' => date( 'd', $timestamp )); |
|
| 5490 | + , 'month' => date( 'm', $timestamp ) |
|
| 5491 | + , 'day' => date( 'd', $timestamp )); |
|
| 5493 | 5492 | if( 3 != $parno ) { |
| 5494 | - $output['hour'] = date( 'H', $timestamp ); |
|
| 5495 | - $output['min'] = date( 'i', $timestamp ); |
|
| 5496 | - $output['sec'] = date( 's', $timestamp ); |
|
| 5497 | - if( isset( $tz )) |
|
| 5493 | + $output['hour'] = date( 'H', $timestamp ); |
|
| 5494 | + $output['min'] = date( 'i', $timestamp ); |
|
| 5495 | + $output['sec'] = date( 's', $timestamp ); |
|
| 5496 | + if( isset( $tz )) |
|
| 5498 | 5497 | $output['tz'] = $tz; |
| 5499 | 5498 | } |
| 5500 | 5499 | return $output; |
| 5501 | - } |
|
| 5500 | + } |
|
| 5502 | 5501 | /** |
| 5503 | - * convert (numeric) local time offset to seconds correcting localtime to GMT |
|
| 5504 | - * |
|
| 5505 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5506 | - * @since 2.4.16 - 2008-10-19 |
|
| 5507 | - * @param string $offset |
|
| 5508 | - * @return integer |
|
| 5509 | - */ |
|
| 5510 | - function _tz2offset( $tz ) { |
|
| 5502 | + * convert (numeric) local time offset to seconds correcting localtime to GMT |
|
| 5503 | + * |
|
| 5504 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5505 | + * @since 2.4.16 - 2008-10-19 |
|
| 5506 | + * @param string $offset |
|
| 5507 | + * @return integer |
|
| 5508 | + */ |
|
| 5509 | + function _tz2offset( $tz ) { |
|
| 5511 | 5510 | $tz = trim( (string) $tz ); |
| 5512 | 5511 | $offset = 0; |
| 5513 | 5512 | if((( 5 != strlen( $tz )) && ( 7 != strlen( $tz ))) || |
| 5514 | 5513 | (( '+' != substr( $tz, 0, 1 )) && ( '-' != substr( $tz, 0, 1 ))) || |
| 5515 | 5514 | (( '0000' >= substr( $tz, 1, 4 )) && ( '9999' < substr( $tz, 1, 4 ))) || |
| 5516 | 5515 | (( 7 == strlen( $tz )) && ( '00' > substr( $tz, 5, 2 )) && ( '99' < substr( $tz, 5, 2 )))) |
| 5517 | - return $offset; |
|
| 5516 | + return $offset; |
|
| 5518 | 5517 | $hours2sec = (int) substr( $tz, 1, 2 ) * 3600; |
| 5519 | 5518 | $min2sec = (int) substr( $tz, 3, 2 ) * 60; |
| 5520 | 5519 | $sec = ( 7 == strlen( $tz )) ? (int) substr( $tz, -2 ) : '00'; |
| 5521 | 5520 | $offset = $hours2sec + $min2sec + $sec; |
| 5522 | 5521 | $offset = ('-' == substr( $tz, 0, 1 )) ? $offset : -1 * $offset; |
| 5523 | 5522 | return $offset; |
| 5524 | - } |
|
| 5523 | + } |
|
| 5525 | 5524 | /*********************************************************************************/ |
| 5526 | 5525 | /*********************************************************************************/ |
| 5527 | 5526 | /** |
| 5528 | - * get general component config variables or info about subcomponents |
|
| 5529 | - * |
|
| 5530 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5531 | - * @since 2.5.1 - 2008-11-02 |
|
| 5532 | - * @param string $config |
|
| 5533 | - * @return value |
|
| 5534 | - */ |
|
| 5535 | - function getConfig( $config ) { |
|
| 5527 | + * get general component config variables or info about subcomponents |
|
| 5528 | + * |
|
| 5529 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5530 | + * @since 2.5.1 - 2008-11-02 |
|
| 5531 | + * @param string $config |
|
| 5532 | + * @return value |
|
| 5533 | + */ |
|
| 5534 | + function getConfig( $config ) { |
|
| 5536 | 5535 | switch( strtoupper( $config )) { |
| 5537 | - case 'ALLOWEMPTY': |
|
| 5536 | + case 'ALLOWEMPTY': |
|
| 5538 | 5537 | return $this->allowEmpty; |
| 5539 | 5538 | break; |
| 5540 | - case 'COMPSINFO': |
|
| 5539 | + case 'COMPSINFO': |
|
| 5541 | 5540 | unset( $this->compix ); |
| 5542 | 5541 | $info = array(); |
| 5543 | 5542 | if( isset( $this->components )) { |
| 5544 | - foreach( $this->components as $cix => $component ) { |
|
| 5543 | + foreach( $this->components as $cix => $component ) { |
|
| 5545 | 5544 | if( empty( $component )) continue; |
| 5546 | 5545 | unset( $component->propix ); |
| 5547 | 5546 | $info[$cix]['ordno'] = $cix + 1; |
@@ -5550,26 +5549,26 @@ discard block |
||
| 5550 | 5549 | $info[$cix]['props'] = $component->getConfig( 'propinfo' ); |
| 5551 | 5550 | $info[$cix]['sub'] = $component->getConfig( 'compsinfo' ); |
| 5552 | 5551 | unset( $component->propix ); |
| 5553 | - } |
|
| 5552 | + } |
|
| 5554 | 5553 | } |
| 5555 | 5554 | return $info; |
| 5556 | 5555 | break; |
| 5557 | - case 'FORMAT': |
|
| 5556 | + case 'FORMAT': |
|
| 5558 | 5557 | return $this->format; |
| 5559 | 5558 | break; |
| 5560 | - case 'LANGUAGE': |
|
| 5559 | + case 'LANGUAGE': |
|
| 5561 | 5560 | // get language for calendar component as defined in [RFC 1766] |
| 5562 | 5561 | return $this->language; |
| 5563 | 5562 | break; |
| 5564 | - case 'NL': |
|
| 5563 | + case 'NL': |
|
| 5565 | 5564 | case 'NEWLINECHAR': |
| 5566 | 5565 | return $this->nl; |
| 5567 | 5566 | break; |
| 5568 | - case 'PROPINFO': |
|
| 5567 | + case 'PROPINFO': |
|
| 5569 | 5568 | $output = array(); |
| 5570 | 5569 | if( !in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) { |
| 5571 | - if( empty( $this->uid['value'] )) $this->_makeuid(); |
|
| 5572 | - $output['UID'] = 1; |
|
| 5570 | + if( empty( $this->uid['value'] )) $this->_makeuid(); |
|
| 5571 | + $output['UID'] = 1; |
|
| 5573 | 5572 | } |
| 5574 | 5573 | if( !empty( $this->dtstamp )) $output['DTSTAMP'] = 1; |
| 5575 | 5574 | if( !empty( $this->summary )) $output['SUMMARY'] = 1; |
@@ -5616,51 +5615,51 @@ discard block |
||
| 5616 | 5615 | if( !empty( $this->xprop )) $output['X-PROP'] = count( $this->xprop ); |
| 5617 | 5616 | return $output; |
| 5618 | 5617 | break; |
| 5619 | - case 'UNIQUE_ID': |
|
| 5618 | + case 'UNIQUE_ID': |
|
| 5620 | 5619 | if( empty( $this->unique_id )) |
| 5621 | - $this->unique_id = ( isset( $_SERVER['SERVER_NAME'] )) ? gethostbyname( $_SERVER['SERVER_NAME'] ) : 'localhost'; |
|
| 5620 | + $this->unique_id = ( isset( $_SERVER['SERVER_NAME'] )) ? gethostbyname( $_SERVER['SERVER_NAME'] ) : 'localhost'; |
|
| 5622 | 5621 | return $this->unique_id; |
| 5623 | 5622 | break; |
| 5624 | 5623 | } |
| 5625 | - } |
|
| 5624 | + } |
|
| 5626 | 5625 | /** |
| 5627 | - * general component config setting |
|
| 5628 | - * |
|
| 5629 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5630 | - * @since 2.4.8 - 2008-10-24 |
|
| 5631 | - * @param string $config |
|
| 5632 | - * @param string $value |
|
| 5633 | - * @return void |
|
| 5634 | - */ |
|
| 5635 | - function setConfig( $config, $value ) { |
|
| 5626 | + * general component config setting |
|
| 5627 | + * |
|
| 5628 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5629 | + * @since 2.4.8 - 2008-10-24 |
|
| 5630 | + * @param string $config |
|
| 5631 | + * @param string $value |
|
| 5632 | + * @return void |
|
| 5633 | + */ |
|
| 5634 | + function setConfig( $config, $value ) { |
|
| 5636 | 5635 | $res = FALSE; |
| 5637 | 5636 | switch( strtoupper( $config )) { |
| 5638 | - case 'ALLOWEMPTY': |
|
| 5637 | + case 'ALLOWEMPTY': |
|
| 5639 | 5638 | $this->allowEmpty = $value; |
| 5640 | 5639 | $subcfg = array( 'ALLOWEMPTY' => $value ); |
| 5641 | 5640 | $res = TRUE; |
| 5642 | 5641 | break; |
| 5643 | - case 'FORMAT': |
|
| 5642 | + case 'FORMAT': |
|
| 5644 | 5643 | $value = trim( $value ); |
| 5645 | 5644 | $this->format = $value; |
| 5646 | 5645 | $this->_createFormat(); |
| 5647 | 5646 | $subcfg = array( 'FORMAT' => $value ); |
| 5648 | 5647 | $res = TRUE; |
| 5649 | 5648 | break; |
| 5650 | - case 'LANGUAGE': |
|
| 5649 | + case 'LANGUAGE': |
|
| 5651 | 5650 | // set language for calendar component as defined in [RFC 1766] |
| 5652 | 5651 | $value = trim( $value ); |
| 5653 | 5652 | $this->language = $value; |
| 5654 | 5653 | $subcfg = array( 'LANGUAGE' => $value ); |
| 5655 | 5654 | $res = TRUE; |
| 5656 | 5655 | break; |
| 5657 | - case 'NL': |
|
| 5656 | + case 'NL': |
|
| 5658 | 5657 | case 'NEWLINECHAR': |
| 5659 | 5658 | $this->nl = $value; |
| 5660 | 5659 | $subcfg = array( 'NL' => $value ); |
| 5661 | 5660 | $res = TRUE; |
| 5662 | 5661 | break; |
| 5663 | - case 'UNIQUE_ID': |
|
| 5662 | + case 'UNIQUE_ID': |
|
| 5664 | 5663 | $value = trim( $value ); |
| 5665 | 5664 | $this->unique_id = $value; |
| 5666 | 5665 | $subcfg = array( 'UNIQUE_ID' => $value ); |
@@ -5669,763 +5668,763 @@ discard block |
||
| 5669 | 5668 | } |
| 5670 | 5669 | if( !$res ) return FALSE; |
| 5671 | 5670 | if( isset( $subcfg ) && !empty( $this->components )) { |
| 5672 | - foreach( $subcfg as $cfgkey => $cfgvalue ) { |
|
| 5671 | + foreach( $subcfg as $cfgkey => $cfgvalue ) { |
|
| 5673 | 5672 | foreach( $this->components as $cix => $component ) { |
| 5674 | - $res = $component->setConfig( $cfgkey, $cfgvalue ); |
|
| 5675 | - if( !$res ) |
|
| 5673 | + $res = $component->setConfig( $cfgkey, $cfgvalue ); |
|
| 5674 | + if( !$res ) |
|
| 5676 | 5675 | break 2; |
| 5677 | - $this->components[$cix] = $component; // PHP4 compliant |
|
| 5676 | + $this->components[$cix] = $component; // PHP4 compliant |
|
| 5677 | + } |
|
| 5678 | 5678 | } |
| 5679 | - } |
|
| 5680 | 5679 | } |
| 5681 | 5680 | return $res; |
| 5682 | - } |
|
| 5681 | + } |
|
| 5683 | 5682 | /*********************************************************************************/ |
| 5684 | 5683 | /** |
| 5685 | - * delete component property value |
|
| 5686 | - * |
|
| 5687 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5688 | - * @since 2.5.1 - 2008-11-14 |
|
| 5689 | - * @param string $propName |
|
| 5690 | - * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
|
| 5691 | - * @return bool, if successfull delete TRUE |
|
| 5692 | - */ |
|
| 5693 | - function deleteProperty( $propName, $propix=FALSE ) { |
|
| 5684 | + * delete component property value |
|
| 5685 | + * |
|
| 5686 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5687 | + * @since 2.5.1 - 2008-11-14 |
|
| 5688 | + * @param string $propName |
|
| 5689 | + * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
|
| 5690 | + * @return bool, if successfull delete TRUE |
|
| 5691 | + */ |
|
| 5692 | + function deleteProperty( $propName, $propix=FALSE ) { |
|
| 5694 | 5693 | if( $this->_notExistProp( $propName )) return FALSE; |
| 5695 | 5694 | $propName = strtoupper( $propName ); |
| 5696 | 5695 | if( in_array( $propName, array( 'ATTACH', 'ATTENDEE', 'CATEGORIES', 'COMMENT', 'CONTACT', 'DESCRIPTION', 'EXDATE', 'EXRULE', |
| 5697 | 5696 | 'FREEBUSY', 'RDATE', 'RELATED-TO', 'RESOURCES', 'RRULE', 'REQUEST-STATUS', 'TZNAME', 'X-PROP' ))) { |
| 5698 | - if( !$propix ) |
|
| 5697 | + if( !$propix ) |
|
| 5699 | 5698 | $propix = ( isset( $this->propdelix[$propName] )) ? $this->propdelix[$propName] + 2 : 1; |
| 5700 | - $this->propdelix[$propName] = --$propix; |
|
| 5699 | + $this->propdelix[$propName] = --$propix; |
|
| 5701 | 5700 | } |
| 5702 | 5701 | $return = FALSE; |
| 5703 | 5702 | switch( $propName ) { |
| 5704 | - case 'ACTION': |
|
| 5703 | + case 'ACTION': |
|
| 5705 | 5704 | if( !empty( $this->action )) { |
| 5706 | - $this->action = ''; |
|
| 5707 | - $return = TRUE; |
|
| 5705 | + $this->action = ''; |
|
| 5706 | + $return = TRUE; |
|
| 5708 | 5707 | } |
| 5709 | 5708 | break; |
| 5710 | - case 'ATTACH': |
|
| 5709 | + case 'ATTACH': |
|
| 5711 | 5710 | return $this->deletePropertyM( $this->attach, $propix ); |
| 5712 | 5711 | break; |
| 5713 | - case 'ATTENDEE': |
|
| 5712 | + case 'ATTENDEE': |
|
| 5714 | 5713 | return $this->deletePropertyM( $this->attendee, $propix ); |
| 5715 | 5714 | break; |
| 5716 | - case 'CATEGORIES': |
|
| 5715 | + case 'CATEGORIES': |
|
| 5717 | 5716 | return $this->deletePropertyM( $this->categories, $propix ); |
| 5718 | 5717 | break; |
| 5719 | - case 'CLASS': |
|
| 5718 | + case 'CLASS': |
|
| 5720 | 5719 | if( !empty( $this->class )) { |
| 5721 | - $this->class = ''; |
|
| 5722 | - $return = TRUE; |
|
| 5720 | + $this->class = ''; |
|
| 5721 | + $return = TRUE; |
|
| 5723 | 5722 | } |
| 5724 | 5723 | break; |
| 5725 | - case 'COMMENT': |
|
| 5724 | + case 'COMMENT': |
|
| 5726 | 5725 | return $this->deletePropertyM( $this->comment, $propix ); |
| 5727 | 5726 | break; |
| 5728 | - case 'COMPLETED': |
|
| 5727 | + case 'COMPLETED': |
|
| 5729 | 5728 | if( !empty( $this->completed )) { |
| 5730 | - $this->completed = ''; |
|
| 5731 | - $return = TRUE; |
|
| 5729 | + $this->completed = ''; |
|
| 5730 | + $return = TRUE; |
|
| 5732 | 5731 | } |
| 5733 | 5732 | break; |
| 5734 | - case 'CONTACT': |
|
| 5733 | + case 'CONTACT': |
|
| 5735 | 5734 | return $this->deletePropertyM( $this->contact, $propix ); |
| 5736 | 5735 | break; |
| 5737 | - case 'CREATED': |
|
| 5736 | + case 'CREATED': |
|
| 5738 | 5737 | if( !empty( $this->created )) { |
| 5739 | - $this->created = ''; |
|
| 5740 | - $return = TRUE; |
|
| 5738 | + $this->created = ''; |
|
| 5739 | + $return = TRUE; |
|
| 5741 | 5740 | } |
| 5742 | 5741 | break; |
| 5743 | - case 'DESCRIPTION': |
|
| 5742 | + case 'DESCRIPTION': |
|
| 5744 | 5743 | return $this->deletePropertyM( $this->description, $propix ); |
| 5745 | 5744 | break; |
| 5746 | - case 'DTEND': |
|
| 5745 | + case 'DTEND': |
|
| 5747 | 5746 | if( !empty( $this->dtend )) { |
| 5748 | - $this->dtend = ''; |
|
| 5749 | - $return = TRUE; |
|
| 5747 | + $this->dtend = ''; |
|
| 5748 | + $return = TRUE; |
|
| 5750 | 5749 | } |
| 5751 | 5750 | break; |
| 5752 | - case 'DTSTAMP': |
|
| 5751 | + case 'DTSTAMP': |
|
| 5753 | 5752 | if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
| 5754 | - return FALSE; |
|
| 5753 | + return FALSE; |
|
| 5755 | 5754 | if( !empty( $this->dtstamp )) { |
| 5756 | - $this->dtstamp = ''; |
|
| 5757 | - $return = TRUE; |
|
| 5755 | + $this->dtstamp = ''; |
|
| 5756 | + $return = TRUE; |
|
| 5758 | 5757 | } |
| 5759 | 5758 | break; |
| 5760 | - case 'DTSTART': |
|
| 5759 | + case 'DTSTART': |
|
| 5761 | 5760 | if( !empty( $this->dtstart )) { |
| 5762 | - $this->dtstart = ''; |
|
| 5763 | - $return = TRUE; |
|
| 5761 | + $this->dtstart = ''; |
|
| 5762 | + $return = TRUE; |
|
| 5764 | 5763 | } |
| 5765 | 5764 | break; |
| 5766 | - case 'DUE': |
|
| 5765 | + case 'DUE': |
|
| 5767 | 5766 | if( !empty( $this->due )) { |
| 5768 | - $this->due = ''; |
|
| 5769 | - $return = TRUE; |
|
| 5767 | + $this->due = ''; |
|
| 5768 | + $return = TRUE; |
|
| 5770 | 5769 | } |
| 5771 | 5770 | break; |
| 5772 | - case 'DURATION': |
|
| 5771 | + case 'DURATION': |
|
| 5773 | 5772 | if( !empty( $this->duration )) { |
| 5774 | - $this->duration = ''; |
|
| 5775 | - $return = TRUE; |
|
| 5773 | + $this->duration = ''; |
|
| 5774 | + $return = TRUE; |
|
| 5776 | 5775 | } |
| 5777 | 5776 | break; |
| 5778 | - case 'EXDATE': |
|
| 5777 | + case 'EXDATE': |
|
| 5779 | 5778 | return $this->deletePropertyM( $this->exdate, $propix ); |
| 5780 | 5779 | break; |
| 5781 | - case 'EXRULE': |
|
| 5780 | + case 'EXRULE': |
|
| 5782 | 5781 | return $this->deletePropertyM( $this->exrule, $propix ); |
| 5783 | 5782 | break; |
| 5784 | - case 'FREEBUSY': |
|
| 5783 | + case 'FREEBUSY': |
|
| 5785 | 5784 | return $this->deletePropertyM( $this->freebusy, $propix ); |
| 5786 | 5785 | break; |
| 5787 | - case 'GEO': |
|
| 5786 | + case 'GEO': |
|
| 5788 | 5787 | if( !empty( $this->geo )) { |
| 5789 | - $this->geo = ''; |
|
| 5790 | - $return = TRUE; |
|
| 5788 | + $this->geo = ''; |
|
| 5789 | + $return = TRUE; |
|
| 5791 | 5790 | } |
| 5792 | 5791 | break; |
| 5793 | - case 'LAST-MODIFIED': |
|
| 5792 | + case 'LAST-MODIFIED': |
|
| 5794 | 5793 | if( !empty( $this->lastmodified )) { |
| 5795 | - $this->lastmodified = ''; |
|
| 5796 | - $return = TRUE; |
|
| 5794 | + $this->lastmodified = ''; |
|
| 5795 | + $return = TRUE; |
|
| 5797 | 5796 | } |
| 5798 | 5797 | break; |
| 5799 | - case 'LOCATION': |
|
| 5798 | + case 'LOCATION': |
|
| 5800 | 5799 | if( !empty( $this->location )) { |
| 5801 | - $this->location = ''; |
|
| 5802 | - $return = TRUE; |
|
| 5800 | + $this->location = ''; |
|
| 5801 | + $return = TRUE; |
|
| 5803 | 5802 | } |
| 5804 | 5803 | break; |
| 5805 | - case 'ORGANIZER': |
|
| 5804 | + case 'ORGANIZER': |
|
| 5806 | 5805 | if( !empty( $this->organizer )) { |
| 5807 | - $this->organizer = ''; |
|
| 5808 | - $return = TRUE; |
|
| 5806 | + $this->organizer = ''; |
|
| 5807 | + $return = TRUE; |
|
| 5809 | 5808 | } |
| 5810 | 5809 | break; |
| 5811 | - case 'PERCENT-COMPLETE': |
|
| 5810 | + case 'PERCENT-COMPLETE': |
|
| 5812 | 5811 | if( !empty( $this->percentcomplete )) { |
| 5813 | - $this->percentcomplete = ''; |
|
| 5814 | - $return = TRUE; |
|
| 5812 | + $this->percentcomplete = ''; |
|
| 5813 | + $return = TRUE; |
|
| 5815 | 5814 | } |
| 5816 | 5815 | break; |
| 5817 | - case 'PRIORITY': |
|
| 5816 | + case 'PRIORITY': |
|
| 5818 | 5817 | if( !empty( $this->priority )) { |
| 5819 | - $this->priority = ''; |
|
| 5820 | - $return = TRUE; |
|
| 5818 | + $this->priority = ''; |
|
| 5819 | + $return = TRUE; |
|
| 5821 | 5820 | } |
| 5822 | 5821 | break; |
| 5823 | - case 'RDATE': |
|
| 5822 | + case 'RDATE': |
|
| 5824 | 5823 | return $this->deletePropertyM( $this->rdate, $propix ); |
| 5825 | 5824 | break; |
| 5826 | - case 'RECURRENCE-ID': |
|
| 5825 | + case 'RECURRENCE-ID': |
|
| 5827 | 5826 | if( !empty( $this->recurrenceid )) { |
| 5828 | - $this->recurrenceid = ''; |
|
| 5829 | - $return = TRUE; |
|
| 5827 | + $this->recurrenceid = ''; |
|
| 5828 | + $return = TRUE; |
|
| 5830 | 5829 | } |
| 5831 | 5830 | break; |
| 5832 | - case 'RELATED-TO': |
|
| 5831 | + case 'RELATED-TO': |
|
| 5833 | 5832 | return $this->deletePropertyM( $this->relatedto, $propix ); |
| 5834 | 5833 | break; |
| 5835 | - case 'REPEAT': |
|
| 5834 | + case 'REPEAT': |
|
| 5836 | 5835 | if( !empty( $this->repeat )) { |
| 5837 | - $this->repeat = ''; |
|
| 5838 | - $return = TRUE; |
|
| 5836 | + $this->repeat = ''; |
|
| 5837 | + $return = TRUE; |
|
| 5839 | 5838 | } |
| 5840 | 5839 | break; |
| 5841 | - case 'REQUEST-STATUS': |
|
| 5840 | + case 'REQUEST-STATUS': |
|
| 5842 | 5841 | return $this->deletePropertyM( $this->requeststatus, $propix ); |
| 5843 | 5842 | break; |
| 5844 | - case 'RESOURCES': |
|
| 5843 | + case 'RESOURCES': |
|
| 5845 | 5844 | return $this->deletePropertyM( $this->resources, $propix ); |
| 5846 | 5845 | break; |
| 5847 | - case 'RRULE': |
|
| 5846 | + case 'RRULE': |
|
| 5848 | 5847 | return $this->deletePropertyM( $this->rrule, $propix ); |
| 5849 | 5848 | break; |
| 5850 | - case 'SEQUENCE': |
|
| 5849 | + case 'SEQUENCE': |
|
| 5851 | 5850 | if( !empty( $this->sequence )) { |
| 5852 | - $this->sequence = ''; |
|
| 5853 | - $return = TRUE; |
|
| 5851 | + $this->sequence = ''; |
|
| 5852 | + $return = TRUE; |
|
| 5854 | 5853 | } |
| 5855 | 5854 | break; |
| 5856 | - case 'STATUS': |
|
| 5855 | + case 'STATUS': |
|
| 5857 | 5856 | if( !empty( $this->status )) { |
| 5858 | - $this->status = ''; |
|
| 5859 | - $return = TRUE; |
|
| 5857 | + $this->status = ''; |
|
| 5858 | + $return = TRUE; |
|
| 5860 | 5859 | } |
| 5861 | 5860 | break; |
| 5862 | - case 'SUMMARY': |
|
| 5861 | + case 'SUMMARY': |
|
| 5863 | 5862 | if( !empty( $this->summary )) { |
| 5864 | - $this->summary = ''; |
|
| 5865 | - $return = TRUE; |
|
| 5863 | + $this->summary = ''; |
|
| 5864 | + $return = TRUE; |
|
| 5866 | 5865 | } |
| 5867 | 5866 | break; |
| 5868 | - case 'TRANSP': |
|
| 5867 | + case 'TRANSP': |
|
| 5869 | 5868 | if( !empty( $this->transp )) { |
| 5870 | - $this->transp = ''; |
|
| 5871 | - $return = TRUE; |
|
| 5869 | + $this->transp = ''; |
|
| 5870 | + $return = TRUE; |
|
| 5872 | 5871 | } |
| 5873 | 5872 | break; |
| 5874 | - case 'TRIGGER': |
|
| 5873 | + case 'TRIGGER': |
|
| 5875 | 5874 | if( !empty( $this->trigger )) { |
| 5876 | - $this->trigger = ''; |
|
| 5877 | - $return = TRUE; |
|
| 5875 | + $this->trigger = ''; |
|
| 5876 | + $return = TRUE; |
|
| 5878 | 5877 | } |
| 5879 | 5878 | break; |
| 5880 | - case 'TZID': |
|
| 5879 | + case 'TZID': |
|
| 5881 | 5880 | if( !empty( $this->tzid )) { |
| 5882 | - $this->tzid = ''; |
|
| 5883 | - $return = TRUE; |
|
| 5881 | + $this->tzid = ''; |
|
| 5882 | + $return = TRUE; |
|
| 5884 | 5883 | } |
| 5885 | 5884 | break; |
| 5886 | - case 'TZNAME': |
|
| 5885 | + case 'TZNAME': |
|
| 5887 | 5886 | return $this->deletePropertyM( $this->tzname, $propix ); |
| 5888 | 5887 | break; |
| 5889 | - case 'TZOFFSETFROM': |
|
| 5888 | + case 'TZOFFSETFROM': |
|
| 5890 | 5889 | if( !empty( $this->tzoffsetfrom )) { |
| 5891 | - $this->tzoffsetfrom = ''; |
|
| 5892 | - $return = TRUE; |
|
| 5890 | + $this->tzoffsetfrom = ''; |
|
| 5891 | + $return = TRUE; |
|
| 5893 | 5892 | } |
| 5894 | 5893 | break; |
| 5895 | - case 'TZOFFSETTO': |
|
| 5894 | + case 'TZOFFSETTO': |
|
| 5896 | 5895 | if( !empty( $this->tzoffsetto )) { |
| 5897 | - $this->tzoffsetto = ''; |
|
| 5898 | - $return = TRUE; |
|
| 5896 | + $this->tzoffsetto = ''; |
|
| 5897 | + $return = TRUE; |
|
| 5899 | 5898 | } |
| 5900 | 5899 | break; |
| 5901 | - case 'TZURL': |
|
| 5900 | + case 'TZURL': |
|
| 5902 | 5901 | if( !empty( $this->tzurl )) { |
| 5903 | - $this->tzurl = ''; |
|
| 5904 | - $return = TRUE; |
|
| 5902 | + $this->tzurl = ''; |
|
| 5903 | + $return = TRUE; |
|
| 5905 | 5904 | } |
| 5906 | 5905 | break; |
| 5907 | - case 'UID': |
|
| 5906 | + case 'UID': |
|
| 5908 | 5907 | if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
| 5909 | - return FALSE; |
|
| 5908 | + return FALSE; |
|
| 5910 | 5909 | if( !empty( $this->uid )) { |
| 5911 | - $this->uid = ''; |
|
| 5912 | - $return = TRUE; |
|
| 5910 | + $this->uid = ''; |
|
| 5911 | + $return = TRUE; |
|
| 5913 | 5912 | } |
| 5914 | 5913 | break; |
| 5915 | - case 'URL': |
|
| 5914 | + case 'URL': |
|
| 5916 | 5915 | if( !empty( $this->url )) { |
| 5917 | - $this->url = ''; |
|
| 5918 | - $return = TRUE; |
|
| 5916 | + $this->url = ''; |
|
| 5917 | + $return = TRUE; |
|
| 5919 | 5918 | } |
| 5920 | 5919 | break; |
| 5921 | - default: |
|
| 5920 | + default: |
|
| 5922 | 5921 | $reduced = ''; |
| 5923 | 5922 | if( $propName != 'X-PROP' ) { |
| 5924 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 5925 | - foreach( $this->xprop as $k => $a ) { |
|
| 5923 | + if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 5924 | + foreach( $this->xprop as $k => $a ) { |
|
| 5926 | 5925 | if(( $k != $propName ) && !empty( $a )) |
| 5927 | - $reduced[$k] = $a; |
|
| 5928 | - } |
|
| 5926 | + $reduced[$k] = $a; |
|
| 5927 | + } |
|
| 5929 | 5928 | } |
| 5930 | 5929 | else { |
| 5931 | - if( count( $this->xprop ) <= $propix ) return FALSE; |
|
| 5932 | - $xpropno = 0; |
|
| 5933 | - foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 5930 | + if( count( $this->xprop ) <= $propix ) return FALSE; |
|
| 5931 | + $xpropno = 0; |
|
| 5932 | + foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 5934 | 5933 | if( $propix != $xpropno ) |
| 5935 | - $reduced[$xpropkey] = $xpropvalue; |
|
| 5934 | + $reduced[$xpropkey] = $xpropvalue; |
|
| 5936 | 5935 | $xpropno++; |
| 5937 | - } |
|
| 5936 | + } |
|
| 5938 | 5937 | } |
| 5939 | 5938 | $this->xprop = $reduced; |
| 5940 | 5939 | return TRUE; |
| 5941 | 5940 | } |
| 5942 | 5941 | return $return; |
| 5943 | - } |
|
| 5942 | + } |
|
| 5944 | 5943 | /*********************************************************************************/ |
| 5945 | 5944 | /** |
| 5946 | - * delete component property value, fixing components with multiple occurencies |
|
| 5947 | - * |
|
| 5948 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5949 | - * @since 2.4.5 - 2008-11-07 |
|
| 5950 | - * @param array $multiprop, reference to a component property |
|
| 5951 | - * @param int @propix, default 0 |
|
| 5952 | - * @return bool TRUE |
|
| 5953 | - */ |
|
| 5954 | - function deletePropertyM( & $multiprop, $propix=0 ) { |
|
| 5945 | + * delete component property value, fixing components with multiple occurencies |
|
| 5946 | + * |
|
| 5947 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5948 | + * @since 2.4.5 - 2008-11-07 |
|
| 5949 | + * @param array $multiprop, reference to a component property |
|
| 5950 | + * @param int @propix, default 0 |
|
| 5951 | + * @return bool TRUE |
|
| 5952 | + */ |
|
| 5953 | + function deletePropertyM( & $multiprop, $propix=0 ) { |
|
| 5955 | 5954 | if( !isset( $multiprop[$propix])) return FALSE; |
| 5956 | 5955 | unset( $multiprop[$propix] ); |
| 5957 | 5956 | if( empty( $multiprop )) $multiprop = ''; |
| 5958 | 5957 | return ( isset( $this->multiprop[$propix] )) ? FALSE : TRUE; |
| 5959 | - } |
|
| 5958 | + } |
|
| 5960 | 5959 | /** |
| 5961 | - * get component property value/params |
|
| 5962 | - * |
|
| 5963 | - * if property has multiply values, consequtive function calls are needed |
|
| 5964 | - * |
|
| 5965 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5966 | - * @since 2.5.1 - 2008-11-02 |
|
| 5967 | - * @param string $propName, optional |
|
| 5968 | - * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
|
| 5969 | - * @param bool $inclParam=FALSE |
|
| 5970 | - * @param bool $specform=FALSE |
|
| 5971 | - * @return mixed |
|
| 5972 | - */ |
|
| 5973 | - function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE, $specform=FALSE ) { |
|
| 5960 | + * get component property value/params |
|
| 5961 | + * |
|
| 5962 | + * if property has multiply values, consequtive function calls are needed |
|
| 5963 | + * |
|
| 5964 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 5965 | + * @since 2.5.1 - 2008-11-02 |
|
| 5966 | + * @param string $propName, optional |
|
| 5967 | + * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
|
| 5968 | + * @param bool $inclParam=FALSE |
|
| 5969 | + * @param bool $specform=FALSE |
|
| 5970 | + * @return mixed |
|
| 5971 | + */ |
|
| 5972 | + function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE, $specform=FALSE ) { |
|
| 5974 | 5973 | if( $this->_notExistProp( $propName )) return FALSE; |
| 5975 | 5974 | $propName = ( $propName ) ? strtoupper( $propName ) : 'X-PROP'; |
| 5976 | 5975 | if( in_array( $propName, array( 'ATTACH', 'ATTENDEE', 'CATEGORIES', 'COMMENT', 'CONTACT', 'DESCRIPTION', 'EXDATE', 'EXRULE', |
| 5977 | 5976 | 'FREEBUSY', 'RDATE', 'RELATED-TO', 'RESOURCES', 'RRULE', 'REQUEST-STATUS', 'TZNAME', 'X-PROP' ))) { |
| 5978 | - if( !$propix ) |
|
| 5977 | + if( !$propix ) |
|
| 5979 | 5978 | $propix = ( isset( $this->propix[$propName] )) ? $this->propix[$propName] + 2 : 1; |
| 5980 | - $this->propix[$propName] = --$propix; |
|
| 5979 | + $this->propix[$propName] = --$propix; |
|
| 5981 | 5980 | } |
| 5982 | 5981 | switch( $propName ) { |
| 5983 | - case 'ACTION': |
|
| 5982 | + case 'ACTION': |
|
| 5984 | 5983 | if( !empty( $this->action['value'] )) return ( $inclParam ) ? $this->action : $this->action['value']; |
| 5985 | 5984 | break; |
| 5986 | - case 'ATTACH': |
|
| 5985 | + case 'ATTACH': |
|
| 5987 | 5986 | if( !isset( $this->attach[$propix] )) return FALSE; |
| 5988 | 5987 | return ( $inclParam ) ? $this->attach[$propix] : $this->attach[$propix]['value']; |
| 5989 | 5988 | break; |
| 5990 | - case 'ATTENDEE': |
|
| 5989 | + case 'ATTENDEE': |
|
| 5991 | 5990 | if( !isset( $this->attendee[$propix] )) return FALSE; |
| 5992 | 5991 | return ( $inclParam ) ? $this->attendee[$propix] : $this->attendee[$propix]['value']; |
| 5993 | 5992 | break; |
| 5994 | - case 'CATEGORIES': |
|
| 5993 | + case 'CATEGORIES': |
|
| 5995 | 5994 | if( !isset( $this->categories[$propix] )) return FALSE; |
| 5996 | 5995 | return ( $inclParam ) ? $this->categories[$propix] : $this->categories[$propix]['value']; |
| 5997 | 5996 | break; |
| 5998 | - case 'CLASS': |
|
| 5997 | + case 'CLASS': |
|
| 5999 | 5998 | if( !empty( $this->class['value'] )) return ( $inclParam ) ? $this->class : $this->class['value']; |
| 6000 | 5999 | break; |
| 6001 | - case 'COMMENT': |
|
| 6000 | + case 'COMMENT': |
|
| 6002 | 6001 | if( !isset( $this->comment[$propix] )) return FALSE; |
| 6003 | 6002 | return ( $inclParam ) ? $this->comment[$propix] : $this->comment[$propix]['value']; |
| 6004 | 6003 | break; |
| 6005 | - case 'COMPLETED': |
|
| 6004 | + case 'COMPLETED': |
|
| 6006 | 6005 | if( !empty( $this->completed['value'] )) return ( $inclParam ) ? $this->completed : $this->completed['value']; |
| 6007 | 6006 | break; |
| 6008 | - case 'CONTACT': |
|
| 6007 | + case 'CONTACT': |
|
| 6009 | 6008 | if( !isset( $this->contact[$propix] )) return FALSE; |
| 6010 | 6009 | return ( $inclParam ) ? $this->contact[$propix] : $this->contact[$propix]['value']; |
| 6011 | 6010 | break; |
| 6012 | - case 'CREATED': |
|
| 6011 | + case 'CREATED': |
|
| 6013 | 6012 | if( !empty( $this->created['value'] )) return ( $inclParam ) ? $this->created : $this->created['value']; |
| 6014 | 6013 | break; |
| 6015 | - case 'DESCRIPTION': |
|
| 6014 | + case 'DESCRIPTION': |
|
| 6016 | 6015 | if( !isset( $this->description[$propix] )) return FALSE; |
| 6017 | 6016 | return ( $inclParam ) ? $this->description[$propix] : $this->description[$propix]['value']; |
| 6018 | 6017 | break; |
| 6019 | - case 'DTEND': |
|
| 6018 | + case 'DTEND': |
|
| 6020 | 6019 | if( !empty( $this->dtend['value'] )) return ( $inclParam ) ? $this->dtend : $this->dtend['value']; |
| 6021 | 6020 | break; |
| 6022 | - case 'DTSTAMP': |
|
| 6021 | + case 'DTSTAMP': |
|
| 6023 | 6022 | if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
| 6024 | - return; |
|
| 6023 | + return; |
|
| 6025 | 6024 | if( !isset( $this->dtstamp['value'] )) |
| 6026 | - $this->_makeDtstamp(); |
|
| 6025 | + $this->_makeDtstamp(); |
|
| 6027 | 6026 | return ( $inclParam ) ? $this->dtstamp : $this->dtstamp['value']; |
| 6028 | 6027 | break; |
| 6029 | - case 'DTSTART': |
|
| 6028 | + case 'DTSTART': |
|
| 6030 | 6029 | if( !empty( $this->dtstart['value'] )) return ( $inclParam ) ? $this->dtstart : $this->dtstart['value']; |
| 6031 | 6030 | break; |
| 6032 | - case 'DUE': |
|
| 6031 | + case 'DUE': |
|
| 6033 | 6032 | if( !empty( $this->due['value'] )) return ( $inclParam ) ? $this->due : $this->due['value']; |
| 6034 | 6033 | break; |
| 6035 | - case 'DURATION': |
|
| 6034 | + case 'DURATION': |
|
| 6036 | 6035 | if( !isset( $this->duration['value'] )) return FALSE; |
| 6037 | 6036 | $value = ( $specform ) ? $this->duration2date() : $this->duration['value']; |
| 6038 | 6037 | return ( $inclParam ) ? array( 'value' => $value, 'params' => $this->duration['params'] ) : $value; |
| 6039 | 6038 | break; |
| 6040 | - case 'EXDATE': |
|
| 6039 | + case 'EXDATE': |
|
| 6041 | 6040 | if( !isset( $this->exdate[$propix] )) return FALSE; |
| 6042 | 6041 | return ( $inclParam ) ? $this->exdate[$propix] : $this->exdate[$propix]['value']; |
| 6043 | 6042 | break; |
| 6044 | - case 'EXRULE': |
|
| 6043 | + case 'EXRULE': |
|
| 6045 | 6044 | if( !isset( $this->exrule[$propix] )) return FALSE; |
| 6046 | 6045 | return ( $inclParam ) ? $this->exrule[$propix] : $this->exrule[$propix]['value']; |
| 6047 | 6046 | break; |
| 6048 | - case 'FREEBUSY': |
|
| 6047 | + case 'FREEBUSY': |
|
| 6049 | 6048 | if( !isset( $this->freebusy[$propix] )) return FALSE; |
| 6050 | 6049 | return ( $inclParam ) ? $this->freebusy[$propix] : $this->freebusy[$propix]['value']; |
| 6051 | 6050 | break; |
| 6052 | - case 'GEO': |
|
| 6051 | + case 'GEO': |
|
| 6053 | 6052 | if( !empty( $this->geo['value'] )) return ( $inclParam ) ? $this->geo : $this->geo['value']; |
| 6054 | 6053 | break; |
| 6055 | - case 'LAST-MODIFIED': |
|
| 6054 | + case 'LAST-MODIFIED': |
|
| 6056 | 6055 | if( !empty( $this->lastmodified['value'] )) return ( $inclParam ) ? $this->lastmodified : $this->lastmodified['value']; |
| 6057 | 6056 | break; |
| 6058 | - case 'LOCATION': |
|
| 6057 | + case 'LOCATION': |
|
| 6059 | 6058 | if( !empty( $this->location['value'] )) return ( $inclParam ) ? $this->location : $this->location['value']; |
| 6060 | 6059 | break; |
| 6061 | - case 'ORGANIZER': |
|
| 6060 | + case 'ORGANIZER': |
|
| 6062 | 6061 | if( !empty( $this->organizer['value'] )) return ( $inclParam ) ? $this->organizer : $this->organizer['value']; |
| 6063 | 6062 | break; |
| 6064 | - case 'PERCENT-COMPLETE': |
|
| 6063 | + case 'PERCENT-COMPLETE': |
|
| 6065 | 6064 | if( !empty( $this->percentcomplete['value'] )) return ( $inclParam ) ? $this->percentcomplete : $this->percentcomplete['value']; |
| 6066 | 6065 | break; |
| 6067 | - case 'PRIORITY': |
|
| 6066 | + case 'PRIORITY': |
|
| 6068 | 6067 | if( !empty( $this->priority['value'] )) return ( $inclParam ) ? $this->priority : $this->priority['value']; |
| 6069 | 6068 | break; |
| 6070 | - case 'RDATE': |
|
| 6069 | + case 'RDATE': |
|
| 6071 | 6070 | if( !isset( $this->rdate[$propix] )) return FALSE; |
| 6072 | 6071 | return ( $inclParam ) ? $this->rdate[$propix] : $this->rdate[$propix]['value']; |
| 6073 | 6072 | break; |
| 6074 | - case 'RECURRENCE-ID': |
|
| 6073 | + case 'RECURRENCE-ID': |
|
| 6075 | 6074 | if( !empty( $this->recurrenceid['value'] )) return ( $inclParam ) ? $this->recurrenceid : $this->recurrenceid['value']; |
| 6076 | 6075 | break; |
| 6077 | - case 'RELATED-TO': |
|
| 6076 | + case 'RELATED-TO': |
|
| 6078 | 6077 | if( !isset( $this->relatedto[$propix] )) return FALSE; |
| 6079 | 6078 | return ( $inclParam ) ? $this->relatedto[$propix] : $this->relatedto[$propix]['value']; |
| 6080 | 6079 | break; |
| 6081 | - case 'REPEAT': |
|
| 6080 | + case 'REPEAT': |
|
| 6082 | 6081 | if( !empty( $this->repeat['value'] )) return ( $inclParam ) ? $this->repeat : $this->repeat['value']; |
| 6083 | 6082 | break; |
| 6084 | - case 'REQUEST-STATUS': |
|
| 6083 | + case 'REQUEST-STATUS': |
|
| 6085 | 6084 | if( !isset( $this->requeststatus[$propix] )) return FALSE; |
| 6086 | 6085 | return ( $inclParam ) ? $this->requeststatus[$propix] : $this->requeststatus[$propix]['value']; |
| 6087 | 6086 | break; |
| 6088 | - case 'RESOURCES': |
|
| 6087 | + case 'RESOURCES': |
|
| 6089 | 6088 | if( !isset( $this->resources[$propix] )) return FALSE; |
| 6090 | 6089 | return ( $inclParam ) ? $this->resources[$propix] : $this->resources[$propix]['value']; |
| 6091 | 6090 | break; |
| 6092 | - case 'RRULE': |
|
| 6091 | + case 'RRULE': |
|
| 6093 | 6092 | if( !isset( $this->rrule[$propix] )) return FALSE; |
| 6094 | 6093 | return ( $inclParam ) ? $this->rrule[$propix] : $this->rrule[$propix]['value']; |
| 6095 | 6094 | break; |
| 6096 | - case 'SEQUENCE': |
|
| 6095 | + case 'SEQUENCE': |
|
| 6097 | 6096 | if( !empty( $this->sequence['value'] )) return ( $inclParam ) ? $this->sequence : $this->sequence['value']; |
| 6098 | 6097 | break; |
| 6099 | - case 'STATUS': |
|
| 6098 | + case 'STATUS': |
|
| 6100 | 6099 | if( !empty( $this->status['value'] )) return ( $inclParam ) ? $this->status : $this->status['value']; |
| 6101 | 6100 | break; |
| 6102 | - case 'SUMMARY': |
|
| 6101 | + case 'SUMMARY': |
|
| 6103 | 6102 | if( !empty( $this->summary['value'] )) return ( $inclParam ) ? $this->summary : $this->summary['value']; |
| 6104 | 6103 | break; |
| 6105 | - case 'TRANSP': |
|
| 6104 | + case 'TRANSP': |
|
| 6106 | 6105 | if( !empty( $this->transp['value'] )) return ( $inclParam ) ? $this->transp : $this->transp['value']; |
| 6107 | 6106 | break; |
| 6108 | - case 'TRIGGER': |
|
| 6107 | + case 'TRIGGER': |
|
| 6109 | 6108 | if( !empty( $this->trigger['value'] )) return ( $inclParam ) ? $this->trigger : $this->trigger['value']; |
| 6110 | 6109 | break; |
| 6111 | - case 'TZID': |
|
| 6110 | + case 'TZID': |
|
| 6112 | 6111 | if( !empty( $this->tzid['value'] )) return ( $inclParam ) ? $this->tzid : $this->tzid['value']; |
| 6113 | 6112 | break; |
| 6114 | - case 'TZNAME': |
|
| 6113 | + case 'TZNAME': |
|
| 6115 | 6114 | if( !isset( $this->tzname[$propix] )) return FALSE; |
| 6116 | 6115 | return ( $inclParam ) ? $this->tzname[$propix] : $this->tzname[$propix]['value']; |
| 6117 | 6116 | break; |
| 6118 | - case 'TZOFFSETFROM': |
|
| 6117 | + case 'TZOFFSETFROM': |
|
| 6119 | 6118 | if( !empty( $this->tzoffsetfrom['value'] )) return ( $inclParam ) ? $this->tzoffsetfrom : $this->tzoffsetfrom['value']; |
| 6120 | 6119 | break; |
| 6121 | - case 'TZOFFSETTO': |
|
| 6120 | + case 'TZOFFSETTO': |
|
| 6122 | 6121 | if( !empty( $this->tzoffsetto['value'] )) return ( $inclParam ) ? $this->tzoffsetto : $this->tzoffsetto['value']; |
| 6123 | 6122 | break; |
| 6124 | - case 'TZURL': |
|
| 6123 | + case 'TZURL': |
|
| 6125 | 6124 | if( !empty( $this->tzurl['value'] )) return ( $inclParam ) ? $this->tzurl : $this->tzurl['value']; |
| 6126 | 6125 | break; |
| 6127 | - case 'UID': |
|
| 6126 | + case 'UID': |
|
| 6128 | 6127 | if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
| 6129 | - return FALSE; |
|
| 6128 | + return FALSE; |
|
| 6130 | 6129 | if( empty( $this->uid['value'] )) |
| 6131 | - $this->_makeuid(); |
|
| 6130 | + $this->_makeuid(); |
|
| 6132 | 6131 | return ( $inclParam ) ? $this->uid : $this->uid['value']; |
| 6133 | 6132 | break; |
| 6134 | - case 'URL': |
|
| 6133 | + case 'URL': |
|
| 6135 | 6134 | if( !empty( $this->url['value'] )) return ( $inclParam ) ? $this->url : $this->url['value']; |
| 6136 | 6135 | break; |
| 6137 | - default: |
|
| 6136 | + default: |
|
| 6138 | 6137 | if( $propName != 'X-PROP' ) { |
| 6139 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 6140 | - return ( $inclParam ) ? array( $propName, $this->xprop[$propName] ) |
|
| 6138 | + if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 6139 | + return ( $inclParam ) ? array( $propName, $this->xprop[$propName] ) |
|
| 6141 | 6140 | : array( $propName, $this->xprop[$propName]['value'] ); |
| 6142 | 6141 | } |
| 6143 | 6142 | else { |
| 6144 | - if( empty( $this->xprop )) return FALSE; |
|
| 6145 | - $xpropno = 0; |
|
| 6146 | - foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 6143 | + if( empty( $this->xprop )) return FALSE; |
|
| 6144 | + $xpropno = 0; |
|
| 6145 | + foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 6147 | 6146 | if( $propix == $xpropno ) |
| 6148 | - return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 6147 | + return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 6149 | 6148 | : array( $xpropkey, $this->xprop[$xpropkey]['value'] ); |
| 6150 | 6149 | else |
| 6151 | - $xpropno++; |
|
| 6152 | - } |
|
| 6153 | - return FALSE; // not found ?? |
|
| 6150 | + $xpropno++; |
|
| 6151 | + } |
|
| 6152 | + return FALSE; // not found ?? |
|
| 6154 | 6153 | } |
| 6155 | 6154 | } |
| 6156 | 6155 | return FALSE; |
| 6157 | - } |
|
| 6156 | + } |
|
| 6158 | 6157 | /** |
| 6159 | - * general component property setting |
|
| 6160 | - * |
|
| 6161 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6162 | - * @since 2.5.1 - 2008-11-05 |
|
| 6163 | - * @param mixed $args variable number of function arguments, |
|
| 6164 | - * first argument is ALWAYS component name, |
|
| 6165 | - * second ALWAYS component value! |
|
| 6166 | - * @return void |
|
| 6167 | - */ |
|
| 6168 | - function setProperty() { |
|
| 6158 | + * general component property setting |
|
| 6159 | + * |
|
| 6160 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6161 | + * @since 2.5.1 - 2008-11-05 |
|
| 6162 | + * @param mixed $args variable number of function arguments, |
|
| 6163 | + * first argument is ALWAYS component name, |
|
| 6164 | + * second ALWAYS component value! |
|
| 6165 | + * @return void |
|
| 6166 | + */ |
|
| 6167 | + function setProperty() { |
|
| 6169 | 6168 | $numargs = func_num_args(); |
| 6170 | 6169 | if( 1 > $numargs ) return FALSE; |
| 6171 | 6170 | $arglist = func_get_args(); |
| 6172 | 6171 | if( $this->_notExistProp( $arglist[0] )) return FALSE; |
| 6173 | 6172 | if( !$this->getConfig( 'allowEmpty' ) && ( !isset( $arglist[1] ) || empty( $arglist[1] ))) |
| 6174 | - return FALSE; |
|
| 6173 | + return FALSE; |
|
| 6175 | 6174 | $arglist[0] = strtoupper( $arglist[0] ); |
| 6176 | 6175 | for( $argix=$numargs; $argix < 12; $argix++ ) { |
| 6177 | - if( !isset( $arglist[$argix] )) |
|
| 6176 | + if( !isset( $arglist[$argix] )) |
|
| 6178 | 6177 | $arglist[$argix] = null; |
| 6179 | 6178 | } |
| 6180 | 6179 | switch( $arglist[0] ) { |
| 6181 | - case 'ACTION': |
|
| 6180 | + case 'ACTION': |
|
| 6182 | 6181 | return $this->setAction( $arglist[1], $arglist[2] ); |
| 6183 | - case 'ATTACH': |
|
| 6182 | + case 'ATTACH': |
|
| 6184 | 6183 | return $this->setAttach( $arglist[1], $arglist[2], $arglist[3] ); |
| 6185 | - case 'ATTENDEE': |
|
| 6184 | + case 'ATTENDEE': |
|
| 6186 | 6185 | return $this->setAttendee( $arglist[1], $arglist[2], $arglist[3] ); |
| 6187 | - case 'CATEGORIES': |
|
| 6186 | + case 'CATEGORIES': |
|
| 6188 | 6187 | return $this->setCategories( $arglist[1], $arglist[2], $arglist[3] ); |
| 6189 | - case 'CLASS': |
|
| 6188 | + case 'CLASS': |
|
| 6190 | 6189 | return $this->setClass( $arglist[1], $arglist[2] ); |
| 6191 | - case 'COMMENT': |
|
| 6190 | + case 'COMMENT': |
|
| 6192 | 6191 | return $this->setComment( $arglist[1], $arglist[2], $arglist[3] ); |
| 6193 | - case 'COMPLETED': |
|
| 6192 | + case 'COMPLETED': |
|
| 6194 | 6193 | return $this->setCompleted( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7] ); |
| 6195 | - case 'CONTACT': |
|
| 6194 | + case 'CONTACT': |
|
| 6196 | 6195 | return $this->setContact( $arglist[1], $arglist[2], $arglist[3] ); |
| 6197 | - case 'CREATED': |
|
| 6196 | + case 'CREATED': |
|
| 6198 | 6197 | return $this->setCreated( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7] ); |
| 6199 | - case 'DESCRIPTION': |
|
| 6198 | + case 'DESCRIPTION': |
|
| 6200 | 6199 | return $this->setDescription( $arglist[1], $arglist[2], $arglist[3] ); |
| 6201 | - case 'DTEND': |
|
| 6200 | + case 'DTEND': |
|
| 6202 | 6201 | return $this->setDtend( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8] ); |
| 6203 | - case 'DTSTAMP': |
|
| 6202 | + case 'DTSTAMP': |
|
| 6204 | 6203 | return $this->setDtstamp( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7] ); |
| 6205 | - case 'DTSTART': |
|
| 6204 | + case 'DTSTART': |
|
| 6206 | 6205 | return $this->setDtstart( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8] ); |
| 6207 | - case 'DUE': |
|
| 6206 | + case 'DUE': |
|
| 6208 | 6207 | return $this->setDue( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8] ); |
| 6209 | - case 'DURATION': |
|
| 6208 | + case 'DURATION': |
|
| 6210 | 6209 | return $this->setDuration( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6] ); |
| 6211 | - case 'EXDATE': |
|
| 6210 | + case 'EXDATE': |
|
| 6212 | 6211 | return $this->setExdate( $arglist[1], $arglist[2], $arglist[3] ); |
| 6213 | - case 'EXRULE': |
|
| 6212 | + case 'EXRULE': |
|
| 6214 | 6213 | return $this->setExrule( $arglist[1], $arglist[2], $arglist[3] ); |
| 6215 | - case 'FREEBUSY': |
|
| 6214 | + case 'FREEBUSY': |
|
| 6216 | 6215 | return $this->setFreebusy( $arglist[1], $arglist[2], $arglist[3], $arglist[4] ); |
| 6217 | - case 'GEO': |
|
| 6216 | + case 'GEO': |
|
| 6218 | 6217 | return $this->setGeo( $arglist[1], $arglist[2], $arglist[3] ); |
| 6219 | - case 'LAST-MODIFIED': |
|
| 6218 | + case 'LAST-MODIFIED': |
|
| 6220 | 6219 | return $this->setLastModified( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7] ); |
| 6221 | - case 'LOCATION': |
|
| 6220 | + case 'LOCATION': |
|
| 6222 | 6221 | return $this->setLocation( $arglist[1], $arglist[2] ); |
| 6223 | - case 'ORGANIZER': |
|
| 6222 | + case 'ORGANIZER': |
|
| 6224 | 6223 | return $this->setOrganizer( $arglist[1], $arglist[2] ); |
| 6225 | - case 'PERCENT-COMPLETE': |
|
| 6224 | + case 'PERCENT-COMPLETE': |
|
| 6226 | 6225 | return $this->setPercentComplete( $arglist[1], $arglist[2] ); |
| 6227 | - case 'PRIORITY': |
|
| 6226 | + case 'PRIORITY': |
|
| 6228 | 6227 | return $this->setPriority( $arglist[1], $arglist[2] ); |
| 6229 | - case 'RDATE': |
|
| 6228 | + case 'RDATE': |
|
| 6230 | 6229 | return $this->setRdate( $arglist[1], $arglist[2], $arglist[3] ); |
| 6231 | - case 'RECURRENCE-ID': |
|
| 6230 | + case 'RECURRENCE-ID': |
|
| 6232 | 6231 | return $this->setRecurrenceid( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8] ); |
| 6233 | - case 'RELATED-TO': |
|
| 6232 | + case 'RELATED-TO': |
|
| 6234 | 6233 | return $this->setRelatedTo( $arglist[1], $arglist[2], $arglist[3] ); |
| 6235 | - case 'REPEAT': |
|
| 6234 | + case 'REPEAT': |
|
| 6236 | 6235 | return $this->setRepeat( $arglist[1], $arglist[2] ); |
| 6237 | - case 'REQUEST-STATUS': |
|
| 6236 | + case 'REQUEST-STATUS': |
|
| 6238 | 6237 | return $this->setRequestStatus( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5] ); |
| 6239 | - case 'RESOURCES': |
|
| 6238 | + case 'RESOURCES': |
|
| 6240 | 6239 | return $this->setResources( $arglist[1], $arglist[2], $arglist[3] ); |
| 6241 | - case 'RRULE': |
|
| 6240 | + case 'RRULE': |
|
| 6242 | 6241 | return $this->setRrule( $arglist[1], $arglist[2], $arglist[3] ); |
| 6243 | - case 'SEQUENCE': |
|
| 6242 | + case 'SEQUENCE': |
|
| 6244 | 6243 | return $this->setSequence( $arglist[1], $arglist[2] ); |
| 6245 | - case 'STATUS': |
|
| 6244 | + case 'STATUS': |
|
| 6246 | 6245 | return $this->setStatus( $arglist[1], $arglist[2] ); |
| 6247 | - case 'SUMMARY': |
|
| 6246 | + case 'SUMMARY': |
|
| 6248 | 6247 | return $this->setSummary( $arglist[1], $arglist[2] ); |
| 6249 | - case 'TRANSP': |
|
| 6248 | + case 'TRANSP': |
|
| 6250 | 6249 | return $this->setTransp( $arglist[1], $arglist[2] ); |
| 6251 | - case 'TRIGGER': |
|
| 6250 | + case 'TRIGGER': |
|
| 6252 | 6251 | return $this->setTrigger( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8], $arglist[9], $arglist[10], $arglist[11] ); |
| 6253 | - case 'TZID': |
|
| 6252 | + case 'TZID': |
|
| 6254 | 6253 | return $this->setTzid( $arglist[1], $arglist[2] ); |
| 6255 | - case 'TZNAME': |
|
| 6254 | + case 'TZNAME': |
|
| 6256 | 6255 | return $this->setTzname( $arglist[1], $arglist[2], $arglist[3] ); |
| 6257 | - case 'TZOFFSETFROM': |
|
| 6256 | + case 'TZOFFSETFROM': |
|
| 6258 | 6257 | return $this->setTzoffsetfrom( $arglist[1], $arglist[2] ); |
| 6259 | - case 'TZOFFSETTO': |
|
| 6258 | + case 'TZOFFSETTO': |
|
| 6260 | 6259 | return $this->setTzoffsetto( $arglist[1], $arglist[2] ); |
| 6261 | - case 'TZURL': |
|
| 6260 | + case 'TZURL': |
|
| 6262 | 6261 | return $this->setTzurl( $arglist[1], $arglist[2] ); |
| 6263 | - case 'UID': |
|
| 6262 | + case 'UID': |
|
| 6264 | 6263 | return $this->setUid( $arglist[1], $arglist[2] ); |
| 6265 | - case 'URL': |
|
| 6264 | + case 'URL': |
|
| 6266 | 6265 | return $this->setUrl( $arglist[1], $arglist[2] ); |
| 6267 | - default: |
|
| 6266 | + default: |
|
| 6268 | 6267 | return $this->setXprop( $arglist[0], $arglist[1], $arglist[2] ); |
| 6269 | 6268 | } |
| 6270 | 6269 | return FALSE; |
| 6271 | - } |
|
| 6270 | + } |
|
| 6272 | 6271 | /*********************************************************************************/ |
| 6273 | 6272 | /** |
| 6274 | - * parse component unparsed data into properties |
|
| 6275 | - * |
|
| 6276 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6277 | - * @since 2.5.2 - 2008-10-23 |
|
| 6278 | - * @param mixed $unparsedtext, optional, strict rfc2445 formatted, single property string or array of property strings |
|
| 6279 | - * @return bool FALSE if error occurs during parsing |
|
| 6280 | - * |
|
| 6281 | - */ |
|
| 6282 | - function parse( $unparsedtext=null ) { |
|
| 6273 | + * parse component unparsed data into properties |
|
| 6274 | + * |
|
| 6275 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6276 | + * @since 2.5.2 - 2008-10-23 |
|
| 6277 | + * @param mixed $unparsedtext, optional, strict rfc2445 formatted, single property string or array of property strings |
|
| 6278 | + * @return bool FALSE if error occurs during parsing |
|
| 6279 | + * |
|
| 6280 | + */ |
|
| 6281 | + function parse( $unparsedtext=null ) { |
|
| 6283 | 6282 | if( $unparsedtext ) { |
| 6284 | - $this->unparsed = array(); |
|
| 6285 | - if( is_array( $unparsedtext )) { |
|
| 6283 | + $this->unparsed = array(); |
|
| 6284 | + if( is_array( $unparsedtext )) { |
|
| 6286 | 6285 | $comp = & $this; |
| 6287 | 6286 | foreach ( $unparsedtext as $line ) { |
| 6288 | - if( 'END:VALARM' == strtoupper( substr( $line, 0, 10 ))) { |
|
| 6287 | + if( 'END:VALARM' == strtoupper( substr( $line, 0, 10 ))) { |
|
| 6289 | 6288 | $this->setComponent( $comp ); |
| 6290 | 6289 | $comp = & $this; |
| 6291 | 6290 | continue; |
| 6292 | - } |
|
| 6293 | - elseif( 'BEGIN:VALARM' == strtoupper( substr( $line, 0, 12 ))) { |
|
| 6291 | + } |
|
| 6292 | + elseif( 'BEGIN:VALARM' == strtoupper( substr( $line, 0, 12 ))) { |
|
| 6294 | 6293 | $comp = new valarm(); |
| 6295 | 6294 | continue; |
| 6296 | - } |
|
| 6297 | - else |
|
| 6295 | + } |
|
| 6296 | + else |
|
| 6298 | 6297 | $comp->unparsed[] = $line; |
| 6299 | 6298 | } |
| 6300 | - } |
|
| 6301 | - else |
|
| 6299 | + } |
|
| 6300 | + else |
|
| 6302 | 6301 | $this->unparsed = array( trim( $unparsedtext )); |
| 6303 | 6302 | } |
| 6304 | 6303 | elseif( !isset( $this->unparsed )) |
| 6305 | - $this->unparsed = array(); |
|
| 6304 | + $this->unparsed = array(); |
|
| 6306 | 6305 | /* concatenate property values spread over several lines */ |
| 6307 | 6306 | $lastix = -1; |
| 6308 | 6307 | $propnames = array( 'action', 'attach', 'attendee', 'categories', 'comment', 'completed' |
| 6309 | - , 'contact', 'class', 'created', 'description', 'dtend', 'dtstart' |
|
| 6310 | - , 'dtstamp', 'due', 'duration', 'exdate', 'exrule', 'freebusy', 'geo' |
|
| 6311 | - , 'last-modified', 'location', 'organizer', 'percent-complete' |
|
| 6312 | - , 'priority', 'rdate', 'recurrence-id', 'related-to', 'repeat' |
|
| 6313 | - , 'request-status', 'resources', 'rrule', 'sequence', 'status' |
|
| 6314 | - , 'summary', 'transp', 'trigger', 'tzid', 'tzname', 'tzoffsetfrom' |
|
| 6315 | - , 'tzoffsetto', 'tzurl', 'uid', 'url', 'x-' ); |
|
| 6308 | + , 'contact', 'class', 'created', 'description', 'dtend', 'dtstart' |
|
| 6309 | + , 'dtstamp', 'due', 'duration', 'exdate', 'exrule', 'freebusy', 'geo' |
|
| 6310 | + , 'last-modified', 'location', 'organizer', 'percent-complete' |
|
| 6311 | + , 'priority', 'rdate', 'recurrence-id', 'related-to', 'repeat' |
|
| 6312 | + , 'request-status', 'resources', 'rrule', 'sequence', 'status' |
|
| 6313 | + , 'summary', 'transp', 'trigger', 'tzid', 'tzname', 'tzoffsetfrom' |
|
| 6314 | + , 'tzoffsetto', 'tzurl', 'uid', 'url', 'x-' ); |
|
| 6316 | 6315 | $proprows = array(); |
| 6317 | 6316 | foreach( $this->unparsed as $line ) { |
| 6318 | - $newProp = FALSE; |
|
| 6319 | - foreach ( $propnames as $propname ) { |
|
| 6317 | + $newProp = FALSE; |
|
| 6318 | + foreach ( $propnames as $propname ) { |
|
| 6320 | 6319 | if( $propname == strtolower( substr( $line, 0, strlen( $propname )))) { |
| 6321 | - $newProp = TRUE; |
|
| 6322 | - break; |
|
| 6320 | + $newProp = TRUE; |
|
| 6321 | + break; |
|
| 6323 | 6322 | } |
| 6324 | - } |
|
| 6325 | - if( $newProp ) { |
|
| 6323 | + } |
|
| 6324 | + if( $newProp ) { |
|
| 6326 | 6325 | $newProp = FALSE; |
| 6327 | 6326 | $lastix++; |
| 6328 | 6327 | $proprows[$lastix] = $line; |
| 6329 | - } |
|
| 6330 | - else { |
|
| 6328 | + } |
|
| 6329 | + else { |
|
| 6331 | 6330 | /* remove line breaks */ |
| 6332 | 6331 | if(( '\n' == substr( $proprows[$lastix], -2 )) && |
| 6333 | 6332 | ( ' ' == substr( $line, 0, 1 ))) { |
| 6334 | - $proprows[$lastix] = substr( $proprows[$lastix], 0, strlen( $proprows[$lastix] ) - 2 ); |
|
| 6335 | - $line = substr( $line, 1 ); |
|
| 6333 | + $proprows[$lastix] = substr( $proprows[$lastix], 0, strlen( $proprows[$lastix] ) - 2 ); |
|
| 6334 | + $line = substr( $line, 1 ); |
|
| 6336 | 6335 | } |
| 6337 | 6336 | $proprows[$lastix] .= $line; |
| 6338 | - } |
|
| 6337 | + } |
|
| 6339 | 6338 | } |
| 6340 | 6339 | /* parse each property 'line' */ |
| 6341 | 6340 | foreach( $proprows as $line ) { |
| 6342 | - $line = str_replace( "\n ", '', $line ); |
|
| 6343 | - if( '\n' == substr( $line, -2 )) |
|
| 6341 | + $line = str_replace( "\n ", '', $line ); |
|
| 6342 | + if( '\n' == substr( $line, -2 )) |
|
| 6344 | 6343 | $line = substr( $line, 0, strlen( $line ) - 2 ); |
| 6345 | 6344 | /* get propname, (problem with x-properties, otherwise in previous loop) */ |
| 6346 | - $cix = $propname = null; |
|
| 6347 | - for( $cix=0; $cix < strlen( $line ); $cix++ ) { |
|
| 6345 | + $cix = $propname = null; |
|
| 6346 | + for( $cix=0; $cix < strlen( $line ); $cix++ ) { |
|
| 6348 | 6347 | if( in_array( $line{$cix}, array( ':', ';' ))) |
| 6349 | - break; |
|
| 6348 | + break; |
|
| 6350 | 6349 | else { |
| 6351 | - $propname .= $line{$cix}; |
|
| 6350 | + $propname .= $line{$cix}; |
|
| 6352 | 6351 | } |
| 6353 | - } |
|
| 6354 | - if(( 'x-' == substr( $propname, 0, 2 )) || ( 'X-' == substr( $propname, 0, 2 ))) { |
|
| 6352 | + } |
|
| 6353 | + if(( 'x-' == substr( $propname, 0, 2 )) || ( 'X-' == substr( $propname, 0, 2 ))) { |
|
| 6355 | 6354 | $propname2 = $propname; |
| 6356 | 6355 | $propname = 'X-'; |
| 6357 | - } |
|
| 6356 | + } |
|
| 6358 | 6357 | /* rest of the line is opt.params and value */ |
| 6359 | - $line = substr( $line, $cix ); |
|
| 6358 | + $line = substr( $line, $cix ); |
|
| 6360 | 6359 | /* separate attributes from value */ |
| 6361 | - $attr = array(); |
|
| 6362 | - $attrix = -1; |
|
| 6363 | - $strlen = strlen( $line ); |
|
| 6364 | - for( $cix=0; $cix < $strlen; $cix++ ) { |
|
| 6360 | + $attr = array(); |
|
| 6361 | + $attrix = -1; |
|
| 6362 | + $strlen = strlen( $line ); |
|
| 6363 | + for( $cix=0; $cix < $strlen; $cix++ ) { |
|
| 6365 | 6364 | if(( ':' == $line{$cix} ) && |
| 6366 | 6365 | ( '://' != substr( $line, $cix, 3 )) && |
| 6367 | 6366 | ( 'mailto:' != strtolower( substr( $line, $cix - 6, 7 )))) { |
| 6368 | - $attrEnd = TRUE; |
|
| 6369 | - if(( $cix < ( $strlen - 4 )) && |
|
| 6367 | + $attrEnd = TRUE; |
|
| 6368 | + if(( $cix < ( $strlen - 4 )) && |
|
| 6370 | 6369 | ctype_digit( substr( $line, $cix+1, 4 ))) { // an URI with a (4pos) portnr?? |
| 6371 | 6370 | for( $c2ix = $cix; 3 < $c2ix; $c2ix-- ) { |
| 6372 | - if( '://' == substr( $line, $c2ix - 2, 3 )) { |
|
| 6371 | + if( '://' == substr( $line, $c2ix - 2, 3 )) { |
|
| 6373 | 6372 | $attrEnd = FALSE; |
| 6374 | 6373 | break; // an URI with a portnr!! |
| 6375 | - } |
|
| 6374 | + } |
|
| 6376 | 6375 | } |
| 6377 | - } |
|
| 6378 | - if( $attrEnd) { |
|
| 6376 | + } |
|
| 6377 | + if( $attrEnd) { |
|
| 6379 | 6378 | $line = substr( $line, $cix + 1 ); |
| 6380 | 6379 | break; |
| 6381 | - } |
|
| 6380 | + } |
|
| 6382 | 6381 | } |
| 6383 | 6382 | if( ';' == $line{$cix} ) |
| 6384 | - $attr[++$attrix] = null; |
|
| 6383 | + $attr[++$attrix] = null; |
|
| 6385 | 6384 | else |
| 6386 | - $attr[$attrix] .= $line{$cix}; |
|
| 6387 | - } |
|
| 6385 | + $attr[$attrix] .= $line{$cix}; |
|
| 6386 | + } |
|
| 6388 | 6387 | /* make attributes in array format */ |
| 6389 | - $propattr = array(); |
|
| 6390 | - foreach( $attr as $attribute ) { |
|
| 6388 | + $propattr = array(); |
|
| 6389 | + foreach( $attr as $attribute ) { |
|
| 6391 | 6390 | $attrsplit = explode( '=', $attribute, 2 ); |
| 6392 | 6391 | if( 1 < count( $attrsplit )) |
| 6393 | - $propattr[$attrsplit[0]] = $attrsplit[1]; |
|
| 6392 | + $propattr[$attrsplit[0]] = $attrsplit[1]; |
|
| 6394 | 6393 | else |
| 6395 | - $propattr[] = $attribute; |
|
| 6396 | - } |
|
| 6394 | + $propattr[] = $attribute; |
|
| 6395 | + } |
|
| 6397 | 6396 | /* call setProperty( $propname.. . */ |
| 6398 | - switch( $propname ) { |
|
| 6397 | + switch( $propname ) { |
|
| 6399 | 6398 | case 'ATTENDEE': |
| 6400 | 6399 | foreach( $propattr as $pix => $attr ) { |
| 6401 | 6400 | $attr2 = explode( ',', $attr ); |
| 6402 | - if( 1 < count( $attr2 )) |
|
| 6401 | + if( 1 < count( $attr2 )) |
|
| 6403 | 6402 | $propattr[$pix] = $attr2; |
| 6404 | - } |
|
| 6405 | - $this->setProperty( $propname, $line, $propattr ); |
|
| 6406 | - break; |
|
| 6403 | + } |
|
| 6404 | + $this->setProperty( $propname, $line, $propattr ); |
|
| 6405 | + break; |
|
| 6407 | 6406 | case 'CATEGORIES': |
| 6408 | 6407 | case 'RESOURCES': |
| 6409 | 6408 | if( FALSE !== strpos( $line, ',' )) { |
| 6410 | 6409 | $content = explode( ',', $line ); |
| 6411 | 6410 | $clen = count( $content ); |
| 6412 | 6411 | for( $cix = 0; $cix < $clen; $cix++ ) { |
| 6413 | - if( "\\" == substr($content[$cix], -1)) { |
|
| 6412 | + if( "\\" == substr($content[$cix], -1)) { |
|
| 6414 | 6413 | $content[$cix] .= ','.$content[$cix + 1]; |
| 6415 | 6414 | unset($content[$cix + 1]); |
| 6416 | 6415 | $cix++; |
| 6417 | - } |
|
| 6416 | + } |
|
| 6418 | 6417 | } |
| 6419 | 6418 | if( 1 < count( $content )) { |
| 6420 | - $content = array_values( $content ); |
|
| 6421 | - foreach( $content as $cix => $contentPart ) |
|
| 6419 | + $content = array_values( $content ); |
|
| 6420 | + foreach( $content as $cix => $contentPart ) |
|
| 6422 | 6421 | $content[$cix] = $this->_strunrep( $contentPart ); |
| 6423 | - $this->setProperty( $propname, $content, $propattr ); |
|
| 6424 | - break; |
|
| 6422 | + $this->setProperty( $propname, $content, $propattr ); |
|
| 6423 | + break; |
|
| 6425 | 6424 | } |
| 6426 | 6425 | else |
| 6427 | - $line = reset( $content ); |
|
| 6428 | - } |
|
| 6426 | + $line = reset( $content ); |
|
| 6427 | + } |
|
| 6429 | 6428 | case 'X-': |
| 6430 | 6429 | $propname = ( isset( $propname2 )) ? $propname2 : $propname; |
| 6431 | 6430 | case 'COMMENT': |
@@ -6435,482 +6434,482 @@ discard block |
||
| 6435 | 6434 | case 'SUMMARY': |
| 6436 | 6435 | if( empty( $line )) |
| 6437 | 6436 | $propattr = null; |
| 6438 | - $this->setProperty( $propname, $this->_strunrep( $line ), $propattr ); |
|
| 6439 | - unset( $propname2 ); |
|
| 6440 | - break; |
|
| 6437 | + $this->setProperty( $propname, $this->_strunrep( $line ), $propattr ); |
|
| 6438 | + unset( $propname2 ); |
|
| 6439 | + break; |
|
| 6441 | 6440 | case 'REQUEST-STATUS': |
| 6442 | 6441 | $values = explode( ';', $line, 3 ); |
| 6443 | - $values[1] = ( !isset( $values[1] )) ? null : $this->_strunrep( $values[1] ); |
|
| 6444 | - $values[2] = ( !isset( $values[2] )) ? null : $this->_strunrep( $values[2] ); |
|
| 6445 | - $this->setProperty( $propname |
|
| 6442 | + $values[1] = ( !isset( $values[1] )) ? null : $this->_strunrep( $values[1] ); |
|
| 6443 | + $values[2] = ( !isset( $values[2] )) ? null : $this->_strunrep( $values[2] ); |
|
| 6444 | + $this->setProperty( $propname |
|
| 6446 | 6445 | , $values[0] // statcode |
| 6447 | 6446 | , $values[1] // statdesc |
| 6448 | 6447 | , $values[2] // extdata |
| 6449 | 6448 | , $propattr ); |
| 6450 | - break; |
|
| 6449 | + break; |
|
| 6451 | 6450 | case 'FREEBUSY': |
| 6452 | 6451 | $fbtype = ( isset( $propattr['FBTYPE'] )) ? $propattr['FBTYPE'] : ''; // force setting default, if missing |
| 6453 | - unset( $propattr['FBTYPE'] ); |
|
| 6454 | - $values = explode( ',', $line ); |
|
| 6455 | - foreach( $values as $vix => $value ) { |
|
| 6452 | + unset( $propattr['FBTYPE'] ); |
|
| 6453 | + $values = explode( ',', $line ); |
|
| 6454 | + foreach( $values as $vix => $value ) { |
|
| 6456 | 6455 | $value2 = explode( '/', $value ); |
| 6457 | 6456 | if( 1 < count( $value2 )) |
| 6458 | - $values[$vix] = $value2; |
|
| 6459 | - } |
|
| 6460 | - $this->setProperty( $propname, $fbtype, $values, $propattr ); |
|
| 6461 | - break; |
|
| 6457 | + $values[$vix] = $value2; |
|
| 6458 | + } |
|
| 6459 | + $this->setProperty( $propname, $fbtype, $values, $propattr ); |
|
| 6460 | + break; |
|
| 6462 | 6461 | case 'GEO': |
| 6463 | 6462 | $value = explode( ';', $line, 2 ); |
| 6464 | - if( 2 > count( $value )) |
|
| 6463 | + if( 2 > count( $value )) |
|
| 6465 | 6464 | $value[1] = null; |
| 6466 | - $this->setProperty( $propname, $value[0], $value[1], $propattr ); |
|
| 6467 | - break; |
|
| 6465 | + $this->setProperty( $propname, $value[0], $value[1], $propattr ); |
|
| 6466 | + break; |
|
| 6468 | 6467 | case 'EXDATE': |
| 6469 | 6468 | $values = ( !empty( $line )) ? explode( ',', $line ) : null; |
| 6470 | - $this->setProperty( $propname, $values, $propattr ); |
|
| 6471 | - break; |
|
| 6469 | + $this->setProperty( $propname, $values, $propattr ); |
|
| 6470 | + break; |
|
| 6472 | 6471 | case 'RDATE': |
| 6473 | 6472 | if( empty( $line )) { |
| 6474 | 6473 | $this->setProperty( $propname, $line, $propattr ); |
| 6475 | 6474 | break; |
| 6476 | - } |
|
| 6477 | - $values = explode( ',', $line ); |
|
| 6478 | - foreach( $values as $vix => $value ) { |
|
| 6475 | + } |
|
| 6476 | + $values = explode( ',', $line ); |
|
| 6477 | + foreach( $values as $vix => $value ) { |
|
| 6479 | 6478 | $value2 = explode( '/', $value ); |
| 6480 | 6479 | if( 1 < count( $value2 )) |
| 6481 | - $values[$vix] = $value2; |
|
| 6482 | - } |
|
| 6483 | - $this->setProperty( $propname, $values, $propattr ); |
|
| 6484 | - break; |
|
| 6480 | + $values[$vix] = $value2; |
|
| 6481 | + } |
|
| 6482 | + $this->setProperty( $propname, $values, $propattr ); |
|
| 6483 | + break; |
|
| 6485 | 6484 | case 'EXRULE': |
| 6486 | 6485 | case 'RRULE': |
| 6487 | 6486 | $values = explode( ';', $line ); |
| 6488 | - $recur = array(); |
|
| 6489 | - foreach( $values as $value2 ) { |
|
| 6487 | + $recur = array(); |
|
| 6488 | + foreach( $values as $value2 ) { |
|
| 6490 | 6489 | if( empty( $value2 )) |
| 6491 | - continue; // ;-char in ending position ??? |
|
| 6490 | + continue; // ;-char in ending position ??? |
|
| 6492 | 6491 | $value3 = explode( '=', $value2, 2 ); |
| 6493 | 6492 | $rulelabel = strtoupper( $value3[0] ); |
| 6494 | 6493 | switch( $rulelabel ) { |
| 6495 | - case 'BYDAY': { |
|
| 6494 | + case 'BYDAY': { |
|
| 6496 | 6495 | $value4 = explode( ',', $value3[1] ); |
| 6497 | 6496 | if( 1 < count( $value4 )) { |
| 6498 | - foreach( $value4 as $v5ix => $value5 ) { |
|
| 6497 | + foreach( $value4 as $v5ix => $value5 ) { |
|
| 6499 | 6498 | $value6 = array(); |
| 6500 | 6499 | $dayno = $dayname = null; |
| 6501 | 6500 | $value5 = trim( (string) $value5 ); |
| 6502 | 6501 | if(( ctype_alpha( substr( $value5, -1 ))) && |
| 6503 | 6502 | ( ctype_alpha( substr( $value5, -2, 1 )))) { |
| 6504 | - $dayname = substr( $value5, -2, 2 ); |
|
| 6505 | - if( 2 < strlen( $value5 )) |
|
| 6503 | + $dayname = substr( $value5, -2, 2 ); |
|
| 6504 | + if( 2 < strlen( $value5 )) |
|
| 6506 | 6505 | $dayno = substr( $value5, 0, ( strlen( $value5 ) - 2 )); |
| 6507 | 6506 | } |
| 6508 | 6507 | if( $dayno ) |
| 6509 | - $value6[] = $dayno; |
|
| 6508 | + $value6[] = $dayno; |
|
| 6510 | 6509 | if( $dayname ) |
| 6511 | - $value6['DAY'] = $dayname; |
|
| 6510 | + $value6['DAY'] = $dayname; |
|
| 6512 | 6511 | $value4[$v5ix] = $value6; |
| 6513 | - } |
|
| 6512 | + } |
|
| 6514 | 6513 | } |
| 6515 | 6514 | else { |
| 6516 | - $value4 = array(); |
|
| 6517 | - $dayno = $dayname = null; |
|
| 6518 | - $value5 = trim( (string) $value3[1] ); |
|
| 6519 | - if(( ctype_alpha( substr( $value5, -1 ))) && |
|
| 6515 | + $value4 = array(); |
|
| 6516 | + $dayno = $dayname = null; |
|
| 6517 | + $value5 = trim( (string) $value3[1] ); |
|
| 6518 | + if(( ctype_alpha( substr( $value5, -1 ))) && |
|
| 6520 | 6519 | ( ctype_alpha( substr( $value5, -2, 1 )))) { |
| 6521 | - $dayname = substr( $value5, -2, 2 ); |
|
| 6520 | + $dayname = substr( $value5, -2, 2 ); |
|
| 6522 | 6521 | if( 2 < strlen( $value5 )) |
| 6523 | - $dayno = substr( $value5, 0, ( strlen( $value5 ) - 2 )); |
|
| 6524 | - } |
|
| 6525 | - if( $dayno ) |
|
| 6522 | + $dayno = substr( $value5, 0, ( strlen( $value5 ) - 2 )); |
|
| 6523 | + } |
|
| 6524 | + if( $dayno ) |
|
| 6526 | 6525 | $value4[] = $dayno; |
| 6527 | - if( $dayname ) |
|
| 6526 | + if( $dayname ) |
|
| 6528 | 6527 | $value4['DAY'] = $dayname; |
| 6529 | 6528 | } |
| 6530 | 6529 | $recur[$rulelabel] = $value4; |
| 6531 | 6530 | break; |
| 6532 | - } |
|
| 6533 | - default: { |
|
| 6531 | + } |
|
| 6532 | + default: { |
|
| 6534 | 6533 | $value4 = explode( ',', $value3[1] ); |
| 6535 | 6534 | if( 1 < count( $value4 )) |
| 6536 | - $value3[1] = $value4; |
|
| 6535 | + $value3[1] = $value4; |
|
| 6537 | 6536 | $recur[$rulelabel] = $value3[1]; |
| 6538 | 6537 | break; |
| 6539 | - } |
|
| 6538 | + } |
|
| 6540 | 6539 | } // end - switch $rulelabel |
| 6541 | - } // end - foreach( $values.. . |
|
| 6542 | - $this->setProperty( $propname, $recur, $propattr ); |
|
| 6543 | - break; |
|
| 6540 | + } // end - foreach( $values.. . |
|
| 6541 | + $this->setProperty( $propname, $recur, $propattr ); |
|
| 6542 | + break; |
|
| 6544 | 6543 | default: |
| 6545 | 6544 | $this->setProperty( $propname, $line, $propattr ); |
| 6546 | - break; |
|
| 6547 | - } // end switch( $propname.. . |
|
| 6545 | + break; |
|
| 6546 | + } // end switch( $propname.. . |
|
| 6548 | 6547 | } // end - foreach( $proprows.. . |
| 6549 | 6548 | unset( $this->unparsed, $proprows ); |
| 6550 | 6549 | if( isset( $this->components ) && is_array( $this->components ) && ( 0 < count( $this->components ))) { |
| 6551 | - for( $six = 0; $six < count( $this->components ); $six++ ) { |
|
| 6550 | + for( $six = 0; $six < count( $this->components ); $six++ ) { |
|
| 6552 | 6551 | if( !empty( $this->components[$six]->unparsed )) |
| 6553 | - $this->components[$six]->parse(); |
|
| 6554 | - } |
|
| 6552 | + $this->components[$six]->parse(); |
|
| 6553 | + } |
|
| 6554 | + } |
|
| 6555 | 6555 | } |
| 6556 | - } |
|
| 6557 | 6556 | /*********************************************************************************/ |
| 6558 | 6557 | /*********************************************************************************/ |
| 6559 | 6558 | /** |
| 6560 | - * return a copy of this component |
|
| 6561 | - * |
|
| 6562 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6563 | - * @since 2.2.16 - 2007-11-07 |
|
| 6564 | - * @return object |
|
| 6565 | - */ |
|
| 6566 | - function copy() { |
|
| 6559 | + * return a copy of this component |
|
| 6560 | + * |
|
| 6561 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6562 | + * @since 2.2.16 - 2007-11-07 |
|
| 6563 | + * @return object |
|
| 6564 | + */ |
|
| 6565 | + function copy() { |
|
| 6567 | 6566 | $serialized_contents = serialize($this); |
| 6568 | 6567 | $copy = unserialize($serialized_contents); |
| 6569 | 6568 | unset( $copy->propix ); |
| 6570 | 6569 | return $copy; |
| 6571 | - } |
|
| 6570 | + } |
|
| 6572 | 6571 | /*********************************************************************************/ |
| 6573 | 6572 | /*********************************************************************************/ |
| 6574 | 6573 | /** |
| 6575 | - * delete calendar subcomponent from component container |
|
| 6576 | - * |
|
| 6577 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6578 | - * @since 2.5.1 - 2008-10-15 |
|
| 6579 | - * @param mixed $arg1 ordno / component type / component uid |
|
| 6580 | - * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 6581 | - * @return void |
|
| 6582 | - */ |
|
| 6583 | - function deleteComponent( $arg1, $arg2=FALSE ) { |
|
| 6574 | + * delete calendar subcomponent from component container |
|
| 6575 | + * |
|
| 6576 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6577 | + * @since 2.5.1 - 2008-10-15 |
|
| 6578 | + * @param mixed $arg1 ordno / component type / component uid |
|
| 6579 | + * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 6580 | + * @return void |
|
| 6581 | + */ |
|
| 6582 | + function deleteComponent( $arg1, $arg2=FALSE ) { |
|
| 6584 | 6583 | if( !isset( $this->components )) return FALSE; |
| 6585 | 6584 | $argType = $index = null; |
| 6586 | 6585 | if ( ctype_digit( (string) $arg1 )) { |
| 6587 | - $argType = 'INDEX'; |
|
| 6588 | - $index = (int) $arg1 - 1; |
|
| 6586 | + $argType = 'INDEX'; |
|
| 6587 | + $index = (int) $arg1 - 1; |
|
| 6589 | 6588 | } |
| 6590 | 6589 | elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
| 6591 | - $argType = strtolower( $arg1 ); |
|
| 6592 | - $index = ( !empty( $arg2 ) && ctype_digit( (string) $arg2 )) ? (( int ) $arg2 - 1 ) : 0; |
|
| 6590 | + $argType = strtolower( $arg1 ); |
|
| 6591 | + $index = ( !empty( $arg2 ) && ctype_digit( (string) $arg2 )) ? (( int ) $arg2 - 1 ) : 0; |
|
| 6593 | 6592 | } |
| 6594 | 6593 | $cix2dC = 0; |
| 6595 | 6594 | foreach ( $this->components as $cix => $component) { |
| 6596 | - if( empty( $component )) continue; |
|
| 6597 | - unset( $component->propix ); |
|
| 6598 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 6595 | + if( empty( $component )) continue; |
|
| 6596 | + unset( $component->propix ); |
|
| 6597 | + if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 6599 | 6598 | unset( $this->components[$cix] ); |
| 6600 | 6599 | return TRUE; |
| 6601 | - } |
|
| 6602 | - elseif( $argType == $component->objName ) { |
|
| 6600 | + } |
|
| 6601 | + elseif( $argType == $component->objName ) { |
|
| 6603 | 6602 | if( $index == $cix2dC ) { |
| 6604 | - unset( $this->components[$cix] ); |
|
| 6605 | - return TRUE; |
|
| 6603 | + unset( $this->components[$cix] ); |
|
| 6604 | + return TRUE; |
|
| 6606 | 6605 | } |
| 6607 | 6606 | $cix2dC++; |
| 6608 | - } |
|
| 6609 | - elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 6607 | + } |
|
| 6608 | + elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 6610 | 6609 | unset( $this->components[$cix] ); |
| 6611 | 6610 | return TRUE; |
| 6612 | - } |
|
| 6611 | + } |
|
| 6613 | 6612 | } |
| 6614 | 6613 | return FALSE; |
| 6615 | - } |
|
| 6614 | + } |
|
| 6616 | 6615 | /** |
| 6617 | - * get calendar component subcomponent from component container |
|
| 6618 | - * |
|
| 6619 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6620 | - * @since 2.5.1 - 2008-10-15 |
|
| 6621 | - * @param mixed $arg1 optional, ordno/component type/ component uid |
|
| 6622 | - * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 6623 | - * @return object |
|
| 6624 | - */ |
|
| 6625 | - function getComponent ( $arg1=FALSE, $arg2=FALSE ) { |
|
| 6616 | + * get calendar component subcomponent from component container |
|
| 6617 | + * |
|
| 6618 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6619 | + * @since 2.5.1 - 2008-10-15 |
|
| 6620 | + * @param mixed $arg1 optional, ordno/component type/ component uid |
|
| 6621 | + * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 6622 | + * @return object |
|
| 6623 | + */ |
|
| 6624 | + function getComponent ( $arg1=FALSE, $arg2=FALSE ) { |
|
| 6626 | 6625 | if( !isset( $this->components )) return FALSE; |
| 6627 | 6626 | $index = $argType = null; |
| 6628 | 6627 | if ( !$arg1 ) { |
| 6629 | - $argType = 'INDEX'; |
|
| 6630 | - $index = $this->compix['INDEX'] = |
|
| 6628 | + $argType = 'INDEX'; |
|
| 6629 | + $index = $this->compix['INDEX'] = |
|
| 6631 | 6630 | ( isset( $this->compix['INDEX'] )) ? $this->compix['INDEX'] + 1 : 1; |
| 6632 | 6631 | } |
| 6633 | 6632 | elseif ( ctype_digit( (string) $arg1 )) { |
| 6634 | - $argType = 'INDEX'; |
|
| 6635 | - $index = (int) $arg1; |
|
| 6636 | - unset( $this->compix ); |
|
| 6633 | + $argType = 'INDEX'; |
|
| 6634 | + $index = (int) $arg1; |
|
| 6635 | + unset( $this->compix ); |
|
| 6637 | 6636 | } |
| 6638 | 6637 | elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
| 6639 | - unset( $this->compix['INDEX'] ); |
|
| 6640 | - $argType = strtolower( $arg1 ); |
|
| 6641 | - if( !$arg2 ) |
|
| 6638 | + unset( $this->compix['INDEX'] ); |
|
| 6639 | + $argType = strtolower( $arg1 ); |
|
| 6640 | + if( !$arg2 ) |
|
| 6642 | 6641 | $index = $this->compix[$argType] = |
| 6643 | 6642 | ( isset( $this->compix[$argType] )) ? $this->compix[$argType] + 1 : 1; |
| 6644 | - else |
|
| 6643 | + else |
|
| 6645 | 6644 | $index = (int) $arg2; |
| 6646 | 6645 | } |
| 6647 | 6646 | $index -= 1; |
| 6648 | 6647 | $ckeys = array_keys( $this->components ); |
| 6649 | 6648 | if( !empty( $index) && ( $index > end( $ckeys ))) |
| 6650 | - return FALSE; |
|
| 6649 | + return FALSE; |
|
| 6651 | 6650 | $cix2gC = 0; |
| 6652 | 6651 | foreach( $this->components as $cix => $component ) { |
| 6653 | - if( empty( $component )) continue; |
|
| 6654 | - unset( $component->propix ); |
|
| 6655 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) |
|
| 6652 | + if( empty( $component )) continue; |
|
| 6653 | + unset( $component->propix ); |
|
| 6654 | + if(( 'INDEX' == $argType ) && ( $index == $cix )) |
|
| 6656 | 6655 | return $component->copy(); |
| 6657 | - elseif( $argType == $component->objName ) { |
|
| 6658 | - if( $index == $cix2gC ) |
|
| 6659 | - return $component->copy(); |
|
| 6660 | - $cix2gC++; |
|
| 6661 | - } |
|
| 6662 | - elseif( !$argType && ( $arg1 == $component->getProperty( 'uid' ))) { |
|
| 6656 | + elseif( $argType == $component->objName ) { |
|
| 6657 | + if( $index == $cix2gC ) |
|
| 6658 | + return $component->copy(); |
|
| 6659 | + $cix2gC++; |
|
| 6660 | + } |
|
| 6661 | + elseif( !$argType && ( $arg1 == $component->getProperty( 'uid' ))) { |
|
| 6663 | 6662 | unset( $component->propix ); |
| 6664 | 6663 | return $component->copy(); |
| 6665 | - } |
|
| 6664 | + } |
|
| 6666 | 6665 | } |
| 6667 | 6666 | /* not found.. . */ |
| 6668 | 6667 | unset( $this->compix ); |
| 6669 | 6668 | return false; |
| 6670 | - } |
|
| 6669 | + } |
|
| 6671 | 6670 | /** |
| 6672 | - * add calendar component as subcomponent to container for subcomponents |
|
| 6673 | - * |
|
| 6674 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6675 | - * @since 1.x.x - 2007-04-24 |
|
| 6676 | - * @param object $component calendar component |
|
| 6677 | - * @return void |
|
| 6678 | - */ |
|
| 6679 | - function addSubComponent ( $component ) { |
|
| 6671 | + * add calendar component as subcomponent to container for subcomponents |
|
| 6672 | + * |
|
| 6673 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6674 | + * @since 1.x.x - 2007-04-24 |
|
| 6675 | + * @param object $component calendar component |
|
| 6676 | + * @return void |
|
| 6677 | + */ |
|
| 6678 | + function addSubComponent ( $component ) { |
|
| 6680 | 6679 | $this->setComponent( $component ); |
| 6681 | - } |
|
| 6680 | + } |
|
| 6682 | 6681 | /** |
| 6683 | - * add calendar component as subcomponent to container for subcomponents |
|
| 6684 | - * |
|
| 6685 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6686 | - * @since 2.4.13 - 2008-09-24 |
|
| 6687 | - * @param object $component calendar component |
|
| 6688 | - * @param mixed $arg1 optional, ordno/component type/ component uid |
|
| 6689 | - * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 6690 | - * @return bool |
|
| 6691 | - */ |
|
| 6692 | - function setComponent( $component, $arg1=FALSE, $arg2=FALSE ) { |
|
| 6682 | + * add calendar component as subcomponent to container for subcomponents |
|
| 6683 | + * |
|
| 6684 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6685 | + * @since 2.4.13 - 2008-09-24 |
|
| 6686 | + * @param object $component calendar component |
|
| 6687 | + * @param mixed $arg1 optional, ordno/component type/ component uid |
|
| 6688 | + * @param mixed $arg2 optional, ordno if arg1 = component type |
|
| 6689 | + * @return bool |
|
| 6690 | + */ |
|
| 6691 | + function setComponent( $component, $arg1=FALSE, $arg2=FALSE ) { |
|
| 6693 | 6692 | if( !isset( $this->components )) return FALSE; |
| 6694 | 6693 | if( '' >= $component->getConfig( 'language')) |
| 6695 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 6694 | + $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 6696 | 6695 | $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
| 6697 | 6696 | $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
| 6698 | 6697 | $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
| 6699 | 6698 | $component->setConfig( 'format', $this->getConfig( 'format' )); |
| 6700 | 6699 | if( !in_array( $component->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) { |
| 6701 | - unset( $component->propix ); |
|
| 6700 | + unset( $component->propix ); |
|
| 6702 | 6701 | /* make sure dtstamp and uid is set */ |
| 6703 | - $dummy = $component->getProperty( 'dtstamp' ); |
|
| 6704 | - $dummy = $component->getProperty( 'uid' ); |
|
| 6702 | + $dummy = $component->getProperty( 'dtstamp' ); |
|
| 6703 | + $dummy = $component->getProperty( 'uid' ); |
|
| 6705 | 6704 | } |
| 6706 | 6705 | if( !$arg1 ) { |
| 6707 | - $this->components[] = $component->copy(); |
|
| 6708 | - return TRUE; |
|
| 6706 | + $this->components[] = $component->copy(); |
|
| 6707 | + return TRUE; |
|
| 6709 | 6708 | } |
| 6710 | 6709 | $argType = $index = null; |
| 6711 | 6710 | if ( ctype_digit( (string) $arg1 )) { |
| 6712 | - $argType = 'INDEX'; |
|
| 6713 | - $index = (int) $arg1 - 1; |
|
| 6711 | + $argType = 'INDEX'; |
|
| 6712 | + $index = (int) $arg1 - 1; |
|
| 6714 | 6713 | } |
| 6715 | 6714 | elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
| 6716 | - $argType = strtolower( $arg1 ); |
|
| 6717 | - $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0; |
|
| 6715 | + $argType = strtolower( $arg1 ); |
|
| 6716 | + $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0; |
|
| 6718 | 6717 | } |
| 6719 | 6718 | $cix2sC = 0; |
| 6720 | 6719 | foreach ( $this->components as $cix => $component2 ) { |
| 6721 | - if( empty( $component2 )) continue; |
|
| 6722 | - unset( $component2->propix ); |
|
| 6723 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 6720 | + if( empty( $component2 )) continue; |
|
| 6721 | + unset( $component2->propix ); |
|
| 6722 | + if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 6724 | 6723 | $this->components[$cix] = $component->copy(); |
| 6725 | 6724 | return TRUE; |
| 6726 | - } |
|
| 6727 | - elseif( $argType == $component2->objName ) { |
|
| 6725 | + } |
|
| 6726 | + elseif( $argType == $component2->objName ) { |
|
| 6728 | 6727 | if( $index == $cix2sC ) { |
| 6729 | - $this->components[$cix] = $component->copy(); |
|
| 6730 | - return TRUE; |
|
| 6728 | + $this->components[$cix] = $component->copy(); |
|
| 6729 | + return TRUE; |
|
| 6731 | 6730 | } |
| 6732 | 6731 | $cix2sC++; |
| 6733 | - } |
|
| 6734 | - elseif( !$argType && ($arg1 == $component2->getProperty( 'uid' ))) { |
|
| 6732 | + } |
|
| 6733 | + elseif( !$argType && ($arg1 == $component2->getProperty( 'uid' ))) { |
|
| 6735 | 6734 | $this->components[$cix] = $component->copy(); |
| 6736 | 6735 | return TRUE; |
| 6737 | - } |
|
| 6736 | + } |
|
| 6738 | 6737 | } |
| 6739 | 6738 | /* not found.. . insert anyway.. .*/ |
| 6740 | 6739 | $this->components[] = $component->copy(); |
| 6741 | 6740 | return TRUE; |
| 6742 | - } |
|
| 6741 | + } |
|
| 6743 | 6742 | /** |
| 6744 | - * creates formatted output for subcomponents |
|
| 6745 | - * |
|
| 6746 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6747 | - * @since 2.4.10 - 2008-08-06 |
|
| 6748 | - * @return string |
|
| 6749 | - */ |
|
| 6750 | - function createSubComponent() { |
|
| 6743 | + * creates formatted output for subcomponents |
|
| 6744 | + * |
|
| 6745 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6746 | + * @since 2.4.10 - 2008-08-06 |
|
| 6747 | + * @return string |
|
| 6748 | + */ |
|
| 6749 | + function createSubComponent() { |
|
| 6751 | 6750 | $output = null; |
| 6752 | 6751 | foreach( $this->components as $component ) { |
| 6753 | - if( empty( $component )) continue; |
|
| 6754 | - if( '' >= $component->getConfig( 'language')) |
|
| 6752 | + if( empty( $component )) continue; |
|
| 6753 | + if( '' >= $component->getConfig( 'language')) |
|
| 6755 | 6754 | $component->setConfig( 'language', $this->getConfig( 'language' )); |
| 6756 | - $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
|
| 6757 | - $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
|
| 6758 | - $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
|
| 6759 | - $component->setConfig( 'format', $this->getConfig( 'format' )); |
|
| 6760 | - $output .= $component->createComponent( $this->xcaldecl ); |
|
| 6755 | + $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
|
| 6756 | + $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
|
| 6757 | + $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
|
| 6758 | + $component->setConfig( 'format', $this->getConfig( 'format' )); |
|
| 6759 | + $output .= $component->createComponent( $this->xcaldecl ); |
|
| 6761 | 6760 | } |
| 6762 | 6761 | return $output; |
| 6763 | - } |
|
| 6762 | + } |
|
| 6764 | 6763 | /********************************************************************************/ |
| 6765 | 6764 | /** |
| 6766 | - * break lines at pos 75 |
|
| 6767 | - * |
|
| 6768 | - * Lines of text SHOULD NOT be longer than 75 octets, excluding the line |
|
| 6769 | - * break. Long content lines SHOULD be split into a multiple line |
|
| 6770 | - * representations using a line "folding" technique. That is, a long |
|
| 6771 | - * line can be split between any two characters by inserting a CRLF |
|
| 6772 | - * immediately followed by a single linear white space character (i.e., |
|
| 6773 | - * SPACE, US-ASCII decimal 32 or HTAB, US-ASCII decimal 9). Any sequence |
|
| 6774 | - * of CRLF followed immediately by a single linear white space character |
|
| 6775 | - * is ignored (i.e., removed) when processing the content type. |
|
| 6776 | - * |
|
| 6777 | - * Edited 2007-08-26 by Anders Litzell, [email protected] to fix bug where |
|
| 6778 | - * the reserved expression "\n" in the arg $string could be broken up by the |
|
| 6779 | - * folding of lines, causing ambiguity in the return string. |
|
| 6780 | - * Fix uses var $breakAtChar=75 and breaks the line at $breakAtChar-1 if need be. |
|
| 6781 | - * |
|
| 6782 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6783 | - * @since 2.2.8 - 2006-09-03 |
|
| 6784 | - * @param string $value |
|
| 6785 | - * @return string |
|
| 6786 | - */ |
|
| 6787 | - function _size75( $string ) { |
|
| 6765 | + * break lines at pos 75 |
|
| 6766 | + * |
|
| 6767 | + * Lines of text SHOULD NOT be longer than 75 octets, excluding the line |
|
| 6768 | + * break. Long content lines SHOULD be split into a multiple line |
|
| 6769 | + * representations using a line "folding" technique. That is, a long |
|
| 6770 | + * line can be split between any two characters by inserting a CRLF |
|
| 6771 | + * immediately followed by a single linear white space character (i.e., |
|
| 6772 | + * SPACE, US-ASCII decimal 32 or HTAB, US-ASCII decimal 9). Any sequence |
|
| 6773 | + * of CRLF followed immediately by a single linear white space character |
|
| 6774 | + * is ignored (i.e., removed) when processing the content type. |
|
| 6775 | + * |
|
| 6776 | + * Edited 2007-08-26 by Anders Litzell, [email protected] to fix bug where |
|
| 6777 | + * the reserved expression "\n" in the arg $string could be broken up by the |
|
| 6778 | + * folding of lines, causing ambiguity in the return string. |
|
| 6779 | + * Fix uses var $breakAtChar=75 and breaks the line at $breakAtChar-1 if need be. |
|
| 6780 | + * |
|
| 6781 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6782 | + * @since 2.2.8 - 2006-09-03 |
|
| 6783 | + * @param string $value |
|
| 6784 | + * @return string |
|
| 6785 | + */ |
|
| 6786 | + function _size75( $string ) { |
|
| 6788 | 6787 | $strlen = strlen( $string ); |
| 6789 | 6788 | $tmp = $string; |
| 6790 | 6789 | $string = null; |
| 6791 | 6790 | while( $strlen > 75 ) { |
| 6792 | - $breakAtChar = 75; |
|
| 6793 | - if( substr( $tmp, ( $breakAtChar - 1 ), strlen( '\n' )) == '\n' ) |
|
| 6794 | - $breakAtChar = $breakAtChar - 1; |
|
| 6795 | - $string .= substr( $tmp, 0, $breakAtChar ); |
|
| 6796 | - $string .= $this->nl; |
|
| 6797 | - $tmp = ' '.substr( $tmp, $breakAtChar ); |
|
| 6798 | - $strlen = strlen( $tmp ); |
|
| 6791 | + $breakAtChar = 75; |
|
| 6792 | + if( substr( $tmp, ( $breakAtChar - 1 ), strlen( '\n' )) == '\n' ) |
|
| 6793 | + $breakAtChar = $breakAtChar - 1; |
|
| 6794 | + $string .= substr( $tmp, 0, $breakAtChar ); |
|
| 6795 | + $string .= $this->nl; |
|
| 6796 | + $tmp = ' '.substr( $tmp, $breakAtChar ); |
|
| 6797 | + $strlen = strlen( $tmp ); |
|
| 6799 | 6798 | } // while |
| 6800 | 6799 | $string .= rtrim( $tmp ); // the rest |
| 6801 | 6800 | if( $this->nl != substr( $string, ( 0 - strlen( $this->nl )))) |
| 6802 | - $string .= $this->nl; |
|
| 6801 | + $string .= $this->nl; |
|
| 6803 | 6802 | return $string; |
| 6804 | - } |
|
| 6803 | + } |
|
| 6805 | 6804 | /** |
| 6806 | - * special characters management output |
|
| 6807 | - * |
|
| 6808 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6809 | - * @since 2.3.3 - 2007-12-20 |
|
| 6810 | - * @param string $string |
|
| 6811 | - * @return string |
|
| 6812 | - */ |
|
| 6813 | - function _strrep( $string ) { |
|
| 6805 | + * special characters management output |
|
| 6806 | + * |
|
| 6807 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6808 | + * @since 2.3.3 - 2007-12-20 |
|
| 6809 | + * @param string $string |
|
| 6810 | + * @return string |
|
| 6811 | + */ |
|
| 6812 | + function _strrep( $string ) { |
|
| 6814 | 6813 | switch( $this->format ) { |
| 6815 | - case 'xcal': |
|
| 6814 | + case 'xcal': |
|
| 6816 | 6815 | $string = str_replace( '\n', $this->nl, $string); |
| 6817 | 6816 | $string = htmlspecialchars( strip_tags( stripslashes( urldecode ( $string )))); |
| 6818 | 6817 | break; |
| 6819 | - default: |
|
| 6818 | + default: |
|
| 6820 | 6819 | $pos = 0; |
| 6821 | 6820 | while( $pos <= strlen( $string )) { |
| 6822 | - $pos = strpos( $string, "\\", $pos ); |
|
| 6823 | - if( FALSE === $pos ) |
|
| 6821 | + $pos = strpos( $string, "\\", $pos ); |
|
| 6822 | + if( FALSE === $pos ) |
|
| 6824 | 6823 | break; |
| 6825 | - if( !in_array( $string{($pos + 1)}, array( 'n', 'N', 'r', ',', ';' ))) { |
|
| 6824 | + if( !in_array( $string{($pos + 1)}, array( 'n', 'N', 'r', ',', ';' ))) { |
|
| 6826 | 6825 | $string = substr( $string, 0, $pos )."\\".substr( $string, ( $pos + 1 )); |
| 6827 | 6826 | $pos += 1; |
| 6828 | - } |
|
| 6829 | - $pos += 1; |
|
| 6827 | + } |
|
| 6828 | + $pos += 1; |
|
| 6830 | 6829 | } |
| 6831 | 6830 | if( FALSE !== strpos( $string, '"' )) |
| 6832 | - $string = str_replace('"', "'", $string); |
|
| 6831 | + $string = str_replace('"', "'", $string); |
|
| 6833 | 6832 | if( FALSE !== strpos( $string, ',' )) |
| 6834 | - $string = str_replace(',', '\,', $string); |
|
| 6833 | + $string = str_replace(',', '\,', $string); |
|
| 6835 | 6834 | if( FALSE !== strpos( $string, ';' )) |
| 6836 | - $string = str_replace(';', '\;', $string); |
|
| 6835 | + $string = str_replace(';', '\;', $string); |
|
| 6837 | 6836 | if( FALSE !== strpos( $string, "\r\n" )) |
| 6838 | - $string = str_replace( "\r\n", '\n', $string); |
|
| 6837 | + $string = str_replace( "\r\n", '\n', $string); |
|
| 6839 | 6838 | elseif( FALSE !== strpos( $string, "\r" )) |
| 6840 | - $string = str_replace( "\r", '\n', $string); |
|
| 6839 | + $string = str_replace( "\r", '\n', $string); |
|
| 6841 | 6840 | if( FALSE !== strpos( $string, '\N' )) |
| 6842 | - $string = str_replace( '\N', '\n', $string); |
|
| 6841 | + $string = str_replace( '\N', '\n', $string); |
|
| 6843 | 6842 | // if( FALSE !== strpos( $string, $this->nl )) |
| 6844 | - $string = str_replace( $this->nl, '\n', $string); |
|
| 6843 | + $string = str_replace( $this->nl, '\n', $string); |
|
| 6845 | 6844 | break; |
| 6846 | 6845 | } |
| 6847 | 6846 | return $string; |
| 6848 | - } |
|
| 6847 | + } |
|
| 6849 | 6848 | /** |
| 6850 | - * special characters management input (from iCal file) |
|
| 6851 | - * |
|
| 6852 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6853 | - * @since 2.3.3 - 2007-11-23 |
|
| 6854 | - * @param string $string |
|
| 6855 | - * @return string |
|
| 6856 | - */ |
|
| 6857 | - function _strunrep( $string ) { |
|
| 6849 | + * special characters management input (from iCal file) |
|
| 6850 | + * |
|
| 6851 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6852 | + * @since 2.3.3 - 2007-11-23 |
|
| 6853 | + * @param string $string |
|
| 6854 | + * @return string |
|
| 6855 | + */ |
|
| 6856 | + function _strunrep( $string ) { |
|
| 6858 | 6857 | $string = str_replace( '\\\\', '\\', $string); |
| 6859 | 6858 | $string = str_replace( '\,', ',', $string); |
| 6860 | 6859 | $string = str_replace( '\;', ';', $string); |
| 6861 | 6860 | // $string = str_replace( '\n', $this->nl, $string); // ?? |
| 6862 | 6861 | return $string; |
| 6863 | - } |
|
| 6862 | + } |
|
| 6864 | 6863 | } |
| 6865 | 6864 | /*********************************************************************************/ |
| 6866 | 6865 | /*********************************************************************************/ |
| 6867 | 6866 | /** |
| 6868 | - * class for calendar component VEVENT |
|
| 6869 | - * |
|
| 6870 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6871 | - * @since 2.5.1 - 2008-10-12 |
|
| 6872 | - */ |
|
| 6867 | + * class for calendar component VEVENT |
|
| 6868 | + * |
|
| 6869 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6870 | + * @since 2.5.1 - 2008-10-12 |
|
| 6871 | + */ |
|
| 6873 | 6872 | class vevent extends calendarComponent { |
| 6874 | - var $attach; |
|
| 6875 | - var $attendee; |
|
| 6876 | - var $categories; |
|
| 6877 | - var $comment; |
|
| 6878 | - var $contact; |
|
| 6879 | - var $class; |
|
| 6880 | - var $created; |
|
| 6881 | - var $description; |
|
| 6882 | - var $dtend; |
|
| 6883 | - var $dtstart; |
|
| 6884 | - var $duration; |
|
| 6885 | - var $exdate; |
|
| 6886 | - var $exrule; |
|
| 6887 | - var $geo; |
|
| 6888 | - var $lastmodified; |
|
| 6889 | - var $location; |
|
| 6890 | - var $organizer; |
|
| 6891 | - var $priority; |
|
| 6892 | - var $rdate; |
|
| 6893 | - var $recurrenceid; |
|
| 6894 | - var $relatedto; |
|
| 6895 | - var $requeststatus; |
|
| 6896 | - var $resources; |
|
| 6897 | - var $rrule; |
|
| 6898 | - var $sequence; |
|
| 6899 | - var $status; |
|
| 6900 | - var $summary; |
|
| 6901 | - var $transp; |
|
| 6902 | - var $url; |
|
| 6903 | - var $xprop; |
|
| 6873 | + var $attach; |
|
| 6874 | + var $attendee; |
|
| 6875 | + var $categories; |
|
| 6876 | + var $comment; |
|
| 6877 | + var $contact; |
|
| 6878 | + var $class; |
|
| 6879 | + var $created; |
|
| 6880 | + var $description; |
|
| 6881 | + var $dtend; |
|
| 6882 | + var $dtstart; |
|
| 6883 | + var $duration; |
|
| 6884 | + var $exdate; |
|
| 6885 | + var $exrule; |
|
| 6886 | + var $geo; |
|
| 6887 | + var $lastmodified; |
|
| 6888 | + var $location; |
|
| 6889 | + var $organizer; |
|
| 6890 | + var $priority; |
|
| 6891 | + var $rdate; |
|
| 6892 | + var $recurrenceid; |
|
| 6893 | + var $relatedto; |
|
| 6894 | + var $requeststatus; |
|
| 6895 | + var $resources; |
|
| 6896 | + var $rrule; |
|
| 6897 | + var $sequence; |
|
| 6898 | + var $status; |
|
| 6899 | + var $summary; |
|
| 6900 | + var $transp; |
|
| 6901 | + var $url; |
|
| 6902 | + var $xprop; |
|
| 6904 | 6903 | // component subcomponents container |
| 6905 | - var $components; |
|
| 6906 | -/** |
|
| 6907 | - * constructor for calendar component VEVENT object |
|
| 6908 | - * |
|
| 6909 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6910 | - * @since 2.5.1 - 2008-10-31 |
|
| 6911 | - * @return void |
|
| 6912 | - */ |
|
| 6913 | - function vevent() { |
|
| 6904 | + var $components; |
|
| 6905 | +/** |
|
| 6906 | + * constructor for calendar component VEVENT object |
|
| 6907 | + * |
|
| 6908 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6909 | + * @since 2.5.1 - 2008-10-31 |
|
| 6910 | + * @return void |
|
| 6911 | + */ |
|
| 6912 | + function vevent() { |
|
| 6914 | 6913 | $this->calendarComponent(); |
| 6915 | 6914 | |
| 6916 | 6915 | $this->attach = ''; |
@@ -6946,16 +6945,16 @@ discard block |
||
| 6946 | 6945 | |
| 6947 | 6946 | $this->components = array(); |
| 6948 | 6947 | |
| 6949 | - } |
|
| 6948 | + } |
|
| 6950 | 6949 | /** |
| 6951 | - * create formatted output for calendar component VEVENT object instance |
|
| 6952 | - * |
|
| 6953 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6954 | - * @since 2.5.1 - 2008-11-07 |
|
| 6955 | - * @param array $xcaldecl |
|
| 6956 | - * @return string |
|
| 6957 | - */ |
|
| 6958 | - function createComponent( &$xcaldecl ) { |
|
| 6950 | + * create formatted output for calendar component VEVENT object instance |
|
| 6951 | + * |
|
| 6952 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 6953 | + * @since 2.5.1 - 2008-11-07 |
|
| 6954 | + * @param array $xcaldecl |
|
| 6955 | + * @return string |
|
| 6956 | + */ |
|
| 6957 | + function createComponent( &$xcaldecl ) { |
|
| 6959 | 6958 | $objectname = $this->_createFormat(); |
| 6960 | 6959 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 6961 | 6960 | $component .= $this->createUid(); |
@@ -6993,62 +6992,62 @@ discard block |
||
| 6993 | 6992 | $component .= $this->createSubComponent(); |
| 6994 | 6993 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 6995 | 6994 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 6996 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 6995 | + foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 6997 | 6996 | $xcaldecl[] = $localxcaldecl; |
| 6998 | 6997 | } |
| 6999 | 6998 | return $component; |
| 7000 | - } |
|
| 6999 | + } |
|
| 7001 | 7000 | } |
| 7002 | 7001 | /*********************************************************************************/ |
| 7003 | 7002 | /*********************************************************************************/ |
| 7004 | 7003 | /** |
| 7005 | - * class for calendar component VTODO |
|
| 7006 | - * |
|
| 7007 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7008 | - * @since 2.5.1 - 2008-10-12 |
|
| 7009 | - */ |
|
| 7004 | + * class for calendar component VTODO |
|
| 7005 | + * |
|
| 7006 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7007 | + * @since 2.5.1 - 2008-10-12 |
|
| 7008 | + */ |
|
| 7010 | 7009 | class vtodo extends calendarComponent { |
| 7011 | - var $attach; |
|
| 7012 | - var $attendee; |
|
| 7013 | - var $categories; |
|
| 7014 | - var $comment; |
|
| 7015 | - var $completed; |
|
| 7016 | - var $contact; |
|
| 7017 | - var $class; |
|
| 7018 | - var $created; |
|
| 7019 | - var $description; |
|
| 7020 | - var $dtstart; |
|
| 7021 | - var $due; |
|
| 7022 | - var $duration; |
|
| 7023 | - var $exdate; |
|
| 7024 | - var $exrule; |
|
| 7025 | - var $geo; |
|
| 7026 | - var $lastmodified; |
|
| 7027 | - var $location; |
|
| 7028 | - var $organizer; |
|
| 7029 | - var $percentcomplete; |
|
| 7030 | - var $priority; |
|
| 7031 | - var $rdate; |
|
| 7032 | - var $recurrenceid; |
|
| 7033 | - var $relatedto; |
|
| 7034 | - var $requeststatus; |
|
| 7035 | - var $resources; |
|
| 7036 | - var $rrule; |
|
| 7037 | - var $sequence; |
|
| 7038 | - var $status; |
|
| 7039 | - var $summary; |
|
| 7040 | - var $url; |
|
| 7041 | - var $xprop; |
|
| 7010 | + var $attach; |
|
| 7011 | + var $attendee; |
|
| 7012 | + var $categories; |
|
| 7013 | + var $comment; |
|
| 7014 | + var $completed; |
|
| 7015 | + var $contact; |
|
| 7016 | + var $class; |
|
| 7017 | + var $created; |
|
| 7018 | + var $description; |
|
| 7019 | + var $dtstart; |
|
| 7020 | + var $due; |
|
| 7021 | + var $duration; |
|
| 7022 | + var $exdate; |
|
| 7023 | + var $exrule; |
|
| 7024 | + var $geo; |
|
| 7025 | + var $lastmodified; |
|
| 7026 | + var $location; |
|
| 7027 | + var $organizer; |
|
| 7028 | + var $percentcomplete; |
|
| 7029 | + var $priority; |
|
| 7030 | + var $rdate; |
|
| 7031 | + var $recurrenceid; |
|
| 7032 | + var $relatedto; |
|
| 7033 | + var $requeststatus; |
|
| 7034 | + var $resources; |
|
| 7035 | + var $rrule; |
|
| 7036 | + var $sequence; |
|
| 7037 | + var $status; |
|
| 7038 | + var $summary; |
|
| 7039 | + var $url; |
|
| 7040 | + var $xprop; |
|
| 7042 | 7041 | // component subcomponents container |
| 7043 | - var $components; |
|
| 7044 | -/** |
|
| 7045 | - * constructor for calendar component VTODO object |
|
| 7046 | - * |
|
| 7047 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7048 | - * @since 2.5.1 - 2008-10-31 |
|
| 7049 | - * @return void |
|
| 7050 | - */ |
|
| 7051 | - function vtodo() { |
|
| 7042 | + var $components; |
|
| 7043 | +/** |
|
| 7044 | + * constructor for calendar component VTODO object |
|
| 7045 | + * |
|
| 7046 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7047 | + * @since 2.5.1 - 2008-10-31 |
|
| 7048 | + * @return void |
|
| 7049 | + */ |
|
| 7050 | + function vtodo() { |
|
| 7052 | 7051 | $this->calendarComponent(); |
| 7053 | 7052 | |
| 7054 | 7053 | $this->attach = ''; |
@@ -7084,16 +7083,16 @@ discard block |
||
| 7084 | 7083 | $this->xprop = ''; |
| 7085 | 7084 | |
| 7086 | 7085 | $this->components = array(); |
| 7087 | - } |
|
| 7086 | + } |
|
| 7088 | 7087 | /** |
| 7089 | - * create formatted output for calendar component VTODO object instance |
|
| 7090 | - * |
|
| 7091 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7092 | - * @since 2.5.1 - 2008-11-07 |
|
| 7093 | - * @param array $xcaldecl |
|
| 7094 | - * @return string |
|
| 7095 | - */ |
|
| 7096 | - function createComponent( &$xcaldecl ) { |
|
| 7088 | + * create formatted output for calendar component VTODO object instance |
|
| 7089 | + * |
|
| 7090 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7091 | + * @since 2.5.1 - 2008-11-07 |
|
| 7092 | + * @param array $xcaldecl |
|
| 7093 | + * @return string |
|
| 7094 | + */ |
|
| 7095 | + function createComponent( &$xcaldecl ) { |
|
| 7097 | 7096 | $objectname = $this->_createFormat(); |
| 7098 | 7097 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7099 | 7098 | $component .= $this->createUid(); |
@@ -7132,52 +7131,52 @@ discard block |
||
| 7132 | 7131 | $component .= $this->createSubComponent(); |
| 7133 | 7132 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7134 | 7133 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 7135 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7134 | + foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7136 | 7135 | $xcaldecl[] = $localxcaldecl; |
| 7137 | 7136 | } |
| 7138 | 7137 | return $component; |
| 7139 | - } |
|
| 7138 | + } |
|
| 7140 | 7139 | } |
| 7141 | 7140 | /*********************************************************************************/ |
| 7142 | 7141 | /*********************************************************************************/ |
| 7143 | 7142 | /** |
| 7144 | - * class for calendar component VJOURNAL |
|
| 7145 | - * |
|
| 7146 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7147 | - * @since 2.5.1 - 2008-10-12 |
|
| 7148 | - */ |
|
| 7143 | + * class for calendar component VJOURNAL |
|
| 7144 | + * |
|
| 7145 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7146 | + * @since 2.5.1 - 2008-10-12 |
|
| 7147 | + */ |
|
| 7149 | 7148 | class vjournal extends calendarComponent { |
| 7150 | - var $attach; |
|
| 7151 | - var $attendee; |
|
| 7152 | - var $categories; |
|
| 7153 | - var $comment; |
|
| 7154 | - var $contact; |
|
| 7155 | - var $class; |
|
| 7156 | - var $created; |
|
| 7157 | - var $description; |
|
| 7158 | - var $dtstart; |
|
| 7159 | - var $exdate; |
|
| 7160 | - var $exrule; |
|
| 7161 | - var $lastmodified; |
|
| 7162 | - var $organizer; |
|
| 7163 | - var $rdate; |
|
| 7164 | - var $recurrenceid; |
|
| 7165 | - var $relatedto; |
|
| 7166 | - var $requeststatus; |
|
| 7167 | - var $rrule; |
|
| 7168 | - var $sequence; |
|
| 7169 | - var $status; |
|
| 7170 | - var $summary; |
|
| 7171 | - var $url; |
|
| 7172 | - var $xprop; |
|
| 7173 | -/** |
|
| 7174 | - * constructor for calendar component VJOURNAL object |
|
| 7175 | - * |
|
| 7176 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7177 | - * @since 2.5.1 - 2008-10-31 |
|
| 7178 | - * @return void |
|
| 7179 | - */ |
|
| 7180 | - function vjournal() { |
|
| 7149 | + var $attach; |
|
| 7150 | + var $attendee; |
|
| 7151 | + var $categories; |
|
| 7152 | + var $comment; |
|
| 7153 | + var $contact; |
|
| 7154 | + var $class; |
|
| 7155 | + var $created; |
|
| 7156 | + var $description; |
|
| 7157 | + var $dtstart; |
|
| 7158 | + var $exdate; |
|
| 7159 | + var $exrule; |
|
| 7160 | + var $lastmodified; |
|
| 7161 | + var $organizer; |
|
| 7162 | + var $rdate; |
|
| 7163 | + var $recurrenceid; |
|
| 7164 | + var $relatedto; |
|
| 7165 | + var $requeststatus; |
|
| 7166 | + var $rrule; |
|
| 7167 | + var $sequence; |
|
| 7168 | + var $status; |
|
| 7169 | + var $summary; |
|
| 7170 | + var $url; |
|
| 7171 | + var $xprop; |
|
| 7172 | +/** |
|
| 7173 | + * constructor for calendar component VJOURNAL object |
|
| 7174 | + * |
|
| 7175 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7176 | + * @since 2.5.1 - 2008-10-31 |
|
| 7177 | + * @return void |
|
| 7178 | + */ |
|
| 7179 | + function vjournal() { |
|
| 7181 | 7180 | $this->calendarComponent(); |
| 7182 | 7181 | |
| 7183 | 7182 | $this->attach = ''; |
@@ -7203,16 +7202,16 @@ discard block |
||
| 7203 | 7202 | $this->summary = ''; |
| 7204 | 7203 | $this->url = ''; |
| 7205 | 7204 | $this->xprop = ''; |
| 7206 | - } |
|
| 7205 | + } |
|
| 7207 | 7206 | /** |
| 7208 | - * create formatted output for calendar component VJOURNAL object instance |
|
| 7209 | - * |
|
| 7210 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7211 | - * @since 2.5.1 - 2008-10-12 |
|
| 7212 | - * @param array $xcaldecl |
|
| 7213 | - * @return string |
|
| 7214 | - */ |
|
| 7215 | - function createComponent( &$xcaldecl ) { |
|
| 7207 | + * create formatted output for calendar component VJOURNAL object instance |
|
| 7208 | + * |
|
| 7209 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7210 | + * @since 2.5.1 - 2008-10-12 |
|
| 7211 | + * @param array $xcaldecl |
|
| 7212 | + * @return string |
|
| 7213 | + */ |
|
| 7214 | + function createComponent( &$xcaldecl ) { |
|
| 7216 | 7215 | $objectname = $this->_createFormat(); |
| 7217 | 7216 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7218 | 7217 | $component .= $this->createUid(); |
@@ -7242,42 +7241,42 @@ discard block |
||
| 7242 | 7241 | $component .= $this->createXprop(); |
| 7243 | 7242 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7244 | 7243 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 7245 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7244 | + foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7246 | 7245 | $xcaldecl[] = $localxcaldecl; |
| 7247 | 7246 | } |
| 7248 | 7247 | return $component; |
| 7249 | - } |
|
| 7248 | + } |
|
| 7250 | 7249 | } |
| 7251 | 7250 | /*********************************************************************************/ |
| 7252 | 7251 | /*********************************************************************************/ |
| 7253 | 7252 | /** |
| 7254 | - * class for calendar component VFREEBUSY |
|
| 7255 | - * |
|
| 7256 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7257 | - * @since 2.5.1 - 2008-10-12 |
|
| 7258 | - */ |
|
| 7253 | + * class for calendar component VFREEBUSY |
|
| 7254 | + * |
|
| 7255 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7256 | + * @since 2.5.1 - 2008-10-12 |
|
| 7257 | + */ |
|
| 7259 | 7258 | class vfreebusy extends calendarComponent { |
| 7260 | - var $attendee; |
|
| 7261 | - var $comment; |
|
| 7262 | - var $contact; |
|
| 7263 | - var $dtend; |
|
| 7264 | - var $dtstart; |
|
| 7265 | - var $duration; |
|
| 7266 | - var $freebusy; |
|
| 7267 | - var $organizer; |
|
| 7268 | - var $requeststatus; |
|
| 7269 | - var $url; |
|
| 7270 | - var $xprop; |
|
| 7259 | + var $attendee; |
|
| 7260 | + var $comment; |
|
| 7261 | + var $contact; |
|
| 7262 | + var $dtend; |
|
| 7263 | + var $dtstart; |
|
| 7264 | + var $duration; |
|
| 7265 | + var $freebusy; |
|
| 7266 | + var $organizer; |
|
| 7267 | + var $requeststatus; |
|
| 7268 | + var $url; |
|
| 7269 | + var $xprop; |
|
| 7271 | 7270 | // component subcomponents container |
| 7272 | - var $components; |
|
| 7273 | -/** |
|
| 7274 | - * constructor for calendar component VFREEBUSY object |
|
| 7275 | - * |
|
| 7276 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7277 | - * @since 2.5.1 - 2008-10-31 |
|
| 7278 | - * @return void |
|
| 7279 | - */ |
|
| 7280 | - function vfreebusy() { |
|
| 7271 | + var $components; |
|
| 7272 | +/** |
|
| 7273 | + * constructor for calendar component VFREEBUSY object |
|
| 7274 | + * |
|
| 7275 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7276 | + * @since 2.5.1 - 2008-10-31 |
|
| 7277 | + * @return void |
|
| 7278 | + */ |
|
| 7279 | + function vfreebusy() { |
|
| 7281 | 7280 | $this->calendarComponent(); |
| 7282 | 7281 | |
| 7283 | 7282 | $this->attendee = ''; |
@@ -7291,16 +7290,16 @@ discard block |
||
| 7291 | 7290 | $this->requeststatus = ''; |
| 7292 | 7291 | $this->url = ''; |
| 7293 | 7292 | $this->xprop = ''; |
| 7294 | - } |
|
| 7293 | + } |
|
| 7295 | 7294 | /** |
| 7296 | - * create formatted output for calendar component VFREEBUSY object instance |
|
| 7297 | - * |
|
| 7298 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7299 | - * @since 2.3.1 - 2007-11-19 |
|
| 7300 | - * @param array $xcaldecl |
|
| 7301 | - * @return string |
|
| 7302 | - */ |
|
| 7303 | - function createComponent( &$xcaldecl ) { |
|
| 7295 | + * create formatted output for calendar component VFREEBUSY object instance |
|
| 7296 | + * |
|
| 7297 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7298 | + * @since 2.3.1 - 2007-11-19 |
|
| 7299 | + * @param array $xcaldecl |
|
| 7300 | + * @return string |
|
| 7301 | + */ |
|
| 7302 | + function createComponent( &$xcaldecl ) { |
|
| 7304 | 7303 | $objectname = $this->_createFormat(); |
| 7305 | 7304 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7306 | 7305 | $component .= $this->createUid(); |
@@ -7318,38 +7317,38 @@ discard block |
||
| 7318 | 7317 | $component .= $this->createXprop(); |
| 7319 | 7318 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7320 | 7319 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 7321 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7320 | + foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7322 | 7321 | $xcaldecl[] = $localxcaldecl; |
| 7323 | 7322 | } |
| 7324 | 7323 | return $component; |
| 7325 | - } |
|
| 7324 | + } |
|
| 7326 | 7325 | } |
| 7327 | 7326 | /*********************************************************************************/ |
| 7328 | 7327 | /*********************************************************************************/ |
| 7329 | 7328 | /** |
| 7330 | - * class for calendar component VALARM |
|
| 7331 | - * |
|
| 7332 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7333 | - * @since 2.5.1 - 2008-10-12 |
|
| 7334 | - */ |
|
| 7329 | + * class for calendar component VALARM |
|
| 7330 | + * |
|
| 7331 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7332 | + * @since 2.5.1 - 2008-10-12 |
|
| 7333 | + */ |
|
| 7335 | 7334 | class valarm extends calendarComponent { |
| 7336 | - var $action; |
|
| 7337 | - var $attach; |
|
| 7338 | - var $attendee; |
|
| 7339 | - var $description; |
|
| 7340 | - var $duration; |
|
| 7341 | - var $repeat; |
|
| 7342 | - var $summary; |
|
| 7343 | - var $trigger; |
|
| 7344 | - var $xprop; |
|
| 7345 | -/** |
|
| 7346 | - * constructor for calendar component VALARM object |
|
| 7347 | - * |
|
| 7348 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7349 | - * @since 2.5.1 - 2008-10-31 |
|
| 7350 | - * @return void |
|
| 7351 | - */ |
|
| 7352 | - function valarm() { |
|
| 7335 | + var $action; |
|
| 7336 | + var $attach; |
|
| 7337 | + var $attendee; |
|
| 7338 | + var $description; |
|
| 7339 | + var $duration; |
|
| 7340 | + var $repeat; |
|
| 7341 | + var $summary; |
|
| 7342 | + var $trigger; |
|
| 7343 | + var $xprop; |
|
| 7344 | +/** |
|
| 7345 | + * constructor for calendar component VALARM object |
|
| 7346 | + * |
|
| 7347 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7348 | + * @since 2.5.1 - 2008-10-31 |
|
| 7349 | + * @return void |
|
| 7350 | + */ |
|
| 7351 | + function valarm() { |
|
| 7353 | 7352 | $this->calendarComponent(); |
| 7354 | 7353 | |
| 7355 | 7354 | $this->action = ''; |
@@ -7361,16 +7360,16 @@ discard block |
||
| 7361 | 7360 | $this->summary = ''; |
| 7362 | 7361 | $this->trigger = ''; |
| 7363 | 7362 | $this->xprop = ''; |
| 7364 | - } |
|
| 7363 | + } |
|
| 7365 | 7364 | /** |
| 7366 | - * create formatted output for calendar component VALARM object instance |
|
| 7367 | - * |
|
| 7368 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7369 | - * @since 2.5.1 - 2008-10-22 |
|
| 7370 | - * @param array $xcaldecl |
|
| 7371 | - * @return string |
|
| 7372 | - */ |
|
| 7373 | - function createComponent( &$xcaldecl ) { |
|
| 7365 | + * create formatted output for calendar component VALARM object instance |
|
| 7366 | + * |
|
| 7367 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7368 | + * @since 2.5.1 - 2008-10-22 |
|
| 7369 | + * @param array $xcaldecl |
|
| 7370 | + * @return string |
|
| 7371 | + */ |
|
| 7372 | + function createComponent( &$xcaldecl ) { |
|
| 7374 | 7373 | $objectname = $this->_createFormat(); |
| 7375 | 7374 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7376 | 7375 | $component .= $this->createAction(); |
@@ -7384,45 +7383,45 @@ discard block |
||
| 7384 | 7383 | $component .= $this->createXprop(); |
| 7385 | 7384 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7386 | 7385 | return $component; |
| 7387 | - } |
|
| 7386 | + } |
|
| 7388 | 7387 | } |
| 7389 | 7388 | /********************************************************************************** |
| 7390 | 7389 | /*********************************************************************************/ |
| 7391 | 7390 | /** |
| 7392 | - * class for calendar component VTIMEZONE |
|
| 7393 | - * |
|
| 7394 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7395 | - * @since 2.5.1 - 2008-10-12 |
|
| 7396 | - */ |
|
| 7391 | + * class for calendar component VTIMEZONE |
|
| 7392 | + * |
|
| 7393 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7394 | + * @since 2.5.1 - 2008-10-12 |
|
| 7395 | + */ |
|
| 7397 | 7396 | class vtimezone extends calendarComponent { |
| 7398 | - var $timezonetype; |
|
| 7397 | + var $timezonetype; |
|
| 7399 | 7398 | |
| 7400 | - var $comment; |
|
| 7401 | - var $dtstart; |
|
| 7402 | - var $lastmodified; |
|
| 7403 | - var $rdate; |
|
| 7404 | - var $rrule; |
|
| 7405 | - var $tzid; |
|
| 7406 | - var $tzname; |
|
| 7407 | - var $tzoffsetfrom; |
|
| 7408 | - var $tzoffsetto; |
|
| 7409 | - var $tzurl; |
|
| 7410 | - var $xprop; |
|
| 7399 | + var $comment; |
|
| 7400 | + var $dtstart; |
|
| 7401 | + var $lastmodified; |
|
| 7402 | + var $rdate; |
|
| 7403 | + var $rrule; |
|
| 7404 | + var $tzid; |
|
| 7405 | + var $tzname; |
|
| 7406 | + var $tzoffsetfrom; |
|
| 7407 | + var $tzoffsetto; |
|
| 7408 | + var $tzurl; |
|
| 7409 | + var $xprop; |
|
| 7411 | 7410 | // component subcomponents container |
| 7412 | - var $components; |
|
| 7413 | -/** |
|
| 7414 | - * constructor for calendar component VTIMEZONE object |
|
| 7415 | - * |
|
| 7416 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7417 | - * @since 2.5.1 - 2008-10-31 |
|
| 7418 | - * @param string $timezonetype optional, default FALSE ( STANDARD / DAYLIGHT ) |
|
| 7419 | - * @return void |
|
| 7420 | - */ |
|
| 7421 | - function vtimezone( $timezonetype=FALSE ) { |
|
| 7411 | + var $components; |
|
| 7412 | +/** |
|
| 7413 | + * constructor for calendar component VTIMEZONE object |
|
| 7414 | + * |
|
| 7415 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7416 | + * @since 2.5.1 - 2008-10-31 |
|
| 7417 | + * @param string $timezonetype optional, default FALSE ( STANDARD / DAYLIGHT ) |
|
| 7418 | + * @return void |
|
| 7419 | + */ |
|
| 7420 | + function vtimezone( $timezonetype=FALSE ) { |
|
| 7422 | 7421 | if( !$timezonetype ) |
| 7423 | - $this->timezonetype = 'VTIMEZONE'; |
|
| 7422 | + $this->timezonetype = 'VTIMEZONE'; |
|
| 7424 | 7423 | else |
| 7425 | - $this->timezonetype = strtoupper( $timezonetype ); |
|
| 7424 | + $this->timezonetype = strtoupper( $timezonetype ); |
|
| 7426 | 7425 | $this->calendarComponent(); |
| 7427 | 7426 | |
| 7428 | 7427 | $this->comment = ''; |
@@ -7438,16 +7437,16 @@ discard block |
||
| 7438 | 7437 | $this->xprop = ''; |
| 7439 | 7438 | |
| 7440 | 7439 | $this->components = array(); |
| 7441 | - } |
|
| 7440 | + } |
|
| 7442 | 7441 | /** |
| 7443 | - * create formatted output for calendar component VTIMEZONE object instance |
|
| 7444 | - * |
|
| 7445 | - * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7446 | - * @since 2.5.1 - 2008-10-25 |
|
| 7447 | - * @param array $xcaldecl |
|
| 7448 | - * @return string |
|
| 7449 | - */ |
|
| 7450 | - function createComponent( &$xcaldecl ) { |
|
| 7442 | + * create formatted output for calendar component VTIMEZONE object instance |
|
| 7443 | + * |
|
| 7444 | + * @author Kjell-Inge Gustafsson <[email protected]> |
|
| 7445 | + * @since 2.5.1 - 2008-10-25 |
|
| 7446 | + * @param array $xcaldecl |
|
| 7447 | + * @return string |
|
| 7448 | + */ |
|
| 7449 | + function createComponent( &$xcaldecl ) { |
|
| 7451 | 7450 | $objectname = $this->_createFormat(); |
| 7452 | 7451 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7453 | 7452 | $component .= $this->createTzid(); |
@@ -7464,10 +7463,10 @@ discard block |
||
| 7464 | 7463 | $component .= $this->createSubComponent(); |
| 7465 | 7464 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7466 | 7465 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 7467 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7466 | + foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7468 | 7467 | $xcaldecl[] = $localxcaldecl; |
| 7469 | 7468 | } |
| 7470 | 7469 | return $component; |
| 7471 | - } |
|
| 7470 | + } |
|
| 7472 | 7471 | } |
| 7473 | 7472 | ?> |
| 7474 | 7473 | \ No newline at end of file |
@@ -44,10 +44,10 @@ discard block |
||
| 44 | 44 | } |
| 45 | 45 | */ |
| 46 | 46 | /* only for phpversion 5.x, date management, default timezone setting */ |
| 47 | -if( substr( phpversion(), 0, 1) >= '5' ) // && ( 'UTC' == date_default_timezone_get() )) { |
|
| 48 | - date_default_timezone_set( 'Europe/Stockholm' ); |
|
| 47 | +if (substr(phpversion(), 0, 1) >= '5') // && ( 'UTC' == date_default_timezone_get() )) { |
|
| 48 | + date_default_timezone_set('Europe/Stockholm'); |
|
| 49 | 49 | /* version string, do NOT remove!! */ |
| 50 | -define( 'ICALCREATOR_VERSION', 'iCalcreator 2.6' ); |
|
| 50 | +define('ICALCREATOR_VERSION', 'iCalcreator 2.6'); |
|
| 51 | 51 | /*********************************************************************************/ |
| 52 | 52 | /*********************************************************************************/ |
| 53 | 53 | /** |
@@ -87,7 +87,7 @@ discard block |
||
| 87 | 87 | * @since 2.2.13 - 2007-12-30 |
| 88 | 88 | * @return void |
| 89 | 89 | */ |
| 90 | - function vcalendar () { |
|
| 90 | + function vcalendar() { |
|
| 91 | 91 | $this->_makeVersion(); |
| 92 | 92 | $this->calscale = null; |
| 93 | 93 | $this->method = null; |
@@ -97,15 +97,15 @@ discard block |
||
| 97 | 97 | /** |
| 98 | 98 | * language = <Text identifying a language, as defined in [RFC 1766]> |
| 99 | 99 | */ |
| 100 | - if( defined( 'ICAL_LANG' )) |
|
| 101 | - $this->setConfig( 'language', ICAL_LANG ); |
|
| 102 | - $this->setConfig( 'allowEmpty', TRUE ); |
|
| 103 | - $this->setConfig( 'nl', "\n" ); |
|
| 104 | - $this->setConfig( 'format', 'iCal'); |
|
| 100 | + if (defined('ICAL_LANG')) |
|
| 101 | + $this->setConfig('language', ICAL_LANG); |
|
| 102 | + $this->setConfig('allowEmpty', TRUE); |
|
| 103 | + $this->setConfig('nl', "\n"); |
|
| 104 | + $this->setConfig('format', 'iCal'); |
|
| 105 | 105 | $this->directory = null; |
| 106 | 106 | $this->filename = null; |
| 107 | 107 | $this->url = null; |
| 108 | - $this->setConfig( 'delimiter', DIRECTORY_SEPARATOR ); |
|
| 108 | + $this->setConfig('delimiter', DIRECTORY_SEPARATOR); |
|
| 109 | 109 | $this->xcaldecl = array(); |
| 110 | 110 | $this->components = array(); |
| 111 | 111 | } |
@@ -121,8 +121,8 @@ discard block |
||
| 121 | 121 | * @return string |
| 122 | 122 | */ |
| 123 | 123 | function createCalscale() { |
| 124 | - if( empty( $this->calscale )) return FALSE; |
|
| 125 | - switch( $this->format ) { |
|
| 124 | + if (empty($this->calscale)) return FALSE; |
|
| 125 | + switch ($this->format) { |
|
| 126 | 126 | case 'xcal': |
| 127 | 127 | return ' calscale="'.$this->calscale.'"'.$this->nl; |
| 128 | 128 | break; |
@@ -139,8 +139,8 @@ discard block |
||
| 139 | 139 | * @param string $value |
| 140 | 140 | * @return void |
| 141 | 141 | */ |
| 142 | - function setCalscale( $value ) { |
|
| 143 | - if( empty( $value )) return FALSE; |
|
| 142 | + function setCalscale($value) { |
|
| 143 | + if (empty($value)) return FALSE; |
|
| 144 | 144 | $this->calscale = $value; |
| 145 | 145 | } |
| 146 | 146 | /*********************************************************************************/ |
@@ -155,8 +155,8 @@ discard block |
||
| 155 | 155 | * @return string |
| 156 | 156 | */ |
| 157 | 157 | function createMethod() { |
| 158 | - if( empty( $this->method )) return FALSE; |
|
| 159 | - switch( $this->format ) { |
|
| 158 | + if (empty($this->method)) return FALSE; |
|
| 159 | + switch ($this->format) { |
|
| 160 | 160 | case 'xcal': |
| 161 | 161 | return ' method="'.$this->method.'"'.$this->nl; |
| 162 | 162 | break; |
@@ -173,8 +173,8 @@ discard block |
||
| 173 | 173 | * @param string $value |
| 174 | 174 | * @return bool |
| 175 | 175 | */ |
| 176 | - function setMethod( $value ) { |
|
| 177 | - if( empty( $value )) return FALSE; |
|
| 176 | + function setMethod($value) { |
|
| 177 | + if (empty($value)) return FALSE; |
|
| 178 | 178 | $this->method = $value; |
| 179 | 179 | return TRUE; |
| 180 | 180 | } |
@@ -194,9 +194,9 @@ discard block |
||
| 194 | 194 | * @return string |
| 195 | 195 | */ |
| 196 | 196 | function createProdid() { |
| 197 | - if( !isset( $this->prodid )) |
|
| 197 | + if (!isset($this->prodid)) |
|
| 198 | 198 | $this->_makeProdid(); |
| 199 | - switch( $this->format ) { |
|
| 199 | + switch ($this->format) { |
|
| 200 | 200 | case 'xcal': |
| 201 | 201 | return ' prodid="'.$this->prodid.'"'.$this->nl; |
| 202 | 202 | break; |
@@ -213,7 +213,7 @@ discard block |
||
| 213 | 213 | * @return void |
| 214 | 214 | */ |
| 215 | 215 | function _makeProdid() { |
| 216 | - $this->prodid = '-//'.$this->unique_id.'//NONSGML '.ICALCREATOR_VERSION.'//'.strtoupper( $this->language ); |
|
| 216 | + $this->prodid = '-//'.$this->unique_id.'//NONSGML '.ICALCREATOR_VERSION.'//'.strtoupper($this->language); |
|
| 217 | 217 | } |
| 218 | 218 | /** |
| 219 | 219 | * Conformance: The property MUST be specified once in an iCalendar object. |
@@ -229,7 +229,7 @@ discard block |
||
| 229 | 229 | * @return void |
| 230 | 230 | */ |
| 231 | 231 | function _makeUnique_id() { |
| 232 | - $this->unique_id = ( isset( $_SERVER['SERVER_NAME'] )) ? gethostbyname( $_SERVER['SERVER_NAME'] ) : 'localhost'; |
|
| 232 | + $this->unique_id = (isset($_SERVER['SERVER_NAME'])) ? gethostbyname($_SERVER['SERVER_NAME']) : 'localhost'; |
|
| 233 | 233 | } |
| 234 | 234 | /*********************************************************************************/ |
| 235 | 235 | /** |
@@ -246,9 +246,9 @@ discard block |
||
| 246 | 246 | * @return string |
| 247 | 247 | */ |
| 248 | 248 | function createVersion() { |
| 249 | - if( empty( $this->version )) |
|
| 249 | + if (empty($this->version)) |
|
| 250 | 250 | $this->_makeVersion(); |
| 251 | - switch( $this->format ) { |
|
| 251 | + switch ($this->format) { |
|
| 252 | 252 | case 'xcal': |
| 253 | 253 | return ' version="'.$this->version.'"'.$this->nl; |
| 254 | 254 | break; |
@@ -275,8 +275,8 @@ discard block |
||
| 275 | 275 | * @param string $value |
| 276 | 276 | * @return void |
| 277 | 277 | */ |
| 278 | - function setVersion( $value ) { |
|
| 279 | - if( empty( $value )) return FALSE; |
|
| 278 | + function setVersion($value) { |
|
| 279 | + if (empty($value)) return FALSE; |
|
| 280 | 280 | $this->version = $value; |
| 281 | 281 | return TRUE; |
| 282 | 282 | } |
@@ -292,29 +292,29 @@ discard block |
||
| 292 | 292 | * @return string |
| 293 | 293 | */ |
| 294 | 294 | function createXprop() { |
| 295 | - if( 'xcal' == $this->format ) |
|
| 295 | + if ('xcal' == $this->format) |
|
| 296 | 296 | return false; |
| 297 | - if( 0 >= count( $this->xprop )) |
|
| 297 | + if (0 >= count($this->xprop)) |
|
| 298 | 298 | return; |
| 299 | 299 | $output = null; |
| 300 | 300 | $toolbox = new calendarComponent(); |
| 301 | - $toolbox->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 302 | - $toolbox->setConfig( 'nl', $this->getConfig( 'nl' )); |
|
| 303 | - $toolbox->_createFormat( $this->getConfig( 'format' )); |
|
| 304 | - foreach( $this->xprop as $label => $xpropPart ) { |
|
| 305 | - if( empty( $xpropPart['value'] )) { |
|
| 306 | - $output .= $toolbox->_createElement( $label ); |
|
| 301 | + $toolbox->setConfig('language', $this->getConfig('language')); |
|
| 302 | + $toolbox->setConfig('nl', $this->getConfig('nl')); |
|
| 303 | + $toolbox->_createFormat($this->getConfig('format')); |
|
| 304 | + foreach ($this->xprop as $label => $xpropPart) { |
|
| 305 | + if (empty($xpropPart['value'])) { |
|
| 306 | + $output .= $toolbox->_createElement($label); |
|
| 307 | 307 | continue; |
| 308 | 308 | } |
| 309 | - $attributes = $toolbox->_createParams( $xpropPart['params'], array( 'LANGUAGE' )); |
|
| 310 | - if( is_array( $xpropPart['value'] )) { |
|
| 311 | - foreach( $xpropPart['value'] as $pix => $theXpart ) |
|
| 312 | - $xpropPart['value'][$pix] = $toolbox->_strrep( $theXpart ); |
|
| 313 | - $xpropPart['value'] = implode( ',', $xpropPart['value'] ); |
|
| 309 | + $attributes = $toolbox->_createParams($xpropPart['params'], array('LANGUAGE')); |
|
| 310 | + if (is_array($xpropPart['value'])) { |
|
| 311 | + foreach ($xpropPart['value'] as $pix => $theXpart) |
|
| 312 | + $xpropPart['value'][$pix] = $toolbox->_strrep($theXpart); |
|
| 313 | + $xpropPart['value'] = implode(',', $xpropPart['value']); |
|
| 314 | 314 | } |
| 315 | 315 | else |
| 316 | - $xpropPart['value'] = $toolbox->_strrep( $xpropPart['value'] ); |
|
| 317 | - $output .= $toolbox->_createElement( $label, $attributes, $xpropPart['value'] ); |
|
| 316 | + $xpropPart['value'] = $toolbox->_strrep($xpropPart['value']); |
|
| 317 | + $output .= $toolbox->_createElement($label, $attributes, $xpropPart['value']); |
|
| 318 | 318 | } |
| 319 | 319 | return $output; |
| 320 | 320 | } |
@@ -328,14 +328,14 @@ discard block |
||
| 328 | 328 | * @param array $params optional |
| 329 | 329 | * @return bool |
| 330 | 330 | */ |
| 331 | - function setXprop( $label, $value, $params=FALSE ) { |
|
| 332 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 333 | - if( empty( $label )) return FALSE; |
|
| 334 | - $xprop = array( 'value' => $value ); |
|
| 331 | + function setXprop($label, $value, $params = FALSE) { |
|
| 332 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 333 | + if (empty($label)) return FALSE; |
|
| 334 | + $xprop = array('value' => $value); |
|
| 335 | 335 | $toolbox = new calendarComponent(); |
| 336 | - $xprop['params'] = $toolbox->_setParams( $params ); |
|
| 337 | - if( !is_array( $this->xprop )) $this->xprop = array(); |
|
| 338 | - $this->xprop[strtoupper( $label )] = $xprop; |
|
| 336 | + $xprop['params'] = $toolbox->_setParams($params); |
|
| 337 | + if (!is_array($this->xprop)) $this->xprop = array(); |
|
| 338 | + $this->xprop[strtoupper($label)] = $xprop; |
|
| 339 | 339 | return TRUE; |
| 340 | 340 | } |
| 341 | 341 | /*********************************************************************************/ |
@@ -348,39 +348,39 @@ discard block |
||
| 348 | 348 | * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
| 349 | 349 | * @return bool, if successfull delete |
| 350 | 350 | */ |
| 351 | - function deleteProperty( $propName, $propix=FALSE ) { |
|
| 352 | - $propName = ( $propName ) ? strtoupper( $propName ) : 'X-PROP'; |
|
| 353 | - if( !$propix ) |
|
| 354 | - $propix = ( isset( $this->propdelix[$propName] )) ? $this->propdelix[$propName] + 2 : 1; |
|
| 351 | + function deleteProperty($propName, $propix = FALSE) { |
|
| 352 | + $propName = ($propName) ? strtoupper($propName) : 'X-PROP'; |
|
| 353 | + if (!$propix) |
|
| 354 | + $propix = (isset($this->propdelix[$propName])) ? $this->propdelix[$propName] + 2 : 1; |
|
| 355 | 355 | $this->propdelix[$propName] = --$propix; |
| 356 | 356 | $return = FALSE; |
| 357 | - switch( $propName ) { |
|
| 357 | + switch ($propName) { |
|
| 358 | 358 | case 'CALSCALE': |
| 359 | - if( isset( $this->calscale )) { |
|
| 359 | + if (isset($this->calscale)) { |
|
| 360 | 360 | $this->calscale = null; |
| 361 | 361 | $return = TRUE; |
| 362 | 362 | } |
| 363 | 363 | break; |
| 364 | 364 | case 'METHOD': |
| 365 | - if( isset( $this->method )) { |
|
| 366 | - $this->method = null; |
|
| 365 | + if (isset($this->method)) { |
|
| 366 | + $this->method = null; |
|
| 367 | 367 | $return = TRUE; |
| 368 | 368 | } |
| 369 | 369 | break; |
| 370 | 370 | default: |
| 371 | 371 | $reduced = array(); |
| 372 | - if( $propName != 'X-PROP' ) { |
|
| 373 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 374 | - foreach( $this->xprop as $k => $a ) { |
|
| 375 | - if(( $k != $propName ) && !empty( $a )) |
|
| 372 | + if ($propName != 'X-PROP') { |
|
| 373 | + if (!isset($this->xprop[$propName])) return FALSE; |
|
| 374 | + foreach ($this->xprop as $k => $a) { |
|
| 375 | + if (($k != $propName) && !empty($a)) |
|
| 376 | 376 | $reduced[$k] = $a; |
| 377 | 377 | } |
| 378 | 378 | } |
| 379 | 379 | else { |
| 380 | - if( count( $this->xprop ) <= $propix ) return FALSE; |
|
| 380 | + if (count($this->xprop) <= $propix) return FALSE; |
|
| 381 | 381 | $xpropno = 0; |
| 382 | - foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 383 | - if( $propix != $xpropno ) |
|
| 382 | + foreach ($this->xprop as $xpropkey => $xpropvalue) { |
|
| 383 | + if ($propix != $xpropno) |
|
| 384 | 384 | $reduced[$xpropkey] = $xpropvalue; |
| 385 | 385 | $xpropno++; |
| 386 | 386 | } |
@@ -400,41 +400,41 @@ discard block |
||
| 400 | 400 | * @param bool $inclParam=FALSE |
| 401 | 401 | * @return mixed |
| 402 | 402 | */ |
| 403 | - function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE ) { |
|
| 404 | - $propName = ( $propName ) ? strtoupper( $propName ) : 'X-PROP'; |
|
| 405 | - if( 'X-PROP' == $propName ) { |
|
| 406 | - if( !$propix ) |
|
| 407 | - $propix = ( isset( $this->propix[$propName] )) ? $this->propix[$propName] + 2 : 1; |
|
| 403 | + function getProperty($propName = FALSE, $propix = FALSE, $inclParam = FALSE) { |
|
| 404 | + $propName = ($propName) ? strtoupper($propName) : 'X-PROP'; |
|
| 405 | + if ('X-PROP' == $propName) { |
|
| 406 | + if (!$propix) |
|
| 407 | + $propix = (isset($this->propix[$propName])) ? $this->propix[$propName] + 2 : 1; |
|
| 408 | 408 | $this->propix[$propName] = --$propix; |
| 409 | 409 | } |
| 410 | - switch( $propName ) { |
|
| 410 | + switch ($propName) { |
|
| 411 | 411 | case 'CALSCALE': |
| 412 | - return ( !empty( $this->calscale )) ? $this->calscale : null; |
|
| 412 | + return (!empty($this->calscale)) ? $this->calscale : null; |
|
| 413 | 413 | break; |
| 414 | 414 | case 'METHOD': |
| 415 | - return ( !empty( $this->method )) ? $this->method : null; |
|
| 415 | + return (!empty($this->method)) ? $this->method : null; |
|
| 416 | 416 | break; |
| 417 | 417 | case 'PRODID': |
| 418 | - if( empty( $this->prodid )) |
|
| 418 | + if (empty($this->prodid)) |
|
| 419 | 419 | $this->_makeProdid(); |
| 420 | 420 | return $this->prodid; |
| 421 | 421 | break; |
| 422 | 422 | case 'VERSION': |
| 423 | - return ( !empty( $this->version )) ? $this->version : null; |
|
| 423 | + return (!empty($this->version)) ? $this->version : null; |
|
| 424 | 424 | break; |
| 425 | 425 | default: |
| 426 | - if( $propName != 'X-PROP' ) { |
|
| 427 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 428 | - return ( $inclParam ) ? array( $propName, $this->xprop[$propName] ) |
|
| 429 | - : array( $propName, $this->xprop[$propName]['value'] ); |
|
| 426 | + if ($propName != 'X-PROP') { |
|
| 427 | + if (!isset($this->xprop[$propName])) return FALSE; |
|
| 428 | + return ($inclParam) ? array($propName, $this->xprop[$propName]) |
|
| 429 | + : array($propName, $this->xprop[$propName]['value']); |
|
| 430 | 430 | } |
| 431 | 431 | else { |
| 432 | - if( empty( $this->xprop )) return FALSE; |
|
| 432 | + if (empty($this->xprop)) return FALSE; |
|
| 433 | 433 | $xpropno = 0; |
| 434 | - foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 435 | - if( $propix == $xpropno ) |
|
| 436 | - return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 437 | - : array( $xpropkey, $this->xprop[$xpropkey]['value'] ); |
|
| 434 | + foreach ($this->xprop as $xpropkey => $xpropvalue) { |
|
| 435 | + if ($propix == $xpropno) |
|
| 436 | + return ($inclParam) ? array($xpropkey, $this->xprop[$xpropkey]) |
|
| 437 | + : array($xpropkey, $this->xprop[$xpropkey]['value']); |
|
| 438 | 438 | else |
| 439 | 439 | $xpropno++; |
| 440 | 440 | } |
@@ -453,23 +453,23 @@ discard block |
||
| 453 | 453 | * second ALWAYS component value! |
| 454 | 454 | * @return bool |
| 455 | 455 | */ |
| 456 | - function setProperty () { |
|
| 456 | + function setProperty() { |
|
| 457 | 457 | $numargs = func_num_args(); |
| 458 | - if( 1 > $numargs ) |
|
| 458 | + if (1 > $numargs) |
|
| 459 | 459 | return FALSE; |
| 460 | 460 | $arglist = func_get_args(); |
| 461 | - $arglist[0] = strtoupper( $arglist[0] ); |
|
| 462 | - switch( $arglist[0] ) { |
|
| 461 | + $arglist[0] = strtoupper($arglist[0]); |
|
| 462 | + switch ($arglist[0]) { |
|
| 463 | 463 | case 'CALSCALE': |
| 464 | - return $this->setCalscale( $arglist[1] ); |
|
| 464 | + return $this->setCalscale($arglist[1]); |
|
| 465 | 465 | case 'METHOD': |
| 466 | - return $this->setMethod( $arglist[1] ); |
|
| 466 | + return $this->setMethod($arglist[1]); |
|
| 467 | 467 | case 'VERSION': |
| 468 | - return $this->setVersion( $arglist[1] ); |
|
| 468 | + return $this->setVersion($arglist[1]); |
|
| 469 | 469 | default: |
| 470 | - if( !isset( $arglist[1] )) $arglist[1] = null; |
|
| 471 | - if( !isset( $arglist[2] )) $arglist[2] = null; |
|
| 472 | - return $this->setXprop( $arglist[0], $arglist[1], $arglist[2] ); |
|
| 470 | + if (!isset($arglist[1])) $arglist[1] = null; |
|
| 471 | + if (!isset($arglist[2])) $arglist[2] = null; |
|
| 472 | + return $this->setXprop($arglist[0], $arglist[1], $arglist[2]); |
|
| 473 | 473 | } |
| 474 | 474 | return FALSE; |
| 475 | 475 | } |
@@ -482,23 +482,23 @@ discard block |
||
| 482 | 482 | * @param string $config |
| 483 | 483 | * @return value |
| 484 | 484 | */ |
| 485 | - function getConfig( $config ) { |
|
| 486 | - switch( strtoupper( $config )) { |
|
| 485 | + function getConfig($config) { |
|
| 486 | + switch (strtoupper($config)) { |
|
| 487 | 487 | case 'ALLOWEMPTY': |
| 488 | 488 | return $this->allowEmpty; |
| 489 | 489 | break; |
| 490 | 490 | case 'COMPSINFO': |
| 491 | - unset( $this->compix ); |
|
| 491 | + unset($this->compix); |
|
| 492 | 492 | $info = array(); |
| 493 | - foreach( $this->components as $cix => $component ) { |
|
| 494 | - if( empty( $component )) continue; |
|
| 495 | - unset( $component->propix ); |
|
| 493 | + foreach ($this->components as $cix => $component) { |
|
| 494 | + if (empty($component)) continue; |
|
| 495 | + unset($component->propix); |
|
| 496 | 496 | $info[$cix]['ordno'] = $cix + 1; |
| 497 | 497 | $info[$cix]['type'] = $component->objName; |
| 498 | - $info[$cix]['uid'] = $component->getProperty( 'uid' ); |
|
| 499 | - $info[$cix]['props'] = $component->getConfig( 'propinfo' ); |
|
| 500 | - $info[$cix]['sub'] = $component->getConfig( 'compsinfo' ); |
|
| 501 | - unset( $component->propix ); |
|
| 498 | + $info[$cix]['uid'] = $component->getProperty('uid'); |
|
| 499 | + $info[$cix]['props'] = $component->getConfig('propinfo'); |
|
| 500 | + $info[$cix]['sub'] = $component->getConfig('compsinfo'); |
|
| 501 | + unset($component->propix); |
|
| 502 | 502 | } |
| 503 | 503 | return $info; |
| 504 | 504 | break; |
@@ -506,32 +506,32 @@ discard block |
||
| 506 | 506 | return $this->delimiter; |
| 507 | 507 | break; |
| 508 | 508 | case 'DIRECTORY': |
| 509 | - if( empty( $this->directory )) |
|
| 509 | + if (empty($this->directory)) |
|
| 510 | 510 | $this->directory = '.'; |
| 511 | 511 | return $this->directory; |
| 512 | 512 | break; |
| 513 | 513 | case 'DIRFILE': |
| 514 | - return $this->getConfig( 'directory' ).$this->getConfig( 'delimiter' ).$this->getConfig( 'filename' ); |
|
| 514 | + return $this->getConfig('directory').$this->getConfig('delimiter').$this->getConfig('filename'); |
|
| 515 | 515 | break; |
| 516 | 516 | case 'FILEINFO': |
| 517 | - return array( $this->getConfig( 'directory' ) |
|
| 518 | - , $this->getConfig( 'filename' ) |
|
| 519 | - , $this->getConfig( 'filesize' )); |
|
| 517 | + return array($this->getConfig('directory') |
|
| 518 | + , $this->getConfig('filename') |
|
| 519 | + , $this->getConfig('filesize')); |
|
| 520 | 520 | break; |
| 521 | 521 | case 'FILENAME': |
| 522 | - if( empty( $this->filename )) { |
|
| 523 | - if( 'xcal' == $this->format ) |
|
| 524 | - $this->filename = date( 'YmdHis' ).'.xml'; // recommended xcs.. . |
|
| 522 | + if (empty($this->filename)) { |
|
| 523 | + if ('xcal' == $this->format) |
|
| 524 | + $this->filename = date('YmdHis').'.xml'; // recommended xcs.. . |
|
| 525 | 525 | else |
| 526 | - $this->filename = date( 'YmdHis' ).'.ics'; |
|
| 526 | + $this->filename = date('YmdHis').'.ics'; |
|
| 527 | 527 | } |
| 528 | 528 | return $this->filename; |
| 529 | 529 | break; |
| 530 | 530 | case 'FILESIZE': |
| 531 | - $size = 0; |
|
| 532 | - if( empty( $this->url )) { |
|
| 533 | - $dirfile = $this->getConfig( 'dirfile' ); |
|
| 534 | - if( FALSE === ( $size = filesize( $dirfile ))) |
|
| 531 | + $size = 0; |
|
| 532 | + if (empty($this->url)) { |
|
| 533 | + $dirfile = $this->getConfig('dirfile'); |
|
| 534 | + if (FALSE === ($size = filesize($dirfile))) |
|
| 535 | 535 | $size = 0; |
| 536 | 536 | clearstatcache(); |
| 537 | 537 | } |
@@ -552,7 +552,7 @@ discard block |
||
| 552 | 552 | return $this->unique_id; |
| 553 | 553 | break; |
| 554 | 554 | case 'URL': |
| 555 | - if( !empty( $this->url )) |
|
| 555 | + if (!empty($this->url)) |
|
| 556 | 556 | return $this->url; |
| 557 | 557 | else |
| 558 | 558 | return FALSE; |
@@ -568,12 +568,12 @@ discard block |
||
| 568 | 568 | * @param string $value |
| 569 | 569 | * @return void |
| 570 | 570 | */ |
| 571 | - function setConfig( $config, $value ) { |
|
| 571 | + function setConfig($config, $value) { |
|
| 572 | 572 | $res = FALSE; |
| 573 | - switch( strtoupper( $config )) { |
|
| 573 | + switch (strtoupper($config)) { |
|
| 574 | 574 | case 'ALLOWEMPTY': |
| 575 | 575 | $this->allowEmpty = $value; |
| 576 | - $subcfg = array( 'ALLOWEMPTY' => $value ); |
|
| 576 | + $subcfg = array('ALLOWEMPTY' => $value); |
|
| 577 | 577 | $res = TRUE; |
| 578 | 578 | break; |
| 579 | 579 | case 'DELIMITER': |
@@ -581,11 +581,11 @@ discard block |
||
| 581 | 581 | return TRUE; |
| 582 | 582 | break; |
| 583 | 583 | case 'DIRECTORY': |
| 584 | - $value = trim( $value ); |
|
| 584 | + $value = trim($value); |
|
| 585 | 585 | $nl = $this->getConfig('delimiter'); |
| 586 | - if( $nl == substr( $value, ( 0 - strlen( $nl )))) |
|
| 587 | - $value = substr( $value, 0, ( strlen( $value ) - strlen( $nl ))); |
|
| 588 | - if( is_dir( $value )) { |
|
| 586 | + if ($nl == substr($value, (0 - strlen($nl)))) |
|
| 587 | + $value = substr($value, 0, (strlen($value) - strlen($nl))); |
|
| 588 | + if (is_dir($value)) { |
|
| 589 | 589 | /* local directory */ |
| 590 | 590 | clearstatcache(); |
| 591 | 591 | $this->directory = $value; |
@@ -596,16 +596,16 @@ discard block |
||
| 596 | 596 | return FALSE; |
| 597 | 597 | break; |
| 598 | 598 | case 'FILENAME': |
| 599 | - $value = trim( $value ); |
|
| 600 | - if( !empty( $this->url )) { |
|
| 599 | + $value = trim($value); |
|
| 600 | + if (!empty($this->url)) { |
|
| 601 | 601 | /* remote directory+file - URL */ |
| 602 | 602 | $this->filename = $value; |
| 603 | 603 | return TRUE; |
| 604 | 604 | } |
| 605 | - $dirfile = $this->getConfig( 'directory' ).$this->getConfig( 'delimiter' ).$value; |
|
| 606 | - if( file_exists( $dirfile )) { |
|
| 605 | + $dirfile = $this->getConfig('directory').$this->getConfig('delimiter').$value; |
|
| 606 | + if (file_exists($dirfile)) { |
|
| 607 | 607 | /* local existing file */ |
| 608 | - if( is_readable( $dirfile ) || is_writable( $dirfile )) { |
|
| 608 | + if (is_readable($dirfile) || is_writable($dirfile)) { |
|
| 609 | 609 | clearstatcache(); |
| 610 | 610 | $this->filename = $value; |
| 611 | 611 | return TRUE; |
@@ -613,7 +613,7 @@ discard block |
||
| 613 | 613 | else |
| 614 | 614 | return FALSE; |
| 615 | 615 | } |
| 616 | - elseif( FALSE !== touch( $dirfile )) { |
|
| 616 | + elseif (FALSE !== touch($dirfile)) { |
|
| 617 | 617 | /* new local file created */ |
| 618 | 618 | $this->filename = $value; |
| 619 | 619 | return TRUE; |
@@ -622,8 +622,8 @@ discard block |
||
| 622 | 622 | return FALSE; |
| 623 | 623 | break; |
| 624 | 624 | case 'FORMAT': |
| 625 | - $value = trim( $value ); |
|
| 626 | - if( 'xcal' == strtolower( $value )) { |
|
| 625 | + $value = trim($value); |
|
| 626 | + if ('xcal' == strtolower($value)) { |
|
| 627 | 627 | $this->format = 'xcal'; |
| 628 | 628 | $this->attributeDelimiter = $this->nl; |
| 629 | 629 | $this->valueInit = null; |
@@ -633,46 +633,46 @@ discard block |
||
| 633 | 633 | $this->attributeDelimiter = ';'; |
| 634 | 634 | $this->valueInit = ':'; |
| 635 | 635 | } |
| 636 | - $subcfg = array( 'FORMAT' => $value ); |
|
| 636 | + $subcfg = array('FORMAT' => $value); |
|
| 637 | 637 | $res = TRUE; |
| 638 | 638 | break; |
| 639 | 639 | case 'LANGUAGE': |
| 640 | 640 | // set language for calendar component as defined in [RFC 1766] |
| 641 | - $value = trim( $value ); |
|
| 641 | + $value = trim($value); |
|
| 642 | 642 | $this->language = $value; |
| 643 | - $subcfg = array( 'LANGUAGE' => $value ); |
|
| 643 | + $subcfg = array('LANGUAGE' => $value); |
|
| 644 | 644 | $res = TRUE; |
| 645 | 645 | break; |
| 646 | 646 | case 'NL': |
| 647 | 647 | case 'NEWLINECHAR': |
| 648 | 648 | $this->nl = $value; |
| 649 | - $subcfg = array( 'NL' => $value ); |
|
| 649 | + $subcfg = array('NL' => $value); |
|
| 650 | 650 | $res = TRUE; |
| 651 | 651 | break; |
| 652 | 652 | case 'UNIQUE_ID': |
| 653 | - $value = trim( $value ); |
|
| 653 | + $value = trim($value); |
|
| 654 | 654 | $this->unique_id = $value; |
| 655 | - $subcfg = array( 'UNIQUE_ID' => $value ); |
|
| 655 | + $subcfg = array('UNIQUE_ID' => $value); |
|
| 656 | 656 | $res = TRUE; |
| 657 | 657 | break; |
| 658 | 658 | case 'URL': |
| 659 | 659 | /* remote file - URL */ |
| 660 | - $value = trim( $value ); |
|
| 661 | - $value = str_replace( 'HTTP://', 'http://', $value ); |
|
| 662 | - $value = str_replace( 'WEBCAL://', 'http://', $value ); |
|
| 663 | - $value = str_replace( 'webcal://', 'http://', $value ); |
|
| 660 | + $value = trim($value); |
|
| 661 | + $value = str_replace('HTTP://', 'http://', $value); |
|
| 662 | + $value = str_replace('WEBCAL://', 'http://', $value); |
|
| 663 | + $value = str_replace('webcal://', 'http://', $value); |
|
| 664 | 664 | $this->url = $value; |
| 665 | 665 | $this->directory = null; |
| 666 | - $parts = pathinfo( $value ); |
|
| 667 | - return $this->setConfig( 'filename', $parts['basename'] ); |
|
| 666 | + $parts = pathinfo($value); |
|
| 667 | + return $this->setConfig('filename', $parts['basename']); |
|
| 668 | 668 | break; |
| 669 | 669 | } |
| 670 | - if( !$res ) return FALSE; |
|
| 671 | - if( isset( $subcfg ) && !empty( $this->components )) { |
|
| 672 | - foreach( $subcfg as $cfgkey => $cfgvalue ) { |
|
| 673 | - foreach( $this->components as $cix => $component ) { |
|
| 674 | - $res = $component->setConfig( $cfgkey, $cfgvalue ); |
|
| 675 | - if( !$res ) |
|
| 670 | + if (!$res) return FALSE; |
|
| 671 | + if (isset($subcfg) && !empty($this->components)) { |
|
| 672 | + foreach ($subcfg as $cfgkey => $cfgvalue) { |
|
| 673 | + foreach ($this->components as $cix => $component) { |
|
| 674 | + $res = $component->setConfig($cfgkey, $cfgvalue); |
|
| 675 | + if (!$res) |
|
| 676 | 676 | break 2; |
| 677 | 677 | $this->components[$cix] = $component->copy(); // PHP4 compliant |
| 678 | 678 | } |
@@ -691,8 +691,8 @@ discard block |
||
| 691 | 691 | * @param object $component calendar component |
| 692 | 692 | * @return void |
| 693 | 693 | */ |
| 694 | - function addComponent( $component ) { |
|
| 695 | - $this->setComponent( $component ); |
|
| 694 | + function addComponent($component) { |
|
| 695 | + $this->setComponent($component); |
|
| 696 | 696 | } |
| 697 | 697 | /** |
| 698 | 698 | * delete calendar component from container |
@@ -703,33 +703,33 @@ discard block |
||
| 703 | 703 | * @param mixed $arg2 optional, ordno if arg1 = component type |
| 704 | 704 | * @return void |
| 705 | 705 | */ |
| 706 | - function deleteComponent( $arg1, $arg2=FALSE ) { |
|
| 706 | + function deleteComponent($arg1, $arg2 = FALSE) { |
|
| 707 | 707 | $argType = $index = null; |
| 708 | - if ( ctype_digit( (string) $arg1 )) { |
|
| 708 | + if (ctype_digit((string) $arg1)) { |
|
| 709 | 709 | $argType = 'INDEX'; |
| 710 | 710 | $index = (int) $arg1 - 1; |
| 711 | 711 | } |
| 712 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 713 | - $argType = strtolower( $arg1 ); |
|
| 714 | - $index = ( !empty( $arg2 ) && ctype_digit( (string) $arg2 )) ? (( int ) $arg2 - 1 ) : 0; |
|
| 712 | + elseif ((strlen($arg1) <= strlen('vfreebusy')) && (FALSE === strpos($arg1, '@'))) { |
|
| 713 | + $argType = strtolower($arg1); |
|
| 714 | + $index = (!empty($arg2) && ctype_digit((string) $arg2)) ? ((int) $arg2 - 1) : 0; |
|
| 715 | 715 | } |
| 716 | 716 | $cix1dC = 0; |
| 717 | - foreach ( $this->components as $cix => $component) { |
|
| 718 | - if( empty( $component )) continue; |
|
| 719 | - unset( $component->propix ); |
|
| 720 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 721 | - unset( $this->components[$cix] ); |
|
| 717 | + foreach ($this->components as $cix => $component) { |
|
| 718 | + if (empty($component)) continue; |
|
| 719 | + unset($component->propix); |
|
| 720 | + if (('INDEX' == $argType) && ($index == $cix)) { |
|
| 721 | + unset($this->components[$cix]); |
|
| 722 | 722 | return TRUE; |
| 723 | 723 | } |
| 724 | - elseif( $argType == $component->objName ) { |
|
| 725 | - if( $index == $cix1dC ) { |
|
| 726 | - unset( $this->components[$cix] ); |
|
| 724 | + elseif ($argType == $component->objName) { |
|
| 725 | + if ($index == $cix1dC) { |
|
| 726 | + unset($this->components[$cix]); |
|
| 727 | 727 | return TRUE; |
| 728 | 728 | } |
| 729 | 729 | $cix1dC++; |
| 730 | 730 | } |
| 731 | - elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 732 | - unset( $this->components[$cix] ); |
|
| 731 | + elseif (!$argType && ($arg1 == $component->getProperty('uid'))) { |
|
| 732 | + unset($this->components[$cix]); |
|
| 733 | 733 | return TRUE; |
| 734 | 734 | } |
| 735 | 735 | } |
@@ -744,49 +744,49 @@ discard block |
||
| 744 | 744 | * @param mixed $arg2 optional, ordno if arg1 = component type |
| 745 | 745 | * @return object |
| 746 | 746 | */ |
| 747 | - function getComponent( $arg1=FALSE, $arg2=FALSE ) { |
|
| 747 | + function getComponent($arg1 = FALSE, $arg2 = FALSE) { |
|
| 748 | 748 | $index = $argType = null; |
| 749 | - if ( !$arg1 ) { |
|
| 749 | + if (!$arg1) { |
|
| 750 | 750 | $argType = 'INDEX'; |
| 751 | 751 | $index = $this->compix['INDEX'] = |
| 752 | - ( isset( $this->compix['INDEX'] )) ? $this->compix['INDEX'] + 1 : 1; |
|
| 752 | + (isset($this->compix['INDEX'])) ? $this->compix['INDEX'] + 1 : 1; |
|
| 753 | 753 | } |
| 754 | - elseif ( ctype_digit( (string) $arg1 )) { |
|
| 754 | + elseif (ctype_digit((string) $arg1)) { |
|
| 755 | 755 | $argType = 'INDEX'; |
| 756 | 756 | $index = (int) $arg1; |
| 757 | - unset( $this->compix ); |
|
| 757 | + unset($this->compix); |
|
| 758 | 758 | } |
| 759 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 760 | - unset( $this->compix['INDEX'] ); |
|
| 761 | - $argType = strtolower( $arg1 ); |
|
| 762 | - if( !$arg2 ) |
|
| 759 | + elseif ((strlen($arg1) <= strlen('vfreebusy')) && (FALSE === strpos($arg1, '@'))) { |
|
| 760 | + unset($this->compix['INDEX']); |
|
| 761 | + $argType = strtolower($arg1); |
|
| 762 | + if (!$arg2) |
|
| 763 | 763 | $index = $this->compix[$argType] = |
| 764 | - ( isset( $this->compix[$argType] )) ? $this->compix[$argType] + 1 : 1; |
|
| 764 | + (isset($this->compix[$argType])) ? $this->compix[$argType] + 1 : 1; |
|
| 765 | 765 | else |
| 766 | 766 | $index = (int) $arg2; |
| 767 | 767 | } |
| 768 | - $index -= 1; |
|
| 769 | - $ckeys = array_keys( $this->components ); |
|
| 770 | - if( !empty( $index) && ( $index > end( $ckeys ))) |
|
| 768 | + $index -= 1; |
|
| 769 | + $ckeys = array_keys($this->components); |
|
| 770 | + if (!empty($index) && ($index > end($ckeys))) |
|
| 771 | 771 | return FALSE; |
| 772 | 772 | $cix1gC = 0; |
| 773 | - foreach ( $this->components as $cix => $component) { |
|
| 774 | - if( empty( $component )) continue; |
|
| 775 | - unset( $component->propix ); |
|
| 776 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) |
|
| 773 | + foreach ($this->components as $cix => $component) { |
|
| 774 | + if (empty($component)) continue; |
|
| 775 | + unset($component->propix); |
|
| 776 | + if (('INDEX' == $argType) && ($index == $cix)) |
|
| 777 | 777 | return $component->copy(); |
| 778 | - elseif( $argType == $component->objName ) { |
|
| 779 | - if( $index == $cix1gC ) |
|
| 778 | + elseif ($argType == $component->objName) { |
|
| 779 | + if ($index == $cix1gC) |
|
| 780 | 780 | return $component->copy(); |
| 781 | 781 | $cix1gC++; |
| 782 | 782 | } |
| 783 | - elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 784 | - unset( $component->propix ); |
|
| 783 | + elseif (!$argType && ($arg1 == $component->getProperty('uid'))) { |
|
| 784 | + unset($component->propix); |
|
| 785 | 785 | return $component->copy(); |
| 786 | 786 | } |
| 787 | 787 | } |
| 788 | 788 | /* not found.. . */ |
| 789 | - unset( $this->compix ); |
|
| 789 | + unset($this->compix); |
|
| 790 | 790 | return FALSE; |
| 791 | 791 | } |
| 792 | 792 | /** |
@@ -813,242 +813,242 @@ discard block |
||
| 813 | 813 | * FALSE - one occurance of component only in output array</tr> |
| 814 | 814 | * @return array or FALSE |
| 815 | 815 | */ |
| 816 | - function selectComponents( $startY=FALSE, $startM=FALSE, $startD=FALSE, $endY=FALSE, $endM=FALSE, $endD=FALSE, $cType=FALSE, $flat=FALSE, $any=TRUE, $split=TRUE ) { |
|
| 816 | + function selectComponents($startY = FALSE, $startM = FALSE, $startD = FALSE, $endY = FALSE, $endM = FALSE, $endD = FALSE, $cType = FALSE, $flat = FALSE, $any = TRUE, $split = TRUE) { |
|
| 817 | 817 | /* check if empty calendar */ |
| 818 | - if( 0 >= count( $this->components )) return FALSE; |
|
| 818 | + if (0 >= count($this->components)) return FALSE; |
|
| 819 | 819 | /* check default dates */ |
| 820 | - if( !$startY ) $startY = date( 'Y' ); |
|
| 821 | - if( !$startM ) $startM = date( 'm' ); |
|
| 822 | - if( !$startD ) $startD = date( 'd' ); |
|
| 823 | - $startDate = mktime( 0, 0, 0, $startM, $startD, $startY ); |
|
| 824 | - if( !$endY ) $endY = $startY; |
|
| 825 | - if( !$endM ) $endM = $startM; |
|
| 826 | - if( !$endD ) $endD = $startD; |
|
| 827 | - $endDate = mktime( 23, 59, 59, $endM, $endD, $endY ); |
|
| 820 | + if (!$startY) $startY = date('Y'); |
|
| 821 | + if (!$startM) $startM = date('m'); |
|
| 822 | + if (!$startD) $startD = date('d'); |
|
| 823 | + $startDate = mktime(0, 0, 0, $startM, $startD, $startY); |
|
| 824 | + if (!$endY) $endY = $startY; |
|
| 825 | + if (!$endM) $endM = $startM; |
|
| 826 | + if (!$endD) $endD = $startD; |
|
| 827 | + $endDate = mktime(23, 59, 59, $endM, $endD, $endY); |
|
| 828 | 828 | /* check component types */ |
| 829 | - $validTypes = array('vevent', 'vtodo', 'vjournal', 'vfreebusy' ); |
|
| 830 | - if( is_array( $cType )) { |
|
| 831 | - foreach( $cType as $cix => $theType ) { |
|
| 832 | - $cType[$cix] = $theType = strtolower( $theType ); |
|
| 833 | - if( !in_array( $theType, $validTypes )) |
|
| 829 | + $validTypes = array('vevent', 'vtodo', 'vjournal', 'vfreebusy'); |
|
| 830 | + if (is_array($cType)) { |
|
| 831 | + foreach ($cType as $cix => $theType) { |
|
| 832 | + $cType[$cix] = $theType = strtolower($theType); |
|
| 833 | + if (!in_array($theType, $validTypes)) |
|
| 834 | 834 | $cType[$cix] = 'vevent'; |
| 835 | 835 | } |
| 836 | - $cType = array_unique( $cType ); |
|
| 836 | + $cType = array_unique($cType); |
|
| 837 | 837 | } |
| 838 | - elseif( !empty( $cType )) { |
|
| 839 | - $cType = strtolower( $cType ); |
|
| 840 | - if( !in_array( $cType, $validTypes )) |
|
| 841 | - $cType = array( 'vevent' ); |
|
| 838 | + elseif (!empty($cType)) { |
|
| 839 | + $cType = strtolower($cType); |
|
| 840 | + if (!in_array($cType, $validTypes)) |
|
| 841 | + $cType = array('vevent'); |
|
| 842 | 842 | else |
| 843 | - $cType = array( $cType ); |
|
| 843 | + $cType = array($cType); |
|
| 844 | 844 | } |
| 845 | 845 | else |
| 846 | 846 | $cType = $validTypes; |
| 847 | - if( 0 >= count( $cType )) |
|
| 847 | + if (0 >= count($cType)) |
|
| 848 | 848 | $cType = $validTypes; |
| 849 | 849 | /* iterate components */ |
| 850 | 850 | $result = array(); |
| 851 | - foreach ( $this->components as $cix => $component ) { |
|
| 852 | - if( empty( $component )) continue; |
|
| 853 | - unset( $component->propix, $start ); |
|
| 851 | + foreach ($this->components as $cix => $component) { |
|
| 852 | + if (empty($component)) continue; |
|
| 853 | + unset($component->propix, $start); |
|
| 854 | 854 | /* deselect unvalid type components */ |
| 855 | - if( !in_array( $component->objName, $cType )) continue; |
|
| 855 | + if (!in_array($component->objName, $cType)) continue; |
|
| 856 | 856 | /* deselect components without dtstart set */ |
| 857 | - if( FALSE === ( $start = $component->getProperty( 'dtstart' ))) continue; |
|
| 857 | + if (FALSE === ($start = $component->getProperty('dtstart'))) continue; |
|
| 858 | 858 | $dtendExist = $dueExist = $durationExist = $endAllDayEvent = FALSE; |
| 859 | - unset( $end, $startWdate, $endWdate, $rdurWsecs, $rdur, $exdatelist, $workstart, $workend ); // clean up |
|
| 860 | - $startWdate = $component->_date2timestamp( $start ); |
|
| 861 | - $startDateFormat = ( isset( $start['hour'] )) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 859 | + unset($end, $startWdate, $endWdate, $rdurWsecs, $rdur, $exdatelist, $workstart, $workend); // clean up |
|
| 860 | + $startWdate = $component->_date2timestamp($start); |
|
| 861 | + $startDateFormat = (isset($start['hour'])) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 862 | 862 | /* get end date from dtend/due/duration properties */ |
| 863 | - $end = $component->getProperty( 'dtend' ); |
|
| 864 | - if( !empty( $end )) { |
|
| 863 | + $end = $component->getProperty('dtend'); |
|
| 864 | + if (!empty($end)) { |
|
| 865 | 865 | $dtendExist = TRUE; |
| 866 | - $endDateFormat = ( isset( $end['hour'] )) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 866 | + $endDateFormat = (isset($end['hour'])) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 867 | 867 | } |
| 868 | 868 | // if( !empty($end)) echo 'selectComp 1 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
| 869 | - if( empty($end) && ( $component->objName == 'vtodo' )) { |
|
| 870 | - $end = $component->getProperty( 'due' ); |
|
| 871 | - if( !empty( $end )) { |
|
| 869 | + if (empty($end) && ($component->objName == 'vtodo')) { |
|
| 870 | + $end = $component->getProperty('due'); |
|
| 871 | + if (!empty($end)) { |
|
| 872 | 872 | $dueExist = TRUE; |
| 873 | - $endDateFormat = ( isset( $end['hour'] )) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 873 | + $endDateFormat = (isset($end['hour'])) ? 'Y-m-d H:i:s' : 'Y-m-d'; |
|
| 874 | 874 | } |
| 875 | 875 | // if( !empty($end)) echo 'selectComp 2 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
| 876 | 876 | } |
| 877 | - if( !empty( $end ) && !isset( $end['hour'] )) { |
|
| 877 | + if (!empty($end) && !isset($end['hour'])) { |
|
| 878 | 878 | /* a DTEND without time part regards an event that ends the day before, |
| 879 | 879 | for an all-day event DTSTART=20071201 DTEND=20071202 (taking place 20071201!!! */ |
| 880 | 880 | $endAllDayEvent = TRUE; |
| 881 | - $endWdate = mktime( 23, 59, 59, $end['month'], ($end['day'] - 1), $end['year'] ); |
|
| 882 | - $end['year'] = date( 'Y', $endWdate ); |
|
| 883 | - $end['month'] = date( 'm', $endWdate ); |
|
| 884 | - $end['day'] = date( 'd', $endWdate ); |
|
| 881 | + $endWdate = mktime(23, 59, 59, $end['month'], ($end['day'] - 1), $end['year']); |
|
| 882 | + $end['year'] = date('Y', $endWdate); |
|
| 883 | + $end['month'] = date('m', $endWdate); |
|
| 884 | + $end['day'] = date('d', $endWdate); |
|
| 885 | 885 | $end['hour'] = 23; |
| 886 | 886 | $end['min'] = $end['sec'] = 59; |
| 887 | 887 | // if( !empty($end)) echo 'selectComp 3 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
| 888 | 888 | } |
| 889 | - if( empty( $end )) { |
|
| 890 | - $end = $component->getProperty( 'duration', FALSE, FALSE, TRUE );// in dtend (array) format |
|
| 891 | - if( !empty( $end )) |
|
| 889 | + if (empty($end)) { |
|
| 890 | + $end = $component->getProperty('duration', FALSE, FALSE, TRUE); // in dtend (array) format |
|
| 891 | + if (!empty($end)) |
|
| 892 | 892 | $durationExist = TRUE; |
| 893 | 893 | // if( !empty($end)) echo 'selectComp 4 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
| 894 | 894 | } |
| 895 | - if( empty( $end )) { // assume one day duration if missing end date |
|
| 896 | - $end = array( 'year' => $start['year'], 'month' => $start['month'], 'day' => $start['day'], 'hour' => 23, 'min' => 59, 'sec' => 59 ); |
|
| 895 | + if (empty($end)) { // assume one day duration if missing end date |
|
| 896 | + $end = array('year' => $start['year'], 'month' => $start['month'], 'day' => $start['day'], 'hour' => 23, 'min' => 59, 'sec' => 59); |
|
| 897 | 897 | // if( isset($end)) echo 'selectComp 5 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
| 898 | 898 | } |
| 899 | - $endWdate = $component->_date2timestamp( $end ); |
|
| 900 | - if( $endWdate < $startWdate ) { // MUST be after start date!! |
|
| 901 | - $end = array( 'year' => $start['year'], 'month' => $start['month'], 'day' => $start['day'], 'hour' => 23, 'min' => 59, 'sec' => 59 ); |
|
| 902 | - $endWdate = $component->_date2timestamp( $end ); |
|
| 899 | + $endWdate = $component->_date2timestamp($end); |
|
| 900 | + if ($endWdate < $startWdate) { // MUST be after start date!! |
|
| 901 | + $end = array('year' => $start['year'], 'month' => $start['month'], 'day' => $start['day'], 'hour' => 23, 'min' => 59, 'sec' => 59); |
|
| 902 | + $endWdate = $component->_date2timestamp($end); |
|
| 903 | 903 | } |
| 904 | 904 | $rdurWsecs = $endWdate - $startWdate; // compute component duration in seconds |
| 905 | - $rdur = $component->_date2duration( $start, $end ); // compute component duration, array |
|
| 905 | + $rdur = $component->_date2duration($start, $end); // compute component duration, array |
|
| 906 | 906 | /* make a list of optional exclude dates for component occurence from exrule and exdate */ |
| 907 | 907 | $exdatelist = array(); |
| 908 | - $workstart = $component->_timestamp2date(( $startDate - $rdurWsecs ), 6); |
|
| 909 | - $workend = $component->_timestamp2date(( $endDate + $rdurWsecs ), 6); |
|
| 910 | - while( FALSE !== ( $exrule = $component->getProperty( 'exrule' ))) // check exrule |
|
| 911 | - $component->_recur2date( $exdatelist, $exrule, $start, $workstart, $workend ); |
|
| 912 | - while( FALSE !== ( $exdate = $component->getProperty( 'exdate' ))) { // check exdate |
|
| 913 | - foreach( $exdate as $theExdate ) { |
|
| 914 | - $exWdate = $component->_date2timestamp( $theExdate ); |
|
| 915 | - if((( $startDate - $rdurWsecs ) <= $exWdate ) && ( $endDate >= $exWdate )) |
|
| 908 | + $workstart = $component->_timestamp2date(($startDate - $rdurWsecs), 6); |
|
| 909 | + $workend = $component->_timestamp2date(($endDate + $rdurWsecs), 6); |
|
| 910 | + while (FALSE !== ($exrule = $component->getProperty('exrule'))) // check exrule |
|
| 911 | + $component->_recur2date($exdatelist, $exrule, $start, $workstart, $workend); |
|
| 912 | + while (FALSE !== ($exdate = $component->getProperty('exdate'))) { // check exdate |
|
| 913 | + foreach ($exdate as $theExdate) { |
|
| 914 | + $exWdate = $component->_date2timestamp($theExdate); |
|
| 915 | + if ((($startDate - $rdurWsecs) <= $exWdate) && ($endDate >= $exWdate)) |
|
| 916 | 916 | $exdatelist[$exWdate] = TRUE; |
| 917 | 917 | } |
| 918 | 918 | } |
| 919 | 919 | /* if 'any' components, check repeating components, removing all excluding dates */ |
| 920 | - if( TRUE === $any ) { |
|
| 920 | + if (TRUE === $any) { |
|
| 921 | 921 | /* make a list of optional repeating dates for component occurence, rrule, rdate */ |
| 922 | 922 | $recurlist = array(); |
| 923 | - while( FALSE !== ( $rrule = $component->getProperty( 'rrule' ))) // check rrule |
|
| 924 | - $component->_recur2date( $recurlist, $rrule, $start, $workstart, $workend ); |
|
| 925 | - foreach( $recurlist as $recurkey => $recurvalue ) // key=match date as timestamp |
|
| 923 | + while (FALSE !== ($rrule = $component->getProperty('rrule'))) // check rrule |
|
| 924 | + $component->_recur2date($recurlist, $rrule, $start, $workstart, $workend); |
|
| 925 | + foreach ($recurlist as $recurkey => $recurvalue) // key=match date as timestamp |
|
| 926 | 926 | $recurlist[$recurkey] = $rdurWsecs; // add duration in seconds |
| 927 | - while( FALSE !== ( $rdate = $component->getProperty( 'rdate' ))) { // check rdate |
|
| 928 | - foreach( $rdate as $theRdate ) { |
|
| 929 | - if( is_array( $theRdate ) && ( 2 == count( $theRdate )) && // all days within PERIOD |
|
| 930 | - array_key_exists( '0', $theRdate ) && array_key_exists( '1', $theRdate )) { |
|
| 931 | - $rstart = $component->_date2timestamp( $theRdate[0] ); |
|
| 932 | - if(( $rstart < ( $startDate - $rdurWsecs )) || ( $rstart > $endDate )) |
|
| 927 | + while (FALSE !== ($rdate = $component->getProperty('rdate'))) { // check rdate |
|
| 928 | + foreach ($rdate as $theRdate) { |
|
| 929 | + if (is_array($theRdate) && (2 == count($theRdate)) && // all days within PERIOD |
|
| 930 | + array_key_exists('0', $theRdate) && array_key_exists('1', $theRdate)) { |
|
| 931 | + $rstart = $component->_date2timestamp($theRdate[0]); |
|
| 932 | + if (($rstart < ($startDate - $rdurWsecs)) || ($rstart > $endDate)) |
|
| 933 | 933 | continue; |
| 934 | - if( isset( $theRdate[1]['year'] )) // date-date period |
|
| 935 | - $rend = $component->_date2timestamp( $theRdate[1] ); |
|
| 934 | + if (isset($theRdate[1]['year'])) // date-date period |
|
| 935 | + $rend = $component->_date2timestamp($theRdate[1]); |
|
| 936 | 936 | else { // date-duration period |
| 937 | - $rend = $component->duration2date( $theRdate[0], $theRdate[1] ); |
|
| 938 | - $rend = $component->_date2timestamp( $rend ); |
|
| 937 | + $rend = $component->duration2date($theRdate[0], $theRdate[1]); |
|
| 938 | + $rend = $component->_date2timestamp($rend); |
|
| 939 | 939 | } |
| 940 | - if((( $startDate - $rdurWsecs ) <= $rstart ) && ( $endDate >= $rstart )) |
|
| 941 | - $recurlist[$rstart] = ( $rstart - $rend ); // set start date + rdate duration in seconds |
|
| 940 | + if ((($startDate - $rdurWsecs) <= $rstart) && ($endDate >= $rstart)) |
|
| 941 | + $recurlist[$rstart] = ($rstart - $rend); // set start date + rdate duration in seconds |
|
| 942 | 942 | } // PERIOD end |
| 943 | 943 | else { // single date |
| 944 | - $theRdate = $component->_date2timestamp( $theRdate ); |
|
| 945 | - if((( $startDate - $rdurWsecs ) <= $theRdate ) && ( $endDate >= $theRdate )) |
|
| 944 | + $theRdate = $component->_date2timestamp($theRdate); |
|
| 945 | + if ((($startDate - $rdurWsecs) <= $theRdate) && ($endDate >= $theRdate)) |
|
| 946 | 946 | $recurlist[$theRdate] = $rdurWsecs; // set start date + event duration in seconds |
| 947 | 947 | } |
| 948 | 948 | } |
| 949 | 949 | } |
| 950 | - if( 0 < count( $recurlist )) { |
|
| 951 | - ksort( $recurlist ); |
|
| 952 | - foreach( $recurlist as $recurkey => $durvalue ) { |
|
| 953 | - if((( $startDate - $rdurWsecs ) > $recurkey ) || ( $endDate < $recurkey )) // not within period |
|
| 950 | + if (0 < count($recurlist)) { |
|
| 951 | + ksort($recurlist); |
|
| 952 | + foreach ($recurlist as $recurkey => $durvalue) { |
|
| 953 | + if ((($startDate - $rdurWsecs) > $recurkey) || ($endDate < $recurkey)) // not within period |
|
| 954 | 954 | continue; |
| 955 | - if( isset( $exdatelist[$recurkey] )) // check excluded dates |
|
| 955 | + if (isset($exdatelist[$recurkey])) // check excluded dates |
|
| 956 | 956 | continue; |
| 957 | - if( $startWdate >= $recurkey ) // exclude component start date |
|
| 957 | + if ($startWdate >= $recurkey) // exclude component start date |
|
| 958 | 958 | continue; |
| 959 | 959 | $component2 = $component->copy(); |
| 960 | - $rstart = $component2->_timestamp2date( $recurkey, 6); |
|
| 960 | + $rstart = $component2->_timestamp2date($recurkey, 6); |
|
| 961 | 961 | $datevalue = $rstart['month'].'/'.$rstart['day'].'/'.$rstart['year']; |
| 962 | - if( isset( $start['hour'] ) || isset( $start['min'] ) || isset( $start['sec'] )) { |
|
| 963 | - $datevalue .= ( isset( $rstart['hour'] )) ? ' '.$rstart['hour'] : ' 00'; |
|
| 964 | - $datevalue .= ( isset( $rstart['min'] )) ? ':'.$rstart['min'] : ':00'; |
|
| 965 | - $datevalue .= ( isset( $rstart['sec'] )) ? ':'.$rstart['sec'] : ':00'; |
|
| 962 | + if (isset($start['hour']) || isset($start['min']) || isset($start['sec'])) { |
|
| 963 | + $datevalue .= (isset($rstart['hour'])) ? ' '.$rstart['hour'] : ' 00'; |
|
| 964 | + $datevalue .= (isset($rstart['min'])) ? ':'.$rstart['min'] : ':00'; |
|
| 965 | + $datevalue .= (isset($rstart['sec'])) ? ':'.$rstart['sec'] : ':00'; |
|
| 966 | 966 | } |
| 967 | - $datestring = date( $startDateFormat, strtotime( $datevalue )); |
|
| 968 | - if( isset( $start['tz'] )) |
|
| 967 | + $datestring = date($startDateFormat, strtotime($datevalue)); |
|
| 968 | + if (isset($start['tz'])) |
|
| 969 | 969 | $datestring .= ' '.$start['tz']; |
| 970 | - $component2->setProperty( 'X-CURRENT-DTSTART', $datestring ); |
|
| 971 | - $rend = $component2->_timestamp2date(( $recurkey + $durvalue ), 6); |
|
| 972 | - if( $dtendExist || $dueExist ) { |
|
| 973 | - if( $endAllDayEvent ) { |
|
| 974 | - $rend2 = mktime( 0, 0, 0, $rend['month'], ($rend['day'] + 1), $rend['year'] ); |
|
| 975 | - $datevalue = date( 'm', $rend2 ).'/'.date( 'd', $rend2 ).'/'.date( 'Y', $rend2 ); |
|
| 970 | + $component2->setProperty('X-CURRENT-DTSTART', $datestring); |
|
| 971 | + $rend = $component2->_timestamp2date(($recurkey + $durvalue), 6); |
|
| 972 | + if ($dtendExist || $dueExist) { |
|
| 973 | + if ($endAllDayEvent) { |
|
| 974 | + $rend2 = mktime(0, 0, 0, $rend['month'], ($rend['day'] + 1), $rend['year']); |
|
| 975 | + $datevalue = date('m', $rend2).'/'.date('d', $rend2).'/'.date('Y', $rend2); |
|
| 976 | 976 | } |
| 977 | 977 | else { |
| 978 | 978 | $datevalue = $rend['month'].'/'.$rend['day'].'/'.$rend['year']; |
| 979 | - if( isset( $end['hour'] ) || isset( $end['min'] ) || isset( $end['sec'] )) { |
|
| 980 | - $datevalue .= ( isset( $rend['hour'] )) ? ' '.$rend['hour'] : ' 00'; |
|
| 981 | - $datevalue .= ( isset( $rend['min'] )) ? ':'.$rend['min'] : ':00'; |
|
| 982 | - $datevalue .= ( isset( $rend['sec'] )) ? ':'.$rend['sec'] : ':00'; |
|
| 979 | + if (isset($end['hour']) || isset($end['min']) || isset($end['sec'])) { |
|
| 980 | + $datevalue .= (isset($rend['hour'])) ? ' '.$rend['hour'] : ' 00'; |
|
| 981 | + $datevalue .= (isset($rend['min'])) ? ':'.$rend['min'] : ':00'; |
|
| 982 | + $datevalue .= (isset($rend['sec'])) ? ':'.$rend['sec'] : ':00'; |
|
| 983 | 983 | } |
| 984 | 984 | } |
| 985 | - $datestring = date( $endDateFormat, strtotime( $datevalue )); |
|
| 986 | - if( isset( $end['tz'] )) |
|
| 985 | + $datestring = date($endDateFormat, strtotime($datevalue)); |
|
| 986 | + if (isset($end['tz'])) |
|
| 987 | 987 | $datestring .= ' '.$end['tz']; |
| 988 | - if( $dtendExist ) |
|
| 989 | - $component2->setProperty( 'X-CURRENT-DTEND', $datestring ); |
|
| 990 | - elseif( $dueExist ) |
|
| 991 | - $component2->setProperty( 'X-CURRENT-DUE', $datestring ); |
|
| 988 | + if ($dtendExist) |
|
| 989 | + $component2->setProperty('X-CURRENT-DTEND', $datestring); |
|
| 990 | + elseif ($dueExist) |
|
| 991 | + $component2->setProperty('X-CURRENT-DUE', $datestring); |
|
| 992 | 992 | } |
| 993 | - $rend = $component2->_date2timestamp( $rend ); |
|
| 993 | + $rend = $component2->_date2timestamp($rend); |
|
| 994 | 994 | $rstart = $recurkey; |
| 995 | 995 | /* add repeating components within valid dates to output array, only start date */ |
| 996 | - if( $flat ) |
|
| 996 | + if ($flat) |
|
| 997 | 997 | $result[] = $component2->copy(); // copy to output |
| 998 | - elseif( $split ) { |
|
| 999 | - if( $rend > $endDate ) |
|
| 998 | + elseif ($split) { |
|
| 999 | + if ($rend > $endDate) |
|
| 1000 | 1000 | $rend = $endDate; |
| 1001 | - while( $rstart <= $rend ) { // iterate |
|
| 1002 | - $wd = getdate( $rstart ); |
|
| 1003 | - if(( $rstart > $startDate ) && // date after dtstart |
|
| 1004 | - !isset( $exdatelist[$rstart] )) // check exclude date |
|
| 1001 | + while ($rstart <= $rend) { // iterate |
|
| 1002 | + $wd = getdate($rstart); |
|
| 1003 | + if (($rstart > $startDate) && // date after dtstart |
|
| 1004 | + !isset($exdatelist[$rstart])) // check exclude date |
|
| 1005 | 1005 | $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component2->copy(); // copy to output |
| 1006 | - $rstart += ( 24*60*60 ); // step one day |
|
| 1006 | + $rstart += (24 * 60 * 60); // step one day |
|
| 1007 | 1007 | } |
| 1008 | 1008 | } |
| 1009 | - elseif(( $rstart >= $startDate ) && // date within period |
|
| 1010 | - !isset( $exdatelist[$rstart] )) { // check exclude date |
|
| 1011 | - $wd = getdate( $rstart ); |
|
| 1009 | + elseif (($rstart >= $startDate) && // date within period |
|
| 1010 | + !isset($exdatelist[$rstart])) { // check exclude date |
|
| 1011 | + $wd = getdate($rstart); |
|
| 1012 | 1012 | $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component2->copy(); // copy to output |
| 1013 | 1013 | } |
| 1014 | 1014 | } |
| 1015 | 1015 | } |
| 1016 | 1016 | /* deselect components with startdate/enddate not within period */ |
| 1017 | - if(( $endWdate < $startDate ) || ( $startWdate > $endDate )) continue; |
|
| 1017 | + if (($endWdate < $startDate) || ($startWdate > $endDate)) continue; |
|
| 1018 | 1018 | } |
| 1019 | 1019 | /* deselect components with startdate not within period */ |
| 1020 | - elseif(( $startWdate < $startDate ) || ( $startWdate > $endDate )) continue; |
|
| 1020 | + elseif (($startWdate < $startDate) || ($startWdate > $endDate)) continue; |
|
| 1021 | 1021 | /* add selected components within valid dates to output array */ |
| 1022 | - if( $flat ) |
|
| 1022 | + if ($flat) |
|
| 1023 | 1023 | $result[] = $component->copy(); // copy to output; |
| 1024 | - elseif( $split ) { |
|
| 1025 | - if( $endWdate > $endDate ) |
|
| 1026 | - $endWdate = $endDate; // use period end date |
|
| 1027 | - if( !isset( $exdatelist[$startWdate] )) { // check excluded dates |
|
| 1028 | - if( $startWdate < $startDate ) |
|
| 1024 | + elseif ($split) { |
|
| 1025 | + if ($endWdate > $endDate) |
|
| 1026 | + $endWdate = $endDate; // use period end date |
|
| 1027 | + if (!isset($exdatelist[$startWdate])) { // check excluded dates |
|
| 1028 | + if ($startWdate < $startDate) |
|
| 1029 | 1029 | $startWdate = $startDate; // use period start date |
| 1030 | - while( $startWdate <= $endWdate ) { // iterate |
|
| 1031 | - $wd = getdate( $startWdate ); |
|
| 1030 | + while ($startWdate <= $endWdate) { // iterate |
|
| 1031 | + $wd = getdate($startWdate); |
|
| 1032 | 1032 | $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component->copy(); // copy to output |
| 1033 | - $startWdate += ( 24*60*60 ); // step one day |
|
| 1033 | + $startWdate += (24 * 60 * 60); // step one day |
|
| 1034 | 1034 | } |
| 1035 | 1035 | } |
| 1036 | 1036 | } // use component date |
| 1037 | - elseif( !isset( $exdatelist[$startWdate] ) && // check excluded dates |
|
| 1038 | - ( $startWdate >= $startDate )) { // within period |
|
| 1039 | - $wd = getdate( $startWdate ); |
|
| 1037 | + elseif (!isset($exdatelist[$startWdate]) && // check excluded dates |
|
| 1038 | + ($startWdate >= $startDate)) { // within period |
|
| 1039 | + $wd = getdate($startWdate); |
|
| 1040 | 1040 | $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component->copy(); // copy to output |
| 1041 | 1041 | } |
| 1042 | 1042 | } |
| 1043 | - if( 0 >= count( $result )) return FALSE; |
|
| 1044 | - elseif( !$flat ) { |
|
| 1045 | - foreach( $result as $y => $yeararr ) { |
|
| 1046 | - foreach( $yeararr as $m => $montharr ) { |
|
| 1047 | - ksort( $result[$y][$m] ); |
|
| 1043 | + if (0 >= count($result)) return FALSE; |
|
| 1044 | + elseif (!$flat) { |
|
| 1045 | + foreach ($result as $y => $yeararr) { |
|
| 1046 | + foreach ($yeararr as $m => $montharr) { |
|
| 1047 | + ksort($result[$y][$m]); |
|
| 1048 | 1048 | } |
| 1049 | - ksort( $result[$y] ); |
|
| 1049 | + ksort($result[$y]); |
|
| 1050 | 1050 | } |
| 1051 | - ksort( $result ); |
|
| 1051 | + ksort($result); |
|
| 1052 | 1052 | } |
| 1053 | 1053 | return $result; |
| 1054 | 1054 | } |
@@ -1062,48 +1062,48 @@ discard block |
||
| 1062 | 1062 | * @param mixed $arg2 optional, ordno if arg1 = component type |
| 1063 | 1063 | * @return void |
| 1064 | 1064 | */ |
| 1065 | - function setComponent( $component, $arg1=FALSE, $arg2=FALSE ) { |
|
| 1066 | - if( '' >= $component->getConfig( 'language')) |
|
| 1067 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 1068 | - $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
|
| 1069 | - $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
|
| 1070 | - $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
|
| 1071 | - $component->setConfig( 'format', $this->getConfig( 'format' )); |
|
| 1072 | - if( !in_array( $component->objName, array( 'valarm', 'vtimezone' ))) { |
|
| 1073 | - unset( $component->propix ); |
|
| 1065 | + function setComponent($component, $arg1 = FALSE, $arg2 = FALSE) { |
|
| 1066 | + if ('' >= $component->getConfig('language')) |
|
| 1067 | + $component->setConfig('language', $this->getConfig('language')); |
|
| 1068 | + $component->setConfig('allowEmpty', $this->getConfig('allowEmpty')); |
|
| 1069 | + $component->setConfig('nl', $this->getConfig('nl')); |
|
| 1070 | + $component->setConfig('unique_id', $this->getConfig('unique_id')); |
|
| 1071 | + $component->setConfig('format', $this->getConfig('format')); |
|
| 1072 | + if (!in_array($component->objName, array('valarm', 'vtimezone'))) { |
|
| 1073 | + unset($component->propix); |
|
| 1074 | 1074 | /* make sure dtstamp and uid is set */ |
| 1075 | - $dummy1 = $component->getProperty( 'dtstamp' ); |
|
| 1076 | - $dummy2 = $component->getProperty( 'uid' ); |
|
| 1075 | + $dummy1 = $component->getProperty('dtstamp'); |
|
| 1076 | + $dummy2 = $component->getProperty('uid'); |
|
| 1077 | 1077 | } |
| 1078 | - if( !$arg1 ) { |
|
| 1078 | + if (!$arg1) { |
|
| 1079 | 1079 | $this->components[] = $component->copy(); |
| 1080 | 1080 | return TRUE; |
| 1081 | 1081 | } |
| 1082 | 1082 | $argType = $index = null; |
| 1083 | - if ( ctype_digit( (string) $arg1 )) { |
|
| 1083 | + if (ctype_digit((string) $arg1)) { |
|
| 1084 | 1084 | $argType = 'INDEX'; |
| 1085 | 1085 | $index = (int) $arg1 - 1; |
| 1086 | 1086 | } |
| 1087 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 1088 | - $argType = strtolower( $arg1 ); |
|
| 1089 | - $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0; |
|
| 1087 | + elseif ((strlen($arg1) <= strlen('vfreebusy')) && (FALSE === strpos($arg1, '@'))) { |
|
| 1088 | + $argType = strtolower($arg1); |
|
| 1089 | + $index = (ctype_digit((string) $arg2)) ? ((int) $arg2) - 1 : 0; |
|
| 1090 | 1090 | } |
| 1091 | 1091 | $cix1sC = 0; |
| 1092 | - foreach ( $this->components as $cix => $component2) { |
|
| 1093 | - if( empty( $component2 )) continue; |
|
| 1094 | - unset( $component2->propix ); |
|
| 1095 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 1092 | + foreach ($this->components as $cix => $component2) { |
|
| 1093 | + if (empty($component2)) continue; |
|
| 1094 | + unset($component2->propix); |
|
| 1095 | + if (('INDEX' == $argType) && ($index == $cix)) { |
|
| 1096 | 1096 | $this->components[$cix] = $component->copy(); |
| 1097 | 1097 | return TRUE; |
| 1098 | 1098 | } |
| 1099 | - elseif( $argType == $component2->objName ) { |
|
| 1100 | - if( $index == $cix1sC ) { |
|
| 1099 | + elseif ($argType == $component2->objName) { |
|
| 1100 | + if ($index == $cix1sC) { |
|
| 1101 | 1101 | $this->components[$cix] = $component->copy(); |
| 1102 | 1102 | return TRUE; |
| 1103 | 1103 | } |
| 1104 | 1104 | $cix1sC++; |
| 1105 | 1105 | } |
| 1106 | - elseif( !$argType && ( $arg1 == $component2->getProperty( 'uid' ))) { |
|
| 1106 | + elseif (!$argType && ($arg1 == $component2->getProperty('uid'))) { |
|
| 1107 | 1107 | $this->components[$cix] = $component->copy(); |
| 1108 | 1108 | return TRUE; |
| 1109 | 1109 | } |
@@ -1124,79 +1124,79 @@ discard block |
||
| 1124 | 1124 | * |
| 1125 | 1125 | */ |
| 1126 | 1126 | function sort() { |
| 1127 | - if( is_array( $this->components )) { |
|
| 1128 | - $this->_sortkeys = array( 'year', 'month', 'day', 'hour', 'min', 'sec' ); |
|
| 1129 | - usort( $this->components, array( $this, '_cmpfcn' )); |
|
| 1130 | - } |
|
| 1131 | - } |
|
| 1132 | - function _cmpfcn( $a, $b ) { |
|
| 1133 | - if( empty( $a )) return -1; |
|
| 1134 | - if( empty( $b )) return 1; |
|
| 1135 | - if( 'vtimezone' == $a->objName) return -1; |
|
| 1136 | - if( 'vtimezone' == $b->objName) return 1; |
|
| 1137 | - $astart = ( isset( $a->xprop['X-CURRENT-DTSTART']['value'] )) ? $a->_date_time_string( $a->xprop['X-CURRENT-DTSTART']['value'] ) : null; |
|
| 1138 | - if( empty( $astart ) && isset( $a->dtstart['value'] )) |
|
| 1127 | + if (is_array($this->components)) { |
|
| 1128 | + $this->_sortkeys = array('year', 'month', 'day', 'hour', 'min', 'sec'); |
|
| 1129 | + usort($this->components, array($this, '_cmpfcn')); |
|
| 1130 | + } |
|
| 1131 | + } |
|
| 1132 | + function _cmpfcn($a, $b) { |
|
| 1133 | + if (empty($a)) return -1; |
|
| 1134 | + if (empty($b)) return 1; |
|
| 1135 | + if ('vtimezone' == $a->objName) return -1; |
|
| 1136 | + if ('vtimezone' == $b->objName) return 1; |
|
| 1137 | + $astart = (isset($a->xprop['X-CURRENT-DTSTART']['value'])) ? $a->_date_time_string($a->xprop['X-CURRENT-DTSTART']['value']) : null; |
|
| 1138 | + if (empty($astart) && isset($a->dtstart['value'])) |
|
| 1139 | 1139 | $astart = & $a->dtstart['value']; |
| 1140 | - $bstart = ( isset( $b->xprop['X-CURRENT-DTSTART']['value'] )) ? $b->_date_time_string( $b->xprop['X-CURRENT-DTSTART']['value'] ) : null; |
|
| 1141 | - if( empty( $bstart ) && isset( $b->dtstart['value'] )) |
|
| 1140 | + $bstart = (isset($b->xprop['X-CURRENT-DTSTART']['value'])) ? $b->_date_time_string($b->xprop['X-CURRENT-DTSTART']['value']) : null; |
|
| 1141 | + if (empty($bstart) && isset($b->dtstart['value'])) |
|
| 1142 | 1142 | $bstart = & $b->dtstart['value']; |
| 1143 | - if( empty( $astart )) return -1; |
|
| 1144 | - elseif( empty( $bstart )) return 1; |
|
| 1145 | - foreach( $this->_sortkeys as $key ) { |
|
| 1146 | - if ( empty( $astart[$key] )) return -1; |
|
| 1147 | - elseif( empty( $bstart[$key] )) return 1; |
|
| 1148 | - if ( $astart[$key] == $bstart[$key]) continue; |
|
| 1149 | - if (( (int) $astart[$key] ) < ((int) $bstart[$key] )) |
|
| 1143 | + if (empty($astart)) return -1; |
|
| 1144 | + elseif (empty($bstart)) return 1; |
|
| 1145 | + foreach ($this->_sortkeys as $key) { |
|
| 1146 | + if (empty($astart[$key])) return -1; |
|
| 1147 | + elseif (empty($bstart[$key])) return 1; |
|
| 1148 | + if ($astart[$key] == $bstart[$key]) continue; |
|
| 1149 | + if (((int) $astart[$key]) < ((int) $bstart[$key])) |
|
| 1150 | 1150 | return -1; |
| 1151 | - elseif(( (int) $astart[$key] ) > ((int) $bstart[$key] )) |
|
| 1151 | + elseif (((int) $astart[$key]) > ((int) $bstart[$key])) |
|
| 1152 | 1152 | return 1; |
| 1153 | 1153 | } |
| 1154 | - $c = ( isset( $a->xprop['X-CURRENT-DTEND']['value'] )) ? $a->_date_time_string( $a->xprop['X-CURRENT-DTEND']['value'] ) : null; |
|
| 1155 | - if( empty( $c ) && !empty( $a->dtend['value'] )) |
|
| 1154 | + $c = (isset($a->xprop['X-CURRENT-DTEND']['value'])) ? $a->_date_time_string($a->xprop['X-CURRENT-DTEND']['value']) : null; |
|
| 1155 | + if (empty($c) && !empty($a->dtend['value'])) |
|
| 1156 | 1156 | $c = & $a->dtend['value']; |
| 1157 | - if( empty( $c ) && isset( $a->xprop['X-CURRENT-DUE']['value'] )) |
|
| 1158 | - $c = $a->_date_time_string( $a->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1159 | - if( empty( $c ) && !empty( $a->due['value'] )) |
|
| 1157 | + if (empty($c) && isset($a->xprop['X-CURRENT-DUE']['value'])) |
|
| 1158 | + $c = $a->_date_time_string($a->xprop['X-CURRENT-DUE']['value']); |
|
| 1159 | + if (empty($c) && !empty($a->due['value'])) |
|
| 1160 | 1160 | $c = & $a->due['value']; |
| 1161 | - if( empty( $c ) && !empty( $a->duration['value'] )) |
|
| 1161 | + if (empty($c) && !empty($a->duration['value'])) |
|
| 1162 | 1162 | $c = $a->duration2date(); |
| 1163 | - $d = ( isset( $b->xprop['X-CURRENT-DTEND']['value'] )) ? $b->_date_time_string( $b->xprop['X-CURRENT-DTEND']['value'] ) : null; |
|
| 1164 | - if( empty( $d ) && !empty( $b->dtend['value'] )) |
|
| 1163 | + $d = (isset($b->xprop['X-CURRENT-DTEND']['value'])) ? $b->_date_time_string($b->xprop['X-CURRENT-DTEND']['value']) : null; |
|
| 1164 | + if (empty($d) && !empty($b->dtend['value'])) |
|
| 1165 | 1165 | $d = & $b->dtend['value']; |
| 1166 | - if( empty( $d ) && isset( $b->xprop['X-CURRENT-DUE']['value'] )) |
|
| 1167 | - $d = $b->_date_time_string( $b->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1168 | - if( empty( $d ) && !empty( $b->due['value'] )) |
|
| 1166 | + if (empty($d) && isset($b->xprop['X-CURRENT-DUE']['value'])) |
|
| 1167 | + $d = $b->_date_time_string($b->xprop['X-CURRENT-DUE']['value']); |
|
| 1168 | + if (empty($d) && !empty($b->due['value'])) |
|
| 1169 | 1169 | $d = & $b->due['value']; |
| 1170 | - if( empty( $d ) && !empty( $b->duration['value'] )) |
|
| 1170 | + if (empty($d) && !empty($b->duration['value'])) |
|
| 1171 | 1171 | $d = $b->duration2date(); |
| 1172 | - if( empty( $c )) return -1; |
|
| 1173 | - elseif( empty( $d )) return 1; |
|
| 1174 | - foreach( $this->_sortkeys as $key ) { |
|
| 1175 | - if ( !isset( $c[$key] )) return -1; |
|
| 1176 | - elseif( !isset( $d[$key] )) return 1; |
|
| 1177 | - if ( $c[$key] == $d[$key] ) continue; |
|
| 1178 | - if (( (int) $c[$key] ) < ((int) $d[$key])) return -1; |
|
| 1179 | - elseif(( (int) $c[$key] ) > ((int) $d[$key])) return 1; |
|
| 1180 | - } |
|
| 1181 | - if( isset( $a->created['value'] )) |
|
| 1172 | + if (empty($c)) return -1; |
|
| 1173 | + elseif (empty($d)) return 1; |
|
| 1174 | + foreach ($this->_sortkeys as $key) { |
|
| 1175 | + if (!isset($c[$key])) return -1; |
|
| 1176 | + elseif (!isset($d[$key])) return 1; |
|
| 1177 | + if ($c[$key] == $d[$key]) continue; |
|
| 1178 | + if (((int) $c[$key]) < ((int) $d[$key])) return -1; |
|
| 1179 | + elseif (((int) $c[$key]) > ((int) $d[$key])) return 1; |
|
| 1180 | + } |
|
| 1181 | + if (isset($a->created['value'])) |
|
| 1182 | 1182 | $e = & $a->created['value']; |
| 1183 | 1183 | else |
| 1184 | 1184 | $e = & $a->dtstamp['value']; |
| 1185 | - if( isset( $b->created['value'] )) |
|
| 1185 | + if (isset($b->created['value'])) |
|
| 1186 | 1186 | $f = & $b->created['value']; |
| 1187 | 1187 | else |
| 1188 | 1188 | $f = & $b->dtstamp['value']; |
| 1189 | - foreach( $this->_sortkeys as $key ) { |
|
| 1190 | - if( !isset( $e[$key] )) return -1; |
|
| 1191 | - elseif( !isset( $f[$key] )) return 1; |
|
| 1192 | - if ( $e[$key] == $f[$key] ) continue; |
|
| 1193 | - if (( (int) $e[$key] ) < ((int) $f[$key])) return -1; |
|
| 1194 | - elseif(( (int) $e[$key] ) > ((int) $f[$key])) return 1; |
|
| 1195 | - } |
|
| 1196 | - if (( $a->uid['value'] ) < |
|
| 1197 | - ( $b->uid['value'] )) return -1; |
|
| 1198 | - elseif(( $a->uid['value'] ) > |
|
| 1199 | - ( $b->uid['value'] )) return 1; |
|
| 1189 | + foreach ($this->_sortkeys as $key) { |
|
| 1190 | + if (!isset($e[$key])) return -1; |
|
| 1191 | + elseif (!isset($f[$key])) return 1; |
|
| 1192 | + if ($e[$key] == $f[$key]) continue; |
|
| 1193 | + if (((int) $e[$key]) < ((int) $f[$key])) return -1; |
|
| 1194 | + elseif (((int) $e[$key]) > ((int) $f[$key])) return 1; |
|
| 1195 | + } |
|
| 1196 | + if (($a->uid['value']) < |
|
| 1197 | + ($b->uid['value'])) return -1; |
|
| 1198 | + elseif (($a->uid['value']) > |
|
| 1199 | + ($b->uid['value'])) return 1; |
|
| 1200 | 1200 | return 0; |
| 1201 | 1201 | } |
| 1202 | 1202 | /** |
@@ -1208,104 +1208,104 @@ discard block |
||
| 1208 | 1208 | * @return bool FALSE if error occurs during parsing |
| 1209 | 1209 | * |
| 1210 | 1210 | */ |
| 1211 | - function parse( $filename=FALSE ) { |
|
| 1212 | - if( !$filename ) { |
|
| 1211 | + function parse($filename = FALSE) { |
|
| 1212 | + if (!$filename) { |
|
| 1213 | 1213 | /* directory/filename previous set via setConfig directory+filename / url */ |
| 1214 | - if( FALSE === ( $filename = $this->getConfig( 'url' ))) |
|
| 1215 | - $filename = $this->getConfig( 'dirfile' ); |
|
| 1214 | + if (FALSE === ($filename = $this->getConfig('url'))) |
|
| 1215 | + $filename = $this->getConfig('dirfile'); |
|
| 1216 | 1216 | } |
| 1217 | - elseif(( 'http://' == strtolower( substr( $filename, 0, 7 ))) || |
|
| 1218 | - ( 'webcal://' == strtolower( substr( $filename, 0, 9 )))) { |
|
| 1217 | + elseif (('http://' == strtolower(substr($filename, 0, 7))) || |
|
| 1218 | + ('webcal://' == strtolower(substr($filename, 0, 9)))) { |
|
| 1219 | 1219 | /* remote file - URL */ |
| 1220 | - $this->setConfig( 'URL', $filename ); |
|
| 1221 | - if( !$filename = $this->getConfig( 'url' )) |
|
| 1222 | - return FALSE; /* err 2 */ |
|
| 1220 | + $this->setConfig('URL', $filename); |
|
| 1221 | + if (!$filename = $this->getConfig('url')) |
|
| 1222 | + return FALSE; /* err 2 */ |
|
| 1223 | 1223 | } |
| 1224 | 1224 | else { |
| 1225 | 1225 | /* local directory/filename */ |
| 1226 | - $parts = pathinfo( $filename ); |
|
| 1227 | - if( !empty( $parts['dirname'] ) && ( '.' != $parts['dirname'] )) { |
|
| 1228 | - if( !$this->setConfig( 'directory', $parts['dirname'] )) |
|
| 1229 | - return FALSE; /* err 3 */ |
|
| 1226 | + $parts = pathinfo($filename); |
|
| 1227 | + if (!empty($parts['dirname']) && ('.' != $parts['dirname'])) { |
|
| 1228 | + if (!$this->setConfig('directory', $parts['dirname'])) |
|
| 1229 | + return FALSE; /* err 3 */ |
|
| 1230 | 1230 | } |
| 1231 | - if( !$this->setConfig( 'filename', $parts['basename'] )) |
|
| 1232 | - return FALSE; /* err 4 */ |
|
| 1231 | + if (!$this->setConfig('filename', $parts['basename'])) |
|
| 1232 | + return FALSE; /* err 4 */ |
|
| 1233 | 1233 | } |
| 1234 | - if( 'http://' != substr( $filename, 0, 7 )) { |
|
| 1234 | + if ('http://' != substr($filename, 0, 7)) { |
|
| 1235 | 1235 | /* local file error tests */ |
| 1236 | - if( !is_file( $filename )) /* err 5 */ |
|
| 1236 | + if (!is_file($filename)) /* err 5 */ |
|
| 1237 | 1237 | return FALSE; |
| 1238 | - if( !is_readable( $filename )) |
|
| 1239 | - return FALSE; /* err 6 */ |
|
| 1240 | - if( !filesize( $filename )) |
|
| 1241 | - return FALSE; /* err 7 */ |
|
| 1238 | + if (!is_readable($filename)) |
|
| 1239 | + return FALSE; /* err 6 */ |
|
| 1240 | + if (!filesize($filename)) |
|
| 1241 | + return FALSE; /* err 7 */ |
|
| 1242 | 1242 | clearstatcache(); |
| 1243 | 1243 | } |
| 1244 | 1244 | /* READ FILE */ |
| 1245 | - if( FALSE === ( $rows = file( $filename ))) |
|
| 1246 | - return FALSE; /* err 1 */ |
|
| 1245 | + if (FALSE === ($rows = file($filename))) |
|
| 1246 | + return FALSE; /* err 1 */ |
|
| 1247 | 1247 | /* identify BEGIN:VCALENDAR, MUST be first row */ |
| 1248 | - if( 'BEGIN:VCALENDAR' != strtoupper( trim( $rows[0] ))) |
|
| 1249 | - return FALSE; /* err 8 */ |
|
| 1248 | + if ('BEGIN:VCALENDAR' != strtoupper(trim($rows[0]))) |
|
| 1249 | + return FALSE; /* err 8 */ |
|
| 1250 | 1250 | /* remove empty trailing lines */ |
| 1251 | - while( '' == trim( $rows[count( $rows ) - 1] )) { |
|
| 1252 | - unset( $rows[count( $rows ) - 1] ); |
|
| 1253 | - $rows = array_values( $rows ); |
|
| 1251 | + while ('' == trim($rows[count($rows) - 1])) { |
|
| 1252 | + unset($rows[count($rows) - 1]); |
|
| 1253 | + $rows = array_values($rows); |
|
| 1254 | 1254 | } |
| 1255 | 1255 | /* identify ending END:VCALENDAR row */ |
| 1256 | - if( 'END:VCALENDAR' != strtoupper( trim( $rows[count( $rows ) - 1] ))) { |
|
| 1257 | - return FALSE; /* err 9 */ |
|
| 1256 | + if ('END:VCALENDAR' != strtoupper(trim($rows[count($rows) - 1]))) { |
|
| 1257 | + return FALSE; /* err 9 */ |
|
| 1258 | 1258 | } |
| 1259 | - if( 3 > count( $rows )) |
|
| 1260 | - return FALSE; /* err 10 */ |
|
| 1259 | + if (3 > count($rows)) |
|
| 1260 | + return FALSE; /* err 10 */ |
|
| 1261 | 1261 | $comp = $subcomp = null; |
| 1262 | 1262 | $actcomp = & $this; |
| 1263 | - $nl = $this->getConfig( 'nl' ); |
|
| 1263 | + $nl = $this->getConfig('nl'); |
|
| 1264 | 1264 | $calsync = 0; |
| 1265 | 1265 | /* identify components and update unparsed data within component */ |
| 1266 | - foreach( $rows as $line ) { |
|
| 1267 | - if( '' == trim( $line )) |
|
| 1266 | + foreach ($rows as $line) { |
|
| 1267 | + if ('' == trim($line)) |
|
| 1268 | 1268 | continue; |
| 1269 | - if( $nl == substr( $line, 0 - strlen( $nl ))) |
|
| 1270 | - $line = substr( $line, 0, ( strlen( $line ) - strlen( $nl ))).'\n'; |
|
| 1271 | - if( 'BEGIN:VCALENDAR' == strtoupper( substr( $line, 0, 15 ))) { |
|
| 1269 | + if ($nl == substr($line, 0 - strlen($nl))) |
|
| 1270 | + $line = substr($line, 0, (strlen($line) - strlen($nl))).'\n'; |
|
| 1271 | + if ('BEGIN:VCALENDAR' == strtoupper(substr($line, 0, 15))) { |
|
| 1272 | 1272 | $calsync++; |
| 1273 | 1273 | continue; |
| 1274 | 1274 | } |
| 1275 | - elseif( 'END:VCALENDAR' == strtoupper( substr( $line, 0, 13 ))) { |
|
| 1275 | + elseif ('END:VCALENDAR' == strtoupper(substr($line, 0, 13))) { |
|
| 1276 | 1276 | $calsync--; |
| 1277 | 1277 | continue; |
| 1278 | 1278 | } |
| 1279 | - elseif( 1 != $calsync ) |
|
| 1280 | - return FALSE; /* err 20 */ |
|
| 1281 | - if( 'END:' == strtoupper( substr( $line, 0, 4 ))) { |
|
| 1282 | - if( null != $subcomp ) { |
|
| 1283 | - $comp->setComponent( $subcomp ); |
|
| 1279 | + elseif (1 != $calsync) |
|
| 1280 | + return FALSE; /* err 20 */ |
|
| 1281 | + if ('END:' == strtoupper(substr($line, 0, 4))) { |
|
| 1282 | + if (null != $subcomp) { |
|
| 1283 | + $comp->setComponent($subcomp); |
|
| 1284 | 1284 | $subcomp = null; |
| 1285 | 1285 | } |
| 1286 | 1286 | else { |
| 1287 | - $this->setComponent( $comp ); |
|
| 1287 | + $this->setComponent($comp); |
|
| 1288 | 1288 | $comp = null; |
| 1289 | 1289 | } |
| 1290 | 1290 | $actcomp = null; |
| 1291 | 1291 | continue; |
| 1292 | 1292 | } // end - if ( 'END:' ==.. . |
| 1293 | - elseif( 'BEGIN:' == strtoupper( substr( $line, 0, 6 ))) { |
|
| 1294 | - $line = str_replace( '\n', '', $line ); |
|
| 1295 | - $compname = trim (strtoupper( substr( $line, 6 ))); |
|
| 1296 | - if( null != $comp ) { |
|
| 1297 | - if( 'VALARM' == $compname ) |
|
| 1293 | + elseif ('BEGIN:' == strtoupper(substr($line, 0, 6))) { |
|
| 1294 | + $line = str_replace('\n', '', $line); |
|
| 1295 | + $compname = trim(strtoupper(substr($line, 6))); |
|
| 1296 | + if (null != $comp) { |
|
| 1297 | + if ('VALARM' == $compname) |
|
| 1298 | 1298 | $subcomp = new valarm(); |
| 1299 | - elseif( 'STANDARD' == $compname ) |
|
| 1300 | - $subcomp = new vtimezone( 'STANDARD' ); |
|
| 1301 | - elseif( 'DAYLIGHT' == $compname ) |
|
| 1302 | - $subcomp = new vtimezone( 'DAYLIGHT' ); |
|
| 1299 | + elseif ('STANDARD' == $compname) |
|
| 1300 | + $subcomp = new vtimezone('STANDARD'); |
|
| 1301 | + elseif ('DAYLIGHT' == $compname) |
|
| 1302 | + $subcomp = new vtimezone('DAYLIGHT'); |
|
| 1303 | 1303 | else |
| 1304 | 1304 | return FALSE; /* err 6 */ |
| 1305 | 1305 | $actcomp = & $subcomp; |
| 1306 | 1306 | } |
| 1307 | 1307 | else { |
| 1308 | - switch( $compname ) { |
|
| 1308 | + switch ($compname) { |
|
| 1309 | 1309 | case 'VALARM': |
| 1310 | 1310 | $comp = new valarm(); |
| 1311 | 1311 | break; |
@@ -1336,74 +1336,74 @@ discard block |
||
| 1336 | 1336 | $actcomp->unparsed[] = $line; |
| 1337 | 1337 | } // end - foreach( rows.. . |
| 1338 | 1338 | /* parse data for calendar (this) object */ |
| 1339 | - if( is_array( $this->unparsed ) && ( 0 < count( $this->unparsed ))) { |
|
| 1339 | + if (is_array($this->unparsed) && (0 < count($this->unparsed))) { |
|
| 1340 | 1340 | /* concatenate property values spread over several lines */ |
| 1341 | 1341 | $lastix = -1; |
| 1342 | - $propnames = array( 'calscale','method','prodid','version','x-' ); |
|
| 1342 | + $propnames = array('calscale', 'method', 'prodid', 'version', 'x-'); |
|
| 1343 | 1343 | $proprows = array(); |
| 1344 | - foreach( $this->unparsed as $line ) { |
|
| 1344 | + foreach ($this->unparsed as $line) { |
|
| 1345 | 1345 | $newProp = FALSE; |
| 1346 | - foreach ( $propnames as $propname ) { |
|
| 1347 | - if( $propname == strtolower( substr( $line, 0, strlen( $propname )))) { |
|
| 1346 | + foreach ($propnames as $propname) { |
|
| 1347 | + if ($propname == strtolower(substr($line, 0, strlen($propname)))) { |
|
| 1348 | 1348 | $newProp = TRUE; |
| 1349 | 1349 | break; |
| 1350 | 1350 | } |
| 1351 | 1351 | } |
| 1352 | - if( $newProp ) { |
|
| 1352 | + if ($newProp) { |
|
| 1353 | 1353 | $newProp = FALSE; |
| 1354 | 1354 | $lastix++; |
| 1355 | - $proprows[$lastix] = $line; |
|
| 1355 | + $proprows[$lastix] = $line; |
|
| 1356 | 1356 | } |
| 1357 | 1357 | else { |
| 1358 | 1358 | /* remove line breaks */ |
| 1359 | - if(( '\n' == substr( $proprows[$lastix], -2 )) && |
|
| 1360 | - ( ' ' == substr( $line, 0, 1 ))) { |
|
| 1361 | - $proprows[$lastix] = substr( $proprows[$lastix], 0, strlen( $proprows[$lastix] ) - 2 ); |
|
| 1362 | - $line = substr( $line, 1 ); |
|
| 1359 | + if (('\n' == substr($proprows[$lastix], -2)) && |
|
| 1360 | + (' ' == substr($line, 0, 1))) { |
|
| 1361 | + $proprows[$lastix] = substr($proprows[$lastix], 0, strlen($proprows[$lastix]) - 2); |
|
| 1362 | + $line = substr($line, 1); |
|
| 1363 | 1363 | } |
| 1364 | 1364 | $proprows[$lastix] .= $line; |
| 1365 | 1365 | } |
| 1366 | 1366 | } |
| 1367 | 1367 | $toolbox = new calendarComponent(); |
| 1368 | - foreach( $proprows as $line ) { |
|
| 1369 | - if( '\n' == substr( $line, -2 )) |
|
| 1370 | - $line = substr( $line, 0, strlen( $line ) - 2 ); |
|
| 1368 | + foreach ($proprows as $line) { |
|
| 1369 | + if ('\n' == substr($line, -2)) |
|
| 1370 | + $line = substr($line, 0, strlen($line) - 2); |
|
| 1371 | 1371 | /* get propname */ |
| 1372 | 1372 | $cix = $propname = null; |
| 1373 | - for( $cix=0; $cix < strlen( $line ); $cix++ ) { |
|
| 1374 | - if( in_array( $line{$cix}, array( ':', ';' ))) |
|
| 1373 | + for ($cix = 0; $cix < strlen($line); $cix++) { |
|
| 1374 | + if (in_array($line{$cix}, array(':', ';'))) |
|
| 1375 | 1375 | break; |
| 1376 | 1376 | else |
| 1377 | 1377 | $propname .= $line{$cix}; |
| 1378 | 1378 | } |
| 1379 | 1379 | /* ignore version/prodid properties */ |
| 1380 | - if( in_array( strtoupper( $propname ), array( 'VERSION', 'PRODID' ))) |
|
| 1380 | + if (in_array(strtoupper($propname), array('VERSION', 'PRODID'))) |
|
| 1381 | 1381 | continue; |
| 1382 | - $line = substr( $line, $cix); |
|
| 1382 | + $line = substr($line, $cix); |
|
| 1383 | 1383 | /* separate attributes from value */ |
| 1384 | 1384 | $attr = array(); |
| 1385 | 1385 | $attrix = -1; |
| 1386 | - $strlen = strlen( $line ); |
|
| 1387 | - for( $cix=0; $cix < $strlen; $cix++ ) { |
|
| 1388 | - if(( ':' == $line{$cix} ) && |
|
| 1389 | - ( '://' != substr( $line, $cix, 3 )) && |
|
| 1390 | - ( 'mailto:' != strtolower( substr( $line, $cix - 6, 7 )))) { |
|
| 1386 | + $strlen = strlen($line); |
|
| 1387 | + for ($cix = 0; $cix < $strlen; $cix++) { |
|
| 1388 | + if ((':' == $line{$cix} ) && |
|
| 1389 | + ('://' != substr($line, $cix, 3)) && |
|
| 1390 | + ('mailto:' != strtolower(substr($line, $cix - 6, 7)))) { |
|
| 1391 | 1391 | $attrEnd = TRUE; |
| 1392 | - if(( $cix < ( $strlen - 4 )) && |
|
| 1393 | - ctype_digit( substr( $line, $cix+1, 4 ))) { // an URI with a (4pos) portnr?? |
|
| 1394 | - for( $c2ix = $cix; 3 < $c2ix; $c2ix-- ) { |
|
| 1395 | - if( '://' == substr( $line, $c2ix - 2, 3 )) { |
|
| 1392 | + if (($cix < ($strlen - 4)) && |
|
| 1393 | + ctype_digit(substr($line, $cix + 1, 4))) { // an URI with a (4pos) portnr?? |
|
| 1394 | + for ($c2ix = $cix; 3 < $c2ix; $c2ix--) { |
|
| 1395 | + if ('://' == substr($line, $c2ix - 2, 3)) { |
|
| 1396 | 1396 | $attrEnd = FALSE; |
| 1397 | 1397 | break; // an URI with a portnr!! |
| 1398 | 1398 | } |
| 1399 | 1399 | } |
| 1400 | 1400 | } |
| 1401 | - if( $attrEnd) { |
|
| 1402 | - $line = substr( $line, $cix + 1 ); |
|
| 1401 | + if ($attrEnd) { |
|
| 1402 | + $line = substr($line, $cix + 1); |
|
| 1403 | 1403 | break; |
| 1404 | 1404 | } |
| 1405 | 1405 | } |
| 1406 | - if( ';' == $line{$cix} ) |
|
| 1406 | + if (';' == $line{$cix} ) |
|
| 1407 | 1407 | $attr[++$attrix] = null; |
| 1408 | 1408 | else |
| 1409 | 1409 | $attr[$attrix] .= $line{$cix}; |
@@ -1411,46 +1411,46 @@ discard block |
||
| 1411 | 1411 | |
| 1412 | 1412 | /* make attributes in array format */ |
| 1413 | 1413 | $propattr = array(); |
| 1414 | - foreach( $attr as $attribute ) { |
|
| 1415 | - $attrsplit = explode( '=', $attribute, 2 ); |
|
| 1416 | - if( 1 < count( $attrsplit )) |
|
| 1414 | + foreach ($attr as $attribute) { |
|
| 1415 | + $attrsplit = explode('=', $attribute, 2); |
|
| 1416 | + if (1 < count($attrsplit)) |
|
| 1417 | 1417 | $propattr[$attrsplit[0]] = $attrsplit[1]; |
| 1418 | 1418 | else |
| 1419 | 1419 | $propattr[] = $attribute; |
| 1420 | 1420 | } |
| 1421 | 1421 | /* update Property */ |
| 1422 | - if( FALSE !== strpos( $line, ',' )) { |
|
| 1423 | - $content = explode( ',', $line ); |
|
| 1424 | - $clen = count( $content ); |
|
| 1425 | - for( $cix = 0; $cix < $clen; $cix++ ) { |
|
| 1426 | - if( "\\" == substr( $content[$cix], -1 )) { |
|
| 1422 | + if (FALSE !== strpos($line, ',')) { |
|
| 1423 | + $content = explode(',', $line); |
|
| 1424 | + $clen = count($content); |
|
| 1425 | + for ($cix = 0; $cix < $clen; $cix++) { |
|
| 1426 | + if ("\\" == substr($content[$cix], -1)) { |
|
| 1427 | 1427 | $content[$cix] .= ','.$content[$cix + 1]; |
| 1428 | - unset( $content[$cix + 1] ); |
|
| 1428 | + unset($content[$cix + 1]); |
|
| 1429 | 1429 | $cix++; |
| 1430 | 1430 | } |
| 1431 | 1431 | } |
| 1432 | - if( 1 < count( $content )) { |
|
| 1433 | - foreach( $content as $cix => $contentPart ) |
|
| 1434 | - $content[$cix] = $toolbox->_strunrep( $contentPart ); |
|
| 1435 | - $this->setProperty( $propname, $content, $propattr ); |
|
| 1432 | + if (1 < count($content)) { |
|
| 1433 | + foreach ($content as $cix => $contentPart) |
|
| 1434 | + $content[$cix] = $toolbox->_strunrep($contentPart); |
|
| 1435 | + $this->setProperty($propname, $content, $propattr); |
|
| 1436 | 1436 | continue; |
| 1437 | 1437 | } |
| 1438 | 1438 | else |
| 1439 | - $line = reset( $content ); |
|
| 1440 | - $line = $toolbox->_strunrep( $line ); |
|
| 1439 | + $line = reset($content); |
|
| 1440 | + $line = $toolbox->_strunrep($line); |
|
| 1441 | 1441 | } |
| 1442 | - $this->setProperty( $propname, trim( $line ), $propattr ); |
|
| 1442 | + $this->setProperty($propname, trim($line), $propattr); |
|
| 1443 | 1443 | } // end - foreach( $this->unparsed.. . |
| 1444 | 1444 | } // end - if( is_array( $this->unparsed.. . |
| 1445 | 1445 | /* parse Components */ |
| 1446 | - if( is_array( $this->components ) && ( 0 < count( $this->components ))) { |
|
| 1447 | - for( $six = 0; $six < count( $this->components ); $six++ ) { |
|
| 1448 | - if( !empty( $this->components[$six] )) |
|
| 1446 | + if (is_array($this->components) && (0 < count($this->components))) { |
|
| 1447 | + for ($six = 0; $six < count($this->components); $six++) { |
|
| 1448 | + if (!empty($this->components[$six])) |
|
| 1449 | 1449 | $this->components[$six]->parse(); |
| 1450 | 1450 | } |
| 1451 | 1451 | } |
| 1452 | 1452 | else |
| 1453 | - return FALSE; /* err 91 or something.. . */ |
|
| 1453 | + return FALSE; /* err 91 or something.. . */ |
|
| 1454 | 1454 | return TRUE; |
| 1455 | 1455 | } |
| 1456 | 1456 | /*********************************************************************************/ |
@@ -1463,7 +1463,7 @@ discard block |
||
| 1463 | 1463 | */ |
| 1464 | 1464 | function createCalendar() { |
| 1465 | 1465 | $calendarInit1 = $calendarInit2 = $calendarxCaldecl = $calendarStart = $calendar = null; |
| 1466 | - switch( $this->format ) { |
|
| 1466 | + switch ($this->format) { |
|
| 1467 | 1467 | case 'xcal': |
| 1468 | 1468 | $calendarInit1 = '<?xml version="1.0" encoding="UTF-8"?>'.$this->nl. |
| 1469 | 1469 | '<!DOCTYPE iCalendar PUBLIC "-//IETF//DTD XCAL/iCalendar XML//EN"'.$this->nl. |
@@ -1479,38 +1479,38 @@ discard block |
||
| 1479 | 1479 | $calendarStart .= $this->createMethod(); |
| 1480 | 1480 | $calendarStart .= $this->createProdid(); |
| 1481 | 1481 | $calendarStart .= $this->createVersion(); |
| 1482 | - switch( $this->format ) { |
|
| 1482 | + switch ($this->format) { |
|
| 1483 | 1483 | case 'xcal': |
| 1484 | - $nlstrlen = strlen( $this->nl ); |
|
| 1485 | - if( $this->nl == substr( $calendarStart, ( 0 - $nlstrlen ))) |
|
| 1486 | - $calendarStart = substr( $calendarStart, 0, ( strlen( $calendarStart ) - $nlstrlen )); |
|
| 1484 | + $nlstrlen = strlen($this->nl); |
|
| 1485 | + if ($this->nl == substr($calendarStart, (0 - $nlstrlen))) |
|
| 1486 | + $calendarStart = substr($calendarStart, 0, (strlen($calendarStart) - $nlstrlen)); |
|
| 1487 | 1487 | $calendarStart .= '>'.$this->nl; |
| 1488 | 1488 | break; |
| 1489 | 1489 | default: |
| 1490 | 1490 | break; |
| 1491 | 1491 | } |
| 1492 | 1492 | $calendar .= $this->createXprop(); |
| 1493 | - foreach( $this->components as $component ) { |
|
| 1494 | - if( empty( $component )) continue; |
|
| 1495 | - if( '' >= $component->getConfig( 'language')) |
|
| 1496 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 1497 | - $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
|
| 1498 | - $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
|
| 1499 | - $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
|
| 1500 | - $component->setConfig( 'format', $this->getConfig( 'format' )); |
|
| 1501 | - $calendar .= $component->createComponent( $this->xcaldecl ); |
|
| 1502 | - } |
|
| 1503 | - if(( 0 < count( $this->xcaldecl )) && ( 'xcal' == $this->format )) { // xCal only |
|
| 1493 | + foreach ($this->components as $component) { |
|
| 1494 | + if (empty($component)) continue; |
|
| 1495 | + if ('' >= $component->getConfig('language')) |
|
| 1496 | + $component->setConfig('language', $this->getConfig('language')); |
|
| 1497 | + $component->setConfig('allowEmpty', $this->getConfig('allowEmpty')); |
|
| 1498 | + $component->setConfig('nl', $this->getConfig('nl')); |
|
| 1499 | + $component->setConfig('unique_id', $this->getConfig('unique_id')); |
|
| 1500 | + $component->setConfig('format', $this->getConfig('format')); |
|
| 1501 | + $calendar .= $component->createComponent($this->xcaldecl); |
|
| 1502 | + } |
|
| 1503 | + if ((0 < count($this->xcaldecl)) && ('xcal' == $this->format)) { // xCal only |
|
| 1504 | 1504 | $calendarInit1 .= $this->nl.'['.$this->nl; |
| 1505 | 1505 | $old_xcaldecl = array(); |
| 1506 | - foreach( $this->xcaldecl as $declix => $declPart ) { |
|
| 1507 | - if(( 0 < count( $old_xcaldecl)) && |
|
| 1508 | - ( in_array( $declPart['uri'], $old_xcaldecl['uri'] )) && |
|
| 1509 | - ( in_array( $declPart['external'], $old_xcaldecl['external'] ))) |
|
| 1506 | + foreach ($this->xcaldecl as $declix => $declPart) { |
|
| 1507 | + if ((0 < count($old_xcaldecl)) && |
|
| 1508 | + (in_array($declPart['uri'], $old_xcaldecl['uri'])) && |
|
| 1509 | + (in_array($declPart['external'], $old_xcaldecl['external']))) |
|
| 1510 | 1510 | continue; // no duplicate uri and ext. references |
| 1511 | 1511 | $calendarxCaldecl .= '<!'; |
| 1512 | - foreach( $declPart as $declKey => $declValue ) { |
|
| 1513 | - switch( $declKey ) { // index |
|
| 1512 | + foreach ($declPart as $declKey => $declValue) { |
|
| 1513 | + switch ($declKey) { // index |
|
| 1514 | 1514 | case 'xmldecl': // no 1 |
| 1515 | 1515 | $calendarxCaldecl .= $declValue.' '; |
| 1516 | 1516 | break; |
@@ -1537,7 +1537,7 @@ discard block |
||
| 1537 | 1537 | } |
| 1538 | 1538 | $calendarInit2 = ']'.$calendarInit2; |
| 1539 | 1539 | } |
| 1540 | - switch( $this->format ) { |
|
| 1540 | + switch ($this->format) { |
|
| 1541 | 1541 | case 'xcal': |
| 1542 | 1542 | $calendar .= '</vcalendar>'.$this->nl; |
| 1543 | 1543 | break; |
@@ -1555,18 +1555,18 @@ discard block |
||
| 1555 | 1555 | * @return redirect |
| 1556 | 1556 | */ |
| 1557 | 1557 | function returnCalendar() { |
| 1558 | - $filename = $this->getConfig( 'filename' ); |
|
| 1558 | + $filename = $this->getConfig('filename'); |
|
| 1559 | 1559 | $output = $this->createCalendar(); |
| 1560 | - $filesize = strlen( $output ); |
|
| 1560 | + $filesize = strlen($output); |
|
| 1561 | 1561 | // if( headers_sent( $filename, $linenum )) |
| 1562 | 1562 | // die( "Headers already sent in $filename on line $linenum\n" ); |
| 1563 | - if( 'xcal' == $this->format ) |
|
| 1564 | - header( 'Content-Type: application/calendar+xml; charset=utf-8' ); |
|
| 1563 | + if ('xcal' == $this->format) |
|
| 1564 | + header('Content-Type: application/calendar+xml; charset=utf-8'); |
|
| 1565 | 1565 | else |
| 1566 | - header( 'Content-Type: text/calendar; charset=utf-8' ); |
|
| 1567 | - header( 'Content-Length: '.$filesize ); |
|
| 1568 | - header( 'Content-Disposition: attachment; filename="'.$filename.'"' ); |
|
| 1569 | - header( 'Cache-Control: max-age=10' ); |
|
| 1566 | + header('Content-Type: text/calendar; charset=utf-8'); |
|
| 1567 | + header('Content-Length: '.$filesize); |
|
| 1568 | + header('Content-Disposition: attachment; filename="'.$filename.'"'); |
|
| 1569 | + header('Cache-Control: max-age=10'); |
|
| 1570 | 1570 | echo $output; |
| 1571 | 1571 | die(); |
| 1572 | 1572 | } |
@@ -1580,20 +1580,20 @@ discard block |
||
| 1580 | 1580 | * @param string $delimiter optional |
| 1581 | 1581 | * @return bool |
| 1582 | 1582 | */ |
| 1583 | - function saveCalendar( $directory=FALSE, $filename=FALSE, $delimiter=FALSE ) { |
|
| 1584 | - if( $directory ) |
|
| 1585 | - $this->setConfig( 'directory', $directory ); |
|
| 1586 | - if( $filename ) |
|
| 1587 | - $this->setConfig( 'filename', $filename ); |
|
| 1588 | - if( $delimiter && ($delimiter != DIRECTORY_SEPARATOR )) |
|
| 1589 | - $this->setConfig( 'delimiter', $delimiter ); |
|
| 1590 | - if( FALSE === ( $dirfile = $this->getConfig( 'url' ))) |
|
| 1591 | - $dirfile = $this->getConfig( 'dirfile' ); |
|
| 1592 | - $iCalFile = @fopen( $dirfile, 'w' ); |
|
| 1593 | - if( $iCalFile ) { |
|
| 1594 | - if( FALSE === fwrite( $iCalFile, $this->createCalendar() )) |
|
| 1583 | + function saveCalendar($directory = FALSE, $filename = FALSE, $delimiter = FALSE) { |
|
| 1584 | + if ($directory) |
|
| 1585 | + $this->setConfig('directory', $directory); |
|
| 1586 | + if ($filename) |
|
| 1587 | + $this->setConfig('filename', $filename); |
|
| 1588 | + if ($delimiter && ($delimiter != DIRECTORY_SEPARATOR)) |
|
| 1589 | + $this->setConfig('delimiter', $delimiter); |
|
| 1590 | + if (FALSE === ($dirfile = $this->getConfig('url'))) |
|
| 1591 | + $dirfile = $this->getConfig('dirfile'); |
|
| 1592 | + $iCalFile = @fopen($dirfile, 'w'); |
|
| 1593 | + if ($iCalFile) { |
|
| 1594 | + if (FALSE === fwrite($iCalFile, $this->createCalendar())) |
|
| 1595 | 1595 | return FALSE; |
| 1596 | - fclose( $iCalFile ); |
|
| 1596 | + fclose($iCalFile); |
|
| 1597 | 1597 | return TRUE; |
| 1598 | 1598 | } |
| 1599 | 1599 | else |
@@ -1611,38 +1611,38 @@ discard block |
||
| 1611 | 1611 | * @param int timeout optional, default 3600 sec |
| 1612 | 1612 | * @return redirect/FALSE |
| 1613 | 1613 | */ |
| 1614 | - function useCachedCalendar( $directory=FALSE, $filename=FALSE, $delimiter=FALSE, $timeout=3600) { |
|
| 1615 | - if ( $directory && ctype_digit( (string) $directory ) && !$filename ) { |
|
| 1614 | + function useCachedCalendar($directory = FALSE, $filename = FALSE, $delimiter = FALSE, $timeout = 3600) { |
|
| 1615 | + if ($directory && ctype_digit((string) $directory) && !$filename) { |
|
| 1616 | 1616 | $timeout = (int) $directory; |
| 1617 | 1617 | $directory = FALSE; |
| 1618 | 1618 | } |
| 1619 | - if( $directory ) |
|
| 1620 | - $this->setConfig( 'directory', $directory ); |
|
| 1621 | - if( $filename ) |
|
| 1622 | - $this->setConfig( 'filename', $filename ); |
|
| 1623 | - if( $delimiter && ( $delimiter != DIRECTORY_SEPARATOR )) |
|
| 1624 | - $this->setConfig( 'delimiter', $delimiter ); |
|
| 1625 | - $filesize = $this->getConfig( 'filesize' ); |
|
| 1626 | - if( 0 >= $filesize ) |
|
| 1619 | + if ($directory) |
|
| 1620 | + $this->setConfig('directory', $directory); |
|
| 1621 | + if ($filename) |
|
| 1622 | + $this->setConfig('filename', $filename); |
|
| 1623 | + if ($delimiter && ($delimiter != DIRECTORY_SEPARATOR)) |
|
| 1624 | + $this->setConfig('delimiter', $delimiter); |
|
| 1625 | + $filesize = $this->getConfig('filesize'); |
|
| 1626 | + if (0 >= $filesize) |
|
| 1627 | 1627 | return FALSE; |
| 1628 | - $dirfile = $this->getConfig( 'dirfile' ); |
|
| 1629 | - if( time() - filemtime( $dirfile ) < $timeout) { |
|
| 1628 | + $dirfile = $this->getConfig('dirfile'); |
|
| 1629 | + if (time() - filemtime($dirfile) < $timeout) { |
|
| 1630 | 1630 | clearstatcache(); |
| 1631 | - $dirfile = $this->getConfig( 'dirfile' ); |
|
| 1632 | - $filename = $this->getConfig( 'filename' ); |
|
| 1631 | + $dirfile = $this->getConfig('dirfile'); |
|
| 1632 | + $filename = $this->getConfig('filename'); |
|
| 1633 | 1633 | // if( headers_sent( $filename, $linenum )) |
| 1634 | 1634 | // die( "Headers already sent in $filename on line $linenum\n" ); |
| 1635 | - if( 'xcal' == $this->format ) |
|
| 1636 | - header( 'Content-Type: application/calendar+xml; charset=utf-8' ); |
|
| 1635 | + if ('xcal' == $this->format) |
|
| 1636 | + header('Content-Type: application/calendar+xml; charset=utf-8'); |
|
| 1637 | 1637 | else |
| 1638 | - header( 'Content-Type: text/calendar; charset=utf-8' ); |
|
| 1639 | - header( 'Content-Length: '.$filesize ); |
|
| 1640 | - header( 'Content-Disposition: attachment; filename="'.$filename.'"' ); |
|
| 1641 | - header( 'Cache-Control: max-age=10' ); |
|
| 1642 | - $fp = @$fopen( $dirfile, 'r' ); |
|
| 1643 | - if( $fp ) { |
|
| 1644 | - fpassthru( $fp ); |
|
| 1645 | - fclose( $fp ); |
|
| 1638 | + header('Content-Type: text/calendar; charset=utf-8'); |
|
| 1639 | + header('Content-Length: '.$filesize); |
|
| 1640 | + header('Content-Disposition: attachment; filename="'.$filename.'"'); |
|
| 1641 | + header('Cache-Control: max-age=10'); |
|
| 1642 | + $fp = @$fopen($dirfile, 'r'); |
|
| 1643 | + if ($fp) { |
|
| 1644 | + fpassthru($fp); |
|
| 1645 | + fclose($fp); |
|
| 1646 | 1646 | } |
| 1647 | 1647 | die(); |
| 1648 | 1648 | } |
@@ -1691,8 +1691,8 @@ discard block |
||
| 1691 | 1691 | * @since 2.4.19 - 2008-10-23 |
| 1692 | 1692 | */ |
| 1693 | 1693 | function calendarComponent() { |
| 1694 | - $this->objName = ( isset( $this->timezonetype )) ? |
|
| 1695 | - strtolower( $this->timezonetype ) : get_class ( $this ); |
|
| 1694 | + $this->objName = (isset($this->timezonetype)) ? |
|
| 1695 | + strtolower($this->timezonetype) : get_class($this); |
|
| 1696 | 1696 | $this->uid = array(); |
| 1697 | 1697 | $this->dtstamp = array(); |
| 1698 | 1698 | |
@@ -1718,11 +1718,11 @@ discard block |
||
| 1718 | 1718 | * @return string |
| 1719 | 1719 | */ |
| 1720 | 1720 | function createAction() { |
| 1721 | - if( empty( $this->action )) return FALSE; |
|
| 1722 | - if( empty( $this->action['value'] )) |
|
| 1723 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ACTION' ) : FALSE; |
|
| 1724 | - $attributes = $this->_createParams( $this->action['params'] ); |
|
| 1725 | - return $this->_createElement( 'ACTION', $attributes, $this->action['value'] ); |
|
| 1721 | + if (empty($this->action)) return FALSE; |
|
| 1722 | + if (empty($this->action['value'])) |
|
| 1723 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('ACTION') : FALSE; |
|
| 1724 | + $attributes = $this->_createParams($this->action['params']); |
|
| 1725 | + return $this->_createElement('ACTION', $attributes, $this->action['value']); |
|
| 1726 | 1726 | } |
| 1727 | 1727 | /** |
| 1728 | 1728 | * set calendar component property action |
@@ -1733,9 +1733,9 @@ discard block |
||
| 1733 | 1733 | * @param mixed $params |
| 1734 | 1734 | * @return bool |
| 1735 | 1735 | */ |
| 1736 | - function setAction( $value, $params=FALSE ) { |
|
| 1737 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 1738 | - $this->action = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 1736 | + function setAction($value, $params = FALSE) { |
|
| 1737 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 1738 | + $this->action = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 1739 | 1739 | return TRUE; |
| 1740 | 1740 | } |
| 1741 | 1741 | /*********************************************************************************/ |
@@ -1750,14 +1750,14 @@ discard block |
||
| 1750 | 1750 | * @return string |
| 1751 | 1751 | */ |
| 1752 | 1752 | function createAttach() { |
| 1753 | - if( empty( $this->attach )) return FALSE; |
|
| 1754 | - $output = null; |
|
| 1755 | - foreach( $this->attach as $attachPart ) { |
|
| 1756 | - if(! empty( $attachPart['value'] )) { |
|
| 1757 | - $attributes = $this->_createParams( $attachPart['params'] ); |
|
| 1758 | - $output .= $this->_createElement( 'ATTACH', $attributes, $attachPart['value'] ); |
|
| 1753 | + if (empty($this->attach)) return FALSE; |
|
| 1754 | + $output = null; |
|
| 1755 | + foreach ($this->attach as $attachPart) { |
|
| 1756 | + if (!empty($attachPart['value'])) { |
|
| 1757 | + $attributes = $this->_createParams($attachPart['params']); |
|
| 1758 | + $output .= $this->_createElement('ATTACH', $attributes, $attachPart['value']); |
|
| 1759 | 1759 | } |
| 1760 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'ATTACH' ); |
|
| 1760 | + elseif ($this->getConfig('allowEmpty')) $output .= $this->_createElement('ATTACH'); |
|
| 1761 | 1761 | } |
| 1762 | 1762 | return $output; |
| 1763 | 1763 | } |
@@ -1771,9 +1771,9 @@ discard block |
||
| 1771 | 1771 | * @param integer $index, optional |
| 1772 | 1772 | * @return bool |
| 1773 | 1773 | */ |
| 1774 | - function setAttach( $value, $params=FALSE, $index=FALSE ) { |
|
| 1775 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 1776 | - $this->_setMval( $this->attach, $value, $params, FALSE, $index ); |
|
| 1774 | + function setAttach($value, $params = FALSE, $index = FALSE) { |
|
| 1775 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 1776 | + $this->_setMval($this->attach, $value, $params, FALSE, $index); |
|
| 1777 | 1777 | return TRUE; |
| 1778 | 1778 | } |
| 1779 | 1779 | /*********************************************************************************/ |
@@ -1788,26 +1788,26 @@ discard block |
||
| 1788 | 1788 | * @return string |
| 1789 | 1789 | */ |
| 1790 | 1790 | function createAttendee() { |
| 1791 | - if( empty( $this->attendee )) return FALSE; |
|
| 1791 | + if (empty($this->attendee)) return FALSE; |
|
| 1792 | 1792 | $output = null; |
| 1793 | - foreach( $this->attendee as $attendeePart ) { // start foreach 1 |
|
| 1794 | - if( empty( $attendeePart['value'] )) { |
|
| 1795 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 1796 | - $output .= $this->_createElement( 'ATTENDEE' ); |
|
| 1793 | + foreach ($this->attendee as $attendeePart) { // start foreach 1 |
|
| 1794 | + if (empty($attendeePart['value'])) { |
|
| 1795 | + if ($this->getConfig('allowEmpty')) |
|
| 1796 | + $output .= $this->_createElement('ATTENDEE'); |
|
| 1797 | 1797 | continue; |
| 1798 | 1798 | } |
| 1799 | 1799 | $attendee1 = $attendee2 = $attendeeLANG = $attendeeCN = null; |
| 1800 | - foreach( $attendeePart as $paramlabel => $paramvalue ) { // start foreach 2 |
|
| 1801 | - if( 'value' == $paramlabel ) |
|
| 1802 | - $attendee2 .= 'MAILTO:'.$paramvalue; |
|
| 1803 | - elseif(( 'params' == $paramlabel ) && ( is_array( $paramvalue ))) { // start elseif |
|
| 1804 | - foreach( $paramvalue as $optparamlabel => $optparamvalue ) { // start foreach 3 |
|
| 1800 | + foreach ($attendeePart as $paramlabel => $paramvalue) { // start foreach 2 |
|
| 1801 | + if ('value' == $paramlabel) |
|
| 1802 | + $attendee2 .= 'MAILTO:'.$paramvalue; |
|
| 1803 | + elseif (('params' == $paramlabel) && (is_array($paramvalue))) { // start elseif |
|
| 1804 | + foreach ($paramvalue as $optparamlabel => $optparamvalue) { // start foreach 3 |
|
| 1805 | 1805 | $attendee11 = $attendee12 = null; |
| 1806 | - if( is_int( $optparamlabel )) { |
|
| 1806 | + if (is_int($optparamlabel)) { |
|
| 1807 | 1807 | $attendee1 .= $this->intAttrDelimiter.$optparamvalue; |
| 1808 | 1808 | continue; |
| 1809 | 1809 | } |
| 1810 | - switch( $optparamlabel ) { // start switch |
|
| 1810 | + switch ($optparamlabel) { // start switch |
|
| 1811 | 1811 | case 'CUTYPE': |
| 1812 | 1812 | case 'PARTSTAT': |
| 1813 | 1813 | case 'ROLE': |
@@ -1820,11 +1820,11 @@ discard block |
||
| 1820 | 1820 | case 'MEMBER': |
| 1821 | 1821 | $attendee11 = $this->intAttrDelimiter.'MEMBER='; |
| 1822 | 1822 | case 'DELEGATED-TO': |
| 1823 | - $attendee11 = ( !$attendee11 ) ? $this->intAttrDelimiter.'DELEGATED-TO=' : $attendee11; |
|
| 1823 | + $attendee11 = (!$attendee11) ? $this->intAttrDelimiter.'DELEGATED-TO=' : $attendee11; |
|
| 1824 | 1824 | case 'DELEGATED-FROM': |
| 1825 | - $attendee11 = ( !$attendee11 ) ? $this->intAttrDelimiter.'DELEGATED-FROM=' : $attendee11; |
|
| 1826 | - foreach( $optparamvalue as $cix => $calUserAddress ) { |
|
| 1827 | - $attendee12 .= ( $cix ) ? ',' : null; |
|
| 1825 | + $attendee11 = (!$attendee11) ? $this->intAttrDelimiter.'DELEGATED-FROM=' : $attendee11; |
|
| 1826 | + foreach ($optparamvalue as $cix => $calUserAddress) { |
|
| 1827 | + $attendee12 .= ($cix) ? ',' : null; |
|
| 1828 | 1828 | $attendee12 .= '"MAILTO:'.$calUserAddress.'"'; |
| 1829 | 1829 | } |
| 1830 | 1830 | $attendee1 .= $attendee11.$attendee12; |
@@ -1845,7 +1845,7 @@ discard block |
||
| 1845 | 1845 | } // end foreach 3 |
| 1846 | 1846 | } // end elseif |
| 1847 | 1847 | } // end foreach 2 |
| 1848 | - $output .= $this->_createElement( 'ATTENDEE', $attendee1.$attendeeLANG.$attendeeCN, $attendee2 ); |
|
| 1848 | + $output .= $this->_createElement('ATTENDEE', $attendee1.$attendeeLANG.$attendeeCN, $attendee2); |
|
| 1849 | 1849 | } // end foreach 1 |
| 1850 | 1850 | return $output; |
| 1851 | 1851 | } |
@@ -1859,63 +1859,63 @@ discard block |
||
| 1859 | 1859 | * @param integer $index, optional |
| 1860 | 1860 | * @return bool |
| 1861 | 1861 | */ |
| 1862 | - function setAttendee( $value, $params=FALSE, $index=FALSE ) { |
|
| 1863 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 1864 | - $value = str_replace ( 'MAILTO:', '', $value ); |
|
| 1865 | - $value = str_replace ( 'mailto:', '', $value ); |
|
| 1862 | + function setAttendee($value, $params = FALSE, $index = FALSE) { |
|
| 1863 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 1864 | + $value = str_replace('MAILTO:', '', $value); |
|
| 1865 | + $value = str_replace('mailto:', '', $value); |
|
| 1866 | 1866 | $params2 = array(); |
| 1867 | - if( is_array($params )) { |
|
| 1867 | + if (is_array($params)) { |
|
| 1868 | 1868 | $optarrays = array(); |
| 1869 | - foreach( $params as $optparamlabel => $optparamvalue ) { |
|
| 1870 | - $optparamlabel = strtoupper( $optparamlabel ); |
|
| 1871 | - switch( $optparamlabel ) { |
|
| 1869 | + foreach ($params as $optparamlabel => $optparamvalue) { |
|
| 1870 | + $optparamlabel = strtoupper($optparamlabel); |
|
| 1871 | + switch ($optparamlabel) { |
|
| 1872 | 1872 | case 'MEMBER': |
| 1873 | 1873 | case 'DELEGATED-TO': |
| 1874 | 1874 | case 'DELEGATED-FROM': |
| 1875 | - if( is_array( $optparamvalue )) { |
|
| 1876 | - foreach( $optparamvalue as $part ) { |
|
| 1877 | - $part = str_replace( 'MAILTO:', '', $part ); |
|
| 1878 | - $part = str_replace( 'mailto:', '', $part ); |
|
| 1879 | - if(( '"' == $part{0} ) && ( '"' == $part{strlen($part)-1} )) |
|
| 1880 | - $part = substr( $part, 1, ( strlen($part)-2 )); |
|
| 1875 | + if (is_array($optparamvalue)) { |
|
| 1876 | + foreach ($optparamvalue as $part) { |
|
| 1877 | + $part = str_replace('MAILTO:', '', $part); |
|
| 1878 | + $part = str_replace('mailto:', '', $part); |
|
| 1879 | + if (('"' == $part{0} ) && ('"' == $part{strlen($part) - 1} )) |
|
| 1880 | + $part = substr($part, 1, (strlen($part) - 2)); |
|
| 1881 | 1881 | $optarrays[$optparamlabel][] = $part; |
| 1882 | 1882 | } |
| 1883 | 1883 | } |
| 1884 | 1884 | else { |
| 1885 | - $part = str_replace( 'MAILTO:', '', $optparamvalue ); |
|
| 1886 | - $part = str_replace( 'mailto:', '', $part ); |
|
| 1887 | - if(( '"' == $part{0} ) && ( '"' == $part{strlen($part)-1} )) |
|
| 1888 | - $part = substr( $part, 1, ( strlen($part)-2 )); |
|
| 1885 | + $part = str_replace('MAILTO:', '', $optparamvalue); |
|
| 1886 | + $part = str_replace('mailto:', '', $part); |
|
| 1887 | + if (('"' == $part{0} ) && ('"' == $part{strlen($part) - 1} )) |
|
| 1888 | + $part = substr($part, 1, (strlen($part) - 2)); |
|
| 1889 | 1889 | $optarrays[$optparamlabel][] = $part; |
| 1890 | 1890 | } |
| 1891 | 1891 | break; |
| 1892 | 1892 | default: |
| 1893 | - if( 'SENT-BY' == $optparamlabel ) { |
|
| 1894 | - $optparamvalue = str_replace( 'MAILTO:', '', $optparamvalue ); |
|
| 1895 | - $optparamvalue = str_replace( 'mailto:', '', $optparamvalue ); |
|
| 1893 | + if ('SENT-BY' == $optparamlabel) { |
|
| 1894 | + $optparamvalue = str_replace('MAILTO:', '', $optparamvalue); |
|
| 1895 | + $optparamvalue = str_replace('mailto:', '', $optparamvalue); |
|
| 1896 | 1896 | } |
| 1897 | - if(( '"' == substr( $optparamvalue, 0, 1 )) && |
|
| 1898 | - ( '"' == substr( $optparamvalue, -1 ))) |
|
| 1899 | - $optparamvalue = substr( $optparamvalue, 1, ( strlen( $optparamvalue ) - 2 )); |
|
| 1897 | + if (('"' == substr($optparamvalue, 0, 1)) && |
|
| 1898 | + ('"' == substr($optparamvalue, -1))) |
|
| 1899 | + $optparamvalue = substr($optparamvalue, 1, (strlen($optparamvalue) - 2)); |
|
| 1900 | 1900 | $params2[$optparamlabel] = $optparamvalue; |
| 1901 | 1901 | break; |
| 1902 | 1902 | } // end switch( $optparamlabel.. . |
| 1903 | 1903 | } // end foreach( $optparam.. . |
| 1904 | - foreach( $optarrays as $optparamlabel => $optparams ) |
|
| 1904 | + foreach ($optarrays as $optparamlabel => $optparams) |
|
| 1905 | 1905 | $params2[$optparamlabel] = $optparams; |
| 1906 | 1906 | } |
| 1907 | 1907 | // remove defaults |
| 1908 | - $this->_existRem( $params2, 'CUTYPE', 'INDIVIDUAL' ); |
|
| 1909 | - $this->_existRem( $params2, 'PARTSTAT', 'NEEDS-ACTION' ); |
|
| 1910 | - $this->_existRem( $params2, 'ROLE', 'REQ-PARTICIPANT' ); |
|
| 1911 | - $this->_existRem( $params2, 'RSVP', 'FALSE' ); |
|
| 1908 | + $this->_existRem($params2, 'CUTYPE', 'INDIVIDUAL'); |
|
| 1909 | + $this->_existRem($params2, 'PARTSTAT', 'NEEDS-ACTION'); |
|
| 1910 | + $this->_existRem($params2, 'ROLE', 'REQ-PARTICIPANT'); |
|
| 1911 | + $this->_existRem($params2, 'RSVP', 'FALSE'); |
|
| 1912 | 1912 | // check language setting |
| 1913 | - if( isset( $params2['CN' ] )) { |
|
| 1914 | - $lang = $this->getConfig( 'language' ); |
|
| 1915 | - if( !isset( $params2['LANGUAGE' ] ) && !empty( $lang )) |
|
| 1916 | - $params2['LANGUAGE' ] = $lang; |
|
| 1913 | + if (isset($params2['CN'])) { |
|
| 1914 | + $lang = $this->getConfig('language'); |
|
| 1915 | + if (!isset($params2['LANGUAGE']) && !empty($lang)) |
|
| 1916 | + $params2['LANGUAGE'] = $lang; |
|
| 1917 | 1917 | } |
| 1918 | - $this->_setMval( $this->attendee, $value, $params2, FALSE, $index ); |
|
| 1918 | + $this->_setMval($this->attendee, $value, $params2, FALSE, $index); |
|
| 1919 | 1919 | return TRUE; |
| 1920 | 1920 | } |
| 1921 | 1921 | /*********************************************************************************/ |
@@ -1930,23 +1930,23 @@ discard block |
||
| 1930 | 1930 | * @return string |
| 1931 | 1931 | */ |
| 1932 | 1932 | function createCategories() { |
| 1933 | - if( empty( $this->categories )) return FALSE; |
|
| 1933 | + if (empty($this->categories)) return FALSE; |
|
| 1934 | 1934 | $output = null; |
| 1935 | - foreach( $this->categories as $category ) { |
|
| 1936 | - if( empty( $category['value'] )) { |
|
| 1937 | - if ( $this->getConfig( 'allowEmpty' )) |
|
| 1938 | - $output .= $this->_createElement( 'CATEGORIES' ); |
|
| 1935 | + foreach ($this->categories as $category) { |
|
| 1936 | + if (empty($category['value'])) { |
|
| 1937 | + if ($this->getConfig('allowEmpty')) |
|
| 1938 | + $output .= $this->_createElement('CATEGORIES'); |
|
| 1939 | 1939 | continue; |
| 1940 | 1940 | } |
| 1941 | - $attributes = $this->_createParams( $category['params'], array( 'LANGUAGE' )); |
|
| 1942 | - if( is_array( $category['value'] )) { |
|
| 1943 | - foreach( $category['value'] as $cix => $categoryPart ) |
|
| 1944 | - $category['value'][$cix] = $this->_strrep( $categoryPart ); |
|
| 1945 | - $content = implode( ',', $category['value'] ); |
|
| 1941 | + $attributes = $this->_createParams($category['params'], array('LANGUAGE')); |
|
| 1942 | + if (is_array($category['value'])) { |
|
| 1943 | + foreach ($category['value'] as $cix => $categoryPart) |
|
| 1944 | + $category['value'][$cix] = $this->_strrep($categoryPart); |
|
| 1945 | + $content = implode(',', $category['value']); |
|
| 1946 | 1946 | } |
| 1947 | 1947 | else |
| 1948 | - $content = $this->_strrep( $category['value'] ); |
|
| 1949 | - $output .= $this->_createElement( 'CATEGORIES', $attributes, $content ); |
|
| 1948 | + $content = $this->_strrep($category['value']); |
|
| 1949 | + $output .= $this->_createElement('CATEGORIES', $attributes, $content); |
|
| 1950 | 1950 | } |
| 1951 | 1951 | return $output; |
| 1952 | 1952 | } |
@@ -1960,9 +1960,9 @@ discard block |
||
| 1960 | 1960 | * @param integer $index, optional |
| 1961 | 1961 | * @return bool |
| 1962 | 1962 | */ |
| 1963 | - function setCategories( $value, $params=FALSE, $index=FALSE ) { |
|
| 1964 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 1965 | - $this->_setMval( $this->categories, $value, $params, FALSE, $index ); |
|
| 1963 | + function setCategories($value, $params = FALSE, $index = FALSE) { |
|
| 1964 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 1965 | + $this->_setMval($this->categories, $value, $params, FALSE, $index); |
|
| 1966 | 1966 | return TRUE; |
| 1967 | 1967 | } |
| 1968 | 1968 | /*********************************************************************************/ |
@@ -1977,11 +1977,11 @@ discard block |
||
| 1977 | 1977 | * @return string |
| 1978 | 1978 | */ |
| 1979 | 1979 | function createClass() { |
| 1980 | - if( empty( $this->class )) return FALSE; |
|
| 1981 | - if( empty( $this->class['value'] )) |
|
| 1982 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'CLASS' ) : FALSE; |
|
| 1983 | - $attributes = $this->_createParams( $this->class['params'] ); |
|
| 1984 | - return $this->_createElement( 'CLASS', $attributes, $this->class['value'] ); |
|
| 1980 | + if (empty($this->class)) return FALSE; |
|
| 1981 | + if (empty($this->class['value'])) |
|
| 1982 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('CLASS') : FALSE; |
|
| 1983 | + $attributes = $this->_createParams($this->class['params']); |
|
| 1984 | + return $this->_createElement('CLASS', $attributes, $this->class['value']); |
|
| 1985 | 1985 | } |
| 1986 | 1986 | /** |
| 1987 | 1987 | * set calendar component property class |
@@ -1992,9 +1992,9 @@ discard block |
||
| 1992 | 1992 | * @param array $params optional |
| 1993 | 1993 | * @return bool |
| 1994 | 1994 | */ |
| 1995 | - function setClass( $value, $params=FALSE ) { |
|
| 1996 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 1997 | - $this->class = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 1995 | + function setClass($value, $params = FALSE) { |
|
| 1996 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 1997 | + $this->class = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 1998 | 1998 | return TRUE; |
| 1999 | 1999 | } |
| 2000 | 2000 | /*********************************************************************************/ |
@@ -2009,16 +2009,16 @@ discard block |
||
| 2009 | 2009 | * @return string |
| 2010 | 2010 | */ |
| 2011 | 2011 | function createComment() { |
| 2012 | - if( empty( $this->comment )) return FALSE; |
|
| 2012 | + if (empty($this->comment)) return FALSE; |
|
| 2013 | 2013 | $output = null; |
| 2014 | - foreach( $this->comment as $commentPart ) { |
|
| 2015 | - if( empty( $commentPart['value'] )) { |
|
| 2016 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'COMMENT' ); |
|
| 2014 | + foreach ($this->comment as $commentPart) { |
|
| 2015 | + if (empty($commentPart['value'])) { |
|
| 2016 | + if ($this->getConfig('allowEmpty')) $output .= $this->_createElement('COMMENT'); |
|
| 2017 | 2017 | continue; |
| 2018 | 2018 | } |
| 2019 | - $attributes = $this->_createParams( $commentPart['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 2020 | - $content = $this->_strrep( $commentPart['value'] ); |
|
| 2021 | - $output .= $this->_createElement( 'COMMENT', $attributes, $content ); |
|
| 2019 | + $attributes = $this->_createParams($commentPart['params'], array('ALTREP', 'LANGUAGE')); |
|
| 2020 | + $content = $this->_strrep($commentPart['value']); |
|
| 2021 | + $output .= $this->_createElement('COMMENT', $attributes, $content); |
|
| 2022 | 2022 | } |
| 2023 | 2023 | return $output; |
| 2024 | 2024 | } |
@@ -2032,9 +2032,9 @@ discard block |
||
| 2032 | 2032 | * @param integer $index, optional |
| 2033 | 2033 | * @return bool |
| 2034 | 2034 | */ |
| 2035 | - function setComment( $value, $params=FALSE, $index=FALSE ) { |
|
| 2036 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2037 | - $this->_setMval( $this->comment, $value, $params, FALSE, $index ); |
|
| 2035 | + function setComment($value, $params = FALSE, $index = FALSE) { |
|
| 2036 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 2037 | + $this->_setMval($this->comment, $value, $params, FALSE, $index); |
|
| 2038 | 2038 | return TRUE; |
| 2039 | 2039 | } |
| 2040 | 2040 | /*********************************************************************************/ |
@@ -2049,19 +2049,19 @@ discard block |
||
| 2049 | 2049 | * @return string |
| 2050 | 2050 | */ |
| 2051 | 2051 | function createCompleted( ) { |
| 2052 | - if( empty( $this->completed )) return FALSE; |
|
| 2053 | - if( !isset( $this->completed['value']['year'] ) && |
|
| 2054 | - !isset( $this->completed['value']['month'] ) && |
|
| 2055 | - !isset( $this->completed['value']['day'] ) && |
|
| 2056 | - !isset( $this->completed['value']['hour'] ) && |
|
| 2057 | - !isset( $this->completed['value']['min'] ) && |
|
| 2058 | - !isset( $this->completed['value']['sec'] )) |
|
| 2059 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2060 | - return $this->_createElement( 'COMPLETED' ); |
|
| 2052 | + if (empty($this->completed)) return FALSE; |
|
| 2053 | + if (!isset($this->completed['value']['year']) && |
|
| 2054 | + !isset($this->completed['value']['month']) && |
|
| 2055 | + !isset($this->completed['value']['day']) && |
|
| 2056 | + !isset($this->completed['value']['hour']) && |
|
| 2057 | + !isset($this->completed['value']['min']) && |
|
| 2058 | + !isset($this->completed['value']['sec'])) |
|
| 2059 | + if ($this->getConfig('allowEmpty')) |
|
| 2060 | + return $this->_createElement('COMPLETED'); |
|
| 2061 | 2061 | else return FALSE; |
| 2062 | - $formatted = $this->_format_date_time( $this->completed['value'], 7 ); |
|
| 2063 | - $attributes = $this->_createParams( $this->completed['params'] ); |
|
| 2064 | - return $this->_createElement( 'COMPLETED', $attributes, $formatted ); |
|
| 2062 | + $formatted = $this->_format_date_time($this->completed['value'], 7); |
|
| 2063 | + $attributes = $this->_createParams($this->completed['params']); |
|
| 2064 | + return $this->_createElement('COMPLETED', $attributes, $formatted); |
|
| 2065 | 2065 | } |
| 2066 | 2066 | /** |
| 2067 | 2067 | * set calendar component property completed |
@@ -2077,16 +2077,16 @@ discard block |
||
| 2077 | 2077 | * @param array $params optional |
| 2078 | 2078 | * @return bool |
| 2079 | 2079 | */ |
| 2080 | - function setCompleted( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2081 | - if( empty( $year )) { |
|
| 2082 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2083 | - $this->completed = array( 'value' => null, 'params' => $this->_setParams( $params )); |
|
| 2080 | + function setCompleted($year, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $params = FALSE) { |
|
| 2081 | + if (empty($year)) { |
|
| 2082 | + if ($this->getConfig('allowEmpty')) { |
|
| 2083 | + $this->completed = array('value' => null, 'params' => $this->_setParams($params)); |
|
| 2084 | 2084 | return TRUE; |
| 2085 | 2085 | } |
| 2086 | 2086 | else |
| 2087 | 2087 | return FALSE; |
| 2088 | 2088 | } |
| 2089 | - $this->completed = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
|
| 2089 | + $this->completed = $this->_setDate2($year, $month, $day, $hour, $min, $sec, $params); |
|
| 2090 | 2090 | return TRUE; |
| 2091 | 2091 | } |
| 2092 | 2092 | /*********************************************************************************/ |
@@ -2101,15 +2101,15 @@ discard block |
||
| 2101 | 2101 | * @return string |
| 2102 | 2102 | */ |
| 2103 | 2103 | function createContact() { |
| 2104 | - if( empty( $this->contact )) return FALSE; |
|
| 2104 | + if (empty($this->contact)) return FALSE; |
|
| 2105 | 2105 | $output = null; |
| 2106 | - foreach( $this->contact as $contact ) { |
|
| 2107 | - if( !empty( $contact['value'] )) { |
|
| 2108 | - $attributes = $this->_createParams( $contact['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 2109 | - $content = $this->_strrep( $contact['value'] ); |
|
| 2110 | - $output .= $this->_createElement( 'CONTACT', $attributes, $content ); |
|
| 2106 | + foreach ($this->contact as $contact) { |
|
| 2107 | + if (!empty($contact['value'])) { |
|
| 2108 | + $attributes = $this->_createParams($contact['params'], array('ALTREP', 'LANGUAGE')); |
|
| 2109 | + $content = $this->_strrep($contact['value']); |
|
| 2110 | + $output .= $this->_createElement('CONTACT', $attributes, $content); |
|
| 2111 | 2111 | } |
| 2112 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'CONTACT' ); |
|
| 2112 | + elseif ($this->getConfig('allowEmpty')) $output .= $this->_createElement('CONTACT'); |
|
| 2113 | 2113 | } |
| 2114 | 2114 | return $output; |
| 2115 | 2115 | } |
@@ -2123,9 +2123,9 @@ discard block |
||
| 2123 | 2123 | * @param integer $index, optional |
| 2124 | 2124 | * @return bool |
| 2125 | 2125 | */ |
| 2126 | - function setContact( $value, $params=FALSE, $index=FALSE ) { |
|
| 2127 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2128 | - $this->_setMval( $this->contact, $value, $params, FALSE, $index ); |
|
| 2126 | + function setContact($value, $params = FALSE, $index = FALSE) { |
|
| 2127 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 2128 | + $this->_setMval($this->contact, $value, $params, FALSE, $index); |
|
| 2129 | 2129 | return TRUE; |
| 2130 | 2130 | } |
| 2131 | 2131 | /*********************************************************************************/ |
@@ -2140,10 +2140,10 @@ discard block |
||
| 2140 | 2140 | * @return string |
| 2141 | 2141 | */ |
| 2142 | 2142 | function createCreated() { |
| 2143 | - if( empty( $this->created )) return FALSE; |
|
| 2144 | - $formatted = $this->_format_date_time( $this->created['value'], 7 ); |
|
| 2145 | - $attributes = $this->_createParams( $this->created['params'] ); |
|
| 2146 | - return $this->_createElement( 'CREATED', $attributes, $formatted ); |
|
| 2143 | + if (empty($this->created)) return FALSE; |
|
| 2144 | + $formatted = $this->_format_date_time($this->created['value'], 7); |
|
| 2145 | + $attributes = $this->_createParams($this->created['params']); |
|
| 2146 | + return $this->_createElement('CREATED', $attributes, $formatted); |
|
| 2147 | 2147 | } |
| 2148 | 2148 | /** |
| 2149 | 2149 | * set calendar component property created |
@@ -2159,11 +2159,11 @@ discard block |
||
| 2159 | 2159 | * @param mixed $params optional |
| 2160 | 2160 | * @return bool |
| 2161 | 2161 | */ |
| 2162 | - function setCreated( $year=FALSE, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2163 | - if( !isset( $year )) { |
|
| 2164 | - $year = date('Ymd\THis', mktime( date( 'H' ), date( 'i' ), date( 's' ) - date( 'Z'), date( 'm' ), date( 'd' ), date( 'Y' ))); |
|
| 2162 | + function setCreated($year = FALSE, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $params = FALSE) { |
|
| 2163 | + if (!isset($year)) { |
|
| 2164 | + $year = date('Ymd\THis', mktime(date('H'), date('i'), date('s') - date('Z'), date('m'), date('d'), date('Y'))); |
|
| 2165 | 2165 | } |
| 2166 | - $this->created = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
|
| 2166 | + $this->created = $this->_setDate2($year, $month, $day, $hour, $min, $sec, $params); |
|
| 2167 | 2167 | return TRUE; |
| 2168 | 2168 | } |
| 2169 | 2169 | /*********************************************************************************/ |
@@ -2178,15 +2178,15 @@ discard block |
||
| 2178 | 2178 | * @return string |
| 2179 | 2179 | */ |
| 2180 | 2180 | function createDescription() { |
| 2181 | - if( empty( $this->description )) return FALSE; |
|
| 2182 | - $output = null; |
|
| 2183 | - foreach( $this->description as $description ) { |
|
| 2184 | - if( !empty( $description['value'] )) { |
|
| 2185 | - $attributes = $this->_createParams( $description['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 2186 | - $content = $this->_strrep( $description['value'] ); |
|
| 2187 | - $output .= $this->_createElement( 'DESCRIPTION', $attributes, $content ); |
|
| 2181 | + if (empty($this->description)) return FALSE; |
|
| 2182 | + $output = null; |
|
| 2183 | + foreach ($this->description as $description) { |
|
| 2184 | + if (!empty($description['value'])) { |
|
| 2185 | + $attributes = $this->_createParams($description['params'], array('ALTREP', 'LANGUAGE')); |
|
| 2186 | + $content = $this->_strrep($description['value']); |
|
| 2187 | + $output .= $this->_createElement('DESCRIPTION', $attributes, $content); |
|
| 2188 | 2188 | } |
| 2189 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'DESCRIPTION' ); |
|
| 2189 | + elseif ($this->getConfig('allowEmpty')) $output .= $this->_createElement('DESCRIPTION'); |
|
| 2190 | 2190 | } |
| 2191 | 2191 | return $output; |
| 2192 | 2192 | } |
@@ -2200,9 +2200,9 @@ discard block |
||
| 2200 | 2200 | * @param integer $index, optional |
| 2201 | 2201 | * @return bool |
| 2202 | 2202 | */ |
| 2203 | - function setDescription( $value, $params=FALSE, $index=FALSE ) { |
|
| 2204 | - if( empty( $value )) { if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; } |
|
| 2205 | - $this->_setMval( $this->description, $value, $params, FALSE, $index ); |
|
| 2203 | + function setDescription($value, $params = FALSE, $index = FALSE) { |
|
| 2204 | + if (empty($value)) { if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; } |
|
| 2205 | + $this->_setMval($this->description, $value, $params, FALSE, $index); |
|
| 2206 | 2206 | return TRUE; |
| 2207 | 2207 | } |
| 2208 | 2208 | /*********************************************************************************/ |
@@ -2217,19 +2217,19 @@ discard block |
||
| 2217 | 2217 | * @return string |
| 2218 | 2218 | */ |
| 2219 | 2219 | function createDtend() { |
| 2220 | - if( empty( $this->dtend )) return FALSE; |
|
| 2221 | - if( !isset( $this->dtend['value']['year'] ) && |
|
| 2222 | - !isset( $this->dtend['value']['month'] ) && |
|
| 2223 | - !isset( $this->dtend['value']['day'] ) && |
|
| 2224 | - !isset( $this->dtend['value']['hour'] ) && |
|
| 2225 | - !isset( $this->dtend['value']['min'] ) && |
|
| 2226 | - !isset( $this->dtend['value']['sec'] )) |
|
| 2227 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2228 | - return $this->_createElement( 'DTEND' ); |
|
| 2220 | + if (empty($this->dtend)) return FALSE; |
|
| 2221 | + if (!isset($this->dtend['value']['year']) && |
|
| 2222 | + !isset($this->dtend['value']['month']) && |
|
| 2223 | + !isset($this->dtend['value']['day']) && |
|
| 2224 | + !isset($this->dtend['value']['hour']) && |
|
| 2225 | + !isset($this->dtend['value']['min']) && |
|
| 2226 | + !isset($this->dtend['value']['sec'])) |
|
| 2227 | + if ($this->getConfig('allowEmpty')) |
|
| 2228 | + return $this->_createElement('DTEND'); |
|
| 2229 | 2229 | else return FALSE; |
| 2230 | - $formatted = $this->_format_date_time( $this->dtend['value'] ); |
|
| 2231 | - $attributes = $this->_createParams( $this->dtend['params'] ); |
|
| 2232 | - return $this->_createElement( 'DTEND', $attributes, $formatted ); |
|
| 2230 | + $formatted = $this->_format_date_time($this->dtend['value']); |
|
| 2231 | + $attributes = $this->_createParams($this->dtend['params']); |
|
| 2232 | + return $this->_createElement('DTEND', $attributes, $formatted); |
|
| 2233 | 2233 | } |
| 2234 | 2234 | /** |
| 2235 | 2235 | * set calendar component property dtend |
@@ -2246,16 +2246,16 @@ discard block |
||
| 2246 | 2246 | * @param array params optional |
| 2247 | 2247 | * @return bool |
| 2248 | 2248 | */ |
| 2249 | - function setDtend( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 2250 | - if( empty( $year )) { |
|
| 2251 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2252 | - $this->dtend = array( 'value' => null, 'params' => $this->_setParams( $params )); |
|
| 2249 | + function setDtend($year, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $tz = FALSE, $params = FALSE) { |
|
| 2250 | + if (empty($year)) { |
|
| 2251 | + if ($this->getConfig('allowEmpty')) { |
|
| 2252 | + $this->dtend = array('value' => null, 'params' => $this->_setParams($params)); |
|
| 2253 | 2253 | return TRUE; |
| 2254 | 2254 | } |
| 2255 | 2255 | else |
| 2256 | 2256 | return FALSE; |
| 2257 | 2257 | } |
| 2258 | - $this->dtend = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params ); |
|
| 2258 | + $this->dtend = $this->_setDate($year, $month, $day, $hour, $min, $sec, $tz, $params); |
|
| 2259 | 2259 | return TRUE; |
| 2260 | 2260 | } |
| 2261 | 2261 | /*********************************************************************************/ |
@@ -2270,16 +2270,16 @@ discard block |
||
| 2270 | 2270 | * @return string |
| 2271 | 2271 | */ |
| 2272 | 2272 | function createDtstamp() { |
| 2273 | - if( !isset( $this->dtstamp['value']['year'] ) && |
|
| 2274 | - !isset( $this->dtstamp['value']['month'] ) && |
|
| 2275 | - !isset( $this->dtstamp['value']['day'] ) && |
|
| 2276 | - !isset( $this->dtstamp['value']['hour'] ) && |
|
| 2277 | - !isset( $this->dtstamp['value']['min'] ) && |
|
| 2278 | - !isset( $this->dtstamp['value']['sec'] )) |
|
| 2273 | + if (!isset($this->dtstamp['value']['year']) && |
|
| 2274 | + !isset($this->dtstamp['value']['month']) && |
|
| 2275 | + !isset($this->dtstamp['value']['day']) && |
|
| 2276 | + !isset($this->dtstamp['value']['hour']) && |
|
| 2277 | + !isset($this->dtstamp['value']['min']) && |
|
| 2278 | + !isset($this->dtstamp['value']['sec'])) |
|
| 2279 | 2279 | $this->_makeDtstamp(); |
| 2280 | - $formatted = $this->_format_date_time( $this->dtstamp['value'], 7 ); |
|
| 2281 | - $attributes = $this->_createParams( $this->dtstamp['params'] ); |
|
| 2282 | - return $this->_createElement( 'DTSTAMP', $attributes, $formatted ); |
|
| 2280 | + $formatted = $this->_format_date_time($this->dtstamp['value'], 7); |
|
| 2281 | + $attributes = $this->_createParams($this->dtstamp['params']); |
|
| 2282 | + return $this->_createElement('DTSTAMP', $attributes, $formatted); |
|
| 2283 | 2283 | } |
| 2284 | 2284 | /** |
| 2285 | 2285 | * computes datestamp for calendar component object instance dtstamp |
@@ -2289,12 +2289,12 @@ discard block |
||
| 2289 | 2289 | * @return void |
| 2290 | 2290 | */ |
| 2291 | 2291 | function _makeDtstamp() { |
| 2292 | - $this->dtstamp['value'] = array( 'year' => date( 'Y' ) |
|
| 2293 | - , 'month' => date( 'm' ) |
|
| 2294 | - , 'day' => date( 'd' ) |
|
| 2295 | - , 'hour' => date( 'H' ) |
|
| 2296 | - , 'min' => date( 'i' ) |
|
| 2297 | - , 'sec' => date( 's' ) - date( 'Z' )); |
|
| 2292 | + $this->dtstamp['value'] = array('year' => date('Y') |
|
| 2293 | + , 'month' => date('m') |
|
| 2294 | + , 'day' => date('d') |
|
| 2295 | + , 'hour' => date('H') |
|
| 2296 | + , 'min' => date('i') |
|
| 2297 | + , 'sec' => date('s') - date('Z')); |
|
| 2298 | 2298 | $this->dtstamp['params'] = null; |
| 2299 | 2299 | } |
| 2300 | 2300 | /** |
@@ -2311,11 +2311,11 @@ discard block |
||
| 2311 | 2311 | * @param array $params optional |
| 2312 | 2312 | * @return TRUE |
| 2313 | 2313 | */ |
| 2314 | - function setDtstamp( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2315 | - if( empty( $year )) |
|
| 2314 | + function setDtstamp($year, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $params = FALSE) { |
|
| 2315 | + if (empty($year)) |
|
| 2316 | 2316 | $this->_makeDtstamp(); |
| 2317 | 2317 | else |
| 2318 | - $this->dtstamp = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
|
| 2318 | + $this->dtstamp = $this->_setDate2($year, $month, $day, $hour, $min, $sec, $params); |
|
| 2319 | 2319 | return TRUE; |
| 2320 | 2320 | } |
| 2321 | 2321 | /*********************************************************************************/ |
@@ -2330,21 +2330,21 @@ discard block |
||
| 2330 | 2330 | * @return string |
| 2331 | 2331 | */ |
| 2332 | 2332 | function createDtstart() { |
| 2333 | - if( empty( $this->dtstart )) return FALSE; |
|
| 2334 | - if( !isset( $this->dtstart['value']['year'] ) && |
|
| 2335 | - !isset( $this->dtstart['value']['month'] ) && |
|
| 2336 | - !isset( $this->dtstart['value']['day'] ) && |
|
| 2337 | - !isset( $this->dtstart['value']['hour'] ) && |
|
| 2338 | - !isset( $this->dtstart['value']['min'] ) && |
|
| 2339 | - !isset( $this->dtstart['value']['sec'] )) |
|
| 2340 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2341 | - return $this->_createElement( 'DTSTART' ); |
|
| 2333 | + if (empty($this->dtstart)) return FALSE; |
|
| 2334 | + if (!isset($this->dtstart['value']['year']) && |
|
| 2335 | + !isset($this->dtstart['value']['month']) && |
|
| 2336 | + !isset($this->dtstart['value']['day']) && |
|
| 2337 | + !isset($this->dtstart['value']['hour']) && |
|
| 2338 | + !isset($this->dtstart['value']['min']) && |
|
| 2339 | + !isset($this->dtstart['value']['sec'])) |
|
| 2340 | + if ($this->getConfig('allowEmpty')) |
|
| 2341 | + return $this->_createElement('DTSTART'); |
|
| 2342 | 2342 | else return FALSE; |
| 2343 | - if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) |
|
| 2344 | - unset( $this->dtstart['value']['tz'], $this->dtstart['params']['TZID'] ); |
|
| 2345 | - $formatted = $this->_format_date_time( $this->dtstart['value'] ); |
|
| 2346 | - $attributes = $this->_createParams( $this->dtstart['params'] ); |
|
| 2347 | - return $this->_createElement( 'DTSTART', $attributes, $formatted ); |
|
| 2343 | + if (in_array($this->objName, array('vtimezone', 'standard', 'daylight'))) |
|
| 2344 | + unset($this->dtstart['value']['tz'], $this->dtstart['params']['TZID']); |
|
| 2345 | + $formatted = $this->_format_date_time($this->dtstart['value']); |
|
| 2346 | + $attributes = $this->_createParams($this->dtstart['params']); |
|
| 2347 | + return $this->_createElement('DTSTART', $attributes, $formatted); |
|
| 2348 | 2348 | } |
| 2349 | 2349 | /** |
| 2350 | 2350 | * set calendar component property dtstart |
@@ -2361,16 +2361,16 @@ discard block |
||
| 2361 | 2361 | * @param array $params optional |
| 2362 | 2362 | * @return bool |
| 2363 | 2363 | */ |
| 2364 | - function setDtstart( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 2365 | - if( empty( $year )) { |
|
| 2366 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2367 | - $this->dtstart = array( 'value' => null, 'params' => $this->_setParams( $params )); |
|
| 2364 | + function setDtstart($year, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $tz = FALSE, $params = FALSE) { |
|
| 2365 | + if (empty($year)) { |
|
| 2366 | + if ($this->getConfig('allowEmpty')) { |
|
| 2367 | + $this->dtstart = array('value' => null, 'params' => $this->_setParams($params)); |
|
| 2368 | 2368 | return TRUE; |
| 2369 | 2369 | } |
| 2370 | 2370 | else |
| 2371 | 2371 | return FALSE; |
| 2372 | 2372 | } |
| 2373 | - $this->dtstart = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params, 'dtstart' ); |
|
| 2373 | + $this->dtstart = $this->_setDate($year, $month, $day, $hour, $min, $sec, $tz, $params, 'dtstart'); |
|
| 2374 | 2374 | return TRUE; |
| 2375 | 2375 | } |
| 2376 | 2376 | /*********************************************************************************/ |
@@ -2385,19 +2385,19 @@ discard block |
||
| 2385 | 2385 | * @return string |
| 2386 | 2386 | */ |
| 2387 | 2387 | function createDue() { |
| 2388 | - if( empty( $this->due )) return FALSE; |
|
| 2389 | - if( !isset( $this->due['value']['year'] ) && |
|
| 2390 | - !isset( $this->due['value']['month'] ) && |
|
| 2391 | - !isset( $this->due['value']['day'] ) && |
|
| 2392 | - !isset( $this->due['value']['hour'] ) && |
|
| 2393 | - !isset( $this->due['value']['min'] ) && |
|
| 2394 | - !isset( $this->due['value']['sec'] )) |
|
| 2395 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2396 | - return $this->_createElement( 'DUE' ); |
|
| 2388 | + if (empty($this->due)) return FALSE; |
|
| 2389 | + if (!isset($this->due['value']['year']) && |
|
| 2390 | + !isset($this->due['value']['month']) && |
|
| 2391 | + !isset($this->due['value']['day']) && |
|
| 2392 | + !isset($this->due['value']['hour']) && |
|
| 2393 | + !isset($this->due['value']['min']) && |
|
| 2394 | + !isset($this->due['value']['sec'])) |
|
| 2395 | + if ($this->getConfig('allowEmpty')) |
|
| 2396 | + return $this->_createElement('DUE'); |
|
| 2397 | 2397 | else return FALSE; |
| 2398 | - $formatted = $this->_format_date_time( $this->due['value'] ); |
|
| 2399 | - $attributes = $this->_createParams( $this->due['params'] ); |
|
| 2400 | - return $this->_createElement( 'DUE', $attributes, $formatted ); |
|
| 2398 | + $formatted = $this->_format_date_time($this->due['value']); |
|
| 2399 | + $attributes = $this->_createParams($this->due['params']); |
|
| 2400 | + return $this->_createElement('DUE', $attributes, $formatted); |
|
| 2401 | 2401 | } |
| 2402 | 2402 | /** |
| 2403 | 2403 | * set calendar component property due |
@@ -2413,16 +2413,16 @@ discard block |
||
| 2413 | 2413 | * @param array $params optional |
| 2414 | 2414 | * @return bool |
| 2415 | 2415 | */ |
| 2416 | - function setDue( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 2417 | - if( empty( $year )) { |
|
| 2418 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2419 | - $this->due = array( 'value' => null, 'params' => $this->_setParams( $params )); |
|
| 2416 | + function setDue($year, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $tz = FALSE, $params = FALSE) { |
|
| 2417 | + if (empty($year)) { |
|
| 2418 | + if ($this->getConfig('allowEmpty')) { |
|
| 2419 | + $this->due = array('value' => null, 'params' => $this->_setParams($params)); |
|
| 2420 | 2420 | return TRUE; |
| 2421 | 2421 | } |
| 2422 | 2422 | else |
| 2423 | 2423 | return FALSE; |
| 2424 | 2424 | } |
| 2425 | - $this->due = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params ); |
|
| 2425 | + $this->due = $this->_setDate($year, $month, $day, $hour, $min, $sec, $tz, $params); |
|
| 2426 | 2426 | return TRUE; |
| 2427 | 2427 | } |
| 2428 | 2428 | /*********************************************************************************/ |
@@ -2437,17 +2437,17 @@ discard block |
||
| 2437 | 2437 | * @return string |
| 2438 | 2438 | */ |
| 2439 | 2439 | function createDuration() { |
| 2440 | - if( empty( $this->duration )) return FALSE; |
|
| 2441 | - if( !isset( $this->duration['value']['week'] ) && |
|
| 2442 | - !isset( $this->duration['value']['day'] ) && |
|
| 2443 | - !isset( $this->duration['value']['hour'] ) && |
|
| 2444 | - !isset( $this->duration['value']['min'] ) && |
|
| 2445 | - !isset( $this->duration['value']['sec'] )) |
|
| 2446 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2447 | - return $this->_createElement( 'DURATION', array(), null ); |
|
| 2440 | + if (empty($this->duration)) return FALSE; |
|
| 2441 | + if (!isset($this->duration['value']['week']) && |
|
| 2442 | + !isset($this->duration['value']['day']) && |
|
| 2443 | + !isset($this->duration['value']['hour']) && |
|
| 2444 | + !isset($this->duration['value']['min']) && |
|
| 2445 | + !isset($this->duration['value']['sec'])) |
|
| 2446 | + if ($this->getConfig('allowEmpty')) |
|
| 2447 | + return $this->_createElement('DURATION', array(), null); |
|
| 2448 | 2448 | else return FALSE; |
| 2449 | - $attributes = $this->_createParams( $this->duration['params'] ); |
|
| 2450 | - return $this->_createElement( 'DURATION', $attributes, $this->_format_duration( $this->duration['value'] )); |
|
| 2449 | + $attributes = $this->_createParams($this->duration['params']); |
|
| 2450 | + return $this->_createElement('DURATION', $attributes, $this->_format_duration($this->duration['value'])); |
|
| 2451 | 2451 | } |
| 2452 | 2452 | /** |
| 2453 | 2453 | * set calendar component property duration |
@@ -2462,20 +2462,20 @@ discard block |
||
| 2462 | 2462 | * @param array $params optional |
| 2463 | 2463 | * @return bool |
| 2464 | 2464 | */ |
| 2465 | - function setDuration( $week, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2466 | - if( empty( $week )) if( $this->getConfig( 'allowEmpty' )) $week = null; else return FALSE; |
|
| 2467 | - if( is_array( $week ) && ( 1 <= count( $week ))) |
|
| 2468 | - $this->duration = array( 'value' => $this->_duration_array( $week ), 'params' => $this->_setParams( $day )); |
|
| 2469 | - elseif( is_string( $week ) && ( 3 <= strlen( trim( $week )))) { |
|
| 2470 | - $week = trim( $week ); |
|
| 2471 | - if( in_array( substr( $week, 0, 1 ), array( '+', '-' ))) |
|
| 2472 | - $week = substr( $week, 1 ); |
|
| 2473 | - $this->duration = array( 'value' => $this->_duration_string( $week ), 'params' => $this->_setParams( $day )); |
|
| 2474 | - } |
|
| 2475 | - elseif( empty( $week ) && empty( $day ) && empty( $hour ) && empty( $min ) && empty( $sec )) |
|
| 2465 | + function setDuration($week, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $params = FALSE) { |
|
| 2466 | + if (empty($week)) if ($this->getConfig('allowEmpty')) $week = null; else return FALSE; |
|
| 2467 | + if (is_array($week) && (1 <= count($week))) |
|
| 2468 | + $this->duration = array('value' => $this->_duration_array($week), 'params' => $this->_setParams($day)); |
|
| 2469 | + elseif (is_string($week) && (3 <= strlen(trim($week)))) { |
|
| 2470 | + $week = trim($week); |
|
| 2471 | + if (in_array(substr($week, 0, 1), array('+', '-'))) |
|
| 2472 | + $week = substr($week, 1); |
|
| 2473 | + $this->duration = array('value' => $this->_duration_string($week), 'params' => $this->_setParams($day)); |
|
| 2474 | + } |
|
| 2475 | + elseif (empty($week) && empty($day) && empty($hour) && empty($min) && empty($sec)) |
|
| 2476 | 2476 | return FALSE; |
| 2477 | 2477 | else |
| 2478 | - $this->duration = array( 'value' => $this->_duration_array( array( $week, $day, $hour, $min, $sec )), 'params' => $this->_setParams( $params )); |
|
| 2478 | + $this->duration = array('value' => $this->_duration_array(array($week, $day, $hour, $min, $sec)), 'params' => $this->_setParams($params)); |
|
| 2479 | 2479 | return TRUE; |
| 2480 | 2480 | } |
| 2481 | 2481 | /*********************************************************************************/ |
@@ -2490,36 +2490,36 @@ discard block |
||
| 2490 | 2490 | * @return string |
| 2491 | 2491 | */ |
| 2492 | 2492 | function createExdate() { |
| 2493 | - if( empty( $this->exdate )) return FALSE; |
|
| 2493 | + if (empty($this->exdate)) return FALSE; |
|
| 2494 | 2494 | $output = null; |
| 2495 | - foreach( $this->exdate as $ex => $theExdate ) { |
|
| 2496 | - if( empty( $theExdate['value'] )) { |
|
| 2497 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'EXDATE' ); |
|
| 2495 | + foreach ($this->exdate as $ex => $theExdate) { |
|
| 2496 | + if (empty($theExdate['value'])) { |
|
| 2497 | + if ($this->getConfig('allowEmpty')) $output .= $this->_createElement('EXDATE'); |
|
| 2498 | 2498 | continue; |
| 2499 | 2499 | } |
| 2500 | 2500 | $content = $attributes = null; |
| 2501 | - foreach( $theExdate['value'] as $eix => $exdatePart ) { |
|
| 2502 | - $parno = count( $exdatePart ); |
|
| 2503 | - $formatted = $this->_format_date_time( $exdatePart, $parno ); |
|
| 2504 | - if( isset( $theExdate['params']['TZID'] )) |
|
| 2505 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 2506 | - if( 0 < $eix ) { |
|
| 2507 | - if( isset( $theExdate['value'][0]['tz'] )) { |
|
| 2508 | - if( ctype_digit( substr( $theExdate['value'][0]['tz'], -4 )) || |
|
| 2509 | - ( 'Z' == $theExdate['value'][0]['tz'] )) { |
|
| 2510 | - if( 'Z' != substr( $formatted, -1 )) |
|
| 2501 | + foreach ($theExdate['value'] as $eix => $exdatePart) { |
|
| 2502 | + $parno = count($exdatePart); |
|
| 2503 | + $formatted = $this->_format_date_time($exdatePart, $parno); |
|
| 2504 | + if (isset($theExdate['params']['TZID'])) |
|
| 2505 | + $formatted = str_replace('Z', '', $formatted); |
|
| 2506 | + if (0 < $eix) { |
|
| 2507 | + if (isset($theExdate['value'][0]['tz'])) { |
|
| 2508 | + if (ctype_digit(substr($theExdate['value'][0]['tz'], -4)) || |
|
| 2509 | + ('Z' == $theExdate['value'][0]['tz'])) { |
|
| 2510 | + if ('Z' != substr($formatted, -1)) |
|
| 2511 | 2511 | $formatted .= 'Z'; |
| 2512 | 2512 | } |
| 2513 | 2513 | else |
| 2514 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2514 | + $formatted = str_replace('Z', '', $formatted); |
|
| 2515 | 2515 | } |
| 2516 | 2516 | else |
| 2517 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2517 | + $formatted = str_replace('Z', '', $formatted); |
|
| 2518 | 2518 | } |
| 2519 | - $content .= ( 0 < $eix ) ? ','.$formatted : $formatted; |
|
| 2519 | + $content .= (0 < $eix) ? ','.$formatted : $formatted; |
|
| 2520 | 2520 | } |
| 2521 | - $attributes .= $this->_createParams( $theExdate['params'] ); |
|
| 2522 | - $output .= $this->_createElement( 'EXDATE', $attributes, $content ); |
|
| 2521 | + $attributes .= $this->_createParams($theExdate['params']); |
|
| 2522 | + $output .= $this->_createElement('EXDATE', $attributes, $content); |
|
| 2523 | 2523 | } |
| 2524 | 2524 | return $output; |
| 2525 | 2525 | } |
@@ -2533,44 +2533,44 @@ discard block |
||
| 2533 | 2533 | * @param integer $index, optional |
| 2534 | 2534 | * @return bool |
| 2535 | 2535 | */ |
| 2536 | - function setExdate( $exdates, $params=FALSE, $index=FALSE ) { |
|
| 2537 | - if( empty( $exdates )) { |
|
| 2538 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2539 | - $this->_setMval( $this->exdate, null, $params, FALSE, $index ); |
|
| 2536 | + function setExdate($exdates, $params = FALSE, $index = FALSE) { |
|
| 2537 | + if (empty($exdates)) { |
|
| 2538 | + if ($this->getConfig('allowEmpty')) { |
|
| 2539 | + $this->_setMval($this->exdate, null, $params, FALSE, $index); |
|
| 2540 | 2540 | return TRUE; |
| 2541 | 2541 | } |
| 2542 | 2542 | else |
| 2543 | 2543 | return FALSE; |
| 2544 | 2544 | } |
| 2545 | - $input = array( 'params' => $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' ))); |
|
| 2545 | + $input = array('params' => $this->_setParams($params, array('VALUE' => 'DATE-TIME'))); |
|
| 2546 | 2546 | /* ev. check 1:st date and save ev. timezone **/ |
| 2547 | - $this->_chkdatecfg( reset( $exdates ), $parno, $input['params'] ); |
|
| 2548 | - $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME' ); // remove default parameter |
|
| 2549 | - foreach( $exdates as $eix => $theExdate ) { |
|
| 2550 | - if( $this->_isArrayTimestampDate( $theExdate )) |
|
| 2551 | - $exdatea = $this->_timestamp2date( $theExdate, $parno ); |
|
| 2552 | - elseif( is_array( $theExdate )) |
|
| 2553 | - $exdatea = $this->_date_time_array( $theExdate, $parno ); |
|
| 2554 | - elseif( 8 <= strlen( trim( $theExdate ))) // ex. 2006-08-03 10:12:18 |
|
| 2555 | - $exdatea = $this->_date_time_string( $theExdate, $parno ); |
|
| 2556 | - if( 3 == $parno ) |
|
| 2557 | - unset( $exdatea['hour'], $exdatea['min'], $exdatea['sec'], $exdatea['tz'] ); |
|
| 2558 | - elseif( isset( $exdatea['tz'] )) |
|
| 2547 | + $this->_chkdatecfg(reset($exdates), $parno, $input['params']); |
|
| 2548 | + $this->_existRem($input['params'], 'VALUE', 'DATE-TIME'); // remove default parameter |
|
| 2549 | + foreach ($exdates as $eix => $theExdate) { |
|
| 2550 | + if ($this->_isArrayTimestampDate($theExdate)) |
|
| 2551 | + $exdatea = $this->_timestamp2date($theExdate, $parno); |
|
| 2552 | + elseif (is_array($theExdate)) |
|
| 2553 | + $exdatea = $this->_date_time_array($theExdate, $parno); |
|
| 2554 | + elseif (8 <= strlen(trim($theExdate))) // ex. 2006-08-03 10:12:18 |
|
| 2555 | + $exdatea = $this->_date_time_string($theExdate, $parno); |
|
| 2556 | + if (3 == $parno) |
|
| 2557 | + unset($exdatea['hour'], $exdatea['min'], $exdatea['sec'], $exdatea['tz']); |
|
| 2558 | + elseif (isset($exdatea['tz'])) |
|
| 2559 | 2559 | $exdatea['tz'] = (string) $exdatea['tz']; |
| 2560 | - if( isset( $input['params']['TZID'] ) || |
|
| 2561 | - ( isset( $exdatea['tz'] ) && !$this->_isOffset( $exdatea['tz'] )) || |
|
| 2562 | - ( isset( $input['value'][0] ) && ( !isset( $input['value'][0]['tz'] ))) || |
|
| 2563 | - ( isset( $input['value'][0]['tz'] ) && !$this->_isOffset( $input['value'][0]['tz'] ))) |
|
| 2564 | - unset( $exdatea['tz'] ); |
|
| 2560 | + if (isset($input['params']['TZID']) || |
|
| 2561 | + (isset($exdatea['tz']) && !$this->_isOffset($exdatea['tz'])) || |
|
| 2562 | + (isset($input['value'][0]) && (!isset($input['value'][0]['tz']))) || |
|
| 2563 | + (isset($input['value'][0]['tz']) && !$this->_isOffset($input['value'][0]['tz']))) |
|
| 2564 | + unset($exdatea['tz']); |
|
| 2565 | 2565 | $input['value'][] = $exdatea; |
| 2566 | 2566 | } |
| 2567 | - if( 0 >= count( $input['value'] )) |
|
| 2567 | + if (0 >= count($input['value'])) |
|
| 2568 | 2568 | return FALSE; |
| 2569 | - if( 3 == $parno ) { |
|
| 2569 | + if (3 == $parno) { |
|
| 2570 | 2570 | $input['params']['VALUE'] = 'DATE'; |
| 2571 | - unset( $input['params']['TZID'] ); |
|
| 2571 | + unset($input['params']['TZID']); |
|
| 2572 | 2572 | } |
| 2573 | - $this->_setMval( $this->exdate, $input['value'], $input['params'], FALSE, $index ); |
|
| 2573 | + $this->_setMval($this->exdate, $input['value'], $input['params'], FALSE, $index); |
|
| 2574 | 2574 | return TRUE; |
| 2575 | 2575 | } |
| 2576 | 2576 | /*********************************************************************************/ |
@@ -2585,8 +2585,8 @@ discard block |
||
| 2585 | 2585 | * @return string |
| 2586 | 2586 | */ |
| 2587 | 2587 | function createExrule() { |
| 2588 | - if( empty( $this->exrule )) return FALSE; |
|
| 2589 | - return $this->_format_recur( 'EXRULE', $this->exrule ); |
|
| 2588 | + if (empty($this->exrule)) return FALSE; |
|
| 2589 | + return $this->_format_recur('EXRULE', $this->exrule); |
|
| 2590 | 2590 | } |
| 2591 | 2591 | /** |
| 2592 | 2592 | * set calendar component property exdate |
@@ -2598,9 +2598,9 @@ discard block |
||
| 2598 | 2598 | * @param integer $index, optional |
| 2599 | 2599 | * @return bool |
| 2600 | 2600 | */ |
| 2601 | - function setExrule( $exruleset, $params=FALSE, $index=FALSE ) { |
|
| 2602 | - if( empty( $exruleset )) if( $this->getConfig( 'allowEmpty' )) $exruleset = null; else return FALSE; |
|
| 2603 | - $this->_setMval( $this->exrule, $this->_setRexrule( $exruleset ), $params, FALSE, $index ); |
|
| 2601 | + function setExrule($exruleset, $params = FALSE, $index = FALSE) { |
|
| 2602 | + if (empty($exruleset)) if ($this->getConfig('allowEmpty')) $exruleset = null; else return FALSE; |
|
| 2603 | + $this->_setMval($this->exrule, $this->_setRexrule($exruleset), $params, FALSE, $index); |
|
| 2604 | 2604 | return TRUE; |
| 2605 | 2605 | } |
| 2606 | 2606 | /*********************************************************************************/ |
@@ -2615,47 +2615,47 @@ discard block |
||
| 2615 | 2615 | * @return string |
| 2616 | 2616 | */ |
| 2617 | 2617 | function createFreebusy() { |
| 2618 | - if( empty( $this->freebusy )) return FALSE; |
|
| 2618 | + if (empty($this->freebusy)) return FALSE; |
|
| 2619 | 2619 | $output = null; |
| 2620 | - foreach( $this->freebusy as $freebusyPart ) { |
|
| 2621 | - if( empty( $freebusyPart['value'] )) { |
|
| 2622 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'FREEBUSY' ); |
|
| 2620 | + foreach ($this->freebusy as $freebusyPart) { |
|
| 2621 | + if (empty($freebusyPart['value'])) { |
|
| 2622 | + if ($this->getConfig('allowEmpty')) $output .= $this->_createElement('FREEBUSY'); |
|
| 2623 | 2623 | continue; |
| 2624 | 2624 | } |
| 2625 | 2625 | $attributes = $content = null; |
| 2626 | - if( isset( $freebusyPart['value']['fbtype'] )) { |
|
| 2626 | + if (isset($freebusyPart['value']['fbtype'])) { |
|
| 2627 | 2627 | $attributes .= $this->intAttrDelimiter.'FBTYPE='.$freebusyPart['value']['fbtype']; |
| 2628 | - unset( $freebusyPart['value']['fbtype'] ); |
|
| 2629 | - $freebusyPart['value'] = array_values( $freebusyPart['value'] ); |
|
| 2628 | + unset($freebusyPart['value']['fbtype']); |
|
| 2629 | + $freebusyPart['value'] = array_values($freebusyPart['value']); |
|
| 2630 | 2630 | } |
| 2631 | 2631 | else |
| 2632 | 2632 | $attributes .= $this->intAttrDelimiter.'FBTYPE=BUSY'; |
| 2633 | - $attributes .= $this->_createParams( $freebusyPart['params'] ); |
|
| 2633 | + $attributes .= $this->_createParams($freebusyPart['params']); |
|
| 2634 | 2634 | $fno = 1; |
| 2635 | - $cnt = count( $freebusyPart['value']); |
|
| 2636 | - foreach( $freebusyPart['value'] as $periodix => $freebusyPeriod ) { |
|
| 2637 | - $formatted = $this->_format_date_time( $freebusyPeriod[0] ); |
|
| 2635 | + $cnt = count($freebusyPart['value']); |
|
| 2636 | + foreach ($freebusyPart['value'] as $periodix => $freebusyPeriod) { |
|
| 2637 | + $formatted = $this->_format_date_time($freebusyPeriod[0]); |
|
| 2638 | 2638 | $content .= $formatted; |
| 2639 | 2639 | $content .= '/'; |
| 2640 | - $cnt2 = count( $freebusyPeriod[1]); |
|
| 2641 | - if( array_key_exists( 'year', $freebusyPeriod[1] )) // date-time |
|
| 2640 | + $cnt2 = count($freebusyPeriod[1]); |
|
| 2641 | + if (array_key_exists('year', $freebusyPeriod[1])) // date-time |
|
| 2642 | 2642 | $cnt2 = 7; |
| 2643 | - elseif( array_key_exists( 'week', $freebusyPeriod[1] )) // duration |
|
| 2643 | + elseif (array_key_exists('week', $freebusyPeriod[1])) // duration |
|
| 2644 | 2644 | $cnt2 = 5; |
| 2645 | - if(( 7 == $cnt2 ) && // period= -> date-time |
|
| 2646 | - isset( $freebusyPeriod[1]['year'] ) && |
|
| 2647 | - isset( $freebusyPeriod[1]['month'] ) && |
|
| 2648 | - isset( $freebusyPeriod[1]['day'] )) { |
|
| 2649 | - $content .= $this->_format_date_time( $freebusyPeriod[1] ); |
|
| 2645 | + if ((7 == $cnt2) && // period= -> date-time |
|
| 2646 | + isset($freebusyPeriod[1]['year']) && |
|
| 2647 | + isset($freebusyPeriod[1]['month']) && |
|
| 2648 | + isset($freebusyPeriod[1]['day'])) { |
|
| 2649 | + $content .= $this->_format_date_time($freebusyPeriod[1]); |
|
| 2650 | 2650 | } |
| 2651 | 2651 | else { // period= -> dur-time |
| 2652 | - $content .= $this->_format_duration( $freebusyPeriod[1] ); |
|
| 2652 | + $content .= $this->_format_duration($freebusyPeriod[1]); |
|
| 2653 | 2653 | } |
| 2654 | - if( $fno < $cnt ) |
|
| 2654 | + if ($fno < $cnt) |
|
| 2655 | 2655 | $content .= ','; |
| 2656 | 2656 | $fno++; |
| 2657 | 2657 | } |
| 2658 | - $output .= $this->_createElement( 'FREEBUSY', $attributes, $content ); |
|
| 2658 | + $output .= $this->_createElement('FREEBUSY', $attributes, $content); |
|
| 2659 | 2659 | } |
| 2660 | 2660 | return $output; |
| 2661 | 2661 | } |
@@ -2670,52 +2670,52 @@ discard block |
||
| 2670 | 2670 | * @param integer $index, optional |
| 2671 | 2671 | * @return bool |
| 2672 | 2672 | */ |
| 2673 | - function setFreebusy( $fbType, $fbValues, $params=FALSE, $index=FALSE ) { |
|
| 2674 | - if( empty( $fbValues )) { |
|
| 2675 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 2676 | - $this->_setMval( $this->freebusy, null, $params, FALSE, $index ); |
|
| 2673 | + function setFreebusy($fbType, $fbValues, $params = FALSE, $index = FALSE) { |
|
| 2674 | + if (empty($fbValues)) { |
|
| 2675 | + if ($this->getConfig('allowEmpty')) { |
|
| 2676 | + $this->_setMval($this->freebusy, null, $params, FALSE, $index); |
|
| 2677 | 2677 | return TRUE; |
| 2678 | 2678 | } |
| 2679 | 2679 | else |
| 2680 | 2680 | return FALSE; |
| 2681 | 2681 | } |
| 2682 | - $fbType = strtoupper( $fbType ); |
|
| 2683 | - if(( !in_array( $fbType, array( 'FREE', 'BUSY', 'BUSY-UNAVAILABLE', 'BUSY-TENTATIVE' ))) && |
|
| 2684 | - ( 'X-' != substr( $fbType, 0, 2 ))) |
|
| 2682 | + $fbType = strtoupper($fbType); |
|
| 2683 | + if ((!in_array($fbType, array('FREE', 'BUSY', 'BUSY-UNAVAILABLE', 'BUSY-TENTATIVE'))) && |
|
| 2684 | + ('X-' != substr($fbType, 0, 2))) |
|
| 2685 | 2685 | $fbType = 'BUSY'; |
| 2686 | - $input = array( 'fbtype' => $fbType ); |
|
| 2687 | - foreach( $fbValues as $fbPeriod ) { // periods => period |
|
| 2686 | + $input = array('fbtype' => $fbType); |
|
| 2687 | + foreach ($fbValues as $fbPeriod) { // periods => period |
|
| 2688 | 2688 | $freebusyPeriod = array(); |
| 2689 | - foreach( $fbPeriod as $fbMember ) { // pairs => singlepart |
|
| 2689 | + foreach ($fbPeriod as $fbMember) { // pairs => singlepart |
|
| 2690 | 2690 | $freebusyPairMember = array(); |
| 2691 | - if( is_array( $fbMember )) { |
|
| 2692 | - if( $this->_isArrayDate( $fbMember )) { // date-time value |
|
| 2693 | - $freebusyPairMember = $this->_date_time_array( $fbMember, 7 ); |
|
| 2691 | + if (is_array($fbMember)) { |
|
| 2692 | + if ($this->_isArrayDate($fbMember)) { // date-time value |
|
| 2693 | + $freebusyPairMember = $this->_date_time_array($fbMember, 7); |
|
| 2694 | 2694 | $freebusyPairMember['tz'] = 'Z'; |
| 2695 | 2695 | } |
| 2696 | - elseif( $this->_isArrayTimestampDate( $fbMember )) { // timestamp value |
|
| 2697 | - $freebusyPairMember = $this->_timestamp2date( $fbMember['timestamp'], 7 ); |
|
| 2696 | + elseif ($this->_isArrayTimestampDate($fbMember)) { // timestamp value |
|
| 2697 | + $freebusyPairMember = $this->_timestamp2date($fbMember['timestamp'], 7); |
|
| 2698 | 2698 | $freebusyPairMember['tz'] = 'Z'; |
| 2699 | 2699 | } |
| 2700 | 2700 | else { // array format duration |
| 2701 | - $freebusyPairMember = $this->_duration_array( $fbMember ); |
|
| 2701 | + $freebusyPairMember = $this->_duration_array($fbMember); |
|
| 2702 | 2702 | } |
| 2703 | 2703 | } |
| 2704 | - elseif(( 3 <= strlen( trim( $fbMember ))) && // string format duration |
|
| 2705 | - ( in_array( $fbMember{0}, array( 'P', '+', '-' )))) { |
|
| 2706 | - if( 'P' != $fbMember{0} ) |
|
| 2707 | - $fbmember = substr( $fbMember, 1 ); |
|
| 2708 | - $freebusyPairMember = $this->_duration_string( $fbMember ); |
|
| 2704 | + elseif ((3 <= strlen(trim($fbMember))) && // string format duration |
|
| 2705 | + (in_array($fbMember{0}, array('P', '+', '-')))) { |
|
| 2706 | + if ('P' != $fbMember{0} ) |
|
| 2707 | + $fbmember = substr($fbMember, 1); |
|
| 2708 | + $freebusyPairMember = $this->_duration_string($fbMember); |
|
| 2709 | 2709 | } |
| 2710 | - elseif( 8 <= strlen( trim( $fbMember ))) { // text date ex. 2006-08-03 10:12:18 |
|
| 2711 | - $freebusyPairMember = $this->_date_time_string( $fbMember, 7 ); |
|
| 2710 | + elseif (8 <= strlen(trim($fbMember))) { // text date ex. 2006-08-03 10:12:18 |
|
| 2711 | + $freebusyPairMember = $this->_date_time_string($fbMember, 7); |
|
| 2712 | 2712 | $freebusyPairMember['tz'] = 'Z'; |
| 2713 | 2713 | } |
| 2714 | 2714 | $freebusyPeriod[] = $freebusyPairMember; |
| 2715 | 2715 | } |
| 2716 | 2716 | $input[] = $freebusyPeriod; |
| 2717 | 2717 | } |
| 2718 | - $this->_setMval( $this->freebusy, $input, $params, FALSE, $index ); |
|
| 2718 | + $this->_setMval($this->freebusy, $input, $params, FALSE, $index); |
|
| 2719 | 2719 | return TRUE; |
| 2720 | 2720 | } |
| 2721 | 2721 | /*********************************************************************************/ |
@@ -2730,15 +2730,15 @@ discard block |
||
| 2730 | 2730 | * @return string |
| 2731 | 2731 | */ |
| 2732 | 2732 | function createGeo() { |
| 2733 | - if( empty( $this->geo )) return FALSE; |
|
| 2734 | - if( empty( $this->geo['value'] )) |
|
| 2735 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'GEO' ) : FALSE; |
|
| 2736 | - $attributes = $this->_createParams( $this->geo['params'] ); |
|
| 2733 | + if (empty($this->geo)) return FALSE; |
|
| 2734 | + if (empty($this->geo['value'])) |
|
| 2735 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('GEO') : FALSE; |
|
| 2736 | + $attributes = $this->_createParams($this->geo['params']); |
|
| 2737 | 2737 | $content = null; |
| 2738 | - $content .= number_format( (float) $this->geo['value']['latitude'], 6, '.', ''); |
|
| 2738 | + $content .= number_format((float) $this->geo['value']['latitude'], 6, '.', ''); |
|
| 2739 | 2739 | $content .= ';'; |
| 2740 | - $content .= number_format( (float) $this->geo['value']['longitude'], 6, '.', ''); |
|
| 2741 | - return $this->_createElement( 'GEO', $attributes, $content ); |
|
| 2740 | + $content .= number_format((float) $this->geo['value']['longitude'], 6, '.', ''); |
|
| 2741 | + return $this->_createElement('GEO', $attributes, $content); |
|
| 2742 | 2742 | } |
| 2743 | 2743 | /** |
| 2744 | 2744 | * set calendar component property geo |
@@ -2750,15 +2750,15 @@ discard block |
||
| 2750 | 2750 | * @param array $params optional |
| 2751 | 2751 | * @return bool |
| 2752 | 2752 | */ |
| 2753 | - function setGeo( $latitude, $longitude, $params=FALSE ) { |
|
| 2754 | - if( !empty( $latitude ) && !empty( $longitude )) { |
|
| 2755 | - if( !is_array( $this->geo )) $this->geo = array(); |
|
| 2753 | + function setGeo($latitude, $longitude, $params = FALSE) { |
|
| 2754 | + if (!empty($latitude) && !empty($longitude)) { |
|
| 2755 | + if (!is_array($this->geo)) $this->geo = array(); |
|
| 2756 | 2756 | $this->geo['value']['latitude'] = $latitude; |
| 2757 | 2757 | $this->geo['value']['longitude'] = $longitude; |
| 2758 | - $this->geo['params'] = $this->_setParams( $params ); |
|
| 2758 | + $this->geo['params'] = $this->_setParams($params); |
|
| 2759 | 2759 | } |
| 2760 | - elseif( $this->getConfig( 'allowEmpty' )) |
|
| 2761 | - $this->geo = array( 'value' => null, 'params' => $this->_setParams( $params ) ); |
|
| 2760 | + elseif ($this->getConfig('allowEmpty')) |
|
| 2761 | + $this->geo = array('value' => null, 'params' => $this->_setParams($params)); |
|
| 2762 | 2762 | else |
| 2763 | 2763 | return FALSE; |
| 2764 | 2764 | return TRUE; |
@@ -2775,10 +2775,10 @@ discard block |
||
| 2775 | 2775 | * @return string |
| 2776 | 2776 | */ |
| 2777 | 2777 | function createLastModified() { |
| 2778 | - if( empty( $this->lastmodified )) return FALSE; |
|
| 2779 | - $attributes = $this->_createParams( $this->lastmodified['params'] ); |
|
| 2780 | - $formatted = $this->_format_date_time( $this->lastmodified['value'], 7 ); |
|
| 2781 | - return $this->_createElement( 'LAST-MODIFIED', $attributes, $formatted ); |
|
| 2778 | + if (empty($this->lastmodified)) return FALSE; |
|
| 2779 | + $attributes = $this->_createParams($this->lastmodified['params']); |
|
| 2780 | + $formatted = $this->_format_date_time($this->lastmodified['value'], 7); |
|
| 2781 | + return $this->_createElement('LAST-MODIFIED', $attributes, $formatted); |
|
| 2782 | 2782 | } |
| 2783 | 2783 | /** |
| 2784 | 2784 | * set calendar component property completed |
@@ -2794,10 +2794,10 @@ discard block |
||
| 2794 | 2794 | * @param array $params optional |
| 2795 | 2795 | * @return boll |
| 2796 | 2796 | */ |
| 2797 | - function setLastModified( $year=FALSE, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 2798 | - if( empty( $year )) |
|
| 2799 | - $year = date('Ymd\THis', mktime( date( 'H' ), date( 'i' ), date( 's' ) - date( 'Z'), date( 'm' ), date( 'd' ), date( 'Y' ))); |
|
| 2800 | - $this->lastmodified = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
|
| 2797 | + function setLastModified($year = FALSE, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $params = FALSE) { |
|
| 2798 | + if (empty($year)) |
|
| 2799 | + $year = date('Ymd\THis', mktime(date('H'), date('i'), date('s') - date('Z'), date('m'), date('d'), date('Y'))); |
|
| 2800 | + $this->lastmodified = $this->_setDate2($year, $month, $day, $hour, $min, $sec, $params); |
|
| 2801 | 2801 | return TRUE; |
| 2802 | 2802 | } |
| 2803 | 2803 | /*********************************************************************************/ |
@@ -2812,12 +2812,12 @@ discard block |
||
| 2812 | 2812 | * @return string |
| 2813 | 2813 | */ |
| 2814 | 2814 | function createLocation() { |
| 2815 | - if( empty( $this->location )) return FALSE; |
|
| 2816 | - if( empty( $this->location['value'] )) |
|
| 2817 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'LOCATION' ) : FALSE; |
|
| 2818 | - $attributes = $this->_createParams( $this->location['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 2819 | - $content = $this->_strrep( $this->location['value'] ); |
|
| 2820 | - return $this->_createElement( 'LOCATION', $attributes, $content ); |
|
| 2815 | + if (empty($this->location)) return FALSE; |
|
| 2816 | + if (empty($this->location['value'])) |
|
| 2817 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('LOCATION') : FALSE; |
|
| 2818 | + $attributes = $this->_createParams($this->location['params'], array('ALTREP', 'LANGUAGE')); |
|
| 2819 | + $content = $this->_strrep($this->location['value']); |
|
| 2820 | + return $this->_createElement('LOCATION', $attributes, $content); |
|
| 2821 | 2821 | } |
| 2822 | 2822 | /** |
| 2823 | 2823 | * set calendar component property location |
@@ -2828,9 +2828,9 @@ discard block |
||
| 2828 | 2828 | * @param array params optional |
| 2829 | 2829 | * @return bool |
| 2830 | 2830 | */ |
| 2831 | - function setLocation( $value, $params=FALSE ) { |
|
| 2832 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2833 | - $this->location = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 2831 | + function setLocation($value, $params = FALSE) { |
|
| 2832 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 2833 | + $this->location = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 2834 | 2834 | return TRUE; |
| 2835 | 2835 | } |
| 2836 | 2836 | /*********************************************************************************/ |
@@ -2845,13 +2845,13 @@ discard block |
||
| 2845 | 2845 | * @return string |
| 2846 | 2846 | */ |
| 2847 | 2847 | function createOrganizer() { |
| 2848 | - if( empty( $this->organizer )) return FALSE; |
|
| 2849 | - if( empty( $this->organizer['value'] )) |
|
| 2850 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ORGANIZER' ) : FALSE; |
|
| 2851 | - $attributes = $this->_createParams( $this->organizer['params'] |
|
| 2852 | - , array( 'CN', 'DIR', 'LANGUAGE', 'SENT-BY' )); |
|
| 2848 | + if (empty($this->organizer)) return FALSE; |
|
| 2849 | + if (empty($this->organizer['value'])) |
|
| 2850 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('ORGANIZER') : FALSE; |
|
| 2851 | + $attributes = $this->_createParams($this->organizer['params'] |
|
| 2852 | + , array('CN', 'DIR', 'LANGUAGE', 'SENT-BY')); |
|
| 2853 | 2853 | $content = 'MAILTO:'.$this->organizer['value']; |
| 2854 | - return $this->_createElement( 'ORGANIZER', $attributes, $content ); |
|
| 2854 | + return $this->_createElement('ORGANIZER', $attributes, $content); |
|
| 2855 | 2855 | } |
| 2856 | 2856 | /** |
| 2857 | 2857 | * set calendar component property organizer |
@@ -2862,14 +2862,14 @@ discard block |
||
| 2862 | 2862 | * @param array params optional |
| 2863 | 2863 | * @return bool |
| 2864 | 2864 | */ |
| 2865 | - function setOrganizer( $value, $params=FALSE ) { |
|
| 2866 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2867 | - $value = str_replace ( 'MAILTO:', '', $value ); |
|
| 2868 | - $value = str_replace ( 'mailto:', '', $value ); |
|
| 2869 | - $this->organizer = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 2870 | - if( isset( $this->organizer['params']['SENT-BY'] )) { |
|
| 2871 | - if( 'MAILTO' == strtoupper( substr( $this->organizer['params']['SENT-BY'], 0, 6 ))) |
|
| 2872 | - $this->organizer['params']['SENT-BY'] = substr( $this->organizer['params']['SENT-BY'], 7 ); |
|
| 2865 | + function setOrganizer($value, $params = FALSE) { |
|
| 2866 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 2867 | + $value = str_replace('MAILTO:', '', $value); |
|
| 2868 | + $value = str_replace('mailto:', '', $value); |
|
| 2869 | + $this->organizer = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 2870 | + if (isset($this->organizer['params']['SENT-BY'])) { |
|
| 2871 | + if ('MAILTO' == strtoupper(substr($this->organizer['params']['SENT-BY'], 0, 6))) |
|
| 2872 | + $this->organizer['params']['SENT-BY'] = substr($this->organizer['params']['SENT-BY'], 7); |
|
| 2873 | 2873 | } |
| 2874 | 2874 | return TRUE; |
| 2875 | 2875 | } |
@@ -2885,11 +2885,11 @@ discard block |
||
| 2885 | 2885 | * @return string |
| 2886 | 2886 | */ |
| 2887 | 2887 | function createPercentComplete() { |
| 2888 | - if( empty( $this->percentcomplete )) return FALSE; |
|
| 2889 | - if( empty( $this->percentcomplete['value'] )) |
|
| 2890 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PERCENT-COMPLETE' ) : FALSE; |
|
| 2891 | - $attributes = $this->_createParams( $this->percentcomplete['params'] ); |
|
| 2892 | - return $this->_createElement( 'PERCENT-COMPLETE', $attributes, $this->percentcomplete['value'] ); |
|
| 2888 | + if (empty($this->percentcomplete)) return FALSE; |
|
| 2889 | + if (empty($this->percentcomplete['value'])) |
|
| 2890 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('PERCENT-COMPLETE') : FALSE; |
|
| 2891 | + $attributes = $this->_createParams($this->percentcomplete['params']); |
|
| 2892 | + return $this->_createElement('PERCENT-COMPLETE', $attributes, $this->percentcomplete['value']); |
|
| 2893 | 2893 | } |
| 2894 | 2894 | /** |
| 2895 | 2895 | * set calendar component property percent-complete |
@@ -2900,9 +2900,9 @@ discard block |
||
| 2900 | 2900 | * @param array $params optional |
| 2901 | 2901 | * @return bool |
| 2902 | 2902 | */ |
| 2903 | - function setPercentComplete( $value, $params=FALSE ) { |
|
| 2904 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2905 | - $this->percentcomplete = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 2903 | + function setPercentComplete($value, $params = FALSE) { |
|
| 2904 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 2905 | + $this->percentcomplete = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 2906 | 2906 | return TRUE; |
| 2907 | 2907 | } |
| 2908 | 2908 | /*********************************************************************************/ |
@@ -2917,11 +2917,11 @@ discard block |
||
| 2917 | 2917 | * @return string |
| 2918 | 2918 | */ |
| 2919 | 2919 | function createPriority() { |
| 2920 | - if( empty( $this->priority )) return FALSE; |
|
| 2921 | - if( empty( $this->priority['value'] )) |
|
| 2922 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PRIORITY' ) : FALSE; |
|
| 2923 | - $attributes = $this->_createParams( $this->priority['params'] ); |
|
| 2924 | - return $this->_createElement( 'PRIORITY', $attributes, $this->priority['value'] ); |
|
| 2920 | + if (empty($this->priority)) return FALSE; |
|
| 2921 | + if (empty($this->priority['value'])) |
|
| 2922 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('PRIORITY') : FALSE; |
|
| 2923 | + $attributes = $this->_createParams($this->priority['params']); |
|
| 2924 | + return $this->_createElement('PRIORITY', $attributes, $this->priority['value']); |
|
| 2925 | 2925 | } |
| 2926 | 2926 | /** |
| 2927 | 2927 | * set calendar component property priority |
@@ -2932,9 +2932,9 @@ discard block |
||
| 2932 | 2932 | * @param array $params optional |
| 2933 | 2933 | * @return bool |
| 2934 | 2934 | */ |
| 2935 | - function setPriority( $value, $params=FALSE ) { |
|
| 2936 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2937 | - $this->priority = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 2935 | + function setPriority($value, $params = FALSE) { |
|
| 2936 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 2937 | + $this->priority = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 2938 | 2938 | return TRUE; |
| 2939 | 2939 | } |
| 2940 | 2940 | /*********************************************************************************/ |
@@ -2949,91 +2949,91 @@ discard block |
||
| 2949 | 2949 | * @return string |
| 2950 | 2950 | */ |
| 2951 | 2951 | function createRdate() { |
| 2952 | - if( empty( $this->rdate )) return FALSE; |
|
| 2953 | - $utctime = ( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) ? TRUE : FALSE; |
|
| 2952 | + if (empty($this->rdate)) return FALSE; |
|
| 2953 | + $utctime = (in_array($this->objName, array('vtimezone', 'standard', 'daylight'))) ? TRUE : FALSE; |
|
| 2954 | 2954 | $output = null; |
| 2955 | - if( $utctime ) |
|
| 2956 | - unset( $this->rdate['params']['TZID'] ); |
|
| 2957 | - foreach( $this->rdate as $theRdate ) { |
|
| 2958 | - if( empty( $theRdate['value'] )) { |
|
| 2959 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'RDATE' ); |
|
| 2955 | + if ($utctime) |
|
| 2956 | + unset($this->rdate['params']['TZID']); |
|
| 2957 | + foreach ($this->rdate as $theRdate) { |
|
| 2958 | + if (empty($theRdate['value'])) { |
|
| 2959 | + if ($this->getConfig('allowEmpty')) $output .= $this->_createElement('RDATE'); |
|
| 2960 | 2960 | continue; |
| 2961 | 2961 | } |
| 2962 | - if( $utctime ) |
|
| 2963 | - unset( $theRdate['params']['TZID'] ); |
|
| 2964 | - $attributes = $this->_createParams( $theRdate['params'] ); |
|
| 2965 | - $cnt = count( $theRdate['value'] ); |
|
| 2962 | + if ($utctime) |
|
| 2963 | + unset($theRdate['params']['TZID']); |
|
| 2964 | + $attributes = $this->_createParams($theRdate['params']); |
|
| 2965 | + $cnt = count($theRdate['value']); |
|
| 2966 | 2966 | $content = null; |
| 2967 | 2967 | $rno = 1; |
| 2968 | - foreach( $theRdate['value'] as $rpix => $rdatePart ) { |
|
| 2968 | + foreach ($theRdate['value'] as $rpix => $rdatePart) { |
|
| 2969 | 2969 | $contentPart = null; |
| 2970 | - if( is_array( $rdatePart ) && |
|
| 2971 | - isset( $theRdate['params']['VALUE'] ) && ( 'PERIOD' == $theRdate['params']['VALUE'] )) { // PERIOD |
|
| 2972 | - if( $utctime ) |
|
| 2973 | - unset( $rdatePart[0]['tz'] ); |
|
| 2974 | - $formatted = $this->_format_date_time( $rdatePart[0]); // PERIOD part 1 |
|
| 2975 | - if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 2976 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 2977 | - if( 0 < $rpix ) { |
|
| 2978 | - if( !empty( $rdatePart[0]['tz'] ) && $this->_isOffset( $rdatePart[0]['tz'] )) { |
|
| 2979 | - if( 'Z' != substr( $formatted, -1 )) $formatted .= 'Z'; |
|
| 2970 | + if (is_array($rdatePart) && |
|
| 2971 | + isset($theRdate['params']['VALUE']) && ('PERIOD' == $theRdate['params']['VALUE'])) { // PERIOD |
|
| 2972 | + if ($utctime) |
|
| 2973 | + unset($rdatePart[0]['tz']); |
|
| 2974 | + $formatted = $this->_format_date_time($rdatePart[0]); // PERIOD part 1 |
|
| 2975 | + if ($utctime || !empty($theRdate['params']['TZID'])) |
|
| 2976 | + $formatted = str_replace('Z', '', $formatted); |
|
| 2977 | + if (0 < $rpix) { |
|
| 2978 | + if (!empty($rdatePart[0]['tz']) && $this->_isOffset($rdatePart[0]['tz'])) { |
|
| 2979 | + if ('Z' != substr($formatted, -1)) $formatted .= 'Z'; |
|
| 2980 | 2980 | } |
| 2981 | 2981 | else |
| 2982 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2982 | + $formatted = str_replace('Z', '', $formatted); |
|
| 2983 | 2983 | } |
| 2984 | 2984 | $contentPart .= $formatted; |
| 2985 | 2985 | $contentPart .= '/'; |
| 2986 | - $cnt2 = count( $rdatePart[1]); |
|
| 2987 | - if( array_key_exists( 'year', $rdatePart[1] )) { |
|
| 2988 | - if( array_key_exists( 'hour', $rdatePart[1] )) |
|
| 2989 | - $cnt2 = 7; // date-time |
|
| 2986 | + $cnt2 = count($rdatePart[1]); |
|
| 2987 | + if (array_key_exists('year', $rdatePart[1])) { |
|
| 2988 | + if (array_key_exists('hour', $rdatePart[1])) |
|
| 2989 | + $cnt2 = 7; // date-time |
|
| 2990 | 2990 | else |
| 2991 | - $cnt2 = 3; // date |
|
| 2991 | + $cnt2 = 3; // date |
|
| 2992 | 2992 | } |
| 2993 | - elseif( array_key_exists( 'week', $rdatePart[1] )) // duration |
|
| 2993 | + elseif (array_key_exists('week', $rdatePart[1])) // duration |
|
| 2994 | 2994 | $cnt2 = 5; |
| 2995 | - if(( 7 == $cnt2 ) && // period= -> date-time |
|
| 2996 | - isset( $rdatePart[1]['year'] ) && |
|
| 2997 | - isset( $rdatePart[1]['month'] ) && |
|
| 2998 | - isset( $rdatePart[1]['day'] )) { |
|
| 2999 | - if( $utctime ) |
|
| 3000 | - unset( $rdatePart[1]['tz'] ); |
|
| 3001 | - $formatted = $this->_format_date_time( $rdatePart[1] ); // PERIOD part 2 |
|
| 3002 | - if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 3003 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 3004 | - if( !empty( $rdatePart[0]['tz'] ) && $this->_isOffset( $rdatePart[0]['tz'] )) { |
|
| 3005 | - if( 'Z' != substr( $formatted, -1 )) $formatted .= 'Z'; |
|
| 2995 | + if ((7 == $cnt2) && // period= -> date-time |
|
| 2996 | + isset($rdatePart[1]['year']) && |
|
| 2997 | + isset($rdatePart[1]['month']) && |
|
| 2998 | + isset($rdatePart[1]['day'])) { |
|
| 2999 | + if ($utctime) |
|
| 3000 | + unset($rdatePart[1]['tz']); |
|
| 3001 | + $formatted = $this->_format_date_time($rdatePart[1]); // PERIOD part 2 |
|
| 3002 | + if ($utctime || !empty($theRdate['params']['TZID'])) |
|
| 3003 | + $formatted = str_replace('Z', '', $formatted); |
|
| 3004 | + if (!empty($rdatePart[0]['tz']) && $this->_isOffset($rdatePart[0]['tz'])) { |
|
| 3005 | + if ('Z' != substr($formatted, -1)) $formatted .= 'Z'; |
|
| 3006 | 3006 | } |
| 3007 | 3007 | else |
| 3008 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3008 | + $formatted = str_replace('Z', '', $formatted); |
|
| 3009 | 3009 | $contentPart .= $formatted; |
| 3010 | 3010 | } |
| 3011 | 3011 | else { // period= -> dur-time |
| 3012 | - $contentPart .= $this->_format_duration( $rdatePart[1] ); |
|
| 3012 | + $contentPart .= $this->_format_duration($rdatePart[1]); |
|
| 3013 | 3013 | } |
| 3014 | 3014 | } // PERIOD end |
| 3015 | 3015 | else { // SINGLE date start |
| 3016 | - if( $utctime ) |
|
| 3017 | - unset( $rdatePart['tz'] ); |
|
| 3018 | - $formatted = $this->_format_date_time( $rdatePart); |
|
| 3019 | - if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 3020 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 3021 | - if( !$utctime && ( 0 < $rpix )) { |
|
| 3022 | - if( !empty( $theRdate['value'][0]['tz'] ) && $this->_isOffset( $theRdate['value'][0]['tz'] )) { |
|
| 3023 | - if( 'Z' != substr( $formatted, -1 )) |
|
| 3016 | + if ($utctime) |
|
| 3017 | + unset($rdatePart['tz']); |
|
| 3018 | + $formatted = $this->_format_date_time($rdatePart); |
|
| 3019 | + if ($utctime || !empty($theRdate['params']['TZID'])) |
|
| 3020 | + $formatted = str_replace('Z', '', $formatted); |
|
| 3021 | + if (!$utctime && (0 < $rpix)) { |
|
| 3022 | + if (!empty($theRdate['value'][0]['tz']) && $this->_isOffset($theRdate['value'][0]['tz'])) { |
|
| 3023 | + if ('Z' != substr($formatted, -1)) |
|
| 3024 | 3024 | $formatted .= 'Z'; |
| 3025 | 3025 | } |
| 3026 | 3026 | else |
| 3027 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3027 | + $formatted = str_replace('Z', '', $formatted); |
|
| 3028 | 3028 | } |
| 3029 | 3029 | $contentPart .= $formatted; |
| 3030 | 3030 | } |
| 3031 | 3031 | $content .= $contentPart; |
| 3032 | - if( $rno < $cnt ) |
|
| 3032 | + if ($rno < $cnt) |
|
| 3033 | 3033 | $content .= ','; |
| 3034 | 3034 | $rno++; |
| 3035 | 3035 | } |
| 3036 | - $output .= $this->_createElement( 'RDATE', $attributes, $content ); |
|
| 3036 | + $output .= $this->_createElement('RDATE', $attributes, $content); |
|
| 3037 | 3037 | } |
| 3038 | 3038 | return $output; |
| 3039 | 3039 | } |
@@ -3047,93 +3047,93 @@ discard block |
||
| 3047 | 3047 | * @param integer $index, optional |
| 3048 | 3048 | * @return bool |
| 3049 | 3049 | */ |
| 3050 | - function setRdate( $rdates, $params=FALSE, $index=FALSE ) { |
|
| 3051 | - if( empty( $rdates )) { |
|
| 3052 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 3053 | - $this->_setMval( $this->rdate, null, $params, FALSE, $index ); |
|
| 3050 | + function setRdate($rdates, $params = FALSE, $index = FALSE) { |
|
| 3051 | + if (empty($rdates)) { |
|
| 3052 | + if ($this->getConfig('allowEmpty')) { |
|
| 3053 | + $this->_setMval($this->rdate, null, $params, FALSE, $index); |
|
| 3054 | 3054 | return TRUE; |
| 3055 | 3055 | } |
| 3056 | 3056 | else |
| 3057 | 3057 | return FALSE; |
| 3058 | 3058 | } |
| 3059 | - $input = array( 'params' => $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' ))); |
|
| 3060 | - if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) { |
|
| 3061 | - unset( $input['params']['TZID'] ); |
|
| 3059 | + $input = array('params' => $this->_setParams($params, array('VALUE' => 'DATE-TIME'))); |
|
| 3060 | + if (in_array($this->objName, array('vtimezone', 'standard', 'daylight'))) { |
|
| 3061 | + unset($input['params']['TZID']); |
|
| 3062 | 3062 | $input['params']['VALUE'] = 'DATE-TIME'; |
| 3063 | 3063 | } |
| 3064 | 3064 | /* check if PERIOD, if not set */ |
| 3065 | - if((!isset( $input['params']['VALUE'] ) || !in_array( $input['params']['VALUE'], array( 'DATE', 'PERIOD' ))) && |
|
| 3066 | - isset( $rdates[0] ) && is_array( $rdates[0] ) && ( 2 == count( $rdates[0] )) && |
|
| 3067 | - isset( $rdates[0][0] ) && isset( $rdates[0][1] ) && !isset( $rdates[0]['timestamp'] ) && |
|
| 3068 | - (( is_array( $rdates[0][0] ) && ( isset( $rdates[0][0]['timestamp'] ) || |
|
| 3069 | - $this->_isArrayDate( $rdates[0][0] ))) || |
|
| 3070 | - ( is_string( $rdates[0][0] ) && ( 8 <= strlen( trim( $rdates[0][0] ))))) && |
|
| 3071 | - ( is_array( $rdates[0][1] ) || ( is_string( $rdates[0][1] ) && ( 3 <= strlen( trim( $rdates[0][1] )))))) |
|
| 3065 | + if ((!isset($input['params']['VALUE']) || !in_array($input['params']['VALUE'], array('DATE', 'PERIOD'))) && |
|
| 3066 | + isset($rdates[0]) && is_array($rdates[0]) && (2 == count($rdates[0])) && |
|
| 3067 | + isset($rdates[0][0]) && isset($rdates[0][1]) && !isset($rdates[0]['timestamp']) && |
|
| 3068 | + ((is_array($rdates[0][0]) && (isset($rdates[0][0]['timestamp']) || |
|
| 3069 | + $this->_isArrayDate($rdates[0][0]))) || |
|
| 3070 | + (is_string($rdates[0][0]) && (8 <= strlen(trim($rdates[0][0]))))) && |
|
| 3071 | + (is_array($rdates[0][1]) || (is_string($rdates[0][1]) && (3 <= strlen(trim($rdates[0][1])))))) |
|
| 3072 | 3072 | $input['params']['VALUE'] = 'PERIOD'; |
| 3073 | 3073 | /* check 1:st date, upd. $parno (opt) and save ev. timezone **/ |
| 3074 | - $date = reset( $rdates ); |
|
| 3075 | - if( isset( $input['params']['VALUE'] ) && ( 'PERIOD' == $input['params']['VALUE'] )) // PERIOD |
|
| 3076 | - $date = reset( $date ); |
|
| 3077 | - $this->_chkdatecfg( $date, $parno, $input['params'] ); |
|
| 3078 | - if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) |
|
| 3079 | - unset( $input['params']['TZID'] ); |
|
| 3080 | - $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME' ); // remove default |
|
| 3081 | - foreach( $rdates as $rpix => $theRdate ) { |
|
| 3074 | + $date = reset($rdates); |
|
| 3075 | + if (isset($input['params']['VALUE']) && ('PERIOD' == $input['params']['VALUE'])) // PERIOD |
|
| 3076 | + $date = reset($date); |
|
| 3077 | + $this->_chkdatecfg($date, $parno, $input['params']); |
|
| 3078 | + if (in_array($this->objName, array('vtimezone', 'standard', 'daylight'))) |
|
| 3079 | + unset($input['params']['TZID']); |
|
| 3080 | + $this->_existRem($input['params'], 'VALUE', 'DATE-TIME'); // remove default |
|
| 3081 | + foreach ($rdates as $rpix => $theRdate) { |
|
| 3082 | 3082 | $inputa = null; |
| 3083 | - if( is_array( $theRdate )) { |
|
| 3084 | - if( isset( $input['params']['VALUE'] ) && ( 'PERIOD' == $input['params']['VALUE'] )) { // PERIOD |
|
| 3085 | - foreach( $theRdate as $rix => $rPeriod ) { |
|
| 3086 | - if( is_array( $rPeriod )) { |
|
| 3087 | - if( $this->_isArrayTimestampDate( $rPeriod )) // timestamp |
|
| 3088 | - $inputab = ( isset( $rPeriod['tz'] )) ? $this->_timestamp2date( $rPeriod, $parno ) : $this->_timestamp2date( $rPeriod, 6 ); |
|
| 3089 | - elseif( $this->_isArrayDate( $rPeriod )) |
|
| 3090 | - $inputab = ( 3 < count ( $rPeriod )) ? $this->_date_time_array( $rPeriod, $parno ) : $this->_date_time_array( $rPeriod, 6 ); |
|
| 3091 | - elseif (( 1 == count( $rPeriod )) && ( 8 <= strlen( reset( $rPeriod )))) // text-date |
|
| 3092 | - $inputab = $this->_date_time_string( reset( $rPeriod ), $parno ); |
|
| 3083 | + if (is_array($theRdate)) { |
|
| 3084 | + if (isset($input['params']['VALUE']) && ('PERIOD' == $input['params']['VALUE'])) { // PERIOD |
|
| 3085 | + foreach ($theRdate as $rix => $rPeriod) { |
|
| 3086 | + if (is_array($rPeriod)) { |
|
| 3087 | + if ($this->_isArrayTimestampDate($rPeriod)) // timestamp |
|
| 3088 | + $inputab = (isset($rPeriod['tz'])) ? $this->_timestamp2date($rPeriod, $parno) : $this->_timestamp2date($rPeriod, 6); |
|
| 3089 | + elseif ($this->_isArrayDate($rPeriod)) |
|
| 3090 | + $inputab = (3 < count($rPeriod)) ? $this->_date_time_array($rPeriod, $parno) : $this->_date_time_array($rPeriod, 6); |
|
| 3091 | + elseif ((1 == count($rPeriod)) && (8 <= strlen(reset($rPeriod)))) // text-date |
|
| 3092 | + $inputab = $this->_date_time_string(reset($rPeriod), $parno); |
|
| 3093 | 3093 | else // array format duration |
| 3094 | - $inputab = $this->_duration_array( $rPeriod ); |
|
| 3094 | + $inputab = $this->_duration_array($rPeriod); |
|
| 3095 | 3095 | } |
| 3096 | - elseif(( 3 <= strlen( trim( $rPeriod ))) && // string format duration |
|
| 3097 | - ( in_array( $rPeriod{0}, array( 'P', '+', '-' )))) { |
|
| 3098 | - if( 'P' != $rPeriod{0} ) |
|
| 3099 | - $rPeriod = substr( $rPeriod, 1 ); |
|
| 3100 | - $inputab = $this->_duration_string( $rPeriod ); |
|
| 3096 | + elseif ((3 <= strlen(trim($rPeriod))) && // string format duration |
|
| 3097 | + (in_array($rPeriod{0}, array('P', '+', '-')))) { |
|
| 3098 | + if ('P' != $rPeriod{0} ) |
|
| 3099 | + $rPeriod = substr($rPeriod, 1); |
|
| 3100 | + $inputab = $this->_duration_string($rPeriod); |
|
| 3101 | 3101 | } |
| 3102 | - elseif( 8 <= strlen( trim( $rPeriod ))) // text date ex. 2006-08-03 10:12:18 |
|
| 3103 | - $inputab = $this->_date_time_string( $rPeriod, $parno ); |
|
| 3104 | - if( isset( $input['params']['TZID'] ) || |
|
| 3105 | - ( isset( $inputab['tz'] ) && !$this->_isOffset( $inputab['tz'] )) || |
|
| 3106 | - ( isset( $inputa[0] ) && ( !isset( $inputa[0]['tz'] ))) || |
|
| 3107 | - ( isset( $inputa[0]['tz'] ) && !$this->_isOffset( $inputa[0]['tz'] ))) |
|
| 3108 | - unset( $inputab['tz'] ); |
|
| 3109 | - $inputa[] = $inputab; |
|
| 3102 | + elseif (8 <= strlen(trim($rPeriod))) // text date ex. 2006-08-03 10:12:18 |
|
| 3103 | + $inputab = $this->_date_time_string($rPeriod, $parno); |
|
| 3104 | + if (isset($input['params']['TZID']) || |
|
| 3105 | + (isset($inputab['tz']) && !$this->_isOffset($inputab['tz'])) || |
|
| 3106 | + (isset($inputa[0]) && (!isset($inputa[0]['tz']))) || |
|
| 3107 | + (isset($inputa[0]['tz']) && !$this->_isOffset($inputa[0]['tz']))) |
|
| 3108 | + unset($inputab['tz']); |
|
| 3109 | + $inputa[] = $inputab; |
|
| 3110 | 3110 | } |
| 3111 | 3111 | } // PERIOD end |
| 3112 | - elseif ( $this->_isArrayTimestampDate( $theRdate )) // timestamp |
|
| 3113 | - $inputa = $this->_timestamp2date( $theRdate, $parno ); |
|
| 3112 | + elseif ($this->_isArrayTimestampDate($theRdate)) // timestamp |
|
| 3113 | + $inputa = $this->_timestamp2date($theRdate, $parno); |
|
| 3114 | 3114 | else // date[-time] |
| 3115 | - $inputa = $this->_date_time_array( $theRdate, $parno ); |
|
| 3115 | + $inputa = $this->_date_time_array($theRdate, $parno); |
|
| 3116 | 3116 | } |
| 3117 | - elseif( 8 <= strlen( trim( $theRdate ))) // text date ex. 2006-08-03 10:12:18 |
|
| 3118 | - $inputa = $this->_date_time_string( $theRdate, $parno ); |
|
| 3119 | - if( !isset( $input['params']['VALUE'] ) || ( 'PERIOD' != $input['params']['VALUE'] )) { // no PERIOD |
|
| 3120 | - if( 3 == $parno ) |
|
| 3121 | - unset( $inputa['hour'], $inputa['min'], $inputa['sec'], $inputa['tz'] ); |
|
| 3122 | - elseif( isset( $inputa['tz'] )) |
|
| 3117 | + elseif (8 <= strlen(trim($theRdate))) // text date ex. 2006-08-03 10:12:18 |
|
| 3118 | + $inputa = $this->_date_time_string($theRdate, $parno); |
|
| 3119 | + if (!isset($input['params']['VALUE']) || ('PERIOD' != $input['params']['VALUE'])) { // no PERIOD |
|
| 3120 | + if (3 == $parno) |
|
| 3121 | + unset($inputa['hour'], $inputa['min'], $inputa['sec'], $inputa['tz']); |
|
| 3122 | + elseif (isset($inputa['tz'])) |
|
| 3123 | 3123 | $inputa['tz'] = (string) $inputa['tz']; |
| 3124 | - if( isset( $input['params']['TZID'] ) || |
|
| 3125 | - ( isset( $inputa['tz'] ) && !$this->_isOffset( $inputa['tz'] )) || |
|
| 3126 | - ( isset( $input['value'][0] ) && ( !isset( $input['value'][0]['tz'] ))) || |
|
| 3127 | - ( isset( $input['value'][0]['tz'] ) && !$this->_isOffset( $input['value'][0]['tz'] ))) |
|
| 3128 | - unset( $inputa['tz'] ); |
|
| 3124 | + if (isset($input['params']['TZID']) || |
|
| 3125 | + (isset($inputa['tz']) && !$this->_isOffset($inputa['tz'])) || |
|
| 3126 | + (isset($input['value'][0]) && (!isset($input['value'][0]['tz']))) || |
|
| 3127 | + (isset($input['value'][0]['tz']) && !$this->_isOffset($input['value'][0]['tz']))) |
|
| 3128 | + unset($inputa['tz']); |
|
| 3129 | 3129 | } |
| 3130 | 3130 | $input['value'][] = $inputa; |
| 3131 | 3131 | } |
| 3132 | - if( 3 == $parno ) { |
|
| 3132 | + if (3 == $parno) { |
|
| 3133 | 3133 | $input['params']['VALUE'] = 'DATE'; |
| 3134 | - unset( $input['params']['TZID'] ); |
|
| 3134 | + unset($input['params']['TZID']); |
|
| 3135 | 3135 | } |
| 3136 | - $this->_setMval( $this->rdate, $input['value'], $input['params'], FALSE, $index ); |
|
| 3136 | + $this->_setMval($this->rdate, $input['value'], $input['params'], FALSE, $index); |
|
| 3137 | 3137 | return TRUE; |
| 3138 | 3138 | } |
| 3139 | 3139 | /*********************************************************************************/ |
@@ -3148,12 +3148,12 @@ discard block |
||
| 3148 | 3148 | * @return string |
| 3149 | 3149 | */ |
| 3150 | 3150 | function createRecurrenceid() { |
| 3151 | - if( empty( $this->recurrenceid )) return FALSE; |
|
| 3152 | - if( empty( $this->recurrenceid['value'] )) |
|
| 3153 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'RECURRENCE-ID' ) : FALSE; |
|
| 3154 | - $formatted = $this->_format_date_time( $this->recurrenceid['value'] ); |
|
| 3155 | - $attributes = $this->_createParams( $this->recurrenceid['params'] ); |
|
| 3156 | - return $this->_createElement( 'RECURRENCE-ID', $attributes, $formatted ); |
|
| 3151 | + if (empty($this->recurrenceid)) return FALSE; |
|
| 3152 | + if (empty($this->recurrenceid['value'])) |
|
| 3153 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('RECURRENCE-ID') : FALSE; |
|
| 3154 | + $formatted = $this->_format_date_time($this->recurrenceid['value']); |
|
| 3155 | + $attributes = $this->_createParams($this->recurrenceid['params']); |
|
| 3156 | + return $this->_createElement('RECURRENCE-ID', $attributes, $formatted); |
|
| 3157 | 3157 | } |
| 3158 | 3158 | /** |
| 3159 | 3159 | * set calendar component property recurrence-id |
@@ -3169,16 +3169,16 @@ discard block |
||
| 3169 | 3169 | * @param array $params optional |
| 3170 | 3170 | * @return bool |
| 3171 | 3171 | */ |
| 3172 | - function setRecurrenceid( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE ) { |
|
| 3173 | - if( empty( $year )) { |
|
| 3174 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 3175 | - $this->recurrenceid = array( 'value' => null, 'params' => null ); |
|
| 3172 | + function setRecurrenceid($year, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $tz = FALSE, $params = FALSE) { |
|
| 3173 | + if (empty($year)) { |
|
| 3174 | + if ($this->getConfig('allowEmpty')) { |
|
| 3175 | + $this->recurrenceid = array('value' => null, 'params' => null); |
|
| 3176 | 3176 | return TRUE; |
| 3177 | 3177 | } |
| 3178 | 3178 | else |
| 3179 | 3179 | return FALSE; |
| 3180 | 3180 | } |
| 3181 | - $this->recurrenceid = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params ); |
|
| 3181 | + $this->recurrenceid = $this->_setDate($year, $month, $day, $hour, $min, $sec, $tz, $params); |
|
| 3182 | 3182 | return TRUE; |
| 3183 | 3183 | } |
| 3184 | 3184 | /*********************************************************************************/ |
@@ -3193,18 +3193,18 @@ discard block |
||
| 3193 | 3193 | * @return string |
| 3194 | 3194 | */ |
| 3195 | 3195 | function createRelatedTo() { |
| 3196 | - if( empty( $this->relatedto )) return FALSE; |
|
| 3196 | + if (empty($this->relatedto)) return FALSE; |
|
| 3197 | 3197 | $output = null; |
| 3198 | - foreach( $this->relatedto as $relation ) { |
|
| 3199 | - if( empty( $relation['value'] )) { |
|
| 3200 | - if( $this->getConfig( 'allowEmpty' )) $output.= $this->_createElement( 'RELATED-TO', $this->_createParams( $relation['params'] )); |
|
| 3198 | + foreach ($this->relatedto as $relation) { |
|
| 3199 | + if (empty($relation['value'])) { |
|
| 3200 | + if ($this->getConfig('allowEmpty')) $output .= $this->_createElement('RELATED-TO', $this->_createParams($relation['params'])); |
|
| 3201 | 3201 | continue; |
| 3202 | 3202 | } |
| 3203 | - $attributes = $this->_createParams( $relation['params'] ); |
|
| 3204 | - $content = ( 'xcal' != $this->format ) ? '<' : ''; |
|
| 3205 | - $content .= $this->_strrep( $relation['value'] ); |
|
| 3206 | - $content .= ( 'xcal' != $this->format ) ? '>' : ''; |
|
| 3207 | - $output .= $this->_createElement( 'RELATED-TO', $attributes, $content ); |
|
| 3203 | + $attributes = $this->_createParams($relation['params']); |
|
| 3204 | + $content = ('xcal' != $this->format) ? '<' : ''; |
|
| 3205 | + $content .= $this->_strrep($relation['value']); |
|
| 3206 | + $content .= ('xcal' != $this->format) ? '>' : ''; |
|
| 3207 | + $output .= $this->_createElement('RELATED-TO', $attributes, $content); |
|
| 3208 | 3208 | } |
| 3209 | 3209 | return $output; |
| 3210 | 3210 | } |
@@ -3218,12 +3218,12 @@ discard block |
||
| 3218 | 3218 | * @param index $index, optional |
| 3219 | 3219 | * @return bool |
| 3220 | 3220 | */ |
| 3221 | - function setRelatedTo( $value, $params=FALSE, $index=FALSE ) { |
|
| 3222 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3223 | - if(( '<' == substr( $value, 0, 1 )) && ( '>' == substr( $value, -1 ))) |
|
| 3224 | - $value = substr( $value, 1, ( strlen( $value ) - 2 )); |
|
| 3225 | - $this->_existRem( $params, 'RELTYPE', 'PARENT', TRUE ); // remove default |
|
| 3226 | - $this->_setMval( $this->relatedto, $value, $params, FALSE, $index ); |
|
| 3221 | + function setRelatedTo($value, $params = FALSE, $index = FALSE) { |
|
| 3222 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3223 | + if (('<' == substr($value, 0, 1)) && ('>' == substr($value, -1))) |
|
| 3224 | + $value = substr($value, 1, (strlen($value) - 2)); |
|
| 3225 | + $this->_existRem($params, 'RELTYPE', 'PARENT', TRUE); // remove default |
|
| 3226 | + $this->_setMval($this->relatedto, $value, $params, FALSE, $index); |
|
| 3227 | 3227 | return TRUE; |
| 3228 | 3228 | } |
| 3229 | 3229 | /*********************************************************************************/ |
@@ -3238,11 +3238,11 @@ discard block |
||
| 3238 | 3238 | * @return string |
| 3239 | 3239 | */ |
| 3240 | 3240 | function createRepeat() { |
| 3241 | - if( empty( $this->repeat )) return FALSE; |
|
| 3242 | - if( empty( $this->repeat['value'] )) |
|
| 3243 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'REPEAT' ) : FALSE; |
|
| 3244 | - $attributes = $this->_createParams( $this->repeat['params'] ); |
|
| 3245 | - return $this->_createElement( 'REPEAT', $attributes, $this->repeat['value'] ); |
|
| 3241 | + if (empty($this->repeat)) return FALSE; |
|
| 3242 | + if (empty($this->repeat['value'])) |
|
| 3243 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('REPEAT') : FALSE; |
|
| 3244 | + $attributes = $this->_createParams($this->repeat['params']); |
|
| 3245 | + return $this->_createElement('REPEAT', $attributes, $this->repeat['value']); |
|
| 3246 | 3246 | } |
| 3247 | 3247 | /** |
| 3248 | 3248 | * set calendar component property transp |
@@ -3253,9 +3253,9 @@ discard block |
||
| 3253 | 3253 | * @param array $params optional |
| 3254 | 3254 | * @return void |
| 3255 | 3255 | */ |
| 3256 | - function setRepeat( $value, $params=FALSE ) { |
|
| 3257 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3258 | - $this->repeat = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3256 | + function setRepeat($value, $params = FALSE) { |
|
| 3257 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3258 | + $this->repeat = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3259 | 3259 | return TRUE; |
| 3260 | 3260 | } |
| 3261 | 3261 | /*********************************************************************************/ |
@@ -3269,19 +3269,19 @@ discard block |
||
| 3269 | 3269 | * @return string |
| 3270 | 3270 | */ |
| 3271 | 3271 | function createRequestStatus() { |
| 3272 | - if( empty( $this->requeststatus )) return FALSE; |
|
| 3272 | + if (empty($this->requeststatus)) return FALSE; |
|
| 3273 | 3273 | $output = null; |
| 3274 | - foreach( $this->requeststatus as $rstat ) { |
|
| 3275 | - if( empty( $rstat['value']['statcode'] )) { |
|
| 3276 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'REQUEST-STATUS' ); |
|
| 3274 | + foreach ($this->requeststatus as $rstat) { |
|
| 3275 | + if (empty($rstat['value']['statcode'])) { |
|
| 3276 | + if ($this->getConfig('allowEmpty')) $output .= $this->_createElement('REQUEST-STATUS'); |
|
| 3277 | 3277 | continue; |
| 3278 | 3278 | } |
| 3279 | - $attributes = $this->_createParams( $rstat['params'], array( 'LANGUAGE' )); |
|
| 3280 | - $content = number_format( (float) $rstat['value']['statcode'], 2, '.', ''); |
|
| 3281 | - $content .= ';'.$this->_strrep( $rstat['value']['text'] ); |
|
| 3282 | - if( isset( $rstat['value']['extdata'] )) |
|
| 3283 | - $content .= ';'.$this->_strrep( $rstat['value']['extdata'] ); |
|
| 3284 | - $output .= $this->_createElement( 'REQUEST-STATUS', $attributes, $content ); |
|
| 3279 | + $attributes = $this->_createParams($rstat['params'], array('LANGUAGE')); |
|
| 3280 | + $content = number_format((float) $rstat['value']['statcode'], 2, '.', ''); |
|
| 3281 | + $content .= ';'.$this->_strrep($rstat['value']['text']); |
|
| 3282 | + if (isset($rstat['value']['extdata'])) |
|
| 3283 | + $content .= ';'.$this->_strrep($rstat['value']['extdata']); |
|
| 3284 | + $output .= $this->_createElement('REQUEST-STATUS', $attributes, $content); |
|
| 3285 | 3285 | } |
| 3286 | 3286 | return $output; |
| 3287 | 3287 | } |
@@ -3297,12 +3297,12 @@ discard block |
||
| 3297 | 3297 | * @param integer $index, optional |
| 3298 | 3298 | * @return bool |
| 3299 | 3299 | */ |
| 3300 | - function setRequestStatus( $statcode, $text, $extdata=FALSE, $params=FALSE, $index=FALSE ) { |
|
| 3301 | - if( empty( $statcode ) || empty( $text )) if( $this->getConfig( 'allowEmpty' )) $statcode = $text = null; else return FALSE; |
|
| 3302 | - $input = array( 'statcode' => $statcode, 'text' => $text ); |
|
| 3303 | - if( $extdata ) |
|
| 3300 | + function setRequestStatus($statcode, $text, $extdata = FALSE, $params = FALSE, $index = FALSE) { |
|
| 3301 | + if (empty($statcode) || empty($text)) if ($this->getConfig('allowEmpty')) $statcode = $text = null; else return FALSE; |
|
| 3302 | + $input = array('statcode' => $statcode, 'text' => $text); |
|
| 3303 | + if ($extdata) |
|
| 3304 | 3304 | $input['extdata'] = $extdata; |
| 3305 | - $this->_setMval( $this->requeststatus, $input, $params, FALSE, $index ); |
|
| 3305 | + $this->_setMval($this->requeststatus, $input, $params, FALSE, $index); |
|
| 3306 | 3306 | return TRUE; |
| 3307 | 3307 | } |
| 3308 | 3308 | /*********************************************************************************/ |
@@ -3317,22 +3317,22 @@ discard block |
||
| 3317 | 3317 | * @return string |
| 3318 | 3318 | */ |
| 3319 | 3319 | function createResources() { |
| 3320 | - if( empty( $this->resources )) return FALSE; |
|
| 3320 | + if (empty($this->resources)) return FALSE; |
|
| 3321 | 3321 | $output = null; |
| 3322 | - foreach( $this->resources as $resource ) { |
|
| 3323 | - if( empty( $resource['value'] )) { |
|
| 3324 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'RESOURCES' ); |
|
| 3322 | + foreach ($this->resources as $resource) { |
|
| 3323 | + if (empty($resource['value'])) { |
|
| 3324 | + if ($this->getConfig('allowEmpty')) $output .= $this->_createElement('RESOURCES'); |
|
| 3325 | 3325 | continue; |
| 3326 | 3326 | } |
| 3327 | - $attributes = $this->_createParams( $resource['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 3328 | - if( is_array( $resource['value'] )) { |
|
| 3329 | - foreach( $resource['value'] as $rix => $resourcePart ) |
|
| 3330 | - $resource['value'][$rix] = $this->_strrep( $resourcePart ); |
|
| 3331 | - $content = implode( ',', $resource['value'] ); |
|
| 3327 | + $attributes = $this->_createParams($resource['params'], array('ALTREP', 'LANGUAGE')); |
|
| 3328 | + if (is_array($resource['value'])) { |
|
| 3329 | + foreach ($resource['value'] as $rix => $resourcePart) |
|
| 3330 | + $resource['value'][$rix] = $this->_strrep($resourcePart); |
|
| 3331 | + $content = implode(',', $resource['value']); |
|
| 3332 | 3332 | } |
| 3333 | 3333 | else |
| 3334 | - $content = $this->_strrep( $resource['value'] ); |
|
| 3335 | - $output .= $this->_createElement( 'RESOURCES', $attributes, $content ); |
|
| 3334 | + $content = $this->_strrep($resource['value']); |
|
| 3335 | + $output .= $this->_createElement('RESOURCES', $attributes, $content); |
|
| 3336 | 3336 | } |
| 3337 | 3337 | return $output; |
| 3338 | 3338 | } |
@@ -3346,9 +3346,9 @@ discard block |
||
| 3346 | 3346 | * @param integer $index, optional |
| 3347 | 3347 | * @return bool |
| 3348 | 3348 | */ |
| 3349 | - function setResources( $value, $params=FALSE, $index=FALSE ) { |
|
| 3350 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3351 | - $this->_setMval( $this->resources, $value, $params, FALSE, $index ); |
|
| 3349 | + function setResources($value, $params = FALSE, $index = FALSE) { |
|
| 3350 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3351 | + $this->_setMval($this->resources, $value, $params, FALSE, $index); |
|
| 3352 | 3352 | return TRUE; |
| 3353 | 3353 | } |
| 3354 | 3354 | /*********************************************************************************/ |
@@ -3363,8 +3363,8 @@ discard block |
||
| 3363 | 3363 | * @return string |
| 3364 | 3364 | */ |
| 3365 | 3365 | function createRrule() { |
| 3366 | - if( empty( $this->rrule )) return FALSE; |
|
| 3367 | - return $this->_format_recur( 'RRULE', $this->rrule ); |
|
| 3366 | + if (empty($this->rrule)) return FALSE; |
|
| 3367 | + return $this->_format_recur('RRULE', $this->rrule); |
|
| 3368 | 3368 | } |
| 3369 | 3369 | /** |
| 3370 | 3370 | * set calendar component property rrule |
@@ -3376,9 +3376,9 @@ discard block |
||
| 3376 | 3376 | * @param integer $index, optional |
| 3377 | 3377 | * @return void |
| 3378 | 3378 | */ |
| 3379 | - function setRrule( $rruleset, $params=FALSE, $index=FALSE ) { |
|
| 3380 | - if( empty( $rruleset )) if( $this->getConfig( 'allowEmpty' )) $rruleset = null; else return FALSE; |
|
| 3381 | - $this->_setMval( $this->rrule, $this->_setRexrule( $rruleset ), $params, FALSE, $index ); |
|
| 3379 | + function setRrule($rruleset, $params = FALSE, $index = FALSE) { |
|
| 3380 | + if (empty($rruleset)) if ($this->getConfig('allowEmpty')) $rruleset = null; else return FALSE; |
|
| 3381 | + $this->_setMval($this->rrule, $this->_setRexrule($rruleset), $params, FALSE, $index); |
|
| 3382 | 3382 | return TRUE; |
| 3383 | 3383 | } |
| 3384 | 3384 | /*********************************************************************************/ |
@@ -3392,11 +3392,11 @@ discard block |
||
| 3392 | 3392 | * @return string |
| 3393 | 3393 | */ |
| 3394 | 3394 | function createSequence() { |
| 3395 | - if( empty( $this->sequence )) return FALSE; |
|
| 3396 | - if( empty( $this->sequence['value'] )) |
|
| 3397 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SEQUENCE' ) : FALSE; |
|
| 3398 | - $attributes = $this->_createParams( $this->sequence['params'] ); |
|
| 3399 | - return $this->_createElement( 'SEQUENCE', $attributes, $this->sequence['value'] ); |
|
| 3395 | + if (empty($this->sequence)) return FALSE; |
|
| 3396 | + if (empty($this->sequence['value'])) |
|
| 3397 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('SEQUENCE') : FALSE; |
|
| 3398 | + $attributes = $this->_createParams($this->sequence['params']); |
|
| 3399 | + return $this->_createElement('SEQUENCE', $attributes, $this->sequence['value']); |
|
| 3400 | 3400 | } |
| 3401 | 3401 | /** |
| 3402 | 3402 | * set calendar component property sequence |
@@ -3406,10 +3406,10 @@ discard block |
||
| 3406 | 3406 | * @param array $params optional |
| 3407 | 3407 | * @return bool |
| 3408 | 3408 | */ |
| 3409 | - function setSequence( $value=FALSE, $params=FALSE ) { |
|
| 3410 | - if( empty( $value )) |
|
| 3411 | - $value = ( isset( $this->sequence['value'] ) && ( 0 < $this->sequence['value'] )) ? $this->sequence['value'] + 1 : 1; |
|
| 3412 | - $this->sequence = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3409 | + function setSequence($value = FALSE, $params = FALSE) { |
|
| 3410 | + if (empty($value)) |
|
| 3411 | + $value = (isset($this->sequence['value']) && (0 < $this->sequence['value'])) ? $this->sequence['value'] + 1 : 1; |
|
| 3412 | + $this->sequence = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3413 | 3413 | return TRUE; |
| 3414 | 3414 | } |
| 3415 | 3415 | /*********************************************************************************/ |
@@ -3424,11 +3424,11 @@ discard block |
||
| 3424 | 3424 | * @return string |
| 3425 | 3425 | */ |
| 3426 | 3426 | function createStatus() { |
| 3427 | - if( empty( $this->status )) return FALSE; |
|
| 3428 | - if( empty( $this->status['value'] )) |
|
| 3429 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'STATUS' ) : FALSE; |
|
| 3430 | - $attributes = $this->_createParams( $this->status['params'] ); |
|
| 3431 | - return $this->_createElement( 'STATUS', $attributes, $this->status['value'] ); |
|
| 3427 | + if (empty($this->status)) return FALSE; |
|
| 3428 | + if (empty($this->status['value'])) |
|
| 3429 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('STATUS') : FALSE; |
|
| 3430 | + $attributes = $this->_createParams($this->status['params']); |
|
| 3431 | + return $this->_createElement('STATUS', $attributes, $this->status['value']); |
|
| 3432 | 3432 | } |
| 3433 | 3433 | /** |
| 3434 | 3434 | * set calendar component property status |
@@ -3439,9 +3439,9 @@ discard block |
||
| 3439 | 3439 | * @param array $params optional |
| 3440 | 3440 | * @return bool |
| 3441 | 3441 | */ |
| 3442 | - function setStatus( $value, $params=FALSE ) { |
|
| 3443 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3444 | - $this->status = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3442 | + function setStatus($value, $params = FALSE) { |
|
| 3443 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3444 | + $this->status = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3445 | 3445 | return TRUE; |
| 3446 | 3446 | } |
| 3447 | 3447 | /*********************************************************************************/ |
@@ -3456,12 +3456,12 @@ discard block |
||
| 3456 | 3456 | * @return string |
| 3457 | 3457 | */ |
| 3458 | 3458 | function createSummary() { |
| 3459 | - if( empty( $this->summary )) return FALSE; |
|
| 3460 | - if( empty( $this->summary['value'] )) |
|
| 3461 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SUMMARY' ) : FALSE; |
|
| 3462 | - $attributes = $this->_createParams( $this->summary['params'], array( 'ALTREP', 'LANGUAGE' )); |
|
| 3463 | - $content = $this->_strrep( $this->summary['value'] ); |
|
| 3464 | - return $this->_createElement( 'SUMMARY', $attributes, $content ); |
|
| 3459 | + if (empty($this->summary)) return FALSE; |
|
| 3460 | + if (empty($this->summary['value'])) |
|
| 3461 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('SUMMARY') : FALSE; |
|
| 3462 | + $attributes = $this->_createParams($this->summary['params'], array('ALTREP', 'LANGUAGE')); |
|
| 3463 | + $content = $this->_strrep($this->summary['value']); |
|
| 3464 | + return $this->_createElement('SUMMARY', $attributes, $content); |
|
| 3465 | 3465 | } |
| 3466 | 3466 | /** |
| 3467 | 3467 | * set calendar component property summary |
@@ -3472,9 +3472,9 @@ discard block |
||
| 3472 | 3472 | * @param string $params optional |
| 3473 | 3473 | * @return bool |
| 3474 | 3474 | */ |
| 3475 | - function setSummary( $value, $params=FALSE ) { |
|
| 3476 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3477 | - $this->summary = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3475 | + function setSummary($value, $params = FALSE) { |
|
| 3476 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3477 | + $this->summary = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3478 | 3478 | return TRUE; |
| 3479 | 3479 | } |
| 3480 | 3480 | /*********************************************************************************/ |
@@ -3489,11 +3489,11 @@ discard block |
||
| 3489 | 3489 | * @return string |
| 3490 | 3490 | */ |
| 3491 | 3491 | function createTransp() { |
| 3492 | - if( empty( $this->transp )) return FALSE; |
|
| 3493 | - if( empty( $this->transp['value'] )) |
|
| 3494 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRANSP' ) : FALSE; |
|
| 3495 | - $attributes = $this->_createParams( $this->transp['params'] ); |
|
| 3496 | - return $this->_createElement( 'TRANSP', $attributes, $this->transp['value'] ); |
|
| 3492 | + if (empty($this->transp)) return FALSE; |
|
| 3493 | + if (empty($this->transp['value'])) |
|
| 3494 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('TRANSP') : FALSE; |
|
| 3495 | + $attributes = $this->_createParams($this->transp['params']); |
|
| 3496 | + return $this->_createElement('TRANSP', $attributes, $this->transp['value']); |
|
| 3497 | 3497 | } |
| 3498 | 3498 | /** |
| 3499 | 3499 | * set calendar component property transp |
@@ -3504,9 +3504,9 @@ discard block |
||
| 3504 | 3504 | * @param string $params optional |
| 3505 | 3505 | * @return bool |
| 3506 | 3506 | */ |
| 3507 | - function setTransp( $value, $params=FALSE ) { |
|
| 3508 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3509 | - $this->transp = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3507 | + function setTransp($value, $params = FALSE) { |
|
| 3508 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3509 | + $this->transp = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3510 | 3510 | return TRUE; |
| 3511 | 3511 | } |
| 3512 | 3512 | /*********************************************************************************/ |
@@ -3521,23 +3521,23 @@ discard block |
||
| 3521 | 3521 | * @return string |
| 3522 | 3522 | */ |
| 3523 | 3523 | function createTrigger() { |
| 3524 | - if( empty( $this->trigger )) return FALSE; |
|
| 3525 | - if( empty( $this->trigger['value'] )) |
|
| 3526 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRIGGER' ) : FALSE; |
|
| 3524 | + if (empty($this->trigger)) return FALSE; |
|
| 3525 | + if (empty($this->trigger['value'])) |
|
| 3526 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('TRIGGER') : FALSE; |
|
| 3527 | 3527 | $content = $attributes = null; |
| 3528 | - if( isset( $this->trigger['value']['year'] ) && |
|
| 3529 | - isset( $this->trigger['value']['month'] ) && |
|
| 3530 | - isset( $this->trigger['value']['day'] )) |
|
| 3531 | - $content .= $this->_format_date_time( $this->trigger['value'] ); |
|
| 3528 | + if (isset($this->trigger['value']['year']) && |
|
| 3529 | + isset($this->trigger['value']['month']) && |
|
| 3530 | + isset($this->trigger['value']['day'])) |
|
| 3531 | + $content .= $this->_format_date_time($this->trigger['value']); |
|
| 3532 | 3532 | else { |
| 3533 | - if( TRUE !== $this->trigger['value']['relatedStart'] ) |
|
| 3533 | + if (TRUE !== $this->trigger['value']['relatedStart']) |
|
| 3534 | 3534 | $attributes .= $this->intAttrDelimiter.'RELATED=END'; |
| 3535 | - if( $this->trigger['value']['before'] ) |
|
| 3535 | + if ($this->trigger['value']['before']) |
|
| 3536 | 3536 | $content .= '-'; |
| 3537 | - $content .= $this->_format_duration( $this->trigger['value'] ); |
|
| 3537 | + $content .= $this->_format_duration($this->trigger['value']); |
|
| 3538 | 3538 | } |
| 3539 | - $attributes .= $this->_createParams( $this->trigger['params'] ); |
|
| 3540 | - return $this->_createElement( 'TRIGGER', $attributes, $content ); |
|
| 3539 | + $attributes .= $this->_createParams($this->trigger['params']); |
|
| 3540 | + return $this->_createElement('TRIGGER', $attributes, $content); |
|
| 3541 | 3541 | } |
| 3542 | 3542 | /** |
| 3543 | 3543 | * set calendar component property trigger |
@@ -3556,86 +3556,86 @@ discard block |
||
| 3556 | 3556 | * @param array $params optional |
| 3557 | 3557 | * @return bool |
| 3558 | 3558 | */ |
| 3559 | - function setTrigger( $year, $month=null, $day=null, $week=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $relatedStart=TRUE, $before=TRUE, $params=FALSE ) { |
|
| 3560 | - if( empty( $year ) && empty( $month ) && empty( $day ) && empty( $week ) && empty( $hour ) && empty( $min ) && empty( $sec )) |
|
| 3561 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 3562 | - $this->trigger = array( 'value' => null, 'params' => $this->_setParams( $params ) ); |
|
| 3559 | + function setTrigger($year, $month = null, $day = null, $week = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $relatedStart = TRUE, $before = TRUE, $params = FALSE) { |
|
| 3560 | + if (empty($year) && empty($month) && empty($day) && empty($week) && empty($hour) && empty($min) && empty($sec)) |
|
| 3561 | + if ($this->getConfig('allowEmpty')) { |
|
| 3562 | + $this->trigger = array('value' => null, 'params' => $this->_setParams($params)); |
|
| 3563 | 3563 | return TRUE; |
| 3564 | 3564 | } |
| 3565 | 3565 | else |
| 3566 | 3566 | return FALSE; |
| 3567 | - if( $this->_isArrayTimestampDate( $year )) { // timestamp |
|
| 3568 | - $params = $this->_setParams( $month ); |
|
| 3569 | - $date = $this->_timestamp2date( $year, 7 ); |
|
| 3570 | - foreach( $date as $k => $v ) |
|
| 3567 | + if ($this->_isArrayTimestampDate($year)) { // timestamp |
|
| 3568 | + $params = $this->_setParams($month); |
|
| 3569 | + $date = $this->_timestamp2date($year, 7); |
|
| 3570 | + foreach ($date as $k => $v) |
|
| 3571 | 3571 | $$k = $v; |
| 3572 | 3572 | } |
| 3573 | - elseif( is_array( $year ) && ( is_array( $month ) || empty( $month ))) { |
|
| 3574 | - $params = $this->_setParams( $month ); |
|
| 3575 | - if(!(array_key_exists( 'year', $year ) && // exclude date-time |
|
| 3576 | - array_key_exists( 'month', $year ) && |
|
| 3577 | - array_key_exists( 'day', $year ))) { // so this must be a duration |
|
| 3578 | - if( isset( $params['RELATED'] ) && ( 'END' == $params['RELATED'] )) |
|
| 3573 | + elseif (is_array($year) && (is_array($month) || empty($month))) { |
|
| 3574 | + $params = $this->_setParams($month); |
|
| 3575 | + if (!(array_key_exists('year', $year) && // exclude date-time |
|
| 3576 | + array_key_exists('month', $year) && |
|
| 3577 | + array_key_exists('day', $year))) { // so this must be a duration |
|
| 3578 | + if (isset($params['RELATED']) && ('END' == $params['RELATED'])) |
|
| 3579 | 3579 | $relatedStart = FALSE; |
| 3580 | 3580 | else |
| 3581 | - $relatedStart = ( array_key_exists( 'relatedStart', $year ) && ( TRUE !== $year['relatedStart'] )) ? FALSE : TRUE; |
|
| 3582 | - $before = ( array_key_exists( 'before', $year ) && ( TRUE !== $year['before'] )) ? FALSE : TRUE; |
|
| 3581 | + $relatedStart = (array_key_exists('relatedStart', $year) && (TRUE !== $year['relatedStart'])) ? FALSE : TRUE; |
|
| 3582 | + $before = (array_key_exists('before', $year) && (TRUE !== $year['before'])) ? FALSE : TRUE; |
|
| 3583 | 3583 | } |
| 3584 | - $SSYY = ( array_key_exists( 'year', $year )) ? $year['year'] : null; |
|
| 3585 | - $month = ( array_key_exists( 'month', $year )) ? $year['month'] : null; |
|
| 3586 | - $day = ( array_key_exists( 'day', $year )) ? $year['day'] : null; |
|
| 3587 | - $week = ( array_key_exists( 'week', $year )) ? $year['week'] : null; |
|
| 3588 | - $hour = ( array_key_exists( 'hour', $year )) ? $year['hour'] : 0; //null; |
|
| 3589 | - $min = ( array_key_exists( 'min', $year )) ? $year['min'] : 0; //null; |
|
| 3590 | - $sec = ( array_key_exists( 'sec', $year )) ? $year['sec'] : 0; //null; |
|
| 3584 | + $SSYY = (array_key_exists('year', $year)) ? $year['year'] : null; |
|
| 3585 | + $month = (array_key_exists('month', $year)) ? $year['month'] : null; |
|
| 3586 | + $day = (array_key_exists('day', $year)) ? $year['day'] : null; |
|
| 3587 | + $week = (array_key_exists('week', $year)) ? $year['week'] : null; |
|
| 3588 | + $hour = (array_key_exists('hour', $year)) ? $year['hour'] : 0; //null; |
|
| 3589 | + $min = (array_key_exists('min', $year)) ? $year['min'] : 0; //null; |
|
| 3590 | + $sec = (array_key_exists('sec', $year)) ? $year['sec'] : 0; //null; |
|
| 3591 | 3591 | $year = $SSYY; |
| 3592 | 3592 | } |
| 3593 | - elseif(is_string( $year ) && ( is_array( $month ) || empty( $month ))) { // duration or date in a string |
|
| 3594 | - $params = $this->_setParams( $month ); |
|
| 3595 | - if( in_array( $year{0}, array( 'P', '+', '-' ))) { // duration |
|
| 3596 | - $relatedStart = ( isset( $params['RELATED'] ) && ( 'END' == $params['RELATED'] )) ? FALSE : TRUE; |
|
| 3597 | - $before = ( '-' == $year{0} ) ? TRUE : FALSE; |
|
| 3598 | - if( 'P' != $year{0} ) |
|
| 3599 | - $year = substr( $year, 1 ); |
|
| 3600 | - $date = $this->_duration_string( $year); |
|
| 3593 | + elseif (is_string($year) && (is_array($month) || empty($month))) { // duration or date in a string |
|
| 3594 | + $params = $this->_setParams($month); |
|
| 3595 | + if (in_array($year{0}, array('P', '+', '-'))) { // duration |
|
| 3596 | + $relatedStart = (isset($params['RELATED']) && ('END' == $params['RELATED'])) ? FALSE : TRUE; |
|
| 3597 | + $before = ('-' == $year{0} ) ? TRUE : FALSE; |
|
| 3598 | + if ('P' != $year{0} ) |
|
| 3599 | + $year = substr($year, 1); |
|
| 3600 | + $date = $this->_duration_string($year); |
|
| 3601 | 3601 | } |
| 3602 | 3602 | else // date |
| 3603 | - $date = $this->_date_time_string( $year, 7 ); |
|
| 3604 | - unset( $year, $month, $day ); |
|
| 3605 | - foreach( $date as $k => $v ) |
|
| 3603 | + $date = $this->_date_time_string($year, 7); |
|
| 3604 | + unset($year, $month, $day); |
|
| 3605 | + foreach ($date as $k => $v) |
|
| 3606 | 3606 | $$k = $v; |
| 3607 | 3607 | } |
| 3608 | 3608 | else // single values in function input parameters |
| 3609 | - $params = $this->_setParams( $params ); |
|
| 3610 | - if( !empty( $year ) && !empty( $month ) && !empty( $day )) { // date |
|
| 3609 | + $params = $this->_setParams($params); |
|
| 3610 | + if (!empty($year) && !empty($month) && !empty($day)) { // date |
|
| 3611 | 3611 | $params['VALUE'] = 'DATE-TIME'; |
| 3612 | - $hour = ( $hour ) ? $hour : 0; |
|
| 3613 | - $min = ( $min ) ? $min : 0; |
|
| 3614 | - $sec = ( $sec ) ? $sec : 0; |
|
| 3615 | - $this->trigger = array( 'params' => $params ); |
|
| 3616 | - $this->trigger['value'] = array( 'year' => $year |
|
| 3612 | + $hour = ($hour) ? $hour : 0; |
|
| 3613 | + $min = ($min) ? $min : 0; |
|
| 3614 | + $sec = ($sec) ? $sec : 0; |
|
| 3615 | + $this->trigger = array('params' => $params); |
|
| 3616 | + $this->trigger['value'] = array('year' => $year |
|
| 3617 | 3617 | , 'month' => $month |
| 3618 | 3618 | , 'day' => $day |
| 3619 | 3619 | , 'hour' => $hour |
| 3620 | 3620 | , 'min' => $min |
| 3621 | 3621 | , 'sec' => $sec |
| 3622 | - , 'tz' => 'Z' ); |
|
| 3622 | + , 'tz' => 'Z'); |
|
| 3623 | 3623 | return TRUE; |
| 3624 | 3624 | } |
| 3625 | - elseif(( empty( $year ) && empty( $month )) && // duration |
|
| 3626 | - (!empty( $week ) || !empty( $day ) || !empty( $hour ) || !empty( $min ) || !empty( $sec ))) { |
|
| 3627 | - unset( $params['RELATED'] ); // set at output creation (END only) |
|
| 3628 | - unset( $params['VALUE'] ); // 'DURATION' default |
|
| 3629 | - $this->trigger = array( 'params' => $params ); |
|
| 3630 | - $relatedStart = ( FALSE !== $relatedStart ) ? TRUE : FALSE; |
|
| 3631 | - $before = ( FALSE !== $before ) ? TRUE : FALSE; |
|
| 3632 | - $this->trigger['value'] = array( 'relatedStart' => $relatedStart |
|
| 3633 | - , 'before' => $before ); |
|
| 3634 | - if( !empty( $week )) $this->trigger['value']['week'] = $week; |
|
| 3635 | - if( !empty( $day )) $this->trigger['value']['day'] = $day; |
|
| 3636 | - if( !empty( $hour )) $this->trigger['value']['hour'] = $hour; |
|
| 3637 | - if( !empty( $min )) $this->trigger['value']['min'] = $min; |
|
| 3638 | - if( !empty( $sec )) $this->trigger['value']['sec'] = $sec; |
|
| 3625 | + elseif ((empty($year) && empty($month)) && // duration |
|
| 3626 | + (!empty($week) || !empty($day) || !empty($hour) || !empty($min) || !empty($sec))) { |
|
| 3627 | + unset($params['RELATED']); // set at output creation (END only) |
|
| 3628 | + unset($params['VALUE']); // 'DURATION' default |
|
| 3629 | + $this->trigger = array('params' => $params); |
|
| 3630 | + $relatedStart = (FALSE !== $relatedStart) ? TRUE : FALSE; |
|
| 3631 | + $before = (FALSE !== $before) ? TRUE : FALSE; |
|
| 3632 | + $this->trigger['value'] = array('relatedStart' => $relatedStart |
|
| 3633 | + , 'before' => $before); |
|
| 3634 | + if (!empty($week)) $this->trigger['value']['week'] = $week; |
|
| 3635 | + if (!empty($day)) $this->trigger['value']['day'] = $day; |
|
| 3636 | + if (!empty($hour)) $this->trigger['value']['hour'] = $hour; |
|
| 3637 | + if (!empty($min)) $this->trigger['value']['min'] = $min; |
|
| 3638 | + if (!empty($sec)) $this->trigger['value']['sec'] = $sec; |
|
| 3639 | 3639 | return TRUE; |
| 3640 | 3640 | } |
| 3641 | 3641 | return FALSE; |
@@ -3652,11 +3652,11 @@ discard block |
||
| 3652 | 3652 | * @return string |
| 3653 | 3653 | */ |
| 3654 | 3654 | function createTzid() { |
| 3655 | - if( empty( $this->tzid )) return FALSE; |
|
| 3656 | - if( empty( $this->tzid['value'] )) |
|
| 3657 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZID' ) : FALSE; |
|
| 3658 | - $attributes = $this->_createParams( $this->tzid['params'] ); |
|
| 3659 | - return $this->_createElement( 'TZID', $attributes, $this->_strrep( $this->tzid['value'] )); |
|
| 3655 | + if (empty($this->tzid)) return FALSE; |
|
| 3656 | + if (empty($this->tzid['value'])) |
|
| 3657 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('TZID') : FALSE; |
|
| 3658 | + $attributes = $this->_createParams($this->tzid['params']); |
|
| 3659 | + return $this->_createElement('TZID', $attributes, $this->_strrep($this->tzid['value'])); |
|
| 3660 | 3660 | } |
| 3661 | 3661 | /** |
| 3662 | 3662 | * set calendar component property tzid |
@@ -3667,9 +3667,9 @@ discard block |
||
| 3667 | 3667 | * @param array $params optional |
| 3668 | 3668 | * @return bool |
| 3669 | 3669 | */ |
| 3670 | - function setTzid( $value, $params=FALSE ) { |
|
| 3671 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3672 | - $this->tzid = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3670 | + function setTzid($value, $params = FALSE) { |
|
| 3671 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3672 | + $this->tzid = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3673 | 3673 | return TRUE; |
| 3674 | 3674 | } |
| 3675 | 3675 | /*********************************************************************************/ |
@@ -3685,14 +3685,14 @@ discard block |
||
| 3685 | 3685 | * @return string |
| 3686 | 3686 | */ |
| 3687 | 3687 | function createTzname() { |
| 3688 | - if( empty( $this->tzname )) return FALSE; |
|
| 3688 | + if (empty($this->tzname)) return FALSE; |
|
| 3689 | 3689 | $output = null; |
| 3690 | - foreach( $this->tzname as $theName ) { |
|
| 3691 | - if( !empty( $theName['value'] )) { |
|
| 3692 | - $attributes = $this->_createParams( $theName['params'], array( 'LANGUAGE' )); |
|
| 3693 | - $output .= $this->_createElement( 'TZNAME', $attributes, $this->_strrep( $theName['value'] )); |
|
| 3690 | + foreach ($this->tzname as $theName) { |
|
| 3691 | + if (!empty($theName['value'])) { |
|
| 3692 | + $attributes = $this->_createParams($theName['params'], array('LANGUAGE')); |
|
| 3693 | + $output .= $this->_createElement('TZNAME', $attributes, $this->_strrep($theName['value'])); |
|
| 3694 | 3694 | } |
| 3695 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'TZNAME' ); |
|
| 3695 | + elseif ($this->getConfig('allowEmpty')) $output .= $this->_createElement('TZNAME'); |
|
| 3696 | 3696 | } |
| 3697 | 3697 | return $output; |
| 3698 | 3698 | } |
@@ -3706,9 +3706,9 @@ discard block |
||
| 3706 | 3706 | * @param integer $index, optional |
| 3707 | 3707 | * @return bool |
| 3708 | 3708 | */ |
| 3709 | - function setTzname( $value, $params=FALSE, $index=FALSE ) { |
|
| 3710 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3711 | - $this->_setMval( $this->tzname, $value, $params, FALSE, $index ); |
|
| 3709 | + function setTzname($value, $params = FALSE, $index = FALSE) { |
|
| 3710 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3711 | + $this->_setMval($this->tzname, $value, $params, FALSE, $index); |
|
| 3712 | 3712 | return TRUE; |
| 3713 | 3713 | } |
| 3714 | 3714 | /*********************************************************************************/ |
@@ -3723,11 +3723,11 @@ discard block |
||
| 3723 | 3723 | * @return string |
| 3724 | 3724 | */ |
| 3725 | 3725 | function createTzoffsetfrom() { |
| 3726 | - if( empty( $this->tzoffsetfrom )) return FALSE; |
|
| 3727 | - if( empty( $this->tzoffsetfrom['value'] )) |
|
| 3728 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETFROM' ) : FALSE; |
|
| 3729 | - $attributes = $this->_createParams( $this->tzoffsetfrom['params'] ); |
|
| 3730 | - return $this->_createElement( 'TZOFFSETFROM', $attributes, $this->tzoffsetfrom['value'] ); |
|
| 3726 | + if (empty($this->tzoffsetfrom)) return FALSE; |
|
| 3727 | + if (empty($this->tzoffsetfrom['value'])) |
|
| 3728 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('TZOFFSETFROM') : FALSE; |
|
| 3729 | + $attributes = $this->_createParams($this->tzoffsetfrom['params']); |
|
| 3730 | + return $this->_createElement('TZOFFSETFROM', $attributes, $this->tzoffsetfrom['value']); |
|
| 3731 | 3731 | } |
| 3732 | 3732 | /** |
| 3733 | 3733 | * set calendar component property tzoffsetfrom |
@@ -3738,9 +3738,9 @@ discard block |
||
| 3738 | 3738 | * @param string $params optional |
| 3739 | 3739 | * @return bool |
| 3740 | 3740 | */ |
| 3741 | - function setTzoffsetfrom( $value, $params=FALSE ) { |
|
| 3742 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3743 | - $this->tzoffsetfrom = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3741 | + function setTzoffsetfrom($value, $params = FALSE) { |
|
| 3742 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3743 | + $this->tzoffsetfrom = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3744 | 3744 | return TRUE; |
| 3745 | 3745 | } |
| 3746 | 3746 | /*********************************************************************************/ |
@@ -3755,11 +3755,11 @@ discard block |
||
| 3755 | 3755 | * @return string |
| 3756 | 3756 | */ |
| 3757 | 3757 | function createTzoffsetto() { |
| 3758 | - if( empty( $this->tzoffsetto )) return FALSE; |
|
| 3759 | - if( empty( $this->tzoffsetto['value'] )) |
|
| 3760 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETTO' ) : FALSE; |
|
| 3761 | - $attributes = $this->_createParams( $this->tzoffsetto['params'] ); |
|
| 3762 | - return $this->_createElement( 'TZOFFSETTO', $attributes, $this->tzoffsetto['value'] ); |
|
| 3758 | + if (empty($this->tzoffsetto)) return FALSE; |
|
| 3759 | + if (empty($this->tzoffsetto['value'])) |
|
| 3760 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('TZOFFSETTO') : FALSE; |
|
| 3761 | + $attributes = $this->_createParams($this->tzoffsetto['params']); |
|
| 3762 | + return $this->_createElement('TZOFFSETTO', $attributes, $this->tzoffsetto['value']); |
|
| 3763 | 3763 | } |
| 3764 | 3764 | /** |
| 3765 | 3765 | * set calendar component property tzoffsetto |
@@ -3770,9 +3770,9 @@ discard block |
||
| 3770 | 3770 | * @param string $params optional |
| 3771 | 3771 | * @return bool |
| 3772 | 3772 | */ |
| 3773 | - function setTzoffsetto( $value, $params=FALSE ) { |
|
| 3774 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3775 | - $this->tzoffsetto = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3773 | + function setTzoffsetto($value, $params = FALSE) { |
|
| 3774 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3775 | + $this->tzoffsetto = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3776 | 3776 | return TRUE; |
| 3777 | 3777 | } |
| 3778 | 3778 | /*********************************************************************************/ |
@@ -3787,11 +3787,11 @@ discard block |
||
| 3787 | 3787 | * @return string |
| 3788 | 3788 | */ |
| 3789 | 3789 | function createTzurl() { |
| 3790 | - if( empty( $this->tzurl )) return FALSE; |
|
| 3791 | - if( empty( $this->tzurl['value'] )) |
|
| 3792 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZURL' ) : FALSE; |
|
| 3793 | - $attributes = $this->_createParams( $this->tzurl['params'] ); |
|
| 3794 | - return $this->_createElement( 'TZURL', $attributes, $this->tzurl['value'] ); |
|
| 3790 | + if (empty($this->tzurl)) return FALSE; |
|
| 3791 | + if (empty($this->tzurl['value'])) |
|
| 3792 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('TZURL') : FALSE; |
|
| 3793 | + $attributes = $this->_createParams($this->tzurl['params']); |
|
| 3794 | + return $this->_createElement('TZURL', $attributes, $this->tzurl['value']); |
|
| 3795 | 3795 | } |
| 3796 | 3796 | /** |
| 3797 | 3797 | * set calendar component property tzurl |
@@ -3802,9 +3802,9 @@ discard block |
||
| 3802 | 3802 | * @param string $params optional |
| 3803 | 3803 | * @return boll |
| 3804 | 3804 | */ |
| 3805 | - function setTzurl( $value, $params=FALSE ) { |
|
| 3806 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3807 | - $this->tzurl = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3805 | + function setTzurl($value, $params = FALSE) { |
|
| 3806 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3807 | + $this->tzurl = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3808 | 3808 | return TRUE; |
| 3809 | 3809 | } |
| 3810 | 3810 | /*********************************************************************************/ |
@@ -3819,10 +3819,10 @@ discard block |
||
| 3819 | 3819 | * @return string |
| 3820 | 3820 | */ |
| 3821 | 3821 | function createUid() { |
| 3822 | - if( 0 >= count( $this->uid )) |
|
| 3822 | + if (0 >= count($this->uid)) |
|
| 3823 | 3823 | $this->_makeuid(); |
| 3824 | - $attributes = $this->_createParams( $this->uid['params'] ); |
|
| 3825 | - return $this->_createElement( 'UID', $attributes, $this->uid['value'] ); |
|
| 3824 | + $attributes = $this->_createParams($this->uid['params']); |
|
| 3825 | + return $this->_createElement('UID', $attributes, $this->uid['value']); |
|
| 3826 | 3826 | } |
| 3827 | 3827 | /** |
| 3828 | 3828 | * create an unique id for this calendar component object instance |
@@ -3836,13 +3836,13 @@ discard block |
||
| 3836 | 3836 | $unique = substr(microtime(), 2, 4); |
| 3837 | 3837 | $base = 'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPrRsStTuUvVxXuUvVwWzZ1234567890'; |
| 3838 | 3838 | $start = 0; |
| 3839 | - $end = strlen( $base ) - 1; |
|
| 3839 | + $end = strlen($base) - 1; |
|
| 3840 | 3840 | $length = 6; |
| 3841 | 3841 | $str = null; |
| 3842 | - for( $p = 0; $p < $length; $p++ ) |
|
| 3843 | - $unique .= $base{mt_rand( $start, $end )}; |
|
| 3844 | - $this->uid = array( 'params' => null ); |
|
| 3845 | - $this->uid['value'] = $date.'-'.$unique.'@'.$this->getConfig( 'unique_id' ); |
|
| 3842 | + for ($p = 0; $p < $length; $p++) |
|
| 3843 | + $unique .= $base{mt_rand($start, $end)}; |
|
| 3844 | + $this->uid = array('params' => null); |
|
| 3845 | + $this->uid['value'] = $date.'-'.$unique.'@'.$this->getConfig('unique_id'); |
|
| 3846 | 3846 | } |
| 3847 | 3847 | /** |
| 3848 | 3848 | * set calendar component property uid |
@@ -3853,9 +3853,9 @@ discard block |
||
| 3853 | 3853 | * @param string $params optional |
| 3854 | 3854 | * @return bool |
| 3855 | 3855 | */ |
| 3856 | - function setUid( $value, $params=FALSE ) { |
|
| 3857 | - if( empty( $value )) return FALSE; // no allowEmpty check here !!!! |
|
| 3858 | - $this->uid = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3856 | + function setUid($value, $params = FALSE) { |
|
| 3857 | + if (empty($value)) return FALSE; // no allowEmpty check here !!!! |
|
| 3858 | + $this->uid = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3859 | 3859 | return TRUE; |
| 3860 | 3860 | } |
| 3861 | 3861 | /*********************************************************************************/ |
@@ -3870,11 +3870,11 @@ discard block |
||
| 3870 | 3870 | * @return string |
| 3871 | 3871 | */ |
| 3872 | 3872 | function createUrl() { |
| 3873 | - if( empty( $this->url )) return FALSE; |
|
| 3874 | - if( empty( $this->url['value'] )) |
|
| 3875 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'URL' ) : FALSE; |
|
| 3876 | - $attributes = $this->_createParams( $this->url['params'] ); |
|
| 3877 | - return $this->_createElement( 'URL', $attributes, $this->url['value'] ); |
|
| 3873 | + if (empty($this->url)) return FALSE; |
|
| 3874 | + if (empty($this->url['value'])) |
|
| 3875 | + return ($this->getConfig('allowEmpty')) ? $this->_createElement('URL') : FALSE; |
|
| 3876 | + $attributes = $this->_createParams($this->url['params']); |
|
| 3877 | + return $this->_createElement('URL', $attributes, $this->url['value']); |
|
| 3878 | 3878 | } |
| 3879 | 3879 | /** |
| 3880 | 3880 | * set calendar component property url |
@@ -3885,9 +3885,9 @@ discard block |
||
| 3885 | 3885 | * @param string $params optional |
| 3886 | 3886 | * @return bool |
| 3887 | 3887 | */ |
| 3888 | - function setUrl( $value, $params=FALSE ) { |
|
| 3889 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3890 | - $this->url = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
|
| 3888 | + function setUrl($value, $params = FALSE) { |
|
| 3889 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3890 | + $this->url = array('value' => $value, 'params' => $this->_setParams($params)); |
|
| 3891 | 3891 | return TRUE; |
| 3892 | 3892 | } |
| 3893 | 3893 | /*********************************************************************************/ |
@@ -3902,22 +3902,22 @@ discard block |
||
| 3902 | 3902 | * @return string |
| 3903 | 3903 | */ |
| 3904 | 3904 | function createXprop() { |
| 3905 | - if( empty( $this->xprop )) return FALSE; |
|
| 3905 | + if (empty($this->xprop)) return FALSE; |
|
| 3906 | 3906 | $output = null; |
| 3907 | - foreach( $this->xprop as $label => $xpropPart ) { |
|
| 3908 | - if( empty( $xpropPart['value'] )) { |
|
| 3909 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( $label ); |
|
| 3907 | + foreach ($this->xprop as $label => $xpropPart) { |
|
| 3908 | + if (empty($xpropPart['value'])) { |
|
| 3909 | + if ($this->getConfig('allowEmpty')) $output .= $this->_createElement($label); |
|
| 3910 | 3910 | continue; |
| 3911 | 3911 | } |
| 3912 | - $attributes = $this->_createParams( $xpropPart['params'], array( 'LANGUAGE' )); |
|
| 3913 | - if( is_array( $xpropPart['value'] )) { |
|
| 3914 | - foreach( $xpropPart['value'] as $pix => $theXpart ) |
|
| 3915 | - $xpropPart['value'][$pix] = $this->_strrep( $theXpart ); |
|
| 3916 | - $xpropPart['value'] = implode( ',', $xpropPart['value'] ); |
|
| 3912 | + $attributes = $this->_createParams($xpropPart['params'], array('LANGUAGE')); |
|
| 3913 | + if (is_array($xpropPart['value'])) { |
|
| 3914 | + foreach ($xpropPart['value'] as $pix => $theXpart) |
|
| 3915 | + $xpropPart['value'][$pix] = $this->_strrep($theXpart); |
|
| 3916 | + $xpropPart['value'] = implode(',', $xpropPart['value']); |
|
| 3917 | 3917 | } |
| 3918 | 3918 | else |
| 3919 | - $xpropPart['value'] = $this->_strrep( $xpropPart['value'] ); |
|
| 3920 | - $output .= $this->_createElement( $label, $attributes, $xpropPart['value'] ); |
|
| 3919 | + $xpropPart['value'] = $this->_strrep($xpropPart['value']); |
|
| 3920 | + $output .= $this->_createElement($label, $attributes, $xpropPart['value']); |
|
| 3921 | 3921 | } |
| 3922 | 3922 | return $output; |
| 3923 | 3923 | } |
@@ -3931,14 +3931,14 @@ discard block |
||
| 3931 | 3931 | * @param array $params optional |
| 3932 | 3932 | * @return bool |
| 3933 | 3933 | */ |
| 3934 | - function setXprop( $label, $value, $params=FALSE ) { |
|
| 3935 | - if( empty( $label )) return; |
|
| 3936 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3937 | - $xprop = array( 'value' => $value ); |
|
| 3934 | + function setXprop($label, $value, $params = FALSE) { |
|
| 3935 | + if (empty($label)) return; |
|
| 3936 | + if (empty($value)) if ($this->getConfig('allowEmpty')) $value = null; else return FALSE; |
|
| 3937 | + $xprop = array('value' => $value); |
|
| 3938 | 3938 | $toolbox = new calendarComponent(); |
| 3939 | - $xprop['params'] = $toolbox->_setParams( $params ); |
|
| 3940 | - if( !is_array( $this->xprop )) $this->xprop = array(); |
|
| 3941 | - $this->xprop[strtoupper( $label )] = $xprop; |
|
| 3939 | + $xprop['params'] = $toolbox->_setParams($params); |
|
| 3940 | + if (!is_array($this->xprop)) $this->xprop = array(); |
|
| 3941 | + $this->xprop[strtoupper($label)] = $xprop; |
|
| 3942 | 3942 | return TRUE; |
| 3943 | 3943 | } |
| 3944 | 3944 | /*********************************************************************************/ |
@@ -3952,10 +3952,10 @@ discard block |
||
| 3952 | 3952 | */ |
| 3953 | 3953 | function _createFormat() { |
| 3954 | 3954 | $objectname = null; |
| 3955 | - switch( $this->format ) { |
|
| 3955 | + switch ($this->format) { |
|
| 3956 | 3956 | case 'xcal': |
| 3957 | - $objectname = ( isset( $this->timezonetype )) ? |
|
| 3958 | - strtolower( $this->timezonetype ) : strtolower( $this->objName ); |
|
| 3957 | + $objectname = (isset($this->timezonetype)) ? |
|
| 3958 | + strtolower($this->timezonetype) : strtolower($this->objName); |
|
| 3959 | 3959 | $this->componentStart1 = $this->elementStart1 = '<'; |
| 3960 | 3960 | $this->componentStart2 = $this->elementStart2 = '>'; |
| 3961 | 3961 | $this->componentEnd1 = $this->elementEnd1 = '</'; |
@@ -3965,8 +3965,8 @@ discard block |
||
| 3965 | 3965 | $this->valueInit = null; |
| 3966 | 3966 | break; |
| 3967 | 3967 | default: |
| 3968 | - $objectname = ( isset( $this->timezonetype )) ? |
|
| 3969 | - strtoupper( $this->timezonetype ) : strtoupper( $this->objName ); |
|
| 3968 | + $objectname = (isset($this->timezonetype)) ? |
|
| 3969 | + strtoupper($this->timezonetype) : strtoupper($this->objName); |
|
| 3970 | 3970 | $this->componentStart1 = 'BEGIN:'; |
| 3971 | 3971 | $this->componentStart2 = null; |
| 3972 | 3972 | $this->componentEnd1 = 'END:'; |
@@ -3992,82 +3992,82 @@ discard block |
||
| 3992 | 3992 | * @param string $content property content (optional) |
| 3993 | 3993 | * @return string |
| 3994 | 3994 | */ |
| 3995 | - function _createElement( $label, $attributes=null, $content=FALSE ) { |
|
| 3996 | - $label = $this->_formatPropertyName( $label ); |
|
| 3995 | + function _createElement($label, $attributes = null, $content = FALSE) { |
|
| 3996 | + $label = $this->_formatPropertyName($label); |
|
| 3997 | 3997 | $output = $this->elementStart1.$label; |
| 3998 | 3998 | $categoriesAttrLang = null; |
| 3999 | 3999 | $attachInlineBinary = FALSE; |
| 4000 | 4000 | $attachfmttype = null; |
| 4001 | - if( !empty( $attributes )) { |
|
| 4002 | - $attributes = trim( $attributes ); |
|
| 4003 | - if ( 'xcal' == $this->format) { |
|
| 4004 | - $attributes2 = explode( $this->intAttrDelimiter, $attributes ); |
|
| 4001 | + if (!empty($attributes)) { |
|
| 4002 | + $attributes = trim($attributes); |
|
| 4003 | + if ('xcal' == $this->format) { |
|
| 4004 | + $attributes2 = explode($this->intAttrDelimiter, $attributes); |
|
| 4005 | 4005 | $attributes = null; |
| 4006 | - foreach( $attributes2 as $attribute ) { |
|
| 4007 | - $attrKVarr = explode( '=', $attribute ); |
|
| 4008 | - if( empty( $attrKVarr[0] )) |
|
| 4006 | + foreach ($attributes2 as $attribute) { |
|
| 4007 | + $attrKVarr = explode('=', $attribute); |
|
| 4008 | + if (empty($attrKVarr[0])) |
|
| 4009 | 4009 | continue; |
| 4010 | - if( !isset( $attrKVarr[1] )) { |
|
| 4010 | + if (!isset($attrKVarr[1])) { |
|
| 4011 | 4011 | $attrValue = $attrKVarr[0]; |
| 4012 | 4012 | $attrKey = null; |
| 4013 | 4013 | } |
| 4014 | - elseif( 2 == count( $attrKVarr)) { |
|
| 4015 | - $attrKey = strtolower( $attrKVarr[0] ); |
|
| 4014 | + elseif (2 == count($attrKVarr)) { |
|
| 4015 | + $attrKey = strtolower($attrKVarr[0]); |
|
| 4016 | 4016 | $attrValue = $attrKVarr[1]; |
| 4017 | 4017 | } |
| 4018 | 4018 | else { |
| 4019 | - $attrKey = strtolower( $attrKVarr[0] ); |
|
| 4020 | - unset( $attrKVarr[0] ); |
|
| 4021 | - $attrValue = implode( '=', $attrKVarr ); |
|
| 4019 | + $attrKey = strtolower($attrKVarr[0]); |
|
| 4020 | + unset($attrKVarr[0]); |
|
| 4021 | + $attrValue = implode('=', $attrKVarr); |
|
| 4022 | 4022 | } |
| 4023 | - if(( 'attach' == $label ) && ( in_array( $attrKey, array( 'fmttype', 'encoding', 'value' )))) { |
|
| 4023 | + if (('attach' == $label) && (in_array($attrKey, array('fmttype', 'encoding', 'value')))) { |
|
| 4024 | 4024 | $attachInlineBinary = TRUE; |
| 4025 | - if( 'fmttype' == $attrKey ) |
|
| 4025 | + if ('fmttype' == $attrKey) |
|
| 4026 | 4026 | $attachfmttype = $attrKey.'='.$attrValue; |
| 4027 | 4027 | continue; |
| 4028 | 4028 | } |
| 4029 | - elseif(( 'categories' == $label ) && ( 'language' == $attrKey )) |
|
| 4029 | + elseif (('categories' == $label) && ('language' == $attrKey)) |
|
| 4030 | 4030 | $categoriesAttrLang = $attrKey.'='.$attrValue; |
| 4031 | 4031 | else { |
| 4032 | - $attributes .= ( empty( $attributes )) ? ' ' : $this->attributeDelimiter.' '; |
|
| 4033 | - $attributes .= ( !empty( $attrKey )) ? $attrKey.'=' : null; |
|
| 4034 | - if(( '"' == substr( $attrValue, 0, 1 )) && ( '"' == substr( $attrValue, -1 ))) { |
|
| 4035 | - $attrValue = substr( $attrValue, 1, ( strlen( $attrValue ) - 2 )); |
|
| 4036 | - $attrValue = str_replace( '"', '', $attrValue ); |
|
| 4032 | + $attributes .= (empty($attributes)) ? ' ' : $this->attributeDelimiter.' '; |
|
| 4033 | + $attributes .= (!empty($attrKey)) ? $attrKey.'=' : null; |
|
| 4034 | + if (('"' == substr($attrValue, 0, 1)) && ('"' == substr($attrValue, -1))) { |
|
| 4035 | + $attrValue = substr($attrValue, 1, (strlen($attrValue) - 2)); |
|
| 4036 | + $attrValue = str_replace('"', '', $attrValue); |
|
| 4037 | 4037 | } |
| 4038 | - $attributes .= '"'.htmlspecialchars( $attrValue ).'"'; |
|
| 4038 | + $attributes .= '"'.htmlspecialchars($attrValue).'"'; |
|
| 4039 | 4039 | } |
| 4040 | 4040 | } |
| 4041 | 4041 | } |
| 4042 | 4042 | else { |
| 4043 | - $attributes = str_replace( $this->intAttrDelimiter, $this->attributeDelimiter, $attributes ); |
|
| 4043 | + $attributes = str_replace($this->intAttrDelimiter, $this->attributeDelimiter, $attributes); |
|
| 4044 | 4044 | } |
| 4045 | 4045 | } |
| 4046 | - if(((( 'attach' == $label ) && !$attachInlineBinary ) || |
|
| 4047 | - ( in_array( $label, array( 'tzurl', 'url' )))) && ( 'xcal' == $this->format)) { |
|
| 4046 | + if (((('attach' == $label) && !$attachInlineBinary) || |
|
| 4047 | + (in_array($label, array('tzurl', 'url')))) && ('xcal' == $this->format)) { |
|
| 4048 | 4048 | $pos = strrpos($content, "/"); |
| 4049 | - $docname = ( $pos !== false) ? substr( $content, (1 - strlen( $content ) + $pos )) : $content; |
|
| 4050 | - $this->xcaldecl[] = array( 'xmldecl' => 'ENTITY' |
|
| 4049 | + $docname = ($pos !== false) ? substr($content, (1 - strlen($content) + $pos)) : $content; |
|
| 4050 | + $this->xcaldecl[] = array('xmldecl' => 'ENTITY' |
|
| 4051 | 4051 | , 'uri' => $docname |
| 4052 | 4052 | , 'ref' => 'SYSTEM' |
| 4053 | 4053 | , 'external' => $content |
| 4054 | 4054 | , 'type' => 'NDATA' |
| 4055 | - , 'type2' => 'BINERY' ); |
|
| 4056 | - $attributes .= ( empty( $attributes )) ? ' ' : $this->attributeDelimiter.' '; |
|
| 4055 | + , 'type2' => 'BINERY'); |
|
| 4056 | + $attributes .= (empty($attributes)) ? ' ' : $this->attributeDelimiter.' '; |
|
| 4057 | 4057 | $attributes .= 'uri="'.$docname.'"'; |
| 4058 | 4058 | $content = null; |
| 4059 | - if( 'attach' == $label ) { |
|
| 4060 | - $attributes = str_replace( $this->attributeDelimiter, $this->intAttrDelimiter, $attributes ); |
|
| 4061 | - $content = $this->_createElement( 'extref', $attributes, null ); |
|
| 4059 | + if ('attach' == $label) { |
|
| 4060 | + $attributes = str_replace($this->attributeDelimiter, $this->intAttrDelimiter, $attributes); |
|
| 4061 | + $content = $this->_createElement('extref', $attributes, null); |
|
| 4062 | 4062 | $attributes = null; |
| 4063 | 4063 | } |
| 4064 | 4064 | } |
| 4065 | - elseif(( 'attach' == $label ) && $attachInlineBinary && ( 'xcal' == $this->format)) { |
|
| 4066 | - $content = $this->nl.$this->_createElement( 'b64bin', $attachfmttype, $content ); // max one attribute |
|
| 4065 | + elseif (('attach' == $label) && $attachInlineBinary && ('xcal' == $this->format)) { |
|
| 4066 | + $content = $this->nl.$this->_createElement('b64bin', $attachfmttype, $content); // max one attribute |
|
| 4067 | 4067 | } |
| 4068 | 4068 | $output .= $attributes; |
| 4069 | - if( !$content ) { |
|
| 4070 | - switch( $this->format ) { |
|
| 4069 | + if (!$content) { |
|
| 4070 | + switch ($this->format) { |
|
| 4071 | 4071 | case 'xcal': |
| 4072 | 4072 | $output .= ' /'; |
| 4073 | 4073 | $output .= $this->elementStart2; |
@@ -4075,18 +4075,18 @@ discard block |
||
| 4075 | 4075 | break; |
| 4076 | 4076 | default: |
| 4077 | 4077 | $output .= $this->elementStart2.$this->valueInit; |
| 4078 | - return $this->_size75( $output ); |
|
| 4078 | + return $this->_size75($output); |
|
| 4079 | 4079 | break; |
| 4080 | 4080 | } |
| 4081 | 4081 | } |
| 4082 | 4082 | $output .= $this->elementStart2; |
| 4083 | 4083 | $output .= $this->valueInit.$content; |
| 4084 | - switch( $this->format ) { |
|
| 4084 | + switch ($this->format) { |
|
| 4085 | 4085 | case 'xcal': |
| 4086 | 4086 | return $output.$this->elementEnd1.$label.$this->elementEnd2; |
| 4087 | 4087 | break; |
| 4088 | 4088 | default: |
| 4089 | - return $this->_size75( $output ); |
|
| 4089 | + return $this->_size75($output); |
|
| 4090 | 4090 | break; |
| 4091 | 4091 | } |
| 4092 | 4092 | } |
@@ -4099,36 +4099,36 @@ discard block |
||
| 4099 | 4099 | * @param array $ctrKeys optional |
| 4100 | 4100 | * @return string |
| 4101 | 4101 | */ |
| 4102 | - function _createParams( $params=array(), $ctrKeys=array() ) { |
|
| 4102 | + function _createParams($params = array(), $ctrKeys = array()) { |
|
| 4103 | 4103 | $attrLANG = $attr1 = $attr2 = null; |
| 4104 | - $CNattrKey = ( in_array( 'CN', $ctrKeys )) ? TRUE : FALSE ; |
|
| 4105 | - $LANGattrKey = ( in_array( 'LANGUAGE', $ctrKeys )) ? TRUE : FALSE ; |
|
| 4104 | + $CNattrKey = (in_array('CN', $ctrKeys)) ? TRUE : FALSE; |
|
| 4105 | + $LANGattrKey = (in_array('LANGUAGE', $ctrKeys)) ? TRUE : FALSE; |
|
| 4106 | 4106 | $CNattrExist = $LANGattrExist = FALSE; |
| 4107 | - if( is_array( $params )) { |
|
| 4108 | - foreach( $params as $paramKey => $paramValue ) { |
|
| 4109 | - if( is_int( $paramKey )) |
|
| 4107 | + if (is_array($params)) { |
|
| 4108 | + foreach ($params as $paramKey => $paramValue) { |
|
| 4109 | + if (is_int($paramKey)) |
|
| 4110 | 4110 | $attr2 .= $this->intAttrDelimiter.$paramValue; |
| 4111 | - elseif(( 'LANGUAGE' == $paramKey ) && $LANGattrKey ) { |
|
| 4111 | + elseif (('LANGUAGE' == $paramKey) && $LANGattrKey) { |
|
| 4112 | 4112 | $attrLANG .= $this->intAttrDelimiter."LANGUAGE=$paramValue"; |
| 4113 | 4113 | $LANGattrExist = TRUE; |
| 4114 | 4114 | } |
| 4115 | - elseif(( 'CN' == $paramKey ) && $CNattrKey ) { |
|
| 4115 | + elseif (('CN' == $paramKey) && $CNattrKey) { |
|
| 4116 | 4116 | $attr1 = $this->intAttrDelimiter.'CN="'.$paramValue.'"'; |
| 4117 | 4117 | $CNattrExist = TRUE; |
| 4118 | 4118 | } |
| 4119 | - elseif(( 'ALTREP' == $paramKey ) && in_array( $paramKey, $ctrKeys )) |
|
| 4119 | + elseif (('ALTREP' == $paramKey) && in_array($paramKey, $ctrKeys)) |
|
| 4120 | 4120 | $attr2 .= $this->intAttrDelimiter.'ALTREP="'.$paramValue.'"'; |
| 4121 | - elseif(( 'DIR' == $paramKey ) && in_array( $paramKey, $ctrKeys )) |
|
| 4121 | + elseif (('DIR' == $paramKey) && in_array($paramKey, $ctrKeys)) |
|
| 4122 | 4122 | $attr2 .= $this->intAttrDelimiter.'DIR="'.$paramValue.'"'; |
| 4123 | - elseif(( 'SENT-BY' == $paramKey ) && in_array( $paramKey, $ctrKeys )) |
|
| 4123 | + elseif (('SENT-BY' == $paramKey) && in_array($paramKey, $ctrKeys)) |
|
| 4124 | 4124 | $attr2 .= $this->intAttrDelimiter.'SENT-BY="MAILTO:'.$paramValue.'"'; |
| 4125 | 4125 | else |
| 4126 | 4126 | $attr2 .= $this->intAttrDelimiter."$paramKey=$paramValue"; |
| 4127 | 4127 | } |
| 4128 | 4128 | } |
| 4129 | - if( !$LANGattrExist ) { |
|
| 4130 | - $lang = $this->getConfig( 'language' ); |
|
| 4131 | - if(( $CNattrExist || $LANGattrKey ) && $lang ) |
|
| 4129 | + if (!$LANGattrExist) { |
|
| 4130 | + $lang = $this->getConfig('language'); |
|
| 4131 | + if (($CNattrExist || $LANGattrKey) && $lang) |
|
| 4132 | 4132 | $attrLANG .= $this->intAttrDelimiter.'LANGUAGE='.$lang; |
| 4133 | 4133 | } |
| 4134 | 4134 | return $attrLANG.$attr1.$attr2; |
@@ -4142,47 +4142,47 @@ discard block |
||
| 4142 | 4142 | * @param int $parno, no of date parts (i.e. year, month.. .) |
| 4143 | 4143 | * @return array $params, property parameters |
| 4144 | 4144 | */ |
| 4145 | - function _chkdatecfg( $theDate, & $parno, & $params ) { |
|
| 4146 | - if( isset( $params['TZID'] )) |
|
| 4145 | + function _chkdatecfg($theDate, & $parno, & $params) { |
|
| 4146 | + if (isset($params['TZID'])) |
|
| 4147 | 4147 | $parno = 6; |
| 4148 | - elseif( isset( $params['VALUE'] ) && ( 'DATE' == $params['VALUE'] )) |
|
| 4148 | + elseif (isset($params['VALUE']) && ('DATE' == $params['VALUE'])) |
|
| 4149 | 4149 | $parno = 3; |
| 4150 | 4150 | else { |
| 4151 | - if( isset( $params['VALUE'] ) && ( 'PERIOD' == $params['VALUE'] )) |
|
| 4151 | + if (isset($params['VALUE']) && ('PERIOD' == $params['VALUE'])) |
|
| 4152 | 4152 | $parno = 7; |
| 4153 | - if( is_array( $theDate )) { |
|
| 4154 | - if( isset( $theDate['timestamp'] )) |
|
| 4155 | - $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : null; |
|
| 4153 | + if (is_array($theDate)) { |
|
| 4154 | + if (isset($theDate['timestamp'])) |
|
| 4155 | + $tzid = (isset($theDate['tz'])) ? $theDate['tz'] : null; |
|
| 4156 | 4156 | else |
| 4157 | - $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : ( 7 == count( $theDate )) ? end( $theDate ) : null; |
|
| 4158 | - if( !empty( $tzid )) { |
|
| 4157 | + $tzid = (isset($theDate['tz'])) ? $theDate['tz'] : (7 == count($theDate)) ? end($theDate) : null; |
|
| 4158 | + if (!empty($tzid)) { |
|
| 4159 | 4159 | $parno = 7; |
| 4160 | - if( !$this->_isOffset( $tzid )) |
|
| 4160 | + if (!$this->_isOffset($tzid)) |
|
| 4161 | 4161 | $params['TZID'] = $tzid; // save only timezone |
| 4162 | 4162 | } |
| 4163 | - elseif( !$parno && ( 3 == count( $theDate )) && |
|
| 4164 | - ( isset( $params['VALUE'] ) && ( 'DATE' == $params['VALUE'] ))) |
|
| 4163 | + elseif (!$parno && (3 == count($theDate)) && |
|
| 4164 | + (isset($params['VALUE']) && ('DATE' == $params['VALUE']))) |
|
| 4165 | 4165 | $parno = 3; |
| 4166 | 4166 | else |
| 4167 | 4167 | $parno = 6; |
| 4168 | 4168 | } |
| 4169 | 4169 | else { // string |
| 4170 | - $date = trim( $theDate ); |
|
| 4171 | - if( 'Z' == substr( $date, -1 )) |
|
| 4170 | + $date = trim($theDate); |
|
| 4171 | + if ('Z' == substr($date, -1)) |
|
| 4172 | 4172 | $parno = 7; // UTC DATE-TIME |
| 4173 | - elseif((( 8 == strlen( $date ) && ctype_digit( $date )) || ( 11 >= strlen( $date ))) && |
|
| 4174 | - ( !isset( $params['VALUE'] ) || !in_array( $params['VALUE'], array( 'DATE-TIME', 'PERIOD' )))) |
|
| 4173 | + elseif (((8 == strlen($date) && ctype_digit($date)) || (11 >= strlen($date))) && |
|
| 4174 | + (!isset($params['VALUE']) || !in_array($params['VALUE'], array('DATE-TIME', 'PERIOD')))) |
|
| 4175 | 4175 | $parno = 3; // DATE |
| 4176 | - $date = $this->_date_time_string( $date, $parno ); |
|
| 4177 | - if( !empty( $date['tz'] )) { |
|
| 4176 | + $date = $this->_date_time_string($date, $parno); |
|
| 4177 | + if (!empty($date['tz'])) { |
|
| 4178 | 4178 | $parno = 7; |
| 4179 | - if( !$this->_isOffset( $date['tz'] )) |
|
| 4179 | + if (!$this->_isOffset($date['tz'])) |
|
| 4180 | 4180 | $params['TZID'] = $date['tz']; // save only timezone |
| 4181 | 4181 | } |
| 4182 | - elseif( empty( $parno )) |
|
| 4182 | + elseif (empty($parno)) |
|
| 4183 | 4183 | $parno = 6; |
| 4184 | 4184 | } |
| 4185 | - if( isset( $params['TZID'] )) |
|
| 4185 | + if (isset($params['TZID'])) |
|
| 4186 | 4186 | $parno = 6; |
| 4187 | 4187 | } |
| 4188 | 4188 | } |
@@ -4197,28 +4197,28 @@ discard block |
||
| 4197 | 4197 | * @param array $duration, optional |
| 4198 | 4198 | * @return array duration |
| 4199 | 4199 | */ |
| 4200 | - function _date2duration( $startdate=FALSE, $enddate=FALSE ) { |
|
| 4201 | - if( !$startdate || !$enddate ) { |
|
| 4202 | - if( FALSE === ( $startdate = $this->getProperty( 'dtstart' ))) |
|
| 4200 | + function _date2duration($startdate = FALSE, $enddate = FALSE) { |
|
| 4201 | + if (!$startdate || !$enddate) { |
|
| 4202 | + if (FALSE === ($startdate = $this->getProperty('dtstart'))) |
|
| 4203 | 4203 | return null; |
| 4204 | - if( FALSE === ( $enddate = $this->getProperty( 'dtend' ))) // vevent/vfreebusy |
|
| 4205 | - if( FALSE === ( $enddate = $this->getProperty( 'due' ))) // vtodo |
|
| 4204 | + if (FALSE === ($enddate = $this->getProperty('dtend'))) // vevent/vfreebusy |
|
| 4205 | + if (FALSE === ($enddate = $this->getProperty('due'))) // vtodo |
|
| 4206 | 4206 | return null; |
| 4207 | 4207 | } |
| 4208 | - if( !$startdate || !$enddate ) |
|
| 4208 | + if (!$startdate || !$enddate) |
|
| 4209 | 4209 | return null; |
| 4210 | - $startWdate = mktime( 0, 0, 0, $startdate['month'], $startdate['day'], $startdate['year'] ); |
|
| 4211 | - $endWdate = mktime( 0, 0, 0, $enddate['month'], $enddate['day'], $enddate['year'] ); |
|
| 4210 | + $startWdate = mktime(0, 0, 0, $startdate['month'], $startdate['day'], $startdate['year']); |
|
| 4211 | + $endWdate = mktime(0, 0, 0, $enddate['month'], $enddate['day'], $enddate['year']); |
|
| 4212 | 4212 | $wduration = $endWdate - $startWdate; |
| 4213 | 4213 | $dur = array(); |
| 4214 | - $dur['week'] = (int) floor( $wduration / ( 7 * 24 * 60 * 60 )); |
|
| 4215 | - $wduration = $wduration % ( 7 * 24 * 60 * 60 ); |
|
| 4216 | - $dur['day'] = (int) floor( $wduration / ( 24 * 60 * 60 )); |
|
| 4217 | - $wduration = $wduration % ( 24 * 60 * 60 ); |
|
| 4218 | - $dur['hour'] = (int) floor( $wduration / ( 60 * 60 )); |
|
| 4219 | - $wduration = $wduration % ( 60 * 60 ); |
|
| 4220 | - $dur['min'] = (int) floor( $wduration / ( 60 )); |
|
| 4221 | - $dur['sec'] = (int) $wduration % ( 60 ); |
|
| 4214 | + $dur['week'] = (int) floor($wduration / (7 * 24 * 60 * 60)); |
|
| 4215 | + $wduration = $wduration % (7 * 24 * 60 * 60); |
|
| 4216 | + $dur['day'] = (int) floor($wduration / (24 * 60 * 60)); |
|
| 4217 | + $wduration = $wduration % (24 * 60 * 60); |
|
| 4218 | + $dur['hour'] = (int) floor($wduration / (60 * 60)); |
|
| 4219 | + $wduration = $wduration % (60 * 60); |
|
| 4220 | + $dur['min'] = (int) floor($wduration / (60)); |
|
| 4221 | + $dur['sec'] = (int) $wduration % (60); |
|
| 4222 | 4222 | return $dur; |
| 4223 | 4223 | } |
| 4224 | 4224 | /** |
@@ -4230,19 +4230,19 @@ discard block |
||
| 4230 | 4230 | * @param string $tz timezone |
| 4231 | 4231 | * @return timestamp |
| 4232 | 4232 | */ |
| 4233 | - function _date2timestamp( $datetime, $tz=null ) { |
|
| 4233 | + function _date2timestamp($datetime, $tz = null) { |
|
| 4234 | 4234 | $output = null; |
| 4235 | - if( !isset( $datetime['hour'] )) $datetime['hour'] = '0'; |
|
| 4236 | - if( !isset( $datetime['min'] )) $datetime['min'] = '0'; |
|
| 4237 | - if( !isset( $datetime['sec'] )) $datetime['sec'] = '0'; |
|
| 4238 | - foreach( $datetime as $dkey => $dvalue ) { |
|
| 4239 | - if( 'tz' != $dkey ) |
|
| 4235 | + if (!isset($datetime['hour'])) $datetime['hour'] = '0'; |
|
| 4236 | + if (!isset($datetime['min'])) $datetime['min'] = '0'; |
|
| 4237 | + if (!isset($datetime['sec'])) $datetime['sec'] = '0'; |
|
| 4238 | + foreach ($datetime as $dkey => $dvalue) { |
|
| 4239 | + if ('tz' != $dkey) |
|
| 4240 | 4240 | $datetime[$dkey] = (integer) $dvalue; |
| 4241 | 4241 | } |
| 4242 | - if( $tz ) |
|
| 4242 | + if ($tz) |
|
| 4243 | 4243 | $datetime['tz'] = $tz; |
| 4244 | - $offset = ( isset( $datetime['tz'] ) && ( '' < trim ( $datetime['tz'] ))) ? $this->_tz2offset( $datetime['tz'] ) : 0; |
|
| 4245 | - $output = mktime( $datetime['hour'], $datetime['min'], ($datetime['sec'] + $offset), $datetime['month'], $datetime['day'], $datetime['year'] ); |
|
| 4244 | + $offset = (isset($datetime['tz']) && ('' < trim($datetime['tz']))) ? $this->_tz2offset($datetime['tz']) : 0; |
|
| 4245 | + $output = mktime($datetime['hour'], $datetime['min'], ($datetime['sec'] + $offset), $datetime['month'], $datetime['day'], $datetime['year']); |
|
| 4246 | 4246 | return $output; |
| 4247 | 4247 | } |
| 4248 | 4248 | /** |
@@ -4254,16 +4254,16 @@ discard block |
||
| 4254 | 4254 | * @param int $parno optional, default FALSE |
| 4255 | 4255 | * @return array |
| 4256 | 4256 | */ |
| 4257 | - function _date_time_array( $datetime, $parno=FALSE ) { |
|
| 4257 | + function _date_time_array($datetime, $parno = FALSE) { |
|
| 4258 | 4258 | $output = array(); |
| 4259 | - foreach( $datetime as $dateKey => $datePart ) { |
|
| 4260 | - switch ( $dateKey ) { |
|
| 4259 | + foreach ($datetime as $dateKey => $datePart) { |
|
| 4260 | + switch ($dateKey) { |
|
| 4261 | 4261 | case '0': case 'year': $output['year'] = $datePart; break; |
| 4262 | 4262 | case '1': case 'month': $output['month'] = $datePart; break; |
| 4263 | 4263 | case '2': case 'day': $output['day'] = $datePart; break; |
| 4264 | 4264 | } |
| 4265 | - if( 3 != $parno ) { |
|
| 4266 | - switch ( $dateKey ) { |
|
| 4265 | + if (3 != $parno) { |
|
| 4266 | + switch ($dateKey) { |
|
| 4267 | 4267 | case '0': |
| 4268 | 4268 | case '1': |
| 4269 | 4269 | case '2': break; |
@@ -4274,12 +4274,12 @@ discard block |
||
| 4274 | 4274 | } |
| 4275 | 4275 | } |
| 4276 | 4276 | } |
| 4277 | - if( 3 != $parno ) { |
|
| 4278 | - if( !isset( $output['hour'] )) |
|
| 4277 | + if (3 != $parno) { |
|
| 4278 | + if (!isset($output['hour'])) |
|
| 4279 | 4279 | $output['hour'] = 0; |
| 4280 | - if( !isset( $output['min'] )) |
|
| 4280 | + if (!isset($output['min'])) |
|
| 4281 | 4281 | $output['min'] = 0; |
| 4282 | - if( !isset( $output['sec'] )) |
|
| 4282 | + if (!isset($output['sec'])) |
|
| 4283 | 4283 | $output['sec'] = 0; |
| 4284 | 4284 | } |
| 4285 | 4285 | return $output; |
@@ -4293,88 +4293,88 @@ discard block |
||
| 4293 | 4293 | * @param int $parno optional, default FALSE |
| 4294 | 4294 | * @return array |
| 4295 | 4295 | */ |
| 4296 | - function _date_time_string( $datetime, $parno=FALSE ) { |
|
| 4297 | - $datetime = (string) trim( $datetime ); |
|
| 4296 | + function _date_time_string($datetime, $parno = FALSE) { |
|
| 4297 | + $datetime = (string) trim($datetime); |
|
| 4298 | 4298 | $tz = null; |
| 4299 | - $len = strlen( $datetime ) - 1; |
|
| 4300 | - if( 'Z' == substr( $datetime, -1 )) { |
|
| 4299 | + $len = strlen($datetime) - 1; |
|
| 4300 | + if ('Z' == substr($datetime, -1)) { |
|
| 4301 | 4301 | $tz = 'Z'; |
| 4302 | - $datetime = trim( substr( $datetime, 0, $len )); |
|
| 4302 | + $datetime = trim(substr($datetime, 0, $len)); |
|
| 4303 | 4303 | } |
| 4304 | - elseif( ( ctype_digit( substr( $datetime, -2, 2 ))) && // time or date |
|
| 4305 | - ( '-' == substr( $datetime, -3, 1 )) || |
|
| 4306 | - ( ':' == substr( $datetime, -3, 1 )) || |
|
| 4307 | - ( '.' == substr( $datetime, -3, 1 ))) { |
|
| 4304 | + elseif ((ctype_digit(substr($datetime, -2, 2))) && // time or date |
|
| 4305 | + ('-' == substr($datetime, -3, 1)) || |
|
| 4306 | + (':' == substr($datetime, -3, 1)) || |
|
| 4307 | + ('.' == substr($datetime, -3, 1))) { |
|
| 4308 | 4308 | $continue = TRUE; |
| 4309 | 4309 | } |
| 4310 | - elseif( ( ctype_digit( substr( $datetime, -4, 4 ))) && // 4 pos offset |
|
| 4311 | - ( ' +' == substr( $datetime, -6, 2 )) || |
|
| 4312 | - ( ' -' == substr( $datetime, -6, 2 ))) { |
|
| 4313 | - $tz = substr( $datetime, -5, 5 ); |
|
| 4314 | - $datetime = substr( $datetime, 0, ($len - 5)); |
|
| 4310 | + elseif ((ctype_digit(substr($datetime, -4, 4))) && // 4 pos offset |
|
| 4311 | + (' +' == substr($datetime, -6, 2)) || |
|
| 4312 | + (' -' == substr($datetime, -6, 2))) { |
|
| 4313 | + $tz = substr($datetime, -5, 5); |
|
| 4314 | + $datetime = substr($datetime, 0, ($len - 5)); |
|
| 4315 | 4315 | } |
| 4316 | - elseif( ( ctype_digit( substr( $datetime, -6, 6 ))) && // 6 pos offset |
|
| 4317 | - ( ' +' == substr( $datetime, -8, 2 )) || |
|
| 4318 | - ( ' -' == substr( $datetime, -8, 2 ))) { |
|
| 4319 | - $tz = substr( $datetime, -7, 7 ); |
|
| 4320 | - $datetime = substr( $datetime, 0, ($len - 7)); |
|
| 4316 | + elseif ((ctype_digit(substr($datetime, -6, 6))) && // 6 pos offset |
|
| 4317 | + (' +' == substr($datetime, -8, 2)) || |
|
| 4318 | + (' -' == substr($datetime, -8, 2))) { |
|
| 4319 | + $tz = substr($datetime, -7, 7); |
|
| 4320 | + $datetime = substr($datetime, 0, ($len - 7)); |
|
| 4321 | 4321 | } |
| 4322 | - elseif( ( 6 < $len ) && ( ctype_digit( substr( $datetime, -6, 6 )))) { |
|
| 4322 | + elseif ((6 < $len) && (ctype_digit(substr($datetime, -6, 6)))) { |
|
| 4323 | 4323 | $continue = TRUE; |
| 4324 | 4324 | } |
| 4325 | - elseif( 'T' == substr( $datetime, -7, 1 )) { |
|
| 4325 | + elseif ('T' == substr($datetime, -7, 1)) { |
|
| 4326 | 4326 | $continue = TRUE; |
| 4327 | 4327 | } |
| 4328 | 4328 | else { |
| 4329 | - $cx = $tx = 0; // 19970415T133000 US-Eastern |
|
| 4330 | - for( $cx = -1; $cx > ( 9 - $len ); $cx-- ) { |
|
| 4331 | - if(( ' ' == substr( $datetime, $cx, 1 )) || ctype_digit( substr( $datetime, $cx, 1 ))) |
|
| 4329 | + $cx = $tx = 0; // 19970415T133000 US-Eastern |
|
| 4330 | + for ($cx = -1; $cx > (9 - $len); $cx--) { |
|
| 4331 | + if ((' ' == substr($datetime, $cx, 1)) || ctype_digit(substr($datetime, $cx, 1))) |
|
| 4332 | 4332 | break; // if exists, tz ends here.. . ? |
| 4333 | - elseif( ctype_alpha( substr( $datetime, $cx, 1 )) || |
|
| 4334 | - ( in_array( substr( $datetime, $cx, 1 ), array( '-', '/' )))) |
|
| 4333 | + elseif (ctype_alpha(substr($datetime, $cx, 1)) || |
|
| 4334 | + (in_array(substr($datetime, $cx, 1), array('-', '/')))) |
|
| 4335 | 4335 | $tx--; // tz length counter |
| 4336 | 4336 | } |
| 4337 | - if( 0 > $tx ) { |
|
| 4338 | - $tz = substr( $datetime, $tx ); |
|
| 4339 | - $datetime = trim( substr( $datetime, 0, $len + $tx + 1 )); |
|
| 4337 | + if (0 > $tx) { |
|
| 4338 | + $tz = substr($datetime, $tx); |
|
| 4339 | + $datetime = trim(substr($datetime, 0, $len + $tx + 1)); |
|
| 4340 | 4340 | } |
| 4341 | 4341 | } |
| 4342 | - if( 0 < substr_count( $datetime, '-' )) { |
|
| 4343 | - $datetime = str_replace( '-', '/', $datetime ); |
|
| 4344 | - } |
|
| 4345 | - elseif( ctype_digit( substr( $datetime, 0, 8 )) && |
|
| 4346 | - ( 'T' == substr( $datetime, 8, 1 )) && |
|
| 4347 | - ctype_digit( substr( $datetime, 9, 6 ))) { |
|
| 4348 | - $datetime = substr( $datetime, 4, 2 ) |
|
| 4349 | - .'/'.substr( $datetime, 6, 2 ) |
|
| 4350 | - .'/'.substr( $datetime, 0, 4 ) |
|
| 4351 | - .' '.substr( $datetime, 9, 2 ) |
|
| 4352 | - .':'.substr( $datetime, 11, 2 ) |
|
| 4353 | - .':'.substr( $datetime, 13); |
|
| 4354 | - } |
|
| 4355 | - $datestring = date( 'Y-m-d H:i:s', strtotime( $datetime )); |
|
| 4356 | - $tz = trim( $tz ); |
|
| 4342 | + if (0 < substr_count($datetime, '-')) { |
|
| 4343 | + $datetime = str_replace('-', '/', $datetime); |
|
| 4344 | + } |
|
| 4345 | + elseif (ctype_digit(substr($datetime, 0, 8)) && |
|
| 4346 | + ('T' == substr($datetime, 8, 1)) && |
|
| 4347 | + ctype_digit(substr($datetime, 9, 6))) { |
|
| 4348 | + $datetime = substr($datetime, 4, 2) |
|
| 4349 | + .'/'.substr($datetime, 6, 2) |
|
| 4350 | + .'/'.substr($datetime, 0, 4) |
|
| 4351 | + .' '.substr($datetime, 9, 2) |
|
| 4352 | + .':'.substr($datetime, 11, 2) |
|
| 4353 | + .':'.substr($datetime, 13); |
|
| 4354 | + } |
|
| 4355 | + $datestring = date('Y-m-d H:i:s', strtotime($datetime)); |
|
| 4356 | + $tz = trim($tz); |
|
| 4357 | 4357 | $output = array(); |
| 4358 | - $output['year'] = substr( $datestring, 0, 4 ); |
|
| 4359 | - $output['month'] = substr( $datestring, 5, 2 ); |
|
| 4360 | - $output['day'] = substr( $datestring, 8, 2 ); |
|
| 4361 | - if(( 6 == $parno ) || ( 7 == $parno )) { |
|
| 4362 | - $output['hour'] = substr( $datestring, 11, 2 ); |
|
| 4363 | - $output['min'] = substr( $datestring, 14, 2 ); |
|
| 4364 | - $output['sec'] = substr( $datestring, 17, 2 ); |
|
| 4365 | - if( !empty( $tz )) |
|
| 4358 | + $output['year'] = substr($datestring, 0, 4); |
|
| 4359 | + $output['month'] = substr($datestring, 5, 2); |
|
| 4360 | + $output['day'] = substr($datestring, 8, 2); |
|
| 4361 | + if ((6 == $parno) || (7 == $parno)) { |
|
| 4362 | + $output['hour'] = substr($datestring, 11, 2); |
|
| 4363 | + $output['min'] = substr($datestring, 14, 2); |
|
| 4364 | + $output['sec'] = substr($datestring, 17, 2); |
|
| 4365 | + if (!empty($tz)) |
|
| 4366 | 4366 | $output['tz'] = $tz; |
| 4367 | 4367 | } |
| 4368 | - elseif( 3 != $parno ) { |
|
| 4369 | - if(( '00' < substr( $datestring, 11, 2 )) || |
|
| 4370 | - ( '00' < substr( $datestring, 14, 2 )) || |
|
| 4371 | - ( '00' < substr( $datestring, 17, 2 ))) { |
|
| 4372 | - $output['hour'] = substr( $datestring, 11, 2 ); |
|
| 4373 | - $output['min'] = substr( $datestring, 14, 2 ); |
|
| 4374 | - $output['sec'] = substr( $datestring, 17, 2 ); |
|
| 4368 | + elseif (3 != $parno) { |
|
| 4369 | + if (('00' < substr($datestring, 11, 2)) || |
|
| 4370 | + ('00' < substr($datestring, 14, 2)) || |
|
| 4371 | + ('00' < substr($datestring, 17, 2))) { |
|
| 4372 | + $output['hour'] = substr($datestring, 11, 2); |
|
| 4373 | + $output['min'] = substr($datestring, 14, 2); |
|
| 4374 | + $output['sec'] = substr($datestring, 17, 2); |
|
| 4375 | 4375 | } |
| 4376 | - if( !empty( $tz )) |
|
| 4377 | - $output['tz'] = $tz; |
|
| 4376 | + if (!empty($tz)) |
|
| 4377 | + $output['tz'] = $tz; |
|
| 4378 | 4378 | } |
| 4379 | 4379 | return $output; |
| 4380 | 4380 | } |
@@ -4386,26 +4386,26 @@ discard block |
||
| 4386 | 4386 | * @param array $duration |
| 4387 | 4387 | * @return array |
| 4388 | 4388 | */ |
| 4389 | - function _duration_array( $duration ) { |
|
| 4389 | + function _duration_array($duration) { |
|
| 4390 | 4390 | $output = array(); |
| 4391 | - if( is_array( $duration ) && |
|
| 4392 | - ( 1 == count( $duration )) && |
|
| 4393 | - isset( $duration['sec'] ) && |
|
| 4394 | - ( 60 < $duration['sec'] )) { |
|
| 4391 | + if (is_array($duration) && |
|
| 4392 | + (1 == count($duration)) && |
|
| 4393 | + isset($duration['sec']) && |
|
| 4394 | + (60 < $duration['sec'])) { |
|
| 4395 | 4395 | $durseconds = $duration['sec']; |
| 4396 | - $output['week'] = floor( $durseconds / ( 60 * 60 * 24 * 7 )); |
|
| 4397 | - $durseconds = $durseconds % ( 60 * 60 * 24 * 7 ); |
|
| 4398 | - $output['day'] = floor( $durseconds / ( 60 * 60 * 24 )); |
|
| 4399 | - $durseconds = $durseconds % ( 60 * 60 * 24 ); |
|
| 4400 | - $output['hour'] = floor( $durseconds / ( 60 * 60 )); |
|
| 4401 | - $durseconds = $durseconds % ( 60 * 60 ); |
|
| 4402 | - $output['min'] = floor( $durseconds / ( 60 )); |
|
| 4403 | - $output['sec'] = ( $durseconds % ( 60 )); |
|
| 4396 | + $output['week'] = floor($durseconds / (60 * 60 * 24 * 7)); |
|
| 4397 | + $durseconds = $durseconds % (60 * 60 * 24 * 7); |
|
| 4398 | + $output['day'] = floor($durseconds / (60 * 60 * 24)); |
|
| 4399 | + $durseconds = $durseconds % (60 * 60 * 24); |
|
| 4400 | + $output['hour'] = floor($durseconds / (60 * 60)); |
|
| 4401 | + $durseconds = $durseconds % (60 * 60); |
|
| 4402 | + $output['min'] = floor($durseconds / (60)); |
|
| 4403 | + $output['sec'] = ($durseconds % (60)); |
|
| 4404 | 4404 | } |
| 4405 | 4405 | else { |
| 4406 | - foreach( $duration as $durKey => $durValue ) { |
|
| 4407 | - if( empty( $durValue )) continue; |
|
| 4408 | - switch ( $durKey ) { |
|
| 4406 | + foreach ($duration as $durKey => $durValue) { |
|
| 4407 | + if (empty($durValue)) continue; |
|
| 4408 | + switch ($durKey) { |
|
| 4409 | 4409 | case '0': case 'week': $output['week'] = $durValue; break; |
| 4410 | 4410 | case '1': case 'day': $output['day'] = $durValue; break; |
| 4411 | 4411 | case '2': case 'hour': $output['hour'] = $durValue; break; |
@@ -4414,19 +4414,19 @@ discard block |
||
| 4414 | 4414 | } |
| 4415 | 4415 | } |
| 4416 | 4416 | } |
| 4417 | - if( isset( $output['week'] ) && ( 0 < $output['week'] )) { |
|
| 4418 | - unset( $output['day'], $output['hour'], $output['min'], $output['sec'] ); |
|
| 4417 | + if (isset($output['week']) && (0 < $output['week'])) { |
|
| 4418 | + unset($output['day'], $output['hour'], $output['min'], $output['sec']); |
|
| 4419 | 4419 | return $output; |
| 4420 | 4420 | } |
| 4421 | - unset( $output['week'] ); |
|
| 4422 | - if( empty( $output['day'] )) |
|
| 4423 | - unset( $output['day'] ); |
|
| 4424 | - if ( isset( $output['hour'] ) || isset( $output['min'] ) || isset( $output['sec'] )) { |
|
| 4425 | - if( !isset( $output['hour'] )) $output['hour'] = 0; |
|
| 4426 | - if( !isset( $output['min'] )) $output['min'] = 0; |
|
| 4427 | - if( !isset( $output['sec'] )) $output['sec'] = 0; |
|
| 4428 | - if(( 0 == $output['hour'] ) && ( 0 == $output['min'] ) && ( 0 == $output['sec'] )) |
|
| 4429 | - unset( $output['hour'], $output['min'], $output['sec'] ); |
|
| 4421 | + unset($output['week']); |
|
| 4422 | + if (empty($output['day'])) |
|
| 4423 | + unset($output['day']); |
|
| 4424 | + if (isset($output['hour']) || isset($output['min']) || isset($output['sec'])) { |
|
| 4425 | + if (!isset($output['hour'])) $output['hour'] = 0; |
|
| 4426 | + if (!isset($output['min'])) $output['min'] = 0; |
|
| 4427 | + if (!isset($output['sec'])) $output['sec'] = 0; |
|
| 4428 | + if ((0 == $output['hour']) && (0 == $output['min']) && (0 == $output['sec'])) |
|
| 4429 | + unset($output['hour'], $output['min'], $output['sec']); |
|
| 4430 | 4430 | } |
| 4431 | 4431 | return $output; |
| 4432 | 4432 | } |
@@ -4439,43 +4439,43 @@ discard block |
||
| 4439 | 4439 | * @param array $duration, optional |
| 4440 | 4440 | * @return array, date format |
| 4441 | 4441 | */ |
| 4442 | - function duration2date( $startdate=FALSE, $duration=FALSE ) { |
|
| 4443 | - if( $startdate && $duration ) { |
|
| 4442 | + function duration2date($startdate = FALSE, $duration = FALSE) { |
|
| 4443 | + if ($startdate && $duration) { |
|
| 4444 | 4444 | $d1 = $startdate; |
| 4445 | 4445 | $dur = $duration; |
| 4446 | 4446 | } |
| 4447 | - elseif( isset( $this->dtstart['value'] ) && isset( $this->duration['value'] )) { |
|
| 4447 | + elseif (isset($this->dtstart['value']) && isset($this->duration['value'])) { |
|
| 4448 | 4448 | $d1 = $this->dtstart['value']; |
| 4449 | 4449 | $dur = $this->duration['value']; |
| 4450 | 4450 | } |
| 4451 | 4451 | else |
| 4452 | 4452 | return null; |
| 4453 | - $dateOnly = ( isset( $d1['hour'] ) || isset( $d1['min'] ) || isset( $d1['sec'] )) ? FALSE : TRUE; |
|
| 4454 | - $d1['hour'] = ( isset( $d1['hour'] )) ? $d1['hour'] : 0; |
|
| 4455 | - $d1['min'] = ( isset( $d1['min'] )) ? $d1['min'] : 0; |
|
| 4456 | - $d1['sec'] = ( isset( $d1['sec'] )) ? $d1['sec'] : 0; |
|
| 4457 | - $dtend = mktime( $d1['hour'], $d1['min'], $d1['sec'], $d1['month'], $d1['day'], $d1['year'] ); |
|
| 4458 | - if( isset( $dur['week'] )) |
|
| 4459 | - $dtend += ( $dur['week'] * 7 * 24 * 60 * 60 ); |
|
| 4460 | - if( isset( $dur['day'] )) |
|
| 4461 | - $dtend += ( $dur['day'] * 24 * 60 * 60 ); |
|
| 4462 | - if( isset( $dur['hour'] )) |
|
| 4463 | - $dtend += ( $dur['hour'] * 60 *60 ); |
|
| 4464 | - if( isset( $dur['min'] )) |
|
| 4465 | - $dtend += ( $dur['min'] * 60 ); |
|
| 4466 | - if( isset( $dur['sec'] )) |
|
| 4467 | - $dtend += $dur['sec']; |
|
| 4453 | + $dateOnly = (isset($d1['hour']) || isset($d1['min']) || isset($d1['sec'])) ? FALSE : TRUE; |
|
| 4454 | + $d1['hour'] = (isset($d1['hour'])) ? $d1['hour'] : 0; |
|
| 4455 | + $d1['min'] = (isset($d1['min'])) ? $d1['min'] : 0; |
|
| 4456 | + $d1['sec'] = (isset($d1['sec'])) ? $d1['sec'] : 0; |
|
| 4457 | + $dtend = mktime($d1['hour'], $d1['min'], $d1['sec'], $d1['month'], $d1['day'], $d1['year']); |
|
| 4458 | + if (isset($dur['week'])) |
|
| 4459 | + $dtend += ($dur['week'] * 7 * 24 * 60 * 60); |
|
| 4460 | + if (isset($dur['day'])) |
|
| 4461 | + $dtend += ($dur['day'] * 24 * 60 * 60); |
|
| 4462 | + if (isset($dur['hour'])) |
|
| 4463 | + $dtend += ($dur['hour'] * 60 * 60); |
|
| 4464 | + if (isset($dur['min'])) |
|
| 4465 | + $dtend += ($dur['min'] * 60); |
|
| 4466 | + if (isset($dur['sec'])) |
|
| 4467 | + $dtend += $dur['sec']; |
|
| 4468 | 4468 | $dtend2 = array(); |
| 4469 | - $dtend2['year'] = date('Y', $dtend ); |
|
| 4470 | - $dtend2['month'] = date('m', $dtend ); |
|
| 4471 | - $dtend2['day'] = date('d', $dtend ); |
|
| 4472 | - $dtend2['hour'] = date('H', $dtend ); |
|
| 4473 | - $dtend2['min'] = date('i', $dtend ); |
|
| 4474 | - $dtend2['sec'] = date('s', $dtend ); |
|
| 4475 | - if( isset( $d1['tz'] )) |
|
| 4469 | + $dtend2['year'] = date('Y', $dtend); |
|
| 4470 | + $dtend2['month'] = date('m', $dtend); |
|
| 4471 | + $dtend2['day'] = date('d', $dtend); |
|
| 4472 | + $dtend2['hour'] = date('H', $dtend); |
|
| 4473 | + $dtend2['min'] = date('i', $dtend); |
|
| 4474 | + $dtend2['sec'] = date('s', $dtend); |
|
| 4475 | + if (isset($d1['tz'])) |
|
| 4476 | 4476 | $dtend2['tz'] = $d1['tz']; |
| 4477 | - if( $dateOnly && (( 0 == $dtend2['hour'] ) && ( 0 == $dtend2['min'] ) && ( 0 == $dtend2['sec'] ))) |
|
| 4478 | - unset( $dtend2['hour'], $dtend2['min'], $dtend2['sec'] ); |
|
| 4477 | + if ($dateOnly && ((0 == $dtend2['hour']) && (0 == $dtend2['min']) && (0 == $dtend2['sec']))) |
|
| 4478 | + unset($dtend2['hour'], $dtend2['min'], $dtend2['sec']); |
|
| 4479 | 4479 | return $dtend2; |
| 4480 | 4480 | } |
| 4481 | 4481 | /** |
@@ -4486,21 +4486,21 @@ discard block |
||
| 4486 | 4486 | * @param string $duration |
| 4487 | 4487 | * @return array |
| 4488 | 4488 | */ |
| 4489 | - function _duration_string( $duration ) { |
|
| 4490 | - $duration = (string) trim( $duration ); |
|
| 4491 | - while( 'P' != strtoupper( substr( $duration, 0, 1 ))) { |
|
| 4492 | - if( 0 < strlen( $duration )) |
|
| 4493 | - $duration = substr( $duration, 1 ); |
|
| 4489 | + function _duration_string($duration) { |
|
| 4490 | + $duration = (string) trim($duration); |
|
| 4491 | + while ('P' != strtoupper(substr($duration, 0, 1))) { |
|
| 4492 | + if (0 < strlen($duration)) |
|
| 4493 | + $duration = substr($duration, 1); |
|
| 4494 | 4494 | else |
| 4495 | 4495 | return false; // no leading P !?!? |
| 4496 | 4496 | } |
| 4497 | - $duration = substr( $duration, 1 ); // skip P |
|
| 4498 | - $duration = str_replace ( 't', 'T', $duration ); |
|
| 4499 | - $duration = str_replace ( 'T', '', $duration ); |
|
| 4497 | + $duration = substr($duration, 1); // skip P |
|
| 4498 | + $duration = str_replace('t', 'T', $duration); |
|
| 4499 | + $duration = str_replace('T', '', $duration); |
|
| 4500 | 4500 | $output = array(); |
| 4501 | 4501 | $val = null; |
| 4502 | - for( $ix=0; $ix < strlen( $duration ); $ix++ ) { |
|
| 4503 | - switch( strtoupper( $duration{$ix} )) { |
|
| 4502 | + for ($ix = 0; $ix < strlen($duration); $ix++) { |
|
| 4503 | + switch (strtoupper($duration{$ix} )) { |
|
| 4504 | 4504 | case 'W': |
| 4505 | 4505 | $output['week'] = $val; |
| 4506 | 4506 | $val = null; |
@@ -4522,13 +4522,13 @@ discard block |
||
| 4522 | 4522 | $val = null; |
| 4523 | 4523 | break; |
| 4524 | 4524 | default: |
| 4525 | - if( !ctype_digit( $duration{$ix} )) |
|
| 4525 | + if (!ctype_digit($duration{$ix} )) |
|
| 4526 | 4526 | return false; // unknown duration controll character !?!? |
| 4527 | 4527 | else |
| 4528 | 4528 | $val .= $duration{$ix}; |
| 4529 | 4529 | } |
| 4530 | 4530 | } |
| 4531 | - return $this->_duration_array( $output ); |
|
| 4531 | + return $this->_duration_array($output); |
|
| 4532 | 4532 | } |
| 4533 | 4533 | /** |
| 4534 | 4534 | * if not preSet, if exist, remove key with expected value from array and return hit value else return elseValue |
@@ -4543,15 +4543,15 @@ discard block |
||
| 4543 | 4543 | * @param int $preSet optional, return value if already preset |
| 4544 | 4544 | * @return int |
| 4545 | 4545 | */ |
| 4546 | - function _existRem( &$array, $expkey, $expval=FALSE, $hitVal=null, $elseVal=null, $preSet=null ) { |
|
| 4547 | - if( $preSet ) |
|
| 4546 | + function _existRem(&$array, $expkey, $expval = FALSE, $hitVal = null, $elseVal = null, $preSet = null) { |
|
| 4547 | + if ($preSet) |
|
| 4548 | 4548 | return $preSet; |
| 4549 | - if( !is_array( $array ) || ( 0 == count( $array ))) |
|
| 4549 | + if (!is_array($array) || (0 == count($array))) |
|
| 4550 | 4550 | return $elseVal; |
| 4551 | - foreach( $array as $key => $value ) { |
|
| 4552 | - if( strtoupper( $expkey ) == strtoupper( $key )) { |
|
| 4553 | - if( !$expval || ( strtoupper( $expval ) == strtoupper( $array[$key] ))) { |
|
| 4554 | - unset( $array[$key] ); |
|
| 4551 | + foreach ($array as $key => $value) { |
|
| 4552 | + if (strtoupper($expkey) == strtoupper($key)) { |
|
| 4553 | + if (!$expval || (strtoupper($expval) == strtoupper($array[$key]))) { |
|
| 4554 | + unset($array[$key]); |
|
| 4555 | 4555 | return $hitVal; |
| 4556 | 4556 | } |
| 4557 | 4557 | } |
@@ -4567,48 +4567,48 @@ discard block |
||
| 4567 | 4567 | * @param int $parno, optional, default 6 |
| 4568 | 4568 | * @return string |
| 4569 | 4569 | */ |
| 4570 | - function _format_date_time( $datetime, $parno=6 ) { |
|
| 4571 | - if( !isset( $datetime['year'] ) && |
|
| 4572 | - !isset( $datetime['month'] ) && |
|
| 4573 | - !isset( $datetime['day'] ) && |
|
| 4574 | - !isset( $datetime['hour'] ) && |
|
| 4575 | - !isset( $datetime['min'] ) && |
|
| 4576 | - !isset( $datetime['sec'] )) |
|
| 4577 | - return ; |
|
| 4570 | + function _format_date_time($datetime, $parno = 6) { |
|
| 4571 | + if (!isset($datetime['year']) && |
|
| 4572 | + !isset($datetime['month']) && |
|
| 4573 | + !isset($datetime['day']) && |
|
| 4574 | + !isset($datetime['hour']) && |
|
| 4575 | + !isset($datetime['min']) && |
|
| 4576 | + !isset($datetime['sec'])) |
|
| 4577 | + return; |
|
| 4578 | 4578 | $output = null; |
| 4579 | 4579 | // if( !isset( $datetime['day'] )) { $o=''; foreach($datetime as $k=>$v) {if(is_array($v)) $v=implode('-',$v);$o.=" $k=>$v";} echo " day SAKNAS : $o <br />\n"; } |
| 4580 | - foreach( $datetime as $dkey => $dvalue ) { |
|
| 4581 | - if( 'tz' != $dkey ) |
|
| 4580 | + foreach ($datetime as $dkey => $dvalue) { |
|
| 4581 | + if ('tz' != $dkey) |
|
| 4582 | 4582 | $datetime[$dkey] = (integer) $dvalue; |
| 4583 | 4583 | } |
| 4584 | - $output = date('Ymd', mktime( 0, 0, 0, $datetime['month'], $datetime['day'], $datetime['year'])); |
|
| 4585 | - if( isset( $datetime['hour'] ) || |
|
| 4586 | - isset( $datetime['min'] ) || |
|
| 4587 | - isset( $datetime['sec'] ) || |
|
| 4588 | - isset( $datetime['tz'] )) { |
|
| 4589 | - if( isset( $datetime['tz'] ) && |
|
| 4590 | - !isset( $datetime['hour'] )) |
|
| 4584 | + $output = date('Ymd', mktime(0, 0, 0, $datetime['month'], $datetime['day'], $datetime['year'])); |
|
| 4585 | + if (isset($datetime['hour']) || |
|
| 4586 | + isset($datetime['min']) || |
|
| 4587 | + isset($datetime['sec']) || |
|
| 4588 | + isset($datetime['tz'])) { |
|
| 4589 | + if (isset($datetime['tz']) && |
|
| 4590 | + !isset($datetime['hour'])) |
|
| 4591 | 4591 | $datetime['hour'] = 0; |
| 4592 | - if( isset( $datetime['hour'] ) && |
|
| 4593 | - !isset( $datetime['min'] )) |
|
| 4592 | + if (isset($datetime['hour']) && |
|
| 4593 | + !isset($datetime['min'])) |
|
| 4594 | 4594 | $datetime['min'] = 0; |
| 4595 | - if( isset( $datetime['hour'] ) && |
|
| 4596 | - isset( $datetime['min'] ) && |
|
| 4597 | - !isset( $datetime['sec'] )) |
|
| 4595 | + if (isset($datetime['hour']) && |
|
| 4596 | + isset($datetime['min']) && |
|
| 4597 | + !isset($datetime['sec'])) |
|
| 4598 | 4598 | $datetime['sec'] = 0; |
| 4599 | - $date = mktime( $datetime['hour'], $datetime['min'], $datetime['sec'], $datetime['month'], $datetime['day'], $datetime['year']); |
|
| 4600 | - $output .= date('\THis', $date ); |
|
| 4601 | - if( isset( $datetime['tz'] ) && ( '' < trim ( $datetime['tz'] ))) { |
|
| 4602 | - $datetime['tz'] = trim( $datetime['tz'] ); |
|
| 4603 | - if( 'Z' == $datetime['tz'] ) |
|
| 4599 | + $date = mktime($datetime['hour'], $datetime['min'], $datetime['sec'], $datetime['month'], $datetime['day'], $datetime['year']); |
|
| 4600 | + $output .= date('\THis', $date); |
|
| 4601 | + if (isset($datetime['tz']) && ('' < trim($datetime['tz']))) { |
|
| 4602 | + $datetime['tz'] = trim($datetime['tz']); |
|
| 4603 | + if ('Z' == $datetime['tz']) |
|
| 4604 | 4604 | $output .= 'Z'; |
| 4605 | - $offset = $this->_tz2offset( $datetime['tz'] ); |
|
| 4606 | - if( 0 != $offset ) { |
|
| 4607 | - $date = mktime( $datetime['hour'], $datetime['min'], ($datetime['sec'] + $offset), $datetime['month'], $datetime['day'], $datetime['year']); |
|
| 4608 | - $output = date( 'Ymd\THis\Z', $date ); |
|
| 4605 | + $offset = $this->_tz2offset($datetime['tz']); |
|
| 4606 | + if (0 != $offset) { |
|
| 4607 | + $date = mktime($datetime['hour'], $datetime['min'], ($datetime['sec'] + $offset), $datetime['month'], $datetime['day'], $datetime['year']); |
|
| 4608 | + $output = date('Ymd\THis\Z', $date); |
|
| 4609 | 4609 | } |
| 4610 | 4610 | } |
| 4611 | - elseif( 7 == $parno ) |
|
| 4611 | + elseif (7 == $parno) |
|
| 4612 | 4612 | $output .= 'Z'; |
| 4613 | 4613 | } |
| 4614 | 4614 | return $output; |
@@ -4621,26 +4621,26 @@ discard block |
||
| 4621 | 4621 | * @param array $duration ( week, day, hour, min, sec ) |
| 4622 | 4622 | * @return string |
| 4623 | 4623 | */ |
| 4624 | - function _format_duration( $duration ) { |
|
| 4625 | - if( !isset( $duration['week'] ) && |
|
| 4626 | - !isset( $duration['day'] ) && |
|
| 4627 | - !isset( $duration['hour'] ) && |
|
| 4628 | - !isset( $duration['min'] ) && |
|
| 4629 | - !isset( $duration['sec'] )) |
|
| 4624 | + function _format_duration($duration) { |
|
| 4625 | + if (!isset($duration['week']) && |
|
| 4626 | + !isset($duration['day']) && |
|
| 4627 | + !isset($duration['hour']) && |
|
| 4628 | + !isset($duration['min']) && |
|
| 4629 | + !isset($duration['sec'])) |
|
| 4630 | 4630 | return; |
| 4631 | 4631 | $output = 'P'; |
| 4632 | - if( isset( $duration['week'] ) && ( 0 < $duration['week'] )) |
|
| 4632 | + if (isset($duration['week']) && (0 < $duration['week'])) |
|
| 4633 | 4633 | $output .= $duration['week'].'W'; |
| 4634 | 4634 | else { |
| 4635 | - if( isset($duration['day'] ) && ( 0 < $duration['day'] )) |
|
| 4635 | + if (isset($duration['day']) && (0 < $duration['day'])) |
|
| 4636 | 4636 | $output .= $duration['day'].'D'; |
| 4637 | - if(( isset( $duration['hour']) && ( 0 < $duration['hour'] )) || |
|
| 4638 | - ( isset( $duration['min']) && ( 0 < $duration['min'] )) || |
|
| 4639 | - ( isset( $duration['sec']) && ( 0 < $duration['sec'] ))) { |
|
| 4637 | + if ((isset($duration['hour']) && (0 < $duration['hour'])) || |
|
| 4638 | + (isset($duration['min']) && (0 < $duration['min'])) || |
|
| 4639 | + (isset($duration['sec']) && (0 < $duration['sec']))) { |
|
| 4640 | 4640 | $output .= 'T'; |
| 4641 | - $output .= ( isset( $duration['hour']) && ( 0 < $duration['hour'] )) ? $duration['hour'].'H' : '0H'; |
|
| 4642 | - $output .= ( isset( $duration['min']) && ( 0 < $duration['min'] )) ? $duration['min']. 'M' : '0M'; |
|
| 4643 | - $output .= ( isset( $duration['sec']) && ( 0 < $duration['sec'] )) ? $duration['sec']. 'S' : '0S'; |
|
| 4641 | + $output .= (isset($duration['hour']) && (0 < $duration['hour'])) ? $duration['hour'].'H' : '0H'; |
|
| 4642 | + $output .= (isset($duration['min']) && (0 < $duration['min'])) ? $duration['min'].'M' : '0M'; |
|
| 4643 | + $output .= (isset($duration['sec']) && (0 < $duration['sec'])) ? $duration['sec'].'S' : '0S'; |
|
| 4644 | 4644 | } |
| 4645 | 4645 | } |
| 4646 | 4646 | return $output; |
@@ -4654,24 +4654,24 @@ discard block |
||
| 4654 | 4654 | * @param array $recurdata |
| 4655 | 4655 | * @return string |
| 4656 | 4656 | */ |
| 4657 | - function _format_recur( $recurlabel, $recurdata ) { |
|
| 4657 | + function _format_recur($recurlabel, $recurdata) { |
|
| 4658 | 4658 | $output = null; |
| 4659 | - foreach( $recurdata as $therule ) { |
|
| 4660 | - if( empty( $therule['value'] )) { |
|
| 4661 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( $recurlabel ); |
|
| 4659 | + foreach ($recurdata as $therule) { |
|
| 4660 | + if (empty($therule['value'])) { |
|
| 4661 | + if ($this->getConfig('allowEmpty')) $output .= $this->_createElement($recurlabel); |
|
| 4662 | 4662 | continue; |
| 4663 | 4663 | } |
| 4664 | - $attributes = ( isset( $therule['params'] )) ? $this->_createParams( $therule['params'] ) : null; |
|
| 4665 | - $content1 = $content2 = null; |
|
| 4666 | - foreach( $therule['value'] as $rulelabel => $rulevalue ) { |
|
| 4667 | - switch( $rulelabel ) { |
|
| 4664 | + $attributes = (isset($therule['params'])) ? $this->_createParams($therule['params']) : null; |
|
| 4665 | + $content1 = $content2 = null; |
|
| 4666 | + foreach ($therule['value'] as $rulelabel => $rulevalue) { |
|
| 4667 | + switch ($rulelabel) { |
|
| 4668 | 4668 | case 'FREQ': { |
| 4669 | 4669 | $content1 .= "FREQ=$rulevalue"; |
| 4670 | 4670 | break; |
| 4671 | 4671 | } |
| 4672 | 4672 | case 'UNTIL': { |
| 4673 | 4673 | $content2 .= ";UNTIL="; |
| 4674 | - $content2 .= $this->_format_date_time( $rulevalue ); |
|
| 4674 | + $content2 .= $this->_format_date_time($rulevalue); |
|
| 4675 | 4675 | break; |
| 4676 | 4676 | } |
| 4677 | 4677 | case 'COUNT': |
@@ -4689,9 +4689,9 @@ discard block |
||
| 4689 | 4689 | case 'BYMONTH': |
| 4690 | 4690 | case 'BYSETPOS': { |
| 4691 | 4691 | $content2 .= ";$rulelabel="; |
| 4692 | - if( is_array( $rulevalue )) { |
|
| 4693 | - foreach( $rulevalue as $vix => $valuePart ) { |
|
| 4694 | - $content2 .= ( $vix ) ? ',' : null; |
|
| 4692 | + if (is_array($rulevalue)) { |
|
| 4693 | + foreach ($rulevalue as $vix => $valuePart) { |
|
| 4694 | + $content2 .= ($vix) ? ',' : null; |
|
| 4695 | 4695 | $content2 .= $valuePart; |
| 4696 | 4696 | } |
| 4697 | 4697 | } |
@@ -4702,12 +4702,12 @@ discard block |
||
| 4702 | 4702 | case 'BYDAY': { |
| 4703 | 4703 | $content2 .= ";$rulelabel="; |
| 4704 | 4704 | $bydaycnt = 0; |
| 4705 | - foreach( $rulevalue as $vix => $valuePart ) { |
|
| 4705 | + foreach ($rulevalue as $vix => $valuePart) { |
|
| 4706 | 4706 | $content21 = $content22 = null; |
| 4707 | - if( is_array( $valuePart )) { |
|
| 4708 | - $content2 .= ( $bydaycnt ) ? ',' : null; |
|
| 4709 | - foreach( $valuePart as $vix2 => $valuePart2 ) { |
|
| 4710 | - if( 'DAY' != strtoupper( $vix2 )) |
|
| 4707 | + if (is_array($valuePart)) { |
|
| 4708 | + $content2 .= ($bydaycnt) ? ',' : null; |
|
| 4709 | + foreach ($valuePart as $vix2 => $valuePart2) { |
|
| 4710 | + if ('DAY' != strtoupper($vix2)) |
|
| 4711 | 4711 | $content21 .= $valuePart2; |
| 4712 | 4712 | else |
| 4713 | 4713 | $content22 .= $valuePart2; |
@@ -4716,8 +4716,8 @@ discard block |
||
| 4716 | 4716 | $bydaycnt++; |
| 4717 | 4717 | } |
| 4718 | 4718 | else { |
| 4719 | - $content2 .= ( $bydaycnt ) ? ',' : null; |
|
| 4720 | - if( 'DAY' != strtoupper( $vix )) |
|
| 4719 | + $content2 .= ($bydaycnt) ? ',' : null; |
|
| 4720 | + if ('DAY' != strtoupper($vix)) |
|
| 4721 | 4721 | $content21 .= $valuePart; |
| 4722 | 4722 | else { |
| 4723 | 4723 | $content22 .= $valuePart; |
@@ -4734,7 +4734,7 @@ discard block |
||
| 4734 | 4734 | } |
| 4735 | 4735 | } |
| 4736 | 4736 | } |
| 4737 | - $output .= $this->_createElement( $recurlabel, $attributes, $content1.$content2 ); |
|
| 4737 | + $output .= $this->_createElement($recurlabel, $attributes, $content1.$content2); |
|
| 4738 | 4738 | } |
| 4739 | 4739 | return $output; |
| 4740 | 4740 | } |
@@ -4746,13 +4746,13 @@ discard block |
||
| 4746 | 4746 | * @param string $propertyName |
| 4747 | 4747 | * @return string |
| 4748 | 4748 | */ |
| 4749 | - function _formatPropertyName( $propertyName ) { |
|
| 4750 | - switch( $this->format ) { |
|
| 4749 | + function _formatPropertyName($propertyName) { |
|
| 4750 | + switch ($this->format) { |
|
| 4751 | 4751 | case 'xcal': |
| 4752 | - return strtolower( $propertyName ); |
|
| 4752 | + return strtolower($propertyName); |
|
| 4753 | 4753 | break; |
| 4754 | 4754 | default: |
| 4755 | - return strtoupper( $propertyName ); |
|
| 4755 | + return strtoupper($propertyName); |
|
| 4756 | 4756 | break; |
| 4757 | 4757 | } |
| 4758 | 4758 | } |
@@ -4764,25 +4764,25 @@ discard block |
||
| 4764 | 4764 | * @param array $input |
| 4765 | 4765 | * @return bool |
| 4766 | 4766 | */ |
| 4767 | - function _isArrayDate( $input ) { |
|
| 4768 | - if( isset( $input['week'] ) || ( !in_array( count( $input ), array( 3, 6, 7 )))) |
|
| 4767 | + function _isArrayDate($input) { |
|
| 4768 | + if (isset($input['week']) || (!in_array(count($input), array(3, 6, 7)))) |
|
| 4769 | 4769 | return FALSE; |
| 4770 | - if( 7 == count( $input )) |
|
| 4770 | + if (7 == count($input)) |
|
| 4771 | 4771 | return TRUE; |
| 4772 | - if( isset( $input['year'] ) && isset( $input['month'] ) && isset( $input['day'] )) |
|
| 4773 | - return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 4774 | - if( isset( $input['day'] ) || isset( $input['hour'] ) || isset( $input['min'] ) || isset( $input['sec'] )) |
|
| 4772 | + if (isset($input['year']) && isset($input['month']) && isset($input['day'])) |
|
| 4773 | + return checkdate((int) $input['month'], (int) $input['day'], (int) $input['year']); |
|
| 4774 | + if (isset($input['day']) || isset($input['hour']) || isset($input['min']) || isset($input['sec'])) |
|
| 4775 | 4775 | return FALSE; |
| 4776 | - if( in_array( 0, $input )) |
|
| 4776 | + if (in_array(0, $input)) |
|
| 4777 | 4777 | return FALSE; |
| 4778 | - if(( 1970 > $input[0] ) || ( 12 < $input[1] ) || ( 31 < $input[2] )) |
|
| 4778 | + if ((1970 > $input[0]) || (12 < $input[1]) || (31 < $input[2])) |
|
| 4779 | 4779 | return FALSE; |
| 4780 | - if(( isset( $input[0] ) && isset( $input[1] ) && isset( $input[2] )) && |
|
| 4781 | - checkdate( (int) $input[1], (int) $input[2], (int) $input[0] )) |
|
| 4780 | + if ((isset($input[0]) && isset($input[1]) && isset($input[2])) && |
|
| 4781 | + checkdate((int) $input[1], (int) $input[2], (int) $input[0])) |
|
| 4782 | 4782 | return TRUE; |
| 4783 | - $input = $this->_date_time_string( $input[1].'/'.$input[2].'/'.$input[0], 3 ); // m - d - Y |
|
| 4784 | - if( isset( $input['year'] ) && isset( $input['month'] ) && isset( $input['day'] )) |
|
| 4785 | - return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 4783 | + $input = $this->_date_time_string($input[1].'/'.$input[2].'/'.$input[0], 3); // m - d - Y |
|
| 4784 | + if (isset($input['year']) && isset($input['month']) && isset($input['day'])) |
|
| 4785 | + return checkdate((int) $input['month'], (int) $input['day'], (int) $input['year']); |
|
| 4786 | 4786 | return FALSE; |
| 4787 | 4787 | } |
| 4788 | 4788 | /** |
@@ -4793,8 +4793,8 @@ discard block |
||
| 4793 | 4793 | * @param array $input |
| 4794 | 4794 | * @return bool |
| 4795 | 4795 | */ |
| 4796 | - function _isArrayTimestampDate( $input ) { |
|
| 4797 | - return ( is_array( $input ) && isset( $input['timestamp'] )) ? TRUE : FALSE ; |
|
| 4796 | + function _isArrayTimestampDate($input) { |
|
| 4797 | + return (is_array($input) && isset($input['timestamp'])) ? TRUE : FALSE; |
|
| 4798 | 4798 | } |
| 4799 | 4799 | /** |
| 4800 | 4800 | * controll if input string contains traling UTC offset |
@@ -4804,17 +4804,17 @@ discard block |
||
| 4804 | 4804 | * @param string $input |
| 4805 | 4805 | * @return bool |
| 4806 | 4806 | */ |
| 4807 | - function _isOffset( $input ) { |
|
| 4808 | - $input = trim( (string) $input ); |
|
| 4809 | - if( 'Z' == substr( $input, -1 )) |
|
| 4807 | + function _isOffset($input) { |
|
| 4808 | + $input = trim((string) $input); |
|
| 4809 | + if ('Z' == substr($input, -1)) |
|
| 4810 | 4810 | return TRUE; |
| 4811 | - elseif(( 5 <= strlen( $input )) && |
|
| 4812 | - ( in_array( substr( $input, -5, 1 ), array( '+', '-' ))) && |
|
| 4813 | - ( '0000' < substr( $input, -4 )) && ( '9999' >= substr( $input, -4 ))) |
|
| 4811 | + elseif ((5 <= strlen($input)) && |
|
| 4812 | + (in_array(substr($input, -5, 1), array('+', '-'))) && |
|
| 4813 | + ('0000' < substr($input, -4)) && ('9999' >= substr($input, -4))) |
|
| 4814 | 4814 | return TRUE; |
| 4815 | - elseif(( 7 <= strlen( $input )) && |
|
| 4816 | - ( in_array( substr( $input, -7, 1 ), array( '+', '-' ))) && |
|
| 4817 | - ( '000000' < substr( $input, -6 )) && ( '999999' >= substr( $input, -6 ))) |
|
| 4815 | + elseif ((7 <= strlen($input)) && |
|
| 4816 | + (in_array(substr($input, -7, 1), array('+', '-'))) && |
|
| 4817 | + ('000000' < substr($input, -6)) && ('999999' >= substr($input, -6))) |
|
| 4818 | 4818 | return TRUE; |
| 4819 | 4819 | return FALSE; |
| 4820 | 4820 | |
@@ -4827,15 +4827,15 @@ discard block |
||
| 4827 | 4827 | * @param string $propName |
| 4828 | 4828 | * @return bool |
| 4829 | 4829 | */ |
| 4830 | - function _notExistProp( $propName ) { |
|
| 4831 | - if( empty( $propName )) return FALSE; // when deleting x-prop, an empty propName may be used=allowed |
|
| 4832 | - $propName = strtolower( $propName ); |
|
| 4833 | - if( 'last-modified' == $propName ) { if( !isset( $this->lastmodified )) return TRUE; } |
|
| 4834 | - elseif( 'percent-complete' == $propName ) { if( !isset( $this->percentcomplete )) return TRUE; } |
|
| 4835 | - elseif( 'recurrence-id' == $propName ) { if( !isset( $this->recurrenceid )) return TRUE; } |
|
| 4836 | - elseif( 'related-to' == $propName ) { if( !isset( $this->relatedto )) return TRUE; } |
|
| 4837 | - elseif( 'request-status' == $propName ) { if( !isset( $this->requeststatus )) return TRUE; } |
|
| 4838 | - elseif(( 'x-' != substr($propName,0,2)) && !isset( $this->$propName )) return TRUE; |
|
| 4830 | + function _notExistProp($propName) { |
|
| 4831 | + if (empty($propName)) return FALSE; // when deleting x-prop, an empty propName may be used=allowed |
|
| 4832 | + $propName = strtolower($propName); |
|
| 4833 | + if ('last-modified' == $propName) { if (!isset($this->lastmodified)) return TRUE; } |
|
| 4834 | + elseif ('percent-complete' == $propName) { if (!isset($this->percentcomplete)) return TRUE; } |
|
| 4835 | + elseif ('recurrence-id' == $propName) { if (!isset($this->recurrenceid)) return TRUE; } |
|
| 4836 | + elseif ('related-to' == $propName) { if (!isset($this->relatedto)) return TRUE; } |
|
| 4837 | + elseif ('request-status' == $propName) { if (!isset($this->requeststatus)) return TRUE; } |
|
| 4838 | + elseif (('x-' != substr($propName, 0, 2)) && !isset($this->$propName)) return TRUE; |
|
| 4839 | 4839 | return FALSE; |
| 4840 | 4840 | } |
| 4841 | 4841 | /** |
@@ -4853,101 +4853,101 @@ discard block |
||
| 4853 | 4853 | * @return array of recurrence (start-)dates as index |
| 4854 | 4854 | * @todo BYHOUR, BYMINUTE, BYSECOND, ev. BYSETPOS due to ambiguity, WEEKLY at year end/start |
| 4855 | 4855 | */ |
| 4856 | - function _recur2date( & $result, $recur, $wdate, $startdate, $enddate=FALSE ) { |
|
| 4857 | - foreach( $wdate as $k => $v ) if( ctype_digit( $v )) $wdate[$k] = (int) $v; |
|
| 4858 | - $wdatets = $this->_date2timestamp( $wdate ); |
|
| 4859 | - $startdatets = $this->_date2timestamp( $startdate ); |
|
| 4860 | - if( !$enddate ) { |
|
| 4856 | + function _recur2date(& $result, $recur, $wdate, $startdate, $enddate = FALSE) { |
|
| 4857 | + foreach ($wdate as $k => $v) if (ctype_digit($v)) $wdate[$k] = (int) $v; |
|
| 4858 | + $wdatets = $this->_date2timestamp($wdate); |
|
| 4859 | + $startdatets = $this->_date2timestamp($startdate); |
|
| 4860 | + if (!$enddate) { |
|
| 4861 | 4861 | $enddate = $startdate; |
| 4862 | 4862 | $enddate['year'] += 1; |
| 4863 | 4863 | // echo "recur __in_ ".implode('-',$startdate)." period start ".implode('-',$wdate)." period end ".implode('-',$enddate)."<br />\n";print_r($recur);echo "<br />\n";//test### |
| 4864 | 4864 | } |
| 4865 | - $endDatets = $this->_date2timestamp( $enddate ); // fix break |
|
| 4866 | - if( !isset( $recur['COUNT'] ) && !isset( $recur['UNTIL'] )) |
|
| 4865 | + $endDatets = $this->_date2timestamp($enddate); // fix break |
|
| 4866 | + if (!isset($recur['COUNT']) && !isset($recur['UNTIL'])) |
|
| 4867 | 4867 | $recur['UNTIL'] = $enddate; // create break |
| 4868 | - if( isset( $recur['UNTIL'] )) { |
|
| 4869 | - $tdatets = $this->_date2timestamp( $recur['UNTIL'] ); |
|
| 4870 | - if( $endDatets > $tdatets ) { |
|
| 4868 | + if (isset($recur['UNTIL'])) { |
|
| 4869 | + $tdatets = $this->_date2timestamp($recur['UNTIL']); |
|
| 4870 | + if ($endDatets > $tdatets) { |
|
| 4871 | 4871 | $endDatets = $tdatets; // emergency break |
| 4872 | - $enddate = $this->_timestamp2date( $endDatets, 6 ); |
|
| 4872 | + $enddate = $this->_timestamp2date($endDatets, 6); |
|
| 4873 | 4873 | } |
| 4874 | 4874 | else |
| 4875 | - $recur['UNTIL'] = $this->_timestamp2date( $endDatets, 6 ); |
|
| 4875 | + $recur['UNTIL'] = $this->_timestamp2date($endDatets, 6); |
|
| 4876 | 4876 | } |
| 4877 | - if( $wdatets > $endDatets ) { |
|
| 4877 | + if ($wdatets > $endDatets) { |
|
| 4878 | 4878 | //echo "recur out of date ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$wdatets),6))."<br />\n";//test |
| 4879 | 4879 | return array(); // nothing to do.. . |
| 4880 | 4880 | } |
| 4881 | - if( !isset( $recur['FREQ'] )) // "MUST be specified.. ." |
|
| 4881 | + if (!isset($recur['FREQ'])) // "MUST be specified.. ." |
|
| 4882 | 4882 | $recur['FREQ'] = 'DAILY'; // ?? |
| 4883 | - $wkst = ( isset( $recur['WKST'] ) && ( 'SU' == $recur['WKST'] )) ? 24*60*60 : 0; // ?? |
|
| 4884 | - if( !isset( $recur['INTERVAL'] )) |
|
| 4883 | + $wkst = (isset($recur['WKST']) && ('SU' == $recur['WKST'])) ? 24 * 60 * 60 : 0; // ?? |
|
| 4884 | + if (!isset($recur['INTERVAL'])) |
|
| 4885 | 4885 | $recur['INTERVAL'] = 1; |
| 4886 | - $countcnt = ( !isset( $recur['BYSETPOS'] )) ? 1 : 0; // DTSTART counts as the first occurrence |
|
| 4886 | + $countcnt = (!isset($recur['BYSETPOS'])) ? 1 : 0; // DTSTART counts as the first occurrence |
|
| 4887 | 4887 | /* find out how to step up dates and set index for interval count */ |
| 4888 | 4888 | $step = array(); |
| 4889 | - if( 'YEARLY' == $recur['FREQ'] ) |
|
| 4889 | + if ('YEARLY' == $recur['FREQ']) |
|
| 4890 | 4890 | $step['year'] = 1; |
| 4891 | - elseif( 'MONTHLY' == $recur['FREQ'] ) |
|
| 4891 | + elseif ('MONTHLY' == $recur['FREQ']) |
|
| 4892 | 4892 | $step['month'] = 1; |
| 4893 | - elseif( 'WEEKLY' == $recur['FREQ'] ) |
|
| 4893 | + elseif ('WEEKLY' == $recur['FREQ']) |
|
| 4894 | 4894 | $step['day'] = 7; |
| 4895 | 4895 | else |
| 4896 | 4896 | $step['day'] = 1; |
| 4897 | - if( isset( $step['year'] ) && isset( $recur['BYMONTH'] )) |
|
| 4898 | - $step = array( 'month' => 1 ); |
|
| 4899 | - if( empty( $step ) && isset( $recur['BYWEEKNO'] )) // ?? |
|
| 4900 | - $step = array( 'day' => 7 ); |
|
| 4901 | - if( isset( $recur['BYYEARDAY'] ) || isset( $recur['BYMONTHDAY'] ) || isset( $recur['BYDAY'] )) |
|
| 4902 | - $step = array( 'day' => 1 ); |
|
| 4897 | + if (isset($step['year']) && isset($recur['BYMONTH'])) |
|
| 4898 | + $step = array('month' => 1); |
|
| 4899 | + if (empty($step) && isset($recur['BYWEEKNO'])) // ?? |
|
| 4900 | + $step = array('day' => 7); |
|
| 4901 | + if (isset($recur['BYYEARDAY']) || isset($recur['BYMONTHDAY']) || isset($recur['BYDAY'])) |
|
| 4902 | + $step = array('day' => 1); |
|
| 4903 | 4903 | $intervalarr = array(); |
| 4904 | - if( 1 < $recur['INTERVAL'] ) { |
|
| 4905 | - $intervalix = $this->_recurIntervalIx( $recur['FREQ'], $wdate, $wkst ); |
|
| 4906 | - $intervalarr = array( $intervalix => 0 ); |
|
| 4904 | + if (1 < $recur['INTERVAL']) { |
|
| 4905 | + $intervalix = $this->_recurIntervalIx($recur['FREQ'], $wdate, $wkst); |
|
| 4906 | + $intervalarr = array($intervalix => 0); |
|
| 4907 | 4907 | } |
| 4908 | - if( isset( $recur['BYSETPOS'] )) { // save start date + weekno |
|
| 4908 | + if (isset($recur['BYSETPOS'])) { // save start date + weekno |
|
| 4909 | 4909 | $bysetposymd1 = $bysetposymd2 = $bysetposw1 = $bysetposw2 = array(); |
| 4910 | - $bysetposWold = (int) date( 'W', ( $wdatets + $wkst )); |
|
| 4910 | + $bysetposWold = (int) date('W', ($wdatets + $wkst)); |
|
| 4911 | 4911 | $bysetposYold = $wdate['year']; |
| 4912 | 4912 | $bysetposMold = $wdate['month']; |
| 4913 | 4913 | $bysetposDold = $wdate['day']; |
| 4914 | - if( is_array( $recur['BYSETPOS'] )) { |
|
| 4915 | - foreach( $recur['BYSETPOS'] as $bix => $bval ) |
|
| 4914 | + if (is_array($recur['BYSETPOS'])) { |
|
| 4915 | + foreach ($recur['BYSETPOS'] as $bix => $bval) |
|
| 4916 | 4916 | $recur['BYSETPOS'][$bix] = (int) $bval; |
| 4917 | 4917 | } |
| 4918 | 4918 | else |
| 4919 | - $recur['BYSETPOS'] = array( (int) $recur['BYSETPOS'] ); |
|
| 4920 | - $this->_stepdate( $enddate, $endDatets, $step); // make sure to count whole last period |
|
| 4919 | + $recur['BYSETPOS'] = array((int) $recur['BYSETPOS']); |
|
| 4920 | + $this->_stepdate($enddate, $endDatets, $step); // make sure to count whole last period |
|
| 4921 | 4921 | } |
| 4922 | - $this->_stepdate( $wdate, $wdatets, $step); |
|
| 4922 | + $this->_stepdate($wdate, $wdatets, $step); |
|
| 4923 | 4923 | $year_old = null; |
| 4924 | - $daynames = array( 'SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA' ); |
|
| 4924 | + $daynames = array('SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'); |
|
| 4925 | 4925 | /* MAIN LOOP */ |
| 4926 | 4926 | // echo "recur start ".implode('-',$wdate)." end ".implode('-',$enddate)."<br />\n";//test |
| 4927 | - while( TRUE ) { |
|
| 4928 | - if( isset( $endDatets ) && ( $wdatets > $endDatets )) |
|
| 4927 | + while (TRUE) { |
|
| 4928 | + if (isset($endDatets) && ($wdatets > $endDatets)) |
|
| 4929 | 4929 | break; |
| 4930 | - if( isset( $recur['COUNT'] ) && ( $countcnt >= $recur['COUNT'] )) |
|
| 4930 | + if (isset($recur['COUNT']) && ($countcnt >= $recur['COUNT'])) |
|
| 4931 | 4931 | break; |
| 4932 | - if( $year_old != $wdate['year'] ) { |
|
| 4932 | + if ($year_old != $wdate['year']) { |
|
| 4933 | 4933 | $year_old = $wdate['year']; |
| 4934 | 4934 | $daycnts = array(); |
| 4935 | 4935 | $yeardays = $weekno = 0; |
| 4936 | 4936 | $yeardaycnt = array(); |
| 4937 | - for( $m = 1; $m <= 12; $m++ ) { // count up and update up-counters |
|
| 4937 | + for ($m = 1; $m <= 12; $m++) { // count up and update up-counters |
|
| 4938 | 4938 | $daycnts[$m] = array(); |
| 4939 | 4939 | $weekdaycnt = array(); |
| 4940 | - foreach( $daynames as $dn ) |
|
| 4940 | + foreach ($daynames as $dn) |
|
| 4941 | 4941 | $yeardaycnt[$dn] = $weekdaycnt[$dn] = 0; |
| 4942 | - $mcnt = date( 't', mktime( 0, 0, 0, $m, 1, $wdate['year'] )); |
|
| 4943 | - for( $d = 1; $d <= $mcnt; $d++ ) { |
|
| 4942 | + $mcnt = date('t', mktime(0, 0, 0, $m, 1, $wdate['year'])); |
|
| 4943 | + for ($d = 1; $d <= $mcnt; $d++) { |
|
| 4944 | 4944 | $daycnts[$m][$d] = array(); |
| 4945 | - if( isset( $recur['BYYEARDAY'] )) { |
|
| 4945 | + if (isset($recur['BYYEARDAY'])) { |
|
| 4946 | 4946 | $yeardays++; |
| 4947 | 4947 | $daycnts[$m][$d]['yearcnt_up'] = $yeardays; |
| 4948 | 4948 | } |
| 4949 | - if( isset( $recur['BYDAY'] )) { |
|
| 4950 | - $day = date( 'w', mktime( 0, 0, 0, $m, $d, $wdate['year'] )); |
|
| 4949 | + if (isset($recur['BYDAY'])) { |
|
| 4950 | + $day = date('w', mktime(0, 0, 0, $m, $d, $wdate['year'])); |
|
| 4951 | 4951 | $day = $daynames[$day]; |
| 4952 | 4952 | $daycnts[$m][$d]['DAY'] = $day; |
| 4953 | 4953 | $weekdaycnt[$day]++; |
@@ -4955,64 +4955,64 @@ discard block |
||
| 4955 | 4955 | $yeardaycnt[$day]++; |
| 4956 | 4956 | $daycnts[$m][$d]['yeardayno_up'] = $yeardaycnt[$day]; |
| 4957 | 4957 | } |
| 4958 | - if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) |
|
| 4959 | - $daycnts[$m][$d]['weekno_up'] =(int)date('W',mktime(0,0,$wkst,$m,$d,$wdate['year'])); |
|
| 4958 | + if (isset($recur['BYWEEKNO']) || ($recur['FREQ'] == 'WEEKLY')) |
|
| 4959 | + $daycnts[$m][$d]['weekno_up'] = (int) date('W', mktime(0, 0, $wkst, $m, $d, $wdate['year'])); |
|
| 4960 | 4960 | } |
| 4961 | 4961 | } |
| 4962 | 4962 | $daycnt = 0; |
| 4963 | 4963 | $yeardaycnt = array(); |
| 4964 | - if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) { |
|
| 4964 | + if (isset($recur['BYWEEKNO']) || ($recur['FREQ'] == 'WEEKLY')) { |
|
| 4965 | 4965 | $weekno = null; |
| 4966 | - for( $d=31; $d > 25; $d-- ) { // get last weekno for year |
|
| 4967 | - if( !$weekno ) |
|
| 4966 | + for ($d = 31; $d > 25; $d--) { // get last weekno for year |
|
| 4967 | + if (!$weekno) |
|
| 4968 | 4968 | $weekno = $daycnts[12][$d]['weekno_up']; |
| 4969 | - elseif( $weekno < $daycnts[12][$d]['weekno_up'] ) { |
|
| 4969 | + elseif ($weekno < $daycnts[12][$d]['weekno_up']) { |
|
| 4970 | 4970 | $weekno = $daycnts[12][$d]['weekno_up']; |
| 4971 | 4971 | break; |
| 4972 | 4972 | } |
| 4973 | 4973 | } |
| 4974 | 4974 | } |
| 4975 | - for( $m = 12; $m > 0; $m-- ) { // count down and update down-counters |
|
| 4975 | + for ($m = 12; $m > 0; $m--) { // count down and update down-counters |
|
| 4976 | 4976 | $weekdaycnt = array(); |
| 4977 | - foreach( $daynames as $dn ) |
|
| 4977 | + foreach ($daynames as $dn) |
|
| 4978 | 4978 | $yeardaycnt[$dn] = $weekdaycnt[$dn] = 0; |
| 4979 | 4979 | $monthcnt = 0; |
| 4980 | - $mcnt = date( 't', mktime( 0, 0, 0, $m, 1, $wdate['year'] )); |
|
| 4981 | - for( $d = $mcnt; $d > 0; $d-- ) { |
|
| 4982 | - if( isset( $recur['BYYEARDAY'] )) { |
|
| 4980 | + $mcnt = date('t', mktime(0, 0, 0, $m, 1, $wdate['year'])); |
|
| 4981 | + for ($d = $mcnt; $d > 0; $d--) { |
|
| 4982 | + if (isset($recur['BYYEARDAY'])) { |
|
| 4983 | 4983 | $daycnt -= 1; |
| 4984 | 4984 | $daycnts[$m][$d]['yearcnt_down'] = $daycnt; |
| 4985 | 4985 | } |
| 4986 | - if( isset( $recur['BYMONTHDAY'] )) { |
|
| 4986 | + if (isset($recur['BYMONTHDAY'])) { |
|
| 4987 | 4987 | $monthcnt -= 1; |
| 4988 | 4988 | $daycnts[$m][$d]['monthcnt_down'] = $monthcnt; |
| 4989 | 4989 | } |
| 4990 | - if( isset( $recur['BYDAY'] )) { |
|
| 4991 | - $day = $daycnts[$m][$d]['DAY']; |
|
| 4990 | + if (isset($recur['BYDAY'])) { |
|
| 4991 | + $day = $daycnts[$m][$d]['DAY']; |
|
| 4992 | 4992 | $weekdaycnt[$day] -= 1; |
| 4993 | 4993 | $daycnts[$m][$d]['monthdayno_down'] = $weekdaycnt[$day]; |
| 4994 | 4994 | $yeardaycnt[$day] -= 1; |
| 4995 | 4995 | $daycnts[$m][$d]['yeardayno_down'] = $yeardaycnt[$day]; |
| 4996 | 4996 | } |
| 4997 | - if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) |
|
| 4997 | + if (isset($recur['BYWEEKNO']) || ($recur['FREQ'] == 'WEEKLY')) |
|
| 4998 | 4998 | $daycnts[$m][$d]['weekno_down'] = ($daycnts[$m][$d]['weekno_up'] - $weekno - 1); |
| 4999 | 4999 | } |
| 5000 | 5000 | } |
| 5001 | 5001 | } |
| 5002 | 5002 | /* check interval */ |
| 5003 | - if( 1 < $recur['INTERVAL'] ) { |
|
| 5003 | + if (1 < $recur['INTERVAL']) { |
|
| 5004 | 5004 | /* create interval index */ |
| 5005 | - $intervalix = $this->_recurIntervalIx( $recur['FREQ'], $wdate, $wkst ); |
|
| 5005 | + $intervalix = $this->_recurIntervalIx($recur['FREQ'], $wdate, $wkst); |
|
| 5006 | 5006 | /* check interval */ |
| 5007 | - $currentKey = array_keys( $intervalarr ); |
|
| 5008 | - $currentKey = end( $currentKey ); // get last index |
|
| 5009 | - if( $currentKey != $intervalix ) |
|
| 5010 | - $intervalarr = array( $intervalix => ( $intervalarr[$currentKey] + 1 )); |
|
| 5011 | - if(( $recur['INTERVAL'] != $intervalarr[$intervalix] ) && |
|
| 5012 | - ( 0 != $intervalarr[$intervalix] )) { |
|
| 5007 | + $currentKey = array_keys($intervalarr); |
|
| 5008 | + $currentKey = end($currentKey); // get last index |
|
| 5009 | + if ($currentKey != $intervalix) |
|
| 5010 | + $intervalarr = array($intervalix => ($intervalarr[$currentKey] + 1)); |
|
| 5011 | + if (($recur['INTERVAL'] != $intervalarr[$intervalix]) && |
|
| 5012 | + (0 != $intervalarr[$intervalix])) { |
|
| 5013 | 5013 | /* step up date */ |
| 5014 | 5014 | //echo "skip: ".implode('-',$wdate)." ix=$intervalix old=$currentKey interval=".$intervalarr[$intervalix]."<br />\n";//test |
| 5015 | - $this->_stepdate( $wdate, $wdatets, $step); |
|
| 5015 | + $this->_stepdate($wdate, $wdatets, $step); |
|
| 5016 | 5016 | continue; |
| 5017 | 5017 | } |
| 5018 | 5018 | else // continue within the selected interval |
@@ -5020,69 +5020,69 @@ discard block |
||
| 5020 | 5020 | //echo "cont: ".implode('-',$wdate)." ix=$intervalix old=$currentKey interval=".$intervalarr[$intervalix]."<br />\n";//test |
| 5021 | 5021 | } |
| 5022 | 5022 | $updateOK = TRUE; |
| 5023 | - if( $updateOK && isset( $recur['BYMONTH'] )) |
|
| 5024 | - $updateOK = $this->_recurBYcntcheck( $recur['BYMONTH'] |
|
| 5023 | + if ($updateOK && isset($recur['BYMONTH'])) |
|
| 5024 | + $updateOK = $this->_recurBYcntcheck($recur['BYMONTH'] |
|
| 5025 | 5025 | , $wdate['month'] |
| 5026 | 5026 | ,($wdate['month'] - 13)); |
| 5027 | - if( $updateOK && isset( $recur['BYWEEKNO'] )) |
|
| 5028 | - $updateOK = $this->_recurBYcntcheck( $recur['BYWEEKNO'] |
|
| 5027 | + if ($updateOK && isset($recur['BYWEEKNO'])) |
|
| 5028 | + $updateOK = $this->_recurBYcntcheck($recur['BYWEEKNO'] |
|
| 5029 | 5029 | , $daycnts[$wdate['month']][$wdate['day']]['weekno_up'] |
| 5030 | - , $daycnts[$wdate['month']][$wdate['day']]['weekno_down'] ); |
|
| 5031 | - if( $updateOK && isset( $recur['BYYEARDAY'] )) |
|
| 5032 | - $updateOK = $this->_recurBYcntcheck( $recur['BYYEARDAY'] |
|
| 5030 | + , $daycnts[$wdate['month']][$wdate['day']]['weekno_down']); |
|
| 5031 | + if ($updateOK && isset($recur['BYYEARDAY'])) |
|
| 5032 | + $updateOK = $this->_recurBYcntcheck($recur['BYYEARDAY'] |
|
| 5033 | 5033 | , $daycnts[$wdate['month']][$wdate['day']]['yearcnt_up'] |
| 5034 | - , $daycnts[$wdate['month']][$wdate['day']]['yearcnt_down'] ); |
|
| 5035 | - if( $updateOK && isset( $recur['BYMONTHDAY'] )) |
|
| 5036 | - $updateOK = $this->_recurBYcntcheck( $recur['BYMONTHDAY'] |
|
| 5034 | + , $daycnts[$wdate['month']][$wdate['day']]['yearcnt_down']); |
|
| 5035 | + if ($updateOK && isset($recur['BYMONTHDAY'])) |
|
| 5036 | + $updateOK = $this->_recurBYcntcheck($recur['BYMONTHDAY'] |
|
| 5037 | 5037 | , $wdate['day'] |
| 5038 | - , $daycnts[$wdate['month']][$wdate['day']]['monthcnt_down'] ); |
|
| 5038 | + , $daycnts[$wdate['month']][$wdate['day']]['monthcnt_down']); |
|
| 5039 | 5039 | //echo "efter BYMONTHDAY: ".implode('-',$wdate).' status: '; echo ($updateOK) ? 'TRUE' : 'FALSE'; echo "<br />\n";//test### |
| 5040 | - if( $updateOK && isset( $recur['BYDAY'] )) { |
|
| 5040 | + if ($updateOK && isset($recur['BYDAY'])) { |
|
| 5041 | 5041 | $updateOK = FALSE; |
| 5042 | 5042 | $m = $wdate['month']; |
| 5043 | 5043 | $d = $wdate['day']; |
| 5044 | - if( isset( $recur['BYDAY']['DAY'] )) { // single day, opt with year/month day order no |
|
| 5045 | - $daynoexists = $daynosw = $daynamesw = FALSE; |
|
| 5046 | - if( $recur['BYDAY']['DAY'] == $daycnts[$m][$d]['DAY'] ) |
|
| 5044 | + if (isset($recur['BYDAY']['DAY'])) { // single day, opt with year/month day order no |
|
| 5045 | + $daynoexists = $daynosw = $daynamesw = FALSE; |
|
| 5046 | + if ($recur['BYDAY']['DAY'] == $daycnts[$m][$d]['DAY']) |
|
| 5047 | 5047 | $daynamesw = TRUE; |
| 5048 | - if( isset( $recur['BYDAY'][0] )) { |
|
| 5048 | + if (isset($recur['BYDAY'][0])) { |
|
| 5049 | 5049 | $daynoexists = TRUE; |
| 5050 | - if(( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'MONTHLY' )) || isset( $recur['BYMONTH'] )) |
|
| 5051 | - $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5050 | + if ((isset($recur['FREQ']) && ($recur['FREQ'] == 'MONTHLY')) || isset($recur['BYMONTH'])) |
|
| 5051 | + $daynosw = $this->_recurBYcntcheck($recur['BYDAY'][0] |
|
| 5052 | 5052 | , $daycnts[$m][$d]['monthdayno_up'] |
| 5053 | - , $daycnts[$m][$d]['monthdayno_down'] ); |
|
| 5054 | - elseif( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'YEARLY' )) |
|
| 5055 | - $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5053 | + , $daycnts[$m][$d]['monthdayno_down']); |
|
| 5054 | + elseif (isset($recur['FREQ']) && ($recur['FREQ'] == 'YEARLY')) |
|
| 5055 | + $daynosw = $this->_recurBYcntcheck($recur['BYDAY'][0] |
|
| 5056 | 5056 | , $daycnts[$m][$d]['yeardayno_up'] |
| 5057 | - , $daycnts[$m][$d]['yeardayno_down'] ); |
|
| 5057 | + , $daycnts[$m][$d]['yeardayno_down']); |
|
| 5058 | 5058 | } |
| 5059 | - if(( $daynoexists && $daynosw && $daynamesw ) || |
|
| 5060 | - ( !$daynoexists && !$daynosw && $daynamesw )) { |
|
| 5059 | + if (($daynoexists && $daynosw && $daynamesw) || |
|
| 5060 | + (!$daynoexists && !$daynosw && $daynamesw)) { |
|
| 5061 | 5061 | $updateOK = TRUE; |
| 5062 | 5062 | } |
| 5063 | 5063 | //echo "daynoexists:$daynoexists daynosw:$daynosw daynamesw:$daynamesw<br />\n"; // test ### |
| 5064 | 5064 | } |
| 5065 | 5065 | else { |
| 5066 | - foreach( $recur['BYDAY'] as $bydayvalue ) { |
|
| 5066 | + foreach ($recur['BYDAY'] as $bydayvalue) { |
|
| 5067 | 5067 | $daynoexists = $daynosw = $daynamesw = FALSE; |
| 5068 | - if( isset( $bydayvalue['DAY'] ) && |
|
| 5069 | - ( $bydayvalue['DAY'] == $daycnts[$m][$d]['DAY'] )) |
|
| 5068 | + if (isset($bydayvalue['DAY']) && |
|
| 5069 | + ($bydayvalue['DAY'] == $daycnts[$m][$d]['DAY'])) |
|
| 5070 | 5070 | $daynamesw = TRUE; |
| 5071 | - if( isset( $bydayvalue[0] )) { |
|
| 5071 | + if (isset($bydayvalue[0])) { |
|
| 5072 | 5072 | $daynoexists = TRUE; |
| 5073 | - if(( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'MONTHLY' )) || |
|
| 5074 | - isset( $recur['BYMONTH'] )) |
|
| 5075 | - $daynosw = $this->_recurBYcntcheck( $bydayvalue['0'] |
|
| 5073 | + if ((isset($recur['FREQ']) && ($recur['FREQ'] == 'MONTHLY')) || |
|
| 5074 | + isset($recur['BYMONTH'])) |
|
| 5075 | + $daynosw = $this->_recurBYcntcheck($bydayvalue['0'] |
|
| 5076 | 5076 | , $daycnts[$m][$d]['monthdayno_up'] |
| 5077 | - , $daycnts[$m][$d]['monthdayno_down'] ); |
|
| 5078 | - elseif( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'YEARLY' )) |
|
| 5079 | - $daynosw = $this->_recurBYcntcheck( $bydayvalue['0'] |
|
| 5077 | + , $daycnts[$m][$d]['monthdayno_down']); |
|
| 5078 | + elseif (isset($recur['FREQ']) && ($recur['FREQ'] == 'YEARLY')) |
|
| 5079 | + $daynosw = $this->_recurBYcntcheck($bydayvalue['0'] |
|
| 5080 | 5080 | , $daycnts[$m][$d]['yeardayno_up'] |
| 5081 | - , $daycnts[$m][$d]['yeardayno_down'] ); |
|
| 5081 | + , $daycnts[$m][$d]['yeardayno_down']); |
|
| 5082 | 5082 | } |
| 5083 | 5083 | //echo "daynoexists:$daynoexists daynosw:$daynosw daynamesw:$daynamesw<br />\n"; // test ### |
| 5084 | - if(( $daynoexists && $daynosw && $daynamesw ) || |
|
| 5085 | - ( !$daynoexists && !$daynosw && $daynamesw )) { |
|
| 5084 | + if (($daynoexists && $daynosw && $daynamesw) || |
|
| 5085 | + (!$daynoexists && !$daynosw && $daynamesw)) { |
|
| 5086 | 5086 | $updateOK = TRUE; |
| 5087 | 5087 | break; |
| 5088 | 5088 | } |
@@ -5091,25 +5091,25 @@ discard block |
||
| 5091 | 5091 | } |
| 5092 | 5092 | //echo "efter BYDAY: ".implode('-',$wdate).' status: '; echo ($updateOK) ? 'TRUE' : 'FALSE'; echo "<br />\n"; // test ### |
| 5093 | 5093 | /* check BYSETPOS */ |
| 5094 | - if( $updateOK ) { |
|
| 5095 | - if( isset( $recur['BYSETPOS'] ) && |
|
| 5096 | - ( in_array( $recur['FREQ'], array( 'YEARLY', 'MONTHLY', 'WEEKLY', 'DAILY' )))) { |
|
| 5097 | - if( isset( $recur['WEEKLY'] )) { |
|
| 5098 | - if( $bysetposWold == $daycnts[$wdate['month']][$wdate['day']]['weekno_up'] ) |
|
| 5094 | + if ($updateOK) { |
|
| 5095 | + if (isset($recur['BYSETPOS']) && |
|
| 5096 | + (in_array($recur['FREQ'], array('YEARLY', 'MONTHLY', 'WEEKLY', 'DAILY')))) { |
|
| 5097 | + if (isset($recur['WEEKLY'])) { |
|
| 5098 | + if ($bysetposWold == $daycnts[$wdate['month']][$wdate['day']]['weekno_up']) |
|
| 5099 | 5099 | $bysetposw1[] = $wdatets; |
| 5100 | 5100 | else |
| 5101 | 5101 | $bysetposw2[] = $wdatets; |
| 5102 | 5102 | } |
| 5103 | 5103 | else { |
| 5104 | - if(( isset( $recur['FREQ'] ) && ( 'YEARLY' == $recur['FREQ'] ) && |
|
| 5105 | - ( $bysetposYold == $wdate['year'] )) || |
|
| 5106 | - ( isset( $recur['FREQ'] ) && ( 'MONTHLY' == $recur['FREQ'] ) && |
|
| 5107 | - (( $bysetposYold == $wdate['year'] ) && |
|
| 5108 | - ( $bysetposMold == $wdate['month'] ))) || |
|
| 5109 | - ( isset( $recur['FREQ'] ) && ( 'MONTHLY' == $recur['FREQ'] ) && |
|
| 5110 | - (( $bysetposYold == $wdate['year'] ) && |
|
| 5111 | - ( $bysetposMold == $wdate['month']) && |
|
| 5112 | - ( $bysetposDold == $wdate['sday'] )))) |
|
| 5104 | + if ((isset($recur['FREQ']) && ('YEARLY' == $recur['FREQ']) && |
|
| 5105 | + ($bysetposYold == $wdate['year'])) || |
|
| 5106 | + (isset($recur['FREQ']) && ('MONTHLY' == $recur['FREQ']) && |
|
| 5107 | + (($bysetposYold == $wdate['year']) && |
|
| 5108 | + ($bysetposMold == $wdate['month']))) || |
|
| 5109 | + (isset($recur['FREQ']) && ('MONTHLY' == $recur['FREQ']) && |
|
| 5110 | + (($bysetposYold == $wdate['year']) && |
|
| 5111 | + ($bysetposMold == $wdate['month']) && |
|
| 5112 | + ($bysetposDold == $wdate['sday'])))) |
|
| 5113 | 5113 | $bysetposymd1[] = $wdatets; |
| 5114 | 5114 | else |
| 5115 | 5115 | $bysetposymd2[] = $wdatets; |
@@ -5118,7 +5118,7 @@ discard block |
||
| 5118 | 5118 | else { |
| 5119 | 5119 | /* update result array if BYSETPOS is set */ |
| 5120 | 5120 | $countcnt++; |
| 5121 | - if( $startdatets <= $wdatets ) { // only output within period |
|
| 5121 | + if ($startdatets <= $wdatets) { // only output within period |
|
| 5122 | 5122 | $result[$wdatets] = TRUE; |
| 5123 | 5123 | //echo "recur ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$wdatets),6))."<br />\n";//test |
| 5124 | 5124 | } |
@@ -5127,39 +5127,39 @@ discard block |
||
| 5127 | 5127 | } |
| 5128 | 5128 | } |
| 5129 | 5129 | /* step up date */ |
| 5130 | - $this->_stepdate( $wdate, $wdatets, $step); |
|
| 5130 | + $this->_stepdate($wdate, $wdatets, $step); |
|
| 5131 | 5131 | /* check if BYSETPOS is set for updating result array */ |
| 5132 | - if( $updateOK && isset( $recur['BYSETPOS'] )) { |
|
| 5132 | + if ($updateOK && isset($recur['BYSETPOS'])) { |
|
| 5133 | 5133 | $bysetpos = FALSE; |
| 5134 | - if( isset( $recur['FREQ'] ) && ( 'YEARLY' == $recur['FREQ'] ) && |
|
| 5135 | - ( $bysetposYold != $wdate['year'] )) { |
|
| 5134 | + if (isset($recur['FREQ']) && ('YEARLY' == $recur['FREQ']) && |
|
| 5135 | + ($bysetposYold != $wdate['year'])) { |
|
| 5136 | 5136 | $bysetpos = TRUE; |
| 5137 | 5137 | $bysetposYold = $wdate['year']; |
| 5138 | 5138 | } |
| 5139 | - elseif( isset( $recur['FREQ'] ) && ( 'MONTHLY' == $recur['FREQ'] && |
|
| 5140 | - (( $bysetposYold != $wdate['year'] ) || ( $bysetposMold != $wdate['month'] )))) { |
|
| 5139 | + elseif (isset($recur['FREQ']) && ('MONTHLY' == $recur['FREQ'] && |
|
| 5140 | + (($bysetposYold != $wdate['year']) || ($bysetposMold != $wdate['month'])))) { |
|
| 5141 | 5141 | $bysetpos = TRUE; |
| 5142 | 5142 | $bysetposYold = $wdate['year']; |
| 5143 | 5143 | $bysetposMold = $wdate['month']; |
| 5144 | 5144 | } |
| 5145 | - elseif( isset( $recur['FREQ'] ) && ( 'WEEKLY' == $recur['FREQ'] )) { |
|
| 5146 | - $weekno = (int) date( 'W', mktime( 0, 0, $wkst, $wdate['month'], $wdate['day'], $wdate['year'])); |
|
| 5147 | - if( $bysetposWold != $weekno ) { |
|
| 5145 | + elseif (isset($recur['FREQ']) && ('WEEKLY' == $recur['FREQ'])) { |
|
| 5146 | + $weekno = (int) date('W', mktime(0, 0, $wkst, $wdate['month'], $wdate['day'], $wdate['year'])); |
|
| 5147 | + if ($bysetposWold != $weekno) { |
|
| 5148 | 5148 | $bysetposWold = $weekno; |
| 5149 | 5149 | $bysetpos = TRUE; |
| 5150 | 5150 | } |
| 5151 | 5151 | } |
| 5152 | - elseif( isset( $recur['FREQ'] ) && ( 'DAILY' == $recur['FREQ'] ) && |
|
| 5153 | - (( $bysetposYold != $wdate['year'] ) || |
|
| 5154 | - ( $bysetposMold != $wdate['month'] ) || |
|
| 5155 | - ( $bysetposDold != $wdate['sday'] ))) { |
|
| 5152 | + elseif (isset($recur['FREQ']) && ('DAILY' == $recur['FREQ']) && |
|
| 5153 | + (($bysetposYold != $wdate['year']) || |
|
| 5154 | + ($bysetposMold != $wdate['month']) || |
|
| 5155 | + ($bysetposDold != $wdate['sday']))) { |
|
| 5156 | 5156 | $bysetpos = TRUE; |
| 5157 | 5157 | $bysetposYold = $wdate['year']; |
| 5158 | 5158 | $bysetposMold = $wdate['month']; |
| 5159 | 5159 | $bysetposDold = $wdate['day']; |
| 5160 | 5160 | } |
| 5161 | - if( $bysetpos ) { |
|
| 5162 | - if( isset( $recur['BYWEEKNO'] )) { |
|
| 5161 | + if ($bysetpos) { |
|
| 5162 | + if (isset($recur['BYWEEKNO'])) { |
|
| 5163 | 5163 | $bysetposarr1 = & $bysetposw1; |
| 5164 | 5164 | $bysetposarr2 = & $bysetposw2; |
| 5165 | 5165 | } |
@@ -5167,18 +5167,18 @@ discard block |
||
| 5167 | 5167 | $bysetposarr1 = & $bysetposymd1; |
| 5168 | 5168 | $bysetposarr2 = & $bysetposymd2; |
| 5169 | 5169 | } |
| 5170 | - foreach( $recur['BYSETPOS'] as $ix ) { |
|
| 5171 | - if( 0 > $ix ) // both positive and negative BYSETPOS allowed |
|
| 5172 | - $ix = ( count( $bysetposarr1 ) + $ix + 1); |
|
| 5170 | + foreach ($recur['BYSETPOS'] as $ix) { |
|
| 5171 | + if (0 > $ix) // both positive and negative BYSETPOS allowed |
|
| 5172 | + $ix = (count($bysetposarr1) + $ix + 1); |
|
| 5173 | 5173 | $ix--; |
| 5174 | - if( isset( $bysetposarr1[$ix] )) { |
|
| 5175 | - if( $startdatets <= $bysetposarr1[$ix] ) { // only output within period |
|
| 5174 | + if (isset($bysetposarr1[$ix])) { |
|
| 5175 | + if ($startdatets <= $bysetposarr1[$ix]) { // only output within period |
|
| 5176 | 5176 | $result[$bysetposarr1[$ix]] = TRUE; |
| 5177 | 5177 | //echo "recur ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$bysetposarr1[$ix]),6))."<br />\n";//test |
| 5178 | 5178 | } |
| 5179 | 5179 | $countcnt++; |
| 5180 | 5180 | } |
| 5181 | - if( isset( $recur['COUNT'] ) && ( $countcnt >= $recur['COUNT'] )) |
|
| 5181 | + if (isset($recur['COUNT']) && ($countcnt >= $recur['COUNT'])) |
|
| 5182 | 5182 | break; |
| 5183 | 5183 | } |
| 5184 | 5184 | $bysetposarr1 = $bysetposarr2; |
@@ -5187,18 +5187,18 @@ discard block |
||
| 5187 | 5187 | } |
| 5188 | 5188 | } |
| 5189 | 5189 | } |
| 5190 | - function _recurBYcntcheck( $BYvalue, $upValue, $downValue ) { |
|
| 5191 | - if( is_array( $BYvalue ) && |
|
| 5192 | - ( in_array( $upValue, $BYvalue ) || in_array( $downValue, $BYvalue ))) |
|
| 5190 | + function _recurBYcntcheck($BYvalue, $upValue, $downValue) { |
|
| 5191 | + if (is_array($BYvalue) && |
|
| 5192 | + (in_array($upValue, $BYvalue) || in_array($downValue, $BYvalue))) |
|
| 5193 | 5193 | return TRUE; |
| 5194 | - elseif(( $BYvalue == $upValue ) || ( $BYvalue == $downValue )) |
|
| 5194 | + elseif (($BYvalue == $upValue) || ($BYvalue == $downValue)) |
|
| 5195 | 5195 | return TRUE; |
| 5196 | 5196 | else |
| 5197 | 5197 | return FALSE; |
| 5198 | 5198 | } |
| 5199 | - function _recurIntervalIx( $freq, $date, $wkst ) { |
|
| 5199 | + function _recurIntervalIx($freq, $date, $wkst) { |
|
| 5200 | 5200 | /* create interval index */ |
| 5201 | - switch( $freq ) { |
|
| 5201 | + switch ($freq) { |
|
| 5202 | 5202 | case 'YEARLY': |
| 5203 | 5203 | $intervalix = $date['year']; |
| 5204 | 5204 | break; |
@@ -5206,8 +5206,8 @@ discard block |
||
| 5206 | 5206 | $intervalix = $date['year'].'-'.$date['month']; |
| 5207 | 5207 | break; |
| 5208 | 5208 | case 'WEEKLY': |
| 5209 | - $wdatets = $this->_date2timestamp( $date ); |
|
| 5210 | - $intervalix = (int) date( 'W', ( $wdatets + $wkst )); |
|
| 5209 | + $wdatets = $this->_date2timestamp($date); |
|
| 5210 | + $intervalix = (int) date('W', ($wdatets + $wkst)); |
|
| 5211 | 5211 | break; |
| 5212 | 5212 | case 'DAILY': |
| 5213 | 5213 | default: |
@@ -5224,22 +5224,22 @@ discard block |
||
| 5224 | 5224 | * @param array $rexrule |
| 5225 | 5225 | * @return array |
| 5226 | 5226 | */ |
| 5227 | - function _setRexrule( $rexrule ) { |
|
| 5228 | - $input = array(); |
|
| 5229 | - if( empty( $rexrule )) |
|
| 5227 | + function _setRexrule($rexrule) { |
|
| 5228 | + $input = array(); |
|
| 5229 | + if (empty($rexrule)) |
|
| 5230 | 5230 | return $input; |
| 5231 | - foreach( $rexrule as $rexrulelabel => $rexrulevalue ) { |
|
| 5232 | - $rexrulelabel = strtoupper( $rexrulelabel ); |
|
| 5233 | - if( 'UNTIL' != $rexrulelabel ) |
|
| 5231 | + foreach ($rexrule as $rexrulelabel => $rexrulevalue) { |
|
| 5232 | + $rexrulelabel = strtoupper($rexrulelabel); |
|
| 5233 | + if ('UNTIL' != $rexrulelabel) |
|
| 5234 | 5234 | $input[$rexrulelabel] = $rexrulevalue; |
| 5235 | 5235 | else { |
| 5236 | - if( $this->_isArrayTimestampDate( $rexrulevalue )) // timestamp date |
|
| 5237 | - $input[$rexrulelabel] = $this->_timestamp2date( $rexrulevalue, 6 ); |
|
| 5238 | - elseif( $this->_isArrayDate( $rexrulevalue )) // date-time |
|
| 5239 | - $input[$rexrulelabel] = $this->_date_time_array( $rexrulevalue, 6 ); |
|
| 5240 | - elseif( 8 <= strlen( trim( $rexrulevalue ))) // ex. 2006-08-03 10:12:18 |
|
| 5241 | - $input[$rexrulelabel] = $this->_date_time_string( $rexrulevalue ); |
|
| 5242 | - if(( 3 < count( $input[$rexrulelabel] )) && !isset( $input[$rexrulelabel]['tz'] )) |
|
| 5236 | + if ($this->_isArrayTimestampDate($rexrulevalue)) // timestamp date |
|
| 5237 | + $input[$rexrulelabel] = $this->_timestamp2date($rexrulevalue, 6); |
|
| 5238 | + elseif ($this->_isArrayDate($rexrulevalue)) // date-time |
|
| 5239 | + $input[$rexrulelabel] = $this->_date_time_array($rexrulevalue, 6); |
|
| 5240 | + elseif (8 <= strlen(trim($rexrulevalue))) // ex. 2006-08-03 10:12:18 |
|
| 5241 | + $input[$rexrulelabel] = $this->_date_time_string($rexrulevalue); |
|
| 5242 | + if ((3 < count($input[$rexrulelabel])) && !isset($input[$rexrulelabel]['tz'])) |
|
| 5243 | 5243 | $input[$rexrulelabel]['tz'] = 'Z'; |
| 5244 | 5244 | } |
| 5245 | 5245 | } |
@@ -5260,85 +5260,85 @@ discard block |
||
| 5260 | 5260 | * @param string $caller optional |
| 5261 | 5261 | * @return array |
| 5262 | 5262 | */ |
| 5263 | - function _setDate( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $tz=FALSE, $params=FALSE, $caller=null ) { |
|
| 5263 | + function _setDate($year, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $tz = FALSE, $params = FALSE, $caller = null) { |
|
| 5264 | 5264 | $input = $parno = null; |
| 5265 | - $localtime = (( 'dtstart' == $caller ) && in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) ? TRUE : FALSE; |
|
| 5266 | - if( $this->_isArrayDate( $year )) { |
|
| 5267 | - if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5268 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5269 | - if( isset( $input['params']['TZID'] )) { |
|
| 5265 | + $localtime = (('dtstart' == $caller) && in_array($this->objName, array('vtimezone', 'standard', 'daylight'))) ? TRUE : FALSE; |
|
| 5266 | + if ($this->_isArrayDate($year)) { |
|
| 5267 | + if ($localtime) unset ($month['VALUE'], $month['TZID']); |
|
| 5268 | + $input['params'] = $this->_setParams($month, array('VALUE' => 'DATE-TIME')); |
|
| 5269 | + if (isset($input['params']['TZID'])) { |
|
| 5270 | 5270 | $input['params']['VALUE'] = 'DATE-TIME'; |
| 5271 | - unset( $year['tz'] ); |
|
| 5271 | + unset($year['tz']); |
|
| 5272 | 5272 | } |
| 5273 | - $hitval = (( !empty( $year['tz'] ) || !empty( $year[6] ))) ? 7 : 6; |
|
| 5274 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval ); |
|
| 5275 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3, count( $year ), $parno ); |
|
| 5276 | - $input['value'] = $this->_date_time_array( $year, $parno ); |
|
| 5277 | - } |
|
| 5278 | - elseif( $this->_isArrayTimestampDate( $year )) { |
|
| 5279 | - if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5280 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5281 | - if( isset( $input['params']['TZID'] )) { |
|
| 5273 | + $hitval = ((!empty($year['tz']) || !empty($year[6]))) ? 7 : 6; |
|
| 5274 | + $parno = $this->_existRem($input['params'], 'VALUE', 'DATE-TIME', $hitval); |
|
| 5275 | + $parno = $this->_existRem($input['params'], 'VALUE', 'DATE', 3, count($year), $parno); |
|
| 5276 | + $input['value'] = $this->_date_time_array($year, $parno); |
|
| 5277 | + } |
|
| 5278 | + elseif ($this->_isArrayTimestampDate($year)) { |
|
| 5279 | + if ($localtime) unset ($month['VALUE'], $month['TZID']); |
|
| 5280 | + $input['params'] = $this->_setParams($month, array('VALUE' => 'DATE-TIME')); |
|
| 5281 | + if (isset($input['params']['TZID'])) { |
|
| 5282 | 5282 | $input['params']['VALUE'] = 'DATE-TIME'; |
| 5283 | - unset( $year['tz'] ); |
|
| 5283 | + unset($year['tz']); |
|
| 5284 | 5284 | } |
| 5285 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3 ); |
|
| 5286 | - $hitval = ( isset( $year['tz'] )) ? 7 : 6; |
|
| 5287 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval, $parno ); |
|
| 5288 | - $input['value'] = $this->_timestamp2date( $year, $parno ); |
|
| 5289 | - } |
|
| 5290 | - elseif( 8 <= strlen( trim( $year ))) { // ex. 2006-08-03 10:12:18 |
|
| 5291 | - if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5292 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5293 | - if( isset( $input['params']['TZID'] )) { |
|
| 5285 | + $parno = $this->_existRem($input['params'], 'VALUE', 'DATE', 3); |
|
| 5286 | + $hitval = (isset($year['tz'])) ? 7 : 6; |
|
| 5287 | + $parno = $this->_existRem($input['params'], 'VALUE', 'DATE-TIME', $hitval, $parno); |
|
| 5288 | + $input['value'] = $this->_timestamp2date($year, $parno); |
|
| 5289 | + } |
|
| 5290 | + elseif (8 <= strlen(trim($year))) { // ex. 2006-08-03 10:12:18 |
|
| 5291 | + if ($localtime) unset ($month['VALUE'], $month['TZID']); |
|
| 5292 | + $input['params'] = $this->_setParams($month, array('VALUE' => 'DATE-TIME')); |
|
| 5293 | + if (isset($input['params']['TZID'])) { |
|
| 5294 | 5294 | $input['params']['VALUE'] = 'DATE-TIME'; |
| 5295 | 5295 | $parno = 6; |
| 5296 | 5296 | } |
| 5297 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', 7, $parno ); |
|
| 5298 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3, $parno, $parno ); |
|
| 5299 | - $input['value'] = $this->_date_time_string( $year, $parno ); |
|
| 5297 | + $parno = $this->_existRem($input['params'], 'VALUE', 'DATE-TIME', 7, $parno); |
|
| 5298 | + $parno = $this->_existRem($input['params'], 'VALUE', 'DATE', 3, $parno, $parno); |
|
| 5299 | + $input['value'] = $this->_date_time_string($year, $parno); |
|
| 5300 | 5300 | } |
| 5301 | 5301 | else { |
| 5302 | - if( is_array( $params )) { |
|
| 5303 | - if( $localtime ) unset ( $params['VALUE'], $params['TZID'] ); |
|
| 5304 | - $input['params'] = $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5302 | + if (is_array($params)) { |
|
| 5303 | + if ($localtime) unset ($params['VALUE'], $params['TZID']); |
|
| 5304 | + $input['params'] = $this->_setParams($params, array('VALUE' => 'DATE-TIME')); |
|
| 5305 | 5305 | } |
| 5306 | - elseif( is_array( $tz )) { |
|
| 5307 | - $input['params'] = $this->_setParams( $tz, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5306 | + elseif (is_array($tz)) { |
|
| 5307 | + $input['params'] = $this->_setParams($tz, array('VALUE' => 'DATE-TIME')); |
|
| 5308 | 5308 | $tz = FALSE; |
| 5309 | 5309 | } |
| 5310 | - elseif( is_array( $hour )) { |
|
| 5311 | - $input['params'] = $this->_setParams( $hour, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5310 | + elseif (is_array($hour)) { |
|
| 5311 | + $input['params'] = $this->_setParams($hour, array('VALUE' => 'DATE-TIME')); |
|
| 5312 | 5312 | $hour = $min = $sec = $tz = FALSE; |
| 5313 | 5313 | } |
| 5314 | - if( isset( $input['params']['TZID'] )) { |
|
| 5314 | + if (isset($input['params']['TZID'])) { |
|
| 5315 | 5315 | $tz = null; |
| 5316 | 5316 | $input['params']['VALUE'] = 'DATE-TIME'; |
| 5317 | 5317 | } |
| 5318 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3 ); |
|
| 5319 | - $hitval = ( !empty( $tz )) ? 7 : 6; |
|
| 5320 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval, $parno, $parno ); |
|
| 5321 | - $input['value'] = array( 'year' => $year, 'month' => $month, 'day' => $day ); |
|
| 5322 | - if( 3 != $parno ) { |
|
| 5323 | - $input['value']['hour'] = ( $hour ) ? $hour : '0'; |
|
| 5324 | - $input['value']['min'] = ( $min ) ? $min : '0'; |
|
| 5325 | - $input['value']['sec'] = ( $sec ) ? $sec : '0'; |
|
| 5326 | - if( !empty( $tz )) |
|
| 5318 | + $parno = $this->_existRem($input['params'], 'VALUE', 'DATE', 3); |
|
| 5319 | + $hitval = (!empty($tz)) ? 7 : 6; |
|
| 5320 | + $parno = $this->_existRem($input['params'], 'VALUE', 'DATE-TIME', $hitval, $parno, $parno); |
|
| 5321 | + $input['value'] = array('year' => $year, 'month' => $month, 'day' => $day); |
|
| 5322 | + if (3 != $parno) { |
|
| 5323 | + $input['value']['hour'] = ($hour) ? $hour : '0'; |
|
| 5324 | + $input['value']['min'] = ($min) ? $min : '0'; |
|
| 5325 | + $input['value']['sec'] = ($sec) ? $sec : '0'; |
|
| 5326 | + if (!empty($tz)) |
|
| 5327 | 5327 | $input['value']['tz'] = $tz; |
| 5328 | 5328 | } |
| 5329 | 5329 | } |
| 5330 | - if( 3 == $parno ) { |
|
| 5330 | + if (3 == $parno) { |
|
| 5331 | 5331 | $input['params']['VALUE'] = 'DATE'; |
| 5332 | - unset( $input['value']['tz'] ); |
|
| 5333 | - unset( $input['params']['TZID'] ); |
|
| 5332 | + unset($input['value']['tz']); |
|
| 5333 | + unset($input['params']['TZID']); |
|
| 5334 | 5334 | } |
| 5335 | - elseif( isset( $input['params']['TZID'] )) |
|
| 5336 | - unset( $input['value']['tz'] ); |
|
| 5337 | - if( $localtime ) unset( $input['value']['tz'], $input['params']['TZID'] ); |
|
| 5338 | - if( isset( $input['value']['tz'] )) |
|
| 5335 | + elseif (isset($input['params']['TZID'])) |
|
| 5336 | + unset($input['value']['tz']); |
|
| 5337 | + if ($localtime) unset($input['value']['tz'], $input['params']['TZID']); |
|
| 5338 | + if (isset($input['value']['tz'])) |
|
| 5339 | 5339 | $input['value']['tz'] = (string) $input['value']['tz']; |
| 5340 | - if( !empty( $input['value']['tz'] ) && ( 'Z' != $input['value']['tz'] ) && |
|
| 5341 | - ( !$this->_isOffset( $input['value']['tz'] ))) |
|
| 5340 | + if (!empty($input['value']['tz']) && ('Z' != $input['value']['tz']) && |
|
| 5341 | + (!$this->_isOffset($input['value']['tz']))) |
|
| 5342 | 5342 | $input['params']['TZID'] = $input['value']['tz']; |
| 5343 | 5343 | return $input; |
| 5344 | 5344 | } |
@@ -5356,37 +5356,37 @@ discard block |
||
| 5356 | 5356 | * @param array $params optional |
| 5357 | 5357 | * @return array |
| 5358 | 5358 | */ |
| 5359 | - function _setDate2( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
|
| 5359 | + function _setDate2($year, $month = FALSE, $day = FALSE, $hour = FALSE, $min = FALSE, $sec = FALSE, $params = FALSE) { |
|
| 5360 | 5360 | $input = null; |
| 5361 | - if( $this->_isArrayDate( $year )) { |
|
| 5362 | - $input['value'] = $this->_date_time_array( $year, 7 ); |
|
| 5363 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
|
| 5361 | + if ($this->_isArrayDate($year)) { |
|
| 5362 | + $input['value'] = $this->_date_time_array($year, 7); |
|
| 5363 | + $input['params'] = $this->_setParams($month, array('VALUE' => 'DATE-TIME')); |
|
| 5364 | 5364 | } |
| 5365 | - elseif( $this->_isArrayTimestampDate( $year )) { |
|
| 5366 | - $input['value'] = $this->_timestamp2date( $year, 7 ); |
|
| 5367 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
|
| 5365 | + elseif ($this->_isArrayTimestampDate($year)) { |
|
| 5366 | + $input['value'] = $this->_timestamp2date($year, 7); |
|
| 5367 | + $input['params'] = $this->_setParams($month, array('VALUE' => 'DATE-TIME')); |
|
| 5368 | 5368 | } |
| 5369 | - elseif( 8 <= strlen( trim( $year ))) { // ex. 2006-08-03 10:12:18 |
|
| 5370 | - $input['value'] = $this->_date_time_string( $year, 7 ); |
|
| 5371 | - $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
|
| 5369 | + elseif (8 <= strlen(trim($year))) { // ex. 2006-08-03 10:12:18 |
|
| 5370 | + $input['value'] = $this->_date_time_string($year, 7); |
|
| 5371 | + $input['params'] = $this->_setParams($month, array('VALUE' => 'DATE-TIME')); |
|
| 5372 | 5372 | } |
| 5373 | 5373 | else { |
| 5374 | - $input['value'] = array( 'year' => $year |
|
| 5374 | + $input['value'] = array('year' => $year |
|
| 5375 | 5375 | , 'month' => $month |
| 5376 | 5376 | , 'day' => $day |
| 5377 | 5377 | , 'hour' => $hour |
| 5378 | 5378 | , 'min' => $min |
| 5379 | - , 'sec' => $sec ); |
|
| 5380 | - $input['params'] = $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' )); |
|
| 5379 | + , 'sec' => $sec); |
|
| 5380 | + $input['params'] = $this->_setParams($params, array('VALUE' => 'DATE-TIME')); |
|
| 5381 | 5381 | } |
| 5382 | - $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', 7 ); // remove default |
|
| 5383 | - if( !isset( $input['value']['hour'] )) |
|
| 5382 | + $parno = $this->_existRem($input['params'], 'VALUE', 'DATE-TIME', 7); // remove default |
|
| 5383 | + if (!isset($input['value']['hour'])) |
|
| 5384 | 5384 | $input['value']['hour'] = 0; |
| 5385 | - if( !isset( $input['value']['min'] )) |
|
| 5385 | + if (!isset($input['value']['min'])) |
|
| 5386 | 5386 | $input['value']['min'] = 0; |
| 5387 | - if( !isset( $input['value']['sec'] )) |
|
| 5387 | + if (!isset($input['value']['sec'])) |
|
| 5388 | 5388 | $input['value']['sec'] = 0; |
| 5389 | - if( !isset( $input['value']['tz'] ) || !$this->_isOffset( $input['value']['tz'] )) |
|
| 5389 | + if (!isset($input['value']['tz']) || !$this->_isOffset($input['value']['tz'])) |
|
| 5390 | 5390 | $input['value']['tz'] = 'Z'; |
| 5391 | 5391 | return $input; |
| 5392 | 5392 | } |
@@ -5402,18 +5402,18 @@ discard block |
||
| 5402 | 5402 | * @param int $index |
| 5403 | 5403 | * @return void |
| 5404 | 5404 | */ |
| 5405 | - function _setMval( & $valArr, $value, $params=FALSE, $defaults=FALSE, $index=FALSE ) { |
|
| 5406 | - if( !is_array( $valArr )) $valArr = array(); |
|
| 5407 | - if( $index ) |
|
| 5405 | + function _setMval(& $valArr, $value, $params = FALSE, $defaults = FALSE, $index = FALSE) { |
|
| 5406 | + if (!is_array($valArr)) $valArr = array(); |
|
| 5407 | + if ($index) |
|
| 5408 | 5408 | $index = $index - 1; |
| 5409 | - elseif( 0 < count( $valArr )) { |
|
| 5410 | - $index = end( array_keys( $valArr )); |
|
| 5409 | + elseif (0 < count($valArr)) { |
|
| 5410 | + $index = end(array_keys($valArr)); |
|
| 5411 | 5411 | $index += 1; |
| 5412 | 5412 | } |
| 5413 | 5413 | else |
| 5414 | 5414 | $index = 0; |
| 5415 | - $valArr[$index] = array( 'value' => $value, 'params' => $this->_setParams( $params, $defaults )); |
|
| 5416 | - ksort( $valArr ); |
|
| 5415 | + $valArr[$index] = array('value' => $value, 'params' => $this->_setParams($params, $defaults)); |
|
| 5416 | + ksort($valArr); |
|
| 5417 | 5417 | } |
| 5418 | 5418 | /** |
| 5419 | 5419 | * set input (formatted) parameters- component property attributes |
@@ -5426,31 +5426,31 @@ discard block |
||
| 5426 | 5426 | * @param array $defaults |
| 5427 | 5427 | * @return array |
| 5428 | 5428 | */ |
| 5429 | - function _setParams( $params, $defaults=FALSE ) { |
|
| 5430 | - if( !is_array( $params)) |
|
| 5429 | + function _setParams($params, $defaults = FALSE) { |
|
| 5430 | + if (!is_array($params)) |
|
| 5431 | 5431 | $params = array(); |
| 5432 | 5432 | $input = array(); |
| 5433 | - foreach( $params as $paramKey => $paramValue ) { |
|
| 5434 | - if( is_array( $paramValue )) { |
|
| 5435 | - foreach( $paramValue as $pkey => $pValue ) { |
|
| 5436 | - if(( '"' == substr( $pValue, 0, 1 )) && ( '"' == substr( $pValue, -1 ))) |
|
| 5437 | - $paramValue[$pkey] = substr( $pValue, 1, ( strlen( $pValue ) - 2 )); |
|
| 5433 | + foreach ($params as $paramKey => $paramValue) { |
|
| 5434 | + if (is_array($paramValue)) { |
|
| 5435 | + foreach ($paramValue as $pkey => $pValue) { |
|
| 5436 | + if (('"' == substr($pValue, 0, 1)) && ('"' == substr($pValue, -1))) |
|
| 5437 | + $paramValue[$pkey] = substr($pValue, 1, (strlen($pValue) - 2)); |
|
| 5438 | 5438 | } |
| 5439 | 5439 | } |
| 5440 | - elseif(( '"' == substr( $paramValue, 0, 1 )) && ( '"' == substr( $paramValue, -1 ))) |
|
| 5441 | - $paramValue = substr( $paramValue, 1, ( strlen( $paramValue ) - 2 )); |
|
| 5442 | - if( 'VALUE' == strtoupper( $paramKey )) |
|
| 5443 | - $input['VALUE'] = strtoupper( $paramValue ); |
|
| 5440 | + elseif (('"' == substr($paramValue, 0, 1)) && ('"' == substr($paramValue, -1))) |
|
| 5441 | + $paramValue = substr($paramValue, 1, (strlen($paramValue) - 2)); |
|
| 5442 | + if ('VALUE' == strtoupper($paramKey)) |
|
| 5443 | + $input['VALUE'] = strtoupper($paramValue); |
|
| 5444 | 5444 | else |
| 5445 | - $input[strtoupper( $paramKey )] = $paramValue; |
|
| 5445 | + $input[strtoupper($paramKey)] = $paramValue; |
|
| 5446 | 5446 | } |
| 5447 | - if( is_array( $defaults )) { |
|
| 5448 | - foreach( $defaults as $paramKey => $paramValue ) { |
|
| 5449 | - if( !isset( $input[$paramKey] )) |
|
| 5447 | + if (is_array($defaults)) { |
|
| 5448 | + foreach ($defaults as $paramKey => $paramValue) { |
|
| 5449 | + if (!isset($input[$paramKey])) |
|
| 5450 | 5450 | $input[$paramKey] = $paramValue; |
| 5451 | 5451 | } |
| 5452 | 5452 | } |
| 5453 | - return (0 < count( $input )) ? $input : null; |
|
| 5453 | + return (0 < count($input)) ? $input : null; |
|
| 5454 | 5454 | } |
| 5455 | 5455 | /** |
| 5456 | 5456 | * step date, return updated date, array and timpstamp |
@@ -5462,13 +5462,13 @@ discard block |
||
| 5462 | 5462 | * @param array $step, default array( 'day' => 1 ) |
| 5463 | 5463 | * @return void |
| 5464 | 5464 | */ |
| 5465 | - function _stepdate( &$date, &$timestamp, $step=array( 'day' => 1 )) { |
|
| 5466 | - foreach( $step as $stepix => $stepvalue ) |
|
| 5465 | + function _stepdate(&$date, &$timestamp, $step = array('day' => 1)) { |
|
| 5466 | + foreach ($step as $stepix => $stepvalue) |
|
| 5467 | 5467 | $date[$stepix] += $stepvalue; |
| 5468 | - $timestamp = $this->_date2timestamp( $date ); |
|
| 5469 | - $date = $this->_timestamp2date( $timestamp, 6 ); |
|
| 5470 | - foreach( $date as $k => $v ) { |
|
| 5471 | - if( ctype_digit( $v )) |
|
| 5468 | + $timestamp = $this->_date2timestamp($date); |
|
| 5469 | + $date = $this->_timestamp2date($timestamp, 6); |
|
| 5470 | + foreach ($date as $k => $v) { |
|
| 5471 | + if (ctype_digit($v)) |
|
| 5472 | 5472 | $date[$k] = (int) $v; |
| 5473 | 5473 | } |
| 5474 | 5474 | } |
@@ -5481,20 +5481,20 @@ discard block |
||
| 5481 | 5481 | * @param int $parno |
| 5482 | 5482 | * @return array |
| 5483 | 5483 | */ |
| 5484 | - function _timestamp2date( $timestamp, $parno=6 ) { |
|
| 5485 | - if( is_array( $timestamp )) { |
|
| 5486 | - if(( 7 == $parno ) && !empty( $timestamp['tz'] )) |
|
| 5484 | + function _timestamp2date($timestamp, $parno = 6) { |
|
| 5485 | + if (is_array($timestamp)) { |
|
| 5486 | + if ((7 == $parno) && !empty($timestamp['tz'])) |
|
| 5487 | 5487 | $tz = $timestamp['tz']; |
| 5488 | 5488 | $timestamp = $timestamp['timestamp']; |
| 5489 | 5489 | } |
| 5490 | - $output = array( 'year' => date( 'Y', $timestamp ) |
|
| 5491 | - , 'month' => date( 'm', $timestamp ) |
|
| 5492 | - , 'day' => date( 'd', $timestamp )); |
|
| 5493 | - if( 3 != $parno ) { |
|
| 5494 | - $output['hour'] = date( 'H', $timestamp ); |
|
| 5495 | - $output['min'] = date( 'i', $timestamp ); |
|
| 5496 | - $output['sec'] = date( 's', $timestamp ); |
|
| 5497 | - if( isset( $tz )) |
|
| 5490 | + $output = array('year' => date('Y', $timestamp) |
|
| 5491 | + , 'month' => date('m', $timestamp) |
|
| 5492 | + , 'day' => date('d', $timestamp)); |
|
| 5493 | + if (3 != $parno) { |
|
| 5494 | + $output['hour'] = date('H', $timestamp); |
|
| 5495 | + $output['min'] = date('i', $timestamp); |
|
| 5496 | + $output['sec'] = date('s', $timestamp); |
|
| 5497 | + if (isset($tz)) |
|
| 5498 | 5498 | $output['tz'] = $tz; |
| 5499 | 5499 | } |
| 5500 | 5500 | return $output; |
@@ -5507,19 +5507,19 @@ discard block |
||
| 5507 | 5507 | * @param string $offset |
| 5508 | 5508 | * @return integer |
| 5509 | 5509 | */ |
| 5510 | - function _tz2offset( $tz ) { |
|
| 5511 | - $tz = trim( (string) $tz ); |
|
| 5510 | + function _tz2offset($tz) { |
|
| 5511 | + $tz = trim((string) $tz); |
|
| 5512 | 5512 | $offset = 0; |
| 5513 | - if((( 5 != strlen( $tz )) && ( 7 != strlen( $tz ))) || |
|
| 5514 | - (( '+' != substr( $tz, 0, 1 )) && ( '-' != substr( $tz, 0, 1 ))) || |
|
| 5515 | - (( '0000' >= substr( $tz, 1, 4 )) && ( '9999' < substr( $tz, 1, 4 ))) || |
|
| 5516 | - (( 7 == strlen( $tz )) && ( '00' > substr( $tz, 5, 2 )) && ( '99' < substr( $tz, 5, 2 )))) |
|
| 5513 | + if (((5 != strlen($tz)) && (7 != strlen($tz))) || |
|
| 5514 | + (('+' != substr($tz, 0, 1)) && ('-' != substr($tz, 0, 1))) || |
|
| 5515 | + (('0000' >= substr($tz, 1, 4)) && ('9999' < substr($tz, 1, 4))) || |
|
| 5516 | + ((7 == strlen($tz)) && ('00' > substr($tz, 5, 2)) && ('99' < substr($tz, 5, 2)))) |
|
| 5517 | 5517 | return $offset; |
| 5518 | - $hours2sec = (int) substr( $tz, 1, 2 ) * 3600; |
|
| 5519 | - $min2sec = (int) substr( $tz, 3, 2 ) * 60; |
|
| 5520 | - $sec = ( 7 == strlen( $tz )) ? (int) substr( $tz, -2 ) : '00'; |
|
| 5518 | + $hours2sec = (int) substr($tz, 1, 2) * 3600; |
|
| 5519 | + $min2sec = (int) substr($tz, 3, 2) * 60; |
|
| 5520 | + $sec = (7 == strlen($tz)) ? (int) substr($tz, -2) : '00'; |
|
| 5521 | 5521 | $offset = $hours2sec + $min2sec + $sec; |
| 5522 | - $offset = ('-' == substr( $tz, 0, 1 )) ? $offset : -1 * $offset; |
|
| 5522 | + $offset = ('-' == substr($tz, 0, 1)) ? $offset : -1 * $offset; |
|
| 5523 | 5523 | return $offset; |
| 5524 | 5524 | } |
| 5525 | 5525 | /*********************************************************************************/ |
@@ -5532,24 +5532,24 @@ discard block |
||
| 5532 | 5532 | * @param string $config |
| 5533 | 5533 | * @return value |
| 5534 | 5534 | */ |
| 5535 | - function getConfig( $config ) { |
|
| 5536 | - switch( strtoupper( $config )) { |
|
| 5535 | + function getConfig($config) { |
|
| 5536 | + switch (strtoupper($config)) { |
|
| 5537 | 5537 | case 'ALLOWEMPTY': |
| 5538 | 5538 | return $this->allowEmpty; |
| 5539 | 5539 | break; |
| 5540 | 5540 | case 'COMPSINFO': |
| 5541 | - unset( $this->compix ); |
|
| 5541 | + unset($this->compix); |
|
| 5542 | 5542 | $info = array(); |
| 5543 | - if( isset( $this->components )) { |
|
| 5544 | - foreach( $this->components as $cix => $component ) { |
|
| 5545 | - if( empty( $component )) continue; |
|
| 5546 | - unset( $component->propix ); |
|
| 5543 | + if (isset($this->components)) { |
|
| 5544 | + foreach ($this->components as $cix => $component) { |
|
| 5545 | + if (empty($component)) continue; |
|
| 5546 | + unset($component->propix); |
|
| 5547 | 5547 | $info[$cix]['ordno'] = $cix + 1; |
| 5548 | 5548 | $info[$cix]['type'] = $component->objName; |
| 5549 | - $info[$cix]['uid'] = $component->getProperty( 'uid' ); |
|
| 5550 | - $info[$cix]['props'] = $component->getConfig( 'propinfo' ); |
|
| 5551 | - $info[$cix]['sub'] = $component->getConfig( 'compsinfo' ); |
|
| 5552 | - unset( $component->propix ); |
|
| 5549 | + $info[$cix]['uid'] = $component->getProperty('uid'); |
|
| 5550 | + $info[$cix]['props'] = $component->getConfig('propinfo'); |
|
| 5551 | + $info[$cix]['sub'] = $component->getConfig('compsinfo'); |
|
| 5552 | + unset($component->propix); |
|
| 5553 | 5553 | } |
| 5554 | 5554 | } |
| 5555 | 5555 | return $info; |
@@ -5567,58 +5567,58 @@ discard block |
||
| 5567 | 5567 | break; |
| 5568 | 5568 | case 'PROPINFO': |
| 5569 | 5569 | $output = array(); |
| 5570 | - if( !in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) { |
|
| 5571 | - if( empty( $this->uid['value'] )) $this->_makeuid(); |
|
| 5570 | + if (!in_array($this->objName, array('valarm', 'vtimezone', 'standard', 'daylight'))) { |
|
| 5571 | + if (empty($this->uid['value'])) $this->_makeuid(); |
|
| 5572 | 5572 | $output['UID'] = 1; |
| 5573 | 5573 | } |
| 5574 | - if( !empty( $this->dtstamp )) $output['DTSTAMP'] = 1; |
|
| 5575 | - if( !empty( $this->summary )) $output['SUMMARY'] = 1; |
|
| 5576 | - if( !empty( $this->description )) $output['DESCRIPTION'] = count( $this->description ); |
|
| 5577 | - if( !empty( $this->dtstart )) $output['DTSTART'] = 1; |
|
| 5578 | - if( !empty( $this->dtend )) $output['DTEND'] = 1; |
|
| 5579 | - if( !empty( $this->due )) $output['DUE'] = 1; |
|
| 5580 | - if( !empty( $this->duration )) $output['DURATION'] = 1; |
|
| 5581 | - if( !empty( $this->rrule )) $output['RRULE'] = count( $this->rrule ); |
|
| 5582 | - if( !empty( $this->rdate )) $output['RDATE'] = count( $this->rdate ); |
|
| 5583 | - if( !empty( $this->exdate )) $output['EXDATE'] = count( $this->exdate ); |
|
| 5584 | - if( !empty( $this->exrule )) $output['EXRULE'] = count( $this->exrule ); |
|
| 5585 | - if( !empty( $this->action )) $output['ACTION'] = 1; |
|
| 5586 | - if( !empty( $this->attach )) $output['ATTACH'] = count( $this->attach ); |
|
| 5587 | - if( !empty( $this->attendee )) $output['ATTENDEE'] = count( $this->attendee ); |
|
| 5588 | - if( !empty( $this->categories )) $output['CATEGORIES'] = count( $this->categories ); |
|
| 5589 | - if( !empty( $this->class )) $output['CLASS'] = 1; |
|
| 5590 | - if( !empty( $this->comment )) $output['COMMENT'] = count( $this->comment ); |
|
| 5591 | - if( !empty( $this->completed )) $output['COMPLETED'] = 1; |
|
| 5592 | - if( !empty( $this->contact )) $output['CONTACT'] = count( $this->contact ); |
|
| 5593 | - if( !empty( $this->created )) $output['CREATED'] = 1; |
|
| 5594 | - if( !empty( $this->freebusy )) $output['FREEBUSY'] = count( $this->freebusy ); |
|
| 5595 | - if( !empty( $this->geo )) $output['GEO'] = 1; |
|
| 5596 | - if( !empty( $this->lastmodified )) $output['LAST-MODIFIED'] = 1; |
|
| 5597 | - if( !empty( $this->location )) $output['LOCATION'] = 1; |
|
| 5598 | - if( !empty( $this->organizer )) $output['ORGANIZER'] = 1; |
|
| 5599 | - if( !empty( $this->percentcomplete )) $output['PERCENT-COMPLETE'] = 1; |
|
| 5600 | - if( !empty( $this->priority )) $output['PRIORITY'] = 1; |
|
| 5601 | - if( !empty( $this->recurrenceid )) $output['RECURRENCE-ID'] = 1; |
|
| 5602 | - if( !empty( $this->relatedto )) $output['RELATED-TO'] = count( $this->relatedto ); |
|
| 5603 | - if( !empty( $this->repeat )) $output['REPEAT'] = 1; |
|
| 5604 | - if( !empty( $this->requeststatus )) $output['REQUEST-STATUS'] = count( $this->requeststatus ); |
|
| 5605 | - if( !empty( $this->resources )) $output['RESOURCES'] = count( $this->resources ); |
|
| 5606 | - if( !empty( $this->sequence )) $output['SEQUENCE'] = 1; |
|
| 5607 | - if( !empty( $this->status )) $output['STATUS'] = 1; |
|
| 5608 | - if( !empty( $this->transp )) $output['TRANSP'] = 1; |
|
| 5609 | - if( !empty( $this->trigger )) $output['TRIGGER'] = 1; |
|
| 5610 | - if( !empty( $this->tzid )) $output['TZID'] = 1; |
|
| 5611 | - if( !empty( $this->tzname )) $output['TZNAME'] = count( $this->tzname ); |
|
| 5612 | - if( !empty( $this->tzoffsetfrom )) $output['TZOFFSETTFROM'] = 1; |
|
| 5613 | - if( !empty( $this->tzoffsetto )) $output['TZOFFSETTO'] = 1; |
|
| 5614 | - if( !empty( $this->tzurl )) $output['TZURL'] = 1; |
|
| 5615 | - if( !empty( $this->url )) $output['URL'] = 1; |
|
| 5616 | - if( !empty( $this->xprop )) $output['X-PROP'] = count( $this->xprop ); |
|
| 5574 | + if (!empty($this->dtstamp)) $output['DTSTAMP'] = 1; |
|
| 5575 | + if (!empty($this->summary)) $output['SUMMARY'] = 1; |
|
| 5576 | + if (!empty($this->description)) $output['DESCRIPTION'] = count($this->description); |
|
| 5577 | + if (!empty($this->dtstart)) $output['DTSTART'] = 1; |
|
| 5578 | + if (!empty($this->dtend)) $output['DTEND'] = 1; |
|
| 5579 | + if (!empty($this->due)) $output['DUE'] = 1; |
|
| 5580 | + if (!empty($this->duration)) $output['DURATION'] = 1; |
|
| 5581 | + if (!empty($this->rrule)) $output['RRULE'] = count($this->rrule); |
|
| 5582 | + if (!empty($this->rdate)) $output['RDATE'] = count($this->rdate); |
|
| 5583 | + if (!empty($this->exdate)) $output['EXDATE'] = count($this->exdate); |
|
| 5584 | + if (!empty($this->exrule)) $output['EXRULE'] = count($this->exrule); |
|
| 5585 | + if (!empty($this->action)) $output['ACTION'] = 1; |
|
| 5586 | + if (!empty($this->attach)) $output['ATTACH'] = count($this->attach); |
|
| 5587 | + if (!empty($this->attendee)) $output['ATTENDEE'] = count($this->attendee); |
|
| 5588 | + if (!empty($this->categories)) $output['CATEGORIES'] = count($this->categories); |
|
| 5589 | + if (!empty($this->class)) $output['CLASS'] = 1; |
|
| 5590 | + if (!empty($this->comment)) $output['COMMENT'] = count($this->comment); |
|
| 5591 | + if (!empty($this->completed)) $output['COMPLETED'] = 1; |
|
| 5592 | + if (!empty($this->contact)) $output['CONTACT'] = count($this->contact); |
|
| 5593 | + if (!empty($this->created)) $output['CREATED'] = 1; |
|
| 5594 | + if (!empty($this->freebusy)) $output['FREEBUSY'] = count($this->freebusy); |
|
| 5595 | + if (!empty($this->geo)) $output['GEO'] = 1; |
|
| 5596 | + if (!empty($this->lastmodified)) $output['LAST-MODIFIED'] = 1; |
|
| 5597 | + if (!empty($this->location)) $output['LOCATION'] = 1; |
|
| 5598 | + if (!empty($this->organizer)) $output['ORGANIZER'] = 1; |
|
| 5599 | + if (!empty($this->percentcomplete)) $output['PERCENT-COMPLETE'] = 1; |
|
| 5600 | + if (!empty($this->priority)) $output['PRIORITY'] = 1; |
|
| 5601 | + if (!empty($this->recurrenceid)) $output['RECURRENCE-ID'] = 1; |
|
| 5602 | + if (!empty($this->relatedto)) $output['RELATED-TO'] = count($this->relatedto); |
|
| 5603 | + if (!empty($this->repeat)) $output['REPEAT'] = 1; |
|
| 5604 | + if (!empty($this->requeststatus)) $output['REQUEST-STATUS'] = count($this->requeststatus); |
|
| 5605 | + if (!empty($this->resources)) $output['RESOURCES'] = count($this->resources); |
|
| 5606 | + if (!empty($this->sequence)) $output['SEQUENCE'] = 1; |
|
| 5607 | + if (!empty($this->status)) $output['STATUS'] = 1; |
|
| 5608 | + if (!empty($this->transp)) $output['TRANSP'] = 1; |
|
| 5609 | + if (!empty($this->trigger)) $output['TRIGGER'] = 1; |
|
| 5610 | + if (!empty($this->tzid)) $output['TZID'] = 1; |
|
| 5611 | + if (!empty($this->tzname)) $output['TZNAME'] = count($this->tzname); |
|
| 5612 | + if (!empty($this->tzoffsetfrom)) $output['TZOFFSETTFROM'] = 1; |
|
| 5613 | + if (!empty($this->tzoffsetto)) $output['TZOFFSETTO'] = 1; |
|
| 5614 | + if (!empty($this->tzurl)) $output['TZURL'] = 1; |
|
| 5615 | + if (!empty($this->url)) $output['URL'] = 1; |
|
| 5616 | + if (!empty($this->xprop)) $output['X-PROP'] = count($this->xprop); |
|
| 5617 | 5617 | return $output; |
| 5618 | 5618 | break; |
| 5619 | 5619 | case 'UNIQUE_ID': |
| 5620 | - if( empty( $this->unique_id )) |
|
| 5621 | - $this->unique_id = ( isset( $_SERVER['SERVER_NAME'] )) ? gethostbyname( $_SERVER['SERVER_NAME'] ) : 'localhost'; |
|
| 5620 | + if (empty($this->unique_id)) |
|
| 5621 | + $this->unique_id = (isset($_SERVER['SERVER_NAME'])) ? gethostbyname($_SERVER['SERVER_NAME']) : 'localhost'; |
|
| 5622 | 5622 | return $this->unique_id; |
| 5623 | 5623 | break; |
| 5624 | 5624 | } |
@@ -5632,47 +5632,47 @@ discard block |
||
| 5632 | 5632 | * @param string $value |
| 5633 | 5633 | * @return void |
| 5634 | 5634 | */ |
| 5635 | - function setConfig( $config, $value ) { |
|
| 5635 | + function setConfig($config, $value) { |
|
| 5636 | 5636 | $res = FALSE; |
| 5637 | - switch( strtoupper( $config )) { |
|
| 5637 | + switch (strtoupper($config)) { |
|
| 5638 | 5638 | case 'ALLOWEMPTY': |
| 5639 | 5639 | $this->allowEmpty = $value; |
| 5640 | - $subcfg = array( 'ALLOWEMPTY' => $value ); |
|
| 5640 | + $subcfg = array('ALLOWEMPTY' => $value); |
|
| 5641 | 5641 | $res = TRUE; |
| 5642 | 5642 | break; |
| 5643 | 5643 | case 'FORMAT': |
| 5644 | - $value = trim( $value ); |
|
| 5644 | + $value = trim($value); |
|
| 5645 | 5645 | $this->format = $value; |
| 5646 | 5646 | $this->_createFormat(); |
| 5647 | - $subcfg = array( 'FORMAT' => $value ); |
|
| 5647 | + $subcfg = array('FORMAT' => $value); |
|
| 5648 | 5648 | $res = TRUE; |
| 5649 | 5649 | break; |
| 5650 | 5650 | case 'LANGUAGE': |
| 5651 | 5651 | // set language for calendar component as defined in [RFC 1766] |
| 5652 | - $value = trim( $value ); |
|
| 5652 | + $value = trim($value); |
|
| 5653 | 5653 | $this->language = $value; |
| 5654 | - $subcfg = array( 'LANGUAGE' => $value ); |
|
| 5654 | + $subcfg = array('LANGUAGE' => $value); |
|
| 5655 | 5655 | $res = TRUE; |
| 5656 | 5656 | break; |
| 5657 | 5657 | case 'NL': |
| 5658 | 5658 | case 'NEWLINECHAR': |
| 5659 | 5659 | $this->nl = $value; |
| 5660 | - $subcfg = array( 'NL' => $value ); |
|
| 5660 | + $subcfg = array('NL' => $value); |
|
| 5661 | 5661 | $res = TRUE; |
| 5662 | 5662 | break; |
| 5663 | 5663 | case 'UNIQUE_ID': |
| 5664 | - $value = trim( $value ); |
|
| 5664 | + $value = trim($value); |
|
| 5665 | 5665 | $this->unique_id = $value; |
| 5666 | - $subcfg = array( 'UNIQUE_ID' => $value ); |
|
| 5666 | + $subcfg = array('UNIQUE_ID' => $value); |
|
| 5667 | 5667 | $res = TRUE; |
| 5668 | 5668 | break; |
| 5669 | 5669 | } |
| 5670 | - if( !$res ) return FALSE; |
|
| 5671 | - if( isset( $subcfg ) && !empty( $this->components )) { |
|
| 5672 | - foreach( $subcfg as $cfgkey => $cfgvalue ) { |
|
| 5673 | - foreach( $this->components as $cix => $component ) { |
|
| 5674 | - $res = $component->setConfig( $cfgkey, $cfgvalue ); |
|
| 5675 | - if( !$res ) |
|
| 5670 | + if (!$res) return FALSE; |
|
| 5671 | + if (isset($subcfg) && !empty($this->components)) { |
|
| 5672 | + foreach ($subcfg as $cfgkey => $cfgvalue) { |
|
| 5673 | + foreach ($this->components as $cix => $component) { |
|
| 5674 | + $res = $component->setConfig($cfgkey, $cfgvalue); |
|
| 5675 | + if (!$res) |
|
| 5676 | 5676 | break 2; |
| 5677 | 5677 | $this->components[$cix] = $component; // PHP4 compliant |
| 5678 | 5678 | } |
@@ -5690,248 +5690,248 @@ discard block |
||
| 5690 | 5690 | * @param int @propix, optional, if specific property is wanted in case of multiply occurences |
| 5691 | 5691 | * @return bool, if successfull delete TRUE |
| 5692 | 5692 | */ |
| 5693 | - function deleteProperty( $propName, $propix=FALSE ) { |
|
| 5694 | - if( $this->_notExistProp( $propName )) return FALSE; |
|
| 5695 | - $propName = strtoupper( $propName ); |
|
| 5696 | - if( in_array( $propName, array( 'ATTACH', 'ATTENDEE', 'CATEGORIES', 'COMMENT', 'CONTACT', 'DESCRIPTION', 'EXDATE', 'EXRULE', |
|
| 5697 | - 'FREEBUSY', 'RDATE', 'RELATED-TO', 'RESOURCES', 'RRULE', 'REQUEST-STATUS', 'TZNAME', 'X-PROP' ))) { |
|
| 5698 | - if( !$propix ) |
|
| 5699 | - $propix = ( isset( $this->propdelix[$propName] )) ? $this->propdelix[$propName] + 2 : 1; |
|
| 5693 | + function deleteProperty($propName, $propix = FALSE) { |
|
| 5694 | + if ($this->_notExistProp($propName)) return FALSE; |
|
| 5695 | + $propName = strtoupper($propName); |
|
| 5696 | + if (in_array($propName, array('ATTACH', 'ATTENDEE', 'CATEGORIES', 'COMMENT', 'CONTACT', 'DESCRIPTION', 'EXDATE', 'EXRULE', |
|
| 5697 | + 'FREEBUSY', 'RDATE', 'RELATED-TO', 'RESOURCES', 'RRULE', 'REQUEST-STATUS', 'TZNAME', 'X-PROP'))) { |
|
| 5698 | + if (!$propix) |
|
| 5699 | + $propix = (isset($this->propdelix[$propName])) ? $this->propdelix[$propName] + 2 : 1; |
|
| 5700 | 5700 | $this->propdelix[$propName] = --$propix; |
| 5701 | 5701 | } |
| 5702 | 5702 | $return = FALSE; |
| 5703 | - switch( $propName ) { |
|
| 5703 | + switch ($propName) { |
|
| 5704 | 5704 | case 'ACTION': |
| 5705 | - if( !empty( $this->action )) { |
|
| 5705 | + if (!empty($this->action)) { |
|
| 5706 | 5706 | $this->action = ''; |
| 5707 | 5707 | $return = TRUE; |
| 5708 | 5708 | } |
| 5709 | 5709 | break; |
| 5710 | 5710 | case 'ATTACH': |
| 5711 | - return $this->deletePropertyM( $this->attach, $propix ); |
|
| 5711 | + return $this->deletePropertyM($this->attach, $propix); |
|
| 5712 | 5712 | break; |
| 5713 | 5713 | case 'ATTENDEE': |
| 5714 | - return $this->deletePropertyM( $this->attendee, $propix ); |
|
| 5714 | + return $this->deletePropertyM($this->attendee, $propix); |
|
| 5715 | 5715 | break; |
| 5716 | 5716 | case 'CATEGORIES': |
| 5717 | - return $this->deletePropertyM( $this->categories, $propix ); |
|
| 5717 | + return $this->deletePropertyM($this->categories, $propix); |
|
| 5718 | 5718 | break; |
| 5719 | 5719 | case 'CLASS': |
| 5720 | - if( !empty( $this->class )) { |
|
| 5720 | + if (!empty($this->class)) { |
|
| 5721 | 5721 | $this->class = ''; |
| 5722 | 5722 | $return = TRUE; |
| 5723 | 5723 | } |
| 5724 | 5724 | break; |
| 5725 | 5725 | case 'COMMENT': |
| 5726 | - return $this->deletePropertyM( $this->comment, $propix ); |
|
| 5726 | + return $this->deletePropertyM($this->comment, $propix); |
|
| 5727 | 5727 | break; |
| 5728 | 5728 | case 'COMPLETED': |
| 5729 | - if( !empty( $this->completed )) { |
|
| 5729 | + if (!empty($this->completed)) { |
|
| 5730 | 5730 | $this->completed = ''; |
| 5731 | 5731 | $return = TRUE; |
| 5732 | 5732 | } |
| 5733 | 5733 | break; |
| 5734 | 5734 | case 'CONTACT': |
| 5735 | - return $this->deletePropertyM( $this->contact, $propix ); |
|
| 5735 | + return $this->deletePropertyM($this->contact, $propix); |
|
| 5736 | 5736 | break; |
| 5737 | 5737 | case 'CREATED': |
| 5738 | - if( !empty( $this->created )) { |
|
| 5738 | + if (!empty($this->created)) { |
|
| 5739 | 5739 | $this->created = ''; |
| 5740 | 5740 | $return = TRUE; |
| 5741 | 5741 | } |
| 5742 | 5742 | break; |
| 5743 | 5743 | case 'DESCRIPTION': |
| 5744 | - return $this->deletePropertyM( $this->description, $propix ); |
|
| 5744 | + return $this->deletePropertyM($this->description, $propix); |
|
| 5745 | 5745 | break; |
| 5746 | 5746 | case 'DTEND': |
| 5747 | - if( !empty( $this->dtend )) { |
|
| 5747 | + if (!empty($this->dtend)) { |
|
| 5748 | 5748 | $this->dtend = ''; |
| 5749 | 5749 | $return = TRUE; |
| 5750 | 5750 | } |
| 5751 | 5751 | break; |
| 5752 | 5752 | case 'DTSTAMP': |
| 5753 | - if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
|
| 5753 | + if (in_array($this->objName, array('valarm', 'vtimezone', 'standard', 'daylight'))) |
|
| 5754 | 5754 | return FALSE; |
| 5755 | - if( !empty( $this->dtstamp )) { |
|
| 5755 | + if (!empty($this->dtstamp)) { |
|
| 5756 | 5756 | $this->dtstamp = ''; |
| 5757 | 5757 | $return = TRUE; |
| 5758 | 5758 | } |
| 5759 | 5759 | break; |
| 5760 | 5760 | case 'DTSTART': |
| 5761 | - if( !empty( $this->dtstart )) { |
|
| 5761 | + if (!empty($this->dtstart)) { |
|
| 5762 | 5762 | $this->dtstart = ''; |
| 5763 | 5763 | $return = TRUE; |
| 5764 | 5764 | } |
| 5765 | 5765 | break; |
| 5766 | 5766 | case 'DUE': |
| 5767 | - if( !empty( $this->due )) { |
|
| 5767 | + if (!empty($this->due)) { |
|
| 5768 | 5768 | $this->due = ''; |
| 5769 | 5769 | $return = TRUE; |
| 5770 | 5770 | } |
| 5771 | 5771 | break; |
| 5772 | 5772 | case 'DURATION': |
| 5773 | - if( !empty( $this->duration )) { |
|
| 5773 | + if (!empty($this->duration)) { |
|
| 5774 | 5774 | $this->duration = ''; |
| 5775 | 5775 | $return = TRUE; |
| 5776 | 5776 | } |
| 5777 | 5777 | break; |
| 5778 | 5778 | case 'EXDATE': |
| 5779 | - return $this->deletePropertyM( $this->exdate, $propix ); |
|
| 5779 | + return $this->deletePropertyM($this->exdate, $propix); |
|
| 5780 | 5780 | break; |
| 5781 | 5781 | case 'EXRULE': |
| 5782 | - return $this->deletePropertyM( $this->exrule, $propix ); |
|
| 5782 | + return $this->deletePropertyM($this->exrule, $propix); |
|
| 5783 | 5783 | break; |
| 5784 | 5784 | case 'FREEBUSY': |
| 5785 | - return $this->deletePropertyM( $this->freebusy, $propix ); |
|
| 5785 | + return $this->deletePropertyM($this->freebusy, $propix); |
|
| 5786 | 5786 | break; |
| 5787 | 5787 | case 'GEO': |
| 5788 | - if( !empty( $this->geo )) { |
|
| 5788 | + if (!empty($this->geo)) { |
|
| 5789 | 5789 | $this->geo = ''; |
| 5790 | 5790 | $return = TRUE; |
| 5791 | 5791 | } |
| 5792 | 5792 | break; |
| 5793 | 5793 | case 'LAST-MODIFIED': |
| 5794 | - if( !empty( $this->lastmodified )) { |
|
| 5794 | + if (!empty($this->lastmodified)) { |
|
| 5795 | 5795 | $this->lastmodified = ''; |
| 5796 | 5796 | $return = TRUE; |
| 5797 | 5797 | } |
| 5798 | 5798 | break; |
| 5799 | 5799 | case 'LOCATION': |
| 5800 | - if( !empty( $this->location )) { |
|
| 5800 | + if (!empty($this->location)) { |
|
| 5801 | 5801 | $this->location = ''; |
| 5802 | 5802 | $return = TRUE; |
| 5803 | 5803 | } |
| 5804 | 5804 | break; |
| 5805 | 5805 | case 'ORGANIZER': |
| 5806 | - if( !empty( $this->organizer )) { |
|
| 5806 | + if (!empty($this->organizer)) { |
|
| 5807 | 5807 | $this->organizer = ''; |
| 5808 | 5808 | $return = TRUE; |
| 5809 | 5809 | } |
| 5810 | 5810 | break; |
| 5811 | 5811 | case 'PERCENT-COMPLETE': |
| 5812 | - if( !empty( $this->percentcomplete )) { |
|
| 5812 | + if (!empty($this->percentcomplete)) { |
|
| 5813 | 5813 | $this->percentcomplete = ''; |
| 5814 | 5814 | $return = TRUE; |
| 5815 | 5815 | } |
| 5816 | 5816 | break; |
| 5817 | 5817 | case 'PRIORITY': |
| 5818 | - if( !empty( $this->priority )) { |
|
| 5818 | + if (!empty($this->priority)) { |
|
| 5819 | 5819 | $this->priority = ''; |
| 5820 | 5820 | $return = TRUE; |
| 5821 | 5821 | } |
| 5822 | 5822 | break; |
| 5823 | 5823 | case 'RDATE': |
| 5824 | - return $this->deletePropertyM( $this->rdate, $propix ); |
|
| 5824 | + return $this->deletePropertyM($this->rdate, $propix); |
|
| 5825 | 5825 | break; |
| 5826 | 5826 | case 'RECURRENCE-ID': |
| 5827 | - if( !empty( $this->recurrenceid )) { |
|
| 5827 | + if (!empty($this->recurrenceid)) { |
|
| 5828 | 5828 | $this->recurrenceid = ''; |
| 5829 | 5829 | $return = TRUE; |
| 5830 | 5830 | } |
| 5831 | 5831 | break; |
| 5832 | 5832 | case 'RELATED-TO': |
| 5833 | - return $this->deletePropertyM( $this->relatedto, $propix ); |
|
| 5833 | + return $this->deletePropertyM($this->relatedto, $propix); |
|
| 5834 | 5834 | break; |
| 5835 | 5835 | case 'REPEAT': |
| 5836 | - if( !empty( $this->repeat )) { |
|
| 5836 | + if (!empty($this->repeat)) { |
|
| 5837 | 5837 | $this->repeat = ''; |
| 5838 | 5838 | $return = TRUE; |
| 5839 | 5839 | } |
| 5840 | 5840 | break; |
| 5841 | 5841 | case 'REQUEST-STATUS': |
| 5842 | - return $this->deletePropertyM( $this->requeststatus, $propix ); |
|
| 5842 | + return $this->deletePropertyM($this->requeststatus, $propix); |
|
| 5843 | 5843 | break; |
| 5844 | 5844 | case 'RESOURCES': |
| 5845 | - return $this->deletePropertyM( $this->resources, $propix ); |
|
| 5845 | + return $this->deletePropertyM($this->resources, $propix); |
|
| 5846 | 5846 | break; |
| 5847 | 5847 | case 'RRULE': |
| 5848 | - return $this->deletePropertyM( $this->rrule, $propix ); |
|
| 5848 | + return $this->deletePropertyM($this->rrule, $propix); |
|
| 5849 | 5849 | break; |
| 5850 | 5850 | case 'SEQUENCE': |
| 5851 | - if( !empty( $this->sequence )) { |
|
| 5851 | + if (!empty($this->sequence)) { |
|
| 5852 | 5852 | $this->sequence = ''; |
| 5853 | 5853 | $return = TRUE; |
| 5854 | 5854 | } |
| 5855 | 5855 | break; |
| 5856 | 5856 | case 'STATUS': |
| 5857 | - if( !empty( $this->status )) { |
|
| 5857 | + if (!empty($this->status)) { |
|
| 5858 | 5858 | $this->status = ''; |
| 5859 | 5859 | $return = TRUE; |
| 5860 | 5860 | } |
| 5861 | 5861 | break; |
| 5862 | 5862 | case 'SUMMARY': |
| 5863 | - if( !empty( $this->summary )) { |
|
| 5863 | + if (!empty($this->summary)) { |
|
| 5864 | 5864 | $this->summary = ''; |
| 5865 | 5865 | $return = TRUE; |
| 5866 | 5866 | } |
| 5867 | 5867 | break; |
| 5868 | 5868 | case 'TRANSP': |
| 5869 | - if( !empty( $this->transp )) { |
|
| 5869 | + if (!empty($this->transp)) { |
|
| 5870 | 5870 | $this->transp = ''; |
| 5871 | 5871 | $return = TRUE; |
| 5872 | 5872 | } |
| 5873 | 5873 | break; |
| 5874 | 5874 | case 'TRIGGER': |
| 5875 | - if( !empty( $this->trigger )) { |
|
| 5875 | + if (!empty($this->trigger)) { |
|
| 5876 | 5876 | $this->trigger = ''; |
| 5877 | 5877 | $return = TRUE; |
| 5878 | 5878 | } |
| 5879 | 5879 | break; |
| 5880 | 5880 | case 'TZID': |
| 5881 | - if( !empty( $this->tzid )) { |
|
| 5881 | + if (!empty($this->tzid)) { |
|
| 5882 | 5882 | $this->tzid = ''; |
| 5883 | 5883 | $return = TRUE; |
| 5884 | 5884 | } |
| 5885 | 5885 | break; |
| 5886 | 5886 | case 'TZNAME': |
| 5887 | - return $this->deletePropertyM( $this->tzname, $propix ); |
|
| 5887 | + return $this->deletePropertyM($this->tzname, $propix); |
|
| 5888 | 5888 | break; |
| 5889 | 5889 | case 'TZOFFSETFROM': |
| 5890 | - if( !empty( $this->tzoffsetfrom )) { |
|
| 5890 | + if (!empty($this->tzoffsetfrom)) { |
|
| 5891 | 5891 | $this->tzoffsetfrom = ''; |
| 5892 | 5892 | $return = TRUE; |
| 5893 | 5893 | } |
| 5894 | 5894 | break; |
| 5895 | 5895 | case 'TZOFFSETTO': |
| 5896 | - if( !empty( $this->tzoffsetto )) { |
|
| 5896 | + if (!empty($this->tzoffsetto)) { |
|
| 5897 | 5897 | $this->tzoffsetto = ''; |
| 5898 | 5898 | $return = TRUE; |
| 5899 | 5899 | } |
| 5900 | 5900 | break; |
| 5901 | 5901 | case 'TZURL': |
| 5902 | - if( !empty( $this->tzurl )) { |
|
| 5902 | + if (!empty($this->tzurl)) { |
|
| 5903 | 5903 | $this->tzurl = ''; |
| 5904 | 5904 | $return = TRUE; |
| 5905 | 5905 | } |
| 5906 | 5906 | break; |
| 5907 | 5907 | case 'UID': |
| 5908 | - if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
|
| 5908 | + if (in_array($this->objName, array('valarm', 'vtimezone', 'standard', 'daylight'))) |
|
| 5909 | 5909 | return FALSE; |
| 5910 | - if( !empty( $this->uid )) { |
|
| 5910 | + if (!empty($this->uid)) { |
|
| 5911 | 5911 | $this->uid = ''; |
| 5912 | 5912 | $return = TRUE; |
| 5913 | 5913 | } |
| 5914 | 5914 | break; |
| 5915 | 5915 | case 'URL': |
| 5916 | - if( !empty( $this->url )) { |
|
| 5916 | + if (!empty($this->url)) { |
|
| 5917 | 5917 | $this->url = ''; |
| 5918 | 5918 | $return = TRUE; |
| 5919 | 5919 | } |
| 5920 | 5920 | break; |
| 5921 | 5921 | default: |
| 5922 | 5922 | $reduced = ''; |
| 5923 | - if( $propName != 'X-PROP' ) { |
|
| 5924 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 5925 | - foreach( $this->xprop as $k => $a ) { |
|
| 5926 | - if(( $k != $propName ) && !empty( $a )) |
|
| 5923 | + if ($propName != 'X-PROP') { |
|
| 5924 | + if (!isset($this->xprop[$propName])) return FALSE; |
|
| 5925 | + foreach ($this->xprop as $k => $a) { |
|
| 5926 | + if (($k != $propName) && !empty($a)) |
|
| 5927 | 5927 | $reduced[$k] = $a; |
| 5928 | 5928 | } |
| 5929 | 5929 | } |
| 5930 | 5930 | else { |
| 5931 | - if( count( $this->xprop ) <= $propix ) return FALSE; |
|
| 5931 | + if (count($this->xprop) <= $propix) return FALSE; |
|
| 5932 | 5932 | $xpropno = 0; |
| 5933 | - foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 5934 | - if( $propix != $xpropno ) |
|
| 5933 | + foreach ($this->xprop as $xpropkey => $xpropvalue) { |
|
| 5934 | + if ($propix != $xpropno) |
|
| 5935 | 5935 | $reduced[$xpropkey] = $xpropvalue; |
| 5936 | 5936 | $xpropno++; |
| 5937 | 5937 | } |
@@ -5951,11 +5951,11 @@ discard block |
||
| 5951 | 5951 | * @param int @propix, default 0 |
| 5952 | 5952 | * @return bool TRUE |
| 5953 | 5953 | */ |
| 5954 | - function deletePropertyM( & $multiprop, $propix=0 ) { |
|
| 5955 | - if( !isset( $multiprop[$propix])) return FALSE; |
|
| 5956 | - unset( $multiprop[$propix] ); |
|
| 5957 | - if( empty( $multiprop )) $multiprop = ''; |
|
| 5958 | - return ( isset( $this->multiprop[$propix] )) ? FALSE : TRUE; |
|
| 5954 | + function deletePropertyM(& $multiprop, $propix = 0) { |
|
| 5955 | + if (!isset($multiprop[$propix])) return FALSE; |
|
| 5956 | + unset($multiprop[$propix]); |
|
| 5957 | + if (empty($multiprop)) $multiprop = ''; |
|
| 5958 | + return (isset($this->multiprop[$propix])) ? FALSE : TRUE; |
|
| 5959 | 5959 | } |
| 5960 | 5960 | /** |
| 5961 | 5961 | * get component property value/params |
@@ -5970,183 +5970,183 @@ discard block |
||
| 5970 | 5970 | * @param bool $specform=FALSE |
| 5971 | 5971 | * @return mixed |
| 5972 | 5972 | */ |
| 5973 | - function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE, $specform=FALSE ) { |
|
| 5974 | - if( $this->_notExistProp( $propName )) return FALSE; |
|
| 5975 | - $propName = ( $propName ) ? strtoupper( $propName ) : 'X-PROP'; |
|
| 5976 | - if( in_array( $propName, array( 'ATTACH', 'ATTENDEE', 'CATEGORIES', 'COMMENT', 'CONTACT', 'DESCRIPTION', 'EXDATE', 'EXRULE', |
|
| 5977 | - 'FREEBUSY', 'RDATE', 'RELATED-TO', 'RESOURCES', 'RRULE', 'REQUEST-STATUS', 'TZNAME', 'X-PROP' ))) { |
|
| 5978 | - if( !$propix ) |
|
| 5979 | - $propix = ( isset( $this->propix[$propName] )) ? $this->propix[$propName] + 2 : 1; |
|
| 5973 | + function getProperty($propName = FALSE, $propix = FALSE, $inclParam = FALSE, $specform = FALSE) { |
|
| 5974 | + if ($this->_notExistProp($propName)) return FALSE; |
|
| 5975 | + $propName = ($propName) ? strtoupper($propName) : 'X-PROP'; |
|
| 5976 | + if (in_array($propName, array('ATTACH', 'ATTENDEE', 'CATEGORIES', 'COMMENT', 'CONTACT', 'DESCRIPTION', 'EXDATE', 'EXRULE', |
|
| 5977 | + 'FREEBUSY', 'RDATE', 'RELATED-TO', 'RESOURCES', 'RRULE', 'REQUEST-STATUS', 'TZNAME', 'X-PROP'))) { |
|
| 5978 | + if (!$propix) |
|
| 5979 | + $propix = (isset($this->propix[$propName])) ? $this->propix[$propName] + 2 : 1; |
|
| 5980 | 5980 | $this->propix[$propName] = --$propix; |
| 5981 | 5981 | } |
| 5982 | - switch( $propName ) { |
|
| 5982 | + switch ($propName) { |
|
| 5983 | 5983 | case 'ACTION': |
| 5984 | - if( !empty( $this->action['value'] )) return ( $inclParam ) ? $this->action : $this->action['value']; |
|
| 5984 | + if (!empty($this->action['value'])) return ($inclParam) ? $this->action : $this->action['value']; |
|
| 5985 | 5985 | break; |
| 5986 | 5986 | case 'ATTACH': |
| 5987 | - if( !isset( $this->attach[$propix] )) return FALSE; |
|
| 5988 | - return ( $inclParam ) ? $this->attach[$propix] : $this->attach[$propix]['value']; |
|
| 5987 | + if (!isset($this->attach[$propix])) return FALSE; |
|
| 5988 | + return ($inclParam) ? $this->attach[$propix] : $this->attach[$propix]['value']; |
|
| 5989 | 5989 | break; |
| 5990 | 5990 | case 'ATTENDEE': |
| 5991 | - if( !isset( $this->attendee[$propix] )) return FALSE; |
|
| 5992 | - return ( $inclParam ) ? $this->attendee[$propix] : $this->attendee[$propix]['value']; |
|
| 5991 | + if (!isset($this->attendee[$propix])) return FALSE; |
|
| 5992 | + return ($inclParam) ? $this->attendee[$propix] : $this->attendee[$propix]['value']; |
|
| 5993 | 5993 | break; |
| 5994 | 5994 | case 'CATEGORIES': |
| 5995 | - if( !isset( $this->categories[$propix] )) return FALSE; |
|
| 5996 | - return ( $inclParam ) ? $this->categories[$propix] : $this->categories[$propix]['value']; |
|
| 5995 | + if (!isset($this->categories[$propix])) return FALSE; |
|
| 5996 | + return ($inclParam) ? $this->categories[$propix] : $this->categories[$propix]['value']; |
|
| 5997 | 5997 | break; |
| 5998 | 5998 | case 'CLASS': |
| 5999 | - if( !empty( $this->class['value'] )) return ( $inclParam ) ? $this->class : $this->class['value']; |
|
| 5999 | + if (!empty($this->class['value'])) return ($inclParam) ? $this->class : $this->class['value']; |
|
| 6000 | 6000 | break; |
| 6001 | 6001 | case 'COMMENT': |
| 6002 | - if( !isset( $this->comment[$propix] )) return FALSE; |
|
| 6003 | - return ( $inclParam ) ? $this->comment[$propix] : $this->comment[$propix]['value']; |
|
| 6002 | + if (!isset($this->comment[$propix])) return FALSE; |
|
| 6003 | + return ($inclParam) ? $this->comment[$propix] : $this->comment[$propix]['value']; |
|
| 6004 | 6004 | break; |
| 6005 | 6005 | case 'COMPLETED': |
| 6006 | - if( !empty( $this->completed['value'] )) return ( $inclParam ) ? $this->completed : $this->completed['value']; |
|
| 6006 | + if (!empty($this->completed['value'])) return ($inclParam) ? $this->completed : $this->completed['value']; |
|
| 6007 | 6007 | break; |
| 6008 | 6008 | case 'CONTACT': |
| 6009 | - if( !isset( $this->contact[$propix] )) return FALSE; |
|
| 6010 | - return ( $inclParam ) ? $this->contact[$propix] : $this->contact[$propix]['value']; |
|
| 6009 | + if (!isset($this->contact[$propix])) return FALSE; |
|
| 6010 | + return ($inclParam) ? $this->contact[$propix] : $this->contact[$propix]['value']; |
|
| 6011 | 6011 | break; |
| 6012 | 6012 | case 'CREATED': |
| 6013 | - if( !empty( $this->created['value'] )) return ( $inclParam ) ? $this->created : $this->created['value']; |
|
| 6013 | + if (!empty($this->created['value'])) return ($inclParam) ? $this->created : $this->created['value']; |
|
| 6014 | 6014 | break; |
| 6015 | 6015 | case 'DESCRIPTION': |
| 6016 | - if( !isset( $this->description[$propix] )) return FALSE; |
|
| 6017 | - return ( $inclParam ) ? $this->description[$propix] : $this->description[$propix]['value']; |
|
| 6016 | + if (!isset($this->description[$propix])) return FALSE; |
|
| 6017 | + return ($inclParam) ? $this->description[$propix] : $this->description[$propix]['value']; |
|
| 6018 | 6018 | break; |
| 6019 | 6019 | case 'DTEND': |
| 6020 | - if( !empty( $this->dtend['value'] )) return ( $inclParam ) ? $this->dtend : $this->dtend['value']; |
|
| 6020 | + if (!empty($this->dtend['value'])) return ($inclParam) ? $this->dtend : $this->dtend['value']; |
|
| 6021 | 6021 | break; |
| 6022 | 6022 | case 'DTSTAMP': |
| 6023 | - if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
|
| 6023 | + if (in_array($this->objName, array('valarm', 'vtimezone', 'standard', 'daylight'))) |
|
| 6024 | 6024 | return; |
| 6025 | - if( !isset( $this->dtstamp['value'] )) |
|
| 6025 | + if (!isset($this->dtstamp['value'])) |
|
| 6026 | 6026 | $this->_makeDtstamp(); |
| 6027 | - return ( $inclParam ) ? $this->dtstamp : $this->dtstamp['value']; |
|
| 6027 | + return ($inclParam) ? $this->dtstamp : $this->dtstamp['value']; |
|
| 6028 | 6028 | break; |
| 6029 | 6029 | case 'DTSTART': |
| 6030 | - if( !empty( $this->dtstart['value'] )) return ( $inclParam ) ? $this->dtstart : $this->dtstart['value']; |
|
| 6030 | + if (!empty($this->dtstart['value'])) return ($inclParam) ? $this->dtstart : $this->dtstart['value']; |
|
| 6031 | 6031 | break; |
| 6032 | 6032 | case 'DUE': |
| 6033 | - if( !empty( $this->due['value'] )) return ( $inclParam ) ? $this->due : $this->due['value']; |
|
| 6033 | + if (!empty($this->due['value'])) return ($inclParam) ? $this->due : $this->due['value']; |
|
| 6034 | 6034 | break; |
| 6035 | 6035 | case 'DURATION': |
| 6036 | - if( !isset( $this->duration['value'] )) return FALSE; |
|
| 6037 | - $value = ( $specform ) ? $this->duration2date() : $this->duration['value']; |
|
| 6038 | - return ( $inclParam ) ? array( 'value' => $value, 'params' => $this->duration['params'] ) : $value; |
|
| 6036 | + if (!isset($this->duration['value'])) return FALSE; |
|
| 6037 | + $value = ($specform) ? $this->duration2date() : $this->duration['value']; |
|
| 6038 | + return ($inclParam) ? array('value' => $value, 'params' => $this->duration['params']) : $value; |
|
| 6039 | 6039 | break; |
| 6040 | 6040 | case 'EXDATE': |
| 6041 | - if( !isset( $this->exdate[$propix] )) return FALSE; |
|
| 6042 | - return ( $inclParam ) ? $this->exdate[$propix] : $this->exdate[$propix]['value']; |
|
| 6041 | + if (!isset($this->exdate[$propix])) return FALSE; |
|
| 6042 | + return ($inclParam) ? $this->exdate[$propix] : $this->exdate[$propix]['value']; |
|
| 6043 | 6043 | break; |
| 6044 | 6044 | case 'EXRULE': |
| 6045 | - if( !isset( $this->exrule[$propix] )) return FALSE; |
|
| 6046 | - return ( $inclParam ) ? $this->exrule[$propix] : $this->exrule[$propix]['value']; |
|
| 6045 | + if (!isset($this->exrule[$propix])) return FALSE; |
|
| 6046 | + return ($inclParam) ? $this->exrule[$propix] : $this->exrule[$propix]['value']; |
|
| 6047 | 6047 | break; |
| 6048 | 6048 | case 'FREEBUSY': |
| 6049 | - if( !isset( $this->freebusy[$propix] )) return FALSE; |
|
| 6050 | - return ( $inclParam ) ? $this->freebusy[$propix] : $this->freebusy[$propix]['value']; |
|
| 6049 | + if (!isset($this->freebusy[$propix])) return FALSE; |
|
| 6050 | + return ($inclParam) ? $this->freebusy[$propix] : $this->freebusy[$propix]['value']; |
|
| 6051 | 6051 | break; |
| 6052 | 6052 | case 'GEO': |
| 6053 | - if( !empty( $this->geo['value'] )) return ( $inclParam ) ? $this->geo : $this->geo['value']; |
|
| 6053 | + if (!empty($this->geo['value'])) return ($inclParam) ? $this->geo : $this->geo['value']; |
|
| 6054 | 6054 | break; |
| 6055 | 6055 | case 'LAST-MODIFIED': |
| 6056 | - if( !empty( $this->lastmodified['value'] )) return ( $inclParam ) ? $this->lastmodified : $this->lastmodified['value']; |
|
| 6056 | + if (!empty($this->lastmodified['value'])) return ($inclParam) ? $this->lastmodified : $this->lastmodified['value']; |
|
| 6057 | 6057 | break; |
| 6058 | 6058 | case 'LOCATION': |
| 6059 | - if( !empty( $this->location['value'] )) return ( $inclParam ) ? $this->location : $this->location['value']; |
|
| 6059 | + if (!empty($this->location['value'])) return ($inclParam) ? $this->location : $this->location['value']; |
|
| 6060 | 6060 | break; |
| 6061 | 6061 | case 'ORGANIZER': |
| 6062 | - if( !empty( $this->organizer['value'] )) return ( $inclParam ) ? $this->organizer : $this->organizer['value']; |
|
| 6062 | + if (!empty($this->organizer['value'])) return ($inclParam) ? $this->organizer : $this->organizer['value']; |
|
| 6063 | 6063 | break; |
| 6064 | 6064 | case 'PERCENT-COMPLETE': |
| 6065 | - if( !empty( $this->percentcomplete['value'] )) return ( $inclParam ) ? $this->percentcomplete : $this->percentcomplete['value']; |
|
| 6065 | + if (!empty($this->percentcomplete['value'])) return ($inclParam) ? $this->percentcomplete : $this->percentcomplete['value']; |
|
| 6066 | 6066 | break; |
| 6067 | 6067 | case 'PRIORITY': |
| 6068 | - if( !empty( $this->priority['value'] )) return ( $inclParam ) ? $this->priority : $this->priority['value']; |
|
| 6068 | + if (!empty($this->priority['value'])) return ($inclParam) ? $this->priority : $this->priority['value']; |
|
| 6069 | 6069 | break; |
| 6070 | 6070 | case 'RDATE': |
| 6071 | - if( !isset( $this->rdate[$propix] )) return FALSE; |
|
| 6072 | - return ( $inclParam ) ? $this->rdate[$propix] : $this->rdate[$propix]['value']; |
|
| 6071 | + if (!isset($this->rdate[$propix])) return FALSE; |
|
| 6072 | + return ($inclParam) ? $this->rdate[$propix] : $this->rdate[$propix]['value']; |
|
| 6073 | 6073 | break; |
| 6074 | 6074 | case 'RECURRENCE-ID': |
| 6075 | - if( !empty( $this->recurrenceid['value'] )) return ( $inclParam ) ? $this->recurrenceid : $this->recurrenceid['value']; |
|
| 6075 | + if (!empty($this->recurrenceid['value'])) return ($inclParam) ? $this->recurrenceid : $this->recurrenceid['value']; |
|
| 6076 | 6076 | break; |
| 6077 | 6077 | case 'RELATED-TO': |
| 6078 | - if( !isset( $this->relatedto[$propix] )) return FALSE; |
|
| 6079 | - return ( $inclParam ) ? $this->relatedto[$propix] : $this->relatedto[$propix]['value']; |
|
| 6078 | + if (!isset($this->relatedto[$propix])) return FALSE; |
|
| 6079 | + return ($inclParam) ? $this->relatedto[$propix] : $this->relatedto[$propix]['value']; |
|
| 6080 | 6080 | break; |
| 6081 | 6081 | case 'REPEAT': |
| 6082 | - if( !empty( $this->repeat['value'] )) return ( $inclParam ) ? $this->repeat : $this->repeat['value']; |
|
| 6082 | + if (!empty($this->repeat['value'])) return ($inclParam) ? $this->repeat : $this->repeat['value']; |
|
| 6083 | 6083 | break; |
| 6084 | 6084 | case 'REQUEST-STATUS': |
| 6085 | - if( !isset( $this->requeststatus[$propix] )) return FALSE; |
|
| 6086 | - return ( $inclParam ) ? $this->requeststatus[$propix] : $this->requeststatus[$propix]['value']; |
|
| 6085 | + if (!isset($this->requeststatus[$propix])) return FALSE; |
|
| 6086 | + return ($inclParam) ? $this->requeststatus[$propix] : $this->requeststatus[$propix]['value']; |
|
| 6087 | 6087 | break; |
| 6088 | 6088 | case 'RESOURCES': |
| 6089 | - if( !isset( $this->resources[$propix] )) return FALSE; |
|
| 6090 | - return ( $inclParam ) ? $this->resources[$propix] : $this->resources[$propix]['value']; |
|
| 6089 | + if (!isset($this->resources[$propix])) return FALSE; |
|
| 6090 | + return ($inclParam) ? $this->resources[$propix] : $this->resources[$propix]['value']; |
|
| 6091 | 6091 | break; |
| 6092 | 6092 | case 'RRULE': |
| 6093 | - if( !isset( $this->rrule[$propix] )) return FALSE; |
|
| 6094 | - return ( $inclParam ) ? $this->rrule[$propix] : $this->rrule[$propix]['value']; |
|
| 6093 | + if (!isset($this->rrule[$propix])) return FALSE; |
|
| 6094 | + return ($inclParam) ? $this->rrule[$propix] : $this->rrule[$propix]['value']; |
|
| 6095 | 6095 | break; |
| 6096 | 6096 | case 'SEQUENCE': |
| 6097 | - if( !empty( $this->sequence['value'] )) return ( $inclParam ) ? $this->sequence : $this->sequence['value']; |
|
| 6097 | + if (!empty($this->sequence['value'])) return ($inclParam) ? $this->sequence : $this->sequence['value']; |
|
| 6098 | 6098 | break; |
| 6099 | 6099 | case 'STATUS': |
| 6100 | - if( !empty( $this->status['value'] )) return ( $inclParam ) ? $this->status : $this->status['value']; |
|
| 6100 | + if (!empty($this->status['value'])) return ($inclParam) ? $this->status : $this->status['value']; |
|
| 6101 | 6101 | break; |
| 6102 | 6102 | case 'SUMMARY': |
| 6103 | - if( !empty( $this->summary['value'] )) return ( $inclParam ) ? $this->summary : $this->summary['value']; |
|
| 6103 | + if (!empty($this->summary['value'])) return ($inclParam) ? $this->summary : $this->summary['value']; |
|
| 6104 | 6104 | break; |
| 6105 | 6105 | case 'TRANSP': |
| 6106 | - if( !empty( $this->transp['value'] )) return ( $inclParam ) ? $this->transp : $this->transp['value']; |
|
| 6106 | + if (!empty($this->transp['value'])) return ($inclParam) ? $this->transp : $this->transp['value']; |
|
| 6107 | 6107 | break; |
| 6108 | 6108 | case 'TRIGGER': |
| 6109 | - if( !empty( $this->trigger['value'] )) return ( $inclParam ) ? $this->trigger : $this->trigger['value']; |
|
| 6109 | + if (!empty($this->trigger['value'])) return ($inclParam) ? $this->trigger : $this->trigger['value']; |
|
| 6110 | 6110 | break; |
| 6111 | 6111 | case 'TZID': |
| 6112 | - if( !empty( $this->tzid['value'] )) return ( $inclParam ) ? $this->tzid : $this->tzid['value']; |
|
| 6112 | + if (!empty($this->tzid['value'])) return ($inclParam) ? $this->tzid : $this->tzid['value']; |
|
| 6113 | 6113 | break; |
| 6114 | 6114 | case 'TZNAME': |
| 6115 | - if( !isset( $this->tzname[$propix] )) return FALSE; |
|
| 6116 | - return ( $inclParam ) ? $this->tzname[$propix] : $this->tzname[$propix]['value']; |
|
| 6115 | + if (!isset($this->tzname[$propix])) return FALSE; |
|
| 6116 | + return ($inclParam) ? $this->tzname[$propix] : $this->tzname[$propix]['value']; |
|
| 6117 | 6117 | break; |
| 6118 | 6118 | case 'TZOFFSETFROM': |
| 6119 | - if( !empty( $this->tzoffsetfrom['value'] )) return ( $inclParam ) ? $this->tzoffsetfrom : $this->tzoffsetfrom['value']; |
|
| 6119 | + if (!empty($this->tzoffsetfrom['value'])) return ($inclParam) ? $this->tzoffsetfrom : $this->tzoffsetfrom['value']; |
|
| 6120 | 6120 | break; |
| 6121 | 6121 | case 'TZOFFSETTO': |
| 6122 | - if( !empty( $this->tzoffsetto['value'] )) return ( $inclParam ) ? $this->tzoffsetto : $this->tzoffsetto['value']; |
|
| 6122 | + if (!empty($this->tzoffsetto['value'])) return ($inclParam) ? $this->tzoffsetto : $this->tzoffsetto['value']; |
|
| 6123 | 6123 | break; |
| 6124 | 6124 | case 'TZURL': |
| 6125 | - if( !empty( $this->tzurl['value'] )) return ( $inclParam ) ? $this->tzurl : $this->tzurl['value']; |
|
| 6125 | + if (!empty($this->tzurl['value'])) return ($inclParam) ? $this->tzurl : $this->tzurl['value']; |
|
| 6126 | 6126 | break; |
| 6127 | 6127 | case 'UID': |
| 6128 | - if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
|
| 6128 | + if (in_array($this->objName, array('valarm', 'vtimezone', 'standard', 'daylight'))) |
|
| 6129 | 6129 | return FALSE; |
| 6130 | - if( empty( $this->uid['value'] )) |
|
| 6130 | + if (empty($this->uid['value'])) |
|
| 6131 | 6131 | $this->_makeuid(); |
| 6132 | - return ( $inclParam ) ? $this->uid : $this->uid['value']; |
|
| 6132 | + return ($inclParam) ? $this->uid : $this->uid['value']; |
|
| 6133 | 6133 | break; |
| 6134 | 6134 | case 'URL': |
| 6135 | - if( !empty( $this->url['value'] )) return ( $inclParam ) ? $this->url : $this->url['value']; |
|
| 6135 | + if (!empty($this->url['value'])) return ($inclParam) ? $this->url : $this->url['value']; |
|
| 6136 | 6136 | break; |
| 6137 | 6137 | default: |
| 6138 | - if( $propName != 'X-PROP' ) { |
|
| 6139 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 6140 | - return ( $inclParam ) ? array( $propName, $this->xprop[$propName] ) |
|
| 6141 | - : array( $propName, $this->xprop[$propName]['value'] ); |
|
| 6138 | + if ($propName != 'X-PROP') { |
|
| 6139 | + if (!isset($this->xprop[$propName])) return FALSE; |
|
| 6140 | + return ($inclParam) ? array($propName, $this->xprop[$propName]) |
|
| 6141 | + : array($propName, $this->xprop[$propName]['value']); |
|
| 6142 | 6142 | } |
| 6143 | 6143 | else { |
| 6144 | - if( empty( $this->xprop )) return FALSE; |
|
| 6144 | + if (empty($this->xprop)) return FALSE; |
|
| 6145 | 6145 | $xpropno = 0; |
| 6146 | - foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
|
| 6147 | - if( $propix == $xpropno ) |
|
| 6148 | - return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 6149 | - : array( $xpropkey, $this->xprop[$xpropkey]['value'] ); |
|
| 6146 | + foreach ($this->xprop as $xpropkey => $xpropvalue) { |
|
| 6147 | + if ($propix == $xpropno) |
|
| 6148 | + return ($inclParam) ? array($xpropkey, $this->xprop[$xpropkey]) |
|
| 6149 | + : array($xpropkey, $this->xprop[$xpropkey]['value']); |
|
| 6150 | 6150 | else |
| 6151 | 6151 | $xpropno++; |
| 6152 | 6152 | } |
@@ -6167,105 +6167,105 @@ discard block |
||
| 6167 | 6167 | */ |
| 6168 | 6168 | function setProperty() { |
| 6169 | 6169 | $numargs = func_num_args(); |
| 6170 | - if( 1 > $numargs ) return FALSE; |
|
| 6170 | + if (1 > $numargs) return FALSE; |
|
| 6171 | 6171 | $arglist = func_get_args(); |
| 6172 | - if( $this->_notExistProp( $arglist[0] )) return FALSE; |
|
| 6173 | - if( !$this->getConfig( 'allowEmpty' ) && ( !isset( $arglist[1] ) || empty( $arglist[1] ))) |
|
| 6172 | + if ($this->_notExistProp($arglist[0])) return FALSE; |
|
| 6173 | + if (!$this->getConfig('allowEmpty') && (!isset($arglist[1]) || empty($arglist[1]))) |
|
| 6174 | 6174 | return FALSE; |
| 6175 | - $arglist[0] = strtoupper( $arglist[0] ); |
|
| 6176 | - for( $argix=$numargs; $argix < 12; $argix++ ) { |
|
| 6177 | - if( !isset( $arglist[$argix] )) |
|
| 6175 | + $arglist[0] = strtoupper($arglist[0]); |
|
| 6176 | + for ($argix = $numargs; $argix < 12; $argix++) { |
|
| 6177 | + if (!isset($arglist[$argix])) |
|
| 6178 | 6178 | $arglist[$argix] = null; |
| 6179 | 6179 | } |
| 6180 | - switch( $arglist[0] ) { |
|
| 6180 | + switch ($arglist[0]) { |
|
| 6181 | 6181 | case 'ACTION': |
| 6182 | - return $this->setAction( $arglist[1], $arglist[2] ); |
|
| 6182 | + return $this->setAction($arglist[1], $arglist[2]); |
|
| 6183 | 6183 | case 'ATTACH': |
| 6184 | - return $this->setAttach( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6184 | + return $this->setAttach($arglist[1], $arglist[2], $arglist[3]); |
|
| 6185 | 6185 | case 'ATTENDEE': |
| 6186 | - return $this->setAttendee( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6186 | + return $this->setAttendee($arglist[1], $arglist[2], $arglist[3]); |
|
| 6187 | 6187 | case 'CATEGORIES': |
| 6188 | - return $this->setCategories( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6188 | + return $this->setCategories($arglist[1], $arglist[2], $arglist[3]); |
|
| 6189 | 6189 | case 'CLASS': |
| 6190 | - return $this->setClass( $arglist[1], $arglist[2] ); |
|
| 6190 | + return $this->setClass($arglist[1], $arglist[2]); |
|
| 6191 | 6191 | case 'COMMENT': |
| 6192 | - return $this->setComment( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6192 | + return $this->setComment($arglist[1], $arglist[2], $arglist[3]); |
|
| 6193 | 6193 | case 'COMPLETED': |
| 6194 | - return $this->setCompleted( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7] ); |
|
| 6194 | + return $this->setCompleted($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7]); |
|
| 6195 | 6195 | case 'CONTACT': |
| 6196 | - return $this->setContact( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6196 | + return $this->setContact($arglist[1], $arglist[2], $arglist[3]); |
|
| 6197 | 6197 | case 'CREATED': |
| 6198 | - return $this->setCreated( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7] ); |
|
| 6198 | + return $this->setCreated($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7]); |
|
| 6199 | 6199 | case 'DESCRIPTION': |
| 6200 | - return $this->setDescription( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6200 | + return $this->setDescription($arglist[1], $arglist[2], $arglist[3]); |
|
| 6201 | 6201 | case 'DTEND': |
| 6202 | - return $this->setDtend( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8] ); |
|
| 6202 | + return $this->setDtend($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8]); |
|
| 6203 | 6203 | case 'DTSTAMP': |
| 6204 | - return $this->setDtstamp( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7] ); |
|
| 6204 | + return $this->setDtstamp($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7]); |
|
| 6205 | 6205 | case 'DTSTART': |
| 6206 | - return $this->setDtstart( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8] ); |
|
| 6206 | + return $this->setDtstart($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8]); |
|
| 6207 | 6207 | case 'DUE': |
| 6208 | - return $this->setDue( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8] ); |
|
| 6208 | + return $this->setDue($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8]); |
|
| 6209 | 6209 | case 'DURATION': |
| 6210 | - return $this->setDuration( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6] ); |
|
| 6210 | + return $this->setDuration($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6]); |
|
| 6211 | 6211 | case 'EXDATE': |
| 6212 | - return $this->setExdate( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6212 | + return $this->setExdate($arglist[1], $arglist[2], $arglist[3]); |
|
| 6213 | 6213 | case 'EXRULE': |
| 6214 | - return $this->setExrule( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6214 | + return $this->setExrule($arglist[1], $arglist[2], $arglist[3]); |
|
| 6215 | 6215 | case 'FREEBUSY': |
| 6216 | - return $this->setFreebusy( $arglist[1], $arglist[2], $arglist[3], $arglist[4] ); |
|
| 6216 | + return $this->setFreebusy($arglist[1], $arglist[2], $arglist[3], $arglist[4]); |
|
| 6217 | 6217 | case 'GEO': |
| 6218 | - return $this->setGeo( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6218 | + return $this->setGeo($arglist[1], $arglist[2], $arglist[3]); |
|
| 6219 | 6219 | case 'LAST-MODIFIED': |
| 6220 | - return $this->setLastModified( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7] ); |
|
| 6220 | + return $this->setLastModified($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7]); |
|
| 6221 | 6221 | case 'LOCATION': |
| 6222 | - return $this->setLocation( $arglist[1], $arglist[2] ); |
|
| 6222 | + return $this->setLocation($arglist[1], $arglist[2]); |
|
| 6223 | 6223 | case 'ORGANIZER': |
| 6224 | - return $this->setOrganizer( $arglist[1], $arglist[2] ); |
|
| 6224 | + return $this->setOrganizer($arglist[1], $arglist[2]); |
|
| 6225 | 6225 | case 'PERCENT-COMPLETE': |
| 6226 | - return $this->setPercentComplete( $arglist[1], $arglist[2] ); |
|
| 6226 | + return $this->setPercentComplete($arglist[1], $arglist[2]); |
|
| 6227 | 6227 | case 'PRIORITY': |
| 6228 | - return $this->setPriority( $arglist[1], $arglist[2] ); |
|
| 6228 | + return $this->setPriority($arglist[1], $arglist[2]); |
|
| 6229 | 6229 | case 'RDATE': |
| 6230 | - return $this->setRdate( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6230 | + return $this->setRdate($arglist[1], $arglist[2], $arglist[3]); |
|
| 6231 | 6231 | case 'RECURRENCE-ID': |
| 6232 | - return $this->setRecurrenceid( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8] ); |
|
| 6232 | + return $this->setRecurrenceid($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8]); |
|
| 6233 | 6233 | case 'RELATED-TO': |
| 6234 | - return $this->setRelatedTo( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6234 | + return $this->setRelatedTo($arglist[1], $arglist[2], $arglist[3]); |
|
| 6235 | 6235 | case 'REPEAT': |
| 6236 | - return $this->setRepeat( $arglist[1], $arglist[2] ); |
|
| 6236 | + return $this->setRepeat($arglist[1], $arglist[2]); |
|
| 6237 | 6237 | case 'REQUEST-STATUS': |
| 6238 | - return $this->setRequestStatus( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5] ); |
|
| 6238 | + return $this->setRequestStatus($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5]); |
|
| 6239 | 6239 | case 'RESOURCES': |
| 6240 | - return $this->setResources( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6240 | + return $this->setResources($arglist[1], $arglist[2], $arglist[3]); |
|
| 6241 | 6241 | case 'RRULE': |
| 6242 | - return $this->setRrule( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6242 | + return $this->setRrule($arglist[1], $arglist[2], $arglist[3]); |
|
| 6243 | 6243 | case 'SEQUENCE': |
| 6244 | - return $this->setSequence( $arglist[1], $arglist[2] ); |
|
| 6244 | + return $this->setSequence($arglist[1], $arglist[2]); |
|
| 6245 | 6245 | case 'STATUS': |
| 6246 | - return $this->setStatus( $arglist[1], $arglist[2] ); |
|
| 6246 | + return $this->setStatus($arglist[1], $arglist[2]); |
|
| 6247 | 6247 | case 'SUMMARY': |
| 6248 | - return $this->setSummary( $arglist[1], $arglist[2] ); |
|
| 6248 | + return $this->setSummary($arglist[1], $arglist[2]); |
|
| 6249 | 6249 | case 'TRANSP': |
| 6250 | - return $this->setTransp( $arglist[1], $arglist[2] ); |
|
| 6250 | + return $this->setTransp($arglist[1], $arglist[2]); |
|
| 6251 | 6251 | case 'TRIGGER': |
| 6252 | - return $this->setTrigger( $arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8], $arglist[9], $arglist[10], $arglist[11] ); |
|
| 6252 | + return $this->setTrigger($arglist[1], $arglist[2], $arglist[3], $arglist[4], $arglist[5], $arglist[6], $arglist[7], $arglist[8], $arglist[9], $arglist[10], $arglist[11]); |
|
| 6253 | 6253 | case 'TZID': |
| 6254 | - return $this->setTzid( $arglist[1], $arglist[2] ); |
|
| 6254 | + return $this->setTzid($arglist[1], $arglist[2]); |
|
| 6255 | 6255 | case 'TZNAME': |
| 6256 | - return $this->setTzname( $arglist[1], $arglist[2], $arglist[3] ); |
|
| 6256 | + return $this->setTzname($arglist[1], $arglist[2], $arglist[3]); |
|
| 6257 | 6257 | case 'TZOFFSETFROM': |
| 6258 | - return $this->setTzoffsetfrom( $arglist[1], $arglist[2] ); |
|
| 6258 | + return $this->setTzoffsetfrom($arglist[1], $arglist[2]); |
|
| 6259 | 6259 | case 'TZOFFSETTO': |
| 6260 | - return $this->setTzoffsetto( $arglist[1], $arglist[2] ); |
|
| 6260 | + return $this->setTzoffsetto($arglist[1], $arglist[2]); |
|
| 6261 | 6261 | case 'TZURL': |
| 6262 | - return $this->setTzurl( $arglist[1], $arglist[2] ); |
|
| 6262 | + return $this->setTzurl($arglist[1], $arglist[2]); |
|
| 6263 | 6263 | case 'UID': |
| 6264 | - return $this->setUid( $arglist[1], $arglist[2] ); |
|
| 6264 | + return $this->setUid($arglist[1], $arglist[2]); |
|
| 6265 | 6265 | case 'URL': |
| 6266 | - return $this->setUrl( $arglist[1], $arglist[2] ); |
|
| 6266 | + return $this->setUrl($arglist[1], $arglist[2]); |
|
| 6267 | 6267 | default: |
| 6268 | - return $this->setXprop( $arglist[0], $arglist[1], $arglist[2] ); |
|
| 6268 | + return $this->setXprop($arglist[0], $arglist[1], $arglist[2]); |
|
| 6269 | 6269 | } |
| 6270 | 6270 | return FALSE; |
| 6271 | 6271 | } |
@@ -6279,18 +6279,18 @@ discard block |
||
| 6279 | 6279 | * @return bool FALSE if error occurs during parsing |
| 6280 | 6280 | * |
| 6281 | 6281 | */ |
| 6282 | - function parse( $unparsedtext=null ) { |
|
| 6283 | - if( $unparsedtext ) { |
|
| 6282 | + function parse($unparsedtext = null) { |
|
| 6283 | + if ($unparsedtext) { |
|
| 6284 | 6284 | $this->unparsed = array(); |
| 6285 | - if( is_array( $unparsedtext )) { |
|
| 6285 | + if (is_array($unparsedtext)) { |
|
| 6286 | 6286 | $comp = & $this; |
| 6287 | - foreach ( $unparsedtext as $line ) { |
|
| 6288 | - if( 'END:VALARM' == strtoupper( substr( $line, 0, 10 ))) { |
|
| 6289 | - $this->setComponent( $comp ); |
|
| 6290 | - $comp = & $this; |
|
| 6287 | + foreach ($unparsedtext as $line) { |
|
| 6288 | + if ('END:VALARM' == strtoupper(substr($line, 0, 10))) { |
|
| 6289 | + $this->setComponent($comp); |
|
| 6290 | + $comp = & $this; |
|
| 6291 | 6291 | continue; |
| 6292 | 6292 | } |
| 6293 | - elseif( 'BEGIN:VALARM' == strtoupper( substr( $line, 0, 12 ))) { |
|
| 6293 | + elseif ('BEGIN:VALARM' == strtoupper(substr($line, 0, 12))) { |
|
| 6294 | 6294 | $comp = new valarm(); |
| 6295 | 6295 | continue; |
| 6296 | 6296 | } |
@@ -6299,215 +6299,215 @@ discard block |
||
| 6299 | 6299 | } |
| 6300 | 6300 | } |
| 6301 | 6301 | else |
| 6302 | - $this->unparsed = array( trim( $unparsedtext )); |
|
| 6302 | + $this->unparsed = array(trim($unparsedtext)); |
|
| 6303 | 6303 | } |
| 6304 | - elseif( !isset( $this->unparsed )) |
|
| 6304 | + elseif (!isset($this->unparsed)) |
|
| 6305 | 6305 | $this->unparsed = array(); |
| 6306 | 6306 | /* concatenate property values spread over several lines */ |
| 6307 | 6307 | $lastix = -1; |
| 6308 | - $propnames = array( 'action', 'attach', 'attendee', 'categories', 'comment', 'completed' |
|
| 6308 | + $propnames = array('action', 'attach', 'attendee', 'categories', 'comment', 'completed' |
|
| 6309 | 6309 | , 'contact', 'class', 'created', 'description', 'dtend', 'dtstart' |
| 6310 | 6310 | , 'dtstamp', 'due', 'duration', 'exdate', 'exrule', 'freebusy', 'geo' |
| 6311 | 6311 | , 'last-modified', 'location', 'organizer', 'percent-complete' |
| 6312 | 6312 | , 'priority', 'rdate', 'recurrence-id', 'related-to', 'repeat' |
| 6313 | 6313 | , 'request-status', 'resources', 'rrule', 'sequence', 'status' |
| 6314 | 6314 | , 'summary', 'transp', 'trigger', 'tzid', 'tzname', 'tzoffsetfrom' |
| 6315 | - , 'tzoffsetto', 'tzurl', 'uid', 'url', 'x-' ); |
|
| 6315 | + , 'tzoffsetto', 'tzurl', 'uid', 'url', 'x-'); |
|
| 6316 | 6316 | $proprows = array(); |
| 6317 | - foreach( $this->unparsed as $line ) { |
|
| 6317 | + foreach ($this->unparsed as $line) { |
|
| 6318 | 6318 | $newProp = FALSE; |
| 6319 | - foreach ( $propnames as $propname ) { |
|
| 6320 | - if( $propname == strtolower( substr( $line, 0, strlen( $propname )))) { |
|
| 6319 | + foreach ($propnames as $propname) { |
|
| 6320 | + if ($propname == strtolower(substr($line, 0, strlen($propname)))) { |
|
| 6321 | 6321 | $newProp = TRUE; |
| 6322 | 6322 | break; |
| 6323 | 6323 | } |
| 6324 | 6324 | } |
| 6325 | - if( $newProp ) { |
|
| 6325 | + if ($newProp) { |
|
| 6326 | 6326 | $newProp = FALSE; |
| 6327 | 6327 | $lastix++; |
| 6328 | - $proprows[$lastix] = $line; |
|
| 6328 | + $proprows[$lastix] = $line; |
|
| 6329 | 6329 | } |
| 6330 | 6330 | else { |
| 6331 | 6331 | /* remove line breaks */ |
| 6332 | - if(( '\n' == substr( $proprows[$lastix], -2 )) && |
|
| 6333 | - ( ' ' == substr( $line, 0, 1 ))) { |
|
| 6334 | - $proprows[$lastix] = substr( $proprows[$lastix], 0, strlen( $proprows[$lastix] ) - 2 ); |
|
| 6335 | - $line = substr( $line, 1 ); |
|
| 6332 | + if (('\n' == substr($proprows[$lastix], -2)) && |
|
| 6333 | + (' ' == substr($line, 0, 1))) { |
|
| 6334 | + $proprows[$lastix] = substr($proprows[$lastix], 0, strlen($proprows[$lastix]) - 2); |
|
| 6335 | + $line = substr($line, 1); |
|
| 6336 | 6336 | } |
| 6337 | 6337 | $proprows[$lastix] .= $line; |
| 6338 | 6338 | } |
| 6339 | 6339 | } |
| 6340 | 6340 | /* parse each property 'line' */ |
| 6341 | - foreach( $proprows as $line ) { |
|
| 6342 | - $line = str_replace( "\n ", '', $line ); |
|
| 6343 | - if( '\n' == substr( $line, -2 )) |
|
| 6344 | - $line = substr( $line, 0, strlen( $line ) - 2 ); |
|
| 6341 | + foreach ($proprows as $line) { |
|
| 6342 | + $line = str_replace("\n ", '', $line); |
|
| 6343 | + if ('\n' == substr($line, -2)) |
|
| 6344 | + $line = substr($line, 0, strlen($line) - 2); |
|
| 6345 | 6345 | /* get propname, (problem with x-properties, otherwise in previous loop) */ |
| 6346 | 6346 | $cix = $propname = null; |
| 6347 | - for( $cix=0; $cix < strlen( $line ); $cix++ ) { |
|
| 6348 | - if( in_array( $line{$cix}, array( ':', ';' ))) |
|
| 6347 | + for ($cix = 0; $cix < strlen($line); $cix++) { |
|
| 6348 | + if (in_array($line{$cix}, array(':', ';'))) |
|
| 6349 | 6349 | break; |
| 6350 | 6350 | else { |
| 6351 | 6351 | $propname .= $line{$cix}; |
| 6352 | 6352 | } |
| 6353 | 6353 | } |
| 6354 | - if(( 'x-' == substr( $propname, 0, 2 )) || ( 'X-' == substr( $propname, 0, 2 ))) { |
|
| 6354 | + if (('x-' == substr($propname, 0, 2)) || ('X-' == substr($propname, 0, 2))) { |
|
| 6355 | 6355 | $propname2 = $propname; |
| 6356 | 6356 | $propname = 'X-'; |
| 6357 | 6357 | } |
| 6358 | 6358 | /* rest of the line is opt.params and value */ |
| 6359 | - $line = substr( $line, $cix ); |
|
| 6359 | + $line = substr($line, $cix); |
|
| 6360 | 6360 | /* separate attributes from value */ |
| 6361 | 6361 | $attr = array(); |
| 6362 | 6362 | $attrix = -1; |
| 6363 | - $strlen = strlen( $line ); |
|
| 6364 | - for( $cix=0; $cix < $strlen; $cix++ ) { |
|
| 6365 | - if(( ':' == $line{$cix} ) && |
|
| 6366 | - ( '://' != substr( $line, $cix, 3 )) && |
|
| 6367 | - ( 'mailto:' != strtolower( substr( $line, $cix - 6, 7 )))) { |
|
| 6363 | + $strlen = strlen($line); |
|
| 6364 | + for ($cix = 0; $cix < $strlen; $cix++) { |
|
| 6365 | + if ((':' == $line{$cix} ) && |
|
| 6366 | + ('://' != substr($line, $cix, 3)) && |
|
| 6367 | + ('mailto:' != strtolower(substr($line, $cix - 6, 7)))) { |
|
| 6368 | 6368 | $attrEnd = TRUE; |
| 6369 | - if(( $cix < ( $strlen - 4 )) && |
|
| 6370 | - ctype_digit( substr( $line, $cix+1, 4 ))) { // an URI with a (4pos) portnr?? |
|
| 6371 | - for( $c2ix = $cix; 3 < $c2ix; $c2ix-- ) { |
|
| 6372 | - if( '://' == substr( $line, $c2ix - 2, 3 )) { |
|
| 6369 | + if (($cix < ($strlen - 4)) && |
|
| 6370 | + ctype_digit(substr($line, $cix + 1, 4))) { // an URI with a (4pos) portnr?? |
|
| 6371 | + for ($c2ix = $cix; 3 < $c2ix; $c2ix--) { |
|
| 6372 | + if ('://' == substr($line, $c2ix - 2, 3)) { |
|
| 6373 | 6373 | $attrEnd = FALSE; |
| 6374 | 6374 | break; // an URI with a portnr!! |
| 6375 | 6375 | } |
| 6376 | 6376 | } |
| 6377 | 6377 | } |
| 6378 | - if( $attrEnd) { |
|
| 6379 | - $line = substr( $line, $cix + 1 ); |
|
| 6378 | + if ($attrEnd) { |
|
| 6379 | + $line = substr($line, $cix + 1); |
|
| 6380 | 6380 | break; |
| 6381 | 6381 | } |
| 6382 | 6382 | } |
| 6383 | - if( ';' == $line{$cix} ) |
|
| 6383 | + if (';' == $line{$cix} ) |
|
| 6384 | 6384 | $attr[++$attrix] = null; |
| 6385 | 6385 | else |
| 6386 | 6386 | $attr[$attrix] .= $line{$cix}; |
| 6387 | 6387 | } |
| 6388 | 6388 | /* make attributes in array format */ |
| 6389 | 6389 | $propattr = array(); |
| 6390 | - foreach( $attr as $attribute ) { |
|
| 6391 | - $attrsplit = explode( '=', $attribute, 2 ); |
|
| 6392 | - if( 1 < count( $attrsplit )) |
|
| 6390 | + foreach ($attr as $attribute) { |
|
| 6391 | + $attrsplit = explode('=', $attribute, 2); |
|
| 6392 | + if (1 < count($attrsplit)) |
|
| 6393 | 6393 | $propattr[$attrsplit[0]] = $attrsplit[1]; |
| 6394 | 6394 | else |
| 6395 | 6395 | $propattr[] = $attribute; |
| 6396 | 6396 | } |
| 6397 | 6397 | /* call setProperty( $propname.. . */ |
| 6398 | - switch( $propname ) { |
|
| 6398 | + switch ($propname) { |
|
| 6399 | 6399 | case 'ATTENDEE': |
| 6400 | - foreach( $propattr as $pix => $attr ) { |
|
| 6401 | - $attr2 = explode( ',', $attr ); |
|
| 6402 | - if( 1 < count( $attr2 )) |
|
| 6400 | + foreach ($propattr as $pix => $attr) { |
|
| 6401 | + $attr2 = explode(',', $attr); |
|
| 6402 | + if (1 < count($attr2)) |
|
| 6403 | 6403 | $propattr[$pix] = $attr2; |
| 6404 | 6404 | } |
| 6405 | - $this->setProperty( $propname, $line, $propattr ); |
|
| 6405 | + $this->setProperty($propname, $line, $propattr); |
|
| 6406 | 6406 | break; |
| 6407 | 6407 | case 'CATEGORIES': |
| 6408 | 6408 | case 'RESOURCES': |
| 6409 | - if( FALSE !== strpos( $line, ',' )) { |
|
| 6410 | - $content = explode( ',', $line ); |
|
| 6411 | - $clen = count( $content ); |
|
| 6412 | - for( $cix = 0; $cix < $clen; $cix++ ) { |
|
| 6413 | - if( "\\" == substr($content[$cix], -1)) { |
|
| 6409 | + if (FALSE !== strpos($line, ',')) { |
|
| 6410 | + $content = explode(',', $line); |
|
| 6411 | + $clen = count($content); |
|
| 6412 | + for ($cix = 0; $cix < $clen; $cix++) { |
|
| 6413 | + if ("\\" == substr($content[$cix], -1)) { |
|
| 6414 | 6414 | $content[$cix] .= ','.$content[$cix + 1]; |
| 6415 | 6415 | unset($content[$cix + 1]); |
| 6416 | 6416 | $cix++; |
| 6417 | 6417 | } |
| 6418 | 6418 | } |
| 6419 | - if( 1 < count( $content )) { |
|
| 6420 | - $content = array_values( $content ); |
|
| 6421 | - foreach( $content as $cix => $contentPart ) |
|
| 6422 | - $content[$cix] = $this->_strunrep( $contentPart ); |
|
| 6423 | - $this->setProperty( $propname, $content, $propattr ); |
|
| 6419 | + if (1 < count($content)) { |
|
| 6420 | + $content = array_values($content); |
|
| 6421 | + foreach ($content as $cix => $contentPart) |
|
| 6422 | + $content[$cix] = $this->_strunrep($contentPart); |
|
| 6423 | + $this->setProperty($propname, $content, $propattr); |
|
| 6424 | 6424 | break; |
| 6425 | 6425 | } |
| 6426 | 6426 | else |
| 6427 | - $line = reset( $content ); |
|
| 6427 | + $line = reset($content); |
|
| 6428 | 6428 | } |
| 6429 | 6429 | case 'X-': |
| 6430 | - $propname = ( isset( $propname2 )) ? $propname2 : $propname; |
|
| 6430 | + $propname = (isset($propname2)) ? $propname2 : $propname; |
|
| 6431 | 6431 | case 'COMMENT': |
| 6432 | 6432 | case 'CONTACT': |
| 6433 | 6433 | case 'DESCRIPTION': |
| 6434 | 6434 | case 'LOCATION': |
| 6435 | 6435 | case 'SUMMARY': |
| 6436 | - if( empty( $line )) |
|
| 6436 | + if (empty($line)) |
|
| 6437 | 6437 | $propattr = null; |
| 6438 | - $this->setProperty( $propname, $this->_strunrep( $line ), $propattr ); |
|
| 6439 | - unset( $propname2 ); |
|
| 6438 | + $this->setProperty($propname, $this->_strunrep($line), $propattr); |
|
| 6439 | + unset($propname2); |
|
| 6440 | 6440 | break; |
| 6441 | 6441 | case 'REQUEST-STATUS': |
| 6442 | - $values = explode( ';', $line, 3 ); |
|
| 6443 | - $values[1] = ( !isset( $values[1] )) ? null : $this->_strunrep( $values[1] ); |
|
| 6444 | - $values[2] = ( !isset( $values[2] )) ? null : $this->_strunrep( $values[2] ); |
|
| 6445 | - $this->setProperty( $propname |
|
| 6442 | + $values = explode(';', $line, 3); |
|
| 6443 | + $values[1] = (!isset($values[1])) ? null : $this->_strunrep($values[1]); |
|
| 6444 | + $values[2] = (!isset($values[2])) ? null : $this->_strunrep($values[2]); |
|
| 6445 | + $this->setProperty($propname |
|
| 6446 | 6446 | , $values[0] // statcode |
| 6447 | 6447 | , $values[1] // statdesc |
| 6448 | 6448 | , $values[2] // extdata |
| 6449 | - , $propattr ); |
|
| 6449 | + , $propattr); |
|
| 6450 | 6450 | break; |
| 6451 | 6451 | case 'FREEBUSY': |
| 6452 | - $fbtype = ( isset( $propattr['FBTYPE'] )) ? $propattr['FBTYPE'] : ''; // force setting default, if missing |
|
| 6453 | - unset( $propattr['FBTYPE'] ); |
|
| 6454 | - $values = explode( ',', $line ); |
|
| 6455 | - foreach( $values as $vix => $value ) { |
|
| 6456 | - $value2 = explode( '/', $value ); |
|
| 6457 | - if( 1 < count( $value2 )) |
|
| 6452 | + $fbtype = (isset($propattr['FBTYPE'])) ? $propattr['FBTYPE'] : ''; // force setting default, if missing |
|
| 6453 | + unset($propattr['FBTYPE']); |
|
| 6454 | + $values = explode(',', $line); |
|
| 6455 | + foreach ($values as $vix => $value) { |
|
| 6456 | + $value2 = explode('/', $value); |
|
| 6457 | + if (1 < count($value2)) |
|
| 6458 | 6458 | $values[$vix] = $value2; |
| 6459 | 6459 | } |
| 6460 | - $this->setProperty( $propname, $fbtype, $values, $propattr ); |
|
| 6460 | + $this->setProperty($propname, $fbtype, $values, $propattr); |
|
| 6461 | 6461 | break; |
| 6462 | 6462 | case 'GEO': |
| 6463 | - $value = explode( ';', $line, 2 ); |
|
| 6464 | - if( 2 > count( $value )) |
|
| 6463 | + $value = explode(';', $line, 2); |
|
| 6464 | + if (2 > count($value)) |
|
| 6465 | 6465 | $value[1] = null; |
| 6466 | - $this->setProperty( $propname, $value[0], $value[1], $propattr ); |
|
| 6466 | + $this->setProperty($propname, $value[0], $value[1], $propattr); |
|
| 6467 | 6467 | break; |
| 6468 | 6468 | case 'EXDATE': |
| 6469 | - $values = ( !empty( $line )) ? explode( ',', $line ) : null; |
|
| 6470 | - $this->setProperty( $propname, $values, $propattr ); |
|
| 6469 | + $values = (!empty($line)) ? explode(',', $line) : null; |
|
| 6470 | + $this->setProperty($propname, $values, $propattr); |
|
| 6471 | 6471 | break; |
| 6472 | 6472 | case 'RDATE': |
| 6473 | - if( empty( $line )) { |
|
| 6474 | - $this->setProperty( $propname, $line, $propattr ); |
|
| 6473 | + if (empty($line)) { |
|
| 6474 | + $this->setProperty($propname, $line, $propattr); |
|
| 6475 | 6475 | break; |
| 6476 | 6476 | } |
| 6477 | - $values = explode( ',', $line ); |
|
| 6478 | - foreach( $values as $vix => $value ) { |
|
| 6479 | - $value2 = explode( '/', $value ); |
|
| 6480 | - if( 1 < count( $value2 )) |
|
| 6477 | + $values = explode(',', $line); |
|
| 6478 | + foreach ($values as $vix => $value) { |
|
| 6479 | + $value2 = explode('/', $value); |
|
| 6480 | + if (1 < count($value2)) |
|
| 6481 | 6481 | $values[$vix] = $value2; |
| 6482 | 6482 | } |
| 6483 | - $this->setProperty( $propname, $values, $propattr ); |
|
| 6483 | + $this->setProperty($propname, $values, $propattr); |
|
| 6484 | 6484 | break; |
| 6485 | 6485 | case 'EXRULE': |
| 6486 | 6486 | case 'RRULE': |
| 6487 | - $values = explode( ';', $line ); |
|
| 6487 | + $values = explode(';', $line); |
|
| 6488 | 6488 | $recur = array(); |
| 6489 | - foreach( $values as $value2 ) { |
|
| 6490 | - if( empty( $value2 )) |
|
| 6489 | + foreach ($values as $value2) { |
|
| 6490 | + if (empty($value2)) |
|
| 6491 | 6491 | continue; // ;-char in ending position ??? |
| 6492 | - $value3 = explode( '=', $value2, 2 ); |
|
| 6493 | - $rulelabel = strtoupper( $value3[0] ); |
|
| 6494 | - switch( $rulelabel ) { |
|
| 6492 | + $value3 = explode('=', $value2, 2); |
|
| 6493 | + $rulelabel = strtoupper($value3[0]); |
|
| 6494 | + switch ($rulelabel) { |
|
| 6495 | 6495 | case 'BYDAY': { |
| 6496 | - $value4 = explode( ',', $value3[1] ); |
|
| 6497 | - if( 1 < count( $value4 )) { |
|
| 6498 | - foreach( $value4 as $v5ix => $value5 ) { |
|
| 6496 | + $value4 = explode(',', $value3[1]); |
|
| 6497 | + if (1 < count($value4)) { |
|
| 6498 | + foreach ($value4 as $v5ix => $value5) { |
|
| 6499 | 6499 | $value6 = array(); |
| 6500 | 6500 | $dayno = $dayname = null; |
| 6501 | - $value5 = trim( (string) $value5 ); |
|
| 6502 | - if(( ctype_alpha( substr( $value5, -1 ))) && |
|
| 6503 | - ( ctype_alpha( substr( $value5, -2, 1 )))) { |
|
| 6504 | - $dayname = substr( $value5, -2, 2 ); |
|
| 6505 | - if( 2 < strlen( $value5 )) |
|
| 6506 | - $dayno = substr( $value5, 0, ( strlen( $value5 ) - 2 )); |
|
| 6501 | + $value5 = trim((string) $value5); |
|
| 6502 | + if ((ctype_alpha(substr($value5, -1))) && |
|
| 6503 | + (ctype_alpha(substr($value5, -2, 1)))) { |
|
| 6504 | + $dayname = substr($value5, -2, 2); |
|
| 6505 | + if (2 < strlen($value5)) |
|
| 6506 | + $dayno = substr($value5, 0, (strlen($value5) - 2)); |
|
| 6507 | 6507 | } |
| 6508 | - if( $dayno ) |
|
| 6508 | + if ($dayno) |
|
| 6509 | 6509 | $value6[] = $dayno; |
| 6510 | - if( $dayname ) |
|
| 6510 | + if ($dayname) |
|
| 6511 | 6511 | $value6['DAY'] = $dayname; |
| 6512 | 6512 | $value4[$v5ix] = $value6; |
| 6513 | 6513 | } |
@@ -6515,41 +6515,41 @@ discard block |
||
| 6515 | 6515 | else { |
| 6516 | 6516 | $value4 = array(); |
| 6517 | 6517 | $dayno = $dayname = null; |
| 6518 | - $value5 = trim( (string) $value3[1] ); |
|
| 6519 | - if(( ctype_alpha( substr( $value5, -1 ))) && |
|
| 6520 | - ( ctype_alpha( substr( $value5, -2, 1 )))) { |
|
| 6521 | - $dayname = substr( $value5, -2, 2 ); |
|
| 6522 | - if( 2 < strlen( $value5 )) |
|
| 6523 | - $dayno = substr( $value5, 0, ( strlen( $value5 ) - 2 )); |
|
| 6518 | + $value5 = trim((string) $value3[1]); |
|
| 6519 | + if ((ctype_alpha(substr($value5, -1))) && |
|
| 6520 | + (ctype_alpha(substr($value5, -2, 1)))) { |
|
| 6521 | + $dayname = substr($value5, -2, 2); |
|
| 6522 | + if (2 < strlen($value5)) |
|
| 6523 | + $dayno = substr($value5, 0, (strlen($value5) - 2)); |
|
| 6524 | 6524 | } |
| 6525 | - if( $dayno ) |
|
| 6525 | + if ($dayno) |
|
| 6526 | 6526 | $value4[] = $dayno; |
| 6527 | - if( $dayname ) |
|
| 6527 | + if ($dayname) |
|
| 6528 | 6528 | $value4['DAY'] = $dayname; |
| 6529 | 6529 | } |
| 6530 | 6530 | $recur[$rulelabel] = $value4; |
| 6531 | 6531 | break; |
| 6532 | 6532 | } |
| 6533 | 6533 | default: { |
| 6534 | - $value4 = explode( ',', $value3[1] ); |
|
| 6535 | - if( 1 < count( $value4 )) |
|
| 6534 | + $value4 = explode(',', $value3[1]); |
|
| 6535 | + if (1 < count($value4)) |
|
| 6536 | 6536 | $value3[1] = $value4; |
| 6537 | 6537 | $recur[$rulelabel] = $value3[1]; |
| 6538 | 6538 | break; |
| 6539 | 6539 | } |
| 6540 | 6540 | } // end - switch $rulelabel |
| 6541 | 6541 | } // end - foreach( $values.. . |
| 6542 | - $this->setProperty( $propname, $recur, $propattr ); |
|
| 6542 | + $this->setProperty($propname, $recur, $propattr); |
|
| 6543 | 6543 | break; |
| 6544 | 6544 | default: |
| 6545 | - $this->setProperty( $propname, $line, $propattr ); |
|
| 6545 | + $this->setProperty($propname, $line, $propattr); |
|
| 6546 | 6546 | break; |
| 6547 | 6547 | } // end switch( $propname.. . |
| 6548 | 6548 | } // end - foreach( $proprows.. . |
| 6549 | - unset( $this->unparsed, $proprows ); |
|
| 6550 | - if( isset( $this->components ) && is_array( $this->components ) && ( 0 < count( $this->components ))) { |
|
| 6551 | - for( $six = 0; $six < count( $this->components ); $six++ ) { |
|
| 6552 | - if( !empty( $this->components[$six]->unparsed )) |
|
| 6549 | + unset($this->unparsed, $proprows); |
|
| 6550 | + if (isset($this->components) && is_array($this->components) && (0 < count($this->components))) { |
|
| 6551 | + for ($six = 0; $six < count($this->components); $six++) { |
|
| 6552 | + if (!empty($this->components[$six]->unparsed)) |
|
| 6553 | 6553 | $this->components[$six]->parse(); |
| 6554 | 6554 | } |
| 6555 | 6555 | } |
@@ -6566,7 +6566,7 @@ discard block |
||
| 6566 | 6566 | function copy() { |
| 6567 | 6567 | $serialized_contents = serialize($this); |
| 6568 | 6568 | $copy = unserialize($serialized_contents); |
| 6569 | - unset( $copy->propix ); |
|
| 6569 | + unset($copy->propix); |
|
| 6570 | 6570 | return $copy; |
| 6571 | 6571 | } |
| 6572 | 6572 | /*********************************************************************************/ |
@@ -6580,34 +6580,34 @@ discard block |
||
| 6580 | 6580 | * @param mixed $arg2 optional, ordno if arg1 = component type |
| 6581 | 6581 | * @return void |
| 6582 | 6582 | */ |
| 6583 | - function deleteComponent( $arg1, $arg2=FALSE ) { |
|
| 6584 | - if( !isset( $this->components )) return FALSE; |
|
| 6583 | + function deleteComponent($arg1, $arg2 = FALSE) { |
|
| 6584 | + if (!isset($this->components)) return FALSE; |
|
| 6585 | 6585 | $argType = $index = null; |
| 6586 | - if ( ctype_digit( (string) $arg1 )) { |
|
| 6586 | + if (ctype_digit((string) $arg1)) { |
|
| 6587 | 6587 | $argType = 'INDEX'; |
| 6588 | 6588 | $index = (int) $arg1 - 1; |
| 6589 | 6589 | } |
| 6590 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 6591 | - $argType = strtolower( $arg1 ); |
|
| 6592 | - $index = ( !empty( $arg2 ) && ctype_digit( (string) $arg2 )) ? (( int ) $arg2 - 1 ) : 0; |
|
| 6590 | + elseif ((strlen($arg1) <= strlen('vfreebusy')) && (FALSE === strpos($arg1, '@'))) { |
|
| 6591 | + $argType = strtolower($arg1); |
|
| 6592 | + $index = (!empty($arg2) && ctype_digit((string) $arg2)) ? ((int) $arg2 - 1) : 0; |
|
| 6593 | 6593 | } |
| 6594 | 6594 | $cix2dC = 0; |
| 6595 | - foreach ( $this->components as $cix => $component) { |
|
| 6596 | - if( empty( $component )) continue; |
|
| 6597 | - unset( $component->propix ); |
|
| 6598 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 6599 | - unset( $this->components[$cix] ); |
|
| 6595 | + foreach ($this->components as $cix => $component) { |
|
| 6596 | + if (empty($component)) continue; |
|
| 6597 | + unset($component->propix); |
|
| 6598 | + if (('INDEX' == $argType) && ($index == $cix)) { |
|
| 6599 | + unset($this->components[$cix]); |
|
| 6600 | 6600 | return TRUE; |
| 6601 | 6601 | } |
| 6602 | - elseif( $argType == $component->objName ) { |
|
| 6603 | - if( $index == $cix2dC ) { |
|
| 6604 | - unset( $this->components[$cix] ); |
|
| 6602 | + elseif ($argType == $component->objName) { |
|
| 6603 | + if ($index == $cix2dC) { |
|
| 6604 | + unset($this->components[$cix]); |
|
| 6605 | 6605 | return TRUE; |
| 6606 | 6606 | } |
| 6607 | 6607 | $cix2dC++; |
| 6608 | 6608 | } |
| 6609 | - elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 6610 | - unset( $this->components[$cix] ); |
|
| 6609 | + elseif (!$argType && ($arg1 == $component->getProperty('uid'))) { |
|
| 6610 | + unset($this->components[$cix]); |
|
| 6611 | 6611 | return TRUE; |
| 6612 | 6612 | } |
| 6613 | 6613 | } |
@@ -6622,50 +6622,50 @@ discard block |
||
| 6622 | 6622 | * @param mixed $arg2 optional, ordno if arg1 = component type |
| 6623 | 6623 | * @return object |
| 6624 | 6624 | */ |
| 6625 | - function getComponent ( $arg1=FALSE, $arg2=FALSE ) { |
|
| 6626 | - if( !isset( $this->components )) return FALSE; |
|
| 6625 | + function getComponent($arg1 = FALSE, $arg2 = FALSE) { |
|
| 6626 | + if (!isset($this->components)) return FALSE; |
|
| 6627 | 6627 | $index = $argType = null; |
| 6628 | - if ( !$arg1 ) { |
|
| 6628 | + if (!$arg1) { |
|
| 6629 | 6629 | $argType = 'INDEX'; |
| 6630 | 6630 | $index = $this->compix['INDEX'] = |
| 6631 | - ( isset( $this->compix['INDEX'] )) ? $this->compix['INDEX'] + 1 : 1; |
|
| 6631 | + (isset($this->compix['INDEX'])) ? $this->compix['INDEX'] + 1 : 1; |
|
| 6632 | 6632 | } |
| 6633 | - elseif ( ctype_digit( (string) $arg1 )) { |
|
| 6633 | + elseif (ctype_digit((string) $arg1)) { |
|
| 6634 | 6634 | $argType = 'INDEX'; |
| 6635 | 6635 | $index = (int) $arg1; |
| 6636 | - unset( $this->compix ); |
|
| 6636 | + unset($this->compix); |
|
| 6637 | 6637 | } |
| 6638 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 6639 | - unset( $this->compix['INDEX'] ); |
|
| 6640 | - $argType = strtolower( $arg1 ); |
|
| 6641 | - if( !$arg2 ) |
|
| 6638 | + elseif ((strlen($arg1) <= strlen('vfreebusy')) && (FALSE === strpos($arg1, '@'))) { |
|
| 6639 | + unset($this->compix['INDEX']); |
|
| 6640 | + $argType = strtolower($arg1); |
|
| 6641 | + if (!$arg2) |
|
| 6642 | 6642 | $index = $this->compix[$argType] = |
| 6643 | - ( isset( $this->compix[$argType] )) ? $this->compix[$argType] + 1 : 1; |
|
| 6643 | + (isset($this->compix[$argType])) ? $this->compix[$argType] + 1 : 1; |
|
| 6644 | 6644 | else |
| 6645 | 6645 | $index = (int) $arg2; |
| 6646 | 6646 | } |
| 6647 | - $index -= 1; |
|
| 6648 | - $ckeys = array_keys( $this->components ); |
|
| 6649 | - if( !empty( $index) && ( $index > end( $ckeys ))) |
|
| 6647 | + $index -= 1; |
|
| 6648 | + $ckeys = array_keys($this->components); |
|
| 6649 | + if (!empty($index) && ($index > end($ckeys))) |
|
| 6650 | 6650 | return FALSE; |
| 6651 | 6651 | $cix2gC = 0; |
| 6652 | - foreach( $this->components as $cix => $component ) { |
|
| 6653 | - if( empty( $component )) continue; |
|
| 6654 | - unset( $component->propix ); |
|
| 6655 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) |
|
| 6652 | + foreach ($this->components as $cix => $component) { |
|
| 6653 | + if (empty($component)) continue; |
|
| 6654 | + unset($component->propix); |
|
| 6655 | + if (('INDEX' == $argType) && ($index == $cix)) |
|
| 6656 | 6656 | return $component->copy(); |
| 6657 | - elseif( $argType == $component->objName ) { |
|
| 6658 | - if( $index == $cix2gC ) |
|
| 6657 | + elseif ($argType == $component->objName) { |
|
| 6658 | + if ($index == $cix2gC) |
|
| 6659 | 6659 | return $component->copy(); |
| 6660 | 6660 | $cix2gC++; |
| 6661 | 6661 | } |
| 6662 | - elseif( !$argType && ( $arg1 == $component->getProperty( 'uid' ))) { |
|
| 6663 | - unset( $component->propix ); |
|
| 6662 | + elseif (!$argType && ($arg1 == $component->getProperty('uid'))) { |
|
| 6663 | + unset($component->propix); |
|
| 6664 | 6664 | return $component->copy(); |
| 6665 | 6665 | } |
| 6666 | 6666 | } |
| 6667 | 6667 | /* not found.. . */ |
| 6668 | - unset( $this->compix ); |
|
| 6668 | + unset($this->compix); |
|
| 6669 | 6669 | return false; |
| 6670 | 6670 | } |
| 6671 | 6671 | /** |
@@ -6676,8 +6676,8 @@ discard block |
||
| 6676 | 6676 | * @param object $component calendar component |
| 6677 | 6677 | * @return void |
| 6678 | 6678 | */ |
| 6679 | - function addSubComponent ( $component ) { |
|
| 6680 | - $this->setComponent( $component ); |
|
| 6679 | + function addSubComponent($component) { |
|
| 6680 | + $this->setComponent($component); |
|
| 6681 | 6681 | } |
| 6682 | 6682 | /** |
| 6683 | 6683 | * add calendar component as subcomponent to container for subcomponents |
@@ -6689,49 +6689,49 @@ discard block |
||
| 6689 | 6689 | * @param mixed $arg2 optional, ordno if arg1 = component type |
| 6690 | 6690 | * @return bool |
| 6691 | 6691 | */ |
| 6692 | - function setComponent( $component, $arg1=FALSE, $arg2=FALSE ) { |
|
| 6693 | - if( !isset( $this->components )) return FALSE; |
|
| 6694 | - if( '' >= $component->getConfig( 'language')) |
|
| 6695 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 6696 | - $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
|
| 6697 | - $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
|
| 6698 | - $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
|
| 6699 | - $component->setConfig( 'format', $this->getConfig( 'format' )); |
|
| 6700 | - if( !in_array( $component->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) { |
|
| 6701 | - unset( $component->propix ); |
|
| 6692 | + function setComponent($component, $arg1 = FALSE, $arg2 = FALSE) { |
|
| 6693 | + if (!isset($this->components)) return FALSE; |
|
| 6694 | + if ('' >= $component->getConfig('language')) |
|
| 6695 | + $component->setConfig('language', $this->getConfig('language')); |
|
| 6696 | + $component->setConfig('allowEmpty', $this->getConfig('allowEmpty')); |
|
| 6697 | + $component->setConfig('nl', $this->getConfig('nl')); |
|
| 6698 | + $component->setConfig('unique_id', $this->getConfig('unique_id')); |
|
| 6699 | + $component->setConfig('format', $this->getConfig('format')); |
|
| 6700 | + if (!in_array($component->objName, array('valarm', 'vtimezone', 'standard', 'daylight'))) { |
|
| 6701 | + unset($component->propix); |
|
| 6702 | 6702 | /* make sure dtstamp and uid is set */ |
| 6703 | - $dummy = $component->getProperty( 'dtstamp' ); |
|
| 6704 | - $dummy = $component->getProperty( 'uid' ); |
|
| 6703 | + $dummy = $component->getProperty('dtstamp'); |
|
| 6704 | + $dummy = $component->getProperty('uid'); |
|
| 6705 | 6705 | } |
| 6706 | - if( !$arg1 ) { |
|
| 6706 | + if (!$arg1) { |
|
| 6707 | 6707 | $this->components[] = $component->copy(); |
| 6708 | 6708 | return TRUE; |
| 6709 | 6709 | } |
| 6710 | 6710 | $argType = $index = null; |
| 6711 | - if ( ctype_digit( (string) $arg1 )) { |
|
| 6711 | + if (ctype_digit((string) $arg1)) { |
|
| 6712 | 6712 | $argType = 'INDEX'; |
| 6713 | 6713 | $index = (int) $arg1 - 1; |
| 6714 | 6714 | } |
| 6715 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 6716 | - $argType = strtolower( $arg1 ); |
|
| 6717 | - $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0; |
|
| 6715 | + elseif ((strlen($arg1) <= strlen('vfreebusy')) && (FALSE === strpos($arg1, '@'))) { |
|
| 6716 | + $argType = strtolower($arg1); |
|
| 6717 | + $index = (ctype_digit((string) $arg2)) ? ((int) $arg2) - 1 : 0; |
|
| 6718 | 6718 | } |
| 6719 | 6719 | $cix2sC = 0; |
| 6720 | - foreach ( $this->components as $cix => $component2 ) { |
|
| 6721 | - if( empty( $component2 )) continue; |
|
| 6722 | - unset( $component2->propix ); |
|
| 6723 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 6720 | + foreach ($this->components as $cix => $component2) { |
|
| 6721 | + if (empty($component2)) continue; |
|
| 6722 | + unset($component2->propix); |
|
| 6723 | + if (('INDEX' == $argType) && ($index == $cix)) { |
|
| 6724 | 6724 | $this->components[$cix] = $component->copy(); |
| 6725 | 6725 | return TRUE; |
| 6726 | 6726 | } |
| 6727 | - elseif( $argType == $component2->objName ) { |
|
| 6728 | - if( $index == $cix2sC ) { |
|
| 6727 | + elseif ($argType == $component2->objName) { |
|
| 6728 | + if ($index == $cix2sC) { |
|
| 6729 | 6729 | $this->components[$cix] = $component->copy(); |
| 6730 | 6730 | return TRUE; |
| 6731 | 6731 | } |
| 6732 | 6732 | $cix2sC++; |
| 6733 | 6733 | } |
| 6734 | - elseif( !$argType && ($arg1 == $component2->getProperty( 'uid' ))) { |
|
| 6734 | + elseif (!$argType && ($arg1 == $component2->getProperty('uid'))) { |
|
| 6735 | 6735 | $this->components[$cix] = $component->copy(); |
| 6736 | 6736 | return TRUE; |
| 6737 | 6737 | } |
@@ -6749,15 +6749,15 @@ discard block |
||
| 6749 | 6749 | */ |
| 6750 | 6750 | function createSubComponent() { |
| 6751 | 6751 | $output = null; |
| 6752 | - foreach( $this->components as $component ) { |
|
| 6753 | - if( empty( $component )) continue; |
|
| 6754 | - if( '' >= $component->getConfig( 'language')) |
|
| 6755 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 6756 | - $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
|
| 6757 | - $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
|
| 6758 | - $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
|
| 6759 | - $component->setConfig( 'format', $this->getConfig( 'format' )); |
|
| 6760 | - $output .= $component->createComponent( $this->xcaldecl ); |
|
| 6752 | + foreach ($this->components as $component) { |
|
| 6753 | + if (empty($component)) continue; |
|
| 6754 | + if ('' >= $component->getConfig('language')) |
|
| 6755 | + $component->setConfig('language', $this->getConfig('language')); |
|
| 6756 | + $component->setConfig('allowEmpty', $this->getConfig('allowEmpty')); |
|
| 6757 | + $component->setConfig('nl', $this->getConfig('nl')); |
|
| 6758 | + $component->setConfig('unique_id', $this->getConfig('unique_id')); |
|
| 6759 | + $component->setConfig('format', $this->getConfig('format')); |
|
| 6760 | + $output .= $component->createComponent($this->xcaldecl); |
|
| 6761 | 6761 | } |
| 6762 | 6762 | return $output; |
| 6763 | 6763 | } |
@@ -6784,21 +6784,21 @@ discard block |
||
| 6784 | 6784 | * @param string $value |
| 6785 | 6785 | * @return string |
| 6786 | 6786 | */ |
| 6787 | - function _size75( $string ) { |
|
| 6788 | - $strlen = strlen( $string ); |
|
| 6787 | + function _size75($string) { |
|
| 6788 | + $strlen = strlen($string); |
|
| 6789 | 6789 | $tmp = $string; |
| 6790 | 6790 | $string = null; |
| 6791 | - while( $strlen > 75 ) { |
|
| 6791 | + while ($strlen > 75) { |
|
| 6792 | 6792 | $breakAtChar = 75; |
| 6793 | - if( substr( $tmp, ( $breakAtChar - 1 ), strlen( '\n' )) == '\n' ) |
|
| 6793 | + if (substr($tmp, ($breakAtChar - 1), strlen('\n')) == '\n') |
|
| 6794 | 6794 | $breakAtChar = $breakAtChar - 1; |
| 6795 | - $string .= substr( $tmp, 0, $breakAtChar ); |
|
| 6795 | + $string .= substr($tmp, 0, $breakAtChar); |
|
| 6796 | 6796 | $string .= $this->nl; |
| 6797 | - $tmp = ' '.substr( $tmp, $breakAtChar ); |
|
| 6798 | - $strlen = strlen( $tmp ); |
|
| 6797 | + $tmp = ' '.substr($tmp, $breakAtChar); |
|
| 6798 | + $strlen = strlen($tmp); |
|
| 6799 | 6799 | } // while |
| 6800 | - $string .= rtrim( $tmp ); // the rest |
|
| 6801 | - if( $this->nl != substr( $string, ( 0 - strlen( $this->nl )))) |
|
| 6800 | + $string .= rtrim($tmp); // the rest |
|
| 6801 | + if ($this->nl != substr($string, (0 - strlen($this->nl)))) |
|
| 6802 | 6802 | $string .= $this->nl; |
| 6803 | 6803 | return $string; |
| 6804 | 6804 | } |
@@ -6810,38 +6810,38 @@ discard block |
||
| 6810 | 6810 | * @param string $string |
| 6811 | 6811 | * @return string |
| 6812 | 6812 | */ |
| 6813 | - function _strrep( $string ) { |
|
| 6814 | - switch( $this->format ) { |
|
| 6813 | + function _strrep($string) { |
|
| 6814 | + switch ($this->format) { |
|
| 6815 | 6815 | case 'xcal': |
| 6816 | - $string = str_replace( '\n', $this->nl, $string); |
|
| 6817 | - $string = htmlspecialchars( strip_tags( stripslashes( urldecode ( $string )))); |
|
| 6816 | + $string = str_replace('\n', $this->nl, $string); |
|
| 6817 | + $string = htmlspecialchars(strip_tags(stripslashes(urldecode($string)))); |
|
| 6818 | 6818 | break; |
| 6819 | 6819 | default: |
| 6820 | 6820 | $pos = 0; |
| 6821 | - while( $pos <= strlen( $string )) { |
|
| 6822 | - $pos = strpos( $string, "\\", $pos ); |
|
| 6823 | - if( FALSE === $pos ) |
|
| 6821 | + while ($pos <= strlen($string)) { |
|
| 6822 | + $pos = strpos($string, "\\", $pos); |
|
| 6823 | + if (FALSE === $pos) |
|
| 6824 | 6824 | break; |
| 6825 | - if( !in_array( $string{($pos + 1)}, array( 'n', 'N', 'r', ',', ';' ))) { |
|
| 6826 | - $string = substr( $string, 0, $pos )."\\".substr( $string, ( $pos + 1 )); |
|
| 6825 | + if (!in_array($string{($pos + 1)}, array('n', 'N', 'r', ',', ';'))) { |
|
| 6826 | + $string = substr($string, 0, $pos)."\\".substr($string, ($pos + 1)); |
|
| 6827 | 6827 | $pos += 1; |
| 6828 | 6828 | } |
| 6829 | 6829 | $pos += 1; |
| 6830 | 6830 | } |
| 6831 | - if( FALSE !== strpos( $string, '"' )) |
|
| 6832 | - $string = str_replace('"', "'", $string); |
|
| 6833 | - if( FALSE !== strpos( $string, ',' )) |
|
| 6834 | - $string = str_replace(',', '\,', $string); |
|
| 6835 | - if( FALSE !== strpos( $string, ';' )) |
|
| 6836 | - $string = str_replace(';', '\;', $string); |
|
| 6837 | - if( FALSE !== strpos( $string, "\r\n" )) |
|
| 6838 | - $string = str_replace( "\r\n", '\n', $string); |
|
| 6839 | - elseif( FALSE !== strpos( $string, "\r" )) |
|
| 6840 | - $string = str_replace( "\r", '\n', $string); |
|
| 6841 | - if( FALSE !== strpos( $string, '\N' )) |
|
| 6842 | - $string = str_replace( '\N', '\n', $string); |
|
| 6831 | + if (FALSE !== strpos($string, '"')) |
|
| 6832 | + $string = str_replace('"', "'", $string); |
|
| 6833 | + if (FALSE !== strpos($string, ',')) |
|
| 6834 | + $string = str_replace(',', '\,', $string); |
|
| 6835 | + if (FALSE !== strpos($string, ';')) |
|
| 6836 | + $string = str_replace(';', '\;', $string); |
|
| 6837 | + if (FALSE !== strpos($string, "\r\n")) |
|
| 6838 | + $string = str_replace("\r\n", '\n', $string); |
|
| 6839 | + elseif (FALSE !== strpos($string, "\r")) |
|
| 6840 | + $string = str_replace("\r", '\n', $string); |
|
| 6841 | + if (FALSE !== strpos($string, '\N')) |
|
| 6842 | + $string = str_replace('\N', '\n', $string); |
|
| 6843 | 6843 | // if( FALSE !== strpos( $string, $this->nl )) |
| 6844 | - $string = str_replace( $this->nl, '\n', $string); |
|
| 6844 | + $string = str_replace($this->nl, '\n', $string); |
|
| 6845 | 6845 | break; |
| 6846 | 6846 | } |
| 6847 | 6847 | return $string; |
@@ -6854,10 +6854,10 @@ discard block |
||
| 6854 | 6854 | * @param string $string |
| 6855 | 6855 | * @return string |
| 6856 | 6856 | */ |
| 6857 | - function _strunrep( $string ) { |
|
| 6858 | - $string = str_replace( '\\\\', '\\', $string); |
|
| 6859 | - $string = str_replace( '\,', ',', $string); |
|
| 6860 | - $string = str_replace( '\;', ';', $string); |
|
| 6857 | + function _strunrep($string) { |
|
| 6858 | + $string = str_replace('\\\\', '\\', $string); |
|
| 6859 | + $string = str_replace('\,', ',', $string); |
|
| 6860 | + $string = str_replace('\;', ';', $string); |
|
| 6861 | 6861 | // $string = str_replace( '\n', $this->nl, $string); // ?? |
| 6862 | 6862 | return $string; |
| 6863 | 6863 | } |
@@ -6955,7 +6955,7 @@ discard block |
||
| 6955 | 6955 | * @param array $xcaldecl |
| 6956 | 6956 | * @return string |
| 6957 | 6957 | */ |
| 6958 | - function createComponent( &$xcaldecl ) { |
|
| 6958 | + function createComponent(&$xcaldecl) { |
|
| 6959 | 6959 | $objectname = $this->_createFormat(); |
| 6960 | 6960 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 6961 | 6961 | $component .= $this->createUid(); |
@@ -6992,8 +6992,8 @@ discard block |
||
| 6992 | 6992 | $component .= $this->createXprop(); |
| 6993 | 6993 | $component .= $this->createSubComponent(); |
| 6994 | 6994 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 6995 | - if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
|
| 6996 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 6995 | + if (is_array($this->xcaldecl) && (0 < count($this->xcaldecl))) { |
|
| 6996 | + foreach ($this->xcaldecl as $localxcaldecl) |
|
| 6997 | 6997 | $xcaldecl[] = $localxcaldecl; |
| 6998 | 6998 | } |
| 6999 | 6999 | return $component; |
@@ -7093,7 +7093,7 @@ discard block |
||
| 7093 | 7093 | * @param array $xcaldecl |
| 7094 | 7094 | * @return string |
| 7095 | 7095 | */ |
| 7096 | - function createComponent( &$xcaldecl ) { |
|
| 7096 | + function createComponent(&$xcaldecl) { |
|
| 7097 | 7097 | $objectname = $this->_createFormat(); |
| 7098 | 7098 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7099 | 7099 | $component .= $this->createUid(); |
@@ -7131,8 +7131,8 @@ discard block |
||
| 7131 | 7131 | $component .= $this->createXprop(); |
| 7132 | 7132 | $component .= $this->createSubComponent(); |
| 7133 | 7133 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7134 | - if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
|
| 7135 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7134 | + if (is_array($this->xcaldecl) && (0 < count($this->xcaldecl))) { |
|
| 7135 | + foreach ($this->xcaldecl as $localxcaldecl) |
|
| 7136 | 7136 | $xcaldecl[] = $localxcaldecl; |
| 7137 | 7137 | } |
| 7138 | 7138 | return $component; |
@@ -7212,7 +7212,7 @@ discard block |
||
| 7212 | 7212 | * @param array $xcaldecl |
| 7213 | 7213 | * @return string |
| 7214 | 7214 | */ |
| 7215 | - function createComponent( &$xcaldecl ) { |
|
| 7215 | + function createComponent(&$xcaldecl) { |
|
| 7216 | 7216 | $objectname = $this->_createFormat(); |
| 7217 | 7217 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7218 | 7218 | $component .= $this->createUid(); |
@@ -7241,8 +7241,8 @@ discard block |
||
| 7241 | 7241 | $component .= $this->createUrl(); |
| 7242 | 7242 | $component .= $this->createXprop(); |
| 7243 | 7243 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7244 | - if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
|
| 7245 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7244 | + if (is_array($this->xcaldecl) && (0 < count($this->xcaldecl))) { |
|
| 7245 | + foreach ($this->xcaldecl as $localxcaldecl) |
|
| 7246 | 7246 | $xcaldecl[] = $localxcaldecl; |
| 7247 | 7247 | } |
| 7248 | 7248 | return $component; |
@@ -7300,7 +7300,7 @@ discard block |
||
| 7300 | 7300 | * @param array $xcaldecl |
| 7301 | 7301 | * @return string |
| 7302 | 7302 | */ |
| 7303 | - function createComponent( &$xcaldecl ) { |
|
| 7303 | + function createComponent(&$xcaldecl) { |
|
| 7304 | 7304 | $objectname = $this->_createFormat(); |
| 7305 | 7305 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7306 | 7306 | $component .= $this->createUid(); |
@@ -7317,8 +7317,8 @@ discard block |
||
| 7317 | 7317 | $component .= $this->createUrl(); |
| 7318 | 7318 | $component .= $this->createXprop(); |
| 7319 | 7319 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7320 | - if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
|
| 7321 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7320 | + if (is_array($this->xcaldecl) && (0 < count($this->xcaldecl))) { |
|
| 7321 | + foreach ($this->xcaldecl as $localxcaldecl) |
|
| 7322 | 7322 | $xcaldecl[] = $localxcaldecl; |
| 7323 | 7323 | } |
| 7324 | 7324 | return $component; |
@@ -7370,7 +7370,7 @@ discard block |
||
| 7370 | 7370 | * @param array $xcaldecl |
| 7371 | 7371 | * @return string |
| 7372 | 7372 | */ |
| 7373 | - function createComponent( &$xcaldecl ) { |
|
| 7373 | + function createComponent(&$xcaldecl) { |
|
| 7374 | 7374 | $objectname = $this->_createFormat(); |
| 7375 | 7375 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7376 | 7376 | $component .= $this->createAction(); |
@@ -7418,11 +7418,11 @@ discard block |
||
| 7418 | 7418 | * @param string $timezonetype optional, default FALSE ( STANDARD / DAYLIGHT ) |
| 7419 | 7419 | * @return void |
| 7420 | 7420 | */ |
| 7421 | - function vtimezone( $timezonetype=FALSE ) { |
|
| 7422 | - if( !$timezonetype ) |
|
| 7421 | + function vtimezone($timezonetype = FALSE) { |
|
| 7422 | + if (!$timezonetype) |
|
| 7423 | 7423 | $this->timezonetype = 'VTIMEZONE'; |
| 7424 | 7424 | else |
| 7425 | - $this->timezonetype = strtoupper( $timezonetype ); |
|
| 7425 | + $this->timezonetype = strtoupper($timezonetype); |
|
| 7426 | 7426 | $this->calendarComponent(); |
| 7427 | 7427 | |
| 7428 | 7428 | $this->comment = ''; |
@@ -7447,7 +7447,7 @@ discard block |
||
| 7447 | 7447 | * @param array $xcaldecl |
| 7448 | 7448 | * @return string |
| 7449 | 7449 | */ |
| 7450 | - function createComponent( &$xcaldecl ) { |
|
| 7450 | + function createComponent(&$xcaldecl) { |
|
| 7451 | 7451 | $objectname = $this->_createFormat(); |
| 7452 | 7452 | $component = $this->componentStart1.$objectname.$this->componentStart2.$this->nl; |
| 7453 | 7453 | $component .= $this->createTzid(); |
@@ -7463,8 +7463,8 @@ discard block |
||
| 7463 | 7463 | $component .= $this->createXprop(); |
| 7464 | 7464 | $component .= $this->createSubComponent(); |
| 7465 | 7465 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7466 | - if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
|
| 7467 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7466 | + if (is_array($this->xcaldecl) && (0 < count($this->xcaldecl))) { |
|
| 7467 | + foreach ($this->xcaldecl as $localxcaldecl) |
|
| 7468 | 7468 | $xcaldecl[] = $localxcaldecl; |
| 7469 | 7469 | } |
| 7470 | 7470 | return $component; |
@@ -44,8 +44,10 @@ discard block |
||
| 44 | 44 | } |
| 45 | 45 | */ |
| 46 | 46 | /* only for phpversion 5.x, date management, default timezone setting */ |
| 47 | -if( substr( phpversion(), 0, 1) >= '5' ) // && ( 'UTC' == date_default_timezone_get() )) { |
|
| 47 | +if( substr( phpversion(), 0, 1) >= '5' ) { |
|
| 48 | + // && ( 'UTC' == date_default_timezone_get() )) { |
|
| 48 | 49 | date_default_timezone_set( 'Europe/Stockholm' ); |
| 50 | +} |
|
| 49 | 51 | /* version string, do NOT remove!! */ |
| 50 | 52 | define( 'ICALCREATOR_VERSION', 'iCalcreator 2.6' ); |
| 51 | 53 | /*********************************************************************************/ |
@@ -97,8 +99,9 @@ discard block |
||
| 97 | 99 | /** |
| 98 | 100 | * language = <Text identifying a language, as defined in [RFC 1766]> |
| 99 | 101 | */ |
| 100 | - if( defined( 'ICAL_LANG' )) |
|
| 101 | - $this->setConfig( 'language', ICAL_LANG ); |
|
| 102 | + if( defined( 'ICAL_LANG' )) { |
|
| 103 | + $this->setConfig( 'language', ICAL_LANG ); |
|
| 104 | + } |
|
| 102 | 105 | $this->setConfig( 'allowEmpty', TRUE ); |
| 103 | 106 | $this->setConfig( 'nl', "\n" ); |
| 104 | 107 | $this->setConfig( 'format', 'iCal'); |
@@ -121,7 +124,9 @@ discard block |
||
| 121 | 124 | * @return string |
| 122 | 125 | */ |
| 123 | 126 | function createCalscale() { |
| 124 | - if( empty( $this->calscale )) return FALSE; |
|
| 127 | + if( empty( $this->calscale )) { |
|
| 128 | + return FALSE; |
|
| 129 | + } |
|
| 125 | 130 | switch( $this->format ) { |
| 126 | 131 | case 'xcal': |
| 127 | 132 | return ' calscale="'.$this->calscale.'"'.$this->nl; |
@@ -140,7 +145,9 @@ discard block |
||
| 140 | 145 | * @return void |
| 141 | 146 | */ |
| 142 | 147 | function setCalscale( $value ) { |
| 143 | - if( empty( $value )) return FALSE; |
|
| 148 | + if( empty( $value )) { |
|
| 149 | + return FALSE; |
|
| 150 | + } |
|
| 144 | 151 | $this->calscale = $value; |
| 145 | 152 | } |
| 146 | 153 | /*********************************************************************************/ |
@@ -155,7 +162,9 @@ discard block |
||
| 155 | 162 | * @return string |
| 156 | 163 | */ |
| 157 | 164 | function createMethod() { |
| 158 | - if( empty( $this->method )) return FALSE; |
|
| 165 | + if( empty( $this->method )) { |
|
| 166 | + return FALSE; |
|
| 167 | + } |
|
| 159 | 168 | switch( $this->format ) { |
| 160 | 169 | case 'xcal': |
| 161 | 170 | return ' method="'.$this->method.'"'.$this->nl; |
@@ -174,7 +183,9 @@ discard block |
||
| 174 | 183 | * @return bool |
| 175 | 184 | */ |
| 176 | 185 | function setMethod( $value ) { |
| 177 | - if( empty( $value )) return FALSE; |
|
| 186 | + if( empty( $value )) { |
|
| 187 | + return FALSE; |
|
| 188 | + } |
|
| 178 | 189 | $this->method = $value; |
| 179 | 190 | return TRUE; |
| 180 | 191 | } |
@@ -194,8 +205,9 @@ discard block |
||
| 194 | 205 | * @return string |
| 195 | 206 | */ |
| 196 | 207 | function createProdid() { |
| 197 | - if( !isset( $this->prodid )) |
|
| 198 | - $this->_makeProdid(); |
|
| 208 | + if( !isset( $this->prodid )) { |
|
| 209 | + $this->_makeProdid(); |
|
| 210 | + } |
|
| 199 | 211 | switch( $this->format ) { |
| 200 | 212 | case 'xcal': |
| 201 | 213 | return ' prodid="'.$this->prodid.'"'.$this->nl; |
@@ -246,8 +258,9 @@ discard block |
||
| 246 | 258 | * @return string |
| 247 | 259 | */ |
| 248 | 260 | function createVersion() { |
| 249 | - if( empty( $this->version )) |
|
| 250 | - $this->_makeVersion(); |
|
| 261 | + if( empty( $this->version )) { |
|
| 262 | + $this->_makeVersion(); |
|
| 263 | + } |
|
| 251 | 264 | switch( $this->format ) { |
| 252 | 265 | case 'xcal': |
| 253 | 266 | return ' version="'.$this->version.'"'.$this->nl; |
@@ -276,7 +289,9 @@ discard block |
||
| 276 | 289 | * @return void |
| 277 | 290 | */ |
| 278 | 291 | function setVersion( $value ) { |
| 279 | - if( empty( $value )) return FALSE; |
|
| 292 | + if( empty( $value )) { |
|
| 293 | + return FALSE; |
|
| 294 | + } |
|
| 280 | 295 | $this->version = $value; |
| 281 | 296 | return TRUE; |
| 282 | 297 | } |
@@ -292,10 +307,12 @@ discard block |
||
| 292 | 307 | * @return string |
| 293 | 308 | */ |
| 294 | 309 | function createXprop() { |
| 295 | - if( 'xcal' == $this->format ) |
|
| 296 | - return false; |
|
| 297 | - if( 0 >= count( $this->xprop )) |
|
| 298 | - return; |
|
| 310 | + if( 'xcal' == $this->format ) { |
|
| 311 | + return false; |
|
| 312 | + } |
|
| 313 | + if( 0 >= count( $this->xprop )) { |
|
| 314 | + return; |
|
| 315 | + } |
|
| 299 | 316 | $output = null; |
| 300 | 317 | $toolbox = new calendarComponent(); |
| 301 | 318 | $toolbox->setConfig( 'language', $this->getConfig( 'language' )); |
@@ -308,12 +325,13 @@ discard block |
||
| 308 | 325 | } |
| 309 | 326 | $attributes = $toolbox->_createParams( $xpropPart['params'], array( 'LANGUAGE' )); |
| 310 | 327 | if( is_array( $xpropPart['value'] )) { |
| 311 | - foreach( $xpropPart['value'] as $pix => $theXpart ) |
|
| 312 | - $xpropPart['value'][$pix] = $toolbox->_strrep( $theXpart ); |
|
| 328 | + foreach( $xpropPart['value'] as $pix => $theXpart ) { |
|
| 329 | + $xpropPart['value'][$pix] = $toolbox->_strrep( $theXpart ); |
|
| 330 | + } |
|
| 313 | 331 | $xpropPart['value'] = implode( ',', $xpropPart['value'] ); |
| 332 | + } else { |
|
| 333 | + $xpropPart['value'] = $toolbox->_strrep( $xpropPart['value'] ); |
|
| 314 | 334 | } |
| 315 | - else |
|
| 316 | - $xpropPart['value'] = $toolbox->_strrep( $xpropPart['value'] ); |
|
| 317 | 335 | $output .= $toolbox->_createElement( $label, $attributes, $xpropPart['value'] ); |
| 318 | 336 | } |
| 319 | 337 | return $output; |
@@ -329,12 +347,20 @@ discard block |
||
| 329 | 347 | * @return bool |
| 330 | 348 | */ |
| 331 | 349 | function setXprop( $label, $value, $params=FALSE ) { |
| 332 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 333 | - if( empty( $label )) return FALSE; |
|
| 350 | + if( empty( $value )) { |
|
| 351 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 352 | + } else { |
|
| 353 | + return FALSE; |
|
| 354 | + } |
|
| 355 | + if( empty( $label )) { |
|
| 356 | + return FALSE; |
|
| 357 | + } |
|
| 334 | 358 | $xprop = array( 'value' => $value ); |
| 335 | 359 | $toolbox = new calendarComponent(); |
| 336 | 360 | $xprop['params'] = $toolbox->_setParams( $params ); |
| 337 | - if( !is_array( $this->xprop )) $this->xprop = array(); |
|
| 361 | + if( !is_array( $this->xprop )) { |
|
| 362 | + $this->xprop = array(); |
|
| 363 | + } |
|
| 338 | 364 | $this->xprop[strtoupper( $label )] = $xprop; |
| 339 | 365 | return TRUE; |
| 340 | 366 | } |
@@ -350,8 +376,9 @@ discard block |
||
| 350 | 376 | */ |
| 351 | 377 | function deleteProperty( $propName, $propix=FALSE ) { |
| 352 | 378 | $propName = ( $propName ) ? strtoupper( $propName ) : 'X-PROP'; |
| 353 | - if( !$propix ) |
|
| 354 | - $propix = ( isset( $this->propdelix[$propName] )) ? $this->propdelix[$propName] + 2 : 1; |
|
| 379 | + if( !$propix ) { |
|
| 380 | + $propix = ( isset( $this->propdelix[$propName] )) ? $this->propdelix[$propName] + 2 : 1; |
|
| 381 | + } |
|
| 355 | 382 | $this->propdelix[$propName] = --$propix; |
| 356 | 383 | $return = FALSE; |
| 357 | 384 | switch( $propName ) { |
@@ -370,18 +397,23 @@ discard block |
||
| 370 | 397 | default: |
| 371 | 398 | $reduced = array(); |
| 372 | 399 | if( $propName != 'X-PROP' ) { |
| 373 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 400 | + if( !isset( $this->xprop[$propName] )) { |
|
| 401 | + return FALSE; |
|
| 402 | + } |
|
| 374 | 403 | foreach( $this->xprop as $k => $a ) { |
| 375 | - if(( $k != $propName ) && !empty( $a )) |
|
| 376 | - $reduced[$k] = $a; |
|
| 404 | + if(( $k != $propName ) && !empty( $a )) { |
|
| 405 | + $reduced[$k] = $a; |
|
| 406 | + } |
|
| 407 | + } |
|
| 408 | + } else { |
|
| 409 | + if( count( $this->xprop ) <= $propix ) { |
|
| 410 | + return FALSE; |
|
| 377 | 411 | } |
| 378 | - } |
|
| 379 | - else { |
|
| 380 | - if( count( $this->xprop ) <= $propix ) return FALSE; |
|
| 381 | 412 | $xpropno = 0; |
| 382 | 413 | foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
| 383 | - if( $propix != $xpropno ) |
|
| 384 | - $reduced[$xpropkey] = $xpropvalue; |
|
| 414 | + if( $propix != $xpropno ) { |
|
| 415 | + $reduced[$xpropkey] = $xpropvalue; |
|
| 416 | + } |
|
| 385 | 417 | $xpropno++; |
| 386 | 418 | } |
| 387 | 419 | } |
@@ -403,8 +435,9 @@ discard block |
||
| 403 | 435 | function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE ) { |
| 404 | 436 | $propName = ( $propName ) ? strtoupper( $propName ) : 'X-PROP'; |
| 405 | 437 | if( 'X-PROP' == $propName ) { |
| 406 | - if( !$propix ) |
|
| 407 | - $propix = ( isset( $this->propix[$propName] )) ? $this->propix[$propName] + 2 : 1; |
|
| 438 | + if( !$propix ) { |
|
| 439 | + $propix = ( isset( $this->propix[$propName] )) ? $this->propix[$propName] + 2 : 1; |
|
| 440 | + } |
|
| 408 | 441 | $this->propix[$propName] = --$propix; |
| 409 | 442 | } |
| 410 | 443 | switch( $propName ) { |
@@ -415,8 +448,9 @@ discard block |
||
| 415 | 448 | return ( !empty( $this->method )) ? $this->method : null; |
| 416 | 449 | break; |
| 417 | 450 | case 'PRODID': |
| 418 | - if( empty( $this->prodid )) |
|
| 419 | - $this->_makeProdid(); |
|
| 451 | + if( empty( $this->prodid )) { |
|
| 452 | + $this->_makeProdid(); |
|
| 453 | + } |
|
| 420 | 454 | return $this->prodid; |
| 421 | 455 | break; |
| 422 | 456 | case 'VERSION': |
@@ -424,19 +458,23 @@ discard block |
||
| 424 | 458 | break; |
| 425 | 459 | default: |
| 426 | 460 | if( $propName != 'X-PROP' ) { |
| 427 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 461 | + if( !isset( $this->xprop[$propName] )) { |
|
| 462 | + return FALSE; |
|
| 463 | + } |
|
| 428 | 464 | return ( $inclParam ) ? array( $propName, $this->xprop[$propName] ) |
| 429 | 465 | : array( $propName, $this->xprop[$propName]['value'] ); |
| 430 | - } |
|
| 431 | - else { |
|
| 432 | - if( empty( $this->xprop )) return FALSE; |
|
| 466 | + } else { |
|
| 467 | + if( empty( $this->xprop )) { |
|
| 468 | + return FALSE; |
|
| 469 | + } |
|
| 433 | 470 | $xpropno = 0; |
| 434 | 471 | foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
| 435 | - if( $propix == $xpropno ) |
|
| 436 | - return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 472 | + if( $propix == $xpropno ) { |
|
| 473 | + return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 437 | 474 | : array( $xpropkey, $this->xprop[$xpropkey]['value'] ); |
| 438 | - else |
|
| 439 | - $xpropno++; |
|
| 475 | + } else { |
|
| 476 | + $xpropno++; |
|
| 477 | + } |
|
| 440 | 478 | } |
| 441 | 479 | return FALSE; // not found ?? |
| 442 | 480 | } |
@@ -455,8 +493,9 @@ discard block |
||
| 455 | 493 | */ |
| 456 | 494 | function setProperty () { |
| 457 | 495 | $numargs = func_num_args(); |
| 458 | - if( 1 > $numargs ) |
|
| 459 | - return FALSE; |
|
| 496 | + if( 1 > $numargs ) { |
|
| 497 | + return FALSE; |
|
| 498 | + } |
|
| 460 | 499 | $arglist = func_get_args(); |
| 461 | 500 | $arglist[0] = strtoupper( $arglist[0] ); |
| 462 | 501 | switch( $arglist[0] ) { |
@@ -467,8 +506,12 @@ discard block |
||
| 467 | 506 | case 'VERSION': |
| 468 | 507 | return $this->setVersion( $arglist[1] ); |
| 469 | 508 | default: |
| 470 | - if( !isset( $arglist[1] )) $arglist[1] = null; |
|
| 471 | - if( !isset( $arglist[2] )) $arglist[2] = null; |
|
| 509 | + if( !isset( $arglist[1] )) { |
|
| 510 | + $arglist[1] = null; |
|
| 511 | + } |
|
| 512 | + if( !isset( $arglist[2] )) { |
|
| 513 | + $arglist[2] = null; |
|
| 514 | + } |
|
| 472 | 515 | return $this->setXprop( $arglist[0], $arglist[1], $arglist[2] ); |
| 473 | 516 | } |
| 474 | 517 | return FALSE; |
@@ -491,7 +534,9 @@ discard block |
||
| 491 | 534 | unset( $this->compix ); |
| 492 | 535 | $info = array(); |
| 493 | 536 | foreach( $this->components as $cix => $component ) { |
| 494 | - if( empty( $component )) continue; |
|
| 537 | + if( empty( $component )) { |
|
| 538 | + continue; |
|
| 539 | + } |
|
| 495 | 540 | unset( $component->propix ); |
| 496 | 541 | $info[$cix]['ordno'] = $cix + 1; |
| 497 | 542 | $info[$cix]['type'] = $component->objName; |
@@ -506,8 +551,9 @@ discard block |
||
| 506 | 551 | return $this->delimiter; |
| 507 | 552 | break; |
| 508 | 553 | case 'DIRECTORY': |
| 509 | - if( empty( $this->directory )) |
|
| 510 | - $this->directory = '.'; |
|
| 554 | + if( empty( $this->directory )) { |
|
| 555 | + $this->directory = '.'; |
|
| 556 | + } |
|
| 511 | 557 | return $this->directory; |
| 512 | 558 | break; |
| 513 | 559 | case 'DIRFILE': |
@@ -520,10 +566,13 @@ discard block |
||
| 520 | 566 | break; |
| 521 | 567 | case 'FILENAME': |
| 522 | 568 | if( empty( $this->filename )) { |
| 523 | - if( 'xcal' == $this->format ) |
|
| 524 | - $this->filename = date( 'YmdHis' ).'.xml'; // recommended xcs.. . |
|
| 525 | - else |
|
| 526 | - $this->filename = date( 'YmdHis' ).'.ics'; |
|
| 569 | + if( 'xcal' == $this->format ) { |
|
| 570 | + $this->filename = date( 'YmdHis' ).'.xml'; |
|
| 571 | + } |
|
| 572 | + // recommended xcs.. . |
|
| 573 | + else { |
|
| 574 | + $this->filename = date( 'YmdHis' ).'.ics'; |
|
| 575 | + } |
|
| 527 | 576 | } |
| 528 | 577 | return $this->filename; |
| 529 | 578 | break; |
@@ -531,8 +580,9 @@ discard block |
||
| 531 | 580 | $size = 0; |
| 532 | 581 | if( empty( $this->url )) { |
| 533 | 582 | $dirfile = $this->getConfig( 'dirfile' ); |
| 534 | - if( FALSE === ( $size = filesize( $dirfile ))) |
|
| 535 | - $size = 0; |
|
| 583 | + if( FALSE === ( $size = filesize( $dirfile ))) { |
|
| 584 | + $size = 0; |
|
| 585 | + } |
|
| 536 | 586 | clearstatcache(); |
| 537 | 587 | } |
| 538 | 588 | return $size; |
@@ -552,10 +602,11 @@ discard block |
||
| 552 | 602 | return $this->unique_id; |
| 553 | 603 | break; |
| 554 | 604 | case 'URL': |
| 555 | - if( !empty( $this->url )) |
|
| 556 | - return $this->url; |
|
| 557 | - else |
|
| 558 | - return FALSE; |
|
| 605 | + if( !empty( $this->url )) { |
|
| 606 | + return $this->url; |
|
| 607 | + } else { |
|
| 608 | + return FALSE; |
|
| 609 | + } |
|
| 559 | 610 | break; |
| 560 | 611 | } |
| 561 | 612 | } |
@@ -583,17 +634,18 @@ discard block |
||
| 583 | 634 | case 'DIRECTORY': |
| 584 | 635 | $value = trim( $value ); |
| 585 | 636 | $nl = $this->getConfig('delimiter'); |
| 586 | - if( $nl == substr( $value, ( 0 - strlen( $nl )))) |
|
| 587 | - $value = substr( $value, 0, ( strlen( $value ) - strlen( $nl ))); |
|
| 637 | + if( $nl == substr( $value, ( 0 - strlen( $nl )))) { |
|
| 638 | + $value = substr( $value, 0, ( strlen( $value ) - strlen( $nl ))); |
|
| 639 | + } |
|
| 588 | 640 | if( is_dir( $value )) { |
| 589 | 641 | /* local directory */ |
| 590 | 642 | clearstatcache(); |
| 591 | 643 | $this->directory = $value; |
| 592 | 644 | $this->url = null; |
| 593 | 645 | return TRUE; |
| 646 | + } else { |
|
| 647 | + return FALSE; |
|
| 594 | 648 | } |
| 595 | - else |
|
| 596 | - return FALSE; |
|
| 597 | 649 | break; |
| 598 | 650 | case 'FILENAME': |
| 599 | 651 | $value = trim( $value ); |
@@ -609,17 +661,16 @@ discard block |
||
| 609 | 661 | clearstatcache(); |
| 610 | 662 | $this->filename = $value; |
| 611 | 663 | return TRUE; |
| 664 | + } else { |
|
| 665 | + return FALSE; |
|
| 612 | 666 | } |
| 613 | - else |
|
| 614 | - return FALSE; |
|
| 615 | - } |
|
| 616 | - elseif( FALSE !== touch( $dirfile )) { |
|
| 667 | + } elseif( FALSE !== touch( $dirfile )) { |
|
| 617 | 668 | /* new local file created */ |
| 618 | 669 | $this->filename = $value; |
| 619 | 670 | return TRUE; |
| 671 | + } else { |
|
| 672 | + return FALSE; |
|
| 620 | 673 | } |
| 621 | - else |
|
| 622 | - return FALSE; |
|
| 623 | 674 | break; |
| 624 | 675 | case 'FORMAT': |
| 625 | 676 | $value = trim( $value ); |
@@ -627,8 +678,7 @@ discard block |
||
| 627 | 678 | $this->format = 'xcal'; |
| 628 | 679 | $this->attributeDelimiter = $this->nl; |
| 629 | 680 | $this->valueInit = null; |
| 630 | - } |
|
| 631 | - else { |
|
| 681 | + } else { |
|
| 632 | 682 | $this->format = null; |
| 633 | 683 | $this->attributeDelimiter = ';'; |
| 634 | 684 | $this->valueInit = ':'; |
@@ -667,13 +717,16 @@ discard block |
||
| 667 | 717 | return $this->setConfig( 'filename', $parts['basename'] ); |
| 668 | 718 | break; |
| 669 | 719 | } |
| 670 | - if( !$res ) return FALSE; |
|
| 720 | + if( !$res ) { |
|
| 721 | + return FALSE; |
|
| 722 | + } |
|
| 671 | 723 | if( isset( $subcfg ) && !empty( $this->components )) { |
| 672 | 724 | foreach( $subcfg as $cfgkey => $cfgvalue ) { |
| 673 | 725 | foreach( $this->components as $cix => $component ) { |
| 674 | 726 | $res = $component->setConfig( $cfgkey, $cfgvalue ); |
| 675 | - if( !$res ) |
|
| 676 | - break 2; |
|
| 727 | + if( !$res ) { |
|
| 728 | + break 2; |
|
| 729 | + } |
|
| 677 | 730 | $this->components[$cix] = $component->copy(); // PHP4 compliant |
| 678 | 731 | } |
| 679 | 732 | } |
@@ -708,27 +761,26 @@ discard block |
||
| 708 | 761 | if ( ctype_digit( (string) $arg1 )) { |
| 709 | 762 | $argType = 'INDEX'; |
| 710 | 763 | $index = (int) $arg1 - 1; |
| 711 | - } |
|
| 712 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 764 | + } elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 713 | 765 | $argType = strtolower( $arg1 ); |
| 714 | 766 | $index = ( !empty( $arg2 ) && ctype_digit( (string) $arg2 )) ? (( int ) $arg2 - 1 ) : 0; |
| 715 | 767 | } |
| 716 | 768 | $cix1dC = 0; |
| 717 | 769 | foreach ( $this->components as $cix => $component) { |
| 718 | - if( empty( $component )) continue; |
|
| 770 | + if( empty( $component )) { |
|
| 771 | + continue; |
|
| 772 | + } |
|
| 719 | 773 | unset( $component->propix ); |
| 720 | 774 | if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
| 721 | 775 | unset( $this->components[$cix] ); |
| 722 | 776 | return TRUE; |
| 723 | - } |
|
| 724 | - elseif( $argType == $component->objName ) { |
|
| 777 | + } elseif( $argType == $component->objName ) { |
|
| 725 | 778 | if( $index == $cix1dC ) { |
| 726 | 779 | unset( $this->components[$cix] ); |
| 727 | 780 | return TRUE; |
| 728 | 781 | } |
| 729 | 782 | $cix1dC++; |
| 730 | - } |
|
| 731 | - elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 783 | + } elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 732 | 784 | unset( $this->components[$cix] ); |
| 733 | 785 | return TRUE; |
| 734 | 786 | } |
@@ -750,37 +802,39 @@ discard block |
||
| 750 | 802 | $argType = 'INDEX'; |
| 751 | 803 | $index = $this->compix['INDEX'] = |
| 752 | 804 | ( isset( $this->compix['INDEX'] )) ? $this->compix['INDEX'] + 1 : 1; |
| 753 | - } |
|
| 754 | - elseif ( ctype_digit( (string) $arg1 )) { |
|
| 805 | + } elseif ( ctype_digit( (string) $arg1 )) { |
|
| 755 | 806 | $argType = 'INDEX'; |
| 756 | 807 | $index = (int) $arg1; |
| 757 | 808 | unset( $this->compix ); |
| 758 | - } |
|
| 759 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 809 | + } elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 760 | 810 | unset( $this->compix['INDEX'] ); |
| 761 | 811 | $argType = strtolower( $arg1 ); |
| 762 | - if( !$arg2 ) |
|
| 763 | - $index = $this->compix[$argType] = |
|
| 812 | + if( !$arg2 ) { |
|
| 813 | + $index = $this->compix[$argType] = |
|
| 764 | 814 | ( isset( $this->compix[$argType] )) ? $this->compix[$argType] + 1 : 1; |
| 765 | - else |
|
| 766 | - $index = (int) $arg2; |
|
| 815 | + } else { |
|
| 816 | + $index = (int) $arg2; |
|
| 817 | + } |
|
| 767 | 818 | } |
| 768 | 819 | $index -= 1; |
| 769 | 820 | $ckeys = array_keys( $this->components ); |
| 770 | - if( !empty( $index) && ( $index > end( $ckeys ))) |
|
| 771 | - return FALSE; |
|
| 821 | + if( !empty( $index) && ( $index > end( $ckeys ))) { |
|
| 822 | + return FALSE; |
|
| 823 | + } |
|
| 772 | 824 | $cix1gC = 0; |
| 773 | 825 | foreach ( $this->components as $cix => $component) { |
| 774 | - if( empty( $component )) continue; |
|
| 826 | + if( empty( $component )) { |
|
| 827 | + continue; |
|
| 828 | + } |
|
| 775 | 829 | unset( $component->propix ); |
| 776 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) |
|
| 777 | - return $component->copy(); |
|
| 778 | - elseif( $argType == $component->objName ) { |
|
| 779 | - if( $index == $cix1gC ) |
|
| 780 | - return $component->copy(); |
|
| 830 | + if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 831 | + return $component->copy(); |
|
| 832 | + } elseif( $argType == $component->objName ) { |
|
| 833 | + if( $index == $cix1gC ) { |
|
| 834 | + return $component->copy(); |
|
| 835 | + } |
|
| 781 | 836 | $cix1gC++; |
| 782 | - } |
|
| 783 | - elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 837 | + } elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 784 | 838 | unset( $component->propix ); |
| 785 | 839 | return $component->copy(); |
| 786 | 840 | } |
@@ -815,46 +869,68 @@ discard block |
||
| 815 | 869 | */ |
| 816 | 870 | function selectComponents( $startY=FALSE, $startM=FALSE, $startD=FALSE, $endY=FALSE, $endM=FALSE, $endD=FALSE, $cType=FALSE, $flat=FALSE, $any=TRUE, $split=TRUE ) { |
| 817 | 871 | /* check if empty calendar */ |
| 818 | - if( 0 >= count( $this->components )) return FALSE; |
|
| 872 | + if( 0 >= count( $this->components )) { |
|
| 873 | + return FALSE; |
|
| 874 | + } |
|
| 819 | 875 | /* check default dates */ |
| 820 | - if( !$startY ) $startY = date( 'Y' ); |
|
| 821 | - if( !$startM ) $startM = date( 'm' ); |
|
| 822 | - if( !$startD ) $startD = date( 'd' ); |
|
| 876 | + if( !$startY ) { |
|
| 877 | + $startY = date( 'Y' ); |
|
| 878 | + } |
|
| 879 | + if( !$startM ) { |
|
| 880 | + $startM = date( 'm' ); |
|
| 881 | + } |
|
| 882 | + if( !$startD ) { |
|
| 883 | + $startD = date( 'd' ); |
|
| 884 | + } |
|
| 823 | 885 | $startDate = mktime( 0, 0, 0, $startM, $startD, $startY ); |
| 824 | - if( !$endY ) $endY = $startY; |
|
| 825 | - if( !$endM ) $endM = $startM; |
|
| 826 | - if( !$endD ) $endD = $startD; |
|
| 886 | + if( !$endY ) { |
|
| 887 | + $endY = $startY; |
|
| 888 | + } |
|
| 889 | + if( !$endM ) { |
|
| 890 | + $endM = $startM; |
|
| 891 | + } |
|
| 892 | + if( !$endD ) { |
|
| 893 | + $endD = $startD; |
|
| 894 | + } |
|
| 827 | 895 | $endDate = mktime( 23, 59, 59, $endM, $endD, $endY ); |
| 828 | 896 | /* check component types */ |
| 829 | 897 | $validTypes = array('vevent', 'vtodo', 'vjournal', 'vfreebusy' ); |
| 830 | 898 | if( is_array( $cType )) { |
| 831 | 899 | foreach( $cType as $cix => $theType ) { |
| 832 | 900 | $cType[$cix] = $theType = strtolower( $theType ); |
| 833 | - if( !in_array( $theType, $validTypes )) |
|
| 834 | - $cType[$cix] = 'vevent'; |
|
| 901 | + if( !in_array( $theType, $validTypes )) { |
|
| 902 | + $cType[$cix] = 'vevent'; |
|
| 903 | + } |
|
| 835 | 904 | } |
| 836 | 905 | $cType = array_unique( $cType ); |
| 837 | - } |
|
| 838 | - elseif( !empty( $cType )) { |
|
| 906 | + } elseif( !empty( $cType )) { |
|
| 839 | 907 | $cType = strtolower( $cType ); |
| 840 | - if( !in_array( $cType, $validTypes )) |
|
| 841 | - $cType = array( 'vevent' ); |
|
| 842 | - else |
|
| 843 | - $cType = array( $cType ); |
|
| 844 | - } |
|
| 845 | - else |
|
| 846 | - $cType = $validTypes; |
|
| 847 | - if( 0 >= count( $cType )) |
|
| 848 | - $cType = $validTypes; |
|
| 908 | + if( !in_array( $cType, $validTypes )) { |
|
| 909 | + $cType = array( 'vevent' ); |
|
| 910 | + } else { |
|
| 911 | + $cType = array( $cType ); |
|
| 912 | + } |
|
| 913 | + } else { |
|
| 914 | + $cType = $validTypes; |
|
| 915 | + } |
|
| 916 | + if( 0 >= count( $cType )) { |
|
| 917 | + $cType = $validTypes; |
|
| 918 | + } |
|
| 849 | 919 | /* iterate components */ |
| 850 | 920 | $result = array(); |
| 851 | 921 | foreach ( $this->components as $cix => $component ) { |
| 852 | - if( empty( $component )) continue; |
|
| 922 | + if( empty( $component )) { |
|
| 923 | + continue; |
|
| 924 | + } |
|
| 853 | 925 | unset( $component->propix, $start ); |
| 854 | 926 | /* deselect unvalid type components */ |
| 855 | - if( !in_array( $component->objName, $cType )) continue; |
|
| 927 | + if( !in_array( $component->objName, $cType )) { |
|
| 928 | + continue; |
|
| 929 | + } |
|
| 856 | 930 | /* deselect components without dtstart set */ |
| 857 | - if( FALSE === ( $start = $component->getProperty( 'dtstart' ))) continue; |
|
| 931 | + if( FALSE === ( $start = $component->getProperty( 'dtstart' ))) { |
|
| 932 | + continue; |
|
| 933 | + } |
|
| 858 | 934 | $dtendExist = $dueExist = $durationExist = $endAllDayEvent = FALSE; |
| 859 | 935 | unset( $end, $startWdate, $endWdate, $rdurWsecs, $rdur, $exdatelist, $workstart, $workend ); // clean up |
| 860 | 936 | $startWdate = $component->_date2timestamp( $start ); |
@@ -888,8 +964,9 @@ discard block |
||
| 888 | 964 | } |
| 889 | 965 | if( empty( $end )) { |
| 890 | 966 | $end = $component->getProperty( 'duration', FALSE, FALSE, TRUE );// in dtend (array) format |
| 891 | - if( !empty( $end )) |
|
| 892 | - $durationExist = TRUE; |
|
| 967 | + if( !empty( $end )) { |
|
| 968 | + $durationExist = TRUE; |
|
| 969 | + } |
|
| 893 | 970 | // if( !empty($end)) echo 'selectComp 4 start='.implode('-',$start).' end='.implode('-',$end)."<br />\n"; // test ### |
| 894 | 971 | } |
| 895 | 972 | if( empty( $end )) { // assume one day duration if missing end date |
@@ -907,55 +984,75 @@ discard block |
||
| 907 | 984 | $exdatelist = array(); |
| 908 | 985 | $workstart = $component->_timestamp2date(( $startDate - $rdurWsecs ), 6); |
| 909 | 986 | $workend = $component->_timestamp2date(( $endDate + $rdurWsecs ), 6); |
| 910 | - while( FALSE !== ( $exrule = $component->getProperty( 'exrule' ))) // check exrule |
|
| 987 | + while( FALSE !== ( $exrule = $component->getProperty( 'exrule' ))) { |
|
| 988 | + // check exrule |
|
| 911 | 989 | $component->_recur2date( $exdatelist, $exrule, $start, $workstart, $workend ); |
| 990 | + } |
|
| 912 | 991 | while( FALSE !== ( $exdate = $component->getProperty( 'exdate' ))) { // check exdate |
| 913 | 992 | foreach( $exdate as $theExdate ) { |
| 914 | 993 | $exWdate = $component->_date2timestamp( $theExdate ); |
| 915 | - if((( $startDate - $rdurWsecs ) <= $exWdate ) && ( $endDate >= $exWdate )) |
|
| 916 | - $exdatelist[$exWdate] = TRUE; |
|
| 994 | + if((( $startDate - $rdurWsecs ) <= $exWdate ) && ( $endDate >= $exWdate )) { |
|
| 995 | + $exdatelist[$exWdate] = TRUE; |
|
| 996 | + } |
|
| 917 | 997 | } |
| 918 | 998 | } |
| 919 | 999 | /* if 'any' components, check repeating components, removing all excluding dates */ |
| 920 | 1000 | if( TRUE === $any ) { |
| 921 | 1001 | /* make a list of optional repeating dates for component occurence, rrule, rdate */ |
| 922 | 1002 | $recurlist = array(); |
| 923 | - while( FALSE !== ( $rrule = $component->getProperty( 'rrule' ))) // check rrule |
|
| 1003 | + while( FALSE !== ( $rrule = $component->getProperty( 'rrule' ))) { |
|
| 1004 | + // check rrule |
|
| 924 | 1005 | $component->_recur2date( $recurlist, $rrule, $start, $workstart, $workend ); |
| 925 | - foreach( $recurlist as $recurkey => $recurvalue ) // key=match date as timestamp |
|
| 926 | - $recurlist[$recurkey] = $rdurWsecs; // add duration in seconds |
|
| 1006 | + } |
|
| 1007 | + foreach( $recurlist as $recurkey => $recurvalue ) { |
|
| 1008 | + // key=match date as timestamp |
|
| 1009 | + $recurlist[$recurkey] = $rdurWsecs; |
|
| 1010 | + } |
|
| 1011 | + // add duration in seconds |
|
| 927 | 1012 | while( FALSE !== ( $rdate = $component->getProperty( 'rdate' ))) { // check rdate |
| 928 | 1013 | foreach( $rdate as $theRdate ) { |
| 929 | 1014 | if( is_array( $theRdate ) && ( 2 == count( $theRdate )) && // all days within PERIOD |
| 930 | 1015 | array_key_exists( '0', $theRdate ) && array_key_exists( '1', $theRdate )) { |
| 931 | 1016 | $rstart = $component->_date2timestamp( $theRdate[0] ); |
| 932 | - if(( $rstart < ( $startDate - $rdurWsecs )) || ( $rstart > $endDate )) |
|
| 933 | - continue; |
|
| 934 | - if( isset( $theRdate[1]['year'] )) // date-date period |
|
| 1017 | + if(( $rstart < ( $startDate - $rdurWsecs )) || ( $rstart > $endDate )) { |
|
| 1018 | + continue; |
|
| 1019 | + } |
|
| 1020 | + if( isset( $theRdate[1]['year'] )) { |
|
| 1021 | + // date-date period |
|
| 935 | 1022 | $rend = $component->_date2timestamp( $theRdate[1] ); |
| 936 | - else { // date-duration period |
|
| 1023 | + } else { // date-duration period |
|
| 937 | 1024 | $rend = $component->duration2date( $theRdate[0], $theRdate[1] ); |
| 938 | 1025 | $rend = $component->_date2timestamp( $rend ); |
| 939 | 1026 | } |
| 940 | - if((( $startDate - $rdurWsecs ) <= $rstart ) && ( $endDate >= $rstart )) |
|
| 941 | - $recurlist[$rstart] = ( $rstart - $rend ); // set start date + rdate duration in seconds |
|
| 1027 | + if((( $startDate - $rdurWsecs ) <= $rstart ) && ( $endDate >= $rstart )) { |
|
| 1028 | + $recurlist[$rstart] = ( $rstart - $rend ); |
|
| 1029 | + } |
|
| 1030 | + // set start date + rdate duration in seconds |
|
| 942 | 1031 | } // PERIOD end |
| 943 | 1032 | else { // single date |
| 944 | 1033 | $theRdate = $component->_date2timestamp( $theRdate ); |
| 945 | - if((( $startDate - $rdurWsecs ) <= $theRdate ) && ( $endDate >= $theRdate )) |
|
| 946 | - $recurlist[$theRdate] = $rdurWsecs; // set start date + event duration in seconds |
|
| 1034 | + if((( $startDate - $rdurWsecs ) <= $theRdate ) && ( $endDate >= $theRdate )) { |
|
| 1035 | + $recurlist[$theRdate] = $rdurWsecs; |
|
| 1036 | + } |
|
| 1037 | + // set start date + event duration in seconds |
|
| 947 | 1038 | } |
| 948 | 1039 | } |
| 949 | 1040 | } |
| 950 | 1041 | if( 0 < count( $recurlist )) { |
| 951 | 1042 | ksort( $recurlist ); |
| 952 | 1043 | foreach( $recurlist as $recurkey => $durvalue ) { |
| 953 | - if((( $startDate - $rdurWsecs ) > $recurkey ) || ( $endDate < $recurkey )) // not within period |
|
| 1044 | + if((( $startDate - $rdurWsecs ) > $recurkey ) || ( $endDate < $recurkey )) { |
|
| 1045 | + // not within period |
|
| 954 | 1046 | continue; |
| 955 | - if( isset( $exdatelist[$recurkey] )) // check excluded dates |
|
| 1047 | + } |
|
| 1048 | + if( isset( $exdatelist[$recurkey] )) { |
|
| 1049 | + // check excluded dates |
|
| 956 | 1050 | continue; |
| 957 | - if( $startWdate >= $recurkey ) // exclude component start date |
|
| 1051 | + } |
|
| 1052 | + if( $startWdate >= $recurkey ) { |
|
| 1053 | + // exclude component start date |
|
| 958 | 1054 | continue; |
| 1055 | + } |
|
| 959 | 1056 | $component2 = $component->copy(); |
| 960 | 1057 | $rstart = $component2->_timestamp2date( $recurkey, 6); |
| 961 | 1058 | $datevalue = $rstart['month'].'/'.$rstart['day'].'/'.$rstart['year']; |
@@ -965,16 +1062,16 @@ discard block |
||
| 965 | 1062 | $datevalue .= ( isset( $rstart['sec'] )) ? ':'.$rstart['sec'] : ':00'; |
| 966 | 1063 | } |
| 967 | 1064 | $datestring = date( $startDateFormat, strtotime( $datevalue )); |
| 968 | - if( isset( $start['tz'] )) |
|
| 969 | - $datestring .= ' '.$start['tz']; |
|
| 1065 | + if( isset( $start['tz'] )) { |
|
| 1066 | + $datestring .= ' '.$start['tz']; |
|
| 1067 | + } |
|
| 970 | 1068 | $component2->setProperty( 'X-CURRENT-DTSTART', $datestring ); |
| 971 | 1069 | $rend = $component2->_timestamp2date(( $recurkey + $durvalue ), 6); |
| 972 | 1070 | if( $dtendExist || $dueExist ) { |
| 973 | 1071 | if( $endAllDayEvent ) { |
| 974 | 1072 | $rend2 = mktime( 0, 0, 0, $rend['month'], ($rend['day'] + 1), $rend['year'] ); |
| 975 | 1073 | $datevalue = date( 'm', $rend2 ).'/'.date( 'd', $rend2 ).'/'.date( 'Y', $rend2 ); |
| 976 | - } |
|
| 977 | - else { |
|
| 1074 | + } else { |
|
| 978 | 1075 | $datevalue = $rend['month'].'/'.$rend['day'].'/'.$rend['year']; |
| 979 | 1076 | if( isset( $end['hour'] ) || isset( $end['min'] ) || isset( $end['sec'] )) { |
| 980 | 1077 | $datevalue .= ( isset( $rend['hour'] )) ? ' '.$rend['hour'] : ' 00'; |
@@ -983,30 +1080,37 @@ discard block |
||
| 983 | 1080 | } |
| 984 | 1081 | } |
| 985 | 1082 | $datestring = date( $endDateFormat, strtotime( $datevalue )); |
| 986 | - if( isset( $end['tz'] )) |
|
| 987 | - $datestring .= ' '.$end['tz']; |
|
| 988 | - if( $dtendExist ) |
|
| 989 | - $component2->setProperty( 'X-CURRENT-DTEND', $datestring ); |
|
| 990 | - elseif( $dueExist ) |
|
| 991 | - $component2->setProperty( 'X-CURRENT-DUE', $datestring ); |
|
| 1083 | + if( isset( $end['tz'] )) { |
|
| 1084 | + $datestring .= ' '.$end['tz']; |
|
| 1085 | + } |
|
| 1086 | + if( $dtendExist ) { |
|
| 1087 | + $component2->setProperty( 'X-CURRENT-DTEND', $datestring ); |
|
| 1088 | + } elseif( $dueExist ) { |
|
| 1089 | + $component2->setProperty( 'X-CURRENT-DUE', $datestring ); |
|
| 1090 | + } |
|
| 992 | 1091 | } |
| 993 | 1092 | $rend = $component2->_date2timestamp( $rend ); |
| 994 | 1093 | $rstart = $recurkey; |
| 995 | 1094 | /* add repeating components within valid dates to output array, only start date */ |
| 996 | - if( $flat ) |
|
| 997 | - $result[] = $component2->copy(); // copy to output |
|
| 1095 | + if( $flat ) { |
|
| 1096 | + $result[] = $component2->copy(); |
|
| 1097 | + } |
|
| 1098 | + // copy to output |
|
| 998 | 1099 | elseif( $split ) { |
| 999 | - if( $rend > $endDate ) |
|
| 1000 | - $rend = $endDate; |
|
| 1100 | + if( $rend > $endDate ) { |
|
| 1101 | + $rend = $endDate; |
|
| 1102 | + } |
|
| 1001 | 1103 | while( $rstart <= $rend ) { // iterate |
| 1002 | 1104 | $wd = getdate( $rstart ); |
| 1003 | 1105 | if(( $rstart > $startDate ) && // date after dtstart |
| 1004 | - !isset( $exdatelist[$rstart] )) // check exclude date |
|
| 1005 | - $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component2->copy(); // copy to output |
|
| 1106 | + !isset( $exdatelist[$rstart] )) { |
|
| 1107 | + // check exclude date |
|
| 1108 | + $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component2->copy(); |
|
| 1109 | + } |
|
| 1110 | + // copy to output |
|
| 1006 | 1111 | $rstart += ( 24*60*60 ); // step one day |
| 1007 | 1112 | } |
| 1008 | - } |
|
| 1009 | - elseif(( $rstart >= $startDate ) && // date within period |
|
| 1113 | + } elseif(( $rstart >= $startDate ) && // date within period |
|
| 1010 | 1114 | !isset( $exdatelist[$rstart] )) { // check exclude date |
| 1011 | 1115 | $wd = getdate( $rstart ); |
| 1012 | 1116 | $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component2->copy(); // copy to output |
@@ -1014,19 +1118,29 @@ discard block |
||
| 1014 | 1118 | } |
| 1015 | 1119 | } |
| 1016 | 1120 | /* deselect components with startdate/enddate not within period */ |
| 1017 | - if(( $endWdate < $startDate ) || ( $startWdate > $endDate )) continue; |
|
| 1121 | + if(( $endWdate < $startDate ) || ( $startWdate > $endDate )) { |
|
| 1122 | + continue; |
|
| 1123 | + } |
|
| 1018 | 1124 | } |
| 1019 | 1125 | /* deselect components with startdate not within period */ |
| 1020 | - elseif(( $startWdate < $startDate ) || ( $startWdate > $endDate )) continue; |
|
| 1126 | + elseif(( $startWdate < $startDate ) || ( $startWdate > $endDate )) { |
|
| 1127 | + continue; |
|
| 1128 | + } |
|
| 1021 | 1129 | /* add selected components within valid dates to output array */ |
| 1022 | - if( $flat ) |
|
| 1023 | - $result[] = $component->copy(); // copy to output; |
|
| 1130 | + if( $flat ) { |
|
| 1131 | + $result[] = $component->copy(); |
|
| 1132 | + } |
|
| 1133 | + // copy to output; |
|
| 1024 | 1134 | elseif( $split ) { |
| 1025 | - if( $endWdate > $endDate ) |
|
| 1026 | - $endWdate = $endDate; // use period end date |
|
| 1135 | + if( $endWdate > $endDate ) { |
|
| 1136 | + $endWdate = $endDate; |
|
| 1137 | + } |
|
| 1138 | + // use period end date |
|
| 1027 | 1139 | if( !isset( $exdatelist[$startWdate] )) { // check excluded dates |
| 1028 | - if( $startWdate < $startDate ) |
|
| 1029 | - $startWdate = $startDate; // use period start date |
|
| 1140 | + if( $startWdate < $startDate ) { |
|
| 1141 | + $startWdate = $startDate; |
|
| 1142 | + } |
|
| 1143 | + // use period start date |
|
| 1030 | 1144 | while( $startWdate <= $endWdate ) { // iterate |
| 1031 | 1145 | $wd = getdate( $startWdate ); |
| 1032 | 1146 | $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component->copy(); // copy to output |
@@ -1040,8 +1154,9 @@ discard block |
||
| 1040 | 1154 | $result[$wd['year']][$wd['mon']][$wd['mday']][] = $component->copy(); // copy to output |
| 1041 | 1155 | } |
| 1042 | 1156 | } |
| 1043 | - if( 0 >= count( $result )) return FALSE; |
|
| 1044 | - elseif( !$flat ) { |
|
| 1157 | + if( 0 >= count( $result )) { |
|
| 1158 | + return FALSE; |
|
| 1159 | + } elseif( !$flat ) { |
|
| 1045 | 1160 | foreach( $result as $y => $yeararr ) { |
| 1046 | 1161 | foreach( $yeararr as $m => $montharr ) { |
| 1047 | 1162 | ksort( $result[$y][$m] ); |
@@ -1063,8 +1178,9 @@ discard block |
||
| 1063 | 1178 | * @return void |
| 1064 | 1179 | */ |
| 1065 | 1180 | function setComponent( $component, $arg1=FALSE, $arg2=FALSE ) { |
| 1066 | - if( '' >= $component->getConfig( 'language')) |
|
| 1067 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 1181 | + if( '' >= $component->getConfig( 'language')) { |
|
| 1182 | + $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 1183 | + } |
|
| 1068 | 1184 | $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
| 1069 | 1185 | $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
| 1070 | 1186 | $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
@@ -1083,27 +1199,26 @@ discard block |
||
| 1083 | 1199 | if ( ctype_digit( (string) $arg1 )) { |
| 1084 | 1200 | $argType = 'INDEX'; |
| 1085 | 1201 | $index = (int) $arg1 - 1; |
| 1086 | - } |
|
| 1087 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 1202 | + } elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 1088 | 1203 | $argType = strtolower( $arg1 ); |
| 1089 | 1204 | $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0; |
| 1090 | 1205 | } |
| 1091 | 1206 | $cix1sC = 0; |
| 1092 | 1207 | foreach ( $this->components as $cix => $component2) { |
| 1093 | - if( empty( $component2 )) continue; |
|
| 1208 | + if( empty( $component2 )) { |
|
| 1209 | + continue; |
|
| 1210 | + } |
|
| 1094 | 1211 | unset( $component2->propix ); |
| 1095 | 1212 | if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
| 1096 | 1213 | $this->components[$cix] = $component->copy(); |
| 1097 | 1214 | return TRUE; |
| 1098 | - } |
|
| 1099 | - elseif( $argType == $component2->objName ) { |
|
| 1215 | + } elseif( $argType == $component2->objName ) { |
|
| 1100 | 1216 | if( $index == $cix1sC ) { |
| 1101 | 1217 | $this->components[$cix] = $component->copy(); |
| 1102 | 1218 | return TRUE; |
| 1103 | 1219 | } |
| 1104 | 1220 | $cix1sC++; |
| 1105 | - } |
|
| 1106 | - elseif( !$argType && ( $arg1 == $component2->getProperty( 'uid' ))) { |
|
| 1221 | + } elseif( !$argType && ( $arg1 == $component2->getProperty( 'uid' ))) { |
|
| 1107 | 1222 | $this->components[$cix] = $component->copy(); |
| 1108 | 1223 | return TRUE; |
| 1109 | 1224 | } |
@@ -1130,73 +1245,124 @@ discard block |
||
| 1130 | 1245 | } |
| 1131 | 1246 | } |
| 1132 | 1247 | function _cmpfcn( $a, $b ) { |
| 1133 | - if( empty( $a )) return -1; |
|
| 1134 | - if( empty( $b )) return 1; |
|
| 1135 | - if( 'vtimezone' == $a->objName) return -1; |
|
| 1136 | - if( 'vtimezone' == $b->objName) return 1; |
|
| 1248 | + if( empty( $a )) { |
|
| 1249 | + return -1; |
|
| 1250 | + } |
|
| 1251 | + if( empty( $b )) { |
|
| 1252 | + return 1; |
|
| 1253 | + } |
|
| 1254 | + if( 'vtimezone' == $a->objName) { |
|
| 1255 | + return -1; |
|
| 1256 | + } |
|
| 1257 | + if( 'vtimezone' == $b->objName) { |
|
| 1258 | + return 1; |
|
| 1259 | + } |
|
| 1137 | 1260 | $astart = ( isset( $a->xprop['X-CURRENT-DTSTART']['value'] )) ? $a->_date_time_string( $a->xprop['X-CURRENT-DTSTART']['value'] ) : null; |
| 1138 | - if( empty( $astart ) && isset( $a->dtstart['value'] )) |
|
| 1139 | - $astart = & $a->dtstart['value']; |
|
| 1261 | + if( empty( $astart ) && isset( $a->dtstart['value'] )) { |
|
| 1262 | + $astart = & $a->dtstart['value']; |
|
| 1263 | + } |
|
| 1140 | 1264 | $bstart = ( isset( $b->xprop['X-CURRENT-DTSTART']['value'] )) ? $b->_date_time_string( $b->xprop['X-CURRENT-DTSTART']['value'] ) : null; |
| 1141 | - if( empty( $bstart ) && isset( $b->dtstart['value'] )) |
|
| 1142 | - $bstart = & $b->dtstart['value']; |
|
| 1143 | - if( empty( $astart )) return -1; |
|
| 1144 | - elseif( empty( $bstart )) return 1; |
|
| 1265 | + if( empty( $bstart ) && isset( $b->dtstart['value'] )) { |
|
| 1266 | + $bstart = & $b->dtstart['value']; |
|
| 1267 | + } |
|
| 1268 | + if( empty( $astart )) { |
|
| 1269 | + return -1; |
|
| 1270 | + } elseif( empty( $bstart )) { |
|
| 1271 | + return 1; |
|
| 1272 | + } |
|
| 1145 | 1273 | foreach( $this->_sortkeys as $key ) { |
| 1146 | - if ( empty( $astart[$key] )) return -1; |
|
| 1147 | - elseif( empty( $bstart[$key] )) return 1; |
|
| 1148 | - if ( $astart[$key] == $bstart[$key]) continue; |
|
| 1149 | - if (( (int) $astart[$key] ) < ((int) $bstart[$key] )) |
|
| 1150 | - return -1; |
|
| 1151 | - elseif(( (int) $astart[$key] ) > ((int) $bstart[$key] )) |
|
| 1152 | - return 1; |
|
| 1274 | + if ( empty( $astart[$key] )) { |
|
| 1275 | + return -1; |
|
| 1276 | + } elseif( empty( $bstart[$key] )) { |
|
| 1277 | + return 1; |
|
| 1278 | + } |
|
| 1279 | + if ( $astart[$key] == $bstart[$key]) { |
|
| 1280 | + continue; |
|
| 1281 | + } |
|
| 1282 | + if (( (int) $astart[$key] ) < ((int) $bstart[$key] )) { |
|
| 1283 | + return -1; |
|
| 1284 | + } elseif(( (int) $astart[$key] ) > ((int) $bstart[$key] )) { |
|
| 1285 | + return 1; |
|
| 1286 | + } |
|
| 1153 | 1287 | } |
| 1154 | 1288 | $c = ( isset( $a->xprop['X-CURRENT-DTEND']['value'] )) ? $a->_date_time_string( $a->xprop['X-CURRENT-DTEND']['value'] ) : null; |
| 1155 | - if( empty( $c ) && !empty( $a->dtend['value'] )) |
|
| 1156 | - $c = & $a->dtend['value']; |
|
| 1157 | - if( empty( $c ) && isset( $a->xprop['X-CURRENT-DUE']['value'] )) |
|
| 1158 | - $c = $a->_date_time_string( $a->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1159 | - if( empty( $c ) && !empty( $a->due['value'] )) |
|
| 1160 | - $c = & $a->due['value']; |
|
| 1161 | - if( empty( $c ) && !empty( $a->duration['value'] )) |
|
| 1162 | - $c = $a->duration2date(); |
|
| 1289 | + if( empty( $c ) && !empty( $a->dtend['value'] )) { |
|
| 1290 | + $c = & $a->dtend['value']; |
|
| 1291 | + } |
|
| 1292 | + if( empty( $c ) && isset( $a->xprop['X-CURRENT-DUE']['value'] )) { |
|
| 1293 | + $c = $a->_date_time_string( $a->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1294 | + } |
|
| 1295 | + if( empty( $c ) && !empty( $a->due['value'] )) { |
|
| 1296 | + $c = & $a->due['value']; |
|
| 1297 | + } |
|
| 1298 | + if( empty( $c ) && !empty( $a->duration['value'] )) { |
|
| 1299 | + $c = $a->duration2date(); |
|
| 1300 | + } |
|
| 1163 | 1301 | $d = ( isset( $b->xprop['X-CURRENT-DTEND']['value'] )) ? $b->_date_time_string( $b->xprop['X-CURRENT-DTEND']['value'] ) : null; |
| 1164 | - if( empty( $d ) && !empty( $b->dtend['value'] )) |
|
| 1165 | - $d = & $b->dtend['value']; |
|
| 1166 | - if( empty( $d ) && isset( $b->xprop['X-CURRENT-DUE']['value'] )) |
|
| 1167 | - $d = $b->_date_time_string( $b->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1168 | - if( empty( $d ) && !empty( $b->due['value'] )) |
|
| 1169 | - $d = & $b->due['value']; |
|
| 1170 | - if( empty( $d ) && !empty( $b->duration['value'] )) |
|
| 1171 | - $d = $b->duration2date(); |
|
| 1172 | - if( empty( $c )) return -1; |
|
| 1173 | - elseif( empty( $d )) return 1; |
|
| 1302 | + if( empty( $d ) && !empty( $b->dtend['value'] )) { |
|
| 1303 | + $d = & $b->dtend['value']; |
|
| 1304 | + } |
|
| 1305 | + if( empty( $d ) && isset( $b->xprop['X-CURRENT-DUE']['value'] )) { |
|
| 1306 | + $d = $b->_date_time_string( $b->xprop['X-CURRENT-DUE']['value'] ); |
|
| 1307 | + } |
|
| 1308 | + if( empty( $d ) && !empty( $b->due['value'] )) { |
|
| 1309 | + $d = & $b->due['value']; |
|
| 1310 | + } |
|
| 1311 | + if( empty( $d ) && !empty( $b->duration['value'] )) { |
|
| 1312 | + $d = $b->duration2date(); |
|
| 1313 | + } |
|
| 1314 | + if( empty( $c )) { |
|
| 1315 | + return -1; |
|
| 1316 | + } elseif( empty( $d )) { |
|
| 1317 | + return 1; |
|
| 1318 | + } |
|
| 1174 | 1319 | foreach( $this->_sortkeys as $key ) { |
| 1175 | - if ( !isset( $c[$key] )) return -1; |
|
| 1176 | - elseif( !isset( $d[$key] )) return 1; |
|
| 1177 | - if ( $c[$key] == $d[$key] ) continue; |
|
| 1178 | - if (( (int) $c[$key] ) < ((int) $d[$key])) return -1; |
|
| 1179 | - elseif(( (int) $c[$key] ) > ((int) $d[$key])) return 1; |
|
| 1180 | - } |
|
| 1181 | - if( isset( $a->created['value'] )) |
|
| 1182 | - $e = & $a->created['value']; |
|
| 1183 | - else |
|
| 1184 | - $e = & $a->dtstamp['value']; |
|
| 1185 | - if( isset( $b->created['value'] )) |
|
| 1186 | - $f = & $b->created['value']; |
|
| 1187 | - else |
|
| 1188 | - $f = & $b->dtstamp['value']; |
|
| 1320 | + if ( !isset( $c[$key] )) { |
|
| 1321 | + return -1; |
|
| 1322 | + } elseif( !isset( $d[$key] )) { |
|
| 1323 | + return 1; |
|
| 1324 | + } |
|
| 1325 | + if ( $c[$key] == $d[$key] ) { |
|
| 1326 | + continue; |
|
| 1327 | + } |
|
| 1328 | + if (( (int) $c[$key] ) < ((int) $d[$key])) { |
|
| 1329 | + return -1; |
|
| 1330 | + } elseif(( (int) $c[$key] ) > ((int) $d[$key])) { |
|
| 1331 | + return 1; |
|
| 1332 | + } |
|
| 1333 | + } |
|
| 1334 | + if( isset( $a->created['value'] )) { |
|
| 1335 | + $e = & $a->created['value']; |
|
| 1336 | + } else { |
|
| 1337 | + $e = & $a->dtstamp['value']; |
|
| 1338 | + } |
|
| 1339 | + if( isset( $b->created['value'] )) { |
|
| 1340 | + $f = & $b->created['value']; |
|
| 1341 | + } else { |
|
| 1342 | + $f = & $b->dtstamp['value']; |
|
| 1343 | + } |
|
| 1189 | 1344 | foreach( $this->_sortkeys as $key ) { |
| 1190 | - if( !isset( $e[$key] )) return -1; |
|
| 1191 | - elseif( !isset( $f[$key] )) return 1; |
|
| 1192 | - if ( $e[$key] == $f[$key] ) continue; |
|
| 1193 | - if (( (int) $e[$key] ) < ((int) $f[$key])) return -1; |
|
| 1194 | - elseif(( (int) $e[$key] ) > ((int) $f[$key])) return 1; |
|
| 1345 | + if( !isset( $e[$key] )) { |
|
| 1346 | + return -1; |
|
| 1347 | + } elseif( !isset( $f[$key] )) { |
|
| 1348 | + return 1; |
|
| 1349 | + } |
|
| 1350 | + if ( $e[$key] == $f[$key] ) { |
|
| 1351 | + continue; |
|
| 1352 | + } |
|
| 1353 | + if (( (int) $e[$key] ) < ((int) $f[$key])) { |
|
| 1354 | + return -1; |
|
| 1355 | + } elseif(( (int) $e[$key] ) > ((int) $f[$key])) { |
|
| 1356 | + return 1; |
|
| 1357 | + } |
|
| 1195 | 1358 | } |
| 1196 | 1359 | if (( $a->uid['value'] ) < |
| 1197 | - ( $b->uid['value'] )) return -1; |
|
| 1198 | - elseif(( $a->uid['value'] ) > |
|
| 1199 | - ( $b->uid['value'] )) return 1; |
|
| 1360 | + ( $b->uid['value'] )) { |
|
| 1361 | + return -1; |
|
| 1362 | + } elseif(( $a->uid['value'] ) > |
|
| 1363 | + ( $b->uid['value'] )) { |
|
| 1364 | + return 1; |
|
| 1365 | + } |
|
| 1200 | 1366 | return 0; |
| 1201 | 1367 | } |
| 1202 | 1368 | /** |
@@ -1211,42 +1377,57 @@ discard block |
||
| 1211 | 1377 | function parse( $filename=FALSE ) { |
| 1212 | 1378 | if( !$filename ) { |
| 1213 | 1379 | /* directory/filename previous set via setConfig directory+filename / url */ |
| 1214 | - if( FALSE === ( $filename = $this->getConfig( 'url' ))) |
|
| 1215 | - $filename = $this->getConfig( 'dirfile' ); |
|
| 1216 | - } |
|
| 1217 | - elseif(( 'http://' == strtolower( substr( $filename, 0, 7 ))) || |
|
| 1380 | + if( FALSE === ( $filename = $this->getConfig( 'url' ))) { |
|
| 1381 | + $filename = $this->getConfig( 'dirfile' ); |
|
| 1382 | + } |
|
| 1383 | + } elseif(( 'http://' == strtolower( substr( $filename, 0, 7 ))) || |
|
| 1218 | 1384 | ( 'webcal://' == strtolower( substr( $filename, 0, 9 )))) { |
| 1219 | 1385 | /* remote file - URL */ |
| 1220 | 1386 | $this->setConfig( 'URL', $filename ); |
| 1221 | - if( !$filename = $this->getConfig( 'url' )) |
|
| 1222 | - return FALSE; /* err 2 */ |
|
| 1223 | - } |
|
| 1224 | - else { |
|
| 1387 | + if( !$filename = $this->getConfig( 'url' )) { |
|
| 1388 | + return FALSE; |
|
| 1389 | + } |
|
| 1390 | + /* err 2 */ |
|
| 1391 | + } else { |
|
| 1225 | 1392 | /* local directory/filename */ |
| 1226 | 1393 | $parts = pathinfo( $filename ); |
| 1227 | 1394 | if( !empty( $parts['dirname'] ) && ( '.' != $parts['dirname'] )) { |
| 1228 | - if( !$this->setConfig( 'directory', $parts['dirname'] )) |
|
| 1229 | - return FALSE; /* err 3 */ |
|
| 1395 | + if( !$this->setConfig( 'directory', $parts['dirname'] )) { |
|
| 1396 | + return FALSE; |
|
| 1397 | + } |
|
| 1398 | + /* err 3 */ |
|
| 1399 | + } |
|
| 1400 | + if( !$this->setConfig( 'filename', $parts['basename'] )) { |
|
| 1401 | + return FALSE; |
|
| 1230 | 1402 | } |
| 1231 | - if( !$this->setConfig( 'filename', $parts['basename'] )) |
|
| 1232 | - return FALSE; /* err 4 */ |
|
| 1403 | + /* err 4 */ |
|
| 1233 | 1404 | } |
| 1234 | 1405 | if( 'http://' != substr( $filename, 0, 7 )) { |
| 1235 | 1406 | /* local file error tests */ |
| 1236 | - if( !is_file( $filename )) /* err 5 */ |
|
| 1407 | + if( !is_file( $filename )) { |
|
| 1408 | + /* err 5 */ |
|
| 1237 | 1409 | return FALSE; |
| 1238 | - if( !is_readable( $filename )) |
|
| 1239 | - return FALSE; /* err 6 */ |
|
| 1240 | - if( !filesize( $filename )) |
|
| 1241 | - return FALSE; /* err 7 */ |
|
| 1410 | + } |
|
| 1411 | + if( !is_readable( $filename )) { |
|
| 1412 | + return FALSE; |
|
| 1413 | + } |
|
| 1414 | + /* err 6 */ |
|
| 1415 | + if( !filesize( $filename )) { |
|
| 1416 | + return FALSE; |
|
| 1417 | + } |
|
| 1418 | + /* err 7 */ |
|
| 1242 | 1419 | clearstatcache(); |
| 1243 | 1420 | } |
| 1244 | 1421 | /* READ FILE */ |
| 1245 | - if( FALSE === ( $rows = file( $filename ))) |
|
| 1246 | - return FALSE; /* err 1 */ |
|
| 1422 | + if( FALSE === ( $rows = file( $filename ))) { |
|
| 1423 | + return FALSE; |
|
| 1424 | + } |
|
| 1425 | + /* err 1 */ |
|
| 1247 | 1426 | /* identify BEGIN:VCALENDAR, MUST be first row */ |
| 1248 | - if( 'BEGIN:VCALENDAR' != strtoupper( trim( $rows[0] ))) |
|
| 1249 | - return FALSE; /* err 8 */ |
|
| 1427 | + if( 'BEGIN:VCALENDAR' != strtoupper( trim( $rows[0] ))) { |
|
| 1428 | + return FALSE; |
|
| 1429 | + } |
|
| 1430 | + /* err 8 */ |
|
| 1250 | 1431 | /* remove empty trailing lines */ |
| 1251 | 1432 | while( '' == trim( $rows[count( $rows ) - 1] )) { |
| 1252 | 1433 | unset( $rows[count( $rows ) - 1] ); |
@@ -1256,34 +1437,37 @@ discard block |
||
| 1256 | 1437 | if( 'END:VCALENDAR' != strtoupper( trim( $rows[count( $rows ) - 1] ))) { |
| 1257 | 1438 | return FALSE; /* err 9 */ |
| 1258 | 1439 | } |
| 1259 | - if( 3 > count( $rows )) |
|
| 1260 | - return FALSE; /* err 10 */ |
|
| 1440 | + if( 3 > count( $rows )) { |
|
| 1441 | + return FALSE; |
|
| 1442 | + } |
|
| 1443 | + /* err 10 */ |
|
| 1261 | 1444 | $comp = $subcomp = null; |
| 1262 | 1445 | $actcomp = & $this; |
| 1263 | 1446 | $nl = $this->getConfig( 'nl' ); |
| 1264 | 1447 | $calsync = 0; |
| 1265 | 1448 | /* identify components and update unparsed data within component */ |
| 1266 | 1449 | foreach( $rows as $line ) { |
| 1267 | - if( '' == trim( $line )) |
|
| 1268 | - continue; |
|
| 1269 | - if( $nl == substr( $line, 0 - strlen( $nl ))) |
|
| 1270 | - $line = substr( $line, 0, ( strlen( $line ) - strlen( $nl ))).'\n'; |
|
| 1450 | + if( '' == trim( $line )) { |
|
| 1451 | + continue; |
|
| 1452 | + } |
|
| 1453 | + if( $nl == substr( $line, 0 - strlen( $nl ))) { |
|
| 1454 | + $line = substr( $line, 0, ( strlen( $line ) - strlen( $nl ))).'\n'; |
|
| 1455 | + } |
|
| 1271 | 1456 | if( 'BEGIN:VCALENDAR' == strtoupper( substr( $line, 0, 15 ))) { |
| 1272 | 1457 | $calsync++; |
| 1273 | 1458 | continue; |
| 1274 | - } |
|
| 1275 | - elseif( 'END:VCALENDAR' == strtoupper( substr( $line, 0, 13 ))) { |
|
| 1459 | + } elseif( 'END:VCALENDAR' == strtoupper( substr( $line, 0, 13 ))) { |
|
| 1276 | 1460 | $calsync--; |
| 1277 | 1461 | continue; |
| 1462 | + } elseif( 1 != $calsync ) { |
|
| 1463 | + return FALSE; |
|
| 1278 | 1464 | } |
| 1279 | - elseif( 1 != $calsync ) |
|
| 1280 | - return FALSE; /* err 20 */ |
|
| 1465 | + /* err 20 */ |
|
| 1281 | 1466 | if( 'END:' == strtoupper( substr( $line, 0, 4 ))) { |
| 1282 | 1467 | if( null != $subcomp ) { |
| 1283 | 1468 | $comp->setComponent( $subcomp ); |
| 1284 | 1469 | $subcomp = null; |
| 1285 | - } |
|
| 1286 | - else { |
|
| 1470 | + } else { |
|
| 1287 | 1471 | $this->setComponent( $comp ); |
| 1288 | 1472 | $comp = null; |
| 1289 | 1473 | } |
@@ -1294,17 +1478,18 @@ discard block |
||
| 1294 | 1478 | $line = str_replace( '\n', '', $line ); |
| 1295 | 1479 | $compname = trim (strtoupper( substr( $line, 6 ))); |
| 1296 | 1480 | if( null != $comp ) { |
| 1297 | - if( 'VALARM' == $compname ) |
|
| 1298 | - $subcomp = new valarm(); |
|
| 1299 | - elseif( 'STANDARD' == $compname ) |
|
| 1300 | - $subcomp = new vtimezone( 'STANDARD' ); |
|
| 1301 | - elseif( 'DAYLIGHT' == $compname ) |
|
| 1302 | - $subcomp = new vtimezone( 'DAYLIGHT' ); |
|
| 1303 | - else |
|
| 1304 | - return FALSE; /* err 6 */ |
|
| 1481 | + if( 'VALARM' == $compname ) { |
|
| 1482 | + $subcomp = new valarm(); |
|
| 1483 | + } elseif( 'STANDARD' == $compname ) { |
|
| 1484 | + $subcomp = new vtimezone( 'STANDARD' ); |
|
| 1485 | + } elseif( 'DAYLIGHT' == $compname ) { |
|
| 1486 | + $subcomp = new vtimezone( 'DAYLIGHT' ); |
|
| 1487 | + } else { |
|
| 1488 | + return FALSE; |
|
| 1489 | + } |
|
| 1490 | + /* err 6 */ |
|
| 1305 | 1491 | $actcomp = & $subcomp; |
| 1306 | - } |
|
| 1307 | - else { |
|
| 1492 | + } else { |
|
| 1308 | 1493 | switch( $compname ) { |
| 1309 | 1494 | case 'VALARM': |
| 1310 | 1495 | $comp = new valarm(); |
@@ -1353,8 +1538,7 @@ discard block |
||
| 1353 | 1538 | $newProp = FALSE; |
| 1354 | 1539 | $lastix++; |
| 1355 | 1540 | $proprows[$lastix] = $line; |
| 1356 | - } |
|
| 1357 | - else { |
|
| 1541 | + } else { |
|
| 1358 | 1542 | /* remove line breaks */ |
| 1359 | 1543 | if(( '\n' == substr( $proprows[$lastix], -2 )) && |
| 1360 | 1544 | ( ' ' == substr( $line, 0, 1 ))) { |
@@ -1366,19 +1550,22 @@ discard block |
||
| 1366 | 1550 | } |
| 1367 | 1551 | $toolbox = new calendarComponent(); |
| 1368 | 1552 | foreach( $proprows as $line ) { |
| 1369 | - if( '\n' == substr( $line, -2 )) |
|
| 1370 | - $line = substr( $line, 0, strlen( $line ) - 2 ); |
|
| 1553 | + if( '\n' == substr( $line, -2 )) { |
|
| 1554 | + $line = substr( $line, 0, strlen( $line ) - 2 ); |
|
| 1555 | + } |
|
| 1371 | 1556 | /* get propname */ |
| 1372 | 1557 | $cix = $propname = null; |
| 1373 | 1558 | for( $cix=0; $cix < strlen( $line ); $cix++ ) { |
| 1374 | - if( in_array( $line{$cix}, array( ':', ';' ))) |
|
| 1375 | - break; |
|
| 1376 | - else |
|
| 1377 | - $propname .= $line{$cix}; |
|
| 1559 | + if( in_array( $line{$cix}, array( ':', ';' ))) { |
|
| 1560 | + break; |
|
| 1561 | + } else { |
|
| 1562 | + $propname .= $line{$cix}; |
|
| 1563 | + } |
|
| 1378 | 1564 | } |
| 1379 | 1565 | /* ignore version/prodid properties */ |
| 1380 | - if( in_array( strtoupper( $propname ), array( 'VERSION', 'PRODID' ))) |
|
| 1381 | - continue; |
|
| 1566 | + if( in_array( strtoupper( $propname ), array( 'VERSION', 'PRODID' ))) { |
|
| 1567 | + continue; |
|
| 1568 | + } |
|
| 1382 | 1569 | $line = substr( $line, $cix); |
| 1383 | 1570 | /* separate attributes from value */ |
| 1384 | 1571 | $attr = array(); |
@@ -1403,20 +1590,22 @@ discard block |
||
| 1403 | 1590 | break; |
| 1404 | 1591 | } |
| 1405 | 1592 | } |
| 1406 | - if( ';' == $line{$cix} ) |
|
| 1407 | - $attr[++$attrix] = null; |
|
| 1408 | - else |
|
| 1409 | - $attr[$attrix] .= $line{$cix}; |
|
| 1593 | + if( ';' == $line{$cix} ) { |
|
| 1594 | + $attr[++$attrix] = null; |
|
| 1595 | + } else { |
|
| 1596 | + $attr[$attrix] .= $line{$cix}; |
|
| 1597 | + } |
|
| 1410 | 1598 | } |
| 1411 | 1599 | |
| 1412 | 1600 | /* make attributes in array format */ |
| 1413 | 1601 | $propattr = array(); |
| 1414 | 1602 | foreach( $attr as $attribute ) { |
| 1415 | 1603 | $attrsplit = explode( '=', $attribute, 2 ); |
| 1416 | - if( 1 < count( $attrsplit )) |
|
| 1417 | - $propattr[$attrsplit[0]] = $attrsplit[1]; |
|
| 1418 | - else |
|
| 1419 | - $propattr[] = $attribute; |
|
| 1604 | + if( 1 < count( $attrsplit )) { |
|
| 1605 | + $propattr[$attrsplit[0]] = $attrsplit[1]; |
|
| 1606 | + } else { |
|
| 1607 | + $propattr[] = $attribute; |
|
| 1608 | + } |
|
| 1420 | 1609 | } |
| 1421 | 1610 | /* update Property */ |
| 1422 | 1611 | if( FALSE !== strpos( $line, ',' )) { |
@@ -1430,13 +1619,14 @@ discard block |
||
| 1430 | 1619 | } |
| 1431 | 1620 | } |
| 1432 | 1621 | if( 1 < count( $content )) { |
| 1433 | - foreach( $content as $cix => $contentPart ) |
|
| 1434 | - $content[$cix] = $toolbox->_strunrep( $contentPart ); |
|
| 1622 | + foreach( $content as $cix => $contentPart ) { |
|
| 1623 | + $content[$cix] = $toolbox->_strunrep( $contentPart ); |
|
| 1624 | + } |
|
| 1435 | 1625 | $this->setProperty( $propname, $content, $propattr ); |
| 1436 | 1626 | continue; |
| 1627 | + } else { |
|
| 1628 | + $line = reset( $content ); |
|
| 1437 | 1629 | } |
| 1438 | - else |
|
| 1439 | - $line = reset( $content ); |
|
| 1440 | 1630 | $line = $toolbox->_strunrep( $line ); |
| 1441 | 1631 | } |
| 1442 | 1632 | $this->setProperty( $propname, trim( $line ), $propattr ); |
@@ -1445,12 +1635,14 @@ discard block |
||
| 1445 | 1635 | /* parse Components */ |
| 1446 | 1636 | if( is_array( $this->components ) && ( 0 < count( $this->components ))) { |
| 1447 | 1637 | for( $six = 0; $six < count( $this->components ); $six++ ) { |
| 1448 | - if( !empty( $this->components[$six] )) |
|
| 1449 | - $this->components[$six]->parse(); |
|
| 1638 | + if( !empty( $this->components[$six] )) { |
|
| 1639 | + $this->components[$six]->parse(); |
|
| 1640 | + } |
|
| 1450 | 1641 | } |
| 1642 | + } else { |
|
| 1643 | + return FALSE; |
|
| 1451 | 1644 | } |
| 1452 | - else |
|
| 1453 | - return FALSE; /* err 91 or something.. . */ |
|
| 1645 | + /* err 91 or something.. . */ |
|
| 1454 | 1646 | return TRUE; |
| 1455 | 1647 | } |
| 1456 | 1648 | /*********************************************************************************/ |
@@ -1482,8 +1674,9 @@ discard block |
||
| 1482 | 1674 | switch( $this->format ) { |
| 1483 | 1675 | case 'xcal': |
| 1484 | 1676 | $nlstrlen = strlen( $this->nl ); |
| 1485 | - if( $this->nl == substr( $calendarStart, ( 0 - $nlstrlen ))) |
|
| 1486 | - $calendarStart = substr( $calendarStart, 0, ( strlen( $calendarStart ) - $nlstrlen )); |
|
| 1677 | + if( $this->nl == substr( $calendarStart, ( 0 - $nlstrlen ))) { |
|
| 1678 | + $calendarStart = substr( $calendarStart, 0, ( strlen( $calendarStart ) - $nlstrlen )); |
|
| 1679 | + } |
|
| 1487 | 1680 | $calendarStart .= '>'.$this->nl; |
| 1488 | 1681 | break; |
| 1489 | 1682 | default: |
@@ -1491,9 +1684,12 @@ discard block |
||
| 1491 | 1684 | } |
| 1492 | 1685 | $calendar .= $this->createXprop(); |
| 1493 | 1686 | foreach( $this->components as $component ) { |
| 1494 | - if( empty( $component )) continue; |
|
| 1495 | - if( '' >= $component->getConfig( 'language')) |
|
| 1496 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 1687 | + if( empty( $component )) { |
|
| 1688 | + continue; |
|
| 1689 | + } |
|
| 1690 | + if( '' >= $component->getConfig( 'language')) { |
|
| 1691 | + $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 1692 | + } |
|
| 1497 | 1693 | $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
| 1498 | 1694 | $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
| 1499 | 1695 | $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
@@ -1506,8 +1702,10 @@ discard block |
||
| 1506 | 1702 | foreach( $this->xcaldecl as $declix => $declPart ) { |
| 1507 | 1703 | if(( 0 < count( $old_xcaldecl)) && |
| 1508 | 1704 | ( in_array( $declPart['uri'], $old_xcaldecl['uri'] )) && |
| 1509 | - ( in_array( $declPart['external'], $old_xcaldecl['external'] ))) |
|
| 1510 | - continue; // no duplicate uri and ext. references |
|
| 1705 | + ( in_array( $declPart['external'], $old_xcaldecl['external'] ))) { |
|
| 1706 | + continue; |
|
| 1707 | + } |
|
| 1708 | + // no duplicate uri and ext. references |
|
| 1511 | 1709 | $calendarxCaldecl .= '<!'; |
| 1512 | 1710 | foreach( $declPart as $declKey => $declValue ) { |
| 1513 | 1711 | switch( $declKey ) { // index |
@@ -1560,10 +1758,11 @@ discard block |
||
| 1560 | 1758 | $filesize = strlen( $output ); |
| 1561 | 1759 | // if( headers_sent( $filename, $linenum )) |
| 1562 | 1760 | // die( "Headers already sent in $filename on line $linenum\n" ); |
| 1563 | - if( 'xcal' == $this->format ) |
|
| 1564 | - header( 'Content-Type: application/calendar+xml; charset=utf-8' ); |
|
| 1565 | - else |
|
| 1566 | - header( 'Content-Type: text/calendar; charset=utf-8' ); |
|
| 1761 | + if( 'xcal' == $this->format ) { |
|
| 1762 | + header( 'Content-Type: application/calendar+xml; charset=utf-8' ); |
|
| 1763 | + } else { |
|
| 1764 | + header( 'Content-Type: text/calendar; charset=utf-8' ); |
|
| 1765 | + } |
|
| 1567 | 1766 | header( 'Content-Length: '.$filesize ); |
| 1568 | 1767 | header( 'Content-Disposition: attachment; filename="'.$filename.'"' ); |
| 1569 | 1768 | header( 'Cache-Control: max-age=10' ); |
@@ -1581,23 +1780,28 @@ discard block |
||
| 1581 | 1780 | * @return bool |
| 1582 | 1781 | */ |
| 1583 | 1782 | function saveCalendar( $directory=FALSE, $filename=FALSE, $delimiter=FALSE ) { |
| 1584 | - if( $directory ) |
|
| 1585 | - $this->setConfig( 'directory', $directory ); |
|
| 1586 | - if( $filename ) |
|
| 1587 | - $this->setConfig( 'filename', $filename ); |
|
| 1588 | - if( $delimiter && ($delimiter != DIRECTORY_SEPARATOR )) |
|
| 1589 | - $this->setConfig( 'delimiter', $delimiter ); |
|
| 1590 | - if( FALSE === ( $dirfile = $this->getConfig( 'url' ))) |
|
| 1591 | - $dirfile = $this->getConfig( 'dirfile' ); |
|
| 1783 | + if( $directory ) { |
|
| 1784 | + $this->setConfig( 'directory', $directory ); |
|
| 1785 | + } |
|
| 1786 | + if( $filename ) { |
|
| 1787 | + $this->setConfig( 'filename', $filename ); |
|
| 1788 | + } |
|
| 1789 | + if( $delimiter && ($delimiter != DIRECTORY_SEPARATOR )) { |
|
| 1790 | + $this->setConfig( 'delimiter', $delimiter ); |
|
| 1791 | + } |
|
| 1792 | + if( FALSE === ( $dirfile = $this->getConfig( 'url' ))) { |
|
| 1793 | + $dirfile = $this->getConfig( 'dirfile' ); |
|
| 1794 | + } |
|
| 1592 | 1795 | $iCalFile = @fopen( $dirfile, 'w' ); |
| 1593 | 1796 | if( $iCalFile ) { |
| 1594 | - if( FALSE === fwrite( $iCalFile, $this->createCalendar() )) |
|
| 1595 | - return FALSE; |
|
| 1797 | + if( FALSE === fwrite( $iCalFile, $this->createCalendar() )) { |
|
| 1798 | + return FALSE; |
|
| 1799 | + } |
|
| 1596 | 1800 | fclose( $iCalFile ); |
| 1597 | 1801 | return TRUE; |
| 1802 | + } else { |
|
| 1803 | + return FALSE; |
|
| 1598 | 1804 | } |
| 1599 | - else |
|
| 1600 | - return FALSE; |
|
| 1601 | 1805 | } |
| 1602 | 1806 | /** |
| 1603 | 1807 | * if recent version of calendar file exists (default one hour), an HTTP redirect header is sent |
@@ -1616,15 +1820,19 @@ discard block |
||
| 1616 | 1820 | $timeout = (int) $directory; |
| 1617 | 1821 | $directory = FALSE; |
| 1618 | 1822 | } |
| 1619 | - if( $directory ) |
|
| 1620 | - $this->setConfig( 'directory', $directory ); |
|
| 1621 | - if( $filename ) |
|
| 1622 | - $this->setConfig( 'filename', $filename ); |
|
| 1623 | - if( $delimiter && ( $delimiter != DIRECTORY_SEPARATOR )) |
|
| 1624 | - $this->setConfig( 'delimiter', $delimiter ); |
|
| 1823 | + if( $directory ) { |
|
| 1824 | + $this->setConfig( 'directory', $directory ); |
|
| 1825 | + } |
|
| 1826 | + if( $filename ) { |
|
| 1827 | + $this->setConfig( 'filename', $filename ); |
|
| 1828 | + } |
|
| 1829 | + if( $delimiter && ( $delimiter != DIRECTORY_SEPARATOR )) { |
|
| 1830 | + $this->setConfig( 'delimiter', $delimiter ); |
|
| 1831 | + } |
|
| 1625 | 1832 | $filesize = $this->getConfig( 'filesize' ); |
| 1626 | - if( 0 >= $filesize ) |
|
| 1627 | - return FALSE; |
|
| 1833 | + if( 0 >= $filesize ) { |
|
| 1834 | + return FALSE; |
|
| 1835 | + } |
|
| 1628 | 1836 | $dirfile = $this->getConfig( 'dirfile' ); |
| 1629 | 1837 | if( time() - filemtime( $dirfile ) < $timeout) { |
| 1630 | 1838 | clearstatcache(); |
@@ -1632,10 +1840,11 @@ discard block |
||
| 1632 | 1840 | $filename = $this->getConfig( 'filename' ); |
| 1633 | 1841 | // if( headers_sent( $filename, $linenum )) |
| 1634 | 1842 | // die( "Headers already sent in $filename on line $linenum\n" ); |
| 1635 | - if( 'xcal' == $this->format ) |
|
| 1636 | - header( 'Content-Type: application/calendar+xml; charset=utf-8' ); |
|
| 1637 | - else |
|
| 1638 | - header( 'Content-Type: text/calendar; charset=utf-8' ); |
|
| 1843 | + if( 'xcal' == $this->format ) { |
|
| 1844 | + header( 'Content-Type: application/calendar+xml; charset=utf-8' ); |
|
| 1845 | + } else { |
|
| 1846 | + header( 'Content-Type: text/calendar; charset=utf-8' ); |
|
| 1847 | + } |
|
| 1639 | 1848 | header( 'Content-Length: '.$filesize ); |
| 1640 | 1849 | header( 'Content-Disposition: attachment; filename="'.$filename.'"' ); |
| 1641 | 1850 | header( 'Cache-Control: max-age=10' ); |
@@ -1645,9 +1854,9 @@ discard block |
||
| 1645 | 1854 | fclose( $fp ); |
| 1646 | 1855 | } |
| 1647 | 1856 | die(); |
| 1857 | + } else { |
|
| 1858 | + return FALSE; |
|
| 1648 | 1859 | } |
| 1649 | - else |
|
| 1650 | - return FALSE; |
|
| 1651 | 1860 | } |
| 1652 | 1861 | } |
| 1653 | 1862 | /*********************************************************************************/ |
@@ -1718,9 +1927,12 @@ discard block |
||
| 1718 | 1927 | * @return string |
| 1719 | 1928 | */ |
| 1720 | 1929 | function createAction() { |
| 1721 | - if( empty( $this->action )) return FALSE; |
|
| 1722 | - if( empty( $this->action['value'] )) |
|
| 1723 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ACTION' ) : FALSE; |
|
| 1930 | + if( empty( $this->action )) { |
|
| 1931 | + return FALSE; |
|
| 1932 | + } |
|
| 1933 | + if( empty( $this->action['value'] )) { |
|
| 1934 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ACTION' ) : FALSE; |
|
| 1935 | + } |
|
| 1724 | 1936 | $attributes = $this->_createParams( $this->action['params'] ); |
| 1725 | 1937 | return $this->_createElement( 'ACTION', $attributes, $this->action['value'] ); |
| 1726 | 1938 | } |
@@ -1734,7 +1946,11 @@ discard block |
||
| 1734 | 1946 | * @return bool |
| 1735 | 1947 | */ |
| 1736 | 1948 | function setAction( $value, $params=FALSE ) { |
| 1737 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 1949 | + if( empty( $value )) { |
|
| 1950 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 1951 | + } else { |
|
| 1952 | + return FALSE; |
|
| 1953 | + } |
|
| 1738 | 1954 | $this->action = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 1739 | 1955 | return TRUE; |
| 1740 | 1956 | } |
@@ -1750,14 +1966,17 @@ discard block |
||
| 1750 | 1966 | * @return string |
| 1751 | 1967 | */ |
| 1752 | 1968 | function createAttach() { |
| 1753 | - if( empty( $this->attach )) return FALSE; |
|
| 1969 | + if( empty( $this->attach )) { |
|
| 1970 | + return FALSE; |
|
| 1971 | + } |
|
| 1754 | 1972 | $output = null; |
| 1755 | 1973 | foreach( $this->attach as $attachPart ) { |
| 1756 | 1974 | if(! empty( $attachPart['value'] )) { |
| 1757 | 1975 | $attributes = $this->_createParams( $attachPart['params'] ); |
| 1758 | 1976 | $output .= $this->_createElement( 'ATTACH', $attributes, $attachPart['value'] ); |
| 1977 | + } elseif( $this->getConfig( 'allowEmpty' )) { |
|
| 1978 | + $output .= $this->_createElement( 'ATTACH' ); |
|
| 1759 | 1979 | } |
| 1760 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'ATTACH' ); |
|
| 1761 | 1980 | } |
| 1762 | 1981 | return $output; |
| 1763 | 1982 | } |
@@ -1772,7 +1991,11 @@ discard block |
||
| 1772 | 1991 | * @return bool |
| 1773 | 1992 | */ |
| 1774 | 1993 | function setAttach( $value, $params=FALSE, $index=FALSE ) { |
| 1775 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 1994 | + if( empty( $value )) { |
|
| 1995 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 1996 | + } else { |
|
| 1997 | + return FALSE; |
|
| 1998 | + } |
|
| 1776 | 1999 | $this->_setMval( $this->attach, $value, $params, FALSE, $index ); |
| 1777 | 2000 | return TRUE; |
| 1778 | 2001 | } |
@@ -1788,19 +2011,22 @@ discard block |
||
| 1788 | 2011 | * @return string |
| 1789 | 2012 | */ |
| 1790 | 2013 | function createAttendee() { |
| 1791 | - if( empty( $this->attendee )) return FALSE; |
|
| 2014 | + if( empty( $this->attendee )) { |
|
| 2015 | + return FALSE; |
|
| 2016 | + } |
|
| 1792 | 2017 | $output = null; |
| 1793 | 2018 | foreach( $this->attendee as $attendeePart ) { // start foreach 1 |
| 1794 | 2019 | if( empty( $attendeePart['value'] )) { |
| 1795 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 1796 | - $output .= $this->_createElement( 'ATTENDEE' ); |
|
| 2020 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2021 | + $output .= $this->_createElement( 'ATTENDEE' ); |
|
| 2022 | + } |
|
| 1797 | 2023 | continue; |
| 1798 | 2024 | } |
| 1799 | 2025 | $attendee1 = $attendee2 = $attendeeLANG = $attendeeCN = null; |
| 1800 | 2026 | foreach( $attendeePart as $paramlabel => $paramvalue ) { // start foreach 2 |
| 1801 | - if( 'value' == $paramlabel ) |
|
| 1802 | - $attendee2 .= 'MAILTO:'.$paramvalue; |
|
| 1803 | - elseif(( 'params' == $paramlabel ) && ( is_array( $paramvalue ))) { // start elseif |
|
| 2027 | + if( 'value' == $paramlabel ) { |
|
| 2028 | + $attendee2 .= 'MAILTO:'.$paramvalue; |
|
| 2029 | + } elseif(( 'params' == $paramlabel ) && ( is_array( $paramvalue ))) { // start elseif |
|
| 1804 | 2030 | foreach( $paramvalue as $optparamlabel => $optparamvalue ) { // start foreach 3 |
| 1805 | 2031 | $attendee11 = $attendee12 = null; |
| 1806 | 2032 | if( is_int( $optparamlabel )) { |
@@ -1860,7 +2086,11 @@ discard block |
||
| 1860 | 2086 | * @return bool |
| 1861 | 2087 | */ |
| 1862 | 2088 | function setAttendee( $value, $params=FALSE, $index=FALSE ) { |
| 1863 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2089 | + if( empty( $value )) { |
|
| 2090 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 2091 | + } else { |
|
| 2092 | + return FALSE; |
|
| 2093 | + } |
|
| 1864 | 2094 | $value = str_replace ( 'MAILTO:', '', $value ); |
| 1865 | 2095 | $value = str_replace ( 'mailto:', '', $value ); |
| 1866 | 2096 | $params2 = array(); |
@@ -1876,16 +2106,17 @@ discard block |
||
| 1876 | 2106 | foreach( $optparamvalue as $part ) { |
| 1877 | 2107 | $part = str_replace( 'MAILTO:', '', $part ); |
| 1878 | 2108 | $part = str_replace( 'mailto:', '', $part ); |
| 1879 | - if(( '"' == $part{0} ) && ( '"' == $part{strlen($part)-1} )) |
|
| 1880 | - $part = substr( $part, 1, ( strlen($part)-2 )); |
|
| 2109 | + if(( '"' == $part{0} ) && ( '"' == $part{strlen($part)-1} )) { |
|
| 2110 | + $part = substr( $part, 1, ( strlen($part)-2 )); |
|
| 2111 | + } |
|
| 1881 | 2112 | $optarrays[$optparamlabel][] = $part; |
| 1882 | 2113 | } |
| 1883 | - } |
|
| 1884 | - else { |
|
| 2114 | + } else { |
|
| 1885 | 2115 | $part = str_replace( 'MAILTO:', '', $optparamvalue ); |
| 1886 | 2116 | $part = str_replace( 'mailto:', '', $part ); |
| 1887 | - if(( '"' == $part{0} ) && ( '"' == $part{strlen($part)-1} )) |
|
| 1888 | - $part = substr( $part, 1, ( strlen($part)-2 )); |
|
| 2117 | + if(( '"' == $part{0} ) && ( '"' == $part{strlen($part)-1} )) { |
|
| 2118 | + $part = substr( $part, 1, ( strlen($part)-2 )); |
|
| 2119 | + } |
|
| 1889 | 2120 | $optarrays[$optparamlabel][] = $part; |
| 1890 | 2121 | } |
| 1891 | 2122 | break; |
@@ -1895,14 +2126,16 @@ discard block |
||
| 1895 | 2126 | $optparamvalue = str_replace( 'mailto:', '', $optparamvalue ); |
| 1896 | 2127 | } |
| 1897 | 2128 | if(( '"' == substr( $optparamvalue, 0, 1 )) && |
| 1898 | - ( '"' == substr( $optparamvalue, -1 ))) |
|
| 1899 | - $optparamvalue = substr( $optparamvalue, 1, ( strlen( $optparamvalue ) - 2 )); |
|
| 2129 | + ( '"' == substr( $optparamvalue, -1 ))) { |
|
| 2130 | + $optparamvalue = substr( $optparamvalue, 1, ( strlen( $optparamvalue ) - 2 )); |
|
| 2131 | + } |
|
| 1900 | 2132 | $params2[$optparamlabel] = $optparamvalue; |
| 1901 | 2133 | break; |
| 1902 | 2134 | } // end switch( $optparamlabel.. . |
| 1903 | 2135 | } // end foreach( $optparam.. . |
| 1904 | - foreach( $optarrays as $optparamlabel => $optparams ) |
|
| 1905 | - $params2[$optparamlabel] = $optparams; |
|
| 2136 | + foreach( $optarrays as $optparamlabel => $optparams ) { |
|
| 2137 | + $params2[$optparamlabel] = $optparams; |
|
| 2138 | + } |
|
| 1906 | 2139 | } |
| 1907 | 2140 | // remove defaults |
| 1908 | 2141 | $this->_existRem( $params2, 'CUTYPE', 'INDIVIDUAL' ); |
@@ -1912,8 +2145,9 @@ discard block |
||
| 1912 | 2145 | // check language setting |
| 1913 | 2146 | if( isset( $params2['CN' ] )) { |
| 1914 | 2147 | $lang = $this->getConfig( 'language' ); |
| 1915 | - if( !isset( $params2['LANGUAGE' ] ) && !empty( $lang )) |
|
| 1916 | - $params2['LANGUAGE' ] = $lang; |
|
| 2148 | + if( !isset( $params2['LANGUAGE' ] ) && !empty( $lang )) { |
|
| 2149 | + $params2['LANGUAGE' ] = $lang; |
|
| 2150 | + } |
|
| 1917 | 2151 | } |
| 1918 | 2152 | $this->_setMval( $this->attendee, $value, $params2, FALSE, $index ); |
| 1919 | 2153 | return TRUE; |
@@ -1930,22 +2164,26 @@ discard block |
||
| 1930 | 2164 | * @return string |
| 1931 | 2165 | */ |
| 1932 | 2166 | function createCategories() { |
| 1933 | - if( empty( $this->categories )) return FALSE; |
|
| 2167 | + if( empty( $this->categories )) { |
|
| 2168 | + return FALSE; |
|
| 2169 | + } |
|
| 1934 | 2170 | $output = null; |
| 1935 | 2171 | foreach( $this->categories as $category ) { |
| 1936 | 2172 | if( empty( $category['value'] )) { |
| 1937 | - if ( $this->getConfig( 'allowEmpty' )) |
|
| 1938 | - $output .= $this->_createElement( 'CATEGORIES' ); |
|
| 2173 | + if ( $this->getConfig( 'allowEmpty' )) { |
|
| 2174 | + $output .= $this->_createElement( 'CATEGORIES' ); |
|
| 2175 | + } |
|
| 1939 | 2176 | continue; |
| 1940 | 2177 | } |
| 1941 | 2178 | $attributes = $this->_createParams( $category['params'], array( 'LANGUAGE' )); |
| 1942 | 2179 | if( is_array( $category['value'] )) { |
| 1943 | - foreach( $category['value'] as $cix => $categoryPart ) |
|
| 1944 | - $category['value'][$cix] = $this->_strrep( $categoryPart ); |
|
| 2180 | + foreach( $category['value'] as $cix => $categoryPart ) { |
|
| 2181 | + $category['value'][$cix] = $this->_strrep( $categoryPart ); |
|
| 2182 | + } |
|
| 1945 | 2183 | $content = implode( ',', $category['value'] ); |
| 2184 | + } else { |
|
| 2185 | + $content = $this->_strrep( $category['value'] ); |
|
| 1946 | 2186 | } |
| 1947 | - else |
|
| 1948 | - $content = $this->_strrep( $category['value'] ); |
|
| 1949 | 2187 | $output .= $this->_createElement( 'CATEGORIES', $attributes, $content ); |
| 1950 | 2188 | } |
| 1951 | 2189 | return $output; |
@@ -1961,7 +2199,11 @@ discard block |
||
| 1961 | 2199 | * @return bool |
| 1962 | 2200 | */ |
| 1963 | 2201 | function setCategories( $value, $params=FALSE, $index=FALSE ) { |
| 1964 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2202 | + if( empty( $value )) { |
|
| 2203 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 2204 | + } else { |
|
| 2205 | + return FALSE; |
|
| 2206 | + } |
|
| 1965 | 2207 | $this->_setMval( $this->categories, $value, $params, FALSE, $index ); |
| 1966 | 2208 | return TRUE; |
| 1967 | 2209 | } |
@@ -1977,9 +2219,12 @@ discard block |
||
| 1977 | 2219 | * @return string |
| 1978 | 2220 | */ |
| 1979 | 2221 | function createClass() { |
| 1980 | - if( empty( $this->class )) return FALSE; |
|
| 1981 | - if( empty( $this->class['value'] )) |
|
| 1982 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'CLASS' ) : FALSE; |
|
| 2222 | + if( empty( $this->class )) { |
|
| 2223 | + return FALSE; |
|
| 2224 | + } |
|
| 2225 | + if( empty( $this->class['value'] )) { |
|
| 2226 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'CLASS' ) : FALSE; |
|
| 2227 | + } |
|
| 1983 | 2228 | $attributes = $this->_createParams( $this->class['params'] ); |
| 1984 | 2229 | return $this->_createElement( 'CLASS', $attributes, $this->class['value'] ); |
| 1985 | 2230 | } |
@@ -1993,7 +2238,11 @@ discard block |
||
| 1993 | 2238 | * @return bool |
| 1994 | 2239 | */ |
| 1995 | 2240 | function setClass( $value, $params=FALSE ) { |
| 1996 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2241 | + if( empty( $value )) { |
|
| 2242 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 2243 | + } else { |
|
| 2244 | + return FALSE; |
|
| 2245 | + } |
|
| 1997 | 2246 | $this->class = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 1998 | 2247 | return TRUE; |
| 1999 | 2248 | } |
@@ -2009,11 +2258,15 @@ discard block |
||
| 2009 | 2258 | * @return string |
| 2010 | 2259 | */ |
| 2011 | 2260 | function createComment() { |
| 2012 | - if( empty( $this->comment )) return FALSE; |
|
| 2013 | - $output = null; |
|
| 2261 | + if( empty( $this->comment )) { |
|
| 2262 | + return FALSE; |
|
| 2263 | + } |
|
| 2264 | + $output = null; |
|
| 2014 | 2265 | foreach( $this->comment as $commentPart ) { |
| 2015 | 2266 | if( empty( $commentPart['value'] )) { |
| 2016 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'COMMENT' ); |
|
| 2267 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2268 | + $output .= $this->_createElement( 'COMMENT' ); |
|
| 2269 | + } |
|
| 2017 | 2270 | continue; |
| 2018 | 2271 | } |
| 2019 | 2272 | $attributes = $this->_createParams( $commentPart['params'], array( 'ALTREP', 'LANGUAGE' )); |
@@ -2033,7 +2286,11 @@ discard block |
||
| 2033 | 2286 | * @return bool |
| 2034 | 2287 | */ |
| 2035 | 2288 | function setComment( $value, $params=FALSE, $index=FALSE ) { |
| 2036 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2289 | + if( empty( $value )) { |
|
| 2290 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 2291 | + } else { |
|
| 2292 | + return FALSE; |
|
| 2293 | + } |
|
| 2037 | 2294 | $this->_setMval( $this->comment, $value, $params, FALSE, $index ); |
| 2038 | 2295 | return TRUE; |
| 2039 | 2296 | } |
@@ -2049,16 +2306,20 @@ discard block |
||
| 2049 | 2306 | * @return string |
| 2050 | 2307 | */ |
| 2051 | 2308 | function createCompleted( ) { |
| 2052 | - if( empty( $this->completed )) return FALSE; |
|
| 2309 | + if( empty( $this->completed )) { |
|
| 2310 | + return FALSE; |
|
| 2311 | + } |
|
| 2053 | 2312 | if( !isset( $this->completed['value']['year'] ) && |
| 2054 | 2313 | !isset( $this->completed['value']['month'] ) && |
| 2055 | 2314 | !isset( $this->completed['value']['day'] ) && |
| 2056 | 2315 | !isset( $this->completed['value']['hour'] ) && |
| 2057 | 2316 | !isset( $this->completed['value']['min'] ) && |
| 2058 | - !isset( $this->completed['value']['sec'] )) |
|
| 2059 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2317 | + !isset( $this->completed['value']['sec'] )) { |
|
| 2318 | + if( $this->getConfig( 'allowEmpty' )) |
|
| 2060 | 2319 | return $this->_createElement( 'COMPLETED' ); |
| 2061 | - else return FALSE; |
|
| 2320 | + } else { |
|
| 2321 | + return FALSE; |
|
| 2322 | + } |
|
| 2062 | 2323 | $formatted = $this->_format_date_time( $this->completed['value'], 7 ); |
| 2063 | 2324 | $attributes = $this->_createParams( $this->completed['params'] ); |
| 2064 | 2325 | return $this->_createElement( 'COMPLETED', $attributes, $formatted ); |
@@ -2082,9 +2343,9 @@ discard block |
||
| 2082 | 2343 | if( $this->getConfig( 'allowEmpty' )) { |
| 2083 | 2344 | $this->completed = array( 'value' => null, 'params' => $this->_setParams( $params )); |
| 2084 | 2345 | return TRUE; |
| 2346 | + } else { |
|
| 2347 | + return FALSE; |
|
| 2085 | 2348 | } |
| 2086 | - else |
|
| 2087 | - return FALSE; |
|
| 2088 | 2349 | } |
| 2089 | 2350 | $this->completed = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
| 2090 | 2351 | return TRUE; |
@@ -2101,15 +2362,18 @@ discard block |
||
| 2101 | 2362 | * @return string |
| 2102 | 2363 | */ |
| 2103 | 2364 | function createContact() { |
| 2104 | - if( empty( $this->contact )) return FALSE; |
|
| 2365 | + if( empty( $this->contact )) { |
|
| 2366 | + return FALSE; |
|
| 2367 | + } |
|
| 2105 | 2368 | $output = null; |
| 2106 | 2369 | foreach( $this->contact as $contact ) { |
| 2107 | 2370 | if( !empty( $contact['value'] )) { |
| 2108 | 2371 | $attributes = $this->_createParams( $contact['params'], array( 'ALTREP', 'LANGUAGE' )); |
| 2109 | 2372 | $content = $this->_strrep( $contact['value'] ); |
| 2110 | 2373 | $output .= $this->_createElement( 'CONTACT', $attributes, $content ); |
| 2374 | + } elseif( $this->getConfig( 'allowEmpty' )) { |
|
| 2375 | + $output .= $this->_createElement( 'CONTACT' ); |
|
| 2111 | 2376 | } |
| 2112 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'CONTACT' ); |
|
| 2113 | 2377 | } |
| 2114 | 2378 | return $output; |
| 2115 | 2379 | } |
@@ -2124,7 +2388,11 @@ discard block |
||
| 2124 | 2388 | * @return bool |
| 2125 | 2389 | */ |
| 2126 | 2390 | function setContact( $value, $params=FALSE, $index=FALSE ) { |
| 2127 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 2391 | + if( empty( $value )) { |
|
| 2392 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 2393 | + } else { |
|
| 2394 | + return FALSE; |
|
| 2395 | + } |
|
| 2128 | 2396 | $this->_setMval( $this->contact, $value, $params, FALSE, $index ); |
| 2129 | 2397 | return TRUE; |
| 2130 | 2398 | } |
@@ -2140,7 +2408,9 @@ discard block |
||
| 2140 | 2408 | * @return string |
| 2141 | 2409 | */ |
| 2142 | 2410 | function createCreated() { |
| 2143 | - if( empty( $this->created )) return FALSE; |
|
| 2411 | + if( empty( $this->created )) { |
|
| 2412 | + return FALSE; |
|
| 2413 | + } |
|
| 2144 | 2414 | $formatted = $this->_format_date_time( $this->created['value'], 7 ); |
| 2145 | 2415 | $attributes = $this->_createParams( $this->created['params'] ); |
| 2146 | 2416 | return $this->_createElement( 'CREATED', $attributes, $formatted ); |
@@ -2178,15 +2448,18 @@ discard block |
||
| 2178 | 2448 | * @return string |
| 2179 | 2449 | */ |
| 2180 | 2450 | function createDescription() { |
| 2181 | - if( empty( $this->description )) return FALSE; |
|
| 2451 | + if( empty( $this->description )) { |
|
| 2452 | + return FALSE; |
|
| 2453 | + } |
|
| 2182 | 2454 | $output = null; |
| 2183 | 2455 | foreach( $this->description as $description ) { |
| 2184 | 2456 | if( !empty( $description['value'] )) { |
| 2185 | 2457 | $attributes = $this->_createParams( $description['params'], array( 'ALTREP', 'LANGUAGE' )); |
| 2186 | 2458 | $content = $this->_strrep( $description['value'] ); |
| 2187 | 2459 | $output .= $this->_createElement( 'DESCRIPTION', $attributes, $content ); |
| 2460 | + } elseif( $this->getConfig( 'allowEmpty' )) { |
|
| 2461 | + $output .= $this->_createElement( 'DESCRIPTION' ); |
|
| 2188 | 2462 | } |
| 2189 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'DESCRIPTION' ); |
|
| 2190 | 2463 | } |
| 2191 | 2464 | return $output; |
| 2192 | 2465 | } |
@@ -2201,7 +2474,12 @@ discard block |
||
| 2201 | 2474 | * @return bool |
| 2202 | 2475 | */ |
| 2203 | 2476 | function setDescription( $value, $params=FALSE, $index=FALSE ) { |
| 2204 | - if( empty( $value )) { if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; } |
|
| 2477 | + if( empty( $value )) { if( $this->getConfig( 'allowEmpty' )) { |
|
| 2478 | + $value = null; |
|
| 2479 | + } else { |
|
| 2480 | + return FALSE; |
|
| 2481 | + } |
|
| 2482 | + } |
|
| 2205 | 2483 | $this->_setMval( $this->description, $value, $params, FALSE, $index ); |
| 2206 | 2484 | return TRUE; |
| 2207 | 2485 | } |
@@ -2217,16 +2495,20 @@ discard block |
||
| 2217 | 2495 | * @return string |
| 2218 | 2496 | */ |
| 2219 | 2497 | function createDtend() { |
| 2220 | - if( empty( $this->dtend )) return FALSE; |
|
| 2498 | + if( empty( $this->dtend )) { |
|
| 2499 | + return FALSE; |
|
| 2500 | + } |
|
| 2221 | 2501 | if( !isset( $this->dtend['value']['year'] ) && |
| 2222 | 2502 | !isset( $this->dtend['value']['month'] ) && |
| 2223 | 2503 | !isset( $this->dtend['value']['day'] ) && |
| 2224 | 2504 | !isset( $this->dtend['value']['hour'] ) && |
| 2225 | 2505 | !isset( $this->dtend['value']['min'] ) && |
| 2226 | - !isset( $this->dtend['value']['sec'] )) |
|
| 2227 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2506 | + !isset( $this->dtend['value']['sec'] )) { |
|
| 2507 | + if( $this->getConfig( 'allowEmpty' )) |
|
| 2228 | 2508 | return $this->_createElement( 'DTEND' ); |
| 2229 | - else return FALSE; |
|
| 2509 | + } else { |
|
| 2510 | + return FALSE; |
|
| 2511 | + } |
|
| 2230 | 2512 | $formatted = $this->_format_date_time( $this->dtend['value'] ); |
| 2231 | 2513 | $attributes = $this->_createParams( $this->dtend['params'] ); |
| 2232 | 2514 | return $this->_createElement( 'DTEND', $attributes, $formatted ); |
@@ -2251,9 +2533,9 @@ discard block |
||
| 2251 | 2533 | if( $this->getConfig( 'allowEmpty' )) { |
| 2252 | 2534 | $this->dtend = array( 'value' => null, 'params' => $this->_setParams( $params )); |
| 2253 | 2535 | return TRUE; |
| 2536 | + } else { |
|
| 2537 | + return FALSE; |
|
| 2254 | 2538 | } |
| 2255 | - else |
|
| 2256 | - return FALSE; |
|
| 2257 | 2539 | } |
| 2258 | 2540 | $this->dtend = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params ); |
| 2259 | 2541 | return TRUE; |
@@ -2275,8 +2557,9 @@ discard block |
||
| 2275 | 2557 | !isset( $this->dtstamp['value']['day'] ) && |
| 2276 | 2558 | !isset( $this->dtstamp['value']['hour'] ) && |
| 2277 | 2559 | !isset( $this->dtstamp['value']['min'] ) && |
| 2278 | - !isset( $this->dtstamp['value']['sec'] )) |
|
| 2279 | - $this->_makeDtstamp(); |
|
| 2560 | + !isset( $this->dtstamp['value']['sec'] )) { |
|
| 2561 | + $this->_makeDtstamp(); |
|
| 2562 | + } |
|
| 2280 | 2563 | $formatted = $this->_format_date_time( $this->dtstamp['value'], 7 ); |
| 2281 | 2564 | $attributes = $this->_createParams( $this->dtstamp['params'] ); |
| 2282 | 2565 | return $this->_createElement( 'DTSTAMP', $attributes, $formatted ); |
@@ -2312,10 +2595,11 @@ discard block |
||
| 2312 | 2595 | * @return TRUE |
| 2313 | 2596 | */ |
| 2314 | 2597 | function setDtstamp( $year, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
| 2315 | - if( empty( $year )) |
|
| 2316 | - $this->_makeDtstamp(); |
|
| 2317 | - else |
|
| 2318 | - $this->dtstamp = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
|
| 2598 | + if( empty( $year )) { |
|
| 2599 | + $this->_makeDtstamp(); |
|
| 2600 | + } else { |
|
| 2601 | + $this->dtstamp = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
|
| 2602 | + } |
|
| 2319 | 2603 | return TRUE; |
| 2320 | 2604 | } |
| 2321 | 2605 | /*********************************************************************************/ |
@@ -2330,18 +2614,23 @@ discard block |
||
| 2330 | 2614 | * @return string |
| 2331 | 2615 | */ |
| 2332 | 2616 | function createDtstart() { |
| 2333 | - if( empty( $this->dtstart )) return FALSE; |
|
| 2617 | + if( empty( $this->dtstart )) { |
|
| 2618 | + return FALSE; |
|
| 2619 | + } |
|
| 2334 | 2620 | if( !isset( $this->dtstart['value']['year'] ) && |
| 2335 | 2621 | !isset( $this->dtstart['value']['month'] ) && |
| 2336 | 2622 | !isset( $this->dtstart['value']['day'] ) && |
| 2337 | 2623 | !isset( $this->dtstart['value']['hour'] ) && |
| 2338 | 2624 | !isset( $this->dtstart['value']['min'] ) && |
| 2339 | - !isset( $this->dtstart['value']['sec'] )) |
|
| 2340 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2625 | + !isset( $this->dtstart['value']['sec'] )) { |
|
| 2626 | + if( $this->getConfig( 'allowEmpty' )) |
|
| 2341 | 2627 | return $this->_createElement( 'DTSTART' ); |
| 2342 | - else return FALSE; |
|
| 2343 | - if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) |
|
| 2344 | - unset( $this->dtstart['value']['tz'], $this->dtstart['params']['TZID'] ); |
|
| 2628 | + } else { |
|
| 2629 | + return FALSE; |
|
| 2630 | + } |
|
| 2631 | + if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) { |
|
| 2632 | + unset( $this->dtstart['value']['tz'], $this->dtstart['params']['TZID'] ); |
|
| 2633 | + } |
|
| 2345 | 2634 | $formatted = $this->_format_date_time( $this->dtstart['value'] ); |
| 2346 | 2635 | $attributes = $this->_createParams( $this->dtstart['params'] ); |
| 2347 | 2636 | return $this->_createElement( 'DTSTART', $attributes, $formatted ); |
@@ -2366,9 +2655,9 @@ discard block |
||
| 2366 | 2655 | if( $this->getConfig( 'allowEmpty' )) { |
| 2367 | 2656 | $this->dtstart = array( 'value' => null, 'params' => $this->_setParams( $params )); |
| 2368 | 2657 | return TRUE; |
| 2658 | + } else { |
|
| 2659 | + return FALSE; |
|
| 2369 | 2660 | } |
| 2370 | - else |
|
| 2371 | - return FALSE; |
|
| 2372 | 2661 | } |
| 2373 | 2662 | $this->dtstart = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params, 'dtstart' ); |
| 2374 | 2663 | return TRUE; |
@@ -2385,16 +2674,20 @@ discard block |
||
| 2385 | 2674 | * @return string |
| 2386 | 2675 | */ |
| 2387 | 2676 | function createDue() { |
| 2388 | - if( empty( $this->due )) return FALSE; |
|
| 2677 | + if( empty( $this->due )) { |
|
| 2678 | + return FALSE; |
|
| 2679 | + } |
|
| 2389 | 2680 | if( !isset( $this->due['value']['year'] ) && |
| 2390 | 2681 | !isset( $this->due['value']['month'] ) && |
| 2391 | 2682 | !isset( $this->due['value']['day'] ) && |
| 2392 | 2683 | !isset( $this->due['value']['hour'] ) && |
| 2393 | 2684 | !isset( $this->due['value']['min'] ) && |
| 2394 | - !isset( $this->due['value']['sec'] )) |
|
| 2395 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2685 | + !isset( $this->due['value']['sec'] )) { |
|
| 2686 | + if( $this->getConfig( 'allowEmpty' )) |
|
| 2396 | 2687 | return $this->_createElement( 'DUE' ); |
| 2397 | - else return FALSE; |
|
| 2688 | + } else { |
|
| 2689 | + return FALSE; |
|
| 2690 | + } |
|
| 2398 | 2691 | $formatted = $this->_format_date_time( $this->due['value'] ); |
| 2399 | 2692 | $attributes = $this->_createParams( $this->due['params'] ); |
| 2400 | 2693 | return $this->_createElement( 'DUE', $attributes, $formatted ); |
@@ -2418,9 +2711,9 @@ discard block |
||
| 2418 | 2711 | if( $this->getConfig( 'allowEmpty' )) { |
| 2419 | 2712 | $this->due = array( 'value' => null, 'params' => $this->_setParams( $params )); |
| 2420 | 2713 | return TRUE; |
| 2714 | + } else { |
|
| 2715 | + return FALSE; |
|
| 2421 | 2716 | } |
| 2422 | - else |
|
| 2423 | - return FALSE; |
|
| 2424 | 2717 | } |
| 2425 | 2718 | $this->due = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params ); |
| 2426 | 2719 | return TRUE; |
@@ -2437,15 +2730,19 @@ discard block |
||
| 2437 | 2730 | * @return string |
| 2438 | 2731 | */ |
| 2439 | 2732 | function createDuration() { |
| 2440 | - if( empty( $this->duration )) return FALSE; |
|
| 2733 | + if( empty( $this->duration )) { |
|
| 2734 | + return FALSE; |
|
| 2735 | + } |
|
| 2441 | 2736 | if( !isset( $this->duration['value']['week'] ) && |
| 2442 | 2737 | !isset( $this->duration['value']['day'] ) && |
| 2443 | 2738 | !isset( $this->duration['value']['hour'] ) && |
| 2444 | 2739 | !isset( $this->duration['value']['min'] ) && |
| 2445 | - !isset( $this->duration['value']['sec'] )) |
|
| 2446 | - if( $this->getConfig( 'allowEmpty' )) |
|
| 2740 | + !isset( $this->duration['value']['sec'] )) { |
|
| 2741 | + if( $this->getConfig( 'allowEmpty' )) |
|
| 2447 | 2742 | return $this->_createElement( 'DURATION', array(), null ); |
| 2448 | - else return FALSE; |
|
| 2743 | + } else { |
|
| 2744 | + return FALSE; |
|
| 2745 | + } |
|
| 2449 | 2746 | $attributes = $this->_createParams( $this->duration['params'] ); |
| 2450 | 2747 | return $this->_createElement( 'DURATION', $attributes, $this->_format_duration( $this->duration['value'] )); |
| 2451 | 2748 | } |
@@ -2463,19 +2760,24 @@ discard block |
||
| 2463 | 2760 | * @return bool |
| 2464 | 2761 | */ |
| 2465 | 2762 | function setDuration( $week, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
| 2466 | - if( empty( $week )) if( $this->getConfig( 'allowEmpty' )) $week = null; else return FALSE; |
|
| 2467 | - if( is_array( $week ) && ( 1 <= count( $week ))) |
|
| 2468 | - $this->duration = array( 'value' => $this->_duration_array( $week ), 'params' => $this->_setParams( $day )); |
|
| 2469 | - elseif( is_string( $week ) && ( 3 <= strlen( trim( $week )))) { |
|
| 2763 | + if( empty( $week )) { |
|
| 2764 | + if( $this->getConfig( 'allowEmpty' )) $week = null; |
|
| 2765 | + } else { |
|
| 2766 | + return FALSE; |
|
| 2767 | + } |
|
| 2768 | + if( is_array( $week ) && ( 1 <= count( $week ))) { |
|
| 2769 | + $this->duration = array( 'value' => $this->_duration_array( $week ), 'params' => $this->_setParams( $day )); |
|
| 2770 | + } elseif( is_string( $week ) && ( 3 <= strlen( trim( $week )))) { |
|
| 2470 | 2771 | $week = trim( $week ); |
| 2471 | - if( in_array( substr( $week, 0, 1 ), array( '+', '-' ))) |
|
| 2472 | - $week = substr( $week, 1 ); |
|
| 2772 | + if( in_array( substr( $week, 0, 1 ), array( '+', '-' ))) { |
|
| 2773 | + $week = substr( $week, 1 ); |
|
| 2774 | + } |
|
| 2473 | 2775 | $this->duration = array( 'value' => $this->_duration_string( $week ), 'params' => $this->_setParams( $day )); |
| 2776 | + } elseif( empty( $week ) && empty( $day ) && empty( $hour ) && empty( $min ) && empty( $sec )) { |
|
| 2777 | + return FALSE; |
|
| 2778 | + } else { |
|
| 2779 | + $this->duration = array( 'value' => $this->_duration_array( array( $week, $day, $hour, $min, $sec )), 'params' => $this->_setParams( $params )); |
|
| 2474 | 2780 | } |
| 2475 | - elseif( empty( $week ) && empty( $day ) && empty( $hour ) && empty( $min ) && empty( $sec )) |
|
| 2476 | - return FALSE; |
|
| 2477 | - else |
|
| 2478 | - $this->duration = array( 'value' => $this->_duration_array( array( $week, $day, $hour, $min, $sec )), 'params' => $this->_setParams( $params )); |
|
| 2479 | 2781 | return TRUE; |
| 2480 | 2782 | } |
| 2481 | 2783 | /*********************************************************************************/ |
@@ -2490,31 +2792,37 @@ discard block |
||
| 2490 | 2792 | * @return string |
| 2491 | 2793 | */ |
| 2492 | 2794 | function createExdate() { |
| 2493 | - if( empty( $this->exdate )) return FALSE; |
|
| 2795 | + if( empty( $this->exdate )) { |
|
| 2796 | + return FALSE; |
|
| 2797 | + } |
|
| 2494 | 2798 | $output = null; |
| 2495 | 2799 | foreach( $this->exdate as $ex => $theExdate ) { |
| 2496 | 2800 | if( empty( $theExdate['value'] )) { |
| 2497 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'EXDATE' ); |
|
| 2801 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2802 | + $output .= $this->_createElement( 'EXDATE' ); |
|
| 2803 | + } |
|
| 2498 | 2804 | continue; |
| 2499 | 2805 | } |
| 2500 | 2806 | $content = $attributes = null; |
| 2501 | 2807 | foreach( $theExdate['value'] as $eix => $exdatePart ) { |
| 2502 | 2808 | $parno = count( $exdatePart ); |
| 2503 | 2809 | $formatted = $this->_format_date_time( $exdatePart, $parno ); |
| 2504 | - if( isset( $theExdate['params']['TZID'] )) |
|
| 2505 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 2810 | + if( isset( $theExdate['params']['TZID'] )) { |
|
| 2811 | + $formatted = str_replace( 'Z', '', $formatted); |
|
| 2812 | + } |
|
| 2506 | 2813 | if( 0 < $eix ) { |
| 2507 | 2814 | if( isset( $theExdate['value'][0]['tz'] )) { |
| 2508 | 2815 | if( ctype_digit( substr( $theExdate['value'][0]['tz'], -4 )) || |
| 2509 | 2816 | ( 'Z' == $theExdate['value'][0]['tz'] )) { |
| 2510 | - if( 'Z' != substr( $formatted, -1 )) |
|
| 2511 | - $formatted .= 'Z'; |
|
| 2817 | + if( 'Z' != substr( $formatted, -1 )) { |
|
| 2818 | + $formatted .= 'Z'; |
|
| 2819 | + } |
|
| 2820 | + } else { |
|
| 2821 | + $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2512 | 2822 | } |
| 2513 | - else |
|
| 2514 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2823 | + } else { |
|
| 2824 | + $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2515 | 2825 | } |
| 2516 | - else |
|
| 2517 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2518 | 2826 | } |
| 2519 | 2827 | $content .= ( 0 < $eix ) ? ','.$formatted : $formatted; |
| 2520 | 2828 | } |
@@ -2538,34 +2846,39 @@ discard block |
||
| 2538 | 2846 | if( $this->getConfig( 'allowEmpty' )) { |
| 2539 | 2847 | $this->_setMval( $this->exdate, null, $params, FALSE, $index ); |
| 2540 | 2848 | return TRUE; |
| 2849 | + } else { |
|
| 2850 | + return FALSE; |
|
| 2541 | 2851 | } |
| 2542 | - else |
|
| 2543 | - return FALSE; |
|
| 2544 | 2852 | } |
| 2545 | 2853 | $input = array( 'params' => $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' ))); |
| 2546 | 2854 | /* ev. check 1:st date and save ev. timezone **/ |
| 2547 | 2855 | $this->_chkdatecfg( reset( $exdates ), $parno, $input['params'] ); |
| 2548 | 2856 | $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME' ); // remove default parameter |
| 2549 | 2857 | foreach( $exdates as $eix => $theExdate ) { |
| 2550 | - if( $this->_isArrayTimestampDate( $theExdate )) |
|
| 2551 | - $exdatea = $this->_timestamp2date( $theExdate, $parno ); |
|
| 2552 | - elseif( is_array( $theExdate )) |
|
| 2553 | - $exdatea = $this->_date_time_array( $theExdate, $parno ); |
|
| 2554 | - elseif( 8 <= strlen( trim( $theExdate ))) // ex. 2006-08-03 10:12:18 |
|
| 2858 | + if( $this->_isArrayTimestampDate( $theExdate )) { |
|
| 2859 | + $exdatea = $this->_timestamp2date( $theExdate, $parno ); |
|
| 2860 | + } elseif( is_array( $theExdate )) { |
|
| 2861 | + $exdatea = $this->_date_time_array( $theExdate, $parno ); |
|
| 2862 | + } elseif( 8 <= strlen( trim( $theExdate ))) { |
|
| 2863 | + // ex. 2006-08-03 10:12:18 |
|
| 2555 | 2864 | $exdatea = $this->_date_time_string( $theExdate, $parno ); |
| 2556 | - if( 3 == $parno ) |
|
| 2557 | - unset( $exdatea['hour'], $exdatea['min'], $exdatea['sec'], $exdatea['tz'] ); |
|
| 2558 | - elseif( isset( $exdatea['tz'] )) |
|
| 2559 | - $exdatea['tz'] = (string) $exdatea['tz']; |
|
| 2865 | + } |
|
| 2866 | + if( 3 == $parno ) { |
|
| 2867 | + unset( $exdatea['hour'], $exdatea['min'], $exdatea['sec'], $exdatea['tz'] ); |
|
| 2868 | + } elseif( isset( $exdatea['tz'] )) { |
|
| 2869 | + $exdatea['tz'] = (string) $exdatea['tz']; |
|
| 2870 | + } |
|
| 2560 | 2871 | if( isset( $input['params']['TZID'] ) || |
| 2561 | 2872 | ( isset( $exdatea['tz'] ) && !$this->_isOffset( $exdatea['tz'] )) || |
| 2562 | 2873 | ( isset( $input['value'][0] ) && ( !isset( $input['value'][0]['tz'] ))) || |
| 2563 | - ( isset( $input['value'][0]['tz'] ) && !$this->_isOffset( $input['value'][0]['tz'] ))) |
|
| 2564 | - unset( $exdatea['tz'] ); |
|
| 2874 | + ( isset( $input['value'][0]['tz'] ) && !$this->_isOffset( $input['value'][0]['tz'] ))) { |
|
| 2875 | + unset( $exdatea['tz'] ); |
|
| 2876 | + } |
|
| 2565 | 2877 | $input['value'][] = $exdatea; |
| 2566 | 2878 | } |
| 2567 | - if( 0 >= count( $input['value'] )) |
|
| 2568 | - return FALSE; |
|
| 2879 | + if( 0 >= count( $input['value'] )) { |
|
| 2880 | + return FALSE; |
|
| 2881 | + } |
|
| 2569 | 2882 | if( 3 == $parno ) { |
| 2570 | 2883 | $input['params']['VALUE'] = 'DATE'; |
| 2571 | 2884 | unset( $input['params']['TZID'] ); |
@@ -2585,7 +2898,9 @@ discard block |
||
| 2585 | 2898 | * @return string |
| 2586 | 2899 | */ |
| 2587 | 2900 | function createExrule() { |
| 2588 | - if( empty( $this->exrule )) return FALSE; |
|
| 2901 | + if( empty( $this->exrule )) { |
|
| 2902 | + return FALSE; |
|
| 2903 | + } |
|
| 2589 | 2904 | return $this->_format_recur( 'EXRULE', $this->exrule ); |
| 2590 | 2905 | } |
| 2591 | 2906 | /** |
@@ -2599,7 +2914,11 @@ discard block |
||
| 2599 | 2914 | * @return bool |
| 2600 | 2915 | */ |
| 2601 | 2916 | function setExrule( $exruleset, $params=FALSE, $index=FALSE ) { |
| 2602 | - if( empty( $exruleset )) if( $this->getConfig( 'allowEmpty' )) $exruleset = null; else return FALSE; |
|
| 2917 | + if( empty( $exruleset )) { |
|
| 2918 | + if( $this->getConfig( 'allowEmpty' )) $exruleset = null; |
|
| 2919 | + } else { |
|
| 2920 | + return FALSE; |
|
| 2921 | + } |
|
| 2603 | 2922 | $this->_setMval( $this->exrule, $this->_setRexrule( $exruleset ), $params, FALSE, $index ); |
| 2604 | 2923 | return TRUE; |
| 2605 | 2924 | } |
@@ -2615,11 +2934,15 @@ discard block |
||
| 2615 | 2934 | * @return string |
| 2616 | 2935 | */ |
| 2617 | 2936 | function createFreebusy() { |
| 2618 | - if( empty( $this->freebusy )) return FALSE; |
|
| 2937 | + if( empty( $this->freebusy )) { |
|
| 2938 | + return FALSE; |
|
| 2939 | + } |
|
| 2619 | 2940 | $output = null; |
| 2620 | 2941 | foreach( $this->freebusy as $freebusyPart ) { |
| 2621 | 2942 | if( empty( $freebusyPart['value'] )) { |
| 2622 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'FREEBUSY' ); |
|
| 2943 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 2944 | + $output .= $this->_createElement( 'FREEBUSY' ); |
|
| 2945 | + } |
|
| 2623 | 2946 | continue; |
| 2624 | 2947 | } |
| 2625 | 2948 | $attributes = $content = null; |
@@ -2627,9 +2950,9 @@ discard block |
||
| 2627 | 2950 | $attributes .= $this->intAttrDelimiter.'FBTYPE='.$freebusyPart['value']['fbtype']; |
| 2628 | 2951 | unset( $freebusyPart['value']['fbtype'] ); |
| 2629 | 2952 | $freebusyPart['value'] = array_values( $freebusyPart['value'] ); |
| 2953 | + } else { |
|
| 2954 | + $attributes .= $this->intAttrDelimiter.'FBTYPE=BUSY'; |
|
| 2630 | 2955 | } |
| 2631 | - else |
|
| 2632 | - $attributes .= $this->intAttrDelimiter.'FBTYPE=BUSY'; |
|
| 2633 | 2956 | $attributes .= $this->_createParams( $freebusyPart['params'] ); |
| 2634 | 2957 | $fno = 1; |
| 2635 | 2958 | $cnt = count( $freebusyPart['value']); |
@@ -2638,21 +2961,24 @@ discard block |
||
| 2638 | 2961 | $content .= $formatted; |
| 2639 | 2962 | $content .= '/'; |
| 2640 | 2963 | $cnt2 = count( $freebusyPeriod[1]); |
| 2641 | - if( array_key_exists( 'year', $freebusyPeriod[1] )) // date-time |
|
| 2964 | + if( array_key_exists( 'year', $freebusyPeriod[1] )) { |
|
| 2965 | + // date-time |
|
| 2642 | 2966 | $cnt2 = 7; |
| 2643 | - elseif( array_key_exists( 'week', $freebusyPeriod[1] )) // duration |
|
| 2967 | + } elseif( array_key_exists( 'week', $freebusyPeriod[1] )) { |
|
| 2968 | + // duration |
|
| 2644 | 2969 | $cnt2 = 5; |
| 2970 | + } |
|
| 2645 | 2971 | if(( 7 == $cnt2 ) && // period= -> date-time |
| 2646 | 2972 | isset( $freebusyPeriod[1]['year'] ) && |
| 2647 | 2973 | isset( $freebusyPeriod[1]['month'] ) && |
| 2648 | 2974 | isset( $freebusyPeriod[1]['day'] )) { |
| 2649 | 2975 | $content .= $this->_format_date_time( $freebusyPeriod[1] ); |
| 2650 | - } |
|
| 2651 | - else { // period= -> dur-time |
|
| 2976 | + } else { // period= -> dur-time |
|
| 2652 | 2977 | $content .= $this->_format_duration( $freebusyPeriod[1] ); |
| 2653 | 2978 | } |
| 2654 | - if( $fno < $cnt ) |
|
| 2655 | - $content .= ','; |
|
| 2979 | + if( $fno < $cnt ) { |
|
| 2980 | + $content .= ','; |
|
| 2981 | + } |
|
| 2656 | 2982 | $fno++; |
| 2657 | 2983 | } |
| 2658 | 2984 | $output .= $this->_createElement( 'FREEBUSY', $attributes, $content ); |
@@ -2675,14 +3001,15 @@ discard block |
||
| 2675 | 3001 | if( $this->getConfig( 'allowEmpty' )) { |
| 2676 | 3002 | $this->_setMval( $this->freebusy, null, $params, FALSE, $index ); |
| 2677 | 3003 | return TRUE; |
| 3004 | + } else { |
|
| 3005 | + return FALSE; |
|
| 2678 | 3006 | } |
| 2679 | - else |
|
| 2680 | - return FALSE; |
|
| 2681 | 3007 | } |
| 2682 | 3008 | $fbType = strtoupper( $fbType ); |
| 2683 | 3009 | if(( !in_array( $fbType, array( 'FREE', 'BUSY', 'BUSY-UNAVAILABLE', 'BUSY-TENTATIVE' ))) && |
| 2684 | - ( 'X-' != substr( $fbType, 0, 2 ))) |
|
| 2685 | - $fbType = 'BUSY'; |
|
| 3010 | + ( 'X-' != substr( $fbType, 0, 2 ))) { |
|
| 3011 | + $fbType = 'BUSY'; |
|
| 3012 | + } |
|
| 2686 | 3013 | $input = array( 'fbtype' => $fbType ); |
| 2687 | 3014 | foreach( $fbValues as $fbPeriod ) { // periods => period |
| 2688 | 3015 | $freebusyPeriod = array(); |
@@ -2692,22 +3019,19 @@ discard block |
||
| 2692 | 3019 | if( $this->_isArrayDate( $fbMember )) { // date-time value |
| 2693 | 3020 | $freebusyPairMember = $this->_date_time_array( $fbMember, 7 ); |
| 2694 | 3021 | $freebusyPairMember['tz'] = 'Z'; |
| 2695 | - } |
|
| 2696 | - elseif( $this->_isArrayTimestampDate( $fbMember )) { // timestamp value |
|
| 3022 | + } elseif( $this->_isArrayTimestampDate( $fbMember )) { // timestamp value |
|
| 2697 | 3023 | $freebusyPairMember = $this->_timestamp2date( $fbMember['timestamp'], 7 ); |
| 2698 | 3024 | $freebusyPairMember['tz'] = 'Z'; |
| 2699 | - } |
|
| 2700 | - else { // array format duration |
|
| 3025 | + } else { // array format duration |
|
| 2701 | 3026 | $freebusyPairMember = $this->_duration_array( $fbMember ); |
| 2702 | 3027 | } |
| 2703 | - } |
|
| 2704 | - elseif(( 3 <= strlen( trim( $fbMember ))) && // string format duration |
|
| 3028 | + } elseif(( 3 <= strlen( trim( $fbMember ))) && // string format duration |
|
| 2705 | 3029 | ( in_array( $fbMember{0}, array( 'P', '+', '-' )))) { |
| 2706 | - if( 'P' != $fbMember{0} ) |
|
| 2707 | - $fbmember = substr( $fbMember, 1 ); |
|
| 3030 | + if( 'P' != $fbMember{0} ) { |
|
| 3031 | + $fbmember = substr( $fbMember, 1 ); |
|
| 3032 | + } |
|
| 2708 | 3033 | $freebusyPairMember = $this->_duration_string( $fbMember ); |
| 2709 | - } |
|
| 2710 | - elseif( 8 <= strlen( trim( $fbMember ))) { // text date ex. 2006-08-03 10:12:18 |
|
| 3034 | + } elseif( 8 <= strlen( trim( $fbMember ))) { // text date ex. 2006-08-03 10:12:18 |
|
| 2711 | 3035 | $freebusyPairMember = $this->_date_time_string( $fbMember, 7 ); |
| 2712 | 3036 | $freebusyPairMember['tz'] = 'Z'; |
| 2713 | 3037 | } |
@@ -2730,9 +3054,12 @@ discard block |
||
| 2730 | 3054 | * @return string |
| 2731 | 3055 | */ |
| 2732 | 3056 | function createGeo() { |
| 2733 | - if( empty( $this->geo )) return FALSE; |
|
| 2734 | - if( empty( $this->geo['value'] )) |
|
| 2735 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'GEO' ) : FALSE; |
|
| 3057 | + if( empty( $this->geo )) { |
|
| 3058 | + return FALSE; |
|
| 3059 | + } |
|
| 3060 | + if( empty( $this->geo['value'] )) { |
|
| 3061 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'GEO' ) : FALSE; |
|
| 3062 | + } |
|
| 2736 | 3063 | $attributes = $this->_createParams( $this->geo['params'] ); |
| 2737 | 3064 | $content = null; |
| 2738 | 3065 | $content .= number_format( (float) $this->geo['value']['latitude'], 6, '.', ''); |
@@ -2752,15 +3079,17 @@ discard block |
||
| 2752 | 3079 | */ |
| 2753 | 3080 | function setGeo( $latitude, $longitude, $params=FALSE ) { |
| 2754 | 3081 | if( !empty( $latitude ) && !empty( $longitude )) { |
| 2755 | - if( !is_array( $this->geo )) $this->geo = array(); |
|
| 3082 | + if( !is_array( $this->geo )) { |
|
| 3083 | + $this->geo = array(); |
|
| 3084 | + } |
|
| 2756 | 3085 | $this->geo['value']['latitude'] = $latitude; |
| 2757 | 3086 | $this->geo['value']['longitude'] = $longitude; |
| 2758 | 3087 | $this->geo['params'] = $this->_setParams( $params ); |
| 3088 | + } elseif( $this->getConfig( 'allowEmpty' )) { |
|
| 3089 | + $this->geo = array( 'value' => null, 'params' => $this->_setParams( $params ) ); |
|
| 3090 | + } else { |
|
| 3091 | + return FALSE; |
|
| 2759 | 3092 | } |
| 2760 | - elseif( $this->getConfig( 'allowEmpty' )) |
|
| 2761 | - $this->geo = array( 'value' => null, 'params' => $this->_setParams( $params ) ); |
|
| 2762 | - else |
|
| 2763 | - return FALSE; |
|
| 2764 | 3093 | return TRUE; |
| 2765 | 3094 | } |
| 2766 | 3095 | /*********************************************************************************/ |
@@ -2775,7 +3104,9 @@ discard block |
||
| 2775 | 3104 | * @return string |
| 2776 | 3105 | */ |
| 2777 | 3106 | function createLastModified() { |
| 2778 | - if( empty( $this->lastmodified )) return FALSE; |
|
| 3107 | + if( empty( $this->lastmodified )) { |
|
| 3108 | + return FALSE; |
|
| 3109 | + } |
|
| 2779 | 3110 | $attributes = $this->_createParams( $this->lastmodified['params'] ); |
| 2780 | 3111 | $formatted = $this->_format_date_time( $this->lastmodified['value'], 7 ); |
| 2781 | 3112 | return $this->_createElement( 'LAST-MODIFIED', $attributes, $formatted ); |
@@ -2795,8 +3126,9 @@ discard block |
||
| 2795 | 3126 | * @return boll |
| 2796 | 3127 | */ |
| 2797 | 3128 | function setLastModified( $year=FALSE, $month=FALSE, $day=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $params=FALSE ) { |
| 2798 | - if( empty( $year )) |
|
| 2799 | - $year = date('Ymd\THis', mktime( date( 'H' ), date( 'i' ), date( 's' ) - date( 'Z'), date( 'm' ), date( 'd' ), date( 'Y' ))); |
|
| 3129 | + if( empty( $year )) { |
|
| 3130 | + $year = date('Ymd\THis', mktime( date( 'H' ), date( 'i' ), date( 's' ) - date( 'Z'), date( 'm' ), date( 'd' ), date( 'Y' ))); |
|
| 3131 | + } |
|
| 2800 | 3132 | $this->lastmodified = $this->_setDate2( $year, $month, $day, $hour, $min, $sec, $params ); |
| 2801 | 3133 | return TRUE; |
| 2802 | 3134 | } |
@@ -2812,9 +3144,12 @@ discard block |
||
| 2812 | 3144 | * @return string |
| 2813 | 3145 | */ |
| 2814 | 3146 | function createLocation() { |
| 2815 | - if( empty( $this->location )) return FALSE; |
|
| 2816 | - if( empty( $this->location['value'] )) |
|
| 2817 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'LOCATION' ) : FALSE; |
|
| 3147 | + if( empty( $this->location )) { |
|
| 3148 | + return FALSE; |
|
| 3149 | + } |
|
| 3150 | + if( empty( $this->location['value'] )) { |
|
| 3151 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'LOCATION' ) : FALSE; |
|
| 3152 | + } |
|
| 2818 | 3153 | $attributes = $this->_createParams( $this->location['params'], array( 'ALTREP', 'LANGUAGE' )); |
| 2819 | 3154 | $content = $this->_strrep( $this->location['value'] ); |
| 2820 | 3155 | return $this->_createElement( 'LOCATION', $attributes, $content ); |
@@ -2829,7 +3164,11 @@ discard block |
||
| 2829 | 3164 | * @return bool |
| 2830 | 3165 | */ |
| 2831 | 3166 | function setLocation( $value, $params=FALSE ) { |
| 2832 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3167 | + if( empty( $value )) { |
|
| 3168 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3169 | + } else { |
|
| 3170 | + return FALSE; |
|
| 3171 | + } |
|
| 2833 | 3172 | $this->location = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 2834 | 3173 | return TRUE; |
| 2835 | 3174 | } |
@@ -2845,9 +3184,12 @@ discard block |
||
| 2845 | 3184 | * @return string |
| 2846 | 3185 | */ |
| 2847 | 3186 | function createOrganizer() { |
| 2848 | - if( empty( $this->organizer )) return FALSE; |
|
| 2849 | - if( empty( $this->organizer['value'] )) |
|
| 2850 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ORGANIZER' ) : FALSE; |
|
| 3187 | + if( empty( $this->organizer )) { |
|
| 3188 | + return FALSE; |
|
| 3189 | + } |
|
| 3190 | + if( empty( $this->organizer['value'] )) { |
|
| 3191 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'ORGANIZER' ) : FALSE; |
|
| 3192 | + } |
|
| 2851 | 3193 | $attributes = $this->_createParams( $this->organizer['params'] |
| 2852 | 3194 | , array( 'CN', 'DIR', 'LANGUAGE', 'SENT-BY' )); |
| 2853 | 3195 | $content = 'MAILTO:'.$this->organizer['value']; |
@@ -2863,13 +3205,18 @@ discard block |
||
| 2863 | 3205 | * @return bool |
| 2864 | 3206 | */ |
| 2865 | 3207 | function setOrganizer( $value, $params=FALSE ) { |
| 2866 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3208 | + if( empty( $value )) { |
|
| 3209 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3210 | + } else { |
|
| 3211 | + return FALSE; |
|
| 3212 | + } |
|
| 2867 | 3213 | $value = str_replace ( 'MAILTO:', '', $value ); |
| 2868 | 3214 | $value = str_replace ( 'mailto:', '', $value ); |
| 2869 | 3215 | $this->organizer = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 2870 | 3216 | if( isset( $this->organizer['params']['SENT-BY'] )) { |
| 2871 | - if( 'MAILTO' == strtoupper( substr( $this->organizer['params']['SENT-BY'], 0, 6 ))) |
|
| 2872 | - $this->organizer['params']['SENT-BY'] = substr( $this->organizer['params']['SENT-BY'], 7 ); |
|
| 3217 | + if( 'MAILTO' == strtoupper( substr( $this->organizer['params']['SENT-BY'], 0, 6 ))) { |
|
| 3218 | + $this->organizer['params']['SENT-BY'] = substr( $this->organizer['params']['SENT-BY'], 7 ); |
|
| 3219 | + } |
|
| 2873 | 3220 | } |
| 2874 | 3221 | return TRUE; |
| 2875 | 3222 | } |
@@ -2885,9 +3232,12 @@ discard block |
||
| 2885 | 3232 | * @return string |
| 2886 | 3233 | */ |
| 2887 | 3234 | function createPercentComplete() { |
| 2888 | - if( empty( $this->percentcomplete )) return FALSE; |
|
| 2889 | - if( empty( $this->percentcomplete['value'] )) |
|
| 2890 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PERCENT-COMPLETE' ) : FALSE; |
|
| 3235 | + if( empty( $this->percentcomplete )) { |
|
| 3236 | + return FALSE; |
|
| 3237 | + } |
|
| 3238 | + if( empty( $this->percentcomplete['value'] )) { |
|
| 3239 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PERCENT-COMPLETE' ) : FALSE; |
|
| 3240 | + } |
|
| 2891 | 3241 | $attributes = $this->_createParams( $this->percentcomplete['params'] ); |
| 2892 | 3242 | return $this->_createElement( 'PERCENT-COMPLETE', $attributes, $this->percentcomplete['value'] ); |
| 2893 | 3243 | } |
@@ -2901,7 +3251,11 @@ discard block |
||
| 2901 | 3251 | * @return bool |
| 2902 | 3252 | */ |
| 2903 | 3253 | function setPercentComplete( $value, $params=FALSE ) { |
| 2904 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3254 | + if( empty( $value )) { |
|
| 3255 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3256 | + } else { |
|
| 3257 | + return FALSE; |
|
| 3258 | + } |
|
| 2905 | 3259 | $this->percentcomplete = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 2906 | 3260 | return TRUE; |
| 2907 | 3261 | } |
@@ -2917,9 +3271,12 @@ discard block |
||
| 2917 | 3271 | * @return string |
| 2918 | 3272 | */ |
| 2919 | 3273 | function createPriority() { |
| 2920 | - if( empty( $this->priority )) return FALSE; |
|
| 2921 | - if( empty( $this->priority['value'] )) |
|
| 2922 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PRIORITY' ) : FALSE; |
|
| 3274 | + if( empty( $this->priority )) { |
|
| 3275 | + return FALSE; |
|
| 3276 | + } |
|
| 3277 | + if( empty( $this->priority['value'] )) { |
|
| 3278 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'PRIORITY' ) : FALSE; |
|
| 3279 | + } |
|
| 2923 | 3280 | $attributes = $this->_createParams( $this->priority['params'] ); |
| 2924 | 3281 | return $this->_createElement( 'PRIORITY', $attributes, $this->priority['value'] ); |
| 2925 | 3282 | } |
@@ -2933,7 +3290,11 @@ discard block |
||
| 2933 | 3290 | * @return bool |
| 2934 | 3291 | */ |
| 2935 | 3292 | function setPriority( $value, $params=FALSE ) { |
| 2936 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3293 | + if( empty( $value )) { |
|
| 3294 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3295 | + } else { |
|
| 3296 | + return FALSE; |
|
| 3297 | + } |
|
| 2937 | 3298 | $this->priority = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 2938 | 3299 | return TRUE; |
| 2939 | 3300 | } |
@@ -2949,18 +3310,24 @@ discard block |
||
| 2949 | 3310 | * @return string |
| 2950 | 3311 | */ |
| 2951 | 3312 | function createRdate() { |
| 2952 | - if( empty( $this->rdate )) return FALSE; |
|
| 3313 | + if( empty( $this->rdate )) { |
|
| 3314 | + return FALSE; |
|
| 3315 | + } |
|
| 2953 | 3316 | $utctime = ( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) ? TRUE : FALSE; |
| 2954 | 3317 | $output = null; |
| 2955 | - if( $utctime ) |
|
| 2956 | - unset( $this->rdate['params']['TZID'] ); |
|
| 3318 | + if( $utctime ) { |
|
| 3319 | + unset( $this->rdate['params']['TZID'] ); |
|
| 3320 | + } |
|
| 2957 | 3321 | foreach( $this->rdate as $theRdate ) { |
| 2958 | 3322 | if( empty( $theRdate['value'] )) { |
| 2959 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'RDATE' ); |
|
| 3323 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 3324 | + $output .= $this->_createElement( 'RDATE' ); |
|
| 3325 | + } |
|
| 2960 | 3326 | continue; |
| 2961 | 3327 | } |
| 2962 | - if( $utctime ) |
|
| 2963 | - unset( $theRdate['params']['TZID'] ); |
|
| 3328 | + if( $utctime ) { |
|
| 3329 | + unset( $theRdate['params']['TZID'] ); |
|
| 3330 | + } |
|
| 2964 | 3331 | $attributes = $this->_createParams( $theRdate['params'] ); |
| 2965 | 3332 | $cnt = count( $theRdate['value'] ); |
| 2966 | 3333 | $content = null; |
@@ -2969,68 +3336,84 @@ discard block |
||
| 2969 | 3336 | $contentPart = null; |
| 2970 | 3337 | if( is_array( $rdatePart ) && |
| 2971 | 3338 | isset( $theRdate['params']['VALUE'] ) && ( 'PERIOD' == $theRdate['params']['VALUE'] )) { // PERIOD |
| 2972 | - if( $utctime ) |
|
| 2973 | - unset( $rdatePart[0]['tz'] ); |
|
| 3339 | + if( $utctime ) { |
|
| 3340 | + unset( $rdatePart[0]['tz'] ); |
|
| 3341 | + } |
|
| 2974 | 3342 | $formatted = $this->_format_date_time( $rdatePart[0]); // PERIOD part 1 |
| 2975 | - if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 2976 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 3343 | + if( $utctime || !empty( $theRdate['params']['TZID'] )) { |
|
| 3344 | + $formatted = str_replace( 'Z', '', $formatted); |
|
| 3345 | + } |
|
| 2977 | 3346 | if( 0 < $rpix ) { |
| 2978 | 3347 | if( !empty( $rdatePart[0]['tz'] ) && $this->_isOffset( $rdatePart[0]['tz'] )) { |
| 2979 | - if( 'Z' != substr( $formatted, -1 )) $formatted .= 'Z'; |
|
| 3348 | + if( 'Z' != substr( $formatted, -1 )) { |
|
| 3349 | + $formatted .= 'Z'; |
|
| 3350 | + } |
|
| 3351 | + } else { |
|
| 3352 | + $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2980 | 3353 | } |
| 2981 | - else |
|
| 2982 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 2983 | 3354 | } |
| 2984 | 3355 | $contentPart .= $formatted; |
| 2985 | 3356 | $contentPart .= '/'; |
| 2986 | 3357 | $cnt2 = count( $rdatePart[1]); |
| 2987 | 3358 | if( array_key_exists( 'year', $rdatePart[1] )) { |
| 2988 | - if( array_key_exists( 'hour', $rdatePart[1] )) |
|
| 2989 | - $cnt2 = 7; // date-time |
|
| 2990 | - else |
|
| 2991 | - $cnt2 = 3; // date |
|
| 2992 | - } |
|
| 2993 | - elseif( array_key_exists( 'week', $rdatePart[1] )) // duration |
|
| 3359 | + if( array_key_exists( 'hour', $rdatePart[1] )) { |
|
| 3360 | + $cnt2 = 7; |
|
| 3361 | + } |
|
| 3362 | + // date-time |
|
| 3363 | + else { |
|
| 3364 | + $cnt2 = 3; |
|
| 3365 | + } |
|
| 3366 | + // date |
|
| 3367 | + } elseif( array_key_exists( 'week', $rdatePart[1] )) { |
|
| 3368 | + // duration |
|
| 2994 | 3369 | $cnt2 = 5; |
| 3370 | + } |
|
| 2995 | 3371 | if(( 7 == $cnt2 ) && // period= -> date-time |
| 2996 | 3372 | isset( $rdatePart[1]['year'] ) && |
| 2997 | 3373 | isset( $rdatePart[1]['month'] ) && |
| 2998 | 3374 | isset( $rdatePart[1]['day'] )) { |
| 2999 | - if( $utctime ) |
|
| 3000 | - unset( $rdatePart[1]['tz'] ); |
|
| 3375 | + if( $utctime ) { |
|
| 3376 | + unset( $rdatePart[1]['tz'] ); |
|
| 3377 | + } |
|
| 3001 | 3378 | $formatted = $this->_format_date_time( $rdatePart[1] ); // PERIOD part 2 |
| 3002 | - if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 3003 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 3379 | + if( $utctime || !empty( $theRdate['params']['TZID'] )) { |
|
| 3380 | + $formatted = str_replace( 'Z', '', $formatted); |
|
| 3381 | + } |
|
| 3004 | 3382 | if( !empty( $rdatePart[0]['tz'] ) && $this->_isOffset( $rdatePart[0]['tz'] )) { |
| 3005 | - if( 'Z' != substr( $formatted, -1 )) $formatted .= 'Z'; |
|
| 3383 | + if( 'Z' != substr( $formatted, -1 )) { |
|
| 3384 | + $formatted .= 'Z'; |
|
| 3385 | + } |
|
| 3386 | + } else { |
|
| 3387 | + $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3006 | 3388 | } |
| 3007 | - else |
|
| 3008 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3009 | 3389 | $contentPart .= $formatted; |
| 3010 | - } |
|
| 3011 | - else { // period= -> dur-time |
|
| 3390 | + } else { // period= -> dur-time |
|
| 3012 | 3391 | $contentPart .= $this->_format_duration( $rdatePart[1] ); |
| 3013 | 3392 | } |
| 3014 | 3393 | } // PERIOD end |
| 3015 | 3394 | else { // SINGLE date start |
| 3016 | - if( $utctime ) |
|
| 3017 | - unset( $rdatePart['tz'] ); |
|
| 3395 | + if( $utctime ) { |
|
| 3396 | + unset( $rdatePart['tz'] ); |
|
| 3397 | + } |
|
| 3018 | 3398 | $formatted = $this->_format_date_time( $rdatePart); |
| 3019 | - if( $utctime || !empty( $theRdate['params']['TZID'] )) |
|
| 3020 | - $formatted = str_replace( 'Z', '', $formatted); |
|
| 3399 | + if( $utctime || !empty( $theRdate['params']['TZID'] )) { |
|
| 3400 | + $formatted = str_replace( 'Z', '', $formatted); |
|
| 3401 | + } |
|
| 3021 | 3402 | if( !$utctime && ( 0 < $rpix )) { |
| 3022 | 3403 | if( !empty( $theRdate['value'][0]['tz'] ) && $this->_isOffset( $theRdate['value'][0]['tz'] )) { |
| 3023 | - if( 'Z' != substr( $formatted, -1 )) |
|
| 3024 | - $formatted .= 'Z'; |
|
| 3404 | + if( 'Z' != substr( $formatted, -1 )) { |
|
| 3405 | + $formatted .= 'Z'; |
|
| 3406 | + } |
|
| 3407 | + } else { |
|
| 3408 | + $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3025 | 3409 | } |
| 3026 | - else |
|
| 3027 | - $formatted = str_replace( 'Z', '', $formatted ); |
|
| 3028 | 3410 | } |
| 3029 | 3411 | $contentPart .= $formatted; |
| 3030 | 3412 | } |
| 3031 | 3413 | $content .= $contentPart; |
| 3032 | - if( $rno < $cnt ) |
|
| 3033 | - $content .= ','; |
|
| 3414 | + if( $rno < $cnt ) { |
|
| 3415 | + $content .= ','; |
|
| 3416 | + } |
|
| 3034 | 3417 | $rno++; |
| 3035 | 3418 | } |
| 3036 | 3419 | $output .= $this->_createElement( 'RDATE', $attributes, $content ); |
@@ -3052,9 +3435,9 @@ discard block |
||
| 3052 | 3435 | if( $this->getConfig( 'allowEmpty' )) { |
| 3053 | 3436 | $this->_setMval( $this->rdate, null, $params, FALSE, $index ); |
| 3054 | 3437 | return TRUE; |
| 3438 | + } else { |
|
| 3439 | + return FALSE; |
|
| 3055 | 3440 | } |
| 3056 | - else |
|
| 3057 | - return FALSE; |
|
| 3058 | 3441 | } |
| 3059 | 3442 | $input = array( 'params' => $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' ))); |
| 3060 | 3443 | if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) { |
@@ -3068,15 +3451,19 @@ discard block |
||
| 3068 | 3451 | (( is_array( $rdates[0][0] ) && ( isset( $rdates[0][0]['timestamp'] ) || |
| 3069 | 3452 | $this->_isArrayDate( $rdates[0][0] ))) || |
| 3070 | 3453 | ( is_string( $rdates[0][0] ) && ( 8 <= strlen( trim( $rdates[0][0] ))))) && |
| 3071 | - ( is_array( $rdates[0][1] ) || ( is_string( $rdates[0][1] ) && ( 3 <= strlen( trim( $rdates[0][1] )))))) |
|
| 3072 | - $input['params']['VALUE'] = 'PERIOD'; |
|
| 3454 | + ( is_array( $rdates[0][1] ) || ( is_string( $rdates[0][1] ) && ( 3 <= strlen( trim( $rdates[0][1] )))))) { |
|
| 3455 | + $input['params']['VALUE'] = 'PERIOD'; |
|
| 3456 | + } |
|
| 3073 | 3457 | /* check 1:st date, upd. $parno (opt) and save ev. timezone **/ |
| 3074 | 3458 | $date = reset( $rdates ); |
| 3075 | - if( isset( $input['params']['VALUE'] ) && ( 'PERIOD' == $input['params']['VALUE'] )) // PERIOD |
|
| 3459 | + if( isset( $input['params']['VALUE'] ) && ( 'PERIOD' == $input['params']['VALUE'] )) { |
|
| 3460 | + // PERIOD |
|
| 3076 | 3461 | $date = reset( $date ); |
| 3462 | + } |
|
| 3077 | 3463 | $this->_chkdatecfg( $date, $parno, $input['params'] ); |
| 3078 | - if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) |
|
| 3079 | - unset( $input['params']['TZID'] ); |
|
| 3464 | + if( in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) { |
|
| 3465 | + unset( $input['params']['TZID'] ); |
|
| 3466 | + } |
|
| 3080 | 3467 | $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME' ); // remove default |
| 3081 | 3468 | foreach( $rdates as $rpix => $theRdate ) { |
| 3082 | 3469 | $inputa = null; |
@@ -3084,48 +3471,60 @@ discard block |
||
| 3084 | 3471 | if( isset( $input['params']['VALUE'] ) && ( 'PERIOD' == $input['params']['VALUE'] )) { // PERIOD |
| 3085 | 3472 | foreach( $theRdate as $rix => $rPeriod ) { |
| 3086 | 3473 | if( is_array( $rPeriod )) { |
| 3087 | - if( $this->_isArrayTimestampDate( $rPeriod )) // timestamp |
|
| 3474 | + if( $this->_isArrayTimestampDate( $rPeriod )) { |
|
| 3475 | + // timestamp |
|
| 3088 | 3476 | $inputab = ( isset( $rPeriod['tz'] )) ? $this->_timestamp2date( $rPeriod, $parno ) : $this->_timestamp2date( $rPeriod, 6 ); |
| 3089 | - elseif( $this->_isArrayDate( $rPeriod )) |
|
| 3090 | - $inputab = ( 3 < count ( $rPeriod )) ? $this->_date_time_array( $rPeriod, $parno ) : $this->_date_time_array( $rPeriod, 6 ); |
|
| 3091 | - elseif (( 1 == count( $rPeriod )) && ( 8 <= strlen( reset( $rPeriod )))) // text-date |
|
| 3477 | + } elseif( $this->_isArrayDate( $rPeriod )) { |
|
| 3478 | + $inputab = ( 3 < count ( $rPeriod )) ? $this->_date_time_array( $rPeriod, $parno ) : $this->_date_time_array( $rPeriod, 6 ); |
|
| 3479 | + } elseif (( 1 == count( $rPeriod )) && ( 8 <= strlen( reset( $rPeriod )))) { |
|
| 3480 | + // text-date |
|
| 3092 | 3481 | $inputab = $this->_date_time_string( reset( $rPeriod ), $parno ); |
| 3093 | - else // array format duration |
|
| 3482 | + } else { |
|
| 3483 | + // array format duration |
|
| 3094 | 3484 | $inputab = $this->_duration_array( $rPeriod ); |
| 3095 | - } |
|
| 3096 | - elseif(( 3 <= strlen( trim( $rPeriod ))) && // string format duration |
|
| 3485 | + } |
|
| 3486 | + } elseif(( 3 <= strlen( trim( $rPeriod ))) && // string format duration |
|
| 3097 | 3487 | ( in_array( $rPeriod{0}, array( 'P', '+', '-' )))) { |
| 3098 | - if( 'P' != $rPeriod{0} ) |
|
| 3099 | - $rPeriod = substr( $rPeriod, 1 ); |
|
| 3488 | + if( 'P' != $rPeriod{0} ) { |
|
| 3489 | + $rPeriod = substr( $rPeriod, 1 ); |
|
| 3490 | + } |
|
| 3100 | 3491 | $inputab = $this->_duration_string( $rPeriod ); |
| 3101 | - } |
|
| 3102 | - elseif( 8 <= strlen( trim( $rPeriod ))) // text date ex. 2006-08-03 10:12:18 |
|
| 3492 | + } elseif( 8 <= strlen( trim( $rPeriod ))) { |
|
| 3493 | + // text date ex. 2006-08-03 10:12:18 |
|
| 3103 | 3494 | $inputab = $this->_date_time_string( $rPeriod, $parno ); |
| 3495 | + } |
|
| 3104 | 3496 | if( isset( $input['params']['TZID'] ) || |
| 3105 | 3497 | ( isset( $inputab['tz'] ) && !$this->_isOffset( $inputab['tz'] )) || |
| 3106 | 3498 | ( isset( $inputa[0] ) && ( !isset( $inputa[0]['tz'] ))) || |
| 3107 | - ( isset( $inputa[0]['tz'] ) && !$this->_isOffset( $inputa[0]['tz'] ))) |
|
| 3108 | - unset( $inputab['tz'] ); |
|
| 3499 | + ( isset( $inputa[0]['tz'] ) && !$this->_isOffset( $inputa[0]['tz'] ))) { |
|
| 3500 | + unset( $inputab['tz'] ); |
|
| 3501 | + } |
|
| 3109 | 3502 | $inputa[] = $inputab; |
| 3110 | 3503 | } |
| 3111 | 3504 | } // PERIOD end |
| 3112 | - elseif ( $this->_isArrayTimestampDate( $theRdate )) // timestamp |
|
| 3505 | + elseif ( $this->_isArrayTimestampDate( $theRdate )) { |
|
| 3506 | + // timestamp |
|
| 3113 | 3507 | $inputa = $this->_timestamp2date( $theRdate, $parno ); |
| 3114 | - else // date[-time] |
|
| 3508 | + } else { |
|
| 3509 | + // date[-time] |
|
| 3115 | 3510 | $inputa = $this->_date_time_array( $theRdate, $parno ); |
| 3116 | - } |
|
| 3117 | - elseif( 8 <= strlen( trim( $theRdate ))) // text date ex. 2006-08-03 10:12:18 |
|
| 3511 | + } |
|
| 3512 | + } elseif( 8 <= strlen( trim( $theRdate ))) { |
|
| 3513 | + // text date ex. 2006-08-03 10:12:18 |
|
| 3118 | 3514 | $inputa = $this->_date_time_string( $theRdate, $parno ); |
| 3515 | + } |
|
| 3119 | 3516 | if( !isset( $input['params']['VALUE'] ) || ( 'PERIOD' != $input['params']['VALUE'] )) { // no PERIOD |
| 3120 | - if( 3 == $parno ) |
|
| 3121 | - unset( $inputa['hour'], $inputa['min'], $inputa['sec'], $inputa['tz'] ); |
|
| 3122 | - elseif( isset( $inputa['tz'] )) |
|
| 3123 | - $inputa['tz'] = (string) $inputa['tz']; |
|
| 3517 | + if( 3 == $parno ) { |
|
| 3518 | + unset( $inputa['hour'], $inputa['min'], $inputa['sec'], $inputa['tz'] ); |
|
| 3519 | + } elseif( isset( $inputa['tz'] )) { |
|
| 3520 | + $inputa['tz'] = (string) $inputa['tz']; |
|
| 3521 | + } |
|
| 3124 | 3522 | if( isset( $input['params']['TZID'] ) || |
| 3125 | 3523 | ( isset( $inputa['tz'] ) && !$this->_isOffset( $inputa['tz'] )) || |
| 3126 | 3524 | ( isset( $input['value'][0] ) && ( !isset( $input['value'][0]['tz'] ))) || |
| 3127 | - ( isset( $input['value'][0]['tz'] ) && !$this->_isOffset( $input['value'][0]['tz'] ))) |
|
| 3128 | - unset( $inputa['tz'] ); |
|
| 3525 | + ( isset( $input['value'][0]['tz'] ) && !$this->_isOffset( $input['value'][0]['tz'] ))) { |
|
| 3526 | + unset( $inputa['tz'] ); |
|
| 3527 | + } |
|
| 3129 | 3528 | } |
| 3130 | 3529 | $input['value'][] = $inputa; |
| 3131 | 3530 | } |
@@ -3148,9 +3547,12 @@ discard block |
||
| 3148 | 3547 | * @return string |
| 3149 | 3548 | */ |
| 3150 | 3549 | function createRecurrenceid() { |
| 3151 | - if( empty( $this->recurrenceid )) return FALSE; |
|
| 3152 | - if( empty( $this->recurrenceid['value'] )) |
|
| 3153 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'RECURRENCE-ID' ) : FALSE; |
|
| 3550 | + if( empty( $this->recurrenceid )) { |
|
| 3551 | + return FALSE; |
|
| 3552 | + } |
|
| 3553 | + if( empty( $this->recurrenceid['value'] )) { |
|
| 3554 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'RECURRENCE-ID' ) : FALSE; |
|
| 3555 | + } |
|
| 3154 | 3556 | $formatted = $this->_format_date_time( $this->recurrenceid['value'] ); |
| 3155 | 3557 | $attributes = $this->_createParams( $this->recurrenceid['params'] ); |
| 3156 | 3558 | return $this->_createElement( 'RECURRENCE-ID', $attributes, $formatted ); |
@@ -3174,9 +3576,9 @@ discard block |
||
| 3174 | 3576 | if( $this->getConfig( 'allowEmpty' )) { |
| 3175 | 3577 | $this->recurrenceid = array( 'value' => null, 'params' => null ); |
| 3176 | 3578 | return TRUE; |
| 3579 | + } else { |
|
| 3580 | + return FALSE; |
|
| 3177 | 3581 | } |
| 3178 | - else |
|
| 3179 | - return FALSE; |
|
| 3180 | 3582 | } |
| 3181 | 3583 | $this->recurrenceid = $this->_setDate( $year, $month, $day, $hour, $min, $sec, $tz, $params ); |
| 3182 | 3584 | return TRUE; |
@@ -3193,11 +3595,15 @@ discard block |
||
| 3193 | 3595 | * @return string |
| 3194 | 3596 | */ |
| 3195 | 3597 | function createRelatedTo() { |
| 3196 | - if( empty( $this->relatedto )) return FALSE; |
|
| 3598 | + if( empty( $this->relatedto )) { |
|
| 3599 | + return FALSE; |
|
| 3600 | + } |
|
| 3197 | 3601 | $output = null; |
| 3198 | 3602 | foreach( $this->relatedto as $relation ) { |
| 3199 | 3603 | if( empty( $relation['value'] )) { |
| 3200 | - if( $this->getConfig( 'allowEmpty' )) $output.= $this->_createElement( 'RELATED-TO', $this->_createParams( $relation['params'] )); |
|
| 3604 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 3605 | + $output.= $this->_createElement( 'RELATED-TO', $this->_createParams( $relation['params'] )); |
|
| 3606 | + } |
|
| 3201 | 3607 | continue; |
| 3202 | 3608 | } |
| 3203 | 3609 | $attributes = $this->_createParams( $relation['params'] ); |
@@ -3219,9 +3625,14 @@ discard block |
||
| 3219 | 3625 | * @return bool |
| 3220 | 3626 | */ |
| 3221 | 3627 | function setRelatedTo( $value, $params=FALSE, $index=FALSE ) { |
| 3222 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3223 | - if(( '<' == substr( $value, 0, 1 )) && ( '>' == substr( $value, -1 ))) |
|
| 3224 | - $value = substr( $value, 1, ( strlen( $value ) - 2 )); |
|
| 3628 | + if( empty( $value )) { |
|
| 3629 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3630 | + } else { |
|
| 3631 | + return FALSE; |
|
| 3632 | + } |
|
| 3633 | + if(( '<' == substr( $value, 0, 1 )) && ( '>' == substr( $value, -1 ))) { |
|
| 3634 | + $value = substr( $value, 1, ( strlen( $value ) - 2 )); |
|
| 3635 | + } |
|
| 3225 | 3636 | $this->_existRem( $params, 'RELTYPE', 'PARENT', TRUE ); // remove default |
| 3226 | 3637 | $this->_setMval( $this->relatedto, $value, $params, FALSE, $index ); |
| 3227 | 3638 | return TRUE; |
@@ -3238,9 +3649,12 @@ discard block |
||
| 3238 | 3649 | * @return string |
| 3239 | 3650 | */ |
| 3240 | 3651 | function createRepeat() { |
| 3241 | - if( empty( $this->repeat )) return FALSE; |
|
| 3242 | - if( empty( $this->repeat['value'] )) |
|
| 3243 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'REPEAT' ) : FALSE; |
|
| 3652 | + if( empty( $this->repeat )) { |
|
| 3653 | + return FALSE; |
|
| 3654 | + } |
|
| 3655 | + if( empty( $this->repeat['value'] )) { |
|
| 3656 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'REPEAT' ) : FALSE; |
|
| 3657 | + } |
|
| 3244 | 3658 | $attributes = $this->_createParams( $this->repeat['params'] ); |
| 3245 | 3659 | return $this->_createElement( 'REPEAT', $attributes, $this->repeat['value'] ); |
| 3246 | 3660 | } |
@@ -3254,7 +3668,11 @@ discard block |
||
| 3254 | 3668 | * @return void |
| 3255 | 3669 | */ |
| 3256 | 3670 | function setRepeat( $value, $params=FALSE ) { |
| 3257 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3671 | + if( empty( $value )) { |
|
| 3672 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3673 | + } else { |
|
| 3674 | + return FALSE; |
|
| 3675 | + } |
|
| 3258 | 3676 | $this->repeat = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3259 | 3677 | return TRUE; |
| 3260 | 3678 | } |
@@ -3269,18 +3687,23 @@ discard block |
||
| 3269 | 3687 | * @return string |
| 3270 | 3688 | */ |
| 3271 | 3689 | function createRequestStatus() { |
| 3272 | - if( empty( $this->requeststatus )) return FALSE; |
|
| 3690 | + if( empty( $this->requeststatus )) { |
|
| 3691 | + return FALSE; |
|
| 3692 | + } |
|
| 3273 | 3693 | $output = null; |
| 3274 | 3694 | foreach( $this->requeststatus as $rstat ) { |
| 3275 | 3695 | if( empty( $rstat['value']['statcode'] )) { |
| 3276 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'REQUEST-STATUS' ); |
|
| 3696 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 3697 | + $output .= $this->_createElement( 'REQUEST-STATUS' ); |
|
| 3698 | + } |
|
| 3277 | 3699 | continue; |
| 3278 | 3700 | } |
| 3279 | 3701 | $attributes = $this->_createParams( $rstat['params'], array( 'LANGUAGE' )); |
| 3280 | 3702 | $content = number_format( (float) $rstat['value']['statcode'], 2, '.', ''); |
| 3281 | 3703 | $content .= ';'.$this->_strrep( $rstat['value']['text'] ); |
| 3282 | - if( isset( $rstat['value']['extdata'] )) |
|
| 3283 | - $content .= ';'.$this->_strrep( $rstat['value']['extdata'] ); |
|
| 3704 | + if( isset( $rstat['value']['extdata'] )) { |
|
| 3705 | + $content .= ';'.$this->_strrep( $rstat['value']['extdata'] ); |
|
| 3706 | + } |
|
| 3284 | 3707 | $output .= $this->_createElement( 'REQUEST-STATUS', $attributes, $content ); |
| 3285 | 3708 | } |
| 3286 | 3709 | return $output; |
@@ -3298,10 +3721,15 @@ discard block |
||
| 3298 | 3721 | * @return bool |
| 3299 | 3722 | */ |
| 3300 | 3723 | function setRequestStatus( $statcode, $text, $extdata=FALSE, $params=FALSE, $index=FALSE ) { |
| 3301 | - if( empty( $statcode ) || empty( $text )) if( $this->getConfig( 'allowEmpty' )) $statcode = $text = null; else return FALSE; |
|
| 3724 | + if( empty( $statcode ) || empty( $text )) { |
|
| 3725 | + if( $this->getConfig( 'allowEmpty' )) $statcode = $text = null; |
|
| 3726 | + } else { |
|
| 3727 | + return FALSE; |
|
| 3728 | + } |
|
| 3302 | 3729 | $input = array( 'statcode' => $statcode, 'text' => $text ); |
| 3303 | - if( $extdata ) |
|
| 3304 | - $input['extdata'] = $extdata; |
|
| 3730 | + if( $extdata ) { |
|
| 3731 | + $input['extdata'] = $extdata; |
|
| 3732 | + } |
|
| 3305 | 3733 | $this->_setMval( $this->requeststatus, $input, $params, FALSE, $index ); |
| 3306 | 3734 | return TRUE; |
| 3307 | 3735 | } |
@@ -3317,21 +3745,26 @@ discard block |
||
| 3317 | 3745 | * @return string |
| 3318 | 3746 | */ |
| 3319 | 3747 | function createResources() { |
| 3320 | - if( empty( $this->resources )) return FALSE; |
|
| 3748 | + if( empty( $this->resources )) { |
|
| 3749 | + return FALSE; |
|
| 3750 | + } |
|
| 3321 | 3751 | $output = null; |
| 3322 | 3752 | foreach( $this->resources as $resource ) { |
| 3323 | 3753 | if( empty( $resource['value'] )) { |
| 3324 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'RESOURCES' ); |
|
| 3754 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 3755 | + $output .= $this->_createElement( 'RESOURCES' ); |
|
| 3756 | + } |
|
| 3325 | 3757 | continue; |
| 3326 | 3758 | } |
| 3327 | 3759 | $attributes = $this->_createParams( $resource['params'], array( 'ALTREP', 'LANGUAGE' )); |
| 3328 | 3760 | if( is_array( $resource['value'] )) { |
| 3329 | - foreach( $resource['value'] as $rix => $resourcePart ) |
|
| 3330 | - $resource['value'][$rix] = $this->_strrep( $resourcePart ); |
|
| 3761 | + foreach( $resource['value'] as $rix => $resourcePart ) { |
|
| 3762 | + $resource['value'][$rix] = $this->_strrep( $resourcePart ); |
|
| 3763 | + } |
|
| 3331 | 3764 | $content = implode( ',', $resource['value'] ); |
| 3765 | + } else { |
|
| 3766 | + $content = $this->_strrep( $resource['value'] ); |
|
| 3332 | 3767 | } |
| 3333 | - else |
|
| 3334 | - $content = $this->_strrep( $resource['value'] ); |
|
| 3335 | 3768 | $output .= $this->_createElement( 'RESOURCES', $attributes, $content ); |
| 3336 | 3769 | } |
| 3337 | 3770 | return $output; |
@@ -3347,7 +3780,11 @@ discard block |
||
| 3347 | 3780 | * @return bool |
| 3348 | 3781 | */ |
| 3349 | 3782 | function setResources( $value, $params=FALSE, $index=FALSE ) { |
| 3350 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3783 | + if( empty( $value )) { |
|
| 3784 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3785 | + } else { |
|
| 3786 | + return FALSE; |
|
| 3787 | + } |
|
| 3351 | 3788 | $this->_setMval( $this->resources, $value, $params, FALSE, $index ); |
| 3352 | 3789 | return TRUE; |
| 3353 | 3790 | } |
@@ -3363,7 +3800,9 @@ discard block |
||
| 3363 | 3800 | * @return string |
| 3364 | 3801 | */ |
| 3365 | 3802 | function createRrule() { |
| 3366 | - if( empty( $this->rrule )) return FALSE; |
|
| 3803 | + if( empty( $this->rrule )) { |
|
| 3804 | + return FALSE; |
|
| 3805 | + } |
|
| 3367 | 3806 | return $this->_format_recur( 'RRULE', $this->rrule ); |
| 3368 | 3807 | } |
| 3369 | 3808 | /** |
@@ -3377,7 +3816,11 @@ discard block |
||
| 3377 | 3816 | * @return void |
| 3378 | 3817 | */ |
| 3379 | 3818 | function setRrule( $rruleset, $params=FALSE, $index=FALSE ) { |
| 3380 | - if( empty( $rruleset )) if( $this->getConfig( 'allowEmpty' )) $rruleset = null; else return FALSE; |
|
| 3819 | + if( empty( $rruleset )) { |
|
| 3820 | + if( $this->getConfig( 'allowEmpty' )) $rruleset = null; |
|
| 3821 | + } else { |
|
| 3822 | + return FALSE; |
|
| 3823 | + } |
|
| 3381 | 3824 | $this->_setMval( $this->rrule, $this->_setRexrule( $rruleset ), $params, FALSE, $index ); |
| 3382 | 3825 | return TRUE; |
| 3383 | 3826 | } |
@@ -3392,9 +3835,12 @@ discard block |
||
| 3392 | 3835 | * @return string |
| 3393 | 3836 | */ |
| 3394 | 3837 | function createSequence() { |
| 3395 | - if( empty( $this->sequence )) return FALSE; |
|
| 3396 | - if( empty( $this->sequence['value'] )) |
|
| 3397 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SEQUENCE' ) : FALSE; |
|
| 3838 | + if( empty( $this->sequence )) { |
|
| 3839 | + return FALSE; |
|
| 3840 | + } |
|
| 3841 | + if( empty( $this->sequence['value'] )) { |
|
| 3842 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SEQUENCE' ) : FALSE; |
|
| 3843 | + } |
|
| 3398 | 3844 | $attributes = $this->_createParams( $this->sequence['params'] ); |
| 3399 | 3845 | return $this->_createElement( 'SEQUENCE', $attributes, $this->sequence['value'] ); |
| 3400 | 3846 | } |
@@ -3407,8 +3853,9 @@ discard block |
||
| 3407 | 3853 | * @return bool |
| 3408 | 3854 | */ |
| 3409 | 3855 | function setSequence( $value=FALSE, $params=FALSE ) { |
| 3410 | - if( empty( $value )) |
|
| 3411 | - $value = ( isset( $this->sequence['value'] ) && ( 0 < $this->sequence['value'] )) ? $this->sequence['value'] + 1 : 1; |
|
| 3856 | + if( empty( $value )) { |
|
| 3857 | + $value = ( isset( $this->sequence['value'] ) && ( 0 < $this->sequence['value'] )) ? $this->sequence['value'] + 1 : 1; |
|
| 3858 | + } |
|
| 3412 | 3859 | $this->sequence = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3413 | 3860 | return TRUE; |
| 3414 | 3861 | } |
@@ -3424,9 +3871,12 @@ discard block |
||
| 3424 | 3871 | * @return string |
| 3425 | 3872 | */ |
| 3426 | 3873 | function createStatus() { |
| 3427 | - if( empty( $this->status )) return FALSE; |
|
| 3428 | - if( empty( $this->status['value'] )) |
|
| 3429 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'STATUS' ) : FALSE; |
|
| 3874 | + if( empty( $this->status )) { |
|
| 3875 | + return FALSE; |
|
| 3876 | + } |
|
| 3877 | + if( empty( $this->status['value'] )) { |
|
| 3878 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'STATUS' ) : FALSE; |
|
| 3879 | + } |
|
| 3430 | 3880 | $attributes = $this->_createParams( $this->status['params'] ); |
| 3431 | 3881 | return $this->_createElement( 'STATUS', $attributes, $this->status['value'] ); |
| 3432 | 3882 | } |
@@ -3440,7 +3890,11 @@ discard block |
||
| 3440 | 3890 | * @return bool |
| 3441 | 3891 | */ |
| 3442 | 3892 | function setStatus( $value, $params=FALSE ) { |
| 3443 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3893 | + if( empty( $value )) { |
|
| 3894 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3895 | + } else { |
|
| 3896 | + return FALSE; |
|
| 3897 | + } |
|
| 3444 | 3898 | $this->status = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3445 | 3899 | return TRUE; |
| 3446 | 3900 | } |
@@ -3456,9 +3910,12 @@ discard block |
||
| 3456 | 3910 | * @return string |
| 3457 | 3911 | */ |
| 3458 | 3912 | function createSummary() { |
| 3459 | - if( empty( $this->summary )) return FALSE; |
|
| 3460 | - if( empty( $this->summary['value'] )) |
|
| 3461 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SUMMARY' ) : FALSE; |
|
| 3913 | + if( empty( $this->summary )) { |
|
| 3914 | + return FALSE; |
|
| 3915 | + } |
|
| 3916 | + if( empty( $this->summary['value'] )) { |
|
| 3917 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'SUMMARY' ) : FALSE; |
|
| 3918 | + } |
|
| 3462 | 3919 | $attributes = $this->_createParams( $this->summary['params'], array( 'ALTREP', 'LANGUAGE' )); |
| 3463 | 3920 | $content = $this->_strrep( $this->summary['value'] ); |
| 3464 | 3921 | return $this->_createElement( 'SUMMARY', $attributes, $content ); |
@@ -3473,7 +3930,11 @@ discard block |
||
| 3473 | 3930 | * @return bool |
| 3474 | 3931 | */ |
| 3475 | 3932 | function setSummary( $value, $params=FALSE ) { |
| 3476 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3933 | + if( empty( $value )) { |
|
| 3934 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3935 | + } else { |
|
| 3936 | + return FALSE; |
|
| 3937 | + } |
|
| 3477 | 3938 | $this->summary = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3478 | 3939 | return TRUE; |
| 3479 | 3940 | } |
@@ -3489,9 +3950,12 @@ discard block |
||
| 3489 | 3950 | * @return string |
| 3490 | 3951 | */ |
| 3491 | 3952 | function createTransp() { |
| 3492 | - if( empty( $this->transp )) return FALSE; |
|
| 3493 | - if( empty( $this->transp['value'] )) |
|
| 3494 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRANSP' ) : FALSE; |
|
| 3953 | + if( empty( $this->transp )) { |
|
| 3954 | + return FALSE; |
|
| 3955 | + } |
|
| 3956 | + if( empty( $this->transp['value'] )) { |
|
| 3957 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRANSP' ) : FALSE; |
|
| 3958 | + } |
|
| 3495 | 3959 | $attributes = $this->_createParams( $this->transp['params'] ); |
| 3496 | 3960 | return $this->_createElement( 'TRANSP', $attributes, $this->transp['value'] ); |
| 3497 | 3961 | } |
@@ -3505,7 +3969,11 @@ discard block |
||
| 3505 | 3969 | * @return bool |
| 3506 | 3970 | */ |
| 3507 | 3971 | function setTransp( $value, $params=FALSE ) { |
| 3508 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 3972 | + if( empty( $value )) { |
|
| 3973 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 3974 | + } else { |
|
| 3975 | + return FALSE; |
|
| 3976 | + } |
|
| 3509 | 3977 | $this->transp = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3510 | 3978 | return TRUE; |
| 3511 | 3979 | } |
@@ -3521,19 +3989,24 @@ discard block |
||
| 3521 | 3989 | * @return string |
| 3522 | 3990 | */ |
| 3523 | 3991 | function createTrigger() { |
| 3524 | - if( empty( $this->trigger )) return FALSE; |
|
| 3525 | - if( empty( $this->trigger['value'] )) |
|
| 3526 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRIGGER' ) : FALSE; |
|
| 3992 | + if( empty( $this->trigger )) { |
|
| 3993 | + return FALSE; |
|
| 3994 | + } |
|
| 3995 | + if( empty( $this->trigger['value'] )) { |
|
| 3996 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TRIGGER' ) : FALSE; |
|
| 3997 | + } |
|
| 3527 | 3998 | $content = $attributes = null; |
| 3528 | 3999 | if( isset( $this->trigger['value']['year'] ) && |
| 3529 | 4000 | isset( $this->trigger['value']['month'] ) && |
| 3530 | - isset( $this->trigger['value']['day'] )) |
|
| 3531 | - $content .= $this->_format_date_time( $this->trigger['value'] ); |
|
| 3532 | - else { |
|
| 3533 | - if( TRUE !== $this->trigger['value']['relatedStart'] ) |
|
| 3534 | - $attributes .= $this->intAttrDelimiter.'RELATED=END'; |
|
| 3535 | - if( $this->trigger['value']['before'] ) |
|
| 3536 | - $content .= '-'; |
|
| 4001 | + isset( $this->trigger['value']['day'] )) { |
|
| 4002 | + $content .= $this->_format_date_time( $this->trigger['value'] ); |
|
| 4003 | + } else { |
|
| 4004 | + if( TRUE !== $this->trigger['value']['relatedStart'] ) { |
|
| 4005 | + $attributes .= $this->intAttrDelimiter.'RELATED=END'; |
|
| 4006 | + } |
|
| 4007 | + if( $this->trigger['value']['before'] ) { |
|
| 4008 | + $content .= '-'; |
|
| 4009 | + } |
|
| 3537 | 4010 | $content .= $this->_format_duration( $this->trigger['value'] ); |
| 3538 | 4011 | } |
| 3539 | 4012 | $attributes .= $this->_createParams( $this->trigger['params'] ); |
@@ -3557,28 +4030,30 @@ discard block |
||
| 3557 | 4030 | * @return bool |
| 3558 | 4031 | */ |
| 3559 | 4032 | function setTrigger( $year, $month=null, $day=null, $week=FALSE, $hour=FALSE, $min=FALSE, $sec=FALSE, $relatedStart=TRUE, $before=TRUE, $params=FALSE ) { |
| 3560 | - if( empty( $year ) && empty( $month ) && empty( $day ) && empty( $week ) && empty( $hour ) && empty( $min ) && empty( $sec )) |
|
| 3561 | - if( $this->getConfig( 'allowEmpty' )) { |
|
| 4033 | + if( empty( $year ) && empty( $month ) && empty( $day ) && empty( $week ) && empty( $hour ) && empty( $min ) && empty( $sec )) { |
|
| 4034 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 3562 | 4035 | $this->trigger = array( 'value' => null, 'params' => $this->_setParams( $params ) ); |
| 4036 | + } |
|
| 3563 | 4037 | return TRUE; |
| 4038 | + } else { |
|
| 4039 | + return FALSE; |
|
| 3564 | 4040 | } |
| 3565 | - else |
|
| 3566 | - return FALSE; |
|
| 3567 | 4041 | if( $this->_isArrayTimestampDate( $year )) { // timestamp |
| 3568 | 4042 | $params = $this->_setParams( $month ); |
| 3569 | 4043 | $date = $this->_timestamp2date( $year, 7 ); |
| 3570 | - foreach( $date as $k => $v ) |
|
| 3571 | - $$k = $v; |
|
| 3572 | - } |
|
| 3573 | - elseif( is_array( $year ) && ( is_array( $month ) || empty( $month ))) { |
|
| 4044 | + foreach( $date as $k => $v ) { |
|
| 4045 | + $$k = $v; |
|
| 4046 | + } |
|
| 4047 | + } elseif( is_array( $year ) && ( is_array( $month ) || empty( $month ))) { |
|
| 3574 | 4048 | $params = $this->_setParams( $month ); |
| 3575 | 4049 | if(!(array_key_exists( 'year', $year ) && // exclude date-time |
| 3576 | 4050 | array_key_exists( 'month', $year ) && |
| 3577 | 4051 | array_key_exists( 'day', $year ))) { // so this must be a duration |
| 3578 | - if( isset( $params['RELATED'] ) && ( 'END' == $params['RELATED'] )) |
|
| 3579 | - $relatedStart = FALSE; |
|
| 3580 | - else |
|
| 3581 | - $relatedStart = ( array_key_exists( 'relatedStart', $year ) && ( TRUE !== $year['relatedStart'] )) ? FALSE : TRUE; |
|
| 4052 | + if( isset( $params['RELATED'] ) && ( 'END' == $params['RELATED'] )) { |
|
| 4053 | + $relatedStart = FALSE; |
|
| 4054 | + } else { |
|
| 4055 | + $relatedStart = ( array_key_exists( 'relatedStart', $year ) && ( TRUE !== $year['relatedStart'] )) ? FALSE : TRUE; |
|
| 4056 | + } |
|
| 3582 | 4057 | $before = ( array_key_exists( 'before', $year ) && ( TRUE !== $year['before'] )) ? FALSE : TRUE; |
| 3583 | 4058 | } |
| 3584 | 4059 | $SSYY = ( array_key_exists( 'year', $year )) ? $year['year'] : null; |
@@ -3589,24 +4064,27 @@ discard block |
||
| 3589 | 4064 | $min = ( array_key_exists( 'min', $year )) ? $year['min'] : 0; //null; |
| 3590 | 4065 | $sec = ( array_key_exists( 'sec', $year )) ? $year['sec'] : 0; //null; |
| 3591 | 4066 | $year = $SSYY; |
| 3592 | - } |
|
| 3593 | - elseif(is_string( $year ) && ( is_array( $month ) || empty( $month ))) { // duration or date in a string |
|
| 4067 | + } elseif(is_string( $year ) && ( is_array( $month ) || empty( $month ))) { // duration or date in a string |
|
| 3594 | 4068 | $params = $this->_setParams( $month ); |
| 3595 | 4069 | if( in_array( $year{0}, array( 'P', '+', '-' ))) { // duration |
| 3596 | 4070 | $relatedStart = ( isset( $params['RELATED'] ) && ( 'END' == $params['RELATED'] )) ? FALSE : TRUE; |
| 3597 | 4071 | $before = ( '-' == $year{0} ) ? TRUE : FALSE; |
| 3598 | - if( 'P' != $year{0} ) |
|
| 3599 | - $year = substr( $year, 1 ); |
|
| 4072 | + if( 'P' != $year{0} ) { |
|
| 4073 | + $year = substr( $year, 1 ); |
|
| 4074 | + } |
|
| 3600 | 4075 | $date = $this->_duration_string( $year); |
| 3601 | - } |
|
| 3602 | - else // date |
|
| 4076 | + } else { |
|
| 4077 | + // date |
|
| 3603 | 4078 | $date = $this->_date_time_string( $year, 7 ); |
| 4079 | + } |
|
| 3604 | 4080 | unset( $year, $month, $day ); |
| 3605 | - foreach( $date as $k => $v ) |
|
| 3606 | - $$k = $v; |
|
| 3607 | - } |
|
| 3608 | - else // single values in function input parameters |
|
| 4081 | + foreach( $date as $k => $v ) { |
|
| 4082 | + $$k = $v; |
|
| 4083 | + } |
|
| 4084 | + } else { |
|
| 4085 | + // single values in function input parameters |
|
| 3609 | 4086 | $params = $this->_setParams( $params ); |
| 4087 | + } |
|
| 3610 | 4088 | if( !empty( $year ) && !empty( $month ) && !empty( $day )) { // date |
| 3611 | 4089 | $params['VALUE'] = 'DATE-TIME'; |
| 3612 | 4090 | $hour = ( $hour ) ? $hour : 0; |
@@ -3621,8 +4099,7 @@ discard block |
||
| 3621 | 4099 | , 'sec' => $sec |
| 3622 | 4100 | , 'tz' => 'Z' ); |
| 3623 | 4101 | return TRUE; |
| 3624 | - } |
|
| 3625 | - elseif(( empty( $year ) && empty( $month )) && // duration |
|
| 4102 | + } elseif(( empty( $year ) && empty( $month )) && // duration |
|
| 3626 | 4103 | (!empty( $week ) || !empty( $day ) || !empty( $hour ) || !empty( $min ) || !empty( $sec ))) { |
| 3627 | 4104 | unset( $params['RELATED'] ); // set at output creation (END only) |
| 3628 | 4105 | unset( $params['VALUE'] ); // 'DURATION' default |
@@ -3631,11 +4108,21 @@ discard block |
||
| 3631 | 4108 | $before = ( FALSE !== $before ) ? TRUE : FALSE; |
| 3632 | 4109 | $this->trigger['value'] = array( 'relatedStart' => $relatedStart |
| 3633 | 4110 | , 'before' => $before ); |
| 3634 | - if( !empty( $week )) $this->trigger['value']['week'] = $week; |
|
| 3635 | - if( !empty( $day )) $this->trigger['value']['day'] = $day; |
|
| 3636 | - if( !empty( $hour )) $this->trigger['value']['hour'] = $hour; |
|
| 3637 | - if( !empty( $min )) $this->trigger['value']['min'] = $min; |
|
| 3638 | - if( !empty( $sec )) $this->trigger['value']['sec'] = $sec; |
|
| 4111 | + if( !empty( $week )) { |
|
| 4112 | + $this->trigger['value']['week'] = $week; |
|
| 4113 | + } |
|
| 4114 | + if( !empty( $day )) { |
|
| 4115 | + $this->trigger['value']['day'] = $day; |
|
| 4116 | + } |
|
| 4117 | + if( !empty( $hour )) { |
|
| 4118 | + $this->trigger['value']['hour'] = $hour; |
|
| 4119 | + } |
|
| 4120 | + if( !empty( $min )) { |
|
| 4121 | + $this->trigger['value']['min'] = $min; |
|
| 4122 | + } |
|
| 4123 | + if( !empty( $sec )) { |
|
| 4124 | + $this->trigger['value']['sec'] = $sec; |
|
| 4125 | + } |
|
| 3639 | 4126 | return TRUE; |
| 3640 | 4127 | } |
| 3641 | 4128 | return FALSE; |
@@ -3652,9 +4139,12 @@ discard block |
||
| 3652 | 4139 | * @return string |
| 3653 | 4140 | */ |
| 3654 | 4141 | function createTzid() { |
| 3655 | - if( empty( $this->tzid )) return FALSE; |
|
| 3656 | - if( empty( $this->tzid['value'] )) |
|
| 3657 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZID' ) : FALSE; |
|
| 4142 | + if( empty( $this->tzid )) { |
|
| 4143 | + return FALSE; |
|
| 4144 | + } |
|
| 4145 | + if( empty( $this->tzid['value'] )) { |
|
| 4146 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZID' ) : FALSE; |
|
| 4147 | + } |
|
| 3658 | 4148 | $attributes = $this->_createParams( $this->tzid['params'] ); |
| 3659 | 4149 | return $this->_createElement( 'TZID', $attributes, $this->_strrep( $this->tzid['value'] )); |
| 3660 | 4150 | } |
@@ -3668,7 +4158,11 @@ discard block |
||
| 3668 | 4158 | * @return bool |
| 3669 | 4159 | */ |
| 3670 | 4160 | function setTzid( $value, $params=FALSE ) { |
| 3671 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 4161 | + if( empty( $value )) { |
|
| 4162 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 4163 | + } else { |
|
| 4164 | + return FALSE; |
|
| 4165 | + } |
|
| 3672 | 4166 | $this->tzid = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3673 | 4167 | return TRUE; |
| 3674 | 4168 | } |
@@ -3685,14 +4179,17 @@ discard block |
||
| 3685 | 4179 | * @return string |
| 3686 | 4180 | */ |
| 3687 | 4181 | function createTzname() { |
| 3688 | - if( empty( $this->tzname )) return FALSE; |
|
| 4182 | + if( empty( $this->tzname )) { |
|
| 4183 | + return FALSE; |
|
| 4184 | + } |
|
| 3689 | 4185 | $output = null; |
| 3690 | 4186 | foreach( $this->tzname as $theName ) { |
| 3691 | 4187 | if( !empty( $theName['value'] )) { |
| 3692 | 4188 | $attributes = $this->_createParams( $theName['params'], array( 'LANGUAGE' )); |
| 3693 | 4189 | $output .= $this->_createElement( 'TZNAME', $attributes, $this->_strrep( $theName['value'] )); |
| 4190 | + } elseif( $this->getConfig( 'allowEmpty' )) { |
|
| 4191 | + $output .= $this->_createElement( 'TZNAME' ); |
|
| 3694 | 4192 | } |
| 3695 | - elseif( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( 'TZNAME' ); |
|
| 3696 | 4193 | } |
| 3697 | 4194 | return $output; |
| 3698 | 4195 | } |
@@ -3707,7 +4204,11 @@ discard block |
||
| 3707 | 4204 | * @return bool |
| 3708 | 4205 | */ |
| 3709 | 4206 | function setTzname( $value, $params=FALSE, $index=FALSE ) { |
| 3710 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 4207 | + if( empty( $value )) { |
|
| 4208 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 4209 | + } else { |
|
| 4210 | + return FALSE; |
|
| 4211 | + } |
|
| 3711 | 4212 | $this->_setMval( $this->tzname, $value, $params, FALSE, $index ); |
| 3712 | 4213 | return TRUE; |
| 3713 | 4214 | } |
@@ -3723,9 +4224,12 @@ discard block |
||
| 3723 | 4224 | * @return string |
| 3724 | 4225 | */ |
| 3725 | 4226 | function createTzoffsetfrom() { |
| 3726 | - if( empty( $this->tzoffsetfrom )) return FALSE; |
|
| 3727 | - if( empty( $this->tzoffsetfrom['value'] )) |
|
| 3728 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETFROM' ) : FALSE; |
|
| 4227 | + if( empty( $this->tzoffsetfrom )) { |
|
| 4228 | + return FALSE; |
|
| 4229 | + } |
|
| 4230 | + if( empty( $this->tzoffsetfrom['value'] )) { |
|
| 4231 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETFROM' ) : FALSE; |
|
| 4232 | + } |
|
| 3729 | 4233 | $attributes = $this->_createParams( $this->tzoffsetfrom['params'] ); |
| 3730 | 4234 | return $this->_createElement( 'TZOFFSETFROM', $attributes, $this->tzoffsetfrom['value'] ); |
| 3731 | 4235 | } |
@@ -3739,7 +4243,11 @@ discard block |
||
| 3739 | 4243 | * @return bool |
| 3740 | 4244 | */ |
| 3741 | 4245 | function setTzoffsetfrom( $value, $params=FALSE ) { |
| 3742 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 4246 | + if( empty( $value )) { |
|
| 4247 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 4248 | + } else { |
|
| 4249 | + return FALSE; |
|
| 4250 | + } |
|
| 3743 | 4251 | $this->tzoffsetfrom = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3744 | 4252 | return TRUE; |
| 3745 | 4253 | } |
@@ -3755,9 +4263,12 @@ discard block |
||
| 3755 | 4263 | * @return string |
| 3756 | 4264 | */ |
| 3757 | 4265 | function createTzoffsetto() { |
| 3758 | - if( empty( $this->tzoffsetto )) return FALSE; |
|
| 3759 | - if( empty( $this->tzoffsetto['value'] )) |
|
| 3760 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETTO' ) : FALSE; |
|
| 4266 | + if( empty( $this->tzoffsetto )) { |
|
| 4267 | + return FALSE; |
|
| 4268 | + } |
|
| 4269 | + if( empty( $this->tzoffsetto['value'] )) { |
|
| 4270 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZOFFSETTO' ) : FALSE; |
|
| 4271 | + } |
|
| 3761 | 4272 | $attributes = $this->_createParams( $this->tzoffsetto['params'] ); |
| 3762 | 4273 | return $this->_createElement( 'TZOFFSETTO', $attributes, $this->tzoffsetto['value'] ); |
| 3763 | 4274 | } |
@@ -3771,7 +4282,11 @@ discard block |
||
| 3771 | 4282 | * @return bool |
| 3772 | 4283 | */ |
| 3773 | 4284 | function setTzoffsetto( $value, $params=FALSE ) { |
| 3774 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 4285 | + if( empty( $value )) { |
|
| 4286 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 4287 | + } else { |
|
| 4288 | + return FALSE; |
|
| 4289 | + } |
|
| 3775 | 4290 | $this->tzoffsetto = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3776 | 4291 | return TRUE; |
| 3777 | 4292 | } |
@@ -3787,9 +4302,12 @@ discard block |
||
| 3787 | 4302 | * @return string |
| 3788 | 4303 | */ |
| 3789 | 4304 | function createTzurl() { |
| 3790 | - if( empty( $this->tzurl )) return FALSE; |
|
| 3791 | - if( empty( $this->tzurl['value'] )) |
|
| 3792 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZURL' ) : FALSE; |
|
| 4305 | + if( empty( $this->tzurl )) { |
|
| 4306 | + return FALSE; |
|
| 4307 | + } |
|
| 4308 | + if( empty( $this->tzurl['value'] )) { |
|
| 4309 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'TZURL' ) : FALSE; |
|
| 4310 | + } |
|
| 3793 | 4311 | $attributes = $this->_createParams( $this->tzurl['params'] ); |
| 3794 | 4312 | return $this->_createElement( 'TZURL', $attributes, $this->tzurl['value'] ); |
| 3795 | 4313 | } |
@@ -3803,7 +4321,11 @@ discard block |
||
| 3803 | 4321 | * @return boll |
| 3804 | 4322 | */ |
| 3805 | 4323 | function setTzurl( $value, $params=FALSE ) { |
| 3806 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 4324 | + if( empty( $value )) { |
|
| 4325 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 4326 | + } else { |
|
| 4327 | + return FALSE; |
|
| 4328 | + } |
|
| 3807 | 4329 | $this->tzurl = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3808 | 4330 | return TRUE; |
| 3809 | 4331 | } |
@@ -3819,8 +4341,9 @@ discard block |
||
| 3819 | 4341 | * @return string |
| 3820 | 4342 | */ |
| 3821 | 4343 | function createUid() { |
| 3822 | - if( 0 >= count( $this->uid )) |
|
| 3823 | - $this->_makeuid(); |
|
| 4344 | + if( 0 >= count( $this->uid )) { |
|
| 4345 | + $this->_makeuid(); |
|
| 4346 | + } |
|
| 3824 | 4347 | $attributes = $this->_createParams( $this->uid['params'] ); |
| 3825 | 4348 | return $this->_createElement( 'UID', $attributes, $this->uid['value'] ); |
| 3826 | 4349 | } |
@@ -3839,8 +4362,9 @@ discard block |
||
| 3839 | 4362 | $end = strlen( $base ) - 1; |
| 3840 | 4363 | $length = 6; |
| 3841 | 4364 | $str = null; |
| 3842 | - for( $p = 0; $p < $length; $p++ ) |
|
| 3843 | - $unique .= $base{mt_rand( $start, $end )}; |
|
| 4365 | + for( $p = 0; $p < $length; $p++ ) { |
|
| 4366 | + $unique .= $base{mt_rand( $start, $end )}; |
|
| 4367 | + } |
|
| 3844 | 4368 | $this->uid = array( 'params' => null ); |
| 3845 | 4369 | $this->uid['value'] = $date.'-'.$unique.'@'.$this->getConfig( 'unique_id' ); |
| 3846 | 4370 | } |
@@ -3854,7 +4378,10 @@ discard block |
||
| 3854 | 4378 | * @return bool |
| 3855 | 4379 | */ |
| 3856 | 4380 | function setUid( $value, $params=FALSE ) { |
| 3857 | - if( empty( $value )) return FALSE; // no allowEmpty check here !!!! |
|
| 4381 | + if( empty( $value )) { |
|
| 4382 | + return FALSE; |
|
| 4383 | + } |
|
| 4384 | + // no allowEmpty check here !!!! |
|
| 3858 | 4385 | $this->uid = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3859 | 4386 | return TRUE; |
| 3860 | 4387 | } |
@@ -3870,9 +4397,12 @@ discard block |
||
| 3870 | 4397 | * @return string |
| 3871 | 4398 | */ |
| 3872 | 4399 | function createUrl() { |
| 3873 | - if( empty( $this->url )) return FALSE; |
|
| 3874 | - if( empty( $this->url['value'] )) |
|
| 3875 | - return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'URL' ) : FALSE; |
|
| 4400 | + if( empty( $this->url )) { |
|
| 4401 | + return FALSE; |
|
| 4402 | + } |
|
| 4403 | + if( empty( $this->url['value'] )) { |
|
| 4404 | + return ( $this->getConfig( 'allowEmpty' )) ? $this->_createElement( 'URL' ) : FALSE; |
|
| 4405 | + } |
|
| 3876 | 4406 | $attributes = $this->_createParams( $this->url['params'] ); |
| 3877 | 4407 | return $this->_createElement( 'URL', $attributes, $this->url['value'] ); |
| 3878 | 4408 | } |
@@ -3886,7 +4416,11 @@ discard block |
||
| 3886 | 4416 | * @return bool |
| 3887 | 4417 | */ |
| 3888 | 4418 | function setUrl( $value, $params=FALSE ) { |
| 3889 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 4419 | + if( empty( $value )) { |
|
| 4420 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 4421 | + } else { |
|
| 4422 | + return FALSE; |
|
| 4423 | + } |
|
| 3890 | 4424 | $this->url = array( 'value' => $value, 'params' => $this->_setParams( $params )); |
| 3891 | 4425 | return TRUE; |
| 3892 | 4426 | } |
@@ -3902,21 +4436,26 @@ discard block |
||
| 3902 | 4436 | * @return string |
| 3903 | 4437 | */ |
| 3904 | 4438 | function createXprop() { |
| 3905 | - if( empty( $this->xprop )) return FALSE; |
|
| 4439 | + if( empty( $this->xprop )) { |
|
| 4440 | + return FALSE; |
|
| 4441 | + } |
|
| 3906 | 4442 | $output = null; |
| 3907 | 4443 | foreach( $this->xprop as $label => $xpropPart ) { |
| 3908 | 4444 | if( empty( $xpropPart['value'] )) { |
| 3909 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( $label ); |
|
| 4445 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 4446 | + $output .= $this->_createElement( $label ); |
|
| 4447 | + } |
|
| 3910 | 4448 | continue; |
| 3911 | 4449 | } |
| 3912 | 4450 | $attributes = $this->_createParams( $xpropPart['params'], array( 'LANGUAGE' )); |
| 3913 | 4451 | if( is_array( $xpropPart['value'] )) { |
| 3914 | - foreach( $xpropPart['value'] as $pix => $theXpart ) |
|
| 3915 | - $xpropPart['value'][$pix] = $this->_strrep( $theXpart ); |
|
| 4452 | + foreach( $xpropPart['value'] as $pix => $theXpart ) { |
|
| 4453 | + $xpropPart['value'][$pix] = $this->_strrep( $theXpart ); |
|
| 4454 | + } |
|
| 3916 | 4455 | $xpropPart['value'] = implode( ',', $xpropPart['value'] ); |
| 4456 | + } else { |
|
| 4457 | + $xpropPart['value'] = $this->_strrep( $xpropPart['value'] ); |
|
| 3917 | 4458 | } |
| 3918 | - else |
|
| 3919 | - $xpropPart['value'] = $this->_strrep( $xpropPart['value'] ); |
|
| 3920 | 4459 | $output .= $this->_createElement( $label, $attributes, $xpropPart['value'] ); |
| 3921 | 4460 | } |
| 3922 | 4461 | return $output; |
@@ -3932,12 +4471,20 @@ discard block |
||
| 3932 | 4471 | * @return bool |
| 3933 | 4472 | */ |
| 3934 | 4473 | function setXprop( $label, $value, $params=FALSE ) { |
| 3935 | - if( empty( $label )) return; |
|
| 3936 | - if( empty( $value )) if( $this->getConfig( 'allowEmpty' )) $value = null; else return FALSE; |
|
| 4474 | + if( empty( $label )) { |
|
| 4475 | + return; |
|
| 4476 | + } |
|
| 4477 | + if( empty( $value )) { |
|
| 4478 | + if( $this->getConfig( 'allowEmpty' )) $value = null; |
|
| 4479 | + } else { |
|
| 4480 | + return FALSE; |
|
| 4481 | + } |
|
| 3937 | 4482 | $xprop = array( 'value' => $value ); |
| 3938 | 4483 | $toolbox = new calendarComponent(); |
| 3939 | 4484 | $xprop['params'] = $toolbox->_setParams( $params ); |
| 3940 | - if( !is_array( $this->xprop )) $this->xprop = array(); |
|
| 4485 | + if( !is_array( $this->xprop )) { |
|
| 4486 | + $this->xprop = array(); |
|
| 4487 | + } |
|
| 3941 | 4488 | $this->xprop[strtoupper( $label )] = $xprop; |
| 3942 | 4489 | return TRUE; |
| 3943 | 4490 | } |
@@ -4005,30 +4552,29 @@ discard block |
||
| 4005 | 4552 | $attributes = null; |
| 4006 | 4553 | foreach( $attributes2 as $attribute ) { |
| 4007 | 4554 | $attrKVarr = explode( '=', $attribute ); |
| 4008 | - if( empty( $attrKVarr[0] )) |
|
| 4009 | - continue; |
|
| 4555 | + if( empty( $attrKVarr[0] )) { |
|
| 4556 | + continue; |
|
| 4557 | + } |
|
| 4010 | 4558 | if( !isset( $attrKVarr[1] )) { |
| 4011 | 4559 | $attrValue = $attrKVarr[0]; |
| 4012 | 4560 | $attrKey = null; |
| 4013 | - } |
|
| 4014 | - elseif( 2 == count( $attrKVarr)) { |
|
| 4561 | + } elseif( 2 == count( $attrKVarr)) { |
|
| 4015 | 4562 | $attrKey = strtolower( $attrKVarr[0] ); |
| 4016 | 4563 | $attrValue = $attrKVarr[1]; |
| 4017 | - } |
|
| 4018 | - else { |
|
| 4564 | + } else { |
|
| 4019 | 4565 | $attrKey = strtolower( $attrKVarr[0] ); |
| 4020 | 4566 | unset( $attrKVarr[0] ); |
| 4021 | 4567 | $attrValue = implode( '=', $attrKVarr ); |
| 4022 | 4568 | } |
| 4023 | 4569 | if(( 'attach' == $label ) && ( in_array( $attrKey, array( 'fmttype', 'encoding', 'value' )))) { |
| 4024 | 4570 | $attachInlineBinary = TRUE; |
| 4025 | - if( 'fmttype' == $attrKey ) |
|
| 4026 | - $attachfmttype = $attrKey.'='.$attrValue; |
|
| 4571 | + if( 'fmttype' == $attrKey ) { |
|
| 4572 | + $attachfmttype = $attrKey.'='.$attrValue; |
|
| 4573 | + } |
|
| 4027 | 4574 | continue; |
| 4028 | - } |
|
| 4029 | - elseif(( 'categories' == $label ) && ( 'language' == $attrKey )) |
|
| 4030 | - $categoriesAttrLang = $attrKey.'='.$attrValue; |
|
| 4031 | - else { |
|
| 4575 | + } elseif(( 'categories' == $label ) && ( 'language' == $attrKey )) { |
|
| 4576 | + $categoriesAttrLang = $attrKey.'='.$attrValue; |
|
| 4577 | + } else { |
|
| 4032 | 4578 | $attributes .= ( empty( $attributes )) ? ' ' : $this->attributeDelimiter.' '; |
| 4033 | 4579 | $attributes .= ( !empty( $attrKey )) ? $attrKey.'=' : null; |
| 4034 | 4580 | if(( '"' == substr( $attrValue, 0, 1 )) && ( '"' == substr( $attrValue, -1 ))) { |
@@ -4038,8 +4584,7 @@ discard block |
||
| 4038 | 4584 | $attributes .= '"'.htmlspecialchars( $attrValue ).'"'; |
| 4039 | 4585 | } |
| 4040 | 4586 | } |
| 4041 | - } |
|
| 4042 | - else { |
|
| 4587 | + } else { |
|
| 4043 | 4588 | $attributes = str_replace( $this->intAttrDelimiter, $this->attributeDelimiter, $attributes ); |
| 4044 | 4589 | } |
| 4045 | 4590 | } |
@@ -4061,8 +4606,7 @@ discard block |
||
| 4061 | 4606 | $content = $this->_createElement( 'extref', $attributes, null ); |
| 4062 | 4607 | $attributes = null; |
| 4063 | 4608 | } |
| 4064 | - } |
|
| 4065 | - elseif(( 'attach' == $label ) && $attachInlineBinary && ( 'xcal' == $this->format)) { |
|
| 4609 | + } elseif(( 'attach' == $label ) && $attachInlineBinary && ( 'xcal' == $this->format)) { |
|
| 4066 | 4610 | $content = $this->nl.$this->_createElement( 'b64bin', $attachfmttype, $content ); // max one attribute |
| 4067 | 4611 | } |
| 4068 | 4612 | $output .= $attributes; |
@@ -4106,30 +4650,30 @@ discard block |
||
| 4106 | 4650 | $CNattrExist = $LANGattrExist = FALSE; |
| 4107 | 4651 | if( is_array( $params )) { |
| 4108 | 4652 | foreach( $params as $paramKey => $paramValue ) { |
| 4109 | - if( is_int( $paramKey )) |
|
| 4110 | - $attr2 .= $this->intAttrDelimiter.$paramValue; |
|
| 4111 | - elseif(( 'LANGUAGE' == $paramKey ) && $LANGattrKey ) { |
|
| 4653 | + if( is_int( $paramKey )) { |
|
| 4654 | + $attr2 .= $this->intAttrDelimiter.$paramValue; |
|
| 4655 | + } elseif(( 'LANGUAGE' == $paramKey ) && $LANGattrKey ) { |
|
| 4112 | 4656 | $attrLANG .= $this->intAttrDelimiter."LANGUAGE=$paramValue"; |
| 4113 | 4657 | $LANGattrExist = TRUE; |
| 4114 | - } |
|
| 4115 | - elseif(( 'CN' == $paramKey ) && $CNattrKey ) { |
|
| 4658 | + } elseif(( 'CN' == $paramKey ) && $CNattrKey ) { |
|
| 4116 | 4659 | $attr1 = $this->intAttrDelimiter.'CN="'.$paramValue.'"'; |
| 4117 | 4660 | $CNattrExist = TRUE; |
| 4661 | + } elseif(( 'ALTREP' == $paramKey ) && in_array( $paramKey, $ctrKeys )) { |
|
| 4662 | + $attr2 .= $this->intAttrDelimiter.'ALTREP="'.$paramValue.'"'; |
|
| 4663 | + } elseif(( 'DIR' == $paramKey ) && in_array( $paramKey, $ctrKeys )) { |
|
| 4664 | + $attr2 .= $this->intAttrDelimiter.'DIR="'.$paramValue.'"'; |
|
| 4665 | + } elseif(( 'SENT-BY' == $paramKey ) && in_array( $paramKey, $ctrKeys )) { |
|
| 4666 | + $attr2 .= $this->intAttrDelimiter.'SENT-BY="MAILTO:'.$paramValue.'"'; |
|
| 4667 | + } else { |
|
| 4668 | + $attr2 .= $this->intAttrDelimiter."$paramKey=$paramValue"; |
|
| 4118 | 4669 | } |
| 4119 | - elseif(( 'ALTREP' == $paramKey ) && in_array( $paramKey, $ctrKeys )) |
|
| 4120 | - $attr2 .= $this->intAttrDelimiter.'ALTREP="'.$paramValue.'"'; |
|
| 4121 | - elseif(( 'DIR' == $paramKey ) && in_array( $paramKey, $ctrKeys )) |
|
| 4122 | - $attr2 .= $this->intAttrDelimiter.'DIR="'.$paramValue.'"'; |
|
| 4123 | - elseif(( 'SENT-BY' == $paramKey ) && in_array( $paramKey, $ctrKeys )) |
|
| 4124 | - $attr2 .= $this->intAttrDelimiter.'SENT-BY="MAILTO:'.$paramValue.'"'; |
|
| 4125 | - else |
|
| 4126 | - $attr2 .= $this->intAttrDelimiter."$paramKey=$paramValue"; |
|
| 4127 | 4670 | } |
| 4128 | 4671 | } |
| 4129 | 4672 | if( !$LANGattrExist ) { |
| 4130 | 4673 | $lang = $this->getConfig( 'language' ); |
| 4131 | - if(( $CNattrExist || $LANGattrKey ) && $lang ) |
|
| 4132 | - $attrLANG .= $this->intAttrDelimiter.'LANGUAGE='.$lang; |
|
| 4674 | + if(( $CNattrExist || $LANGattrKey ) && $lang ) { |
|
| 4675 | + $attrLANG .= $this->intAttrDelimiter.'LANGUAGE='.$lang; |
|
| 4676 | + } |
|
| 4133 | 4677 | } |
| 4134 | 4678 | return $attrLANG.$attr1.$attr2; |
| 4135 | 4679 | } |
@@ -4143,47 +4687,57 @@ discard block |
||
| 4143 | 4687 | * @return array $params, property parameters |
| 4144 | 4688 | */ |
| 4145 | 4689 | function _chkdatecfg( $theDate, & $parno, & $params ) { |
| 4146 | - if( isset( $params['TZID'] )) |
|
| 4147 | - $parno = 6; |
|
| 4148 | - elseif( isset( $params['VALUE'] ) && ( 'DATE' == $params['VALUE'] )) |
|
| 4149 | - $parno = 3; |
|
| 4150 | - else { |
|
| 4151 | - if( isset( $params['VALUE'] ) && ( 'PERIOD' == $params['VALUE'] )) |
|
| 4152 | - $parno = 7; |
|
| 4690 | + if( isset( $params['TZID'] )) { |
|
| 4691 | + $parno = 6; |
|
| 4692 | + } elseif( isset( $params['VALUE'] ) && ( 'DATE' == $params['VALUE'] )) { |
|
| 4693 | + $parno = 3; |
|
| 4694 | + } else { |
|
| 4695 | + if( isset( $params['VALUE'] ) && ( 'PERIOD' == $params['VALUE'] )) { |
|
| 4696 | + $parno = 7; |
|
| 4697 | + } |
|
| 4153 | 4698 | if( is_array( $theDate )) { |
| 4154 | - if( isset( $theDate['timestamp'] )) |
|
| 4155 | - $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : null; |
|
| 4156 | - else |
|
| 4157 | - $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : ( 7 == count( $theDate )) ? end( $theDate ) : null; |
|
| 4699 | + if( isset( $theDate['timestamp'] )) { |
|
| 4700 | + $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : null; |
|
| 4701 | + } else { |
|
| 4702 | + $tzid = ( isset( $theDate['tz'] )) ? $theDate['tz'] : ( 7 == count( $theDate )) ? end( $theDate ) : null; |
|
| 4703 | + } |
|
| 4158 | 4704 | if( !empty( $tzid )) { |
| 4159 | 4705 | $parno = 7; |
| 4160 | - if( !$this->_isOffset( $tzid )) |
|
| 4161 | - $params['TZID'] = $tzid; // save only timezone |
|
| 4706 | + if( !$this->_isOffset( $tzid )) { |
|
| 4707 | + $params['TZID'] = $tzid; |
|
| 4708 | + } |
|
| 4709 | + // save only timezone |
|
| 4710 | + } elseif( !$parno && ( 3 == count( $theDate )) && |
|
| 4711 | + ( isset( $params['VALUE'] ) && ( 'DATE' == $params['VALUE'] ))) { |
|
| 4712 | + $parno = 3; |
|
| 4713 | + } else { |
|
| 4714 | + $parno = 6; |
|
| 4162 | 4715 | } |
| 4163 | - elseif( !$parno && ( 3 == count( $theDate )) && |
|
| 4164 | - ( isset( $params['VALUE'] ) && ( 'DATE' == $params['VALUE'] ))) |
|
| 4165 | - $parno = 3; |
|
| 4166 | - else |
|
| 4167 | - $parno = 6; |
|
| 4168 | - } |
|
| 4169 | - else { // string |
|
| 4716 | + } else { // string |
|
| 4170 | 4717 | $date = trim( $theDate ); |
| 4171 | - if( 'Z' == substr( $date, -1 )) |
|
| 4172 | - $parno = 7; // UTC DATE-TIME |
|
| 4718 | + if( 'Z' == substr( $date, -1 )) { |
|
| 4719 | + $parno = 7; |
|
| 4720 | + } |
|
| 4721 | + // UTC DATE-TIME |
|
| 4173 | 4722 | elseif((( 8 == strlen( $date ) && ctype_digit( $date )) || ( 11 >= strlen( $date ))) && |
| 4174 | - ( !isset( $params['VALUE'] ) || !in_array( $params['VALUE'], array( 'DATE-TIME', 'PERIOD' )))) |
|
| 4175 | - $parno = 3; // DATE |
|
| 4723 | + ( !isset( $params['VALUE'] ) || !in_array( $params['VALUE'], array( 'DATE-TIME', 'PERIOD' )))) { |
|
| 4724 | + $parno = 3; |
|
| 4725 | + } |
|
| 4726 | + // DATE |
|
| 4176 | 4727 | $date = $this->_date_time_string( $date, $parno ); |
| 4177 | 4728 | if( !empty( $date['tz'] )) { |
| 4178 | 4729 | $parno = 7; |
| 4179 | - if( !$this->_isOffset( $date['tz'] )) |
|
| 4180 | - $params['TZID'] = $date['tz']; // save only timezone |
|
| 4730 | + if( !$this->_isOffset( $date['tz'] )) { |
|
| 4731 | + $params['TZID'] = $date['tz']; |
|
| 4732 | + } |
|
| 4733 | + // save only timezone |
|
| 4734 | + } elseif( empty( $parno )) { |
|
| 4735 | + $parno = 6; |
|
| 4181 | 4736 | } |
| 4182 | - elseif( empty( $parno )) |
|
| 4183 | - $parno = 6; |
|
| 4184 | 4737 | } |
| 4185 | - if( isset( $params['TZID'] )) |
|
| 4186 | - $parno = 6; |
|
| 4738 | + if( isset( $params['TZID'] )) { |
|
| 4739 | + $parno = 6; |
|
| 4740 | + } |
|
| 4187 | 4741 | } |
| 4188 | 4742 | } |
| 4189 | 4743 | /** |
@@ -4199,14 +4753,18 @@ discard block |
||
| 4199 | 4753 | */ |
| 4200 | 4754 | function _date2duration( $startdate=FALSE, $enddate=FALSE ) { |
| 4201 | 4755 | if( !$startdate || !$enddate ) { |
| 4202 | - if( FALSE === ( $startdate = $this->getProperty( 'dtstart' ))) |
|
| 4203 | - return null; |
|
| 4204 | - if( FALSE === ( $enddate = $this->getProperty( 'dtend' ))) // vevent/vfreebusy |
|
| 4756 | + if( FALSE === ( $startdate = $this->getProperty( 'dtstart' ))) { |
|
| 4757 | + return null; |
|
| 4758 | + } |
|
| 4759 | + if( FALSE === ( $enddate = $this->getProperty( 'dtend' ))) { |
|
| 4760 | + // vevent/vfreebusy |
|
| 4205 | 4761 | if( FALSE === ( $enddate = $this->getProperty( 'due' ))) // vtodo |
| 4206 | 4762 | return null; |
| 4763 | + } |
|
| 4764 | + } |
|
| 4765 | + if( !$startdate || !$enddate ) { |
|
| 4766 | + return null; |
|
| 4207 | 4767 | } |
| 4208 | - if( !$startdate || !$enddate ) |
|
| 4209 | - return null; |
|
| 4210 | 4768 | $startWdate = mktime( 0, 0, 0, $startdate['month'], $startdate['day'], $startdate['year'] ); |
| 4211 | 4769 | $endWdate = mktime( 0, 0, 0, $enddate['month'], $enddate['day'], $enddate['year'] ); |
| 4212 | 4770 | $wduration = $endWdate - $startWdate; |
@@ -4232,15 +4790,23 @@ discard block |
||
| 4232 | 4790 | */ |
| 4233 | 4791 | function _date2timestamp( $datetime, $tz=null ) { |
| 4234 | 4792 | $output = null; |
| 4235 | - if( !isset( $datetime['hour'] )) $datetime['hour'] = '0'; |
|
| 4236 | - if( !isset( $datetime['min'] )) $datetime['min'] = '0'; |
|
| 4237 | - if( !isset( $datetime['sec'] )) $datetime['sec'] = '0'; |
|
| 4793 | + if( !isset( $datetime['hour'] )) { |
|
| 4794 | + $datetime['hour'] = '0'; |
|
| 4795 | + } |
|
| 4796 | + if( !isset( $datetime['min'] )) { |
|
| 4797 | + $datetime['min'] = '0'; |
|
| 4798 | + } |
|
| 4799 | + if( !isset( $datetime['sec'] )) { |
|
| 4800 | + $datetime['sec'] = '0'; |
|
| 4801 | + } |
|
| 4238 | 4802 | foreach( $datetime as $dkey => $dvalue ) { |
| 4239 | - if( 'tz' != $dkey ) |
|
| 4240 | - $datetime[$dkey] = (integer) $dvalue; |
|
| 4803 | + if( 'tz' != $dkey ) { |
|
| 4804 | + $datetime[$dkey] = (integer) $dvalue; |
|
| 4805 | + } |
|
| 4806 | + } |
|
| 4807 | + if( $tz ) { |
|
| 4808 | + $datetime['tz'] = $tz; |
|
| 4241 | 4809 | } |
| 4242 | - if( $tz ) |
|
| 4243 | - $datetime['tz'] = $tz; |
|
| 4244 | 4810 | $offset = ( isset( $datetime['tz'] ) && ( '' < trim ( $datetime['tz'] ))) ? $this->_tz2offset( $datetime['tz'] ) : 0; |
| 4245 | 4811 | $output = mktime( $datetime['hour'], $datetime['min'], ($datetime['sec'] + $offset), $datetime['month'], $datetime['day'], $datetime['year'] ); |
| 4246 | 4812 | return $output; |
@@ -4275,12 +4841,15 @@ discard block |
||
| 4275 | 4841 | } |
| 4276 | 4842 | } |
| 4277 | 4843 | if( 3 != $parno ) { |
| 4278 | - if( !isset( $output['hour'] )) |
|
| 4279 | - $output['hour'] = 0; |
|
| 4280 | - if( !isset( $output['min'] )) |
|
| 4281 | - $output['min'] = 0; |
|
| 4282 | - if( !isset( $output['sec'] )) |
|
| 4283 | - $output['sec'] = 0; |
|
| 4844 | + if( !isset( $output['hour'] )) { |
|
| 4845 | + $output['hour'] = 0; |
|
| 4846 | + } |
|
| 4847 | + if( !isset( $output['min'] )) { |
|
| 4848 | + $output['min'] = 0; |
|
| 4849 | + } |
|
| 4850 | + if( !isset( $output['sec'] )) { |
|
| 4851 | + $output['sec'] = 0; |
|
| 4852 | + } |
|
| 4284 | 4853 | } |
| 4285 | 4854 | return $output; |
| 4286 | 4855 | } |
@@ -4300,39 +4869,37 @@ discard block |
||
| 4300 | 4869 | if( 'Z' == substr( $datetime, -1 )) { |
| 4301 | 4870 | $tz = 'Z'; |
| 4302 | 4871 | $datetime = trim( substr( $datetime, 0, $len )); |
| 4303 | - } |
|
| 4304 | - elseif( ( ctype_digit( substr( $datetime, -2, 2 ))) && // time or date |
|
| 4872 | + } elseif( ( ctype_digit( substr( $datetime, -2, 2 ))) && // time or date |
|
| 4305 | 4873 | ( '-' == substr( $datetime, -3, 1 )) || |
| 4306 | 4874 | ( ':' == substr( $datetime, -3, 1 )) || |
| 4307 | 4875 | ( '.' == substr( $datetime, -3, 1 ))) { |
| 4308 | 4876 | $continue = TRUE; |
| 4309 | - } |
|
| 4310 | - elseif( ( ctype_digit( substr( $datetime, -4, 4 ))) && // 4 pos offset |
|
| 4877 | + } elseif( ( ctype_digit( substr( $datetime, -4, 4 ))) && // 4 pos offset |
|
| 4311 | 4878 | ( ' +' == substr( $datetime, -6, 2 )) || |
| 4312 | 4879 | ( ' -' == substr( $datetime, -6, 2 ))) { |
| 4313 | 4880 | $tz = substr( $datetime, -5, 5 ); |
| 4314 | 4881 | $datetime = substr( $datetime, 0, ($len - 5)); |
| 4315 | - } |
|
| 4316 | - elseif( ( ctype_digit( substr( $datetime, -6, 6 ))) && // 6 pos offset |
|
| 4882 | + } elseif( ( ctype_digit( substr( $datetime, -6, 6 ))) && // 6 pos offset |
|
| 4317 | 4883 | ( ' +' == substr( $datetime, -8, 2 )) || |
| 4318 | 4884 | ( ' -' == substr( $datetime, -8, 2 ))) { |
| 4319 | 4885 | $tz = substr( $datetime, -7, 7 ); |
| 4320 | 4886 | $datetime = substr( $datetime, 0, ($len - 7)); |
| 4321 | - } |
|
| 4322 | - elseif( ( 6 < $len ) && ( ctype_digit( substr( $datetime, -6, 6 )))) { |
|
| 4887 | + } elseif( ( 6 < $len ) && ( ctype_digit( substr( $datetime, -6, 6 )))) { |
|
| 4323 | 4888 | $continue = TRUE; |
| 4324 | - } |
|
| 4325 | - elseif( 'T' == substr( $datetime, -7, 1 )) { |
|
| 4889 | + } elseif( 'T' == substr( $datetime, -7, 1 )) { |
|
| 4326 | 4890 | $continue = TRUE; |
| 4327 | - } |
|
| 4328 | - else { |
|
| 4891 | + } else { |
|
| 4329 | 4892 | $cx = $tx = 0; // 19970415T133000 US-Eastern |
| 4330 | 4893 | for( $cx = -1; $cx > ( 9 - $len ); $cx-- ) { |
| 4331 | - if(( ' ' == substr( $datetime, $cx, 1 )) || ctype_digit( substr( $datetime, $cx, 1 ))) |
|
| 4332 | - break; // if exists, tz ends here.. . ? |
|
| 4894 | + if(( ' ' == substr( $datetime, $cx, 1 )) || ctype_digit( substr( $datetime, $cx, 1 ))) { |
|
| 4895 | + break; |
|
| 4896 | + } |
|
| 4897 | + // if exists, tz ends here.. . ? |
|
| 4333 | 4898 | elseif( ctype_alpha( substr( $datetime, $cx, 1 )) || |
| 4334 | - ( in_array( substr( $datetime, $cx, 1 ), array( '-', '/' )))) |
|
| 4335 | - $tx--; // tz length counter |
|
| 4899 | + ( in_array( substr( $datetime, $cx, 1 ), array( '-', '/' )))) { |
|
| 4900 | + $tx--; |
|
| 4901 | + } |
|
| 4902 | + // tz length counter |
|
| 4336 | 4903 | } |
| 4337 | 4904 | if( 0 > $tx ) { |
| 4338 | 4905 | $tz = substr( $datetime, $tx ); |
@@ -4341,8 +4908,7 @@ discard block |
||
| 4341 | 4908 | } |
| 4342 | 4909 | if( 0 < substr_count( $datetime, '-' )) { |
| 4343 | 4910 | $datetime = str_replace( '-', '/', $datetime ); |
| 4344 | - } |
|
| 4345 | - elseif( ctype_digit( substr( $datetime, 0, 8 )) && |
|
| 4911 | + } elseif( ctype_digit( substr( $datetime, 0, 8 )) && |
|
| 4346 | 4912 | ( 'T' == substr( $datetime, 8, 1 )) && |
| 4347 | 4913 | ctype_digit( substr( $datetime, 9, 6 ))) { |
| 4348 | 4914 | $datetime = substr( $datetime, 4, 2 ) |
@@ -4362,10 +4928,10 @@ discard block |
||
| 4362 | 4928 | $output['hour'] = substr( $datestring, 11, 2 ); |
| 4363 | 4929 | $output['min'] = substr( $datestring, 14, 2 ); |
| 4364 | 4930 | $output['sec'] = substr( $datestring, 17, 2 ); |
| 4365 | - if( !empty( $tz )) |
|
| 4366 | - $output['tz'] = $tz; |
|
| 4367 | - } |
|
| 4368 | - elseif( 3 != $parno ) { |
|
| 4931 | + if( !empty( $tz )) { |
|
| 4932 | + $output['tz'] = $tz; |
|
| 4933 | + } |
|
| 4934 | + } elseif( 3 != $parno ) { |
|
| 4369 | 4935 | if(( '00' < substr( $datestring, 11, 2 )) || |
| 4370 | 4936 | ( '00' < substr( $datestring, 14, 2 )) || |
| 4371 | 4937 | ( '00' < substr( $datestring, 17, 2 ))) { |
@@ -4373,8 +4939,9 @@ discard block |
||
| 4373 | 4939 | $output['min'] = substr( $datestring, 14, 2 ); |
| 4374 | 4940 | $output['sec'] = substr( $datestring, 17, 2 ); |
| 4375 | 4941 | } |
| 4376 | - if( !empty( $tz )) |
|
| 4377 | - $output['tz'] = $tz; |
|
| 4942 | + if( !empty( $tz )) { |
|
| 4943 | + $output['tz'] = $tz; |
|
| 4944 | + } |
|
| 4378 | 4945 | } |
| 4379 | 4946 | return $output; |
| 4380 | 4947 | } |
@@ -4401,10 +4968,11 @@ discard block |
||
| 4401 | 4968 | $durseconds = $durseconds % ( 60 * 60 ); |
| 4402 | 4969 | $output['min'] = floor( $durseconds / ( 60 )); |
| 4403 | 4970 | $output['sec'] = ( $durseconds % ( 60 )); |
| 4404 | - } |
|
| 4405 | - else { |
|
| 4971 | + } else { |
|
| 4406 | 4972 | foreach( $duration as $durKey => $durValue ) { |
| 4407 | - if( empty( $durValue )) continue; |
|
| 4973 | + if( empty( $durValue )) { |
|
| 4974 | + continue; |
|
| 4975 | + } |
|
| 4408 | 4976 | switch ( $durKey ) { |
| 4409 | 4977 | case '0': case 'week': $output['week'] = $durValue; break; |
| 4410 | 4978 | case '1': case 'day': $output['day'] = $durValue; break; |
@@ -4419,14 +4987,22 @@ discard block |
||
| 4419 | 4987 | return $output; |
| 4420 | 4988 | } |
| 4421 | 4989 | unset( $output['week'] ); |
| 4422 | - if( empty( $output['day'] )) |
|
| 4423 | - unset( $output['day'] ); |
|
| 4990 | + if( empty( $output['day'] )) { |
|
| 4991 | + unset( $output['day'] ); |
|
| 4992 | + } |
|
| 4424 | 4993 | if ( isset( $output['hour'] ) || isset( $output['min'] ) || isset( $output['sec'] )) { |
| 4425 | - if( !isset( $output['hour'] )) $output['hour'] = 0; |
|
| 4426 | - if( !isset( $output['min'] )) $output['min'] = 0; |
|
| 4427 | - if( !isset( $output['sec'] )) $output['sec'] = 0; |
|
| 4428 | - if(( 0 == $output['hour'] ) && ( 0 == $output['min'] ) && ( 0 == $output['sec'] )) |
|
| 4429 | - unset( $output['hour'], $output['min'], $output['sec'] ); |
|
| 4994 | + if( !isset( $output['hour'] )) { |
|
| 4995 | + $output['hour'] = 0; |
|
| 4996 | + } |
|
| 4997 | + if( !isset( $output['min'] )) { |
|
| 4998 | + $output['min'] = 0; |
|
| 4999 | + } |
|
| 5000 | + if( !isset( $output['sec'] )) { |
|
| 5001 | + $output['sec'] = 0; |
|
| 5002 | + } |
|
| 5003 | + if(( 0 == $output['hour'] ) && ( 0 == $output['min'] ) && ( 0 == $output['sec'] )) { |
|
| 5004 | + unset( $output['hour'], $output['min'], $output['sec'] ); |
|
| 5005 | + } |
|
| 4430 | 5006 | } |
| 4431 | 5007 | return $output; |
| 4432 | 5008 | } |
@@ -4443,28 +5019,32 @@ discard block |
||
| 4443 | 5019 | if( $startdate && $duration ) { |
| 4444 | 5020 | $d1 = $startdate; |
| 4445 | 5021 | $dur = $duration; |
| 4446 | - } |
|
| 4447 | - elseif( isset( $this->dtstart['value'] ) && isset( $this->duration['value'] )) { |
|
| 5022 | + } elseif( isset( $this->dtstart['value'] ) && isset( $this->duration['value'] )) { |
|
| 4448 | 5023 | $d1 = $this->dtstart['value']; |
| 4449 | 5024 | $dur = $this->duration['value']; |
| 5025 | + } else { |
|
| 5026 | + return null; |
|
| 4450 | 5027 | } |
| 4451 | - else |
|
| 4452 | - return null; |
|
| 4453 | 5028 | $dateOnly = ( isset( $d1['hour'] ) || isset( $d1['min'] ) || isset( $d1['sec'] )) ? FALSE : TRUE; |
| 4454 | 5029 | $d1['hour'] = ( isset( $d1['hour'] )) ? $d1['hour'] : 0; |
| 4455 | 5030 | $d1['min'] = ( isset( $d1['min'] )) ? $d1['min'] : 0; |
| 4456 | 5031 | $d1['sec'] = ( isset( $d1['sec'] )) ? $d1['sec'] : 0; |
| 4457 | 5032 | $dtend = mktime( $d1['hour'], $d1['min'], $d1['sec'], $d1['month'], $d1['day'], $d1['year'] ); |
| 4458 | - if( isset( $dur['week'] )) |
|
| 4459 | - $dtend += ( $dur['week'] * 7 * 24 * 60 * 60 ); |
|
| 4460 | - if( isset( $dur['day'] )) |
|
| 4461 | - $dtend += ( $dur['day'] * 24 * 60 * 60 ); |
|
| 4462 | - if( isset( $dur['hour'] )) |
|
| 4463 | - $dtend += ( $dur['hour'] * 60 *60 ); |
|
| 4464 | - if( isset( $dur['min'] )) |
|
| 4465 | - $dtend += ( $dur['min'] * 60 ); |
|
| 4466 | - if( isset( $dur['sec'] )) |
|
| 4467 | - $dtend += $dur['sec']; |
|
| 5033 | + if( isset( $dur['week'] )) { |
|
| 5034 | + $dtend += ( $dur['week'] * 7 * 24 * 60 * 60 ); |
|
| 5035 | + } |
|
| 5036 | + if( isset( $dur['day'] )) { |
|
| 5037 | + $dtend += ( $dur['day'] * 24 * 60 * 60 ); |
|
| 5038 | + } |
|
| 5039 | + if( isset( $dur['hour'] )) { |
|
| 5040 | + $dtend += ( $dur['hour'] * 60 *60 ); |
|
| 5041 | + } |
|
| 5042 | + if( isset( $dur['min'] )) { |
|
| 5043 | + $dtend += ( $dur['min'] * 60 ); |
|
| 5044 | + } |
|
| 5045 | + if( isset( $dur['sec'] )) { |
|
| 5046 | + $dtend += $dur['sec']; |
|
| 5047 | + } |
|
| 4468 | 5048 | $dtend2 = array(); |
| 4469 | 5049 | $dtend2['year'] = date('Y', $dtend ); |
| 4470 | 5050 | $dtend2['month'] = date('m', $dtend ); |
@@ -4472,10 +5052,12 @@ discard block |
||
| 4472 | 5052 | $dtend2['hour'] = date('H', $dtend ); |
| 4473 | 5053 | $dtend2['min'] = date('i', $dtend ); |
| 4474 | 5054 | $dtend2['sec'] = date('s', $dtend ); |
| 4475 | - if( isset( $d1['tz'] )) |
|
| 4476 | - $dtend2['tz'] = $d1['tz']; |
|
| 4477 | - if( $dateOnly && (( 0 == $dtend2['hour'] ) && ( 0 == $dtend2['min'] ) && ( 0 == $dtend2['sec'] ))) |
|
| 4478 | - unset( $dtend2['hour'], $dtend2['min'], $dtend2['sec'] ); |
|
| 5055 | + if( isset( $d1['tz'] )) { |
|
| 5056 | + $dtend2['tz'] = $d1['tz']; |
|
| 5057 | + } |
|
| 5058 | + if( $dateOnly && (( 0 == $dtend2['hour'] ) && ( 0 == $dtend2['min'] ) && ( 0 == $dtend2['sec'] ))) { |
|
| 5059 | + unset( $dtend2['hour'], $dtend2['min'], $dtend2['sec'] ); |
|
| 5060 | + } |
|
| 4479 | 5061 | return $dtend2; |
| 4480 | 5062 | } |
| 4481 | 5063 | /** |
@@ -4489,10 +5071,12 @@ discard block |
||
| 4489 | 5071 | function _duration_string( $duration ) { |
| 4490 | 5072 | $duration = (string) trim( $duration ); |
| 4491 | 5073 | while( 'P' != strtoupper( substr( $duration, 0, 1 ))) { |
| 4492 | - if( 0 < strlen( $duration )) |
|
| 4493 | - $duration = substr( $duration, 1 ); |
|
| 4494 | - else |
|
| 4495 | - return false; // no leading P !?!? |
|
| 5074 | + if( 0 < strlen( $duration )) { |
|
| 5075 | + $duration = substr( $duration, 1 ); |
|
| 5076 | + } else { |
|
| 5077 | + return false; |
|
| 5078 | + } |
|
| 5079 | + // no leading P !?!? |
|
| 4496 | 5080 | } |
| 4497 | 5081 | $duration = substr( $duration, 1 ); // skip P |
| 4498 | 5082 | $duration = str_replace ( 't', 'T', $duration ); |
@@ -4522,10 +5106,13 @@ discard block |
||
| 4522 | 5106 | $val = null; |
| 4523 | 5107 | break; |
| 4524 | 5108 | default: |
| 4525 | - if( !ctype_digit( $duration{$ix} )) |
|
| 4526 | - return false; // unknown duration controll character !?!? |
|
| 4527 | - else |
|
| 4528 | - $val .= $duration{$ix}; |
|
| 5109 | + if( !ctype_digit( $duration{$ix} )) { |
|
| 5110 | + return false; |
|
| 5111 | + } |
|
| 5112 | + // unknown duration controll character !?!? |
|
| 5113 | + else { |
|
| 5114 | + $val .= $duration{$ix}; |
|
| 5115 | + } |
|
| 4529 | 5116 | } |
| 4530 | 5117 | } |
| 4531 | 5118 | return $this->_duration_array( $output ); |
@@ -4544,10 +5131,12 @@ discard block |
||
| 4544 | 5131 | * @return int |
| 4545 | 5132 | */ |
| 4546 | 5133 | function _existRem( &$array, $expkey, $expval=FALSE, $hitVal=null, $elseVal=null, $preSet=null ) { |
| 4547 | - if( $preSet ) |
|
| 4548 | - return $preSet; |
|
| 4549 | - if( !is_array( $array ) || ( 0 == count( $array ))) |
|
| 4550 | - return $elseVal; |
|
| 5134 | + if( $preSet ) { |
|
| 5135 | + return $preSet; |
|
| 5136 | + } |
|
| 5137 | + if( !is_array( $array ) || ( 0 == count( $array ))) { |
|
| 5138 | + return $elseVal; |
|
| 5139 | + } |
|
| 4551 | 5140 | foreach( $array as $key => $value ) { |
| 4552 | 5141 | if( strtoupper( $expkey ) == strtoupper( $key )) { |
| 4553 | 5142 | if( !$expval || ( strtoupper( $expval ) == strtoupper( $array[$key] ))) { |
@@ -4573,13 +5162,15 @@ discard block |
||
| 4573 | 5162 | !isset( $datetime['day'] ) && |
| 4574 | 5163 | !isset( $datetime['hour'] ) && |
| 4575 | 5164 | !isset( $datetime['min'] ) && |
| 4576 | - !isset( $datetime['sec'] )) |
|
| 4577 | - return ; |
|
| 5165 | + !isset( $datetime['sec'] )) { |
|
| 5166 | + return ; |
|
| 5167 | + } |
|
| 4578 | 5168 | $output = null; |
| 4579 | 5169 | // if( !isset( $datetime['day'] )) { $o=''; foreach($datetime as $k=>$v) {if(is_array($v)) $v=implode('-',$v);$o.=" $k=>$v";} echo " day SAKNAS : $o <br />\n"; } |
| 4580 | 5170 | foreach( $datetime as $dkey => $dvalue ) { |
| 4581 | - if( 'tz' != $dkey ) |
|
| 4582 | - $datetime[$dkey] = (integer) $dvalue; |
|
| 5171 | + if( 'tz' != $dkey ) { |
|
| 5172 | + $datetime[$dkey] = (integer) $dvalue; |
|
| 5173 | + } |
|
| 4583 | 5174 | } |
| 4584 | 5175 | $output = date('Ymd', mktime( 0, 0, 0, $datetime['month'], $datetime['day'], $datetime['year'])); |
| 4585 | 5176 | if( isset( $datetime['hour'] ) || |
@@ -4587,29 +5178,33 @@ discard block |
||
| 4587 | 5178 | isset( $datetime['sec'] ) || |
| 4588 | 5179 | isset( $datetime['tz'] )) { |
| 4589 | 5180 | if( isset( $datetime['tz'] ) && |
| 4590 | - !isset( $datetime['hour'] )) |
|
| 4591 | - $datetime['hour'] = 0; |
|
| 5181 | + !isset( $datetime['hour'] )) { |
|
| 5182 | + $datetime['hour'] = 0; |
|
| 5183 | + } |
|
| 4592 | 5184 | if( isset( $datetime['hour'] ) && |
| 4593 | - !isset( $datetime['min'] )) |
|
| 4594 | - $datetime['min'] = 0; |
|
| 5185 | + !isset( $datetime['min'] )) { |
|
| 5186 | + $datetime['min'] = 0; |
|
| 5187 | + } |
|
| 4595 | 5188 | if( isset( $datetime['hour'] ) && |
| 4596 | 5189 | isset( $datetime['min'] ) && |
| 4597 | - !isset( $datetime['sec'] )) |
|
| 4598 | - $datetime['sec'] = 0; |
|
| 5190 | + !isset( $datetime['sec'] )) { |
|
| 5191 | + $datetime['sec'] = 0; |
|
| 5192 | + } |
|
| 4599 | 5193 | $date = mktime( $datetime['hour'], $datetime['min'], $datetime['sec'], $datetime['month'], $datetime['day'], $datetime['year']); |
| 4600 | 5194 | $output .= date('\THis', $date ); |
| 4601 | 5195 | if( isset( $datetime['tz'] ) && ( '' < trim ( $datetime['tz'] ))) { |
| 4602 | 5196 | $datetime['tz'] = trim( $datetime['tz'] ); |
| 4603 | - if( 'Z' == $datetime['tz'] ) |
|
| 4604 | - $output .= 'Z'; |
|
| 5197 | + if( 'Z' == $datetime['tz'] ) { |
|
| 5198 | + $output .= 'Z'; |
|
| 5199 | + } |
|
| 4605 | 5200 | $offset = $this->_tz2offset( $datetime['tz'] ); |
| 4606 | 5201 | if( 0 != $offset ) { |
| 4607 | 5202 | $date = mktime( $datetime['hour'], $datetime['min'], ($datetime['sec'] + $offset), $datetime['month'], $datetime['day'], $datetime['year']); |
| 4608 | 5203 | $output = date( 'Ymd\THis\Z', $date ); |
| 4609 | 5204 | } |
| 5205 | + } elseif( 7 == $parno ) { |
|
| 5206 | + $output .= 'Z'; |
|
| 4610 | 5207 | } |
| 4611 | - elseif( 7 == $parno ) |
|
| 4612 | - $output .= 'Z'; |
|
| 4613 | 5208 | } |
| 4614 | 5209 | return $output; |
| 4615 | 5210 | } |
@@ -4626,14 +5221,16 @@ discard block |
||
| 4626 | 5221 | !isset( $duration['day'] ) && |
| 4627 | 5222 | !isset( $duration['hour'] ) && |
| 4628 | 5223 | !isset( $duration['min'] ) && |
| 4629 | - !isset( $duration['sec'] )) |
|
| 4630 | - return; |
|
| 5224 | + !isset( $duration['sec'] )) { |
|
| 5225 | + return; |
|
| 5226 | + } |
|
| 4631 | 5227 | $output = 'P'; |
| 4632 | - if( isset( $duration['week'] ) && ( 0 < $duration['week'] )) |
|
| 4633 | - $output .= $duration['week'].'W'; |
|
| 4634 | - else { |
|
| 4635 | - if( isset($duration['day'] ) && ( 0 < $duration['day'] )) |
|
| 4636 | - $output .= $duration['day'].'D'; |
|
| 5228 | + if( isset( $duration['week'] ) && ( 0 < $duration['week'] )) { |
|
| 5229 | + $output .= $duration['week'].'W'; |
|
| 5230 | + } else { |
|
| 5231 | + if( isset($duration['day'] ) && ( 0 < $duration['day'] )) { |
|
| 5232 | + $output .= $duration['day'].'D'; |
|
| 5233 | + } |
|
| 4637 | 5234 | if(( isset( $duration['hour']) && ( 0 < $duration['hour'] )) || |
| 4638 | 5235 | ( isset( $duration['min']) && ( 0 < $duration['min'] )) || |
| 4639 | 5236 | ( isset( $duration['sec']) && ( 0 < $duration['sec'] ))) { |
@@ -4658,7 +5255,9 @@ discard block |
||
| 4658 | 5255 | $output = null; |
| 4659 | 5256 | foreach( $recurdata as $therule ) { |
| 4660 | 5257 | if( empty( $therule['value'] )) { |
| 4661 | - if( $this->getConfig( 'allowEmpty' )) $output .= $this->_createElement( $recurlabel ); |
|
| 5258 | + if( $this->getConfig( 'allowEmpty' )) { |
|
| 5259 | + $output .= $this->_createElement( $recurlabel ); |
|
| 5260 | + } |
|
| 4662 | 5261 | continue; |
| 4663 | 5262 | } |
| 4664 | 5263 | $attributes = ( isset( $therule['params'] )) ? $this->_createParams( $therule['params'] ) : null; |
@@ -4694,9 +5293,9 @@ discard block |
||
| 4694 | 5293 | $content2 .= ( $vix ) ? ',' : null; |
| 4695 | 5294 | $content2 .= $valuePart; |
| 4696 | 5295 | } |
| 5296 | + } else { |
|
| 5297 | + $content2 .= $rulevalue; |
|
| 4697 | 5298 | } |
| 4698 | - else |
|
| 4699 | - $content2 .= $rulevalue; |
|
| 4700 | 5299 | break; |
| 4701 | 5300 | } |
| 4702 | 5301 | case 'BYDAY': { |
@@ -4707,19 +5306,19 @@ discard block |
||
| 4707 | 5306 | if( is_array( $valuePart )) { |
| 4708 | 5307 | $content2 .= ( $bydaycnt ) ? ',' : null; |
| 4709 | 5308 | foreach( $valuePart as $vix2 => $valuePart2 ) { |
| 4710 | - if( 'DAY' != strtoupper( $vix2 )) |
|
| 4711 | - $content21 .= $valuePart2; |
|
| 4712 | - else |
|
| 4713 | - $content22 .= $valuePart2; |
|
| 5309 | + if( 'DAY' != strtoupper( $vix2 )) { |
|
| 5310 | + $content21 .= $valuePart2; |
|
| 5311 | + } else { |
|
| 5312 | + $content22 .= $valuePart2; |
|
| 5313 | + } |
|
| 4714 | 5314 | } |
| 4715 | 5315 | $content2 .= $content21.$content22; |
| 4716 | 5316 | $bydaycnt++; |
| 4717 | - } |
|
| 4718 | - else { |
|
| 5317 | + } else { |
|
| 4719 | 5318 | $content2 .= ( $bydaycnt ) ? ',' : null; |
| 4720 | - if( 'DAY' != strtoupper( $vix )) |
|
| 4721 | - $content21 .= $valuePart; |
|
| 4722 | - else { |
|
| 5319 | + if( 'DAY' != strtoupper( $vix )) { |
|
| 5320 | + $content21 .= $valuePart; |
|
| 5321 | + } else { |
|
| 4723 | 5322 | $content22 .= $valuePart; |
| 4724 | 5323 | $bydaycnt++; |
| 4725 | 5324 | } |
@@ -4765,24 +5364,32 @@ discard block |
||
| 4765 | 5364 | * @return bool |
| 4766 | 5365 | */ |
| 4767 | 5366 | function _isArrayDate( $input ) { |
| 4768 | - if( isset( $input['week'] ) || ( !in_array( count( $input ), array( 3, 6, 7 )))) |
|
| 4769 | - return FALSE; |
|
| 4770 | - if( 7 == count( $input )) |
|
| 4771 | - return TRUE; |
|
| 4772 | - if( isset( $input['year'] ) && isset( $input['month'] ) && isset( $input['day'] )) |
|
| 4773 | - return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 4774 | - if( isset( $input['day'] ) || isset( $input['hour'] ) || isset( $input['min'] ) || isset( $input['sec'] )) |
|
| 4775 | - return FALSE; |
|
| 4776 | - if( in_array( 0, $input )) |
|
| 4777 | - return FALSE; |
|
| 4778 | - if(( 1970 > $input[0] ) || ( 12 < $input[1] ) || ( 31 < $input[2] )) |
|
| 4779 | - return FALSE; |
|
| 5367 | + if( isset( $input['week'] ) || ( !in_array( count( $input ), array( 3, 6, 7 )))) { |
|
| 5368 | + return FALSE; |
|
| 5369 | + } |
|
| 5370 | + if( 7 == count( $input )) { |
|
| 5371 | + return TRUE; |
|
| 5372 | + } |
|
| 5373 | + if( isset( $input['year'] ) && isset( $input['month'] ) && isset( $input['day'] )) { |
|
| 5374 | + return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 5375 | + } |
|
| 5376 | + if( isset( $input['day'] ) || isset( $input['hour'] ) || isset( $input['min'] ) || isset( $input['sec'] )) { |
|
| 5377 | + return FALSE; |
|
| 5378 | + } |
|
| 5379 | + if( in_array( 0, $input )) { |
|
| 5380 | + return FALSE; |
|
| 5381 | + } |
|
| 5382 | + if(( 1970 > $input[0] ) || ( 12 < $input[1] ) || ( 31 < $input[2] )) { |
|
| 5383 | + return FALSE; |
|
| 5384 | + } |
|
| 4780 | 5385 | if(( isset( $input[0] ) && isset( $input[1] ) && isset( $input[2] )) && |
| 4781 | - checkdate( (int) $input[1], (int) $input[2], (int) $input[0] )) |
|
| 4782 | - return TRUE; |
|
| 5386 | + checkdate( (int) $input[1], (int) $input[2], (int) $input[0] )) { |
|
| 5387 | + return TRUE; |
|
| 5388 | + } |
|
| 4783 | 5389 | $input = $this->_date_time_string( $input[1].'/'.$input[2].'/'.$input[0], 3 ); // m - d - Y |
| 4784 | - if( isset( $input['year'] ) && isset( $input['month'] ) && isset( $input['day'] )) |
|
| 4785 | - return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 5390 | + if( isset( $input['year'] ) && isset( $input['month'] ) && isset( $input['day'] )) { |
|
| 5391 | + return checkdate( (int) $input['month'], (int) $input['day'], (int) $input['year'] ); |
|
| 5392 | + } |
|
| 4786 | 5393 | return FALSE; |
| 4787 | 5394 | } |
| 4788 | 5395 | /** |
@@ -4806,16 +5413,17 @@ discard block |
||
| 4806 | 5413 | */ |
| 4807 | 5414 | function _isOffset( $input ) { |
| 4808 | 5415 | $input = trim( (string) $input ); |
| 4809 | - if( 'Z' == substr( $input, -1 )) |
|
| 4810 | - return TRUE; |
|
| 4811 | - elseif(( 5 <= strlen( $input )) && |
|
| 5416 | + if( 'Z' == substr( $input, -1 )) { |
|
| 5417 | + return TRUE; |
|
| 5418 | + } elseif(( 5 <= strlen( $input )) && |
|
| 4812 | 5419 | ( in_array( substr( $input, -5, 1 ), array( '+', '-' ))) && |
| 4813 | - ( '0000' < substr( $input, -4 )) && ( '9999' >= substr( $input, -4 ))) |
|
| 4814 | - return TRUE; |
|
| 4815 | - elseif(( 7 <= strlen( $input )) && |
|
| 5420 | + ( '0000' < substr( $input, -4 )) && ( '9999' >= substr( $input, -4 ))) { |
|
| 5421 | + return TRUE; |
|
| 5422 | + } elseif(( 7 <= strlen( $input )) && |
|
| 4816 | 5423 | ( in_array( substr( $input, -7, 1 ), array( '+', '-' ))) && |
| 4817 | - ( '000000' < substr( $input, -6 )) && ( '999999' >= substr( $input, -6 ))) |
|
| 4818 | - return TRUE; |
|
| 5424 | + ( '000000' < substr( $input, -6 )) && ( '999999' >= substr( $input, -6 ))) { |
|
| 5425 | + return TRUE; |
|
| 5426 | + } |
|
| 4819 | 5427 | return FALSE; |
| 4820 | 5428 | |
| 4821 | 5429 | } |
@@ -4828,14 +5436,29 @@ discard block |
||
| 4828 | 5436 | * @return bool |
| 4829 | 5437 | */ |
| 4830 | 5438 | function _notExistProp( $propName ) { |
| 4831 | - if( empty( $propName )) return FALSE; // when deleting x-prop, an empty propName may be used=allowed |
|
| 5439 | + if( empty( $propName )) { |
|
| 5440 | + return FALSE; |
|
| 5441 | + } |
|
| 5442 | + // when deleting x-prop, an empty propName may be used=allowed |
|
| 4832 | 5443 | $propName = strtolower( $propName ); |
| 4833 | - if( 'last-modified' == $propName ) { if( !isset( $this->lastmodified )) return TRUE; } |
|
| 4834 | - elseif( 'percent-complete' == $propName ) { if( !isset( $this->percentcomplete )) return TRUE; } |
|
| 4835 | - elseif( 'recurrence-id' == $propName ) { if( !isset( $this->recurrenceid )) return TRUE; } |
|
| 4836 | - elseif( 'related-to' == $propName ) { if( !isset( $this->relatedto )) return TRUE; } |
|
| 4837 | - elseif( 'request-status' == $propName ) { if( !isset( $this->requeststatus )) return TRUE; } |
|
| 4838 | - elseif(( 'x-' != substr($propName,0,2)) && !isset( $this->$propName )) return TRUE; |
|
| 5444 | + if( 'last-modified' == $propName ) { if( !isset( $this->lastmodified )) { |
|
| 5445 | + return TRUE; |
|
| 5446 | + } |
|
| 5447 | + } elseif( 'percent-complete' == $propName ) { if( !isset( $this->percentcomplete )) { |
|
| 5448 | + return TRUE; |
|
| 5449 | + } |
|
| 5450 | + } elseif( 'recurrence-id' == $propName ) { if( !isset( $this->recurrenceid )) { |
|
| 5451 | + return TRUE; |
|
| 5452 | + } |
|
| 5453 | + } elseif( 'related-to' == $propName ) { if( !isset( $this->relatedto )) { |
|
| 5454 | + return TRUE; |
|
| 5455 | + } |
|
| 5456 | + } elseif( 'request-status' == $propName ) { if( !isset( $this->requeststatus )) { |
|
| 5457 | + return TRUE; |
|
| 5458 | + } |
|
| 5459 | + } elseif(( 'x-' != substr($propName,0,2)) && !isset( $this->$propName )) { |
|
| 5460 | + return TRUE; |
|
| 5461 | + } |
|
| 4839 | 5462 | return FALSE; |
| 4840 | 5463 | } |
| 4841 | 5464 | /** |
@@ -4854,7 +5477,9 @@ discard block |
||
| 4854 | 5477 | * @todo BYHOUR, BYMINUTE, BYSECOND, ev. BYSETPOS due to ambiguity, WEEKLY at year end/start |
| 4855 | 5478 | */ |
| 4856 | 5479 | function _recur2date( & $result, $recur, $wdate, $startdate, $enddate=FALSE ) { |
| 4857 | - foreach( $wdate as $k => $v ) if( ctype_digit( $v )) $wdate[$k] = (int) $v; |
|
| 5480 | + foreach( $wdate as $k => $v ) { |
|
| 5481 | + if( ctype_digit( $v )) $wdate[$k] = (int) $v; |
|
| 5482 | + } |
|
| 4858 | 5483 | $wdatets = $this->_date2timestamp( $wdate ); |
| 4859 | 5484 | $startdatets = $this->_date2timestamp( $startdate ); |
| 4860 | 5485 | if( !$enddate ) { |
@@ -4863,43 +5488,54 @@ discard block |
||
| 4863 | 5488 | // echo "recur __in_ ".implode('-',$startdate)." period start ".implode('-',$wdate)." period end ".implode('-',$enddate)."<br />\n";print_r($recur);echo "<br />\n";//test### |
| 4864 | 5489 | } |
| 4865 | 5490 | $endDatets = $this->_date2timestamp( $enddate ); // fix break |
| 4866 | - if( !isset( $recur['COUNT'] ) && !isset( $recur['UNTIL'] )) |
|
| 4867 | - $recur['UNTIL'] = $enddate; // create break |
|
| 5491 | + if( !isset( $recur['COUNT'] ) && !isset( $recur['UNTIL'] )) { |
|
| 5492 | + $recur['UNTIL'] = $enddate; |
|
| 5493 | + } |
|
| 5494 | + // create break |
|
| 4868 | 5495 | if( isset( $recur['UNTIL'] )) { |
| 4869 | 5496 | $tdatets = $this->_date2timestamp( $recur['UNTIL'] ); |
| 4870 | 5497 | if( $endDatets > $tdatets ) { |
| 4871 | 5498 | $endDatets = $tdatets; // emergency break |
| 4872 | 5499 | $enddate = $this->_timestamp2date( $endDatets, 6 ); |
| 5500 | + } else { |
|
| 5501 | + $recur['UNTIL'] = $this->_timestamp2date( $endDatets, 6 ); |
|
| 4873 | 5502 | } |
| 4874 | - else |
|
| 4875 | - $recur['UNTIL'] = $this->_timestamp2date( $endDatets, 6 ); |
|
| 4876 | 5503 | } |
| 4877 | 5504 | if( $wdatets > $endDatets ) { |
| 4878 | 5505 | //echo "recur out of date ".implode('-',$this->_date_time_string(date('Y-m-d H:i:s',$wdatets),6))."<br />\n";//test |
| 4879 | 5506 | return array(); // nothing to do.. . |
| 4880 | 5507 | } |
| 4881 | - if( !isset( $recur['FREQ'] )) // "MUST be specified.. ." |
|
| 4882 | - $recur['FREQ'] = 'DAILY'; // ?? |
|
| 5508 | + if( !isset( $recur['FREQ'] )) { |
|
| 5509 | + // "MUST be specified.. ." |
|
| 5510 | + $recur['FREQ'] = 'DAILY'; |
|
| 5511 | + } |
|
| 5512 | + // ?? |
|
| 4883 | 5513 | $wkst = ( isset( $recur['WKST'] ) && ( 'SU' == $recur['WKST'] )) ? 24*60*60 : 0; // ?? |
| 4884 | - if( !isset( $recur['INTERVAL'] )) |
|
| 4885 | - $recur['INTERVAL'] = 1; |
|
| 5514 | + if( !isset( $recur['INTERVAL'] )) { |
|
| 5515 | + $recur['INTERVAL'] = 1; |
|
| 5516 | + } |
|
| 4886 | 5517 | $countcnt = ( !isset( $recur['BYSETPOS'] )) ? 1 : 0; // DTSTART counts as the first occurrence |
| 4887 | 5518 | /* find out how to step up dates and set index for interval count */ |
| 4888 | 5519 | $step = array(); |
| 4889 | - if( 'YEARLY' == $recur['FREQ'] ) |
|
| 4890 | - $step['year'] = 1; |
|
| 4891 | - elseif( 'MONTHLY' == $recur['FREQ'] ) |
|
| 4892 | - $step['month'] = 1; |
|
| 4893 | - elseif( 'WEEKLY' == $recur['FREQ'] ) |
|
| 4894 | - $step['day'] = 7; |
|
| 4895 | - else |
|
| 4896 | - $step['day'] = 1; |
|
| 4897 | - if( isset( $step['year'] ) && isset( $recur['BYMONTH'] )) |
|
| 4898 | - $step = array( 'month' => 1 ); |
|
| 4899 | - if( empty( $step ) && isset( $recur['BYWEEKNO'] )) // ?? |
|
| 5520 | + if( 'YEARLY' == $recur['FREQ'] ) { |
|
| 5521 | + $step['year'] = 1; |
|
| 5522 | + } elseif( 'MONTHLY' == $recur['FREQ'] ) { |
|
| 5523 | + $step['month'] = 1; |
|
| 5524 | + } elseif( 'WEEKLY' == $recur['FREQ'] ) { |
|
| 5525 | + $step['day'] = 7; |
|
| 5526 | + } else { |
|
| 5527 | + $step['day'] = 1; |
|
| 5528 | + } |
|
| 5529 | + if( isset( $step['year'] ) && isset( $recur['BYMONTH'] )) { |
|
| 5530 | + $step = array( 'month' => 1 ); |
|
| 5531 | + } |
|
| 5532 | + if( empty( $step ) && isset( $recur['BYWEEKNO'] )) { |
|
| 5533 | + // ?? |
|
| 4900 | 5534 | $step = array( 'day' => 7 ); |
| 4901 | - if( isset( $recur['BYYEARDAY'] ) || isset( $recur['BYMONTHDAY'] ) || isset( $recur['BYDAY'] )) |
|
| 4902 | - $step = array( 'day' => 1 ); |
|
| 5535 | + } |
|
| 5536 | + if( isset( $recur['BYYEARDAY'] ) || isset( $recur['BYMONTHDAY'] ) || isset( $recur['BYDAY'] )) { |
|
| 5537 | + $step = array( 'day' => 1 ); |
|
| 5538 | + } |
|
| 4903 | 5539 | $intervalarr = array(); |
| 4904 | 5540 | if( 1 < $recur['INTERVAL'] ) { |
| 4905 | 5541 | $intervalix = $this->_recurIntervalIx( $recur['FREQ'], $wdate, $wkst ); |
@@ -4912,11 +5548,12 @@ discard block |
||
| 4912 | 5548 | $bysetposMold = $wdate['month']; |
| 4913 | 5549 | $bysetposDold = $wdate['day']; |
| 4914 | 5550 | if( is_array( $recur['BYSETPOS'] )) { |
| 4915 | - foreach( $recur['BYSETPOS'] as $bix => $bval ) |
|
| 4916 | - $recur['BYSETPOS'][$bix] = (int) $bval; |
|
| 5551 | + foreach( $recur['BYSETPOS'] as $bix => $bval ) { |
|
| 5552 | + $recur['BYSETPOS'][$bix] = (int) $bval; |
|
| 5553 | + } |
|
| 5554 | + } else { |
|
| 5555 | + $recur['BYSETPOS'] = array( (int) $recur['BYSETPOS'] ); |
|
| 4917 | 5556 | } |
| 4918 | - else |
|
| 4919 | - $recur['BYSETPOS'] = array( (int) $recur['BYSETPOS'] ); |
|
| 4920 | 5557 | $this->_stepdate( $enddate, $endDatets, $step); // make sure to count whole last period |
| 4921 | 5558 | } |
| 4922 | 5559 | $this->_stepdate( $wdate, $wdatets, $step); |
@@ -4925,10 +5562,12 @@ discard block |
||
| 4925 | 5562 | /* MAIN LOOP */ |
| 4926 | 5563 | // echo "recur start ".implode('-',$wdate)." end ".implode('-',$enddate)."<br />\n";//test |
| 4927 | 5564 | while( TRUE ) { |
| 4928 | - if( isset( $endDatets ) && ( $wdatets > $endDatets )) |
|
| 4929 | - break; |
|
| 4930 | - if( isset( $recur['COUNT'] ) && ( $countcnt >= $recur['COUNT'] )) |
|
| 4931 | - break; |
|
| 5565 | + if( isset( $endDatets ) && ( $wdatets > $endDatets )) { |
|
| 5566 | + break; |
|
| 5567 | + } |
|
| 5568 | + if( isset( $recur['COUNT'] ) && ( $countcnt >= $recur['COUNT'] )) { |
|
| 5569 | + break; |
|
| 5570 | + } |
|
| 4932 | 5571 | if( $year_old != $wdate['year'] ) { |
| 4933 | 5572 | $year_old = $wdate['year']; |
| 4934 | 5573 | $daycnts = array(); |
@@ -4937,8 +5576,9 @@ discard block |
||
| 4937 | 5576 | for( $m = 1; $m <= 12; $m++ ) { // count up and update up-counters |
| 4938 | 5577 | $daycnts[$m] = array(); |
| 4939 | 5578 | $weekdaycnt = array(); |
| 4940 | - foreach( $daynames as $dn ) |
|
| 4941 | - $yeardaycnt[$dn] = $weekdaycnt[$dn] = 0; |
|
| 5579 | + foreach( $daynames as $dn ) { |
|
| 5580 | + $yeardaycnt[$dn] = $weekdaycnt[$dn] = 0; |
|
| 5581 | + } |
|
| 4942 | 5582 | $mcnt = date( 't', mktime( 0, 0, 0, $m, 1, $wdate['year'] )); |
| 4943 | 5583 | for( $d = 1; $d <= $mcnt; $d++ ) { |
| 4944 | 5584 | $daycnts[$m][$d] = array(); |
@@ -4955,8 +5595,9 @@ discard block |
||
| 4955 | 5595 | $yeardaycnt[$day]++; |
| 4956 | 5596 | $daycnts[$m][$d]['yeardayno_up'] = $yeardaycnt[$day]; |
| 4957 | 5597 | } |
| 4958 | - if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) |
|
| 4959 | - $daycnts[$m][$d]['weekno_up'] =(int)date('W',mktime(0,0,$wkst,$m,$d,$wdate['year'])); |
|
| 5598 | + if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) { |
|
| 5599 | + $daycnts[$m][$d]['weekno_up'] =(int)date('W',mktime(0,0,$wkst,$m,$d,$wdate['year'])); |
|
| 5600 | + } |
|
| 4960 | 5601 | } |
| 4961 | 5602 | } |
| 4962 | 5603 | $daycnt = 0; |
@@ -4964,9 +5605,9 @@ discard block |
||
| 4964 | 5605 | if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) { |
| 4965 | 5606 | $weekno = null; |
| 4966 | 5607 | for( $d=31; $d > 25; $d-- ) { // get last weekno for year |
| 4967 | - if( !$weekno ) |
|
| 4968 | - $weekno = $daycnts[12][$d]['weekno_up']; |
|
| 4969 | - elseif( $weekno < $daycnts[12][$d]['weekno_up'] ) { |
|
| 5608 | + if( !$weekno ) { |
|
| 5609 | + $weekno = $daycnts[12][$d]['weekno_up']; |
|
| 5610 | + } elseif( $weekno < $daycnts[12][$d]['weekno_up'] ) { |
|
| 4970 | 5611 | $weekno = $daycnts[12][$d]['weekno_up']; |
| 4971 | 5612 | break; |
| 4972 | 5613 | } |
@@ -4974,8 +5615,9 @@ discard block |
||
| 4974 | 5615 | } |
| 4975 | 5616 | for( $m = 12; $m > 0; $m-- ) { // count down and update down-counters |
| 4976 | 5617 | $weekdaycnt = array(); |
| 4977 | - foreach( $daynames as $dn ) |
|
| 4978 | - $yeardaycnt[$dn] = $weekdaycnt[$dn] = 0; |
|
| 5618 | + foreach( $daynames as $dn ) { |
|
| 5619 | + $yeardaycnt[$dn] = $weekdaycnt[$dn] = 0; |
|
| 5620 | + } |
|
| 4979 | 5621 | $monthcnt = 0; |
| 4980 | 5622 | $mcnt = date( 't', mktime( 0, 0, 0, $m, 1, $wdate['year'] )); |
| 4981 | 5623 | for( $d = $mcnt; $d > 0; $d-- ) { |
@@ -4994,8 +5636,9 @@ discard block |
||
| 4994 | 5636 | $yeardaycnt[$day] -= 1; |
| 4995 | 5637 | $daycnts[$m][$d]['yeardayno_down'] = $yeardaycnt[$day]; |
| 4996 | 5638 | } |
| 4997 | - if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) |
|
| 4998 | - $daycnts[$m][$d]['weekno_down'] = ($daycnts[$m][$d]['weekno_up'] - $weekno - 1); |
|
| 5639 | + if( isset( $recur['BYWEEKNO'] ) || ( $recur['FREQ'] == 'WEEKLY' )) { |
|
| 5640 | + $daycnts[$m][$d]['weekno_down'] = ($daycnts[$m][$d]['weekno_up'] - $weekno - 1); |
|
| 5641 | + } |
|
| 4999 | 5642 | } |
| 5000 | 5643 | } |
| 5001 | 5644 | } |
@@ -5006,36 +5649,42 @@ discard block |
||
| 5006 | 5649 | /* check interval */ |
| 5007 | 5650 | $currentKey = array_keys( $intervalarr ); |
| 5008 | 5651 | $currentKey = end( $currentKey ); // get last index |
| 5009 | - if( $currentKey != $intervalix ) |
|
| 5010 | - $intervalarr = array( $intervalix => ( $intervalarr[$currentKey] + 1 )); |
|
| 5652 | + if( $currentKey != $intervalix ) { |
|
| 5653 | + $intervalarr = array( $intervalix => ( $intervalarr[$currentKey] + 1 )); |
|
| 5654 | + } |
|
| 5011 | 5655 | if(( $recur['INTERVAL'] != $intervalarr[$intervalix] ) && |
| 5012 | 5656 | ( 0 != $intervalarr[$intervalix] )) { |
| 5013 | 5657 | /* step up date */ |
| 5014 | 5658 | //echo "skip: ".implode('-',$wdate)." ix=$intervalix old=$currentKey interval=".$intervalarr[$intervalix]."<br />\n";//test |
| 5015 | 5659 | $this->_stepdate( $wdate, $wdatets, $step); |
| 5016 | 5660 | continue; |
| 5017 | - } |
|
| 5018 | - else // continue within the selected interval |
|
| 5661 | + } else { |
|
| 5662 | + // continue within the selected interval |
|
| 5019 | 5663 | $intervalarr[$intervalix] = 0; |
| 5664 | + } |
|
| 5020 | 5665 | //echo "cont: ".implode('-',$wdate)." ix=$intervalix old=$currentKey interval=".$intervalarr[$intervalix]."<br />\n";//test |
| 5021 | 5666 | } |
| 5022 | 5667 | $updateOK = TRUE; |
| 5023 | - if( $updateOK && isset( $recur['BYMONTH'] )) |
|
| 5024 | - $updateOK = $this->_recurBYcntcheck( $recur['BYMONTH'] |
|
| 5668 | + if( $updateOK && isset( $recur['BYMONTH'] )) { |
|
| 5669 | + $updateOK = $this->_recurBYcntcheck( $recur['BYMONTH'] |
|
| 5025 | 5670 | , $wdate['month'] |
| 5026 | 5671 | ,($wdate['month'] - 13)); |
| 5027 | - if( $updateOK && isset( $recur['BYWEEKNO'] )) |
|
| 5028 | - $updateOK = $this->_recurBYcntcheck( $recur['BYWEEKNO'] |
|
| 5672 | + } |
|
| 5673 | + if( $updateOK && isset( $recur['BYWEEKNO'] )) { |
|
| 5674 | + $updateOK = $this->_recurBYcntcheck( $recur['BYWEEKNO'] |
|
| 5029 | 5675 | , $daycnts[$wdate['month']][$wdate['day']]['weekno_up'] |
| 5030 | 5676 | , $daycnts[$wdate['month']][$wdate['day']]['weekno_down'] ); |
| 5031 | - if( $updateOK && isset( $recur['BYYEARDAY'] )) |
|
| 5032 | - $updateOK = $this->_recurBYcntcheck( $recur['BYYEARDAY'] |
|
| 5677 | + } |
|
| 5678 | + if( $updateOK && isset( $recur['BYYEARDAY'] )) { |
|
| 5679 | + $updateOK = $this->_recurBYcntcheck( $recur['BYYEARDAY'] |
|
| 5033 | 5680 | , $daycnts[$wdate['month']][$wdate['day']]['yearcnt_up'] |
| 5034 | 5681 | , $daycnts[$wdate['month']][$wdate['day']]['yearcnt_down'] ); |
| 5035 | - if( $updateOK && isset( $recur['BYMONTHDAY'] )) |
|
| 5036 | - $updateOK = $this->_recurBYcntcheck( $recur['BYMONTHDAY'] |
|
| 5682 | + } |
|
| 5683 | + if( $updateOK && isset( $recur['BYMONTHDAY'] )) { |
|
| 5684 | + $updateOK = $this->_recurBYcntcheck( $recur['BYMONTHDAY'] |
|
| 5037 | 5685 | , $wdate['day'] |
| 5038 | 5686 | , $daycnts[$wdate['month']][$wdate['day']]['monthcnt_down'] ); |
| 5687 | + } |
|
| 5039 | 5688 | //echo "efter BYMONTHDAY: ".implode('-',$wdate).' status: '; echo ($updateOK) ? 'TRUE' : 'FALSE'; echo "<br />\n";//test### |
| 5040 | 5689 | if( $updateOK && isset( $recur['BYDAY'] )) { |
| 5041 | 5690 | $updateOK = FALSE; |
@@ -5043,42 +5692,45 @@ discard block |
||
| 5043 | 5692 | $d = $wdate['day']; |
| 5044 | 5693 | if( isset( $recur['BYDAY']['DAY'] )) { // single day, opt with year/month day order no |
| 5045 | 5694 | $daynoexists = $daynosw = $daynamesw = FALSE; |
| 5046 | - if( $recur['BYDAY']['DAY'] == $daycnts[$m][$d]['DAY'] ) |
|
| 5047 | - $daynamesw = TRUE; |
|
| 5695 | + if( $recur['BYDAY']['DAY'] == $daycnts[$m][$d]['DAY'] ) { |
|
| 5696 | + $daynamesw = TRUE; |
|
| 5697 | + } |
|
| 5048 | 5698 | if( isset( $recur['BYDAY'][0] )) { |
| 5049 | 5699 | $daynoexists = TRUE; |
| 5050 | - if(( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'MONTHLY' )) || isset( $recur['BYMONTH'] )) |
|
| 5051 | - $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5700 | + if(( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'MONTHLY' )) || isset( $recur['BYMONTH'] )) { |
|
| 5701 | + $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5052 | 5702 | , $daycnts[$m][$d]['monthdayno_up'] |
| 5053 | 5703 | , $daycnts[$m][$d]['monthdayno_down'] ); |
| 5054 | - elseif( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'YEARLY' )) |
|
| 5055 | - $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5704 | + } elseif( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'YEARLY' )) { |
|
| 5705 | + $daynosw = $this->_recurBYcntcheck( $recur['BYDAY'][0] |
|
| 5056 | 5706 | , $daycnts[$m][$d]['yeardayno_up'] |
| 5057 | 5707 | , $daycnts[$m][$d]['yeardayno_down'] ); |
| 5708 | + } |
|
| 5058 | 5709 | } |
| 5059 | 5710 | if(( $daynoexists && $daynosw && $daynamesw ) || |
| 5060 | 5711 | ( !$daynoexists && !$daynosw && $daynamesw )) { |
| 5061 | 5712 | $updateOK = TRUE; |
| 5062 | 5713 | } |
| 5063 | 5714 | //echo "daynoexists:$daynoexists daynosw:$daynosw daynamesw:$daynamesw<br />\n"; // test ### |
| 5064 | - } |
|
| 5065 | - else { |
|
| 5715 | + } else { |
|
| 5066 | 5716 | foreach( $recur['BYDAY'] as $bydayvalue ) { |
| 5067 | 5717 | $daynoexists = $daynosw = $daynamesw = FALSE; |
| 5068 | 5718 | if( isset( $bydayvalue['DAY'] ) && |
| 5069 | - ( $bydayvalue['DAY'] == $daycnts[$m][$d]['DAY'] )) |
|
| 5070 | - $daynamesw = TRUE; |
|
| 5719 | + ( $bydayvalue['DAY'] == $daycnts[$m][$d]['DAY'] )) { |
|
| 5720 | + $daynamesw = TRUE; |
|
| 5721 | + } |
|
| 5071 | 5722 | if( isset( $bydayvalue[0] )) { |
| 5072 | 5723 | $daynoexists = TRUE; |
| 5073 | 5724 | if(( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'MONTHLY' )) || |
| 5074 | - isset( $recur['BYMONTH'] )) |
|
| 5075 | - $daynosw = $this->_recurBYcntcheck( $bydayvalue['0'] |
|
| 5725 | + isset( $recur['BYMONTH'] )) { |
|
| 5726 | + $daynosw = $this->_recurBYcntcheck( $bydayvalue['0'] |
|
| 5076 | 5727 | , $daycnts[$m][$d]['monthdayno_up'] |
| 5077 | 5728 | , $daycnts[$m][$d]['monthdayno_down'] ); |
| 5078 | - elseif( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'YEARLY' )) |
|
| 5079 | - $daynosw = $this->_recurBYcntcheck( $bydayvalue['0'] |
|
| 5729 | + } elseif( isset( $recur['FREQ'] ) && ( $recur['FREQ'] == 'YEARLY' )) { |
|
| 5730 | + $daynosw = $this->_recurBYcntcheck( $bydayvalue['0'] |
|
| 5080 | 5731 | , $daycnts[$m][$d]['yeardayno_up'] |
| 5081 | 5732 | , $daycnts[$m][$d]['yeardayno_down'] ); |
| 5733 | + } |
|
| 5082 | 5734 | } |
| 5083 | 5735 | //echo "daynoexists:$daynoexists daynosw:$daynosw daynamesw:$daynamesw<br />\n"; // test ### |
| 5084 | 5736 | if(( $daynoexists && $daynosw && $daynamesw ) || |
@@ -5095,12 +5747,12 @@ discard block |
||
| 5095 | 5747 | if( isset( $recur['BYSETPOS'] ) && |
| 5096 | 5748 | ( in_array( $recur['FREQ'], array( 'YEARLY', 'MONTHLY', 'WEEKLY', 'DAILY' )))) { |
| 5097 | 5749 | if( isset( $recur['WEEKLY'] )) { |
| 5098 | - if( $bysetposWold == $daycnts[$wdate['month']][$wdate['day']]['weekno_up'] ) |
|
| 5099 | - $bysetposw1[] = $wdatets; |
|
| 5100 | - else |
|
| 5101 | - $bysetposw2[] = $wdatets; |
|
| 5102 | - } |
|
| 5103 | - else { |
|
| 5750 | + if( $bysetposWold == $daycnts[$wdate['month']][$wdate['day']]['weekno_up'] ) { |
|
| 5751 | + $bysetposw1[] = $wdatets; |
|
| 5752 | + } else { |
|
| 5753 | + $bysetposw2[] = $wdatets; |
|
| 5754 | + } |
|
| 5755 | + } else { |
|
| 5104 | 5756 | if(( isset( $recur['FREQ'] ) && ( 'YEARLY' == $recur['FREQ'] ) && |
| 5105 | 5757 | ( $bysetposYold == $wdate['year'] )) || |
| 5106 | 5758 | ( isset( $recur['FREQ'] ) && ( 'MONTHLY' == $recur['FREQ'] ) && |
@@ -5109,13 +5761,13 @@ discard block |
||
| 5109 | 5761 | ( isset( $recur['FREQ'] ) && ( 'MONTHLY' == $recur['FREQ'] ) && |
| 5110 | 5762 | (( $bysetposYold == $wdate['year'] ) && |
| 5111 | 5763 | ( $bysetposMold == $wdate['month']) && |
| 5112 | - ( $bysetposDold == $wdate['sday'] )))) |
|
| 5113 | - $bysetposymd1[] = $wdatets; |
|
| 5114 | - else |
|
| 5115 | - $bysetposymd2[] = $wdatets; |
|
| 5764 | + ( $bysetposDold == $wdate['sday'] )))) { |
|
| 5765 | + $bysetposymd1[] = $wdatets; |
|
| 5766 | + } else { |
|
| 5767 | + $bysetposymd2[] = $wdatets; |
|
| 5768 | + } |
|
| 5116 | 5769 | } |
| 5117 | - } |
|
| 5118 | - else { |
|
| 5770 | + } else { |
|
| 5119 | 5771 | /* update result array if BYSETPOS is set */ |
| 5120 | 5772 | $countcnt++; |
| 5121 | 5773 | if( $startdatets <= $wdatets ) { // only output within period |
@@ -5135,21 +5787,18 @@ discard block |
||
| 5135 | 5787 | ( $bysetposYold != $wdate['year'] )) { |
| 5136 | 5788 | $bysetpos = TRUE; |
| 5137 | 5789 | $bysetposYold = $wdate['year']; |
| 5138 | - } |
|
| 5139 | - elseif( isset( $recur['FREQ'] ) && ( 'MONTHLY' == $recur['FREQ'] && |
|
| 5790 | + } elseif( isset( $recur['FREQ'] ) && ( 'MONTHLY' == $recur['FREQ'] && |
|
| 5140 | 5791 | (( $bysetposYold != $wdate['year'] ) || ( $bysetposMold != $wdate['month'] )))) { |
| 5141 | 5792 | $bysetpos = TRUE; |
| 5142 | 5793 | $bysetposYold = $wdate['year']; |
| 5143 | 5794 | $bysetposMold = $wdate['month']; |
| 5144 | - } |
|
| 5145 | - elseif( isset( $recur['FREQ'] ) && ( 'WEEKLY' == $recur['FREQ'] )) { |
|
| 5795 | + } elseif( isset( $recur['FREQ'] ) && ( 'WEEKLY' == $recur['FREQ'] )) { |
|
| 5146 | 5796 | $weekno = (int) date( 'W', mktime( 0, 0, $wkst, $wdate['month'], $wdate['day'], $wdate['year'])); |
| 5147 | 5797 | if( $bysetposWold != $weekno ) { |
| 5148 | 5798 | $bysetposWold = $weekno; |
| 5149 | 5799 | $bysetpos = TRUE; |
| 5150 | 5800 | } |
| 5151 | - } |
|
| 5152 | - elseif( isset( $recur['FREQ'] ) && ( 'DAILY' == $recur['FREQ'] ) && |
|
| 5801 | + } elseif( isset( $recur['FREQ'] ) && ( 'DAILY' == $recur['FREQ'] ) && |
|
| 5153 | 5802 | (( $bysetposYold != $wdate['year'] ) || |
| 5154 | 5803 | ( $bysetposMold != $wdate['month'] ) || |
| 5155 | 5804 | ( $bysetposDold != $wdate['sday'] ))) { |
@@ -5162,14 +5811,15 @@ discard block |
||
| 5162 | 5811 | if( isset( $recur['BYWEEKNO'] )) { |
| 5163 | 5812 | $bysetposarr1 = & $bysetposw1; |
| 5164 | 5813 | $bysetposarr2 = & $bysetposw2; |
| 5165 | - } |
|
| 5166 | - else { |
|
| 5814 | + } else { |
|
| 5167 | 5815 | $bysetposarr1 = & $bysetposymd1; |
| 5168 | 5816 | $bysetposarr2 = & $bysetposymd2; |
| 5169 | 5817 | } |
| 5170 | 5818 | foreach( $recur['BYSETPOS'] as $ix ) { |
| 5171 | - if( 0 > $ix ) // both positive and negative BYSETPOS allowed |
|
| 5819 | + if( 0 > $ix ) { |
|
| 5820 | + // both positive and negative BYSETPOS allowed |
|
| 5172 | 5821 | $ix = ( count( $bysetposarr1 ) + $ix + 1); |
| 5822 | + } |
|
| 5173 | 5823 | $ix--; |
| 5174 | 5824 | if( isset( $bysetposarr1[$ix] )) { |
| 5175 | 5825 | if( $startdatets <= $bysetposarr1[$ix] ) { // only output within period |
@@ -5178,8 +5828,9 @@ discard block |
||
| 5178 | 5828 | } |
| 5179 | 5829 | $countcnt++; |
| 5180 | 5830 | } |
| 5181 | - if( isset( $recur['COUNT'] ) && ( $countcnt >= $recur['COUNT'] )) |
|
| 5182 | - break; |
|
| 5831 | + if( isset( $recur['COUNT'] ) && ( $countcnt >= $recur['COUNT'] )) { |
|
| 5832 | + break; |
|
| 5833 | + } |
|
| 5183 | 5834 | } |
| 5184 | 5835 | $bysetposarr1 = $bysetposarr2; |
| 5185 | 5836 | $bysetposarr2 = array(); |
@@ -5189,12 +5840,13 @@ discard block |
||
| 5189 | 5840 | } |
| 5190 | 5841 | function _recurBYcntcheck( $BYvalue, $upValue, $downValue ) { |
| 5191 | 5842 | if( is_array( $BYvalue ) && |
| 5192 | - ( in_array( $upValue, $BYvalue ) || in_array( $downValue, $BYvalue ))) |
|
| 5193 | - return TRUE; |
|
| 5194 | - elseif(( $BYvalue == $upValue ) || ( $BYvalue == $downValue )) |
|
| 5195 | - return TRUE; |
|
| 5196 | - else |
|
| 5197 | - return FALSE; |
|
| 5843 | + ( in_array( $upValue, $BYvalue ) || in_array( $downValue, $BYvalue ))) { |
|
| 5844 | + return TRUE; |
|
| 5845 | + } elseif(( $BYvalue == $upValue ) || ( $BYvalue == $downValue )) { |
|
| 5846 | + return TRUE; |
|
| 5847 | + } else { |
|
| 5848 | + return FALSE; |
|
| 5849 | + } |
|
| 5198 | 5850 | } |
| 5199 | 5851 | function _recurIntervalIx( $freq, $date, $wkst ) { |
| 5200 | 5852 | /* create interval index */ |
@@ -5226,21 +5878,27 @@ discard block |
||
| 5226 | 5878 | */ |
| 5227 | 5879 | function _setRexrule( $rexrule ) { |
| 5228 | 5880 | $input = array(); |
| 5229 | - if( empty( $rexrule )) |
|
| 5230 | - return $input; |
|
| 5881 | + if( empty( $rexrule )) { |
|
| 5882 | + return $input; |
|
| 5883 | + } |
|
| 5231 | 5884 | foreach( $rexrule as $rexrulelabel => $rexrulevalue ) { |
| 5232 | 5885 | $rexrulelabel = strtoupper( $rexrulelabel ); |
| 5233 | - if( 'UNTIL' != $rexrulelabel ) |
|
| 5234 | - $input[$rexrulelabel] = $rexrulevalue; |
|
| 5235 | - else { |
|
| 5236 | - if( $this->_isArrayTimestampDate( $rexrulevalue )) // timestamp date |
|
| 5886 | + if( 'UNTIL' != $rexrulelabel ) { |
|
| 5887 | + $input[$rexrulelabel] = $rexrulevalue; |
|
| 5888 | + } else { |
|
| 5889 | + if( $this->_isArrayTimestampDate( $rexrulevalue )) { |
|
| 5890 | + // timestamp date |
|
| 5237 | 5891 | $input[$rexrulelabel] = $this->_timestamp2date( $rexrulevalue, 6 ); |
| 5238 | - elseif( $this->_isArrayDate( $rexrulevalue )) // date-time |
|
| 5892 | + } elseif( $this->_isArrayDate( $rexrulevalue )) { |
|
| 5893 | + // date-time |
|
| 5239 | 5894 | $input[$rexrulelabel] = $this->_date_time_array( $rexrulevalue, 6 ); |
| 5240 | - elseif( 8 <= strlen( trim( $rexrulevalue ))) // ex. 2006-08-03 10:12:18 |
|
| 5895 | + } elseif( 8 <= strlen( trim( $rexrulevalue ))) { |
|
| 5896 | + // ex. 2006-08-03 10:12:18 |
|
| 5241 | 5897 | $input[$rexrulelabel] = $this->_date_time_string( $rexrulevalue ); |
| 5242 | - if(( 3 < count( $input[$rexrulelabel] )) && !isset( $input[$rexrulelabel]['tz'] )) |
|
| 5243 | - $input[$rexrulelabel]['tz'] = 'Z'; |
|
| 5898 | + } |
|
| 5899 | + if(( 3 < count( $input[$rexrulelabel] )) && !isset( $input[$rexrulelabel]['tz'] )) { |
|
| 5900 | + $input[$rexrulelabel]['tz'] = 'Z'; |
|
| 5901 | + } |
|
| 5244 | 5902 | } |
| 5245 | 5903 | } |
| 5246 | 5904 | return $input; |
@@ -5264,7 +5922,9 @@ discard block |
||
| 5264 | 5922 | $input = $parno = null; |
| 5265 | 5923 | $localtime = (( 'dtstart' == $caller ) && in_array( $this->objName, array( 'vtimezone', 'standard', 'daylight' ))) ? TRUE : FALSE; |
| 5266 | 5924 | if( $this->_isArrayDate( $year )) { |
| 5267 | - if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5925 | + if( $localtime ) { |
|
| 5926 | + unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5927 | + } |
|
| 5268 | 5928 | $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
| 5269 | 5929 | if( isset( $input['params']['TZID'] )) { |
| 5270 | 5930 | $input['params']['VALUE'] = 'DATE-TIME'; |
@@ -5274,9 +5934,10 @@ discard block |
||
| 5274 | 5934 | $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval ); |
| 5275 | 5935 | $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3, count( $year ), $parno ); |
| 5276 | 5936 | $input['value'] = $this->_date_time_array( $year, $parno ); |
| 5277 | - } |
|
| 5278 | - elseif( $this->_isArrayTimestampDate( $year )) { |
|
| 5279 | - if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5937 | + } elseif( $this->_isArrayTimestampDate( $year )) { |
|
| 5938 | + if( $localtime ) { |
|
| 5939 | + unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5940 | + } |
|
| 5280 | 5941 | $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
| 5281 | 5942 | if( isset( $input['params']['TZID'] )) { |
| 5282 | 5943 | $input['params']['VALUE'] = 'DATE-TIME'; |
@@ -5286,9 +5947,10 @@ discard block |
||
| 5286 | 5947 | $hitval = ( isset( $year['tz'] )) ? 7 : 6; |
| 5287 | 5948 | $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', $hitval, $parno ); |
| 5288 | 5949 | $input['value'] = $this->_timestamp2date( $year, $parno ); |
| 5289 | - } |
|
| 5290 | - elseif( 8 <= strlen( trim( $year ))) { // ex. 2006-08-03 10:12:18 |
|
| 5291 | - if( $localtime ) unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5950 | + } elseif( 8 <= strlen( trim( $year ))) { // ex. 2006-08-03 10:12:18 |
|
| 5951 | + if( $localtime ) { |
|
| 5952 | + unset ( $month['VALUE'], $month['TZID'] ); |
|
| 5953 | + } |
|
| 5292 | 5954 | $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' )); |
| 5293 | 5955 | if( isset( $input['params']['TZID'] )) { |
| 5294 | 5956 | $input['params']['VALUE'] = 'DATE-TIME'; |
@@ -5297,17 +5959,16 @@ discard block |
||
| 5297 | 5959 | $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', 7, $parno ); |
| 5298 | 5960 | $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE', 3, $parno, $parno ); |
| 5299 | 5961 | $input['value'] = $this->_date_time_string( $year, $parno ); |
| 5300 | - } |
|
| 5301 | - else { |
|
| 5962 | + } else { |
|
| 5302 | 5963 | if( is_array( $params )) { |
| 5303 | - if( $localtime ) unset ( $params['VALUE'], $params['TZID'] ); |
|
| 5964 | + if( $localtime ) { |
|
| 5965 | + unset ( $params['VALUE'], $params['TZID'] ); |
|
| 5966 | + } |
|
| 5304 | 5967 | $input['params'] = $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' )); |
| 5305 | - } |
|
| 5306 | - elseif( is_array( $tz )) { |
|
| 5968 | + } elseif( is_array( $tz )) { |
|
| 5307 | 5969 | $input['params'] = $this->_setParams( $tz, array( 'VALUE' => 'DATE-TIME' )); |
| 5308 | 5970 | $tz = FALSE; |
| 5309 | - } |
|
| 5310 | - elseif( is_array( $hour )) { |
|
| 5971 | + } elseif( is_array( $hour )) { |
|
| 5311 | 5972 | $input['params'] = $this->_setParams( $hour, array( 'VALUE' => 'DATE-TIME' )); |
| 5312 | 5973 | $hour = $min = $sec = $tz = FALSE; |
| 5313 | 5974 | } |
@@ -5323,23 +5984,28 @@ discard block |
||
| 5323 | 5984 | $input['value']['hour'] = ( $hour ) ? $hour : '0'; |
| 5324 | 5985 | $input['value']['min'] = ( $min ) ? $min : '0'; |
| 5325 | 5986 | $input['value']['sec'] = ( $sec ) ? $sec : '0'; |
| 5326 | - if( !empty( $tz )) |
|
| 5327 | - $input['value']['tz'] = $tz; |
|
| 5987 | + if( !empty( $tz )) { |
|
| 5988 | + $input['value']['tz'] = $tz; |
|
| 5989 | + } |
|
| 5328 | 5990 | } |
| 5329 | 5991 | } |
| 5330 | 5992 | if( 3 == $parno ) { |
| 5331 | 5993 | $input['params']['VALUE'] = 'DATE'; |
| 5332 | 5994 | unset( $input['value']['tz'] ); |
| 5333 | 5995 | unset( $input['params']['TZID'] ); |
| 5996 | + } elseif( isset( $input['params']['TZID'] )) { |
|
| 5997 | + unset( $input['value']['tz'] ); |
|
| 5998 | + } |
|
| 5999 | + if( $localtime ) { |
|
| 6000 | + unset( $input['value']['tz'], $input['params']['TZID'] ); |
|
| 6001 | + } |
|
| 6002 | + if( isset( $input['value']['tz'] )) { |
|
| 6003 | + $input['value']['tz'] = (string) $input['value']['tz']; |
|
| 5334 | 6004 | } |
| 5335 | - elseif( isset( $input['params']['TZID'] )) |
|
| 5336 | - unset( $input['value']['tz'] ); |
|
| 5337 | - if( $localtime ) unset( $input['value']['tz'], $input['params']['TZID'] ); |
|
| 5338 | - if( isset( $input['value']['tz'] )) |
|
| 5339 | - $input['value']['tz'] = (string) $input['value']['tz']; |
|
| 5340 | 6005 | if( !empty( $input['value']['tz'] ) && ( 'Z' != $input['value']['tz'] ) && |
| 5341 | - ( !$this->_isOffset( $input['value']['tz'] ))) |
|
| 5342 | - $input['params']['TZID'] = $input['value']['tz']; |
|
| 6006 | + ( !$this->_isOffset( $input['value']['tz'] ))) { |
|
| 6007 | + $input['params']['TZID'] = $input['value']['tz']; |
|
| 6008 | + } |
|
| 5343 | 6009 | return $input; |
| 5344 | 6010 | } |
| 5345 | 6011 | /** |
@@ -5361,16 +6027,13 @@ discard block |
||
| 5361 | 6027 | if( $this->_isArrayDate( $year )) { |
| 5362 | 6028 | $input['value'] = $this->_date_time_array( $year, 7 ); |
| 5363 | 6029 | $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
| 5364 | - } |
|
| 5365 | - elseif( $this->_isArrayTimestampDate( $year )) { |
|
| 6030 | + } elseif( $this->_isArrayTimestampDate( $year )) { |
|
| 5366 | 6031 | $input['value'] = $this->_timestamp2date( $year, 7 ); |
| 5367 | 6032 | $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
| 5368 | - } |
|
| 5369 | - elseif( 8 <= strlen( trim( $year ))) { // ex. 2006-08-03 10:12:18 |
|
| 6033 | + } elseif( 8 <= strlen( trim( $year ))) { // ex. 2006-08-03 10:12:18 |
|
| 5370 | 6034 | $input['value'] = $this->_date_time_string( $year, 7 ); |
| 5371 | 6035 | $input['params'] = $this->_setParams( $month, array( 'VALUE' => 'DATE-TIME' ) ); |
| 5372 | - } |
|
| 5373 | - else { |
|
| 6036 | + } else { |
|
| 5374 | 6037 | $input['value'] = array( 'year' => $year |
| 5375 | 6038 | , 'month' => $month |
| 5376 | 6039 | , 'day' => $day |
@@ -5380,14 +6043,18 @@ discard block |
||
| 5380 | 6043 | $input['params'] = $this->_setParams( $params, array( 'VALUE' => 'DATE-TIME' )); |
| 5381 | 6044 | } |
| 5382 | 6045 | $parno = $this->_existRem( $input['params'], 'VALUE', 'DATE-TIME', 7 ); // remove default |
| 5383 | - if( !isset( $input['value']['hour'] )) |
|
| 5384 | - $input['value']['hour'] = 0; |
|
| 5385 | - if( !isset( $input['value']['min'] )) |
|
| 5386 | - $input['value']['min'] = 0; |
|
| 5387 | - if( !isset( $input['value']['sec'] )) |
|
| 5388 | - $input['value']['sec'] = 0; |
|
| 5389 | - if( !isset( $input['value']['tz'] ) || !$this->_isOffset( $input['value']['tz'] )) |
|
| 5390 | - $input['value']['tz'] = 'Z'; |
|
| 6046 | + if( !isset( $input['value']['hour'] )) { |
|
| 6047 | + $input['value']['hour'] = 0; |
|
| 6048 | + } |
|
| 6049 | + if( !isset( $input['value']['min'] )) { |
|
| 6050 | + $input['value']['min'] = 0; |
|
| 6051 | + } |
|
| 6052 | + if( !isset( $input['value']['sec'] )) { |
|
| 6053 | + $input['value']['sec'] = 0; |
|
| 6054 | + } |
|
| 6055 | + if( !isset( $input['value']['tz'] ) || !$this->_isOffset( $input['value']['tz'] )) { |
|
| 6056 | + $input['value']['tz'] = 'Z'; |
|
| 6057 | + } |
|
| 5391 | 6058 | return $input; |
| 5392 | 6059 | } |
| 5393 | 6060 | /** |
@@ -5403,15 +6070,17 @@ discard block |
||
| 5403 | 6070 | * @return void |
| 5404 | 6071 | */ |
| 5405 | 6072 | function _setMval( & $valArr, $value, $params=FALSE, $defaults=FALSE, $index=FALSE ) { |
| 5406 | - if( !is_array( $valArr )) $valArr = array(); |
|
| 5407 | - if( $index ) |
|
| 5408 | - $index = $index - 1; |
|
| 5409 | - elseif( 0 < count( $valArr )) { |
|
| 6073 | + if( !is_array( $valArr )) { |
|
| 6074 | + $valArr = array(); |
|
| 6075 | + } |
|
| 6076 | + if( $index ) { |
|
| 6077 | + $index = $index - 1; |
|
| 6078 | + } elseif( 0 < count( $valArr )) { |
|
| 5410 | 6079 | $index = end( array_keys( $valArr )); |
| 5411 | 6080 | $index += 1; |
| 6081 | + } else { |
|
| 6082 | + $index = 0; |
|
| 5412 | 6083 | } |
| 5413 | - else |
|
| 5414 | - $index = 0; |
|
| 5415 | 6084 | $valArr[$index] = array( 'value' => $value, 'params' => $this->_setParams( $params, $defaults )); |
| 5416 | 6085 | ksort( $valArr ); |
| 5417 | 6086 | } |
@@ -5427,27 +6096,31 @@ discard block |
||
| 5427 | 6096 | * @return array |
| 5428 | 6097 | */ |
| 5429 | 6098 | function _setParams( $params, $defaults=FALSE ) { |
| 5430 | - if( !is_array( $params)) |
|
| 5431 | - $params = array(); |
|
| 6099 | + if( !is_array( $params)) { |
|
| 6100 | + $params = array(); |
|
| 6101 | + } |
|
| 5432 | 6102 | $input = array(); |
| 5433 | 6103 | foreach( $params as $paramKey => $paramValue ) { |
| 5434 | 6104 | if( is_array( $paramValue )) { |
| 5435 | 6105 | foreach( $paramValue as $pkey => $pValue ) { |
| 5436 | - if(( '"' == substr( $pValue, 0, 1 )) && ( '"' == substr( $pValue, -1 ))) |
|
| 5437 | - $paramValue[$pkey] = substr( $pValue, 1, ( strlen( $pValue ) - 2 )); |
|
| 6106 | + if(( '"' == substr( $pValue, 0, 1 )) && ( '"' == substr( $pValue, -1 ))) { |
|
| 6107 | + $paramValue[$pkey] = substr( $pValue, 1, ( strlen( $pValue ) - 2 )); |
|
| 6108 | + } |
|
| 5438 | 6109 | } |
| 6110 | + } elseif(( '"' == substr( $paramValue, 0, 1 )) && ( '"' == substr( $paramValue, -1 ))) { |
|
| 6111 | + $paramValue = substr( $paramValue, 1, ( strlen( $paramValue ) - 2 )); |
|
| 6112 | + } |
|
| 6113 | + if( 'VALUE' == strtoupper( $paramKey )) { |
|
| 6114 | + $input['VALUE'] = strtoupper( $paramValue ); |
|
| 6115 | + } else { |
|
| 6116 | + $input[strtoupper( $paramKey )] = $paramValue; |
|
| 5439 | 6117 | } |
| 5440 | - elseif(( '"' == substr( $paramValue, 0, 1 )) && ( '"' == substr( $paramValue, -1 ))) |
|
| 5441 | - $paramValue = substr( $paramValue, 1, ( strlen( $paramValue ) - 2 )); |
|
| 5442 | - if( 'VALUE' == strtoupper( $paramKey )) |
|
| 5443 | - $input['VALUE'] = strtoupper( $paramValue ); |
|
| 5444 | - else |
|
| 5445 | - $input[strtoupper( $paramKey )] = $paramValue; |
|
| 5446 | 6118 | } |
| 5447 | 6119 | if( is_array( $defaults )) { |
| 5448 | 6120 | foreach( $defaults as $paramKey => $paramValue ) { |
| 5449 | - if( !isset( $input[$paramKey] )) |
|
| 5450 | - $input[$paramKey] = $paramValue; |
|
| 6121 | + if( !isset( $input[$paramKey] )) { |
|
| 6122 | + $input[$paramKey] = $paramValue; |
|
| 6123 | + } |
|
| 5451 | 6124 | } |
| 5452 | 6125 | } |
| 5453 | 6126 | return (0 < count( $input )) ? $input : null; |
@@ -5463,13 +6136,15 @@ discard block |
||
| 5463 | 6136 | * @return void |
| 5464 | 6137 | */ |
| 5465 | 6138 | function _stepdate( &$date, &$timestamp, $step=array( 'day' => 1 )) { |
| 5466 | - foreach( $step as $stepix => $stepvalue ) |
|
| 5467 | - $date[$stepix] += $stepvalue; |
|
| 6139 | + foreach( $step as $stepix => $stepvalue ) { |
|
| 6140 | + $date[$stepix] += $stepvalue; |
|
| 6141 | + } |
|
| 5468 | 6142 | $timestamp = $this->_date2timestamp( $date ); |
| 5469 | 6143 | $date = $this->_timestamp2date( $timestamp, 6 ); |
| 5470 | 6144 | foreach( $date as $k => $v ) { |
| 5471 | - if( ctype_digit( $v )) |
|
| 5472 | - $date[$k] = (int) $v; |
|
| 6145 | + if( ctype_digit( $v )) { |
|
| 6146 | + $date[$k] = (int) $v; |
|
| 6147 | + } |
|
| 5473 | 6148 | } |
| 5474 | 6149 | } |
| 5475 | 6150 | /** |
@@ -5483,8 +6158,9 @@ discard block |
||
| 5483 | 6158 | */ |
| 5484 | 6159 | function _timestamp2date( $timestamp, $parno=6 ) { |
| 5485 | 6160 | if( is_array( $timestamp )) { |
| 5486 | - if(( 7 == $parno ) && !empty( $timestamp['tz'] )) |
|
| 5487 | - $tz = $timestamp['tz']; |
|
| 6161 | + if(( 7 == $parno ) && !empty( $timestamp['tz'] )) { |
|
| 6162 | + $tz = $timestamp['tz']; |
|
| 6163 | + } |
|
| 5488 | 6164 | $timestamp = $timestamp['timestamp']; |
| 5489 | 6165 | } |
| 5490 | 6166 | $output = array( 'year' => date( 'Y', $timestamp ) |
@@ -5494,8 +6170,9 @@ discard block |
||
| 5494 | 6170 | $output['hour'] = date( 'H', $timestamp ); |
| 5495 | 6171 | $output['min'] = date( 'i', $timestamp ); |
| 5496 | 6172 | $output['sec'] = date( 's', $timestamp ); |
| 5497 | - if( isset( $tz )) |
|
| 5498 | - $output['tz'] = $tz; |
|
| 6173 | + if( isset( $tz )) { |
|
| 6174 | + $output['tz'] = $tz; |
|
| 6175 | + } |
|
| 5499 | 6176 | } |
| 5500 | 6177 | return $output; |
| 5501 | 6178 | } |
@@ -5513,8 +6190,9 @@ discard block |
||
| 5513 | 6190 | if((( 5 != strlen( $tz )) && ( 7 != strlen( $tz ))) || |
| 5514 | 6191 | (( '+' != substr( $tz, 0, 1 )) && ( '-' != substr( $tz, 0, 1 ))) || |
| 5515 | 6192 | (( '0000' >= substr( $tz, 1, 4 )) && ( '9999' < substr( $tz, 1, 4 ))) || |
| 5516 | - (( 7 == strlen( $tz )) && ( '00' > substr( $tz, 5, 2 )) && ( '99' < substr( $tz, 5, 2 )))) |
|
| 5517 | - return $offset; |
|
| 6193 | + (( 7 == strlen( $tz )) && ( '00' > substr( $tz, 5, 2 )) && ( '99' < substr( $tz, 5, 2 )))) { |
|
| 6194 | + return $offset; |
|
| 6195 | + } |
|
| 5518 | 6196 | $hours2sec = (int) substr( $tz, 1, 2 ) * 3600; |
| 5519 | 6197 | $min2sec = (int) substr( $tz, 3, 2 ) * 60; |
| 5520 | 6198 | $sec = ( 7 == strlen( $tz )) ? (int) substr( $tz, -2 ) : '00'; |
@@ -5542,7 +6220,9 @@ discard block |
||
| 5542 | 6220 | $info = array(); |
| 5543 | 6221 | if( isset( $this->components )) { |
| 5544 | 6222 | foreach( $this->components as $cix => $component ) { |
| 5545 | - if( empty( $component )) continue; |
|
| 6223 | + if( empty( $component )) { |
|
| 6224 | + continue; |
|
| 6225 | + } |
|
| 5546 | 6226 | unset( $component->propix ); |
| 5547 | 6227 | $info[$cix]['ordno'] = $cix + 1; |
| 5548 | 6228 | $info[$cix]['type'] = $component->objName; |
@@ -5568,57 +6248,146 @@ discard block |
||
| 5568 | 6248 | case 'PROPINFO': |
| 5569 | 6249 | $output = array(); |
| 5570 | 6250 | if( !in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) { |
| 5571 | - if( empty( $this->uid['value'] )) $this->_makeuid(); |
|
| 6251 | + if( empty( $this->uid['value'] )) { |
|
| 6252 | + $this->_makeuid(); |
|
| 6253 | + } |
|
| 5572 | 6254 | $output['UID'] = 1; |
| 5573 | 6255 | } |
| 5574 | - if( !empty( $this->dtstamp )) $output['DTSTAMP'] = 1; |
|
| 5575 | - if( !empty( $this->summary )) $output['SUMMARY'] = 1; |
|
| 5576 | - if( !empty( $this->description )) $output['DESCRIPTION'] = count( $this->description ); |
|
| 5577 | - if( !empty( $this->dtstart )) $output['DTSTART'] = 1; |
|
| 5578 | - if( !empty( $this->dtend )) $output['DTEND'] = 1; |
|
| 5579 | - if( !empty( $this->due )) $output['DUE'] = 1; |
|
| 5580 | - if( !empty( $this->duration )) $output['DURATION'] = 1; |
|
| 5581 | - if( !empty( $this->rrule )) $output['RRULE'] = count( $this->rrule ); |
|
| 5582 | - if( !empty( $this->rdate )) $output['RDATE'] = count( $this->rdate ); |
|
| 5583 | - if( !empty( $this->exdate )) $output['EXDATE'] = count( $this->exdate ); |
|
| 5584 | - if( !empty( $this->exrule )) $output['EXRULE'] = count( $this->exrule ); |
|
| 5585 | - if( !empty( $this->action )) $output['ACTION'] = 1; |
|
| 5586 | - if( !empty( $this->attach )) $output['ATTACH'] = count( $this->attach ); |
|
| 5587 | - if( !empty( $this->attendee )) $output['ATTENDEE'] = count( $this->attendee ); |
|
| 5588 | - if( !empty( $this->categories )) $output['CATEGORIES'] = count( $this->categories ); |
|
| 5589 | - if( !empty( $this->class )) $output['CLASS'] = 1; |
|
| 5590 | - if( !empty( $this->comment )) $output['COMMENT'] = count( $this->comment ); |
|
| 5591 | - if( !empty( $this->completed )) $output['COMPLETED'] = 1; |
|
| 5592 | - if( !empty( $this->contact )) $output['CONTACT'] = count( $this->contact ); |
|
| 5593 | - if( !empty( $this->created )) $output['CREATED'] = 1; |
|
| 5594 | - if( !empty( $this->freebusy )) $output['FREEBUSY'] = count( $this->freebusy ); |
|
| 5595 | - if( !empty( $this->geo )) $output['GEO'] = 1; |
|
| 5596 | - if( !empty( $this->lastmodified )) $output['LAST-MODIFIED'] = 1; |
|
| 5597 | - if( !empty( $this->location )) $output['LOCATION'] = 1; |
|
| 5598 | - if( !empty( $this->organizer )) $output['ORGANIZER'] = 1; |
|
| 5599 | - if( !empty( $this->percentcomplete )) $output['PERCENT-COMPLETE'] = 1; |
|
| 5600 | - if( !empty( $this->priority )) $output['PRIORITY'] = 1; |
|
| 5601 | - if( !empty( $this->recurrenceid )) $output['RECURRENCE-ID'] = 1; |
|
| 5602 | - if( !empty( $this->relatedto )) $output['RELATED-TO'] = count( $this->relatedto ); |
|
| 5603 | - if( !empty( $this->repeat )) $output['REPEAT'] = 1; |
|
| 5604 | - if( !empty( $this->requeststatus )) $output['REQUEST-STATUS'] = count( $this->requeststatus ); |
|
| 5605 | - if( !empty( $this->resources )) $output['RESOURCES'] = count( $this->resources ); |
|
| 5606 | - if( !empty( $this->sequence )) $output['SEQUENCE'] = 1; |
|
| 5607 | - if( !empty( $this->status )) $output['STATUS'] = 1; |
|
| 5608 | - if( !empty( $this->transp )) $output['TRANSP'] = 1; |
|
| 5609 | - if( !empty( $this->trigger )) $output['TRIGGER'] = 1; |
|
| 5610 | - if( !empty( $this->tzid )) $output['TZID'] = 1; |
|
| 5611 | - if( !empty( $this->tzname )) $output['TZNAME'] = count( $this->tzname ); |
|
| 5612 | - if( !empty( $this->tzoffsetfrom )) $output['TZOFFSETTFROM'] = 1; |
|
| 5613 | - if( !empty( $this->tzoffsetto )) $output['TZOFFSETTO'] = 1; |
|
| 5614 | - if( !empty( $this->tzurl )) $output['TZURL'] = 1; |
|
| 5615 | - if( !empty( $this->url )) $output['URL'] = 1; |
|
| 5616 | - if( !empty( $this->xprop )) $output['X-PROP'] = count( $this->xprop ); |
|
| 6256 | + if( !empty( $this->dtstamp )) { |
|
| 6257 | + $output['DTSTAMP'] = 1; |
|
| 6258 | + } |
|
| 6259 | + if( !empty( $this->summary )) { |
|
| 6260 | + $output['SUMMARY'] = 1; |
|
| 6261 | + } |
|
| 6262 | + if( !empty( $this->description )) { |
|
| 6263 | + $output['DESCRIPTION'] = count( $this->description ); |
|
| 6264 | + } |
|
| 6265 | + if( !empty( $this->dtstart )) { |
|
| 6266 | + $output['DTSTART'] = 1; |
|
| 6267 | + } |
|
| 6268 | + if( !empty( $this->dtend )) { |
|
| 6269 | + $output['DTEND'] = 1; |
|
| 6270 | + } |
|
| 6271 | + if( !empty( $this->due )) { |
|
| 6272 | + $output['DUE'] = 1; |
|
| 6273 | + } |
|
| 6274 | + if( !empty( $this->duration )) { |
|
| 6275 | + $output['DURATION'] = 1; |
|
| 6276 | + } |
|
| 6277 | + if( !empty( $this->rrule )) { |
|
| 6278 | + $output['RRULE'] = count( $this->rrule ); |
|
| 6279 | + } |
|
| 6280 | + if( !empty( $this->rdate )) { |
|
| 6281 | + $output['RDATE'] = count( $this->rdate ); |
|
| 6282 | + } |
|
| 6283 | + if( !empty( $this->exdate )) { |
|
| 6284 | + $output['EXDATE'] = count( $this->exdate ); |
|
| 6285 | + } |
|
| 6286 | + if( !empty( $this->exrule )) { |
|
| 6287 | + $output['EXRULE'] = count( $this->exrule ); |
|
| 6288 | + } |
|
| 6289 | + if( !empty( $this->action )) { |
|
| 6290 | + $output['ACTION'] = 1; |
|
| 6291 | + } |
|
| 6292 | + if( !empty( $this->attach )) { |
|
| 6293 | + $output['ATTACH'] = count( $this->attach ); |
|
| 6294 | + } |
|
| 6295 | + if( !empty( $this->attendee )) { |
|
| 6296 | + $output['ATTENDEE'] = count( $this->attendee ); |
|
| 6297 | + } |
|
| 6298 | + if( !empty( $this->categories )) { |
|
| 6299 | + $output['CATEGORIES'] = count( $this->categories ); |
|
| 6300 | + } |
|
| 6301 | + if( !empty( $this->class )) { |
|
| 6302 | + $output['CLASS'] = 1; |
|
| 6303 | + } |
|
| 6304 | + if( !empty( $this->comment )) { |
|
| 6305 | + $output['COMMENT'] = count( $this->comment ); |
|
| 6306 | + } |
|
| 6307 | + if( !empty( $this->completed )) { |
|
| 6308 | + $output['COMPLETED'] = 1; |
|
| 6309 | + } |
|
| 6310 | + if( !empty( $this->contact )) { |
|
| 6311 | + $output['CONTACT'] = count( $this->contact ); |
|
| 6312 | + } |
|
| 6313 | + if( !empty( $this->created )) { |
|
| 6314 | + $output['CREATED'] = 1; |
|
| 6315 | + } |
|
| 6316 | + if( !empty( $this->freebusy )) { |
|
| 6317 | + $output['FREEBUSY'] = count( $this->freebusy ); |
|
| 6318 | + } |
|
| 6319 | + if( !empty( $this->geo )) { |
|
| 6320 | + $output['GEO'] = 1; |
|
| 6321 | + } |
|
| 6322 | + if( !empty( $this->lastmodified )) { |
|
| 6323 | + $output['LAST-MODIFIED'] = 1; |
|
| 6324 | + } |
|
| 6325 | + if( !empty( $this->location )) { |
|
| 6326 | + $output['LOCATION'] = 1; |
|
| 6327 | + } |
|
| 6328 | + if( !empty( $this->organizer )) { |
|
| 6329 | + $output['ORGANIZER'] = 1; |
|
| 6330 | + } |
|
| 6331 | + if( !empty( $this->percentcomplete )) { |
|
| 6332 | + $output['PERCENT-COMPLETE'] = 1; |
|
| 6333 | + } |
|
| 6334 | + if( !empty( $this->priority )) { |
|
| 6335 | + $output['PRIORITY'] = 1; |
|
| 6336 | + } |
|
| 6337 | + if( !empty( $this->recurrenceid )) { |
|
| 6338 | + $output['RECURRENCE-ID'] = 1; |
|
| 6339 | + } |
|
| 6340 | + if( !empty( $this->relatedto )) { |
|
| 6341 | + $output['RELATED-TO'] = count( $this->relatedto ); |
|
| 6342 | + } |
|
| 6343 | + if( !empty( $this->repeat )) { |
|
| 6344 | + $output['REPEAT'] = 1; |
|
| 6345 | + } |
|
| 6346 | + if( !empty( $this->requeststatus )) { |
|
| 6347 | + $output['REQUEST-STATUS'] = count( $this->requeststatus ); |
|
| 6348 | + } |
|
| 6349 | + if( !empty( $this->resources )) { |
|
| 6350 | + $output['RESOURCES'] = count( $this->resources ); |
|
| 6351 | + } |
|
| 6352 | + if( !empty( $this->sequence )) { |
|
| 6353 | + $output['SEQUENCE'] = 1; |
|
| 6354 | + } |
|
| 6355 | + if( !empty( $this->status )) { |
|
| 6356 | + $output['STATUS'] = 1; |
|
| 6357 | + } |
|
| 6358 | + if( !empty( $this->transp )) { |
|
| 6359 | + $output['TRANSP'] = 1; |
|
| 6360 | + } |
|
| 6361 | + if( !empty( $this->trigger )) { |
|
| 6362 | + $output['TRIGGER'] = 1; |
|
| 6363 | + } |
|
| 6364 | + if( !empty( $this->tzid )) { |
|
| 6365 | + $output['TZID'] = 1; |
|
| 6366 | + } |
|
| 6367 | + if( !empty( $this->tzname )) { |
|
| 6368 | + $output['TZNAME'] = count( $this->tzname ); |
|
| 6369 | + } |
|
| 6370 | + if( !empty( $this->tzoffsetfrom )) { |
|
| 6371 | + $output['TZOFFSETTFROM'] = 1; |
|
| 6372 | + } |
|
| 6373 | + if( !empty( $this->tzoffsetto )) { |
|
| 6374 | + $output['TZOFFSETTO'] = 1; |
|
| 6375 | + } |
|
| 6376 | + if( !empty( $this->tzurl )) { |
|
| 6377 | + $output['TZURL'] = 1; |
|
| 6378 | + } |
|
| 6379 | + if( !empty( $this->url )) { |
|
| 6380 | + $output['URL'] = 1; |
|
| 6381 | + } |
|
| 6382 | + if( !empty( $this->xprop )) { |
|
| 6383 | + $output['X-PROP'] = count( $this->xprop ); |
|
| 6384 | + } |
|
| 5617 | 6385 | return $output; |
| 5618 | 6386 | break; |
| 5619 | 6387 | case 'UNIQUE_ID': |
| 5620 | - if( empty( $this->unique_id )) |
|
| 5621 | - $this->unique_id = ( isset( $_SERVER['SERVER_NAME'] )) ? gethostbyname( $_SERVER['SERVER_NAME'] ) : 'localhost'; |
|
| 6388 | + if( empty( $this->unique_id )) { |
|
| 6389 | + $this->unique_id = ( isset( $_SERVER['SERVER_NAME'] )) ? gethostbyname( $_SERVER['SERVER_NAME'] ) : 'localhost'; |
|
| 6390 | + } |
|
| 5622 | 6391 | return $this->unique_id; |
| 5623 | 6392 | break; |
| 5624 | 6393 | } |
@@ -5667,13 +6436,16 @@ discard block |
||
| 5667 | 6436 | $res = TRUE; |
| 5668 | 6437 | break; |
| 5669 | 6438 | } |
| 5670 | - if( !$res ) return FALSE; |
|
| 6439 | + if( !$res ) { |
|
| 6440 | + return FALSE; |
|
| 6441 | + } |
|
| 5671 | 6442 | if( isset( $subcfg ) && !empty( $this->components )) { |
| 5672 | 6443 | foreach( $subcfg as $cfgkey => $cfgvalue ) { |
| 5673 | 6444 | foreach( $this->components as $cix => $component ) { |
| 5674 | 6445 | $res = $component->setConfig( $cfgkey, $cfgvalue ); |
| 5675 | - if( !$res ) |
|
| 5676 | - break 2; |
|
| 6446 | + if( !$res ) { |
|
| 6447 | + break 2; |
|
| 6448 | + } |
|
| 5677 | 6449 | $this->components[$cix] = $component; // PHP4 compliant |
| 5678 | 6450 | } |
| 5679 | 6451 | } |
@@ -5691,12 +6463,15 @@ discard block |
||
| 5691 | 6463 | * @return bool, if successfull delete TRUE |
| 5692 | 6464 | */ |
| 5693 | 6465 | function deleteProperty( $propName, $propix=FALSE ) { |
| 5694 | - if( $this->_notExistProp( $propName )) return FALSE; |
|
| 6466 | + if( $this->_notExistProp( $propName )) { |
|
| 6467 | + return FALSE; |
|
| 6468 | + } |
|
| 5695 | 6469 | $propName = strtoupper( $propName ); |
| 5696 | 6470 | if( in_array( $propName, array( 'ATTACH', 'ATTENDEE', 'CATEGORIES', 'COMMENT', 'CONTACT', 'DESCRIPTION', 'EXDATE', 'EXRULE', |
| 5697 | 6471 | 'FREEBUSY', 'RDATE', 'RELATED-TO', 'RESOURCES', 'RRULE', 'REQUEST-STATUS', 'TZNAME', 'X-PROP' ))) { |
| 5698 | - if( !$propix ) |
|
| 5699 | - $propix = ( isset( $this->propdelix[$propName] )) ? $this->propdelix[$propName] + 2 : 1; |
|
| 6472 | + if( !$propix ) { |
|
| 6473 | + $propix = ( isset( $this->propdelix[$propName] )) ? $this->propdelix[$propName] + 2 : 1; |
|
| 6474 | + } |
|
| 5700 | 6475 | $this->propdelix[$propName] = --$propix; |
| 5701 | 6476 | } |
| 5702 | 6477 | $return = FALSE; |
@@ -5750,8 +6525,9 @@ discard block |
||
| 5750 | 6525 | } |
| 5751 | 6526 | break; |
| 5752 | 6527 | case 'DTSTAMP': |
| 5753 | - if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
|
| 5754 | - return FALSE; |
|
| 6528 | + if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) { |
|
| 6529 | + return FALSE; |
|
| 6530 | + } |
|
| 5755 | 6531 | if( !empty( $this->dtstamp )) { |
| 5756 | 6532 | $this->dtstamp = ''; |
| 5757 | 6533 | $return = TRUE; |
@@ -5905,8 +6681,9 @@ discard block |
||
| 5905 | 6681 | } |
| 5906 | 6682 | break; |
| 5907 | 6683 | case 'UID': |
| 5908 | - if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
|
| 5909 | - return FALSE; |
|
| 6684 | + if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) { |
|
| 6685 | + return FALSE; |
|
| 6686 | + } |
|
| 5910 | 6687 | if( !empty( $this->uid )) { |
| 5911 | 6688 | $this->uid = ''; |
| 5912 | 6689 | $return = TRUE; |
@@ -5921,18 +6698,23 @@ discard block |
||
| 5921 | 6698 | default: |
| 5922 | 6699 | $reduced = ''; |
| 5923 | 6700 | if( $propName != 'X-PROP' ) { |
| 5924 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 6701 | + if( !isset( $this->xprop[$propName] )) { |
|
| 6702 | + return FALSE; |
|
| 6703 | + } |
|
| 5925 | 6704 | foreach( $this->xprop as $k => $a ) { |
| 5926 | - if(( $k != $propName ) && !empty( $a )) |
|
| 5927 | - $reduced[$k] = $a; |
|
| 6705 | + if(( $k != $propName ) && !empty( $a )) { |
|
| 6706 | + $reduced[$k] = $a; |
|
| 6707 | + } |
|
| 6708 | + } |
|
| 6709 | + } else { |
|
| 6710 | + if( count( $this->xprop ) <= $propix ) { |
|
| 6711 | + return FALSE; |
|
| 5928 | 6712 | } |
| 5929 | - } |
|
| 5930 | - else { |
|
| 5931 | - if( count( $this->xprop ) <= $propix ) return FALSE; |
|
| 5932 | 6713 | $xpropno = 0; |
| 5933 | 6714 | foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
| 5934 | - if( $propix != $xpropno ) |
|
| 5935 | - $reduced[$xpropkey] = $xpropvalue; |
|
| 6715 | + if( $propix != $xpropno ) { |
|
| 6716 | + $reduced[$xpropkey] = $xpropvalue; |
|
| 6717 | + } |
|
| 5936 | 6718 | $xpropno++; |
| 5937 | 6719 | } |
| 5938 | 6720 | } |
@@ -5952,9 +6734,13 @@ discard block |
||
| 5952 | 6734 | * @return bool TRUE |
| 5953 | 6735 | */ |
| 5954 | 6736 | function deletePropertyM( & $multiprop, $propix=0 ) { |
| 5955 | - if( !isset( $multiprop[$propix])) return FALSE; |
|
| 6737 | + if( !isset( $multiprop[$propix])) { |
|
| 6738 | + return FALSE; |
|
| 6739 | + } |
|
| 5956 | 6740 | unset( $multiprop[$propix] ); |
| 5957 | - if( empty( $multiprop )) $multiprop = ''; |
|
| 6741 | + if( empty( $multiprop )) { |
|
| 6742 | + $multiprop = ''; |
|
| 6743 | + } |
|
| 5958 | 6744 | return ( isset( $this->multiprop[$propix] )) ? FALSE : TRUE; |
| 5959 | 6745 | } |
| 5960 | 6746 | /** |
@@ -5971,184 +6757,277 @@ discard block |
||
| 5971 | 6757 | * @return mixed |
| 5972 | 6758 | */ |
| 5973 | 6759 | function getProperty( $propName=FALSE, $propix=FALSE, $inclParam=FALSE, $specform=FALSE ) { |
| 5974 | - if( $this->_notExistProp( $propName )) return FALSE; |
|
| 6760 | + if( $this->_notExistProp( $propName )) { |
|
| 6761 | + return FALSE; |
|
| 6762 | + } |
|
| 5975 | 6763 | $propName = ( $propName ) ? strtoupper( $propName ) : 'X-PROP'; |
| 5976 | 6764 | if( in_array( $propName, array( 'ATTACH', 'ATTENDEE', 'CATEGORIES', 'COMMENT', 'CONTACT', 'DESCRIPTION', 'EXDATE', 'EXRULE', |
| 5977 | 6765 | 'FREEBUSY', 'RDATE', 'RELATED-TO', 'RESOURCES', 'RRULE', 'REQUEST-STATUS', 'TZNAME', 'X-PROP' ))) { |
| 5978 | - if( !$propix ) |
|
| 5979 | - $propix = ( isset( $this->propix[$propName] )) ? $this->propix[$propName] + 2 : 1; |
|
| 6766 | + if( !$propix ) { |
|
| 6767 | + $propix = ( isset( $this->propix[$propName] )) ? $this->propix[$propName] + 2 : 1; |
|
| 6768 | + } |
|
| 5980 | 6769 | $this->propix[$propName] = --$propix; |
| 5981 | 6770 | } |
| 5982 | 6771 | switch( $propName ) { |
| 5983 | 6772 | case 'ACTION': |
| 5984 | - if( !empty( $this->action['value'] )) return ( $inclParam ) ? $this->action : $this->action['value']; |
|
| 6773 | + if( !empty( $this->action['value'] )) { |
|
| 6774 | + return ( $inclParam ) ? $this->action : $this->action['value']; |
|
| 6775 | + } |
|
| 5985 | 6776 | break; |
| 5986 | 6777 | case 'ATTACH': |
| 5987 | - if( !isset( $this->attach[$propix] )) return FALSE; |
|
| 6778 | + if( !isset( $this->attach[$propix] )) { |
|
| 6779 | + return FALSE; |
|
| 6780 | + } |
|
| 5988 | 6781 | return ( $inclParam ) ? $this->attach[$propix] : $this->attach[$propix]['value']; |
| 5989 | 6782 | break; |
| 5990 | 6783 | case 'ATTENDEE': |
| 5991 | - if( !isset( $this->attendee[$propix] )) return FALSE; |
|
| 6784 | + if( !isset( $this->attendee[$propix] )) { |
|
| 6785 | + return FALSE; |
|
| 6786 | + } |
|
| 5992 | 6787 | return ( $inclParam ) ? $this->attendee[$propix] : $this->attendee[$propix]['value']; |
| 5993 | 6788 | break; |
| 5994 | 6789 | case 'CATEGORIES': |
| 5995 | - if( !isset( $this->categories[$propix] )) return FALSE; |
|
| 6790 | + if( !isset( $this->categories[$propix] )) { |
|
| 6791 | + return FALSE; |
|
| 6792 | + } |
|
| 5996 | 6793 | return ( $inclParam ) ? $this->categories[$propix] : $this->categories[$propix]['value']; |
| 5997 | 6794 | break; |
| 5998 | 6795 | case 'CLASS': |
| 5999 | - if( !empty( $this->class['value'] )) return ( $inclParam ) ? $this->class : $this->class['value']; |
|
| 6796 | + if( !empty( $this->class['value'] )) { |
|
| 6797 | + return ( $inclParam ) ? $this->class : $this->class['value']; |
|
| 6798 | + } |
|
| 6000 | 6799 | break; |
| 6001 | 6800 | case 'COMMENT': |
| 6002 | - if( !isset( $this->comment[$propix] )) return FALSE; |
|
| 6801 | + if( !isset( $this->comment[$propix] )) { |
|
| 6802 | + return FALSE; |
|
| 6803 | + } |
|
| 6003 | 6804 | return ( $inclParam ) ? $this->comment[$propix] : $this->comment[$propix]['value']; |
| 6004 | 6805 | break; |
| 6005 | 6806 | case 'COMPLETED': |
| 6006 | - if( !empty( $this->completed['value'] )) return ( $inclParam ) ? $this->completed : $this->completed['value']; |
|
| 6807 | + if( !empty( $this->completed['value'] )) { |
|
| 6808 | + return ( $inclParam ) ? $this->completed : $this->completed['value']; |
|
| 6809 | + } |
|
| 6007 | 6810 | break; |
| 6008 | 6811 | case 'CONTACT': |
| 6009 | - if( !isset( $this->contact[$propix] )) return FALSE; |
|
| 6812 | + if( !isset( $this->contact[$propix] )) { |
|
| 6813 | + return FALSE; |
|
| 6814 | + } |
|
| 6010 | 6815 | return ( $inclParam ) ? $this->contact[$propix] : $this->contact[$propix]['value']; |
| 6011 | 6816 | break; |
| 6012 | 6817 | case 'CREATED': |
| 6013 | - if( !empty( $this->created['value'] )) return ( $inclParam ) ? $this->created : $this->created['value']; |
|
| 6818 | + if( !empty( $this->created['value'] )) { |
|
| 6819 | + return ( $inclParam ) ? $this->created : $this->created['value']; |
|
| 6820 | + } |
|
| 6014 | 6821 | break; |
| 6015 | 6822 | case 'DESCRIPTION': |
| 6016 | - if( !isset( $this->description[$propix] )) return FALSE; |
|
| 6823 | + if( !isset( $this->description[$propix] )) { |
|
| 6824 | + return FALSE; |
|
| 6825 | + } |
|
| 6017 | 6826 | return ( $inclParam ) ? $this->description[$propix] : $this->description[$propix]['value']; |
| 6018 | 6827 | break; |
| 6019 | 6828 | case 'DTEND': |
| 6020 | - if( !empty( $this->dtend['value'] )) return ( $inclParam ) ? $this->dtend : $this->dtend['value']; |
|
| 6829 | + if( !empty( $this->dtend['value'] )) { |
|
| 6830 | + return ( $inclParam ) ? $this->dtend : $this->dtend['value']; |
|
| 6831 | + } |
|
| 6021 | 6832 | break; |
| 6022 | 6833 | case 'DTSTAMP': |
| 6023 | - if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
|
| 6024 | - return; |
|
| 6025 | - if( !isset( $this->dtstamp['value'] )) |
|
| 6026 | - $this->_makeDtstamp(); |
|
| 6834 | + if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) { |
|
| 6835 | + return; |
|
| 6836 | + } |
|
| 6837 | + if( !isset( $this->dtstamp['value'] )) { |
|
| 6838 | + $this->_makeDtstamp(); |
|
| 6839 | + } |
|
| 6027 | 6840 | return ( $inclParam ) ? $this->dtstamp : $this->dtstamp['value']; |
| 6028 | 6841 | break; |
| 6029 | 6842 | case 'DTSTART': |
| 6030 | - if( !empty( $this->dtstart['value'] )) return ( $inclParam ) ? $this->dtstart : $this->dtstart['value']; |
|
| 6843 | + if( !empty( $this->dtstart['value'] )) { |
|
| 6844 | + return ( $inclParam ) ? $this->dtstart : $this->dtstart['value']; |
|
| 6845 | + } |
|
| 6031 | 6846 | break; |
| 6032 | 6847 | case 'DUE': |
| 6033 | - if( !empty( $this->due['value'] )) return ( $inclParam ) ? $this->due : $this->due['value']; |
|
| 6848 | + if( !empty( $this->due['value'] )) { |
|
| 6849 | + return ( $inclParam ) ? $this->due : $this->due['value']; |
|
| 6850 | + } |
|
| 6034 | 6851 | break; |
| 6035 | 6852 | case 'DURATION': |
| 6036 | - if( !isset( $this->duration['value'] )) return FALSE; |
|
| 6853 | + if( !isset( $this->duration['value'] )) { |
|
| 6854 | + return FALSE; |
|
| 6855 | + } |
|
| 6037 | 6856 | $value = ( $specform ) ? $this->duration2date() : $this->duration['value']; |
| 6038 | 6857 | return ( $inclParam ) ? array( 'value' => $value, 'params' => $this->duration['params'] ) : $value; |
| 6039 | 6858 | break; |
| 6040 | 6859 | case 'EXDATE': |
| 6041 | - if( !isset( $this->exdate[$propix] )) return FALSE; |
|
| 6860 | + if( !isset( $this->exdate[$propix] )) { |
|
| 6861 | + return FALSE; |
|
| 6862 | + } |
|
| 6042 | 6863 | return ( $inclParam ) ? $this->exdate[$propix] : $this->exdate[$propix]['value']; |
| 6043 | 6864 | break; |
| 6044 | 6865 | case 'EXRULE': |
| 6045 | - if( !isset( $this->exrule[$propix] )) return FALSE; |
|
| 6866 | + if( !isset( $this->exrule[$propix] )) { |
|
| 6867 | + return FALSE; |
|
| 6868 | + } |
|
| 6046 | 6869 | return ( $inclParam ) ? $this->exrule[$propix] : $this->exrule[$propix]['value']; |
| 6047 | 6870 | break; |
| 6048 | 6871 | case 'FREEBUSY': |
| 6049 | - if( !isset( $this->freebusy[$propix] )) return FALSE; |
|
| 6872 | + if( !isset( $this->freebusy[$propix] )) { |
|
| 6873 | + return FALSE; |
|
| 6874 | + } |
|
| 6050 | 6875 | return ( $inclParam ) ? $this->freebusy[$propix] : $this->freebusy[$propix]['value']; |
| 6051 | 6876 | break; |
| 6052 | 6877 | case 'GEO': |
| 6053 | - if( !empty( $this->geo['value'] )) return ( $inclParam ) ? $this->geo : $this->geo['value']; |
|
| 6878 | + if( !empty( $this->geo['value'] )) { |
|
| 6879 | + return ( $inclParam ) ? $this->geo : $this->geo['value']; |
|
| 6880 | + } |
|
| 6054 | 6881 | break; |
| 6055 | 6882 | case 'LAST-MODIFIED': |
| 6056 | - if( !empty( $this->lastmodified['value'] )) return ( $inclParam ) ? $this->lastmodified : $this->lastmodified['value']; |
|
| 6883 | + if( !empty( $this->lastmodified['value'] )) { |
|
| 6884 | + return ( $inclParam ) ? $this->lastmodified : $this->lastmodified['value']; |
|
| 6885 | + } |
|
| 6057 | 6886 | break; |
| 6058 | 6887 | case 'LOCATION': |
| 6059 | - if( !empty( $this->location['value'] )) return ( $inclParam ) ? $this->location : $this->location['value']; |
|
| 6888 | + if( !empty( $this->location['value'] )) { |
|
| 6889 | + return ( $inclParam ) ? $this->location : $this->location['value']; |
|
| 6890 | + } |
|
| 6060 | 6891 | break; |
| 6061 | 6892 | case 'ORGANIZER': |
| 6062 | - if( !empty( $this->organizer['value'] )) return ( $inclParam ) ? $this->organizer : $this->organizer['value']; |
|
| 6893 | + if( !empty( $this->organizer['value'] )) { |
|
| 6894 | + return ( $inclParam ) ? $this->organizer : $this->organizer['value']; |
|
| 6895 | + } |
|
| 6063 | 6896 | break; |
| 6064 | 6897 | case 'PERCENT-COMPLETE': |
| 6065 | - if( !empty( $this->percentcomplete['value'] )) return ( $inclParam ) ? $this->percentcomplete : $this->percentcomplete['value']; |
|
| 6898 | + if( !empty( $this->percentcomplete['value'] )) { |
|
| 6899 | + return ( $inclParam ) ? $this->percentcomplete : $this->percentcomplete['value']; |
|
| 6900 | + } |
|
| 6066 | 6901 | break; |
| 6067 | 6902 | case 'PRIORITY': |
| 6068 | - if( !empty( $this->priority['value'] )) return ( $inclParam ) ? $this->priority : $this->priority['value']; |
|
| 6903 | + if( !empty( $this->priority['value'] )) { |
|
| 6904 | + return ( $inclParam ) ? $this->priority : $this->priority['value']; |
|
| 6905 | + } |
|
| 6069 | 6906 | break; |
| 6070 | 6907 | case 'RDATE': |
| 6071 | - if( !isset( $this->rdate[$propix] )) return FALSE; |
|
| 6908 | + if( !isset( $this->rdate[$propix] )) { |
|
| 6909 | + return FALSE; |
|
| 6910 | + } |
|
| 6072 | 6911 | return ( $inclParam ) ? $this->rdate[$propix] : $this->rdate[$propix]['value']; |
| 6073 | 6912 | break; |
| 6074 | 6913 | case 'RECURRENCE-ID': |
| 6075 | - if( !empty( $this->recurrenceid['value'] )) return ( $inclParam ) ? $this->recurrenceid : $this->recurrenceid['value']; |
|
| 6914 | + if( !empty( $this->recurrenceid['value'] )) { |
|
| 6915 | + return ( $inclParam ) ? $this->recurrenceid : $this->recurrenceid['value']; |
|
| 6916 | + } |
|
| 6076 | 6917 | break; |
| 6077 | 6918 | case 'RELATED-TO': |
| 6078 | - if( !isset( $this->relatedto[$propix] )) return FALSE; |
|
| 6919 | + if( !isset( $this->relatedto[$propix] )) { |
|
| 6920 | + return FALSE; |
|
| 6921 | + } |
|
| 6079 | 6922 | return ( $inclParam ) ? $this->relatedto[$propix] : $this->relatedto[$propix]['value']; |
| 6080 | 6923 | break; |
| 6081 | 6924 | case 'REPEAT': |
| 6082 | - if( !empty( $this->repeat['value'] )) return ( $inclParam ) ? $this->repeat : $this->repeat['value']; |
|
| 6925 | + if( !empty( $this->repeat['value'] )) { |
|
| 6926 | + return ( $inclParam ) ? $this->repeat : $this->repeat['value']; |
|
| 6927 | + } |
|
| 6083 | 6928 | break; |
| 6084 | 6929 | case 'REQUEST-STATUS': |
| 6085 | - if( !isset( $this->requeststatus[$propix] )) return FALSE; |
|
| 6930 | + if( !isset( $this->requeststatus[$propix] )) { |
|
| 6931 | + return FALSE; |
|
| 6932 | + } |
|
| 6086 | 6933 | return ( $inclParam ) ? $this->requeststatus[$propix] : $this->requeststatus[$propix]['value']; |
| 6087 | 6934 | break; |
| 6088 | 6935 | case 'RESOURCES': |
| 6089 | - if( !isset( $this->resources[$propix] )) return FALSE; |
|
| 6936 | + if( !isset( $this->resources[$propix] )) { |
|
| 6937 | + return FALSE; |
|
| 6938 | + } |
|
| 6090 | 6939 | return ( $inclParam ) ? $this->resources[$propix] : $this->resources[$propix]['value']; |
| 6091 | 6940 | break; |
| 6092 | 6941 | case 'RRULE': |
| 6093 | - if( !isset( $this->rrule[$propix] )) return FALSE; |
|
| 6942 | + if( !isset( $this->rrule[$propix] )) { |
|
| 6943 | + return FALSE; |
|
| 6944 | + } |
|
| 6094 | 6945 | return ( $inclParam ) ? $this->rrule[$propix] : $this->rrule[$propix]['value']; |
| 6095 | 6946 | break; |
| 6096 | 6947 | case 'SEQUENCE': |
| 6097 | - if( !empty( $this->sequence['value'] )) return ( $inclParam ) ? $this->sequence : $this->sequence['value']; |
|
| 6948 | + if( !empty( $this->sequence['value'] )) { |
|
| 6949 | + return ( $inclParam ) ? $this->sequence : $this->sequence['value']; |
|
| 6950 | + } |
|
| 6098 | 6951 | break; |
| 6099 | 6952 | case 'STATUS': |
| 6100 | - if( !empty( $this->status['value'] )) return ( $inclParam ) ? $this->status : $this->status['value']; |
|
| 6953 | + if( !empty( $this->status['value'] )) { |
|
| 6954 | + return ( $inclParam ) ? $this->status : $this->status['value']; |
|
| 6955 | + } |
|
| 6101 | 6956 | break; |
| 6102 | 6957 | case 'SUMMARY': |
| 6103 | - if( !empty( $this->summary['value'] )) return ( $inclParam ) ? $this->summary : $this->summary['value']; |
|
| 6958 | + if( !empty( $this->summary['value'] )) { |
|
| 6959 | + return ( $inclParam ) ? $this->summary : $this->summary['value']; |
|
| 6960 | + } |
|
| 6104 | 6961 | break; |
| 6105 | 6962 | case 'TRANSP': |
| 6106 | - if( !empty( $this->transp['value'] )) return ( $inclParam ) ? $this->transp : $this->transp['value']; |
|
| 6963 | + if( !empty( $this->transp['value'] )) { |
|
| 6964 | + return ( $inclParam ) ? $this->transp : $this->transp['value']; |
|
| 6965 | + } |
|
| 6107 | 6966 | break; |
| 6108 | 6967 | case 'TRIGGER': |
| 6109 | - if( !empty( $this->trigger['value'] )) return ( $inclParam ) ? $this->trigger : $this->trigger['value']; |
|
| 6968 | + if( !empty( $this->trigger['value'] )) { |
|
| 6969 | + return ( $inclParam ) ? $this->trigger : $this->trigger['value']; |
|
| 6970 | + } |
|
| 6110 | 6971 | break; |
| 6111 | 6972 | case 'TZID': |
| 6112 | - if( !empty( $this->tzid['value'] )) return ( $inclParam ) ? $this->tzid : $this->tzid['value']; |
|
| 6973 | + if( !empty( $this->tzid['value'] )) { |
|
| 6974 | + return ( $inclParam ) ? $this->tzid : $this->tzid['value']; |
|
| 6975 | + } |
|
| 6113 | 6976 | break; |
| 6114 | 6977 | case 'TZNAME': |
| 6115 | - if( !isset( $this->tzname[$propix] )) return FALSE; |
|
| 6978 | + if( !isset( $this->tzname[$propix] )) { |
|
| 6979 | + return FALSE; |
|
| 6980 | + } |
|
| 6116 | 6981 | return ( $inclParam ) ? $this->tzname[$propix] : $this->tzname[$propix]['value']; |
| 6117 | 6982 | break; |
| 6118 | 6983 | case 'TZOFFSETFROM': |
| 6119 | - if( !empty( $this->tzoffsetfrom['value'] )) return ( $inclParam ) ? $this->tzoffsetfrom : $this->tzoffsetfrom['value']; |
|
| 6984 | + if( !empty( $this->tzoffsetfrom['value'] )) { |
|
| 6985 | + return ( $inclParam ) ? $this->tzoffsetfrom : $this->tzoffsetfrom['value']; |
|
| 6986 | + } |
|
| 6120 | 6987 | break; |
| 6121 | 6988 | case 'TZOFFSETTO': |
| 6122 | - if( !empty( $this->tzoffsetto['value'] )) return ( $inclParam ) ? $this->tzoffsetto : $this->tzoffsetto['value']; |
|
| 6989 | + if( !empty( $this->tzoffsetto['value'] )) { |
|
| 6990 | + return ( $inclParam ) ? $this->tzoffsetto : $this->tzoffsetto['value']; |
|
| 6991 | + } |
|
| 6123 | 6992 | break; |
| 6124 | 6993 | case 'TZURL': |
| 6125 | - if( !empty( $this->tzurl['value'] )) return ( $inclParam ) ? $this->tzurl : $this->tzurl['value']; |
|
| 6994 | + if( !empty( $this->tzurl['value'] )) { |
|
| 6995 | + return ( $inclParam ) ? $this->tzurl : $this->tzurl['value']; |
|
| 6996 | + } |
|
| 6126 | 6997 | break; |
| 6127 | 6998 | case 'UID': |
| 6128 | - if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) |
|
| 6129 | - return FALSE; |
|
| 6130 | - if( empty( $this->uid['value'] )) |
|
| 6131 | - $this->_makeuid(); |
|
| 6999 | + if( in_array( $this->objName, array( 'valarm', 'vtimezone', 'standard', 'daylight' ))) { |
|
| 7000 | + return FALSE; |
|
| 7001 | + } |
|
| 7002 | + if( empty( $this->uid['value'] )) { |
|
| 7003 | + $this->_makeuid(); |
|
| 7004 | + } |
|
| 6132 | 7005 | return ( $inclParam ) ? $this->uid : $this->uid['value']; |
| 6133 | 7006 | break; |
| 6134 | 7007 | case 'URL': |
| 6135 | - if( !empty( $this->url['value'] )) return ( $inclParam ) ? $this->url : $this->url['value']; |
|
| 7008 | + if( !empty( $this->url['value'] )) { |
|
| 7009 | + return ( $inclParam ) ? $this->url : $this->url['value']; |
|
| 7010 | + } |
|
| 6136 | 7011 | break; |
| 6137 | 7012 | default: |
| 6138 | 7013 | if( $propName != 'X-PROP' ) { |
| 6139 | - if( !isset( $this->xprop[$propName] )) return FALSE; |
|
| 7014 | + if( !isset( $this->xprop[$propName] )) { |
|
| 7015 | + return FALSE; |
|
| 7016 | + } |
|
| 6140 | 7017 | return ( $inclParam ) ? array( $propName, $this->xprop[$propName] ) |
| 6141 | 7018 | : array( $propName, $this->xprop[$propName]['value'] ); |
| 6142 | - } |
|
| 6143 | - else { |
|
| 6144 | - if( empty( $this->xprop )) return FALSE; |
|
| 7019 | + } else { |
|
| 7020 | + if( empty( $this->xprop )) { |
|
| 7021 | + return FALSE; |
|
| 7022 | + } |
|
| 6145 | 7023 | $xpropno = 0; |
| 6146 | 7024 | foreach( $this->xprop as $xpropkey => $xpropvalue ) { |
| 6147 | - if( $propix == $xpropno ) |
|
| 6148 | - return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 7025 | + if( $propix == $xpropno ) { |
|
| 7026 | + return ( $inclParam ) ? array( $xpropkey, $this->xprop[$xpropkey] ) |
|
| 6149 | 7027 | : array( $xpropkey, $this->xprop[$xpropkey]['value'] ); |
| 6150 | - else |
|
| 6151 | - $xpropno++; |
|
| 7028 | + } else { |
|
| 7029 | + $xpropno++; |
|
| 7030 | + } |
|
| 6152 | 7031 | } |
| 6153 | 7032 | return FALSE; // not found ?? |
| 6154 | 7033 | } |
@@ -6167,15 +7046,21 @@ discard block |
||
| 6167 | 7046 | */ |
| 6168 | 7047 | function setProperty() { |
| 6169 | 7048 | $numargs = func_num_args(); |
| 6170 | - if( 1 > $numargs ) return FALSE; |
|
| 7049 | + if( 1 > $numargs ) { |
|
| 7050 | + return FALSE; |
|
| 7051 | + } |
|
| 6171 | 7052 | $arglist = func_get_args(); |
| 6172 | - if( $this->_notExistProp( $arglist[0] )) return FALSE; |
|
| 6173 | - if( !$this->getConfig( 'allowEmpty' ) && ( !isset( $arglist[1] ) || empty( $arglist[1] ))) |
|
| 6174 | - return FALSE; |
|
| 7053 | + if( $this->_notExistProp( $arglist[0] )) { |
|
| 7054 | + return FALSE; |
|
| 7055 | + } |
|
| 7056 | + if( !$this->getConfig( 'allowEmpty' ) && ( !isset( $arglist[1] ) || empty( $arglist[1] ))) { |
|
| 7057 | + return FALSE; |
|
| 7058 | + } |
|
| 6175 | 7059 | $arglist[0] = strtoupper( $arglist[0] ); |
| 6176 | 7060 | for( $argix=$numargs; $argix < 12; $argix++ ) { |
| 6177 | - if( !isset( $arglist[$argix] )) |
|
| 6178 | - $arglist[$argix] = null; |
|
| 7061 | + if( !isset( $arglist[$argix] )) { |
|
| 7062 | + $arglist[$argix] = null; |
|
| 7063 | + } |
|
| 6179 | 7064 | } |
| 6180 | 7065 | switch( $arglist[0] ) { |
| 6181 | 7066 | case 'ACTION': |
@@ -6289,20 +7174,19 @@ discard block |
||
| 6289 | 7174 | $this->setComponent( $comp ); |
| 6290 | 7175 | $comp = & $this; |
| 6291 | 7176 | continue; |
| 6292 | - } |
|
| 6293 | - elseif( 'BEGIN:VALARM' == strtoupper( substr( $line, 0, 12 ))) { |
|
| 7177 | + } elseif( 'BEGIN:VALARM' == strtoupper( substr( $line, 0, 12 ))) { |
|
| 6294 | 7178 | $comp = new valarm(); |
| 6295 | 7179 | continue; |
| 7180 | + } else { |
|
| 7181 | + $comp->unparsed[] = $line; |
|
| 6296 | 7182 | } |
| 6297 | - else |
|
| 6298 | - $comp->unparsed[] = $line; |
|
| 6299 | 7183 | } |
| 7184 | + } else { |
|
| 7185 | + $this->unparsed = array( trim( $unparsedtext )); |
|
| 6300 | 7186 | } |
| 6301 | - else |
|
| 6302 | - $this->unparsed = array( trim( $unparsedtext )); |
|
| 7187 | + } elseif( !isset( $this->unparsed )) { |
|
| 7188 | + $this->unparsed = array(); |
|
| 6303 | 7189 | } |
| 6304 | - elseif( !isset( $this->unparsed )) |
|
| 6305 | - $this->unparsed = array(); |
|
| 6306 | 7190 | /* concatenate property values spread over several lines */ |
| 6307 | 7191 | $lastix = -1; |
| 6308 | 7192 | $propnames = array( 'action', 'attach', 'attendee', 'categories', 'comment', 'completed' |
@@ -6326,8 +7210,7 @@ discard block |
||
| 6326 | 7210 | $newProp = FALSE; |
| 6327 | 7211 | $lastix++; |
| 6328 | 7212 | $proprows[$lastix] = $line; |
| 6329 | - } |
|
| 6330 | - else { |
|
| 7213 | + } else { |
|
| 6331 | 7214 | /* remove line breaks */ |
| 6332 | 7215 | if(( '\n' == substr( $proprows[$lastix], -2 )) && |
| 6333 | 7216 | ( ' ' == substr( $line, 0, 1 ))) { |
@@ -6340,14 +7223,15 @@ discard block |
||
| 6340 | 7223 | /* parse each property 'line' */ |
| 6341 | 7224 | foreach( $proprows as $line ) { |
| 6342 | 7225 | $line = str_replace( "\n ", '', $line ); |
| 6343 | - if( '\n' == substr( $line, -2 )) |
|
| 6344 | - $line = substr( $line, 0, strlen( $line ) - 2 ); |
|
| 7226 | + if( '\n' == substr( $line, -2 )) { |
|
| 7227 | + $line = substr( $line, 0, strlen( $line ) - 2 ); |
|
| 7228 | + } |
|
| 6345 | 7229 | /* get propname, (problem with x-properties, otherwise in previous loop) */ |
| 6346 | 7230 | $cix = $propname = null; |
| 6347 | 7231 | for( $cix=0; $cix < strlen( $line ); $cix++ ) { |
| 6348 | - if( in_array( $line{$cix}, array( ':', ';' ))) |
|
| 6349 | - break; |
|
| 6350 | - else { |
|
| 7232 | + if( in_array( $line{$cix}, array( ':', ';' ))) { |
|
| 7233 | + break; |
|
| 7234 | + } else { |
|
| 6351 | 7235 | $propname .= $line{$cix}; |
| 6352 | 7236 | } |
| 6353 | 7237 | } |
@@ -6380,27 +7264,30 @@ discard block |
||
| 6380 | 7264 | break; |
| 6381 | 7265 | } |
| 6382 | 7266 | } |
| 6383 | - if( ';' == $line{$cix} ) |
|
| 6384 | - $attr[++$attrix] = null; |
|
| 6385 | - else |
|
| 6386 | - $attr[$attrix] .= $line{$cix}; |
|
| 7267 | + if( ';' == $line{$cix} ) { |
|
| 7268 | + $attr[++$attrix] = null; |
|
| 7269 | + } else { |
|
| 7270 | + $attr[$attrix] .= $line{$cix}; |
|
| 7271 | + } |
|
| 6387 | 7272 | } |
| 6388 | 7273 | /* make attributes in array format */ |
| 6389 | 7274 | $propattr = array(); |
| 6390 | 7275 | foreach( $attr as $attribute ) { |
| 6391 | 7276 | $attrsplit = explode( '=', $attribute, 2 ); |
| 6392 | - if( 1 < count( $attrsplit )) |
|
| 6393 | - $propattr[$attrsplit[0]] = $attrsplit[1]; |
|
| 6394 | - else |
|
| 6395 | - $propattr[] = $attribute; |
|
| 7277 | + if( 1 < count( $attrsplit )) { |
|
| 7278 | + $propattr[$attrsplit[0]] = $attrsplit[1]; |
|
| 7279 | + } else { |
|
| 7280 | + $propattr[] = $attribute; |
|
| 7281 | + } |
|
| 6396 | 7282 | } |
| 6397 | 7283 | /* call setProperty( $propname.. . */ |
| 6398 | 7284 | switch( $propname ) { |
| 6399 | 7285 | case 'ATTENDEE': |
| 6400 | 7286 | foreach( $propattr as $pix => $attr ) { |
| 6401 | 7287 | $attr2 = explode( ',', $attr ); |
| 6402 | - if( 1 < count( $attr2 )) |
|
| 6403 | - $propattr[$pix] = $attr2; |
|
| 7288 | + if( 1 < count( $attr2 )) { |
|
| 7289 | + $propattr[$pix] = $attr2; |
|
| 7290 | + } |
|
| 6404 | 7291 | } |
| 6405 | 7292 | $this->setProperty( $propname, $line, $propattr ); |
| 6406 | 7293 | break; |
@@ -6418,13 +7305,14 @@ discard block |
||
| 6418 | 7305 | } |
| 6419 | 7306 | if( 1 < count( $content )) { |
| 6420 | 7307 | $content = array_values( $content ); |
| 6421 | - foreach( $content as $cix => $contentPart ) |
|
| 6422 | - $content[$cix] = $this->_strunrep( $contentPart ); |
|
| 7308 | + foreach( $content as $cix => $contentPart ) { |
|
| 7309 | + $content[$cix] = $this->_strunrep( $contentPart ); |
|
| 7310 | + } |
|
| 6423 | 7311 | $this->setProperty( $propname, $content, $propattr ); |
| 6424 | 7312 | break; |
| 7313 | + } else { |
|
| 7314 | + $line = reset( $content ); |
|
| 6425 | 7315 | } |
| 6426 | - else |
|
| 6427 | - $line = reset( $content ); |
|
| 6428 | 7316 | } |
| 6429 | 7317 | case 'X-': |
| 6430 | 7318 | $propname = ( isset( $propname2 )) ? $propname2 : $propname; |
@@ -6433,8 +7321,9 @@ discard block |
||
| 6433 | 7321 | case 'DESCRIPTION': |
| 6434 | 7322 | case 'LOCATION': |
| 6435 | 7323 | case 'SUMMARY': |
| 6436 | - if( empty( $line )) |
|
| 6437 | - $propattr = null; |
|
| 7324 | + if( empty( $line )) { |
|
| 7325 | + $propattr = null; |
|
| 7326 | + } |
|
| 6438 | 7327 | $this->setProperty( $propname, $this->_strunrep( $line ), $propattr ); |
| 6439 | 7328 | unset( $propname2 ); |
| 6440 | 7329 | break; |
@@ -6454,15 +7343,17 @@ discard block |
||
| 6454 | 7343 | $values = explode( ',', $line ); |
| 6455 | 7344 | foreach( $values as $vix => $value ) { |
| 6456 | 7345 | $value2 = explode( '/', $value ); |
| 6457 | - if( 1 < count( $value2 )) |
|
| 6458 | - $values[$vix] = $value2; |
|
| 7346 | + if( 1 < count( $value2 )) { |
|
| 7347 | + $values[$vix] = $value2; |
|
| 7348 | + } |
|
| 6459 | 7349 | } |
| 6460 | 7350 | $this->setProperty( $propname, $fbtype, $values, $propattr ); |
| 6461 | 7351 | break; |
| 6462 | 7352 | case 'GEO': |
| 6463 | 7353 | $value = explode( ';', $line, 2 ); |
| 6464 | - if( 2 > count( $value )) |
|
| 6465 | - $value[1] = null; |
|
| 7354 | + if( 2 > count( $value )) { |
|
| 7355 | + $value[1] = null; |
|
| 7356 | + } |
|
| 6466 | 7357 | $this->setProperty( $propname, $value[0], $value[1], $propattr ); |
| 6467 | 7358 | break; |
| 6468 | 7359 | case 'EXDATE': |
@@ -6477,8 +7368,9 @@ discard block |
||
| 6477 | 7368 | $values = explode( ',', $line ); |
| 6478 | 7369 | foreach( $values as $vix => $value ) { |
| 6479 | 7370 | $value2 = explode( '/', $value ); |
| 6480 | - if( 1 < count( $value2 )) |
|
| 6481 | - $values[$vix] = $value2; |
|
| 7371 | + if( 1 < count( $value2 )) { |
|
| 7372 | + $values[$vix] = $value2; |
|
| 7373 | + } |
|
| 6482 | 7374 | } |
| 6483 | 7375 | $this->setProperty( $propname, $values, $propattr ); |
| 6484 | 7376 | break; |
@@ -6487,8 +7379,10 @@ discard block |
||
| 6487 | 7379 | $values = explode( ';', $line ); |
| 6488 | 7380 | $recur = array(); |
| 6489 | 7381 | foreach( $values as $value2 ) { |
| 6490 | - if( empty( $value2 )) |
|
| 6491 | - continue; // ;-char in ending position ??? |
|
| 7382 | + if( empty( $value2 )) { |
|
| 7383 | + continue; |
|
| 7384 | + } |
|
| 7385 | + // ;-char in ending position ??? |
|
| 6492 | 7386 | $value3 = explode( '=', $value2, 2 ); |
| 6493 | 7387 | $rulelabel = strtoupper( $value3[0] ); |
| 6494 | 7388 | switch( $rulelabel ) { |
@@ -6502,38 +7396,44 @@ discard block |
||
| 6502 | 7396 | if(( ctype_alpha( substr( $value5, -1 ))) && |
| 6503 | 7397 | ( ctype_alpha( substr( $value5, -2, 1 )))) { |
| 6504 | 7398 | $dayname = substr( $value5, -2, 2 ); |
| 6505 | - if( 2 < strlen( $value5 )) |
|
| 6506 | - $dayno = substr( $value5, 0, ( strlen( $value5 ) - 2 )); |
|
| 7399 | + if( 2 < strlen( $value5 )) { |
|
| 7400 | + $dayno = substr( $value5, 0, ( strlen( $value5 ) - 2 )); |
|
| 7401 | + } |
|
| 7402 | + } |
|
| 7403 | + if( $dayno ) { |
|
| 7404 | + $value6[] = $dayno; |
|
| 7405 | + } |
|
| 7406 | + if( $dayname ) { |
|
| 7407 | + $value6['DAY'] = $dayname; |
|
| 6507 | 7408 | } |
| 6508 | - if( $dayno ) |
|
| 6509 | - $value6[] = $dayno; |
|
| 6510 | - if( $dayname ) |
|
| 6511 | - $value6['DAY'] = $dayname; |
|
| 6512 | 7409 | $value4[$v5ix] = $value6; |
| 6513 | 7410 | } |
| 6514 | - } |
|
| 6515 | - else { |
|
| 7411 | + } else { |
|
| 6516 | 7412 | $value4 = array(); |
| 6517 | 7413 | $dayno = $dayname = null; |
| 6518 | 7414 | $value5 = trim( (string) $value3[1] ); |
| 6519 | 7415 | if(( ctype_alpha( substr( $value5, -1 ))) && |
| 6520 | 7416 | ( ctype_alpha( substr( $value5, -2, 1 )))) { |
| 6521 | 7417 | $dayname = substr( $value5, -2, 2 ); |
| 6522 | - if( 2 < strlen( $value5 )) |
|
| 6523 | - $dayno = substr( $value5, 0, ( strlen( $value5 ) - 2 )); |
|
| 7418 | + if( 2 < strlen( $value5 )) { |
|
| 7419 | + $dayno = substr( $value5, 0, ( strlen( $value5 ) - 2 )); |
|
| 7420 | + } |
|
| 7421 | + } |
|
| 7422 | + if( $dayno ) { |
|
| 7423 | + $value4[] = $dayno; |
|
| 7424 | + } |
|
| 7425 | + if( $dayname ) { |
|
| 7426 | + $value4['DAY'] = $dayname; |
|
| 6524 | 7427 | } |
| 6525 | - if( $dayno ) |
|
| 6526 | - $value4[] = $dayno; |
|
| 6527 | - if( $dayname ) |
|
| 6528 | - $value4['DAY'] = $dayname; |
|
| 6529 | 7428 | } |
| 6530 | 7429 | $recur[$rulelabel] = $value4; |
| 6531 | 7430 | break; |
| 6532 | 7431 | } |
| 6533 | 7432 | default: { |
| 6534 | 7433 | $value4 = explode( ',', $value3[1] ); |
| 6535 | - if( 1 < count( $value4 )) |
|
| 6536 | - $value3[1] = $value4; |
|
| 7434 | + if( 1 < count( $value4 )) { |
|
| 7435 | + $value3[1] = $value4; |
|
| 7436 | + } |
|
| 6537 | 7437 | $recur[$rulelabel] = $value3[1]; |
| 6538 | 7438 | break; |
| 6539 | 7439 | } |
@@ -6549,8 +7449,9 @@ discard block |
||
| 6549 | 7449 | unset( $this->unparsed, $proprows ); |
| 6550 | 7450 | if( isset( $this->components ) && is_array( $this->components ) && ( 0 < count( $this->components ))) { |
| 6551 | 7451 | for( $six = 0; $six < count( $this->components ); $six++ ) { |
| 6552 | - if( !empty( $this->components[$six]->unparsed )) |
|
| 6553 | - $this->components[$six]->parse(); |
|
| 7452 | + if( !empty( $this->components[$six]->unparsed )) { |
|
| 7453 | + $this->components[$six]->parse(); |
|
| 7454 | + } |
|
| 6554 | 7455 | } |
| 6555 | 7456 | } |
| 6556 | 7457 | } |
@@ -6581,32 +7482,33 @@ discard block |
||
| 6581 | 7482 | * @return void |
| 6582 | 7483 | */ |
| 6583 | 7484 | function deleteComponent( $arg1, $arg2=FALSE ) { |
| 6584 | - if( !isset( $this->components )) return FALSE; |
|
| 7485 | + if( !isset( $this->components )) { |
|
| 7486 | + return FALSE; |
|
| 7487 | + } |
|
| 6585 | 7488 | $argType = $index = null; |
| 6586 | 7489 | if ( ctype_digit( (string) $arg1 )) { |
| 6587 | 7490 | $argType = 'INDEX'; |
| 6588 | 7491 | $index = (int) $arg1 - 1; |
| 6589 | - } |
|
| 6590 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 7492 | + } elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 6591 | 7493 | $argType = strtolower( $arg1 ); |
| 6592 | 7494 | $index = ( !empty( $arg2 ) && ctype_digit( (string) $arg2 )) ? (( int ) $arg2 - 1 ) : 0; |
| 6593 | 7495 | } |
| 6594 | 7496 | $cix2dC = 0; |
| 6595 | 7497 | foreach ( $this->components as $cix => $component) { |
| 6596 | - if( empty( $component )) continue; |
|
| 7498 | + if( empty( $component )) { |
|
| 7499 | + continue; |
|
| 7500 | + } |
|
| 6597 | 7501 | unset( $component->propix ); |
| 6598 | 7502 | if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
| 6599 | 7503 | unset( $this->components[$cix] ); |
| 6600 | 7504 | return TRUE; |
| 6601 | - } |
|
| 6602 | - elseif( $argType == $component->objName ) { |
|
| 7505 | + } elseif( $argType == $component->objName ) { |
|
| 6603 | 7506 | if( $index == $cix2dC ) { |
| 6604 | 7507 | unset( $this->components[$cix] ); |
| 6605 | 7508 | return TRUE; |
| 6606 | 7509 | } |
| 6607 | 7510 | $cix2dC++; |
| 6608 | - } |
|
| 6609 | - elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 7511 | + } elseif( !$argType && ($arg1 == $component->getProperty( 'uid' ))) { |
|
| 6610 | 7512 | unset( $this->components[$cix] ); |
| 6611 | 7513 | return TRUE; |
| 6612 | 7514 | } |
@@ -6623,43 +7525,47 @@ discard block |
||
| 6623 | 7525 | * @return object |
| 6624 | 7526 | */ |
| 6625 | 7527 | function getComponent ( $arg1=FALSE, $arg2=FALSE ) { |
| 6626 | - if( !isset( $this->components )) return FALSE; |
|
| 7528 | + if( !isset( $this->components )) { |
|
| 7529 | + return FALSE; |
|
| 7530 | + } |
|
| 6627 | 7531 | $index = $argType = null; |
| 6628 | 7532 | if ( !$arg1 ) { |
| 6629 | 7533 | $argType = 'INDEX'; |
| 6630 | 7534 | $index = $this->compix['INDEX'] = |
| 6631 | 7535 | ( isset( $this->compix['INDEX'] )) ? $this->compix['INDEX'] + 1 : 1; |
| 6632 | - } |
|
| 6633 | - elseif ( ctype_digit( (string) $arg1 )) { |
|
| 7536 | + } elseif ( ctype_digit( (string) $arg1 )) { |
|
| 6634 | 7537 | $argType = 'INDEX'; |
| 6635 | 7538 | $index = (int) $arg1; |
| 6636 | 7539 | unset( $this->compix ); |
| 6637 | - } |
|
| 6638 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 7540 | + } elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 6639 | 7541 | unset( $this->compix['INDEX'] ); |
| 6640 | 7542 | $argType = strtolower( $arg1 ); |
| 6641 | - if( !$arg2 ) |
|
| 6642 | - $index = $this->compix[$argType] = |
|
| 7543 | + if( !$arg2 ) { |
|
| 7544 | + $index = $this->compix[$argType] = |
|
| 6643 | 7545 | ( isset( $this->compix[$argType] )) ? $this->compix[$argType] + 1 : 1; |
| 6644 | - else |
|
| 6645 | - $index = (int) $arg2; |
|
| 7546 | + } else { |
|
| 7547 | + $index = (int) $arg2; |
|
| 7548 | + } |
|
| 6646 | 7549 | } |
| 6647 | 7550 | $index -= 1; |
| 6648 | 7551 | $ckeys = array_keys( $this->components ); |
| 6649 | - if( !empty( $index) && ( $index > end( $ckeys ))) |
|
| 6650 | - return FALSE; |
|
| 7552 | + if( !empty( $index) && ( $index > end( $ckeys ))) { |
|
| 7553 | + return FALSE; |
|
| 7554 | + } |
|
| 6651 | 7555 | $cix2gC = 0; |
| 6652 | 7556 | foreach( $this->components as $cix => $component ) { |
| 6653 | - if( empty( $component )) continue; |
|
| 7557 | + if( empty( $component )) { |
|
| 7558 | + continue; |
|
| 7559 | + } |
|
| 6654 | 7560 | unset( $component->propix ); |
| 6655 | - if(( 'INDEX' == $argType ) && ( $index == $cix )) |
|
| 6656 | - return $component->copy(); |
|
| 6657 | - elseif( $argType == $component->objName ) { |
|
| 6658 | - if( $index == $cix2gC ) |
|
| 6659 | - return $component->copy(); |
|
| 7561 | + if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
|
| 7562 | + return $component->copy(); |
|
| 7563 | + } elseif( $argType == $component->objName ) { |
|
| 7564 | + if( $index == $cix2gC ) { |
|
| 7565 | + return $component->copy(); |
|
| 7566 | + } |
|
| 6660 | 7567 | $cix2gC++; |
| 6661 | - } |
|
| 6662 | - elseif( !$argType && ( $arg1 == $component->getProperty( 'uid' ))) { |
|
| 7568 | + } elseif( !$argType && ( $arg1 == $component->getProperty( 'uid' ))) { |
|
| 6663 | 7569 | unset( $component->propix ); |
| 6664 | 7570 | return $component->copy(); |
| 6665 | 7571 | } |
@@ -6690,9 +7596,12 @@ discard block |
||
| 6690 | 7596 | * @return bool |
| 6691 | 7597 | */ |
| 6692 | 7598 | function setComponent( $component, $arg1=FALSE, $arg2=FALSE ) { |
| 6693 | - if( !isset( $this->components )) return FALSE; |
|
| 6694 | - if( '' >= $component->getConfig( 'language')) |
|
| 6695 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 7599 | + if( !isset( $this->components )) { |
|
| 7600 | + return FALSE; |
|
| 7601 | + } |
|
| 7602 | + if( '' >= $component->getConfig( 'language')) { |
|
| 7603 | + $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 7604 | + } |
|
| 6696 | 7605 | $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
| 6697 | 7606 | $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
| 6698 | 7607 | $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
@@ -6711,27 +7620,26 @@ discard block |
||
| 6711 | 7620 | if ( ctype_digit( (string) $arg1 )) { |
| 6712 | 7621 | $argType = 'INDEX'; |
| 6713 | 7622 | $index = (int) $arg1 - 1; |
| 6714 | - } |
|
| 6715 | - elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 7623 | + } elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) { |
|
| 6716 | 7624 | $argType = strtolower( $arg1 ); |
| 6717 | 7625 | $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0; |
| 6718 | 7626 | } |
| 6719 | 7627 | $cix2sC = 0; |
| 6720 | 7628 | foreach ( $this->components as $cix => $component2 ) { |
| 6721 | - if( empty( $component2 )) continue; |
|
| 7629 | + if( empty( $component2 )) { |
|
| 7630 | + continue; |
|
| 7631 | + } |
|
| 6722 | 7632 | unset( $component2->propix ); |
| 6723 | 7633 | if(( 'INDEX' == $argType ) && ( $index == $cix )) { |
| 6724 | 7634 | $this->components[$cix] = $component->copy(); |
| 6725 | 7635 | return TRUE; |
| 6726 | - } |
|
| 6727 | - elseif( $argType == $component2->objName ) { |
|
| 7636 | + } elseif( $argType == $component2->objName ) { |
|
| 6728 | 7637 | if( $index == $cix2sC ) { |
| 6729 | 7638 | $this->components[$cix] = $component->copy(); |
| 6730 | 7639 | return TRUE; |
| 6731 | 7640 | } |
| 6732 | 7641 | $cix2sC++; |
| 6733 | - } |
|
| 6734 | - elseif( !$argType && ($arg1 == $component2->getProperty( 'uid' ))) { |
|
| 7642 | + } elseif( !$argType && ($arg1 == $component2->getProperty( 'uid' ))) { |
|
| 6735 | 7643 | $this->components[$cix] = $component->copy(); |
| 6736 | 7644 | return TRUE; |
| 6737 | 7645 | } |
@@ -6750,9 +7658,12 @@ discard block |
||
| 6750 | 7658 | function createSubComponent() { |
| 6751 | 7659 | $output = null; |
| 6752 | 7660 | foreach( $this->components as $component ) { |
| 6753 | - if( empty( $component )) continue; |
|
| 6754 | - if( '' >= $component->getConfig( 'language')) |
|
| 6755 | - $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 7661 | + if( empty( $component )) { |
|
| 7662 | + continue; |
|
| 7663 | + } |
|
| 7664 | + if( '' >= $component->getConfig( 'language')) { |
|
| 7665 | + $component->setConfig( 'language', $this->getConfig( 'language' )); |
|
| 7666 | + } |
|
| 6756 | 7667 | $component->setConfig( 'allowEmpty', $this->getConfig( 'allowEmpty' )); |
| 6757 | 7668 | $component->setConfig( 'nl', $this->getConfig( 'nl' )); |
| 6758 | 7669 | $component->setConfig( 'unique_id', $this->getConfig( 'unique_id' )); |
@@ -6790,16 +7701,18 @@ discard block |
||
| 6790 | 7701 | $string = null; |
| 6791 | 7702 | while( $strlen > 75 ) { |
| 6792 | 7703 | $breakAtChar = 75; |
| 6793 | - if( substr( $tmp, ( $breakAtChar - 1 ), strlen( '\n' )) == '\n' ) |
|
| 6794 | - $breakAtChar = $breakAtChar - 1; |
|
| 7704 | + if( substr( $tmp, ( $breakAtChar - 1 ), strlen( '\n' )) == '\n' ) { |
|
| 7705 | + $breakAtChar = $breakAtChar - 1; |
|
| 7706 | + } |
|
| 6795 | 7707 | $string .= substr( $tmp, 0, $breakAtChar ); |
| 6796 | 7708 | $string .= $this->nl; |
| 6797 | 7709 | $tmp = ' '.substr( $tmp, $breakAtChar ); |
| 6798 | 7710 | $strlen = strlen( $tmp ); |
| 6799 | 7711 | } // while |
| 6800 | 7712 | $string .= rtrim( $tmp ); // the rest |
| 6801 | - if( $this->nl != substr( $string, ( 0 - strlen( $this->nl )))) |
|
| 6802 | - $string .= $this->nl; |
|
| 7713 | + if( $this->nl != substr( $string, ( 0 - strlen( $this->nl )))) { |
|
| 7714 | + $string .= $this->nl; |
|
| 7715 | + } |
|
| 6803 | 7716 | return $string; |
| 6804 | 7717 | } |
| 6805 | 7718 | /** |
@@ -6820,27 +7733,33 @@ discard block |
||
| 6820 | 7733 | $pos = 0; |
| 6821 | 7734 | while( $pos <= strlen( $string )) { |
| 6822 | 7735 | $pos = strpos( $string, "\\", $pos ); |
| 6823 | - if( FALSE === $pos ) |
|
| 6824 | - break; |
|
| 7736 | + if( FALSE === $pos ) { |
|
| 7737 | + break; |
|
| 7738 | + } |
|
| 6825 | 7739 | if( !in_array( $string{($pos + 1)}, array( 'n', 'N', 'r', ',', ';' ))) { |
| 6826 | 7740 | $string = substr( $string, 0, $pos )."\\".substr( $string, ( $pos + 1 )); |
| 6827 | 7741 | $pos += 1; |
| 6828 | 7742 | } |
| 6829 | 7743 | $pos += 1; |
| 6830 | 7744 | } |
| 6831 | - if( FALSE !== strpos( $string, '"' )) |
|
| 6832 | - $string = str_replace('"', "'", $string); |
|
| 6833 | - if( FALSE !== strpos( $string, ',' )) |
|
| 6834 | - $string = str_replace(',', '\,', $string); |
|
| 6835 | - if( FALSE !== strpos( $string, ';' )) |
|
| 6836 | - $string = str_replace(';', '\;', $string); |
|
| 6837 | - if( FALSE !== strpos( $string, "\r\n" )) |
|
| 6838 | - $string = str_replace( "\r\n", '\n', $string); |
|
| 6839 | - elseif( FALSE !== strpos( $string, "\r" )) |
|
| 6840 | - $string = str_replace( "\r", '\n', $string); |
|
| 6841 | - if( FALSE !== strpos( $string, '\N' )) |
|
| 6842 | - $string = str_replace( '\N', '\n', $string); |
|
| 6843 | -// if( FALSE !== strpos( $string, $this->nl )) |
|
| 7745 | + if( FALSE !== strpos( $string, '"' )) { |
|
| 7746 | + $string = str_replace('"', "'", $string); |
|
| 7747 | + } |
|
| 7748 | + if( FALSE !== strpos( $string, ',' )) { |
|
| 7749 | + $string = str_replace(',', '\,', $string); |
|
| 7750 | + } |
|
| 7751 | + if( FALSE !== strpos( $string, ';' )) { |
|
| 7752 | + $string = str_replace(';', '\;', $string); |
|
| 7753 | + } |
|
| 7754 | + if( FALSE !== strpos( $string, "\r\n" )) { |
|
| 7755 | + $string = str_replace( "\r\n", '\n', $string); |
|
| 7756 | + } elseif( FALSE !== strpos( $string, "\r" )) { |
|
| 7757 | + $string = str_replace( "\r", '\n', $string); |
|
| 7758 | + } |
|
| 7759 | + if( FALSE !== strpos( $string, '\N' )) { |
|
| 7760 | + $string = str_replace( '\N', '\n', $string); |
|
| 7761 | + } |
|
| 7762 | + // if( FALSE !== strpos( $string, $this->nl )) |
|
| 6844 | 7763 | $string = str_replace( $this->nl, '\n', $string); |
| 6845 | 7764 | break; |
| 6846 | 7765 | } |
@@ -6993,8 +7912,9 @@ discard block |
||
| 6993 | 7912 | $component .= $this->createSubComponent(); |
| 6994 | 7913 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 6995 | 7914 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 6996 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 6997 | - $xcaldecl[] = $localxcaldecl; |
|
| 7915 | + foreach( $this->xcaldecl as $localxcaldecl ) { |
|
| 7916 | + $xcaldecl[] = $localxcaldecl; |
|
| 7917 | + } |
|
| 6998 | 7918 | } |
| 6999 | 7919 | return $component; |
| 7000 | 7920 | } |
@@ -7132,8 +8052,9 @@ discard block |
||
| 7132 | 8052 | $component .= $this->createSubComponent(); |
| 7133 | 8053 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7134 | 8054 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 7135 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7136 | - $xcaldecl[] = $localxcaldecl; |
|
| 8055 | + foreach( $this->xcaldecl as $localxcaldecl ) { |
|
| 8056 | + $xcaldecl[] = $localxcaldecl; |
|
| 8057 | + } |
|
| 7137 | 8058 | } |
| 7138 | 8059 | return $component; |
| 7139 | 8060 | } |
@@ -7242,8 +8163,9 @@ discard block |
||
| 7242 | 8163 | $component .= $this->createXprop(); |
| 7243 | 8164 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7244 | 8165 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 7245 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7246 | - $xcaldecl[] = $localxcaldecl; |
|
| 8166 | + foreach( $this->xcaldecl as $localxcaldecl ) { |
|
| 8167 | + $xcaldecl[] = $localxcaldecl; |
|
| 8168 | + } |
|
| 7247 | 8169 | } |
| 7248 | 8170 | return $component; |
| 7249 | 8171 | } |
@@ -7318,8 +8240,9 @@ discard block |
||
| 7318 | 8240 | $component .= $this->createXprop(); |
| 7319 | 8241 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7320 | 8242 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 7321 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7322 | - $xcaldecl[] = $localxcaldecl; |
|
| 8243 | + foreach( $this->xcaldecl as $localxcaldecl ) { |
|
| 8244 | + $xcaldecl[] = $localxcaldecl; |
|
| 8245 | + } |
|
| 7323 | 8246 | } |
| 7324 | 8247 | return $component; |
| 7325 | 8248 | } |
@@ -7419,10 +8342,11 @@ discard block |
||
| 7419 | 8342 | * @return void |
| 7420 | 8343 | */ |
| 7421 | 8344 | function vtimezone( $timezonetype=FALSE ) { |
| 7422 | - if( !$timezonetype ) |
|
| 7423 | - $this->timezonetype = 'VTIMEZONE'; |
|
| 7424 | - else |
|
| 7425 | - $this->timezonetype = strtoupper( $timezonetype ); |
|
| 8345 | + if( !$timezonetype ) { |
|
| 8346 | + $this->timezonetype = 'VTIMEZONE'; |
|
| 8347 | + } else { |
|
| 8348 | + $this->timezonetype = strtoupper( $timezonetype ); |
|
| 8349 | + } |
|
| 7426 | 8350 | $this->calendarComponent(); |
| 7427 | 8351 | |
| 7428 | 8352 | $this->comment = ''; |
@@ -7464,8 +8388,9 @@ discard block |
||
| 7464 | 8388 | $component .= $this->createSubComponent(); |
| 7465 | 8389 | $component .= $this->componentEnd1.$objectname.$this->componentEnd2; |
| 7466 | 8390 | if( is_array( $this->xcaldecl ) && ( 0 < count( $this->xcaldecl ))) { |
| 7467 | - foreach( $this->xcaldecl as $localxcaldecl ) |
|
| 7468 | - $xcaldecl[] = $localxcaldecl; |
|
| 8391 | + foreach( $this->xcaldecl as $localxcaldecl ) { |
|
| 8392 | + $xcaldecl[] = $localxcaldecl; |
|
| 8393 | + } |
|
| 7469 | 8394 | } |
| 7470 | 8395 | return $component; |
| 7471 | 8396 | } |
@@ -52,6 +52,9 @@ discard block |
||
| 52 | 52 | } |
| 53 | 53 | } |
| 54 | 54 | |
| 55 | + /** |
|
| 56 | + * @param string|null $cropParameters |
|
| 57 | + */ |
|
| 55 | 58 | public function crop($cropParameters) { |
| 56 | 59 | $image_size = $this->get_image_size($this->image_wrapper->path); |
| 57 | 60 | $src_width = $image_size['width']; |
@@ -66,6 +69,9 @@ discard block |
||
| 66 | 69 | return $image; |
| 67 | 70 | } |
| 68 | 71 | |
| 72 | + /** |
|
| 73 | + * @param string $convert_file_to |
|
| 74 | + */ |
|
| 69 | 75 | public function send_image( |
| 70 | 76 | $file = '', |
| 71 | 77 | $compress = -1, |
@@ -147,6 +153,9 @@ discard block |
||
| 147 | 153 | public $image; |
| 148 | 154 | public $filter = Imagick::FILTER_LANCZOS; |
| 149 | 155 | |
| 156 | + /** |
|
| 157 | + * @param string $path |
|
| 158 | + */ |
|
| 150 | 159 | public function __construct($path) |
| 151 | 160 | { |
| 152 | 161 | parent::__construct($path); |
@@ -194,6 +203,10 @@ discard block |
||
| 194 | 203 | } |
| 195 | 204 | |
| 196 | 205 | //@todo implement border logic case for Imagick |
| 206 | + |
|
| 207 | + /** |
|
| 208 | + * @param integer $border |
|
| 209 | + */ |
|
| 197 | 210 | public function resize($thumbw, $thumbh, $border, $specific_size = false) |
| 198 | 211 | { |
| 199 | 212 | if (!$this->image_validated) return false; |
@@ -275,6 +288,9 @@ discard block |
||
| 275 | 288 | { |
| 276 | 289 | public $bg; |
| 277 | 290 | |
| 291 | + /** |
|
| 292 | + * @param string $path |
|
| 293 | + */ |
|
| 278 | 294 | function __construct($path) { |
| 279 | 295 | parent::__construct($path); |
| 280 | 296 | } |
@@ -332,6 +348,9 @@ discard block |
||
| 332 | 348 | } |
| 333 | 349 | } |
| 334 | 350 | |
| 351 | + /** |
|
| 352 | + * @param integer $border |
|
| 353 | + */ |
|
| 335 | 354 | public function resize($thumbw, $thumbh, $border, $specific_size = false) |
| 336 | 355 | { |
| 337 | 356 | if (!$this->image_validated) return false; |
@@ -47,7 +47,7 @@ discard block |
||
| 47 | 47 | if ($height >= $max_size_for_picture) { |
| 48 | 48 | // scale width |
| 49 | 49 | $new_width = round($width * ($max_size_for_picture / $height)); |
| 50 | - $this->image_wrapper->resize($new_width, $max_size_for_picture, 0); |
|
| 50 | + $this->image_wrapper->resize($new_width, $max_size_for_picture, 0); |
|
| 51 | 51 | } |
| 52 | 52 | } |
| 53 | 53 | } |
@@ -149,7 +149,7 @@ discard block |
||
| 149 | 149 | |
| 150 | 150 | public function __construct($path) |
| 151 | 151 | { |
| 152 | - parent::__construct($path); |
|
| 152 | + parent::__construct($path); |
|
| 153 | 153 | } |
| 154 | 154 | |
| 155 | 155 | public function set_image_wrapper() |
@@ -184,19 +184,19 @@ discard block |
||
| 184 | 184 | } |
| 185 | 185 | } |
| 186 | 186 | |
| 187 | - public function get_image_size() |
|
| 187 | + public function get_image_size() |
|
| 188 | 188 | { |
| 189 | - $imagesize = array('width'=>0,'height'=>0); |
|
| 190 | - if ($this->image_validated) { |
|
| 189 | + $imagesize = array('width'=>0,'height'=>0); |
|
| 190 | + if ($this->image_validated) { |
|
| 191 | 191 | $imagesize = $this->image->getImageGeometry(); |
| 192 | - } |
|
| 193 | - return $imagesize; |
|
| 194 | - } |
|
| 192 | + } |
|
| 193 | + return $imagesize; |
|
| 194 | + } |
|
| 195 | 195 | |
| 196 | - //@todo implement border logic case for Imagick |
|
| 197 | - public function resize($thumbw, $thumbh, $border, $specific_size = false) |
|
| 196 | + //@todo implement border logic case for Imagick |
|
| 197 | + public function resize($thumbw, $thumbh, $border, $specific_size = false) |
|
| 198 | 198 | { |
| 199 | - if (!$this->image_validated) return false; |
|
| 199 | + if (!$this->image_validated) return false; |
|
| 200 | 200 | |
| 201 | 201 | if ($specific_size) { |
| 202 | 202 | $width = $thumbw; |
@@ -206,10 +206,10 @@ discard block |
||
| 206 | 206 | $width = (int)($this->width * $scale); |
| 207 | 207 | $height = (int)($this->height * $scale); |
| 208 | 208 | } |
| 209 | - $result = $this->image->resizeImage($width, $height, $this->filter, 1); |
|
| 210 | - $this->width = $thumbw; |
|
| 211 | - $this->height = $thumbh; |
|
| 212 | - } |
|
| 209 | + $result = $this->image->resizeImage($width, $height, $this->filter, 1); |
|
| 210 | + $this->width = $thumbw; |
|
| 211 | + $this->height = $thumbh; |
|
| 212 | + } |
|
| 213 | 213 | |
| 214 | 214 | /** |
| 215 | 215 | * @author José Loguercio <[email protected]> |
@@ -224,8 +224,8 @@ discard block |
||
| 224 | 224 | public function crop($x, $y, $width, $height, $src_width, $src_height) { |
| 225 | 225 | if (!$this->image_validated) return false; |
| 226 | 226 | $this->image->cropimage($width, $height, $x, $y); |
| 227 | - $this->width = $width; |
|
| 228 | - $this->height = $height; |
|
| 227 | + $this->width = $width; |
|
| 228 | + $this->height = $height; |
|
| 229 | 229 | } |
| 230 | 230 | |
| 231 | 231 | public function send_image($file = '', $compress = -1, $convert_file_to = null) |
@@ -235,35 +235,35 @@ discard block |
||
| 235 | 235 | if (!empty($convert_file_to) && in_array($convert_file_to, $this->allowed_extensions)) { |
| 236 | 236 | $type = $convert_file_to; |
| 237 | 237 | } |
| 238 | - switch ($type) { |
|
| 239 | - case 'jpeg': |
|
| 240 | - case 'jpg': |
|
| 241 | - if (!$file) header("Content-type: image/jpeg"); |
|
| 242 | - break; |
|
| 243 | - case 'png': |
|
| 244 | - if (!$file) header("Content-type: image/png"); |
|
| 245 | - break; |
|
| 246 | - case 'gif': |
|
| 247 | - if (!$file) header("Content-type: image/gif"); |
|
| 248 | - break; |
|
| 249 | - } |
|
| 250 | - $result = false; |
|
| 251 | - try { |
|
| 252 | - $result = $this->image->writeImage($file); |
|
| 253 | - } catch(ImagickException $e) { |
|
| 238 | + switch ($type) { |
|
| 239 | + case 'jpeg': |
|
| 240 | + case 'jpg': |
|
| 241 | + if (!$file) header("Content-type: image/jpeg"); |
|
| 242 | + break; |
|
| 243 | + case 'png': |
|
| 244 | + if (!$file) header("Content-type: image/png"); |
|
| 245 | + break; |
|
| 246 | + case 'gif': |
|
| 247 | + if (!$file) header("Content-type: image/gif"); |
|
| 248 | + break; |
|
| 249 | + } |
|
| 250 | + $result = false; |
|
| 251 | + try { |
|
| 252 | + $result = $this->image->writeImage($file); |
|
| 253 | + } catch(ImagickException $e) { |
|
| 254 | 254 | if ($this->debug) error_log($e->getMessage()); |
| 255 | 255 | } |
| 256 | 256 | |
| 257 | - if (!$file) { |
|
| 258 | - echo $this->image; |
|
| 259 | - $this->image->clear(); |
|
| 257 | + if (!$file) { |
|
| 258 | + echo $this->image; |
|
| 259 | + $this->image->clear(); |
|
| 260 | 260 | $this->image->destroy(); |
| 261 | - } else { |
|
| 262 | - $this->image->clear(); |
|
| 261 | + } else { |
|
| 262 | + $this->image->clear(); |
|
| 263 | 263 | $this->image->destroy(); |
| 264 | - return $result; |
|
| 265 | - } |
|
| 266 | - } |
|
| 264 | + return $result; |
|
| 265 | + } |
|
| 266 | + } |
|
| 267 | 267 | |
| 268 | 268 | } |
| 269 | 269 | |
@@ -285,21 +285,21 @@ discard block |
||
| 285 | 285 | $this->fill_image_info(); |
| 286 | 286 | |
| 287 | 287 | switch ($this->type) { |
| 288 | - case 0: |
|
| 289 | - $handler = false; |
|
| 290 | - break; |
|
| 291 | - case 1 : |
|
| 288 | + case 0: |
|
| 289 | + $handler = false; |
|
| 290 | + break; |
|
| 291 | + case 1 : |
|
| 292 | 292 | $handler = @imagecreatefromgif($this->path); |
| 293 | 293 | $this->type = 'gif'; |
| 294 | 294 | break; |
| 295 | - case 2 : |
|
| 295 | + case 2 : |
|
| 296 | 296 | $handler = @imagecreatefromjpeg($this->path); |
| 297 | 297 | $this->type = 'jpg'; |
| 298 | 298 | break; |
| 299 | - case 3 : |
|
| 300 | - $handler = @imagecreatefrompng($this->path); |
|
| 301 | - $this->type = 'png'; |
|
| 302 | - break; |
|
| 299 | + case 3 : |
|
| 300 | + $handler = @imagecreatefrompng($this->path); |
|
| 301 | + $this->type = 'png'; |
|
| 302 | + break; |
|
| 303 | 303 | } |
| 304 | 304 | if ($handler) { |
| 305 | 305 | $this->image_validated = true; |
@@ -313,29 +313,29 @@ discard block |
||
| 313 | 313 | { |
| 314 | 314 | $return_array = array('width'=>0,'height'=>0); |
| 315 | 315 | if ($this->image_validated) { |
| 316 | - $return_array = array('width'=>$this->width,'height'=>$this->height); |
|
| 316 | + $return_array = array('width'=>$this->width,'height'=>$this->height); |
|
| 317 | 317 | } |
| 318 | 318 | return $return_array; |
| 319 | - } |
|
| 319 | + } |
|
| 320 | 320 | |
| 321 | 321 | public function fill_image_info() |
| 322 | 322 | { |
| 323 | - if (file_exists($this->path)) { |
|
| 324 | - $image_info = getimagesize($this->path); |
|
| 325 | - $this->width = $image_info[0]; |
|
| 326 | - $this->height = $image_info[1]; |
|
| 327 | - $this->type = $image_info[2]; |
|
| 328 | - } else { |
|
| 329 | - $this->width = 0; |
|
| 330 | - $this->height = 0; |
|
| 331 | - $this->type = 0; |
|
| 332 | - } |
|
| 323 | + if (file_exists($this->path)) { |
|
| 324 | + $image_info = getimagesize($this->path); |
|
| 325 | + $this->width = $image_info[0]; |
|
| 326 | + $this->height = $image_info[1]; |
|
| 327 | + $this->type = $image_info[2]; |
|
| 328 | + } else { |
|
| 329 | + $this->width = 0; |
|
| 330 | + $this->height = 0; |
|
| 331 | + $this->type = 0; |
|
| 332 | + } |
|
| 333 | 333 | } |
| 334 | 334 | |
| 335 | 335 | public function resize($thumbw, $thumbh, $border, $specific_size = false) |
| 336 | 336 | { |
| 337 | 337 | if (!$this->image_validated) return false; |
| 338 | - if ($border == 1) { |
|
| 338 | + if ($border == 1) { |
|
| 339 | 339 | if ($specific_size) { |
| 340 | 340 | $width = $thumbw; |
| 341 | 341 | $height = $thumbh; |
@@ -344,17 +344,17 @@ discard block |
||
| 344 | 344 | $width = (int)($this->width * $scale); |
| 345 | 345 | $height = (int)($this->height * $scale); |
| 346 | 346 | } |
| 347 | - $deltaw = (int)(($thumbw - $width) / 2); |
|
| 348 | - $deltah = (int)(($thumbh - $height) / 2); |
|
| 349 | - $dst_img = @ImageCreateTrueColor($thumbw, $thumbh); |
|
| 350 | - @imagealphablending($dst_img, false); |
|
| 351 | - @imagesavealpha($dst_img, true); |
|
| 352 | - if (!empty($this->color)) { |
|
| 353 | - @imagefill($dst_img, 0, 0, $this->color); |
|
| 354 | - } |
|
| 355 | - $this->width = $thumbw; |
|
| 356 | - $this->height = $thumbh; |
|
| 357 | - } elseif ($border == 0) { |
|
| 347 | + $deltaw = (int)(($thumbw - $width) / 2); |
|
| 348 | + $deltah = (int)(($thumbh - $height) / 2); |
|
| 349 | + $dst_img = @ImageCreateTrueColor($thumbw, $thumbh); |
|
| 350 | + @imagealphablending($dst_img, false); |
|
| 351 | + @imagesavealpha($dst_img, true); |
|
| 352 | + if (!empty($this->color)) { |
|
| 353 | + @imagefill($dst_img, 0, 0, $this->color); |
|
| 354 | + } |
|
| 355 | + $this->width = $thumbw; |
|
| 356 | + $this->height = $thumbh; |
|
| 357 | + } elseif ($border == 0) { |
|
| 358 | 358 | if ($specific_size) { |
| 359 | 359 | $width = $thumbw; |
| 360 | 360 | $height = $thumbh; |
@@ -363,19 +363,19 @@ discard block |
||
| 363 | 363 | $width = (int)($this->width * $scale); |
| 364 | 364 | $height = (int)($this->height * $scale); |
| 365 | 365 | } |
| 366 | - $deltaw = 0; |
|
| 367 | - $deltah = 0; |
|
| 368 | - $dst_img = @ImageCreateTrueColor($width, $height); |
|
| 369 | - @imagealphablending($dst_img, false); |
|
| 370 | - @imagesavealpha($dst_img, true); |
|
| 371 | - $this->width = $width; |
|
| 372 | - $this->height = $height; |
|
| 373 | - } |
|
| 374 | - $src_img = $this->bg; |
|
| 375 | - @ImageCopyResampled($dst_img, $src_img, $deltaw, $deltah, 0, 0, $width, $height, ImageSX($src_img), ImageSY($src_img)); |
|
| 376 | - $this->bg = $dst_img; |
|
| 377 | - @imagedestroy($src_img); |
|
| 378 | - } |
|
| 366 | + $deltaw = 0; |
|
| 367 | + $deltah = 0; |
|
| 368 | + $dst_img = @ImageCreateTrueColor($width, $height); |
|
| 369 | + @imagealphablending($dst_img, false); |
|
| 370 | + @imagesavealpha($dst_img, true); |
|
| 371 | + $this->width = $width; |
|
| 372 | + $this->height = $height; |
|
| 373 | + } |
|
| 374 | + $src_img = $this->bg; |
|
| 375 | + @ImageCopyResampled($dst_img, $src_img, $deltaw, $deltah, 0, 0, $width, $height, ImageSX($src_img), ImageSY($src_img)); |
|
| 376 | + $this->bg = $dst_img; |
|
| 377 | + @imagedestroy($src_img); |
|
| 378 | + } |
|
| 379 | 379 | |
| 380 | 380 | /** |
| 381 | 381 | * @author José Loguercio <[email protected]> |
@@ -389,7 +389,7 @@ discard block |
||
| 389 | 389 | public function crop($x, $y, $width, $height, $src_width, $src_height) { |
| 390 | 390 | if (!$this->image_validated) return false; |
| 391 | 391 | $this->width = $width; |
| 392 | - $this->height = $height; |
|
| 392 | + $this->height = $height; |
|
| 393 | 393 | $src = null; |
| 394 | 394 | $dest = @imagecreatetruecolor($width, $height); |
| 395 | 395 | $type = $this->type; |
@@ -400,56 +400,56 @@ discard block |
||
| 400 | 400 | @imagecopy($dest, $src, 0, 0, $x, $y, $src_width, $src_height); |
| 401 | 401 | @imagejpeg($dest, $this->path); |
| 402 | 402 | break; |
| 403 | - case 'png' : |
|
| 403 | + case 'png' : |
|
| 404 | 404 | $src = @imagecreatefrompng($this->path); |
| 405 | 405 | @imagecopy($dest, $src, 0, 0, $x, $y, $src_width, $src_height); |
| 406 | 406 | @imagepng($dest, $this->path); |
| 407 | 407 | break; |
| 408 | - case 'gif' : |
|
| 409 | - $src = @imagecreatefromgif($this->path); |
|
| 408 | + case 'gif' : |
|
| 409 | + $src = @imagecreatefromgif($this->path); |
|
| 410 | 410 | @imagecopy($dest, $src, 0, 0, $x, $y, $src_width, $src_height); |
| 411 | 411 | @imagegif($dest, $this->path); |
| 412 | - break; |
|
| 412 | + break; |
|
| 413 | 413 | default: return 0; |
| 414 | 414 | } |
| 415 | 415 | @imagedestroy($dest); |
| 416 | 416 | @imagedestroy($src); |
| 417 | 417 | } |
| 418 | 418 | |
| 419 | - public function send_image($file = '', $compress = -1, $convert_file_to = null) |
|
| 419 | + public function send_image($file = '', $compress = -1, $convert_file_to = null) |
|
| 420 | 420 | { |
| 421 | - if (!$this->image_validated) return false; |
|
| 421 | + if (!$this->image_validated) return false; |
|
| 422 | 422 | $compress = (int)$compress; |
| 423 | 423 | $type = $this->type; |
| 424 | 424 | if (!empty($convert_file_to) && in_array($convert_file_to, $this->allowed_extensions)) { |
| 425 | 425 | $type = $convert_file_to; |
| 426 | 426 | } |
| 427 | - switch ($type) { |
|
| 428 | - case 'jpeg': |
|
| 429 | - case 'jpg': |
|
| 430 | - if (!$file) header("Content-type: image/jpeg"); |
|
| 431 | - if ($compress == -1) $compress = 100; |
|
| 432 | - return imagejpeg($this->bg, $file, $compress); |
|
| 433 | - break; |
|
| 434 | - case 'png': |
|
| 435 | - if (!$file) header("Content-type: image/png"); |
|
| 436 | - if ($compress != -1) { |
|
| 437 | - @imagetruecolortopalette($this->bg, true, $compress); |
|
| 438 | - } |
|
| 439 | - return imagepng($this->bg, $file, $compress); |
|
| 440 | - break; |
|
| 441 | - case 'gif': |
|
| 442 | - if (!$file) header("Content-type: image/gif"); |
|
| 443 | - if ($compress != -1) { |
|
| 444 | - @imagetruecolortopalette($this->bg, true, $compress); |
|
| 445 | - } |
|
| 446 | - return imagegif($this->bg, $file, $compress); |
|
| 447 | - break; |
|
| 448 | - default: return 0; |
|
| 449 | - } |
|
| 450 | - // TODO: Occupied memory is not released, because the following fragment of code is actually dead. |
|
| 451 | - @imagedestroy($this->bg); |
|
| 452 | - } |
|
| 427 | + switch ($type) { |
|
| 428 | + case 'jpeg': |
|
| 429 | + case 'jpg': |
|
| 430 | + if (!$file) header("Content-type: image/jpeg"); |
|
| 431 | + if ($compress == -1) $compress = 100; |
|
| 432 | + return imagejpeg($this->bg, $file, $compress); |
|
| 433 | + break; |
|
| 434 | + case 'png': |
|
| 435 | + if (!$file) header("Content-type: image/png"); |
|
| 436 | + if ($compress != -1) { |
|
| 437 | + @imagetruecolortopalette($this->bg, true, $compress); |
|
| 438 | + } |
|
| 439 | + return imagepng($this->bg, $file, $compress); |
|
| 440 | + break; |
|
| 441 | + case 'gif': |
|
| 442 | + if (!$file) header("Content-type: image/gif"); |
|
| 443 | + if ($compress != -1) { |
|
| 444 | + @imagetruecolortopalette($this->bg, true, $compress); |
|
| 445 | + } |
|
| 446 | + return imagegif($this->bg, $file, $compress); |
|
| 447 | + break; |
|
| 448 | + default: return 0; |
|
| 449 | + } |
|
| 450 | + // TODO: Occupied memory is not released, because the following fragment of code is actually dead. |
|
| 451 | + @imagedestroy($this->bg); |
|
| 452 | + } |
|
| 453 | 453 | |
| 454 | 454 | /** |
| 455 | 455 | * Convert image to black & white |
@@ -115,7 +115,7 @@ discard block |
||
| 115 | 115 | return false; |
| 116 | 116 | } |
| 117 | 117 | $this->path = preg_match(VALID_WEB_PATH, $path) ? (api_is_internal_path($path) ? api_get_path(TO_SYS, $path) : $path) : $path; |
| 118 | - $this->set_image_wrapper(); //Creates image obj |
|
| 118 | + $this->set_image_wrapper(); //Creates image obj |
|
| 119 | 119 | } |
| 120 | 120 | |
| 121 | 121 | abstract function set_image_wrapper(); |
@@ -157,7 +157,7 @@ discard block |
||
| 157 | 157 | if ($this->debug) error_log('Image::set_image_wrapper loaded'); |
| 158 | 158 | try { |
| 159 | 159 | if (file_exists($this->path)) { |
| 160 | - $this->image = new Imagick($this->path); |
|
| 160 | + $this->image = new Imagick($this->path); |
|
| 161 | 161 | |
| 162 | 162 | if ($this->image) { |
| 163 | 163 | $this->fill_image_info(); //Fills height, width and type |
@@ -165,7 +165,7 @@ discard block |
||
| 165 | 165 | } else { |
| 166 | 166 | if ($this->debug) error_log('Image::image does not exist'); |
| 167 | 167 | } |
| 168 | - } catch(ImagickException $e) { |
|
| 168 | + } catch (ImagickException $e) { |
|
| 169 | 169 | if ($this->debug) error_log($e->getMessage()); |
| 170 | 170 | } |
| 171 | 171 | } |
@@ -186,7 +186,7 @@ discard block |
||
| 186 | 186 | |
| 187 | 187 | public function get_image_size() |
| 188 | 188 | { |
| 189 | - $imagesize = array('width'=>0,'height'=>0); |
|
| 189 | + $imagesize = array('width'=>0, 'height'=>0); |
|
| 190 | 190 | if ($this->image_validated) { |
| 191 | 191 | $imagesize = $this->image->getImageGeometry(); |
| 192 | 192 | } |
@@ -203,8 +203,8 @@ discard block |
||
| 203 | 203 | $height = $thumbh; |
| 204 | 204 | } else { |
| 205 | 205 | $scale = ($this->width > 0 && $this->height > 0) ? min($thumbw / $this->width, $thumbh / $this->height) : 0; |
| 206 | - $width = (int)($this->width * $scale); |
|
| 207 | - $height = (int)($this->height * $scale); |
|
| 206 | + $width = (int) ($this->width * $scale); |
|
| 207 | + $height = (int) ($this->height * $scale); |
|
| 208 | 208 | } |
| 209 | 209 | $result = $this->image->resizeImage($width, $height, $this->filter, 1); |
| 210 | 210 | $this->width = $thumbw; |
@@ -250,7 +250,7 @@ discard block |
||
| 250 | 250 | $result = false; |
| 251 | 251 | try { |
| 252 | 252 | $result = $this->image->writeImage($file); |
| 253 | - } catch(ImagickException $e) { |
|
| 253 | + } catch (ImagickException $e) { |
|
| 254 | 254 | if ($this->debug) error_log($e->getMessage()); |
| 255 | 255 | } |
| 256 | 256 | |
@@ -311,9 +311,9 @@ discard block |
||
| 311 | 311 | |
| 312 | 312 | public function get_image_size() |
| 313 | 313 | { |
| 314 | - $return_array = array('width'=>0,'height'=>0); |
|
| 314 | + $return_array = array('width'=>0, 'height'=>0); |
|
| 315 | 315 | if ($this->image_validated) { |
| 316 | - $return_array = array('width'=>$this->width,'height'=>$this->height); |
|
| 316 | + $return_array = array('width'=>$this->width, 'height'=>$this->height); |
|
| 317 | 317 | } |
| 318 | 318 | return $return_array; |
| 319 | 319 | } |
@@ -321,7 +321,7 @@ discard block |
||
| 321 | 321 | public function fill_image_info() |
| 322 | 322 | { |
| 323 | 323 | if (file_exists($this->path)) { |
| 324 | - $image_info = getimagesize($this->path); |
|
| 324 | + $image_info = getimagesize($this->path); |
|
| 325 | 325 | $this->width = $image_info[0]; |
| 326 | 326 | $this->height = $image_info[1]; |
| 327 | 327 | $this->type = $image_info[2]; |
@@ -341,11 +341,11 @@ discard block |
||
| 341 | 341 | $height = $thumbh; |
| 342 | 342 | } else { |
| 343 | 343 | $scale = min($thumbw / $this->width, $thumbh / $this->height); |
| 344 | - $width = (int)($this->width * $scale); |
|
| 345 | - $height = (int)($this->height * $scale); |
|
| 344 | + $width = (int) ($this->width * $scale); |
|
| 345 | + $height = (int) ($this->height * $scale); |
|
| 346 | 346 | } |
| 347 | - $deltaw = (int)(($thumbw - $width) / 2); |
|
| 348 | - $deltah = (int)(($thumbh - $height) / 2); |
|
| 347 | + $deltaw = (int) (($thumbw - $width) / 2); |
|
| 348 | + $deltah = (int) (($thumbh - $height) / 2); |
|
| 349 | 349 | $dst_img = @ImageCreateTrueColor($thumbw, $thumbh); |
| 350 | 350 | @imagealphablending($dst_img, false); |
| 351 | 351 | @imagesavealpha($dst_img, true); |
@@ -360,8 +360,8 @@ discard block |
||
| 360 | 360 | $height = $thumbh; |
| 361 | 361 | } else { |
| 362 | 362 | $scale = ($this->width > 0 && $this->height > 0) ? min($thumbw / $this->width, $thumbh / $this->height) : 0; |
| 363 | - $width = (int)($this->width * $scale); |
|
| 364 | - $height = (int)($this->height * $scale); |
|
| 363 | + $width = (int) ($this->width * $scale); |
|
| 364 | + $height = (int) ($this->height * $scale); |
|
| 365 | 365 | } |
| 366 | 366 | $deltaw = 0; |
| 367 | 367 | $deltah = 0; |
@@ -419,7 +419,7 @@ discard block |
||
| 419 | 419 | public function send_image($file = '', $compress = -1, $convert_file_to = null) |
| 420 | 420 | { |
| 421 | 421 | if (!$this->image_validated) return false; |
| 422 | - $compress = (int)$compress; |
|
| 422 | + $compress = (int) $compress; |
|
| 423 | 423 | $type = $this->type; |
| 424 | 424 | if (!empty($convert_file_to) && in_array($convert_file_to, $this->allowed_extensions)) { |
| 425 | 425 | $type = $convert_file_to; |
@@ -463,11 +463,11 @@ discard block |
||
| 463 | 463 | * so that we can use black (0,0,0) as transparent, which is what |
| 464 | 464 | * the image is filled with when created. |
| 465 | 465 | */ |
| 466 | - $transparent = imagecolorallocate($dest_img, 0,0,0); |
|
| 466 | + $transparent = imagecolorallocate($dest_img, 0, 0, 0); |
|
| 467 | 467 | imagealphablending($dest_img, false); |
| 468 | 468 | imagesavealpha($dest_img, true); |
| 469 | 469 | imagecolortransparent($dest_img, $transparent); |
| 470 | - imagecopy($dest_img, $this->bg, 0,0, 0, 0,imagesx($this->bg), imagesx($this->bg)); |
|
| 470 | + imagecopy($dest_img, $this->bg, 0, 0, 0, 0, imagesx($this->bg), imagesx($this->bg)); |
|
| 471 | 471 | imagefilter($dest_img, IMG_FILTER_GRAYSCALE); |
| 472 | 472 | $this->bg = $dest_img; |
| 473 | 473 | |
@@ -154,7 +154,9 @@ discard block |
||
| 154 | 154 | |
| 155 | 155 | public function set_image_wrapper() |
| 156 | 156 | { |
| 157 | - if ($this->debug) error_log('Image::set_image_wrapper loaded'); |
|
| 157 | + if ($this->debug) { |
|
| 158 | + error_log('Image::set_image_wrapper loaded'); |
|
| 159 | + } |
|
| 158 | 160 | try { |
| 159 | 161 | if (file_exists($this->path)) { |
| 160 | 162 | $this->image = new Imagick($this->path); |
@@ -163,10 +165,14 @@ discard block |
||
| 163 | 165 | $this->fill_image_info(); //Fills height, width and type |
| 164 | 166 | } |
| 165 | 167 | } else { |
| 166 | - if ($this->debug) error_log('Image::image does not exist'); |
|
| 168 | + if ($this->debug) { |
|
| 169 | + error_log('Image::image does not exist'); |
|
| 170 | + } |
|
| 167 | 171 | } |
| 168 | 172 | } catch(ImagickException $e) { |
| 169 | - if ($this->debug) error_log($e->getMessage()); |
|
| 173 | + if ($this->debug) { |
|
| 174 | + error_log($e->getMessage()); |
|
| 175 | + } |
|
| 170 | 176 | } |
| 171 | 177 | } |
| 172 | 178 | |
@@ -180,7 +186,9 @@ discard block |
||
| 180 | 186 | |
| 181 | 187 | if (in_array($this->type, $this->allowed_extensions)) { |
| 182 | 188 | $this->image_validated = true; |
| 183 | - if ($this->debug) error_log('image_validated true'); |
|
| 189 | + if ($this->debug) { |
|
| 190 | + error_log('image_validated true'); |
|
| 191 | + } |
|
| 184 | 192 | } |
| 185 | 193 | } |
| 186 | 194 | |
@@ -196,7 +204,9 @@ discard block |
||
| 196 | 204 | //@todo implement border logic case for Imagick |
| 197 | 205 | public function resize($thumbw, $thumbh, $border, $specific_size = false) |
| 198 | 206 | { |
| 199 | - if (!$this->image_validated) return false; |
|
| 207 | + if (!$this->image_validated) { |
|
| 208 | + return false; |
|
| 209 | + } |
|
| 200 | 210 | |
| 201 | 211 | if ($specific_size) { |
| 202 | 212 | $width = $thumbw; |
@@ -222,7 +232,9 @@ discard block |
||
| 222 | 232 | */ |
| 223 | 233 | |
| 224 | 234 | public function crop($x, $y, $width, $height, $src_width, $src_height) { |
| 225 | - if (!$this->image_validated) return false; |
|
| 235 | + if (!$this->image_validated) { |
|
| 236 | + return false; |
|
| 237 | + } |
|
| 226 | 238 | $this->image->cropimage($width, $height, $x, $y); |
| 227 | 239 | $this->width = $width; |
| 228 | 240 | $this->height = $height; |
@@ -230,7 +242,9 @@ discard block |
||
| 230 | 242 | |
| 231 | 243 | public function send_image($file = '', $compress = -1, $convert_file_to = null) |
| 232 | 244 | { |
| 233 | - if (!$this->image_validated) return false; |
|
| 245 | + if (!$this->image_validated) { |
|
| 246 | + return false; |
|
| 247 | + } |
|
| 234 | 248 | $type = $this->type; |
| 235 | 249 | if (!empty($convert_file_to) && in_array($convert_file_to, $this->allowed_extensions)) { |
| 236 | 250 | $type = $convert_file_to; |
@@ -238,20 +252,28 @@ discard block |
||
| 238 | 252 | switch ($type) { |
| 239 | 253 | case 'jpeg': |
| 240 | 254 | case 'jpg': |
| 241 | - if (!$file) header("Content-type: image/jpeg"); |
|
| 255 | + if (!$file) { |
|
| 256 | + header("Content-type: image/jpeg"); |
|
| 257 | + } |
|
| 242 | 258 | break; |
| 243 | 259 | case 'png': |
| 244 | - if (!$file) header("Content-type: image/png"); |
|
| 260 | + if (!$file) { |
|
| 261 | + header("Content-type: image/png"); |
|
| 262 | + } |
|
| 245 | 263 | break; |
| 246 | 264 | case 'gif': |
| 247 | - if (!$file) header("Content-type: image/gif"); |
|
| 265 | + if (!$file) { |
|
| 266 | + header("Content-type: image/gif"); |
|
| 267 | + } |
|
| 248 | 268 | break; |
| 249 | 269 | } |
| 250 | 270 | $result = false; |
| 251 | 271 | try { |
| 252 | 272 | $result = $this->image->writeImage($file); |
| 253 | 273 | } catch(ImagickException $e) { |
| 254 | - if ($this->debug) error_log($e->getMessage()); |
|
| 274 | + if ($this->debug) { |
|
| 275 | + error_log($e->getMessage()); |
|
| 276 | + } |
|
| 255 | 277 | } |
| 256 | 278 | |
| 257 | 279 | if (!$file) { |
@@ -334,7 +356,9 @@ discard block |
||
| 334 | 356 | |
| 335 | 357 | public function resize($thumbw, $thumbh, $border, $specific_size = false) |
| 336 | 358 | { |
| 337 | - if (!$this->image_validated) return false; |
|
| 359 | + if (!$this->image_validated) { |
|
| 360 | + return false; |
|
| 361 | + } |
|
| 338 | 362 | if ($border == 1) { |
| 339 | 363 | if ($specific_size) { |
| 340 | 364 | $width = $thumbw; |
@@ -387,7 +411,9 @@ discard block |
||
| 387 | 411 | * @param int $src_height the source height of the original image |
| 388 | 412 | */ |
| 389 | 413 | public function crop($x, $y, $width, $height, $src_width, $src_height) { |
| 390 | - if (!$this->image_validated) return false; |
|
| 414 | + if (!$this->image_validated) { |
|
| 415 | + return false; |
|
| 416 | + } |
|
| 391 | 417 | $this->width = $width; |
| 392 | 418 | $this->height = $height; |
| 393 | 419 | $src = null; |
@@ -418,7 +444,9 @@ discard block |
||
| 418 | 444 | |
| 419 | 445 | public function send_image($file = '', $compress = -1, $convert_file_to = null) |
| 420 | 446 | { |
| 421 | - if (!$this->image_validated) return false; |
|
| 447 | + if (!$this->image_validated) { |
|
| 448 | + return false; |
|
| 449 | + } |
|
| 422 | 450 | $compress = (int)$compress; |
| 423 | 451 | $type = $this->type; |
| 424 | 452 | if (!empty($convert_file_to) && in_array($convert_file_to, $this->allowed_extensions)) { |
@@ -427,19 +455,27 @@ discard block |
||
| 427 | 455 | switch ($type) { |
| 428 | 456 | case 'jpeg': |
| 429 | 457 | case 'jpg': |
| 430 | - if (!$file) header("Content-type: image/jpeg"); |
|
| 431 | - if ($compress == -1) $compress = 100; |
|
| 458 | + if (!$file) { |
|
| 459 | + header("Content-type: image/jpeg"); |
|
| 460 | + } |
|
| 461 | + if ($compress == -1) { |
|
| 462 | + $compress = 100; |
|
| 463 | + } |
|
| 432 | 464 | return imagejpeg($this->bg, $file, $compress); |
| 433 | 465 | break; |
| 434 | 466 | case 'png': |
| 435 | - if (!$file) header("Content-type: image/png"); |
|
| 467 | + if (!$file) { |
|
| 468 | + header("Content-type: image/png"); |
|
| 469 | + } |
|
| 436 | 470 | if ($compress != -1) { |
| 437 | 471 | @imagetruecolortopalette($this->bg, true, $compress); |
| 438 | 472 | } |
| 439 | 473 | return imagepng($this->bg, $file, $compress); |
| 440 | 474 | break; |
| 441 | 475 | case 'gif': |
| 442 | - if (!$file) header("Content-type: image/gif"); |
|
| 476 | + if (!$file) { |
|
| 477 | + header("Content-type: image/gif"); |
|
| 478 | + } |
|
| 443 | 479 | if ($compress != -1) { |
| 444 | 480 | @imagetruecolortopalette($this->bg, true, $compress); |
| 445 | 481 | } |
@@ -456,7 +492,9 @@ discard block |
||
| 456 | 492 | */ |
| 457 | 493 | function convert2bw() |
| 458 | 494 | { |
| 459 | - if (!$this->image_validated) return false; |
|
| 495 | + if (!$this->image_validated) { |
|
| 496 | + return false; |
|
| 497 | + } |
|
| 460 | 498 | |
| 461 | 499 | $dest_img = imagecreatetruecolor(imagesx($this->bg), imagesy($this->bg)); |
| 462 | 500 | /* copy ignore the transparent color |
@@ -435,6 +435,7 @@ discard block |
||
| 435 | 435 | * If null, the timezone will be determined based on user preference, |
| 436 | 436 | * or timezone chosen by the admin for the platform. |
| 437 | 437 | * @param string The timezone to be converted from. If null, UTC will be assumed. |
| 438 | + * @param string $to_timezone |
|
| 438 | 439 | * @return string The converted time formatted as Y-m-d H:i:s |
| 439 | 440 | * |
| 440 | 441 | * @author Guillaume Viguier <[email protected]> |
@@ -483,6 +484,7 @@ discard block |
||
| 483 | 484 | * @param string String to be converted |
| 484 | 485 | * @param string Timezone (if null, the timezone will be determined based |
| 485 | 486 | * on user preference, or timezone chosen by the admin for the platform) |
| 487 | + * @param string $timezone |
|
| 486 | 488 | * @return int Timestamp |
| 487 | 489 | * |
| 488 | 490 | * @author Guillaume Viguier <[email protected]> |
@@ -784,6 +786,7 @@ discard block |
||
| 784 | 786 | * @param mixed The time to be converted |
| 785 | 787 | * @param mixed Format to be used (TIME_NO_SEC_FORMAT, DATE_FORMAT_SHORT, DATE_FORMAT_LONG, DATE_TIME_FORMAT_LONG) |
| 786 | 788 | * @param string Timezone to be converted from. If null, UTC will be assumed. |
| 789 | + * @param string $from_timezone |
|
| 787 | 790 | * @return string Converted and localized date |
| 788 | 791 | * |
| 789 | 792 | * @author Guillaume Viguier <[email protected]> |
@@ -853,7 +856,7 @@ discard block |
||
| 853 | 856 | * @param int/string $format (optional) The person name format. It may be a pattern-string (for example '%t %l, %f' or '%T %F %L', ...) or some of the constants PERSON_NAME_COMMON_CONVENTION (default), PERSON_NAME_WESTERN_ORDER, PERSON_NAME_EASTERN_ORDER, PERSON_NAME_LIBRARY_ORDER. |
| 854 | 857 | * @param string $language (optional) The language id. If it is omitted, the current interface language is assumed. This parameter has meaning with the format PERSON_NAME_COMMON_CONVENTION only. |
| 855 | 858 | * @param string $encoding (optional) The used internally by this function character encoding. If it is omitted, the platform character set will be used by default. |
| 856 | - * @return bool The result is sort of full name of the person. |
|
| 859 | + * @return string The result is sort of full name of the person. |
|
| 857 | 860 | * Sample results: |
| 858 | 861 | * Peter Ustinoff or Dr. Peter Ustinoff - the Western order |
| 859 | 862 | * Ustinoff Peter or Dr. Ustinoff Peter - the Eastern order |
@@ -947,7 +950,7 @@ discard block |
||
| 947 | 950 | |
| 948 | 951 | /** |
| 949 | 952 | * Checks whether a given format represents person name in Western order (for which first name is first). |
| 950 | - * @param int/string $format (optional) The person name format. It may be a pattern-string (for example '%t. %l, %f') or some of the constants PERSON_NAME_COMMON_CONVENTION (default), PERSON_NAME_WESTERN_ORDER, PERSON_NAME_EASTERN_ORDER, PERSON_NAME_LIBRARY_ORDER. |
|
| 953 | + * @param integer $format (optional) The person name format. It may be a pattern-string (for example '%t. %l, %f') or some of the constants PERSON_NAME_COMMON_CONVENTION (default), PERSON_NAME_WESTERN_ORDER, PERSON_NAME_EASTERN_ORDER, PERSON_NAME_LIBRARY_ORDER. |
|
| 951 | 954 | * @param string $language (optional) The language id. If it is omitted, the current interface language is assumed. This parameter has meaning with the format PERSON_NAME_COMMON_CONVENTION only. |
| 952 | 955 | * @return bool The result TRUE means that the order is first_name last_name, FALSE means last_name first_name. |
| 953 | 956 | * Note: You may use this function for determing the order of the fields or columns "First name" and "Last name" in forms, tables and reports. |
@@ -1175,8 +1178,8 @@ discard block |
||
| 1175 | 1178 | |
| 1176 | 1179 | /** |
| 1177 | 1180 | * This function returns a string or an array with all occurrences of search in subject (ignoring case) replaced with the given replace value. |
| 1178 | - * @param mixed $search String or array of strings to be found. |
|
| 1179 | - * @param mixed $replace String or array of strings used for replacement. |
|
| 1181 | + * @param string $search String or array of strings to be found. |
|
| 1182 | + * @param string $replace String or array of strings used for replacement. |
|
| 1180 | 1183 | * @param mixed $subject String or array of strings being searched. |
| 1181 | 1184 | * @param int $count (optional) The number of matched and replaced needles will be returned in count, which is passed by reference. |
| 1182 | 1185 | * @param string $encoding (optional) The used internally by this function character encoding. |
@@ -1239,10 +1242,10 @@ discard block |
||
| 1239 | 1242 | /** |
| 1240 | 1243 | * Finds first occurrence of a string within another, case insensitive. |
| 1241 | 1244 | * @param string $haystack The string from which to get the first occurrence. |
| 1242 | - * @param mixed $needle The string to be found. |
|
| 1245 | + * @param string $needle The string to be found. |
|
| 1243 | 1246 | * @param bool $before_needle (optional) Determines which portion of $haystack this function returns. The default value is FALSE. |
| 1244 | 1247 | * @param string $encoding (optional) The used internally by this function character encoding. If it is omitted, the platform character set will be used by default. |
| 1245 | - * @return mixed Returns the portion of $haystack, or FALSE if $needle is not found. |
|
| 1248 | + * @return false|string Returns the portion of $haystack, or FALSE if $needle is not found. |
|
| 1246 | 1249 | * Notes: |
| 1247 | 1250 | * If $needle is not a string, it is converted to an integer and applied as the ordinal value (codepoint if the encoding is UTF-8) of a character. |
| 1248 | 1251 | * If $before_needle is set to TRUE, the function returns all of $haystack from the beginning to the first occurrence of $needle. |
@@ -1298,7 +1301,7 @@ discard block |
||
| 1298 | 1301 | * @param mixed $needle The string which first character is to be found. |
| 1299 | 1302 | * @param bool $before_needle (optional) Determines which portion of $haystack this function returns. The default value is FALSE. |
| 1300 | 1303 | * @param string $encoding (optional) The used internally by this function character encoding. If it is omitted, the platform character set will be used by default. |
| 1301 | - * @return mixed Returns the portion of $haystack, or FALSE if the first character from $needle is not found. |
|
| 1304 | + * @return false|string Returns the portion of $haystack, or FALSE if the first character from $needle is not found. |
|
| 1302 | 1305 | * Notes: |
| 1303 | 1306 | * If $needle is not a string, it is converted to an integer and applied as the ordinal value (codepoint if the encoding is UTF-8) of a character. |
| 1304 | 1307 | * If $before_needle is set to TRUE, the function returns all of $haystack from the beginning to the first occurrence. |
@@ -1348,7 +1351,7 @@ discard block |
||
| 1348 | 1351 | * @param string $needle The string to be found. |
| 1349 | 1352 | * @param int $offset (optional) $offset may be specified to begin searching an arbitrary position. Negative values will stop searching at an arbitrary point prior to the end of the string. |
| 1350 | 1353 | * @param string $encoding (optional) The used internally by this function character encoding. If it is omitted, the platform character set will be used by default. |
| 1351 | - * @return mixed Returns the numeric position of the first occurrence of $needle in the $haystack, or FALSE if $needle is not found. |
|
| 1354 | + * @return integer|null Returns the numeric position of the first occurrence of $needle in the $haystack, or FALSE if $needle is not found. |
|
| 1352 | 1355 | * Note: The first character's position is 0, the second character position is 1, and so on. |
| 1353 | 1356 | * This function is aimed at replacing the functions strrpos() and mb_strrpos() for human-language strings. |
| 1354 | 1357 | * @link http://php.net/manual/en/function.strrpos |
@@ -1365,7 +1368,7 @@ discard block |
||
| 1365 | 1368 | * @param mixed $needle The string to be found. |
| 1366 | 1369 | * @param bool $before_needle (optional) Determines which portion of $haystack this function returns. The default value is FALSE. |
| 1367 | 1370 | * @param string $encoding (optional) The used internally by this function character encoding. If it is omitted, the platform character set will be used by default. |
| 1368 | - * @return mixed Returns the portion of $haystack, or FALSE if $needle is not found. |
|
| 1371 | + * @return false|string Returns the portion of $haystack, or FALSE if $needle is not found. |
|
| 1369 | 1372 | * Notes: |
| 1370 | 1373 | * If $needle is not a string, it is converted to an integer and applied as the ordinal value (codepoint if the encoding is UTF-8) of a character. |
| 1371 | 1374 | * If $before_needle is set to TRUE, the function returns all of $haystack from the beginning to the first occurrence of $needle. |
@@ -1508,7 +1511,7 @@ discard block |
||
| 1508 | 1511 | * Note that this changes the return value in an array where every element is an array consisting of the matched string at index 0 and its string offset into subject at index 1. |
| 1509 | 1512 | * @param int $offset (optional) Normally, the search starts from the beginning of the subject string. The optional parameter offset can be used to specify the alternate place from which to start the search. |
| 1510 | 1513 | * @param string $encoding (optional) The used internally by this function character encoding. If it is omitted, the platform character set will be used by default. |
| 1511 | - * @return int|boolean Returns the number of times pattern matches or FALSE if an error occurred. |
|
| 1514 | + * @return integer Returns the number of times pattern matches or FALSE if an error occurred. |
|
| 1512 | 1515 | * @link http://php.net/preg_match |
| 1513 | 1516 | */ |
| 1514 | 1517 | function api_preg_match($pattern, $subject, &$matches = null, $flags = 0, $offset = 0, $encoding = null) { |
@@ -1531,7 +1534,7 @@ discard block |
||
| 1531 | 1534 | * If no order flag is given, PREG_PATTERN_ORDER is assumed. |
| 1532 | 1535 | * @param int $offset (optional) Normally, the search starts from the beginning of the subject string. The optional parameter offset can be used to specify the alternate place from which to start the search. |
| 1533 | 1536 | * @param string $encoding (optional) The used internally by this function character encoding. If it is omitted, the platform character set will be used by default. |
| 1534 | - * @return int|boolean Returns the number of full pattern matches (which might be zero), or FALSE if an error occurred. |
|
| 1537 | + * @return integer Returns the number of full pattern matches (which might be zero), or FALSE if an error occurred. |
|
| 1535 | 1538 | * @link http://php.net/preg_match_all |
| 1536 | 1539 | */ |
| 1537 | 1540 | function api_preg_match_all($pattern, $subject, &$matches, $flags = PREG_PATTERN_ORDER, $offset = 0, $encoding = null) { |
@@ -1546,8 +1549,8 @@ discard block |
||
| 1546 | 1549 | |
| 1547 | 1550 | /** |
| 1548 | 1551 | * Performs a regular expression search and replace, UTF-8 aware when it is applicable. |
| 1549 | - * @param string|array $pattern The pattern to search for. It can be either a string or an array with strings. |
|
| 1550 | - * @param string|array $replacement The string or an array with strings to replace. |
|
| 1552 | + * @param string $pattern The pattern to search for. It can be either a string or an array with strings. |
|
| 1553 | + * @param string $replacement The string or an array with strings to replace. |
|
| 1551 | 1554 | * @param string|array $subject The string or an array with strings to search and replace. |
| 1552 | 1555 | * @param int $limit The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit). |
| 1553 | 1556 | * @param int &$count If specified, this variable will be filled with the number of replacements done. |
@@ -1799,6 +1802,7 @@ discard block |
||
| 1799 | 1802 | /** |
| 1800 | 1803 | * Checks a string for UTF-8 validity. |
| 1801 | 1804 | * |
| 1805 | + * @param string $string |
|
| 1802 | 1806 | */ |
| 1803 | 1807 | function api_is_valid_utf8(&$string) |
| 1804 | 1808 | { |
@@ -1941,7 +1945,7 @@ discard block |
||
| 1941 | 1945 | /** |
| 1942 | 1946 | * Replaces non-valid formats for person names with the default (English) format. |
| 1943 | 1947 | * @param string $format The input format to be verified. |
| 1944 | - * @return bool Returns the same format if is is valid, otherwise returns a valid English format. |
|
| 1948 | + * @return string Returns the same format if is is valid, otherwise returns a valid English format. |
|
| 1945 | 1949 | */ |
| 1946 | 1950 | function _api_validate_person_name_format($format) { |
| 1947 | 1951 | if (empty($format) || stripos($format, '%f') === false || stripos($format, '%l') === false) { |
@@ -2068,6 +2072,9 @@ discard block |
||
| 2068 | 2072 | |
| 2069 | 2073 | // This function checks whether the function _api_convert_encoding() (the php- |
| 2070 | 2074 | // implementation) is able to convert from/to a given encoding. |
| 2075 | +/** |
|
| 2076 | + * @param string $encoding |
|
| 2077 | + */ |
|
| 2071 | 2078 | function _api_convert_encoding_supports($encoding) { |
| 2072 | 2079 | static $supports = array(); |
| 2073 | 2080 | if (!isset($supports[$encoding])) { |
@@ -103,13 +103,13 @@ discard block |
||
| 103 | 103 | if (isset($_configuration['language_measure_frequency']) && |
| 104 | 104 | $_configuration['language_measure_frequency'] == 1 |
| 105 | 105 | ) { |
| 106 | - require_once api_get_path(SYS_CODE_PATH).'/cron/lang/langstats.class.php'; |
|
| 107 | - global $langstats; |
|
| 108 | - $langstats->add_use($variable,''); |
|
| 106 | + require_once api_get_path(SYS_CODE_PATH).'/cron/lang/langstats.class.php'; |
|
| 107 | + global $langstats; |
|
| 108 | + $langstats->add_use($variable,''); |
|
| 109 | 109 | } |
| 110 | 110 | |
| 111 | 111 | if (!isset($used_lang_vars)) { |
| 112 | - $used_lang_vars = array(); |
|
| 112 | + $used_lang_vars = array(); |
|
| 113 | 113 | } |
| 114 | 114 | |
| 115 | 115 | // Caching results from some API functions, for speed. |
@@ -305,7 +305,7 @@ discard block |
||
| 305 | 305 | static $text_direction = array(); |
| 306 | 306 | |
| 307 | 307 | if (empty($language)) { |
| 308 | - $language = api_get_interface_language(); |
|
| 308 | + $language = api_get_interface_language(); |
|
| 309 | 309 | } |
| 310 | 310 | if (!isset($text_direction[$language])) { |
| 311 | 311 | $text_direction[$language] = in_array(api_purify_language_id($language), |
@@ -536,24 +536,24 @@ discard block |
||
| 536 | 536 | case DATE_FORMAT_ONLY_DAYNAME: |
| 537 | 537 | $date_format = get_lang('dateFormatOnlyDayName', '', $language); |
| 538 | 538 | if (INTL_INSTALLED) { |
| 539 | - $datetype = IntlDateFormatter::SHORT; |
|
| 540 | - $timetype = IntlDateFormatter::NONE; |
|
| 541 | - } |
|
| 539 | + $datetype = IntlDateFormatter::SHORT; |
|
| 540 | + $timetype = IntlDateFormatter::NONE; |
|
| 541 | + } |
|
| 542 | 542 | break; |
| 543 | 543 | case DATE_FORMAT_NUMBER_NO_YEAR: |
| 544 | 544 | $date_format = get_lang('dateFormatShortNumberNoYear', '', $language); |
| 545 | - if (INTL_INSTALLED) { |
|
| 546 | - $datetype = IntlDateFormatter::SHORT; |
|
| 547 | - $timetype = IntlDateFormatter::NONE; |
|
| 548 | - } |
|
| 545 | + if (INTL_INSTALLED) { |
|
| 546 | + $datetype = IntlDateFormatter::SHORT; |
|
| 547 | + $timetype = IntlDateFormatter::NONE; |
|
| 548 | + } |
|
| 549 | + break; |
|
| 550 | + case DATE_FORMAT_NUMBER: |
|
| 551 | + $date_format = get_lang('dateFormatShortNumber', '', $language); |
|
| 552 | + if (INTL_INSTALLED) { |
|
| 553 | + $datetype = IntlDateFormatter::SHORT; |
|
| 554 | + $timetype = IntlDateFormatter::NONE; |
|
| 555 | + } |
|
| 549 | 556 | break; |
| 550 | - case DATE_FORMAT_NUMBER: |
|
| 551 | - $date_format = get_lang('dateFormatShortNumber', '', $language); |
|
| 552 | - if (INTL_INSTALLED) { |
|
| 553 | - $datetype = IntlDateFormatter::SHORT; |
|
| 554 | - $timetype = IntlDateFormatter::NONE; |
|
| 555 | - } |
|
| 556 | - break; |
|
| 557 | 557 | case TIME_NO_SEC_FORMAT: |
| 558 | 558 | $date_format = get_lang('timeNoSecFormat', '', $language); |
| 559 | 559 | if (INTL_INSTALLED) { |
@@ -589,14 +589,14 @@ discard block |
||
| 589 | 589 | $timetype = IntlDateFormatter::SHORT; |
| 590 | 590 | } |
| 591 | 591 | break; |
| 592 | - case DATE_TIME_FORMAT_SHORT: |
|
| 592 | + case DATE_TIME_FORMAT_SHORT: |
|
| 593 | 593 | $date_format = get_lang('dateTimeFormatShort', '', $language); |
| 594 | 594 | if (INTL_INSTALLED) { |
| 595 | 595 | $datetype = IntlDateFormatter::FULL; |
| 596 | 596 | $timetype = IntlDateFormatter::SHORT; |
| 597 | 597 | } |
| 598 | 598 | break; |
| 599 | - case DATE_TIME_FORMAT_SHORT_TIME_FIRST: |
|
| 599 | + case DATE_TIME_FORMAT_SHORT_TIME_FIRST: |
|
| 600 | 600 | $date_format = get_lang('dateTimeFormatShortTimeFirst', '', $language); |
| 601 | 601 | if (INTL_INSTALLED) { |
| 602 | 602 | $datetype = IntlDateFormatter::FULL; |
@@ -1817,7 +1817,6 @@ discard block |
||
| 1817 | 1817 | |
| 1818 | 1818 | /** |
| 1819 | 1819 | * Return true a date is valid |
| 1820 | - |
|
| 1821 | 1820 | * @param string $date example: 2014-06-30 13:05:05 |
| 1822 | 1821 | * @param string $format example: "Y-m-d H:i:s" |
| 1823 | 1822 | * |
@@ -105,7 +105,7 @@ discard block |
||
| 105 | 105 | ) { |
| 106 | 106 | require_once api_get_path(SYS_CODE_PATH).'/cron/lang/langstats.class.php'; |
| 107 | 107 | global $langstats; |
| 108 | - $langstats->add_use($variable,''); |
|
| 108 | + $langstats->add_use($variable, ''); |
|
| 109 | 109 | } |
| 110 | 110 | |
| 111 | 111 | if (!isset($used_lang_vars)) { |
@@ -371,7 +371,7 @@ discard block |
||
| 371 | 371 | if ($use_users_timezone == 'true') { |
| 372 | 372 | $userId = api_get_user_id(); |
| 373 | 373 | // Get the timezone based on user preference, if it exists |
| 374 | - $timezone_user = UserManager::get_extra_user_data_by_field($userId,'timezone'); |
|
| 374 | + $timezone_user = UserManager::get_extra_user_data_by_field($userId, 'timezone'); |
|
| 375 | 375 | if (isset($timezone_user['timezone']) && $timezone_user['timezone'] != null) { |
| 376 | 376 | $to_timezone = $timezone_user['timezone']; |
| 377 | 377 | } |
@@ -636,10 +636,10 @@ discard block |
||
| 636 | 636 | // We replace %a %A %b %B masks of date format with translated strings |
| 637 | 637 | $translated = &_api_get_day_month_names($language); |
| 638 | 638 | $date_format = str_replace(array('%A', '%a', '%B', '%b'), |
| 639 | - array($translated['days_long'][(int)strftime('%w', $time )], |
|
| 640 | - $translated['days_short'][(int)strftime('%w', $time)], |
|
| 641 | - $translated['months_long'][(int)strftime('%m', $time) - 1], |
|
| 642 | - $translated['months_short'][(int)strftime('%m', $time) - 1]), |
|
| 639 | + array($translated['days_long'][(int) strftime('%w', $time)], |
|
| 640 | + $translated['days_short'][(int) strftime('%w', $time)], |
|
| 641 | + $translated['months_long'][(int) strftime('%m', $time) - 1], |
|
| 642 | + $translated['months_short'][(int) strftime('%m', $time) - 1]), |
|
| 643 | 643 | $date_format); |
| 644 | 644 | $formatted_date = api_to_system_encoding(strftime($date_format, $time), 'UTF-8'); |
| 645 | 645 | } |
@@ -737,7 +737,7 @@ discard block |
||
| 737 | 737 | if ($seconds > $time) { |
| 738 | 738 | continue; |
| 739 | 739 | } |
| 740 | - $current_value = intval($time/$seconds); |
|
| 740 | + $current_value = intval($time / $seconds); |
|
| 741 | 741 | |
| 742 | 742 | if ($current_value != 1) { |
| 743 | 743 | $date_str = $sec_time_plu[$i]; |
@@ -754,7 +754,7 @@ discard block |
||
| 754 | 754 | } |
| 755 | 755 | |
| 756 | 756 | if (!empty($key_result)) { |
| 757 | - if ($key_result[0] == $min_day && $key_result[1]== $min_minute) { |
|
| 757 | + if ($key_result[0] == $min_day && $key_result[1] == $min_minute) { |
|
| 758 | 758 | $key_result[1] = ' 0 '.$min_hours; |
| 759 | 759 | $str_result[0] = $time_result[0].' '.$key_result[0]; |
| 760 | 760 | $str_result[1] = $key_result[1]; |
@@ -1687,7 +1687,7 @@ discard block |
||
| 1687 | 1687 | * @return string Returns the encoding identificator modified in suitable for comparison way. |
| 1688 | 1688 | */ |
| 1689 | 1689 | function api_refine_encoding_id($encoding) { |
| 1690 | - if (is_array($encoding)){ |
|
| 1690 | + if (is_array($encoding)) { |
|
| 1691 | 1691 | return array_map('api_refine_encoding_id', $encoding); |
| 1692 | 1692 | } |
| 1693 | 1693 | return strtoupper(str_replace('_', '-', $encoding)); |
@@ -1710,8 +1710,7 @@ |
||
| 1710 | 1710 | } |
| 1711 | 1711 | } |
| 1712 | 1712 | return false; |
| 1713 | - } |
|
| 1714 | - elseif (is_array($encoding2)) { |
|
| 1713 | + } elseif (is_array($encoding2)) { |
|
| 1715 | 1714 | foreach ($encoding2 as $encoding) { |
| 1716 | 1715 | if (api_equal_encodings($encoding1, $encoding, $strict)) { |
| 1717 | 1716 | return true; |
@@ -408,6 +408,9 @@ discard block |
||
| 408 | 408 | } # function kses_no_null |
| 409 | 409 | |
| 410 | 410 | |
| 411 | +/** |
|
| 412 | + * @return string |
|
| 413 | + */ |
|
| 411 | 414 | function kses_stripslashes($string) |
| 412 | 415 | ############################################################################### |
| 413 | 416 | # This function changes the character sequence \" to just " |
@@ -442,6 +445,9 @@ discard block |
||
| 442 | 445 | } # function kses_array_lc |
| 443 | 446 | |
| 444 | 447 | |
| 448 | +/** |
|
| 449 | + * @return string |
|
| 450 | + */ |
|
| 445 | 451 | function kses_js_entities($string) |
| 446 | 452 | ############################################################################### |
| 447 | 453 | # This function removes the HTML JavaScript entities found in early versions of |
@@ -506,6 +512,9 @@ discard block |
||
| 506 | 512 | } # function kses_bad_protocol_once2 |
| 507 | 513 | |
| 508 | 514 | |
| 515 | +/** |
|
| 516 | + * @return string |
|
| 517 | + */ |
|
| 509 | 518 | function kses_normalize_entities($string) |
| 510 | 519 | ############################################################################### |
| 511 | 520 | # This function normalizes HTML entities. It will convert "AT&T" to the correct |
@@ -31,8 +31,8 @@ discard block |
||
| 31 | 31 | |
| 32 | 32 | |
| 33 | 33 | function kses($string, $allowed_html, $allowed_protocols = |
| 34 | - array('http', 'https', 'ftp', 'news', 'nntp', 'telnet', |
|
| 35 | - 'gopher', 'mailto')) |
|
| 34 | + array('http', 'https', 'ftp', 'news', 'nntp', 'telnet', |
|
| 35 | + 'gopher', 'mailto')) |
|
| 36 | 36 | ############################################################################### |
| 37 | 37 | # This function makes sure that only the allowed HTML element names, attribute |
| 38 | 38 | # names and attribute values plus only sane HTML entities will occur in |
@@ -40,12 +40,12 @@ discard block |
||
| 40 | 40 | # call this function. |
| 41 | 41 | ############################################################################### |
| 42 | 42 | { |
| 43 | - $string = kses_no_null($string); |
|
| 44 | - $string = kses_js_entities($string); |
|
| 45 | - $string = kses_normalize_entities($string); |
|
| 46 | - $string = kses_hook($string); |
|
| 47 | - $allowed_html_fixed = kses_array_lc($allowed_html); |
|
| 48 | - return kses_split($string, $allowed_html_fixed, $allowed_protocols); |
|
| 43 | + $string = kses_no_null($string); |
|
| 44 | + $string = kses_js_entities($string); |
|
| 45 | + $string = kses_normalize_entities($string); |
|
| 46 | + $string = kses_hook($string); |
|
| 47 | + $allowed_html_fixed = kses_array_lc($allowed_html); |
|
| 48 | + return kses_split($string, $allowed_html_fixed, $allowed_protocols); |
|
| 49 | 49 | } # function kses |
| 50 | 50 | |
| 51 | 51 | |
@@ -54,7 +54,7 @@ discard block |
||
| 54 | 54 | # You add any kses hooks here. |
| 55 | 55 | ############################################################################### |
| 56 | 56 | { |
| 57 | - return $string; |
|
| 57 | + return $string; |
|
| 58 | 58 | } # function kses_hook |
| 59 | 59 | |
| 60 | 60 | |
@@ -63,7 +63,7 @@ discard block |
||
| 63 | 63 | # This function returns kses' version number. |
| 64 | 64 | ############################################################################### |
| 65 | 65 | { |
| 66 | - return '0.2.2'; |
|
| 66 | + return '0.2.2'; |
|
| 67 | 67 | } # function kses_version |
| 68 | 68 | |
| 69 | 69 | |
@@ -73,13 +73,13 @@ discard block |
||
| 73 | 73 | # matches stray ">" characters. |
| 74 | 74 | ############################################################################### |
| 75 | 75 | { |
| 76 | - return preg_replace('%(<'. # EITHER: < |
|
| 77 | - '[^>]*'. # things that aren't > |
|
| 78 | - '(>|$)'. # > or end of string |
|
| 79 | - '|>)%e', # OR: just a > |
|
| 80 | - "kses_split2('\\1', \$allowed_html, ". |
|
| 81 | - '$allowed_protocols)', |
|
| 82 | - $string); |
|
| 76 | + return preg_replace('%(<'. # EITHER: < |
|
| 77 | + '[^>]*'. # things that aren't > |
|
| 78 | + '(>|$)'. # > or end of string |
|
| 79 | + '|>)%e', # OR: just a > |
|
| 80 | + "kses_split2('\\1', \$allowed_html, ". |
|
| 81 | + '$allowed_protocols)', |
|
| 82 | + $string); |
|
| 83 | 83 | } # function kses_split |
| 84 | 84 | |
| 85 | 85 | |
@@ -91,30 +91,30 @@ discard block |
||
| 91 | 91 | # attribute list. |
| 92 | 92 | ############################################################################### |
| 93 | 93 | { |
| 94 | - $string = kses_stripslashes($string); |
|
| 94 | + $string = kses_stripslashes($string); |
|
| 95 | 95 | |
| 96 | - if (substr($string, 0, 1) != '<') |
|
| 96 | + if (substr($string, 0, 1) != '<') |
|
| 97 | 97 | return '>'; |
| 98 | 98 | # It matched a ">" character |
| 99 | 99 | |
| 100 | - if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9]+)([^>]*)>?$%', $string, $matches)) |
|
| 100 | + if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9]+)([^>]*)>?$%', $string, $matches)) |
|
| 101 | 101 | return ''; |
| 102 | 102 | # It's seriously malformed |
| 103 | 103 | |
| 104 | - $slash = trim($matches[1]); |
|
| 105 | - $elem = $matches[2]; |
|
| 106 | - $attrlist = $matches[3]; |
|
| 104 | + $slash = trim($matches[1]); |
|
| 105 | + $elem = $matches[2]; |
|
| 106 | + $attrlist = $matches[3]; |
|
| 107 | 107 | |
| 108 | - if (!@isset($allowed_html[strtolower($elem)])) |
|
| 108 | + if (!@isset($allowed_html[strtolower($elem)])) |
|
| 109 | 109 | return ''; |
| 110 | 110 | # They are using a not allowed HTML element |
| 111 | 111 | |
| 112 | - if ($slash != '') |
|
| 112 | + if ($slash != '') |
|
| 113 | 113 | return "<$slash$elem>"; |
| 114 | - # No attributes are allowed for closing elements |
|
| 114 | + # No attributes are allowed for closing elements |
|
| 115 | 115 | |
| 116 | - return kses_attr("$slash$elem", $attrlist, $allowed_html, |
|
| 117 | - $allowed_protocols); |
|
| 116 | + return kses_attr("$slash$elem", $attrlist, $allowed_html, |
|
| 117 | + $allowed_protocols); |
|
| 118 | 118 | } # function kses_split2 |
| 119 | 119 | |
| 120 | 120 | |
@@ -130,56 +130,56 @@ discard block |
||
| 130 | 130 | { |
| 131 | 131 | # Is there a closing XHTML slash at the end of the attributes? |
| 132 | 132 | |
| 133 | - $xhtml_slash = ''; |
|
| 134 | - if (preg_match('%\s/\s*$%', $attr)) |
|
| 133 | + $xhtml_slash = ''; |
|
| 134 | + if (preg_match('%\s/\s*$%', $attr)) |
|
| 135 | 135 | $xhtml_slash = ' /'; |
| 136 | 136 | |
| 137 | 137 | # Are any attributes allowed at all for this element? |
| 138 | 138 | |
| 139 | - if (@count($allowed_html[strtolower($element)]) == 0) |
|
| 139 | + if (@count($allowed_html[strtolower($element)]) == 0) |
|
| 140 | 140 | return "<$element$xhtml_slash>"; |
| 141 | 141 | |
| 142 | 142 | # Split it |
| 143 | 143 | |
| 144 | - $attrarr = kses_hair($attr, $allowed_protocols); |
|
| 144 | + $attrarr = kses_hair($attr, $allowed_protocols); |
|
| 145 | 145 | |
| 146 | 146 | # Go through $attrarr, and save the allowed attributes for this element |
| 147 | 147 | # in $attr2 |
| 148 | 148 | |
| 149 | - $attr2 = ''; |
|
| 149 | + $attr2 = ''; |
|
| 150 | 150 | |
| 151 | - foreach ($attrarr as $arreach) |
|
| 152 | - { |
|
| 151 | + foreach ($attrarr as $arreach) |
|
| 152 | + { |
|
| 153 | 153 | if (!@isset($allowed_html[strtolower($element)] |
| 154 | 154 | [strtolower($arreach['name'])])) |
| 155 | - continue; # the attribute is not allowed |
|
| 155 | + continue; # the attribute is not allowed |
|
| 156 | 156 | |
| 157 | 157 | $current = $allowed_html[strtolower($element)] |
| 158 | 158 | [strtolower($arreach['name'])]; |
| 159 | 159 | |
| 160 | 160 | if (!is_array($current)) |
| 161 | - $attr2 .= ' '.$arreach['whole']; |
|
| 161 | + $attr2 .= ' '.$arreach['whole']; |
|
| 162 | 162 | # there are no checks |
| 163 | 163 | |
| 164 | 164 | else |
| 165 | 165 | { |
| 166 | 166 | # there are some checks |
| 167 | - $ok = true; |
|
| 168 | - foreach ($current as $currkey => $currval) |
|
| 167 | + $ok = true; |
|
| 168 | + foreach ($current as $currkey => $currval) |
|
| 169 | 169 | if (!kses_check_attr_val($arreach['value'], $arreach['vless'], |
| 170 | - $currkey, $currval)) |
|
| 170 | + $currkey, $currval)) |
|
| 171 | 171 | { $ok = false; break; } |
| 172 | 172 | |
| 173 | - if ($ok) |
|
| 173 | + if ($ok) |
|
| 174 | 174 | $attr2 .= ' '.$arreach['whole']; # it passed them |
| 175 | 175 | } # if !is_array($current) |
| 176 | - } # foreach |
|
| 176 | + } # foreach |
|
| 177 | 177 | |
| 178 | 178 | # Remove any "<" or ">" characters |
| 179 | 179 | |
| 180 | - $attr2 = preg_replace('/[<>]/', '', $attr2); |
|
| 180 | + $attr2 = preg_replace('/[<>]/', '', $attr2); |
|
| 181 | 181 | |
| 182 | - return "<$element$attr2$xhtml_slash>"; |
|
| 182 | + return "<$element$attr2$xhtml_slash>"; |
|
| 183 | 183 | } # function kses_attr |
| 184 | 184 | |
| 185 | 185 | |
@@ -193,96 +193,96 @@ discard block |
||
| 193 | 193 | # from attribute values. |
| 194 | 194 | ############################################################################### |
| 195 | 195 | { |
| 196 | - $attrarr = array(); |
|
| 197 | - $mode = 0; |
|
| 198 | - $attrname = ''; |
|
| 196 | + $attrarr = array(); |
|
| 197 | + $mode = 0; |
|
| 198 | + $attrname = ''; |
|
| 199 | 199 | |
| 200 | 200 | # Loop through the whole attribute list |
| 201 | 201 | |
| 202 | - while (strlen($attr) != 0) |
|
| 203 | - { |
|
| 202 | + while (strlen($attr) != 0) |
|
| 203 | + { |
|
| 204 | 204 | $working = 0; # Was the last operation successful? |
| 205 | 205 | |
| 206 | 206 | switch ($mode) |
| 207 | 207 | { |
| 208 | - case 0: # attribute name, href for instance |
|
| 208 | + case 0: # attribute name, href for instance |
|
| 209 | 209 | |
| 210 | 210 | if (preg_match('/^([-a-zA-Z]+)/', $attr, $match)) |
| 211 | 211 | { |
| 212 | - $attrname = $match[1]; |
|
| 213 | - $working = $mode = 1; |
|
| 214 | - $attr = preg_replace('/^[-a-zA-Z]+/', '', $attr); |
|
| 212 | + $attrname = $match[1]; |
|
| 213 | + $working = $mode = 1; |
|
| 214 | + $attr = preg_replace('/^[-a-zA-Z]+/', '', $attr); |
|
| 215 | 215 | } |
| 216 | 216 | |
| 217 | 217 | break; |
| 218 | 218 | |
| 219 | - case 1: # equals sign or valueless ("selected") |
|
| 219 | + case 1: # equals sign or valueless ("selected") |
|
| 220 | 220 | |
| 221 | 221 | if (preg_match('/^\s*=\s*/', $attr)) # equals sign |
| 222 | 222 | { |
| 223 | - $working = 1; $mode = 2; |
|
| 224 | - $attr = preg_replace('/^\s*=\s*/', '', $attr); |
|
| 225 | - break; |
|
| 223 | + $working = 1; $mode = 2; |
|
| 224 | + $attr = preg_replace('/^\s*=\s*/', '', $attr); |
|
| 225 | + break; |
|
| 226 | 226 | } |
| 227 | 227 | |
| 228 | 228 | if (preg_match('/^\s+/', $attr)) # valueless |
| 229 | 229 | { |
| 230 | - $working = 1; $mode = 0; |
|
| 231 | - $attrarr[] = array |
|
| 230 | + $working = 1; $mode = 0; |
|
| 231 | + $attrarr[] = array |
|
| 232 | 232 | ('name' => $attrname, |
| 233 | - 'value' => '', |
|
| 234 | - 'whole' => $attrname, |
|
| 235 | - 'vless' => 'y'); |
|
| 236 | - $attr = preg_replace('/^\s+/', '', $attr); |
|
| 233 | + 'value' => '', |
|
| 234 | + 'whole' => $attrname, |
|
| 235 | + 'vless' => 'y'); |
|
| 236 | + $attr = preg_replace('/^\s+/', '', $attr); |
|
| 237 | 237 | } |
| 238 | 238 | |
| 239 | 239 | break; |
| 240 | 240 | |
| 241 | - case 2: # attribute value, a URL after href= for instance |
|
| 241 | + case 2: # attribute value, a URL after href= for instance |
|
| 242 | 242 | |
| 243 | 243 | if (preg_match('/^"([^"]*)"(\s+|$)/', $attr, $match)) |
| 244 | - # "value" |
|
| 244 | + # "value" |
|
| 245 | 245 | { |
| 246 | - $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
|
| 246 | + $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
|
| 247 | 247 | |
| 248 | - $attrarr[] = array |
|
| 248 | + $attrarr[] = array |
|
| 249 | 249 | ('name' => $attrname, |
| 250 | - 'value' => $thisval, |
|
| 251 | - 'whole' => "$attrname=\"$thisval\"", |
|
| 252 | - 'vless' => 'n'); |
|
| 253 | - $working = 1; $mode = 0; |
|
| 254 | - $attr = preg_replace('/^"[^"]*"(\s+|$)/', '', $attr); |
|
| 255 | - break; |
|
| 250 | + 'value' => $thisval, |
|
| 251 | + 'whole' => "$attrname=\"$thisval\"", |
|
| 252 | + 'vless' => 'n'); |
|
| 253 | + $working = 1; $mode = 0; |
|
| 254 | + $attr = preg_replace('/^"[^"]*"(\s+|$)/', '', $attr); |
|
| 255 | + break; |
|
| 256 | 256 | } |
| 257 | 257 | |
| 258 | 258 | if (preg_match("/^'([^']*)'(\s+|$)/", $attr, $match)) |
| 259 | - # 'value' |
|
| 259 | + # 'value' |
|
| 260 | 260 | { |
| 261 | - $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
|
| 261 | + $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
|
| 262 | 262 | |
| 263 | - $attrarr[] = array |
|
| 263 | + $attrarr[] = array |
|
| 264 | 264 | ('name' => $attrname, |
| 265 | - 'value' => $thisval, |
|
| 266 | - 'whole' => "$attrname='$thisval'", |
|
| 267 | - 'vless' => 'n'); |
|
| 268 | - $working = 1; $mode = 0; |
|
| 269 | - $attr = preg_replace("/^'[^']*'(\s+|$)/", '', $attr); |
|
| 270 | - break; |
|
| 265 | + 'value' => $thisval, |
|
| 266 | + 'whole' => "$attrname='$thisval'", |
|
| 267 | + 'vless' => 'n'); |
|
| 268 | + $working = 1; $mode = 0; |
|
| 269 | + $attr = preg_replace("/^'[^']*'(\s+|$)/", '', $attr); |
|
| 270 | + break; |
|
| 271 | 271 | } |
| 272 | 272 | |
| 273 | 273 | if (preg_match("%^([^\s\"']+)(\s+|$)%", $attr, $match)) |
| 274 | - # value |
|
| 274 | + # value |
|
| 275 | 275 | { |
| 276 | - $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
|
| 276 | + $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
|
| 277 | 277 | |
| 278 | - $attrarr[] = array |
|
| 278 | + $attrarr[] = array |
|
| 279 | 279 | ('name' => $attrname, |
| 280 | - 'value' => $thisval, |
|
| 281 | - 'whole' => "$attrname=\"$thisval\"", |
|
| 282 | - 'vless' => 'n'); |
|
| 283 | - # We add quotes to conform to W3C's HTML spec. |
|
| 284 | - $working = 1; $mode = 0; |
|
| 285 | - $attr = preg_replace("%^[^\s\"']+(\s+|$)%", '', $attr); |
|
| 280 | + 'value' => $thisval, |
|
| 281 | + 'whole' => "$attrname=\"$thisval\"", |
|
| 282 | + 'vless' => 'n'); |
|
| 283 | + # We add quotes to conform to W3C's HTML spec. |
|
| 284 | + $working = 1; $mode = 0; |
|
| 285 | + $attr = preg_replace("%^[^\s\"']+(\s+|$)%", '', $attr); |
|
| 286 | 286 | } |
| 287 | 287 | |
| 288 | 288 | break; |
@@ -290,21 +290,21 @@ discard block |
||
| 290 | 290 | |
| 291 | 291 | if ($working == 0) # not well formed, remove and try again |
| 292 | 292 | { |
| 293 | - $attr = kses_html_error($attr); |
|
| 294 | - $mode = 0; |
|
| 293 | + $attr = kses_html_error($attr); |
|
| 294 | + $mode = 0; |
|
| 295 | 295 | } |
| 296 | - } # while |
|
| 296 | + } # while |
|
| 297 | 297 | |
| 298 | - if ($mode == 1) |
|
| 299 | - # special case, for when the attribute list ends with a valueless |
|
| 300 | - # attribute like "selected" |
|
| 298 | + if ($mode == 1) |
|
| 299 | + # special case, for when the attribute list ends with a valueless |
|
| 300 | + # attribute like "selected" |
|
| 301 | 301 | $attrarr[] = array |
| 302 | - ('name' => $attrname, |
|
| 303 | - 'value' => '', |
|
| 304 | - 'whole' => $attrname, |
|
| 305 | - 'vless' => 'y'); |
|
| 302 | + ('name' => $attrname, |
|
| 303 | + 'value' => '', |
|
| 304 | + 'whole' => $attrname, |
|
| 305 | + 'vless' => 'y'); |
|
| 306 | 306 | |
| 307 | - return $attrarr; |
|
| 307 | + return $attrarr; |
|
| 308 | 308 | } # function kses_hair |
| 309 | 309 | |
| 310 | 310 | |
@@ -315,10 +315,10 @@ discard block |
||
| 315 | 315 | # with even more checks to come soon. |
| 316 | 316 | ############################################################################### |
| 317 | 317 | { |
| 318 | - $ok = true; |
|
| 318 | + $ok = true; |
|
| 319 | 319 | |
| 320 | - switch (strtolower($checkname)) |
|
| 321 | - { |
|
| 320 | + switch (strtolower($checkname)) |
|
| 321 | + { |
|
| 322 | 322 | case 'maxlen': |
| 323 | 323 | # The maxlen check makes sure that the attribute value has a length not |
| 324 | 324 | # greater than the given value. This can be used to avoid Buffer Overflows |
@@ -326,7 +326,7 @@ discard block |
||
| 326 | 326 | |
| 327 | 327 | if (strlen($value) > $checkvalue) |
| 328 | 328 | $ok = false; |
| 329 | - break; |
|
| 329 | + break; |
|
| 330 | 330 | |
| 331 | 331 | case 'minlen': |
| 332 | 332 | # The minlen check makes sure that the attribute value has a length not |
@@ -334,7 +334,7 @@ discard block |
||
| 334 | 334 | |
| 335 | 335 | if (strlen($value) < $checkvalue) |
| 336 | 336 | $ok = false; |
| 337 | - break; |
|
| 337 | + break; |
|
| 338 | 338 | |
| 339 | 339 | case 'maxval': |
| 340 | 340 | # The maxval check does two things: it checks that the attribute value is |
@@ -345,9 +345,9 @@ discard block |
||
| 345 | 345 | |
| 346 | 346 | if (!preg_match('/^\s{0,6}[0-9]{1,6}\s{0,6}$/', $value)) |
| 347 | 347 | $ok = false; |
| 348 | - if ($value > $checkvalue) |
|
| 348 | + if ($value > $checkvalue) |
|
| 349 | 349 | $ok = false; |
| 350 | - break; |
|
| 350 | + break; |
|
| 351 | 351 | |
| 352 | 352 | case 'minval': |
| 353 | 353 | # The minval check checks that the attribute value is a positive integer, |
@@ -355,9 +355,9 @@ discard block |
||
| 355 | 355 | |
| 356 | 356 | if (!preg_match('/^\s{0,6}[0-9]{1,6}\s{0,6}$/', $value)) |
| 357 | 357 | $ok = false; |
| 358 | - if ($value < $checkvalue) |
|
| 358 | + if ($value < $checkvalue) |
|
| 359 | 359 | $ok = false; |
| 360 | - break; |
|
| 360 | + break; |
|
| 361 | 361 | |
| 362 | 362 | case 'valueless': |
| 363 | 363 | # The valueless check checks if the attribute has a value |
@@ -367,10 +367,10 @@ discard block |
||
| 367 | 367 | |
| 368 | 368 | if (strtolower($checkvalue) != $vless) |
| 369 | 369 | $ok = false; |
| 370 | - break; |
|
| 371 | - } # switch |
|
| 370 | + break; |
|
| 371 | + } # switch |
|
| 372 | 372 | |
| 373 | - return $ok; |
|
| 373 | + return $ok; |
|
| 374 | 374 | } # function kses_check_attr_val |
| 375 | 375 | |
| 376 | 376 | |
@@ -382,17 +382,17 @@ discard block |
||
| 382 | 382 | # fooled by a string like "javascript:javascript:alert(57)". |
| 383 | 383 | ############################################################################### |
| 384 | 384 | { |
| 385 | - $string = kses_no_null($string); |
|
| 386 | - $string = preg_replace('/\xad+/', '', $string); # deals with Opera "feature" |
|
| 387 | - $string2 = $string.'a'; |
|
| 385 | + $string = kses_no_null($string); |
|
| 386 | + $string = preg_replace('/\xad+/', '', $string); # deals with Opera "feature" |
|
| 387 | + $string2 = $string.'a'; |
|
| 388 | 388 | |
| 389 | - while ($string != $string2) |
|
| 390 | - { |
|
| 389 | + while ($string != $string2) |
|
| 390 | + { |
|
| 391 | 391 | $string2 = $string; |
| 392 | 392 | $string = kses_bad_protocol_once($string, $allowed_protocols); |
| 393 | - } # while |
|
| 393 | + } # while |
|
| 394 | 394 | |
| 395 | - return $string; |
|
| 395 | + return $string; |
|
| 396 | 396 | } # function kses_bad_protocol |
| 397 | 397 | |
| 398 | 398 | |
@@ -401,10 +401,10 @@ discard block |
||
| 401 | 401 | # This function removes any NULL characters in $string. |
| 402 | 402 | ############################################################################### |
| 403 | 403 | { |
| 404 | - $string = preg_replace('/\0+/', '', $string); |
|
| 405 | - $string = preg_replace('/(\\\\0)+/', '', $string); |
|
| 404 | + $string = preg_replace('/\0+/', '', $string); |
|
| 405 | + $string = preg_replace('/(\\\\0)+/', '', $string); |
|
| 406 | 406 | |
| 407 | - return $string; |
|
| 407 | + return $string; |
|
| 408 | 408 | } # function kses_no_null |
| 409 | 409 | |
| 410 | 410 | |
@@ -415,7 +415,7 @@ discard block |
||
| 415 | 415 | # preg_replace(//e) seems to require this. |
| 416 | 416 | ############################################################################### |
| 417 | 417 | { |
| 418 | - return preg_replace('%\\\\"%', '"', $string); |
|
| 418 | + return preg_replace('%\\\\"%', '"', $string); |
|
| 419 | 419 | } # function kses_stripslashes |
| 420 | 420 | |
| 421 | 421 | |
@@ -424,21 +424,21 @@ discard block |
||
| 424 | 424 | # This function goes through an array, and changes the keys to all lower case. |
| 425 | 425 | ############################################################################### |
| 426 | 426 | { |
| 427 | - $outarray = array(); |
|
| 427 | + $outarray = array(); |
|
| 428 | 428 | |
| 429 | - foreach ($inarray as $inkey => $inval) |
|
| 430 | - { |
|
| 429 | + foreach ($inarray as $inkey => $inval) |
|
| 430 | + { |
|
| 431 | 431 | $outkey = strtolower($inkey); |
| 432 | 432 | $outarray[$outkey] = array(); |
| 433 | 433 | |
| 434 | 434 | foreach ($inval as $inkey2 => $inval2) |
| 435 | 435 | { |
| 436 | - $outkey2 = strtolower($inkey2); |
|
| 437 | - $outarray[$outkey][$outkey2] = $inval2; |
|
| 436 | + $outkey2 = strtolower($inkey2); |
|
| 437 | + $outarray[$outkey][$outkey2] = $inval2; |
|
| 438 | 438 | } # foreach $inval |
| 439 | - } # foreach $inarray |
|
| 439 | + } # foreach $inarray |
|
| 440 | 440 | |
| 441 | - return $outarray; |
|
| 441 | + return $outarray; |
|
| 442 | 442 | } # function kses_array_lc |
| 443 | 443 | |
| 444 | 444 | |
@@ -448,7 +448,7 @@ discard block |
||
| 448 | 448 | # Netscape 4. |
| 449 | 449 | ############################################################################### |
| 450 | 450 | { |
| 451 | - return preg_replace('%&\s*\{[^}]*(\}\s*;?|$)%', '', $string); |
|
| 451 | + return preg_replace('%&\s*\{[^}]*(\}\s*;?|$)%', '', $string); |
|
| 452 | 452 | } # function kses_js_entities |
| 453 | 453 | |
| 454 | 454 | |
@@ -459,7 +459,7 @@ discard block |
||
| 459 | 459 | # quotes and apostrophes as well. |
| 460 | 460 | ############################################################################### |
| 461 | 461 | { |
| 462 | - return preg_replace('/^("[^"]*("|$)|\'[^\']*(\'|$)|\S)*\s*/', '', $string); |
|
| 462 | + return preg_replace('/^("[^"]*("|$)|\'[^\']*(\'|$)|\S)*\s*/', '', $string); |
|
| 463 | 463 | } # function kses_html_error |
| 464 | 464 | |
| 465 | 465 | |
@@ -469,12 +469,12 @@ discard block |
||
| 469 | 469 | # handling whitespace and HTML entities. |
| 470 | 470 | ############################################################################### |
| 471 | 471 | { |
| 472 | - $string2 = preg_split('/:|:|:/i', $string, 2); |
|
| 473 | - if(isset($string2[1]) && !preg_match('%/\?%',$string2[0])) |
|
| 474 | - { |
|
| 475 | - $string = kses_bad_protocol_once2($string2[0],$allowed_protocols).trim($string2[1]); |
|
| 476 | - } |
|
| 477 | - return $string; |
|
| 472 | + $string2 = preg_split('/:|:|:/i', $string, 2); |
|
| 473 | + if(isset($string2[1]) && !preg_match('%/\?%',$string2[0])) |
|
| 474 | + { |
|
| 475 | + $string = kses_bad_protocol_once2($string2[0],$allowed_protocols).trim($string2[1]); |
|
| 476 | + } |
|
| 477 | + return $string; |
|
| 478 | 478 | } # function kses_bad_protocol_once |
| 479 | 479 | |
| 480 | 480 | |
@@ -484,24 +484,24 @@ discard block |
||
| 484 | 484 | # list or not, and returns different data depending on the answer. |
| 485 | 485 | ############################################################################### |
| 486 | 486 | { |
| 487 | - $string2 = kses_decode_entities($string); |
|
| 488 | - $string2 = preg_replace('/\s/', '', $string2); |
|
| 489 | - $string2 = kses_no_null($string2); |
|
| 490 | - $string2 = preg_replace('/\xad+/', '', $string2); |
|
| 491 | - # deals with Opera "feature" |
|
| 492 | - $string2 = strtolower($string2); |
|
| 493 | - |
|
| 494 | - $allowed = false; |
|
| 495 | - foreach ($allowed_protocols as $one_protocol) |
|
| 487 | + $string2 = kses_decode_entities($string); |
|
| 488 | + $string2 = preg_replace('/\s/', '', $string2); |
|
| 489 | + $string2 = kses_no_null($string2); |
|
| 490 | + $string2 = preg_replace('/\xad+/', '', $string2); |
|
| 491 | + # deals with Opera "feature" |
|
| 492 | + $string2 = strtolower($string2); |
|
| 493 | + |
|
| 494 | + $allowed = false; |
|
| 495 | + foreach ($allowed_protocols as $one_protocol) |
|
| 496 | 496 | if (strtolower($one_protocol) == $string2) |
| 497 | 497 | { |
| 498 | - $allowed = true; |
|
| 499 | - break; |
|
| 498 | + $allowed = true; |
|
| 499 | + break; |
|
| 500 | 500 | } |
| 501 | 501 | |
| 502 | - if ($allowed) |
|
| 502 | + if ($allowed) |
|
| 503 | 503 | return "$string2:"; |
| 504 | - else |
|
| 504 | + else |
|
| 505 | 505 | return ''; |
| 506 | 506 | } # function kses_bad_protocol_once2 |
| 507 | 507 | |
@@ -514,18 +514,18 @@ discard block |
||
| 514 | 514 | { |
| 515 | 515 | # Disarm all entities by converting & to & |
| 516 | 516 | |
| 517 | - $string = str_replace('&', '&', $string); |
|
| 517 | + $string = str_replace('&', '&', $string); |
|
| 518 | 518 | |
| 519 | 519 | # Change back the allowed entities in our entity whitelist |
| 520 | 520 | |
| 521 | - $string = preg_replace('/&([A-Za-z][A-Za-z0-9]{0,19});/', |
|
| 522 | - '&\\1;', $string); |
|
| 523 | - $string = preg_replace('/&#0*([0-9]{1,5});/e', |
|
| 524 | - 'kses_normalize_entities2("\\1")', $string); |
|
| 525 | - $string = preg_replace('/&#([Xx])0*(([0-9A-Fa-f]{2}){1,2});/', |
|
| 526 | - '&#\\1\\2;', $string); |
|
| 521 | + $string = preg_replace('/&([A-Za-z][A-Za-z0-9]{0,19});/', |
|
| 522 | + '&\\1;', $string); |
|
| 523 | + $string = preg_replace('/&#0*([0-9]{1,5});/e', |
|
| 524 | + 'kses_normalize_entities2("\\1")', $string); |
|
| 525 | + $string = preg_replace('/&#([Xx])0*(([0-9A-Fa-f]{2}){1,2});/', |
|
| 526 | + '&#\\1\\2;', $string); |
|
| 527 | 527 | |
| 528 | - return $string; |
|
| 528 | + return $string; |
|
| 529 | 529 | } # function kses_normalize_entities |
| 530 | 530 | |
| 531 | 531 | |
@@ -535,7 +535,7 @@ discard block |
||
| 535 | 535 | # and nothing more for &#number; entities. |
| 536 | 536 | ############################################################################### |
| 537 | 537 | { |
| 538 | - return (($i > 65535) ? "&#$i;" : "&#$i;"); |
|
| 538 | + return (($i > 65535) ? "&#$i;" : "&#$i;"); |
|
| 539 | 539 | } # function kses_normalize_entities2 |
| 540 | 540 | |
| 541 | 541 | |
@@ -546,11 +546,11 @@ discard block |
||
| 546 | 546 | # URL protocol whitelisting system anyway. |
| 547 | 547 | ############################################################################### |
| 548 | 548 | { |
| 549 | - $string = preg_replace('/&#([0-9]+);/e', 'chr("\\1")', $string); |
|
| 550 | - $string = preg_replace('/&#[Xx]([0-9A-Fa-f]+);/e', 'chr(hexdec("\\1"))', |
|
| 551 | - $string); |
|
| 549 | + $string = preg_replace('/&#([0-9]+);/e', 'chr("\\1")', $string); |
|
| 550 | + $string = preg_replace('/&#[Xx]([0-9A-Fa-f]+);/e', 'chr(hexdec("\\1"))', |
|
| 551 | + $string); |
|
| 552 | 552 | |
| 553 | - return $string; |
|
| 553 | + return $string; |
|
| 554 | 554 | } # function kses_decode_entities |
| 555 | 555 | |
| 556 | 556 | ?> |
@@ -73,9 +73,9 @@ discard block |
||
| 73 | 73 | # matches stray ">" characters. |
| 74 | 74 | ############################################################################### |
| 75 | 75 | { |
| 76 | - return preg_replace('%(<'. # EITHER: < |
|
| 77 | - '[^>]*'. # things that aren't > |
|
| 78 | - '(>|$)'. # > or end of string |
|
| 76 | + return preg_replace('%(<'.# EITHER: < |
|
| 77 | + '[^>]*'.# things that aren't > |
|
| 78 | + '(>|$)'.# > or end of string |
|
| 79 | 79 | '|>)%e', # OR: just a > |
| 80 | 80 | "kses_split2('\\1', \$allowed_html, ". |
| 81 | 81 | '$allowed_protocols)', |
@@ -228,8 +228,7 @@ discard block |
||
| 228 | 228 | if (preg_match('/^\s+/', $attr)) # valueless |
| 229 | 229 | { |
| 230 | 230 | $working = 1; $mode = 0; |
| 231 | - $attrarr[] = array |
|
| 232 | - ('name' => $attrname, |
|
| 231 | + $attrarr[] = array('name' => $attrname, |
|
| 233 | 232 | 'value' => '', |
| 234 | 233 | 'whole' => $attrname, |
| 235 | 234 | 'vless' => 'y'); |
@@ -245,8 +244,7 @@ discard block |
||
| 245 | 244 | { |
| 246 | 245 | $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
| 247 | 246 | |
| 248 | - $attrarr[] = array |
|
| 249 | - ('name' => $attrname, |
|
| 247 | + $attrarr[] = array('name' => $attrname, |
|
| 250 | 248 | 'value' => $thisval, |
| 251 | 249 | 'whole' => "$attrname=\"$thisval\"", |
| 252 | 250 | 'vless' => 'n'); |
@@ -260,8 +258,7 @@ discard block |
||
| 260 | 258 | { |
| 261 | 259 | $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
| 262 | 260 | |
| 263 | - $attrarr[] = array |
|
| 264 | - ('name' => $attrname, |
|
| 261 | + $attrarr[] = array('name' => $attrname, |
|
| 265 | 262 | 'value' => $thisval, |
| 266 | 263 | 'whole' => "$attrname='$thisval'", |
| 267 | 264 | 'vless' => 'n'); |
@@ -275,8 +272,7 @@ discard block |
||
| 275 | 272 | { |
| 276 | 273 | $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
| 277 | 274 | |
| 278 | - $attrarr[] = array |
|
| 279 | - ('name' => $attrname, |
|
| 275 | + $attrarr[] = array('name' => $attrname, |
|
| 280 | 276 | 'value' => $thisval, |
| 281 | 277 | 'whole' => "$attrname=\"$thisval\"", |
| 282 | 278 | 'vless' => 'n'); |
@@ -298,8 +294,7 @@ discard block |
||
| 298 | 294 | if ($mode == 1) |
| 299 | 295 | # special case, for when the attribute list ends with a valueless |
| 300 | 296 | # attribute like "selected" |
| 301 | - $attrarr[] = array |
|
| 302 | - ('name' => $attrname, |
|
| 297 | + $attrarr[] = array('name' => $attrname, |
|
| 303 | 298 | 'value' => '', |
| 304 | 299 | 'whole' => $attrname, |
| 305 | 300 | 'vless' => 'y'); |
@@ -470,9 +465,9 @@ discard block |
||
| 470 | 465 | ############################################################################### |
| 471 | 466 | { |
| 472 | 467 | $string2 = preg_split('/:|:|:/i', $string, 2); |
| 473 | - if(isset($string2[1]) && !preg_match('%/\?%',$string2[0])) |
|
| 468 | + if (isset($string2[1]) && !preg_match('%/\?%', $string2[0])) |
|
| 474 | 469 | { |
| 475 | - $string = kses_bad_protocol_once2($string2[0],$allowed_protocols).trim($string2[1]); |
|
| 470 | + $string = kses_bad_protocol_once2($string2[0], $allowed_protocols).trim($string2[1]); |
|
| 476 | 471 | } |
| 477 | 472 | return $string; |
| 478 | 473 | } # function kses_bad_protocol_once |
@@ -93,24 +93,28 @@ discard block |
||
| 93 | 93 | { |
| 94 | 94 | $string = kses_stripslashes($string); |
| 95 | 95 | |
| 96 | - if (substr($string, 0, 1) != '<') |
|
| 97 | - return '>'; |
|
| 96 | + if (substr($string, 0, 1) != '<') { |
|
| 97 | + return '>'; |
|
| 98 | + } |
|
| 98 | 99 | # It matched a ">" character |
| 99 | 100 | |
| 100 | - if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9]+)([^>]*)>?$%', $string, $matches)) |
|
| 101 | - return ''; |
|
| 101 | + if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9]+)([^>]*)>?$%', $string, $matches)) { |
|
| 102 | + return ''; |
|
| 103 | + } |
|
| 102 | 104 | # It's seriously malformed |
| 103 | 105 | |
| 104 | 106 | $slash = trim($matches[1]); |
| 105 | 107 | $elem = $matches[2]; |
| 106 | 108 | $attrlist = $matches[3]; |
| 107 | 109 | |
| 108 | - if (!@isset($allowed_html[strtolower($elem)])) |
|
| 109 | - return ''; |
|
| 110 | + if (!@isset($allowed_html[strtolower($elem)])) { |
|
| 111 | + return ''; |
|
| 112 | + } |
|
| 110 | 113 | # They are using a not allowed HTML element |
| 111 | 114 | |
| 112 | - if ($slash != '') |
|
| 113 | - return "<$slash$elem>"; |
|
| 115 | + if ($slash != '') { |
|
| 116 | + return "<$slash$elem>"; |
|
| 117 | + } |
|
| 114 | 118 | # No attributes are allowed for closing elements |
| 115 | 119 | |
| 116 | 120 | return kses_attr("$slash$elem", $attrlist, $allowed_html, |
@@ -131,13 +135,15 @@ discard block |
||
| 131 | 135 | # Is there a closing XHTML slash at the end of the attributes? |
| 132 | 136 | |
| 133 | 137 | $xhtml_slash = ''; |
| 134 | - if (preg_match('%\s/\s*$%', $attr)) |
|
| 135 | - $xhtml_slash = ' /'; |
|
| 138 | + if (preg_match('%\s/\s*$%', $attr)) { |
|
| 139 | + $xhtml_slash = ' /'; |
|
| 140 | + } |
|
| 136 | 141 | |
| 137 | 142 | # Are any attributes allowed at all for this element? |
| 138 | 143 | |
| 139 | - if (@count($allowed_html[strtolower($element)]) == 0) |
|
| 140 | - return "<$element$xhtml_slash>"; |
|
| 144 | + if (@count($allowed_html[strtolower($element)]) == 0) { |
|
| 145 | + return "<$element$xhtml_slash>"; |
|
| 146 | + } |
|
| 141 | 147 | |
| 142 | 148 | # Split it |
| 143 | 149 | |
@@ -151,27 +157,34 @@ discard block |
||
| 151 | 157 | foreach ($attrarr as $arreach) |
| 152 | 158 | { |
| 153 | 159 | if (!@isset($allowed_html[strtolower($element)] |
| 154 | - [strtolower($arreach['name'])])) |
|
| 155 | - continue; # the attribute is not allowed |
|
| 160 | + [strtolower($arreach['name'])])) { |
|
| 161 | + continue; |
|
| 162 | + } |
|
| 163 | + # the attribute is not allowed |
|
| 156 | 164 | |
| 157 | 165 | $current = $allowed_html[strtolower($element)] |
| 158 | 166 | [strtolower($arreach['name'])]; |
| 159 | 167 | |
| 160 | - if (!is_array($current)) |
|
| 161 | - $attr2 .= ' '.$arreach['whole']; |
|
| 168 | + if (!is_array($current)) { |
|
| 169 | + $attr2 .= ' '.$arreach['whole']; |
|
| 170 | + } |
|
| 162 | 171 | # there are no checks |
| 163 | 172 | |
| 164 | 173 | else |
| 165 | 174 | { |
| 166 | 175 | # there are some checks |
| 167 | 176 | $ok = true; |
| 168 | - foreach ($current as $currkey => $currval) |
|
| 169 | - if (!kses_check_attr_val($arreach['value'], $arreach['vless'], |
|
| 177 | + foreach ($current as $currkey => $currval) { |
|
| 178 | + if (!kses_check_attr_val($arreach['value'], $arreach['vless'], |
|
| 170 | 179 | $currkey, $currval)) |
| 171 | - { $ok = false; break; } |
|
| 172 | - |
|
| 173 | - if ($ok) |
|
| 174 | - $attr2 .= ' '.$arreach['whole']; # it passed them |
|
| 180 | + { $ok = false; |
|
| 181 | + } |
|
| 182 | + break; } |
|
| 183 | + |
|
| 184 | + if ($ok) { |
|
| 185 | + $attr2 .= ' '.$arreach['whole']; |
|
| 186 | + } |
|
| 187 | + # it passed them |
|
| 175 | 188 | } # if !is_array($current) |
| 176 | 189 | } # foreach |
| 177 | 190 | |
@@ -218,16 +231,22 @@ discard block |
||
| 218 | 231 | |
| 219 | 232 | case 1: # equals sign or valueless ("selected") |
| 220 | 233 | |
| 221 | - if (preg_match('/^\s*=\s*/', $attr)) # equals sign |
|
| 234 | + if (preg_match('/^\s*=\s*/', $attr)) { |
|
| 235 | + # equals sign |
|
| 222 | 236 | { |
| 223 | - $working = 1; $mode = 2; |
|
| 237 | + $working = 1; |
|
| 238 | + } |
|
| 239 | + $mode = 2; |
|
| 224 | 240 | $attr = preg_replace('/^\s*=\s*/', '', $attr); |
| 225 | 241 | break; |
| 226 | 242 | } |
| 227 | 243 | |
| 228 | - if (preg_match('/^\s+/', $attr)) # valueless |
|
| 244 | + if (preg_match('/^\s+/', $attr)) { |
|
| 245 | + # valueless |
|
| 229 | 246 | { |
| 230 | - $working = 1; $mode = 0; |
|
| 247 | + $working = 1; |
|
| 248 | + } |
|
| 249 | + $mode = 0; |
|
| 231 | 250 | $attrarr[] = array |
| 232 | 251 | ('name' => $attrname, |
| 233 | 252 | 'value' => '', |
@@ -240,10 +259,11 @@ discard block |
||
| 240 | 259 | |
| 241 | 260 | case 2: # attribute value, a URL after href= for instance |
| 242 | 261 | |
| 243 | - if (preg_match('/^"([^"]*)"(\s+|$)/', $attr, $match)) |
|
| 244 | - # "value" |
|
| 262 | + if (preg_match('/^"([^"]*)"(\s+|$)/', $attr, $match)) { |
|
| 263 | + # "value" |
|
| 245 | 264 | { |
| 246 | 265 | $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
| 266 | + } |
|
| 247 | 267 | |
| 248 | 268 | $attrarr[] = array |
| 249 | 269 | ('name' => $attrname, |
@@ -255,10 +275,11 @@ discard block |
||
| 255 | 275 | break; |
| 256 | 276 | } |
| 257 | 277 | |
| 258 | - if (preg_match("/^'([^']*)'(\s+|$)/", $attr, $match)) |
|
| 259 | - # 'value' |
|
| 278 | + if (preg_match("/^'([^']*)'(\s+|$)/", $attr, $match)) { |
|
| 279 | + # 'value' |
|
| 260 | 280 | { |
| 261 | 281 | $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
| 282 | + } |
|
| 262 | 283 | |
| 263 | 284 | $attrarr[] = array |
| 264 | 285 | ('name' => $attrname, |
@@ -270,10 +291,11 @@ discard block |
||
| 270 | 291 | break; |
| 271 | 292 | } |
| 272 | 293 | |
| 273 | - if (preg_match("%^([^\s\"']+)(\s+|$)%", $attr, $match)) |
|
| 274 | - # value |
|
| 294 | + if (preg_match("%^([^\s\"']+)(\s+|$)%", $attr, $match)) { |
|
| 295 | + # value |
|
| 275 | 296 | { |
| 276 | 297 | $thisval = kses_bad_protocol($match[1], $allowed_protocols); |
| 298 | + } |
|
| 277 | 299 | |
| 278 | 300 | $attrarr[] = array |
| 279 | 301 | ('name' => $attrname, |
@@ -288,21 +310,24 @@ discard block |
||
| 288 | 310 | break; |
| 289 | 311 | } # switch |
| 290 | 312 | |
| 291 | - if ($working == 0) # not well formed, remove and try again |
|
| 313 | + if ($working == 0) { |
|
| 314 | + # not well formed, remove and try again |
|
| 292 | 315 | { |
| 293 | 316 | $attr = kses_html_error($attr); |
| 317 | + } |
|
| 294 | 318 | $mode = 0; |
| 295 | 319 | } |
| 296 | 320 | } # while |
| 297 | 321 | |
| 298 | - if ($mode == 1) |
|
| 299 | - # special case, for when the attribute list ends with a valueless |
|
| 322 | + if ($mode == 1) { |
|
| 323 | + # special case, for when the attribute list ends with a valueless |
|
| 300 | 324 | # attribute like "selected" |
| 301 | 325 | $attrarr[] = array |
| 302 | 326 | ('name' => $attrname, |
| 303 | 327 | 'value' => '', |
| 304 | 328 | 'whole' => $attrname, |
| 305 | 329 | 'vless' => 'y'); |
| 330 | + } |
|
| 306 | 331 | |
| 307 | 332 | return $attrarr; |
| 308 | 333 | } # function kses_hair |
@@ -324,16 +349,18 @@ discard block |
||
| 324 | 349 | # greater than the given value. This can be used to avoid Buffer Overflows |
| 325 | 350 | # in WWW clients and various Internet servers. |
| 326 | 351 | |
| 327 | - if (strlen($value) > $checkvalue) |
|
| 328 | - $ok = false; |
|
| 352 | + if (strlen($value) > $checkvalue) { |
|
| 353 | + $ok = false; |
|
| 354 | + } |
|
| 329 | 355 | break; |
| 330 | 356 | |
| 331 | 357 | case 'minlen': |
| 332 | 358 | # The minlen check makes sure that the attribute value has a length not |
| 333 | 359 | # smaller than the given value. |
| 334 | 360 | |
| 335 | - if (strlen($value) < $checkvalue) |
|
| 336 | - $ok = false; |
|
| 361 | + if (strlen($value) < $checkvalue) { |
|
| 362 | + $ok = false; |
|
| 363 | + } |
|
| 337 | 364 | break; |
| 338 | 365 | |
| 339 | 366 | case 'maxval': |
@@ -343,20 +370,24 @@ discard block |
||
| 343 | 370 | # value is not greater than the given value. |
| 344 | 371 | # This check can be used to avoid Denial of Service attacks. |
| 345 | 372 | |
| 346 | - if (!preg_match('/^\s{0,6}[0-9]{1,6}\s{0,6}$/', $value)) |
|
| 347 | - $ok = false; |
|
| 348 | - if ($value > $checkvalue) |
|
| 349 | - $ok = false; |
|
| 373 | + if (!preg_match('/^\s{0,6}[0-9]{1,6}\s{0,6}$/', $value)) { |
|
| 374 | + $ok = false; |
|
| 375 | + } |
|
| 376 | + if ($value > $checkvalue) { |
|
| 377 | + $ok = false; |
|
| 378 | + } |
|
| 350 | 379 | break; |
| 351 | 380 | |
| 352 | 381 | case 'minval': |
| 353 | 382 | # The minval check checks that the attribute value is a positive integer, |
| 354 | 383 | # and that it is not smaller than the given value. |
| 355 | 384 | |
| 356 | - if (!preg_match('/^\s{0,6}[0-9]{1,6}\s{0,6}$/', $value)) |
|
| 357 | - $ok = false; |
|
| 358 | - if ($value < $checkvalue) |
|
| 359 | - $ok = false; |
|
| 385 | + if (!preg_match('/^\s{0,6}[0-9]{1,6}\s{0,6}$/', $value)) { |
|
| 386 | + $ok = false; |
|
| 387 | + } |
|
| 388 | + if ($value < $checkvalue) { |
|
| 389 | + $ok = false; |
|
| 390 | + } |
|
| 360 | 391 | break; |
| 361 | 392 | |
| 362 | 393 | case 'valueless': |
@@ -365,8 +396,9 @@ discard block |
||
| 365 | 396 | # is a "y" or a "Y", the attribute must not have a value. |
| 366 | 397 | # If the given value is an "n" or an "N", the attribute must have one. |
| 367 | 398 | |
| 368 | - if (strtolower($checkvalue) != $vless) |
|
| 369 | - $ok = false; |
|
| 399 | + if (strtolower($checkvalue) != $vless) { |
|
| 400 | + $ok = false; |
|
| 401 | + } |
|
| 370 | 402 | break; |
| 371 | 403 | } # switch |
| 372 | 404 | |
@@ -492,18 +524,20 @@ discard block |
||
| 492 | 524 | $string2 = strtolower($string2); |
| 493 | 525 | |
| 494 | 526 | $allowed = false; |
| 495 | - foreach ($allowed_protocols as $one_protocol) |
|
| 496 | - if (strtolower($one_protocol) == $string2) |
|
| 527 | + foreach ($allowed_protocols as $one_protocol) { |
|
| 528 | + if (strtolower($one_protocol) == $string2) |
|
| 497 | 529 | { |
| 498 | 530 | $allowed = true; |
| 531 | + } |
|
| 499 | 532 | break; |
| 500 | 533 | } |
| 501 | 534 | |
| 502 | - if ($allowed) |
|
| 503 | - return "$string2:"; |
|
| 504 | - else |
|
| 505 | - return ''; |
|
| 506 | -} # function kses_bad_protocol_once2 |
|
| 535 | + if ($allowed) { |
|
| 536 | + return "$string2:"; |
|
| 537 | + } else { |
|
| 538 | + return ''; |
|
| 539 | + } |
|
| 540 | + } # function kses_bad_protocol_once2 |
|
| 507 | 541 | |
| 508 | 542 | |
| 509 | 543 | function kses_normalize_entities($string) |