我按照分步指南来实现模块事件日历功能。这是模块的链接:
http://drupal.org/project/events_calendar_feature
然后我创建了一个自定义模块,每天从外部网站下载信息(通过实现 hook_cron)。该模块自动以编程方式创建我创建的类型为“data_event”的节点(按照上面提到的指南),每天都有网站上的所有新事件。这些是创建的新内容类型“data_event”中的所有字段:
标签:标题机器名称:标题字段类型:节点模块元素
标签:正文机器名称:正文字段类型:节点模块元素
标签:日期机器名称:field_event_dates 字段类型:日期小部件:文本字段
问题是正确设置节点的各个字段。我如何知道要设置的日期的字段名称?
这是我当前在我的模块中的实现。注释行是一些没有成功的测试。
日期格式:dd/mm/yyyy 时间格式:hh:mm (24h)
function create_data_event_node($title, $id, $data_event_body, $startDate, $startDateTime, $endDate, $endDateTime) {
watchdog("Indico Downloader", "Creating new data event node.");
$node = new stdClass();
$node->type = "data_event";
$node->title = $title;
$node->language = LANGUAGE_NONE;
$node->id = $id;
node_object_prepare($node);
$node->body[$node->language][0]['value'] = $data_event_body;
$node->body[$node->language][0]['format'] = 'full_html';
// $node->field_event_dates[$node->language][0]['value']['date'] = $startDate." - ".$startDateTime;
// $node->field_event_dates = array(
// 0 => array(
// 'value' => format_date($om__result->date, 'short'),
// ),
// );
// $node->field_event_dates[$node->language][0]['value']['time'] = $startDateTime;
// $node->field_event_dates[$node->language][0]['value2']['date'] = $endDate;
// $node->field_event_dates[$node->language][0]['value2']['time'] = $endDateTime;
$node = node_submit($node);
node_save($node);
}
提前感谢您的回答。