[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Calendar/ -> iCalExport.php (source)

   1  <?php
   2  
   3  define('_BENNU_VERSION', '0.1');
   4  
   5  require_once ('include/utils/utils.php');
   6  require_once ('modules/Calendar/CalendarCommon.php');
   7  include ('modules/Calendar/iCal/iCalendar_rfc2445.php');
   8  include ('modules/Calendar/iCal/iCalendar_components.php');
   9  include ('modules/Calendar/iCal/iCalendar_properties.php');
  10  include ('modules/Calendar/iCal/iCalendar_parameters.php');
  11  
  12  //$ical_query = "SELECT * FROM vtiger_activity WHERE (( STATUS != 'Completed' AND STATUS != 'Deferred' ) OR STATUS IS NULL)
  13  //               AND (( eventstatus != 'Held' AND eventstatus != 'Not Held' ) OR eventstatus IS NULL )";
  14  
  15  global $current_user,$adb,$default_timezone;
  16  $filename = $_REQUEST['filename'];
  17  $ical_query = "select vtiger_activity.*,vtiger_crmentity.description,vtiger_activity_reminder.reminder_time from vtiger_activity inner join vtiger_crmentity on vtiger_activity.activityid = vtiger_crmentity.crmid " .
  18      " LEFT JOIN vtiger_activity_reminder ON vtiger_activity_reminder.activity_id=vtiger_activity.activityid AND vtiger_activity_reminder.recurringid=0" .
  19      " where vtiger_crmentity.deleted = 0 and vtiger_crmentity.smownerid = " . $current_user->id . 
  20      " and vtiger_activity.activitytype NOT IN ('Emails')";
  21  
  22  $calendar_results = $adb->query($ical_query);
  23  
  24  // Send the right content type and filename
  25  header ("Content-type: text/calendar");
  26  header('Content-Disposition: attachment; '."filename={$filename}.ics"); 
  27  
  28  $todo_fields = getColumnFields('Calendar');
  29  $event_fields = getColumnFields('Events');
  30  $event = $todo = array();
  31  $keys_to_replace = array(
  32      'events'=>array('taskpriority'),
  33      'todo'=>array('taskpriority','taskstatus')
  34  );
  35  $keyvals_to_replace = array(
  36      'events'=>array('taskpriority'=>'priority'),
  37      'todo'=>array('taskpriority'=>'priority','taskstatus'=>'status')
  38  );
  39  foreach($todo_fields as $key=>$val){
  40      if(getFieldVisibilityPermission('Calendar',$current_user->id,$key)==0){
  41          if(!in_array($key,$keys_to_replace['todo'])){
  42              $todo[$key] = 'yes'; 
  43          } else {
  44              $todo[$keyvals_to_replace['todo'][$key]] = 'yes'; 
  45          }
  46      }
  47  }
  48  foreach($event_fields as $key=>$val){
  49      if(getFieldVisibilityPermission('Events',$current_user->id,$key)==0){
  50          if(!in_array($key,$keys_to_replace['events'])){
  51              $event[$key] = 'yes'; 
  52          } else {
  53              $event[$keyvals_to_replace['events'][$key]] = 'yes'; 
  54          }
  55      }
  56  }
  57  
  58  $tz = new iCalendar_timezone;
  59  if(!empty($default_timezone)){
  60      $tzid = split('/',$default_timezone);
  61  } else {
  62      $default_timezone = date_default_timezone_get();
  63      $tzid = split('/',$default_timezone);
  64  }
  65  
  66  if(!empty($tzid[1])){
  67      $tz->add_property('TZID', $tzid[1]);
  68  } else {
  69      $tz->add_property('TZID', $tzid[0]);
  70  }
  71  $tz->add_property('TZOFFSETTO', date('O'));
  72  if(date('I')==1){
  73      $tz->add_property('DAYLIGHTC', date('I'));
  74  } else {
  75      $tz->add_property('STANDARDC', date('I'));
  76  }
  77  
  78  $myical = new iCalendar;
  79  
  80  $myical->add_component($tz);
  81  
  82  while (!$calendar_results->EOF) {
  83      $this_event = $calendar_results->fields;
  84      $id = $this_event['activityid'];
  85      $type = $this_event['activitytype'];
  86      if($type!='Task'){
  87          $temp = $event;
  88          foreach($temp as $key=>$val){
  89              $temp[$key] = $this_event[$key];
  90          }
  91          $temp['id'] = $id;
  92          $ev = new iCalendar_event;
  93          $ev->assign_values($temp);
  94  
  95          $al = new iCalendar_alarm;
  96          $al->assign_values($temp);
  97          $ev->add_component($al);
  98      } else {
  99          $temp = $todo;
 100          foreach($temp as $key=>$val){
 101              $temp[$key] = $this_event[$key];
 102          }
 103          $ev = new iCalendar_todo;
 104          $ev->assign_values($temp);
 105      }
 106  
 107      $myical->add_component($ev);
 108      $calendar_results->MoveNext();
 109  }
 110  // Print the actual calendar
 111  echo $myical->serialize();
 112  
 113  ?>


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1