我按照分步指南来实现模块事件日历功能。这是模块的链接:
http://drupal.org/project/events_calendar_feature
然后我创建了一个自定义模块,每天从外部网站下载信息(通过实现hook_cron)。此模块以编程方式自动创建类型为“data_event”的节点,我创建的节点(遵循上面提到的指南)每天都会在网站上创建所有新事件。这些是创建的新内容类型“data_event”中的所有字段:
标签:标题机器名称:标题字段类型:节点模块元素
LABEL:Body MACHINE NAME:body FIELD TYPE:节点模块元素
LABEL:日期机器名称:field_event_dates字段类型:日期WIDGET:文本字段
问题是正确设置节点的各个字段。我如何知道要设置日期的字段名称?
这是我目前在我的模块中的实现。注释行是一些测试没有成功。
日期格式: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);
}
提前感谢您的回答。
答案 0 :(得分:0)
让我们首先确保您已将字段配置为包含多个值? - 点击你的字段后面的“编辑”。 - 确认“数值”配置为具有多于1。
完成后,您应该能够通过为以下内容分配值来设置第一个值: $ node-> field_event_dates [$ node-> language] [0] ['value'] =“无论你想要它是什么”。 和第二个日期: $ node-> field_event_dates [$ node-> language] [1] ['value'] =“这是第二个值”。
等等......直到: $ node-> field_event_dates [$ node-> language] [9] ['value'] =“这是最后一次”(假设您已将最大值设置为10)。
我希望这有帮助吗?