我正在尝试更改现有ics文件中每个事件的类别。我有一个包含新类别的数组,希望循环遍历每个事件,并根据索引分配新类别。因此,我使用iCalcreator。
$event_categories = array();
// ...
// populating $event_categories with data
// ...
$config = array( "unique_id" => "cat_mod", "filename" => "myical.ics" );
$v = new vcalendar($config);
$i = 0;
$v->parse();
while( $vevent = $v->getComponent( "vevent" )) {
$vevent->setProperty("categories", $event_categories[$i]);
$i++;
continue;
}
$v->returnCalendar();
但这并不奏效。类别仍然相同。
有人能帮我吗?
摘要文件中有一个示例(查找"EDIT"部分)。它显示您需要记住uid并使用它重新插入修改后的事件
$v = new vcalendar( $config );
$v->parse();
while( $vevent = $v->getComponent( "vevent" )) {
$uid = $vevent->getProperty( "uid" );
// ... change event ..
$v->setComponent ( $vevent, $uid );
}