0

我按照分步指南来实现模块事件日历功能。这是模块的链接:

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);
}

提前感谢您的回答。

4

1 回答 1

0

我们首先确保您已将字段配置为包含多个值?-- 在您的字段后面单击“编辑”。-- 验证“值的数量”是否配置为大于 1。

完成后,您应该能够通过将值分配给: $node->field_event_dates[$node->language][0]['value'] = "whatever you want it to be" 来设置第一个值。和第二个日期: $node->field_event_dates[$node->language][1]['value'] = "这是第二个值"。

ETC...

直到: $node->field_event_dates[$node->language][9]['value'] = "这是最后可能的"(假设您已将最大值设置为 10)。

我希望这有帮助?

于 2013-02-08T00:34:21.723 回答