当前位置: 首页>>代码示例>>PHP>>正文


PHP vcalendar::newComponent方法代码示例

本文整理汇总了PHP中vcalendar::newComponent方法的典型用法代码示例。如果您正苦于以下问题:PHP vcalendar::newComponent方法的具体用法?PHP vcalendar::newComponent怎么用?PHP vcalendar::newComponent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在vcalendar的用法示例。


在下文中一共展示了vcalendar::newComponent方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: createVevent

 /**
  * Creates an event in an iCalendar 
  * 
  * @param vcalendar $cal
  * @return vevent
  */
 public function createVevent($cal)
 {
     $event = $cal->newComponent('vevent');
     $event->setProperty('dtstart', $this->makeDateArray());
     // End date must be the day after to make it an all-day event
     $endDate = clone $this;
     $endDate->addDays(1);
     $event->setProperty('dtend', $endDate->makeDateArray());
     return $event;
 }
开发者ID:geoffhumphrey,项目名称:brewblogger,代码行数:16,代码来源:ical.php

示例2: nl2br

$e->setProperty('categories', 'PERSONAL');
$e->setProperty('categories', 'SPECIAL OCCASION');
$e->setProperty('rrule', array('FREQ' => 'YEARLY'));
echo nl2br($v->createCalendar());
// generate and get output in string, for testing?
echo "<br />\n\n";
/*
 *   BEGIN:VTODO
 *   UID:19970901T130000Z-123404@host.com
 *   DTSTAMP:19970901T1300Z
 *   DTSTART:19970415T133000Z
 *   DUE:19970416T045959Z
 *   SUMMARY:1996 Income Tax Preparation
 *   CLASS:CONFIDENTIAL
 *   CATEGORIES:FAMILY,FINANCE
 *   PRIORITY:1
 *   STATUS:NEEDS-ACTION
 *   END:VTODO
 */
$c = new vcalendar(array('unique_id' => 'kigkonsult.se'));
$t =& $c->newComponent('vtodo');
$t->setProperty('dtstart', '19970415T133000 GMT');
$t->setProperty('due', '19970416T045959 GMT');
$t->setProperty('summary', '1996 Income Tax Preparation');
$t->setProperty('class', 'CONFIDENTIAL');
$t->setProperty('categories', 'FAMILY');
$t->setProperty('categories', 'FINANCE');
$t->setProperty('priority', 1);
$t->setProperty('status', 'NEEDS-ACTION');
echo nl2br($v->createCalendar());
// generate and get output in string, for testing?
开发者ID:BGCX067,项目名称:fajr-git,代码行数:31,代码来源:samples.php

示例3: vcalendar

 /**
  * Export to the specified format
  * @param array	$input	-	ATutor dates to be exported
  * @param int $mode	-	Mode of operation of export [ 0 | 1 ] 
  *							*	mode 0 - returns the exported dates as a string
  *							* 	mode 1 - returns the name of the file that has the exported dates
  * @param string $format - Export Format	DEFAULT 'ical'
  * @return string
  * @author Anurup Raveendran
  *
  */
 function cal_export($input = null, $mode, $format = 'ical')
 {
     $cal = "";
     //output
     $user = "";
     if ($input == null) {
         $time_zone = "";
     } else {
         $time_zone = $input['timezone'];
     }
     global $db;
     require_once 'iCalcreator.class.php';
     require_once 'html_parser.inc.php';
     $v = new vcalendar(array('unique_id' => 'Inclusive Design Insitute'));
     //create an instance of the ical obj
     // ADD EXTRA DETAILS
     if (isset($_SESSION['member_id'])) {
         // GET USER DETAILS
         $m_id = $_SESSION['member_id'];
         // GET TIME ZONE
         // CHECK USER TABLE FOR PREF_TIMEZONE
         $sql = "SELECT first_name,last_name,preferences FROM " . TABLE_PREFIX . "members WHERE member_id='" . $m_id . "'";
         $result = mysql_query($sql, $db) or die(mysql_error());
         $row = mysql_fetch_assoc($result);
         $user = $row['first_name'] . ' ' . $row['last_name'];
         if ($time_zone == "") {
             $prefs = unserialize($row['preferences']);
             $time_zone_offset = $prefs['PREF_TIMEZONE'];
             if ($time_zone_offset == "") {
                 // CHECK CONFIG TABLE SET BY ADMIN
                 $sql = "SELECT value \n\t\t\t\t\tFROM " . TABLE_PREFIX . "config\n\t\t\t\t\tWHERE name='pref_defaults'";
                 $result = mysql_query($sql, $db) or die(mysql_error());
                 if (mysql_num_rows($result) > 0) {
                     //pref_defaults is set
                     $row = mysql_fetch_row($result);
                     $prefs = unserialize($row[0]);
                     $time_zone_offset = $prefs['PREF_TIMEZONE'];
                 }
             }
             if ($time_zone_offset != "") {
                 $sql = "SELECT time_zone \n\t\t\t\t\t\tFROM " . TABLE_PREFIX . "calendar_timezone_offset \n\t\t\t\t\t\tWHERE offset='" . $time_zone_offset . "'";
                 $result = mysql_query($sql, $db) or die(mysql_error());
                 $row = mysql_fetch_row($result);
                 $time_zone = $row[0];
             } else {
                 // GET TIMEZONE FROM SERVER
                 $version = phpversion();
                 $version = str_replace('Current PHP version: ', '', $version);
                 $version = explode('.', $version);
                 if ($version[0] > 4) {
                     $time_zone = date_default_timezone_get();
                 } else {
                     // get from ini file
                     $time_zone = ini_get('date.timezone');
                 }
                 $sql = "SELECT offset \n\t\t\t\t\t\t\tFROM " . TABLE_PREFIX . "calendar_timezone_offset \n\t\t\t\t\t\t\tWHERE time_zone='" . $time_zone . "'";
                 $result = mysql_query($sql, $db) or die(mysql_error());
                 $row = mysql_fetch_row($result);
                 $time_zone_offset = $row[0];
             }
         } else {
             $sql = "SELECT offset \n\t\t\t\t\t\t\tFROM " . TABLE_PREFIX . "calendar_timezone_offset \n\t\t\t\t\t\t\tWHERE time_zone='" . $time_zone . "'";
             $result = mysql_query($sql, $db) or die(mysql_error());
             $row = mysql_fetch_row($result);
             $time_zone_offset = $row[0];
         }
     }
     /** HEADER **/
     $v->setProperty('X-WR-CALNAME', $user);
     $v->setProperty('X-WR-CALDESC', 'ATutor Dates');
     $v->setProperty('X-WR-TIMEZONE', $time_zone);
     // set the ical timezone component
     $e =& $v->newComponent('vtimezone');
     $e->setProperty('TZID', $time_zone);
     $e->setProperty('X-LIC-LOCATION', $time_zone);
     $t =& $e->newComponent('standard');
     $t->setProperty('tzoffsetfrom', $this->get_tz_offset($time_zone_offset));
     $t->setProperty('tzoffsetto', $this->get_tz_offset($time_zone_offset));
     $t->setProperty('dtstart', 1970, 1, 1, 0, 0, 00);
     /** HEADER **/
     // NOW LOAD THE EVENTS
     global $moduleFactory;
     $coursesmod = $moduleFactory->getModule("_core/courses");
     $assignmentsmod = $moduleFactory->getModule("_standard/assignments");
     $testsmod = $moduleFactory->getModule("_standard/tests");
     // GET ALL THE COURSES THE USER IS ENROLLED IN
     $sql = "SELECT course_id\n            \tFROM " . TABLE_PREFIX . "course_enrollment \n            \tWHERE member_id = '" . $_SESSION['member_id'] . "'";
     $course_result = mysql_query($sql, $db) or die(mysql_error());
     while ($row = mysql_fetch_row($course_result)) {
//.........这里部分代码省略.........
开发者ID:laiello,项目名称:atutor-calendar,代码行数:101,代码来源:CalExport.class.php

示例4: _insert_event_in_calendar

 /**
  * Convert an event from a feed into a new Ai1ec_Event object and add it to
  * the calendar.
  *
  * @param Ai1ec_Event $event    Event object.
  * @param vcalendar   $calendar Calendar object.
  * @param bool        $export   States whether events are created for export.
  * @param array       $params   Additional parameters for export.
  *
  * @return void
  */
 protected function _insert_event_in_calendar(Ai1ec_Event $event, vcalendar $calendar, $export = false, array $params = array())
 {
     $tz = $this->_registry->get('date.timezone')->get_default_timezone();
     $e =& $calendar->newComponent('vevent');
     $uid = '';
     if ($event->get('ical_uid')) {
         $uid = addcslashes($event->get('ical_uid'), "\\;,\n");
     } else {
         $uid = $event->get_uid();
         $event->set('ical_uid', $uid);
         $event->save(true);
     }
     $e->setProperty('uid', $this->_sanitize_value($uid));
     $e->setProperty('url', get_permalink($event->get('post_id')));
     // =========================
     // = Summary & description =
     // =========================
     $e->setProperty('summary', $this->_sanitize_value(html_entity_decode(apply_filters('the_title', $event->get('post')->post_title), ENT_QUOTES, 'UTF-8')));
     $content = apply_filters('the_content', $event->get('post')->post_content);
     $content = str_replace(']]>', ']]&gt;', $content);
     $content = html_entity_decode($content, ENT_QUOTES, 'UTF-8');
     // Prepend featured image if available.
     $size = null;
     $avatar = $this->_registry->get('view.event.avatar');
     if ($img_url = $avatar->get_post_thumbnail_url($event, $size)) {
         $content = '<div class="ai1ec-event-avatar alignleft timely"><img src="' . esc_attr($img_url) . '" width="' . $size[0] . '" height="' . $size[1] . '" /></div>' . $content;
     }
     if (isset($params['no_html']) && $params['no_html']) {
         $e->setProperty('description', $this->_sanitize_value(strip_tags(strip_shortcodes($content))));
         if (!empty($content)) {
             $html_content = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\\n' . '<HTML>\\n<HEAD>\\n<TITLE></TITLE>\\n</HEAD>\\n<BODY>' . $content . '</BODY></HTML>';
             $e->setProperty('X-ALT-DESC', $this->_sanitize_value($html_content), array('FMTTYPE' => 'text/html'));
             unset($html_content);
         }
     } else {
         $e->setProperty('description', $this->_sanitize_value($content));
     }
     $revision = (int) current(array_keys(wp_get_post_revisions($event->get('post_id'))));
     $e->setProperty('sequence', $revision);
     // =====================
     // = Start & end times =
     // =====================
     $dtstartstring = '';
     $dtstart = $dtend = array();
     if ($event->is_allday()) {
         $dtstart['VALUE'] = $dtend['VALUE'] = 'DATE';
         // For exporting all day events, don't set a timezone
         if ($tz && !$export) {
             $dtstart['TZID'] = $dtend['TZID'] = $tz;
         }
         // For exportin' all day events, only set the date not the time
         if ($export) {
             $e->setProperty('dtstart', $this->_sanitize_value($event->get('start')->format('Ymd')), $dtstart);
             $e->setProperty('dtend', $this->_sanitize_value($event->get('end')->format('Ymd')), $dtend);
         } else {
             $e->setProperty('dtstart', $this->_sanitize_value($event->get('start')->format("Ymd\\T")), $dtstart);
             $e->setProperty('dtend', $this->_sanitize_value($event->get('end')->format("Ymd\\T")), $dtend);
         }
     } else {
         if ($tz) {
             $dtstart['TZID'] = $dtend['TZID'] = $tz;
         }
         // This is used later.
         $dtstartstring = $event->get('start')->format("Ymd\\THis");
         $e->setProperty('dtstart', $this->_sanitize_value($dtstartstring), $dtstart);
         $e->setProperty('dtend', $this->_sanitize_value($event->get('end')->format("Ymd\\THis")), $dtend);
     }
     // ========================
     // = Latitude & longitude =
     // ========================
     if (floatval($event->get('latitude')) || floatval($event->get('longitude'))) {
         $e->setProperty('geo', $event->get('latitude'), $event->get('longitude'));
     }
     // ===================
     // = Venue & address =
     // ===================
     if ($event->get('venue') || $event->get('address')) {
         $location = array($event->get('venue'), $event->get('address'));
         $location = array_filter($location);
         $location = implode(' @ ', $location);
         $e->setProperty('location', $this->_sanitize_value($location));
     }
     $categories = array();
     $language = get_bloginfo('language');
     foreach ($this->_taxonomy_model->get_post_categories($event->get('post_id')) as $cat) {
         $categories[] = $cat->name;
     }
     $e->setProperty('categories', implode(',', $categories), array("LANGUAGE" => $language));
     $tags = array();
//.........这里部分代码省略.........
开发者ID:newmight2015,项目名称:psmpsm,代码行数:101,代码来源:ics.php

示例5: Event

//echo "<br />";
$iduser = $_SESSION['do_User']->iduser;
//echo $user;
//$time = time();
//$key = "$iduser"."$time";
$e_set_api = new Event("do_User->eventGenerateAPIKey");
$e_set_api->addParam("goto", $_SERVER['PHP_SELF']);
if ($_SESSION['do_User']->api_key != '') {
    $apikey = $_SESSION['do_User']->api_key;
    $c->setConfig(array("directory" => "Calevents", "filename" => "{$iduser}.ics"));
    $vivek->getAllTaskByuser($iduser);
    while ($vivek->fetch()) {
        $stdt = explode('-', $vivek->getData("due_date_dateformat"));
        $startdate = "{$stdt['0']}" . "{$stdt['1']}" . "{$stdt['2']}";
        $enddate = $startdate;
        $e =& $c->newComponent('vevent');
        //$e->setProperty( 'dtstart', $startdate );
        //$e->setProperty( 'dtend', $enddate );
        $e->setProperty("dtstart", "{$startdate}", array("VALUE" => "DATE"));
        $e->setProperty('description', $vivek->getData("task_description"));
        $e->setProperty('summary', $vivek->getData("task_description"));
        $e->setProperty('class', 'PUBLIC');
    }
    $c->createCalendar();
    $str = $c->saveCalendar();
    $tt = $_SERVER["SERVER_NAME"];
    $path = "http://" . "{$tt}" . "/" . "Calevents/" . "{$iduser}.ics";
    $ff = "Calevents/{$iduser}.ics";
    system("chmod 0777 {$ff}");
    echo _('Your iCal URL is : ' . $path . ' ');
} else {
开发者ID:jacquesbagui,项目名称:ofuz,代码行数:31,代码来源:ical_test1.php

示例6: addcslashes

 /**
  * Convert an event from a feed into a new Ai1ec_Event object and add it to
  * the calendar.
  *
  * @param Ai1ec_Event $event    Event object
  * @param vcalendar   $calendar Calendar object
  * @param bool        $export   States whether events are created for export
  *
  * @return void
  */
 function insert_event_in_calendar(Ai1ec_Event $event, vcalendar &$calendar, $export = false)
 {
     global $ai1ec_events_helper;
     $tz = Ai1ec_Meta::get_option('timezone_string');
     $e =& $calendar->newComponent('vevent');
     $uid = '';
     if ($event->ical_uid) {
         $uid = addcslashes($event->ical_uid, "\\;,\n");
     } else {
         $uid = sprintf($this->get_uid_format(), $event->post->ID);
     }
     $e->setProperty('uid', $this->_sanitize_value($uid));
     $e->setProperty('url', get_permalink($event->post_id));
     // =========================
     // = Summary & description =
     // =========================
     $e->setProperty('summary', $this->_sanitize_value(html_entity_decode(apply_filters('the_title', $event->post->post_title), ENT_QUOTES, 'UTF-8')));
     $content = apply_filters('the_content', $event->post->post_content);
     $content = str_replace(']]>', ']]&gt;', $content);
     $content = html_entity_decode($content, ENT_QUOTES, 'UTF-8');
     // Prepend featured image if available.
     $size = null;
     if ($img_url = $event->get_post_thumbnail_url($size)) {
         $content = '<div class="ai1ec-event-avatar alignleft timely"><img src="' . esc_attr($img_url) . '" width="' . $size[0] . '" height="' . $size[1] . '" /></div>' . $content;
     }
     $e->setProperty('description', $this->_sanitize_value($content));
     // =====================
     // = Start & end times =
     // =====================
     $dtstartstring = '';
     $dtstart = $dtend = array();
     if ($event->allday) {
         $dtstart["VALUE"] = $dtend["VALUE"] = 'DATE';
         // For exporting all day events, don't set a timezone
         if ($tz && !$export) {
             $dtstart["TZID"] = $dtend["TZID"] = $tz;
         }
         // For exportin' all day events, only set the date not the time
         if ($export) {
             $e->setProperty('dtstart', $this->_sanitize_value(gmdate("Ymd", $ai1ec_events_helper->gmt_to_local($event->start))), $dtstart);
             $e->setProperty('dtend', $this->_sanitize_value(gmdate("Ymd", $ai1ec_events_helper->gmt_to_local($event->end))), $dtend);
         } else {
             $e->setProperty('dtstart', $this->_sanitize_value(gmdate("Ymd\\T", $ai1ec_events_helper->gmt_to_local($event->start))), $dtstart);
             $e->setProperty('dtend', $this->_sanitize_value(gmdate("Ymd\\T", $ai1ec_events_helper->gmt_to_local($event->end))), $dtend);
         }
     } else {
         if ($tz) {
             $dtstart["TZID"] = $dtend["TZID"] = $tz;
         }
         // This is used later.
         $dtstartstring = gmdate("Ymd\\THis", $ai1ec_events_helper->gmt_to_local($event->start));
         $e->setProperty('dtstart', $this->_sanitize_value($dtstartstring), $dtstart);
         $e->setProperty('dtend', $this->_sanitize_value(gmdate("Ymd\\THis", $ai1ec_events_helper->gmt_to_local($event->end))), $dtend);
     }
     // ========================
     // = Latitude & longitude =
     // ========================
     if (floatval($event->latitude) || floatval($event->longitude)) {
         $e->setProperty('geo', $event->latitude, $event->longitude);
     }
     // ===================
     // = Venue & address =
     // ===================
     if ($event->venue || $event->address) {
         $location = array($event->venue, $event->address);
         $location = array_filter($location);
         $location = implode(' @ ', $location);
         $e->setProperty('location', $this->_sanitize_value($location));
     }
     $categories = array();
     $language = get_bloginfo('language');
     foreach (wp_get_post_terms($event->post_id, 'events_categories') as $cat) {
         $categories[] = $cat->name;
     }
     $e->setProperty('categories', implode(',', $categories), array("LANGUAGE" => $language));
     $tags = array();
     foreach (wp_get_post_terms($event->post_id, 'events_tags') as $tag) {
         $tags[] = $tag->name;
     }
     if (!empty($tags)) {
         $e->setProperty('X-TAGS', implode(',', $tags), array("LANGUAGE" => $language));
     }
     // ==================
     // = Cost & tickets =
     // ==================
     if ($event->cost) {
         $e->setProperty('X-COST', $this->_sanitize_value($event->cost));
     }
     if ($event->ticket_url) {
         $e->setProperty('X-TICKETS-URL', $this->_sanitize_value($event->ticket_url));
//.........这里部分代码省略.........
开发者ID:briancompton,项目名称:knightsplaza,代码行数:101,代码来源:class-ai1ec-exporter-helper.php

示例7: array

 function test_add_date()
 {
     $tests = array('2011-01-20' => array('params' => array('VALUE' => 'DATE'), 'value' => array('year' => '2011', 'month' => '01', 'day' => '20')), '2011-01-20 17:30:15' => array('params' => '', 'value' => array('year' => '2011', 'month' => '01', 'day' => '20', 'hour' => '17', 'min' => '30', 'sec' => '15')));
     $calendar = new vcalendar(array('unique_id' => 'test'));
     $event =& $calendar->newComponent('vevent');
     foreach ($tests as $test => $expected) {
         $this->formatter->add_date($event, 'dtstart', $test);
         $this->assertEqual($event->dtstart, $expected);
     }
 }
开发者ID:bufvc,项目名称:bufvc-potnia-framework,代码行数:10,代码来源:testFormatter.php

示例8: getIcal

  public function getIcal($studio = null) {
 
    error_reporting(0);
 
    sfProjectConfiguration::getActive()->loadHelpers(array("Number","Url","Date")); 
    
    require_once sfConfig::get('sf_lib_dir').'/vendor/icalcreator/iCalcreator.class.php';

    error_reporting(E_ALL ^ E_NOTICE);

    $config = array( "unique_id" => "downtownswing.rockstep.ch" );
    $v = new vcalendar( $config );
    
    $v->setProperty( "method",
                     "PUBLISH" );
    $v->setProperty( "X-WR-CALNAME",
                     "Downtownswing Kurse" );
    $v->setProperty( "X-WR-CALDESC",
                     "" );
    //$vcalendar->setProperty( "X-WR-RELCALID", $uuid );
    $v->setProperty( "X-WR-TIMEZONE",
                     "Europe/Zurich" ); 
    
    // TODO
    // - filter für kommende, publizierte artikel (model)
    // - verarbeitung von gecancelten events
    // - event uuid in db speichern und hier einsetzen (model, on publish, für updates + cancels)
    
    $lessons = Doctrine_Core::getTable('dsLesson')
    ->createQuery('a')
    ->execute();
    
    // todo
    // join dance, teachers, ..
  
    foreach( $lessons as $lesson ) {
      
      $e = & $v->newComponent( 'vevent' );
      
      $e->setUid( $lesson->getIcalUID() );
      $e->setSequence( $lesson->getIcalSequence() );
      
      $e->setProperty( 'categories'
                     , $lesson->getDance() );
      // $e->setProperty( 'dtstart', '2012-01-06 20:00:00' );
      
      $e->setProperty( 'dtstart', 
            $lesson->getDateTimeObject('date')->format('Y'), // date("Y", $lesson->getDate()), // date("Y", $lesson->getDateTimeObject('date')->format('Y') ),
            $lesson->getDateTimeObject('date')->format('m'), // date("m", $lesson->getDate()), //date("m", $lesson->getDateTimeObject('date')->format('m') ),
            $lesson->getDateTimeObject('date')->format('d'), // date("d", $lesson->getDate()), //date("d", $lesson->getDateTimeObject('date')->format('d') ),
            date('H', strtotime($lesson->getTime())),
            date('i', strtotime($lesson->getTime())),
            00);
     
      $e->setProperty( 'duration',
                        array( "min" => $lesson->getDuration() ));
      
     
      // summary
      $summary = $lesson->getName() ;
      $e->setProperty( "summary", strip_tags($summary));
      
      // description
      $description = $lesson->getClass()->getDance().", ".
        $lesson->getClass()->getTrack()->getType()."\r\n".
        $lesson->getClass()."\r\n".
        $lesson->getTeachersAsString();
      $e->setProperty( 'description',
                       $description );

      // location
      /*
      $e->setProperty( 'location',
                       strip_tags($lesson->getStudio()) );
      */
      /*
      $request = sfContext::getInstance()->getRequest();
      $url  = 'http'.($request->isSecure() ? 's' : '').'://'. $request->getHost();
      $url .= url_for('event_show',$event);
      
      $e->setProperty( "url",
                       strip_tags($url ));
      */
                             /*
      $e->setProperty( "contact", strip_tags($concert->getContact() ));
          //$e->setProperty( "organizer", strip_tags($concert->getContact() ));
          //$e->setProperty( "geo", 11.23456, -23.45678 );
       */
      
      $e->setProperty( 'last-modified' ,
                           $this->datestring2icalArr( $lesson->getCreatedAt() ));
      /*
      if($lesson->getUpdatedAt())
          $e->setProperty( 'last-modified' ,
                           $this->datestring2icalArr( $event->getUpdatedAt() ));
      else
          $e->setProperty( 'last-modified' ,
                           $this->datestring2icalArr( $event->getCreatedAt() ));
      }
      */
//.........这里部分代码省略.........
开发者ID:romankallweit,项目名称:swingmachine,代码行数:101,代码来源:dsLessonTable.class.php

示例9: foreach

 $v->setProperty("method", "PUBLISH");
 // required of some calendar software
 $v->setProperty("x-wr-calname", $tables[0]['stuname'] . "的课表 " . $tables[0]['year'] . '-' . $tables[0]['term']);
 // required of some calendar software
 $v->setProperty("X-WR-CALDESC", "");
 // required of some calendar software
 $v->setProperty("X-WR-TIMEZONE", "Asia/Shanghai");
 // required of some calendar software
 foreach ($t1 as $o) {
     $odata = array('name' => $o->name, 'credit' => $o->credit, 'tutor' => $o->tutor, 'schedule' => $o->schedule);
     if (count($o->schedule)) {
         foreach ($o->schedule as $os) {
             $startTimeTrans = array([], ['8', '00'], ['8', '50'], ['9', '50'], ['10', '40'], ['11', '30'], ['13', '20'], ['14', '10'], ['15', '10'], ['16', '00'], ['16', '50'], ['18', '30'], ['19', '20'], ['20', '10']);
             $endTimeTrans = array([], ['8', '45'], ['9', '35'], ['10', '35'], ['11', '25'], ['12', '15'], ['14', '05'], ['14', '55'], ['15', '55'], ['16', '45'], ['17', '35'], ['19', '15'], ['20', '05'], ['20', '55']);
             $dateArr = $school->getSchoolCalendar2Date($tables[0]['year'], $tables[0]['term'], $os->week[0], $os->day);
             $vevent = $v->newComponent("vevent");
             // create an event calendar component
             $vevent->setProperty("dtstart", array("year" => $dateArr[0], "month" => $dateArr[1], "day" => $dateArr[2], "hour" => $startTimeTrans[$os->startTime][0], "min" => $startTimeTrans[$os->startTime][1], "sec" => 0));
             $vevent->setProperty("dtend", array("year" => $dateArr[0], "month" => $dateArr[1], "day" => $dateArr[2], "hour" => $endTimeTrans[$os->startTime][0], "min" => $endTimeTrans[$os->startTime + $os->durationTime - 1][1], "sec" => 0));
             $vevent->setProperty("LOCATION", $os->location);
             // property name - case independent
             $vevent->setProperty("summary", $o->name);
             $vevent->setProperty("description", $o->tutor);
             if (count($os->week) > 1) {
                 // Set recurrence rule
                 $endWeek = $os->week[count($os->week) - 1];
                 $iWeek = $os->week[0];
                 $weekdayTrans = array('', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU');
                 $vevent->setProperty("RRULE", array("FREQ" => "WEEKLY", "COUNT" => $endWeek - $iWeek + 1, "INTERVAL" => 1, "WKST" => $weekdayTrans[$os->day]));
                 for (; $iWeek < $endWeek; $iWeek++) {
                     if (!in_array($iWeek, $os->week)) {
开发者ID:phy25,项目名称:bPlanner,代码行数:31,代码来源:index.php

示例10: foreach

}
if (isset($_GET["debug"])) {
    echo "<pre>";
    foreach ($listeEvt as $evt) {
        echo $evt;
    }
    echo "</pre>";
} else {
    // sortie au format iCalendar
    $sourcesEnteteICal = array();
    foreach (array_keys($listeSourcesAAnalyser) as $src) {
        array_push($sourcesEnteteICal, $SOURCES[$src]["nomSite"]);
    }
    $vcal = new vcalendar(array("unique_id" => "[" . implode(',', $sourcesEnteteICal) . "]"));
    foreach ($listeEvt as $evmt) {
        $event =& $vcal->newComponent("vevent");
        // si la date de fin n'est pas positionnée
        if ($evmt->dateFin == 0) {
            // on déclare l'évènement comme un évènement à la journée
            $event->setProperty("dtstart", array("timestamp" => $evmt->dateDebut, "tz" => "Europe/Paris"), array("VALUE" => "DATE"));
        } else {
            // on déclare l'évènement entre deux dates
            $event->setProperty("dtstart", array("timestamp" => $evmt->dateDebut, "tz" => "Europe/Paris"), array("VALUE" => "DATE-TIME"));
            $event->setProperty("dtend", array("timestamp" => $evmt->dateFin, "tz" => "Europe/Paris"), array("VALUE" => "DATE-TIME"));
        }
        $event->setProperty("summary", '[' . $evmt->lieu . '] ' . $evmt->description);
        $event->setProperty("description", $evmt->description . '\\n' . $evmt->lien);
        $event->setProperty("location", $evmt->lieu);
    }
    echo $vcal->createCalendar();
}
开发者ID:nagromc,项目名称:braderies2iCalendar,代码行数:31,代码来源:getcal.php

示例11: _insert_event_in_calendar

 /**
  * Convert an event from a feed into a new Ai1ec_Event object and add it to
  * the calendar.
  *
  * @param Ai1ec_Event $event    Event object.
  * @param vcalendar   $calendar Calendar object.
  * @param bool        $export   States whether events are created for export.
  * @param array       $params   Additional parameters for export.
  *
  * @return void
  */
 protected function _insert_event_in_calendar(Ai1ec_Event $event, vcalendar $calendar, $export = false, array $params = array())
 {
     $tz = $this->_registry->get('date.timezone')->get_default_timezone();
     $e =& $calendar->newComponent('vevent');
     $uid = '';
     if ($event->get('ical_uid')) {
         $uid = addcslashes($event->get('ical_uid'), "\\;,\n");
     } else {
         $uid = $event->get_uid();
         $event->set('ical_uid', $uid);
         $event->save(true);
     }
     $e->setProperty('uid', $this->_sanitize_value($uid));
     $e->setProperty('url', get_permalink($event->get('post_id')));
     // =========================
     // = Summary & description =
     // =========================
     $e->setProperty('summary', $this->_sanitize_value(html_entity_decode(apply_filters('the_title', $event->get('post')->post_title), ENT_QUOTES, 'UTF-8')));
     $content = apply_filters('ai1ec_the_content', apply_filters('the_content', $event->get('post')->post_content));
     $post_meta_values = get_post_meta($event->get('post_id'), '', false);
     $cost_type = null;
     if ($post_meta_values) {
         foreach ($post_meta_values as $key => $value) {
             if ('_ai1ec_cost_type' === $key) {
                 $cost_type = $value[0];
             }
             if (isset($params['xml']) && $params['xml'] && false !== preg_match('/^x\\-meta\\-/i', $key)) {
                 $e->setProperty($key, $this->_sanitize_value($value));
             }
         }
     }
     if (false === ai1ec_is_blank($cost_type)) {
         $e->setProperty('X-COST-TYPE', $this->_sanitize_value($cost_type));
     }
     $url = '';
     $api = $this->_registry->get('model.api.api-ticketing');
     $api_event_id = $api->get_api_event_id($event->get('post_id'));
     if ($api_event_id) {
         //getting all necessary informations that will be necessary on imported ticket events
         $e->setProperty('X-API-EVENT-ID', $api_event_id);
         $e->setProperty('X-API-URL', $api->get_api_event_url($event->get('post_id')));
         $e->setProperty('X-CHECKOUT-URL', $api->get_api_event_checkout_url($event->get('post_id')));
         $e->setProperty('X-API-EVENT-CURRENCY', $api->get_api_event_currency($event->get('post_id')));
     } else {
         if ($event->get('ticket_url')) {
             $url = $event->get('ticket_url');
         }
     }
     //Adding Ticket URL to the Description field
     if (false === ai1ec_is_blank($url)) {
         $content = $this->_remove_ticket_url($content);
         $content = $content . '<p>' . __('Tickets: ', AI1EC_PLUGIN_NAME) . '<a class="ai1ec-ticket-url-exported" href="' . $url . '">' . $url . '</a>.</p>';
     }
     $content = str_replace(']]>', ']]&gt;', $content);
     $content = html_entity_decode($content, ENT_QUOTES, 'UTF-8');
     // Prepend featured image if available.
     $size = null;
     $avatar = $this->_registry->get('view.event.avatar');
     $matches = $avatar->get_image_from_content($content);
     // if no img is already present - add thumbnail
     if (empty($matches)) {
         $post_id = get_post_thumbnail_id($event->get('post_id'));
         $images = null;
         $added = null;
         foreach (array('thumbnail', 'medium', 'large', 'full') as $_size) {
             $attributes = wp_get_attachment_image_src($post_id, $_size);
             if (false !== $attributes) {
                 $key_str = sprintf('%d_%d', $attributes[1], $attributes[2]);
                 if (null === $added || false === isset($added[$key_str])) {
                     $added[$key_str] = true;
                     array_unshift($attributes, $_size);
                     $images[] = implode(';', $attributes);
                 }
             }
         }
         if (null !== $images) {
             $e->setProperty('X-WP-IMAGES-URL', $this->_sanitize_value(implode(',', $images)));
         }
         if ($img_url = $avatar->get_post_thumbnail_url($event, $size)) {
             $content = '<div class="ai1ec-event-avatar alignleft timely"><img src="' . esc_attr($img_url) . '" width="' . $size[0] . '" height="' . $size[1] . '" /></div>' . $content;
         }
     }
     if (isset($params['no_html']) && $params['no_html']) {
         $e->setProperty('description', $this->_sanitize_value(strip_tags(strip_shortcodes($content))));
         if (!empty($content)) {
             $html_content = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\\n' . '<HTML>\\n<HEAD>\\n<TITLE></TITLE>\\n</HEAD>\\n<BODY>' . $content . '</BODY></HTML>';
             $e->setProperty('X-ALT-DESC', $this->_sanitize_value($html_content), array('FMTTYPE' => 'text/html'));
             unset($html_content);
         }
//.........这里部分代码省略.........
开发者ID:uwmadisoncals,项目名称:Cluster-Plugins,代码行数:101,代码来源:ics.php

示例12: save

  public function save(Doctrine_Connection $conn = null)
  {
    if ($this->isNew() || !$this->getIcalUID()) # && !$this->getIcalUID()
    {

      require_once sfConfig::get('sf_lib_dir').'/vendor/icalcreator/iCalcreator.class.php';
      $config = array( "unique_id" => "downtownswing.rockstep.ch" );
      $v = new vcalendar( $config );
      $e = & $v->newComponent( 'vevent' );
      $e->createUid();
      #var_dump( $e->uid );     
      $this->setIcalUID($e->uid['value']);
            
      #$now = $this->getCreatedAt() ? $this->getDateTimeObject('created_at')->format('U') : time();
      #$this->setExpiresAt(date('Y-m-d H:i:s', $now + 86400 * 30));
    } else {
      $this->setIcalSequence( $this->getIcalSequence()+1 );
    }
 
    return parent::save($conn);
  }
开发者ID:romankallweit,项目名称:swingmachine,代码行数:21,代码来源:dsLesson.class.php

示例13: setCourseEvent

function setCourseEvent(Course $course, vcalendar $ical, array $info)
{
    $startTime = semInfo($info['year'], $info['sem']);
    $lessons = $course->lessons;
    //add lessons
    foreach ($lessons as $lesson) {
        $lessonEvent =& $ical->newComponent('vevent');
        //set summary(name)
        $lessonEvent->setProperty('summary', $lesson->summary);
        //set start and end time.
        //start
        $start = fewDaysNextOrBefore($startTime, '+' . ($lesson->time->wkDay - 1) . ' days');
        $shour = $lesson->time->startTime / 100;
        $smin = $lesson->time->startTime % 100;
        $start['hour'] = $shour;
        $start['min'] = $smin;
        $start['sec'] = 0;
        $lessonEvent->setProperty('dtstart', $start);
        //end
        $end = fewDaysNextOrBefore($startTime, '+' . ($lesson->time->wkDay - 1) . ' days');
        $ehour = $lesson->time->endTime / 100;
        $emin = intval($lesson->time->endTime) % 100;
        $end['hour'] = $ehour;
        $end['min'] = $emin;
        $end['sec'] = 0;
        $lessonEvent->setProperty('dtend', $end);
        //set location
        $lessonEvent->setProperty('LOCATION', $lesson->venue);
        //set description
        $lessonEvent->setProperty('description', $lesson->description);
        //set week repeat
        if (!$lesson->wkRepeatValid) {
            continue;
        }
        $endTime = fewDaysNextOrBefore($startTime, '+14 weeks');
        $rule = array('FREQ' => 'WEEKLY', 'UNTIL' => $endTime['year'] . '/' . $endTime['month'] . '/' . $endTime['day']);
        $lessonEvent->setProperty("rrule", $rule);
        $exdate = array('year' => $start['year'], 'month' => $start['month'], 'day' => $start['day']);
        $recess = fewDaysNextOrBefore($exdate, '+7 weeks');
        $recess['hour'] = $shour;
        $recess['min'] = $smin;
        $recess['sec'] = 0;
        $wk = $lesson->time->wkRepeat;
        $exdates = array();
        array_push($exdates, $recess);
        for ($i = 0; $i < 13; $i++) {
            if ($i < 7) {
                $j = $i;
            } else {
                $j = $i + 1;
            }
            if (!$wk[$i]) {
                $w = fewDaysNextOrBefore($exdate, '+' . $j . ' weeks');
                $w['hour'] = $shour;
                $w['min'] = $smin;
                $w['sec'] = 0;
                array_push($exdates, $w);
            }
        }
        $lessonEvent->setProperty('exdate', $exdates, array('TZID' => $info['tz']));
    }
    //add examtime
    $examtime = $course->examTime;
    if ($examtime == null) {
        return;
    }
    $start = array('year' => $examtime->year, 'month' => $examtime->month, 'day' => $examtime->day, 'hour' => $examtime->startTime / 100, 'min' => $examtime->startTime % 100, 'sec' => 0);
    $end = array('year' => $examtime->year, 'month' => $examtime->month, 'day' => $examtime->day, 'hour' => $examtime->endTime / 100, 'min' => $examtime->endTime % 100, 'sec' => 0);
    $exam =& $ical->newComponent('vevent');
    $exam->setProperty('dtstart', $start);
    $exam->setProperty('dtend', $end);
    $exam->setProperty('summary', $course->code . ' EXAM!');
    $exam->setProperty('description', $course->code . ', ' . $course->name . ', ' . $course->au);
    return;
}
开发者ID:hubandbob,项目名称:Course-Cal-php,代码行数:75,代码来源:ical.php


注:本文中的vcalendar::newComponent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。