【问题标题】:How to create programmatically data event node and set data fields如何以编程方式创建数据事件节点并设置数据字段
【发布时间】:2013-02-06 10:22:20
【问题描述】:

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

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

提前感谢您的回答。

【问题讨论】:

    标签: events date drupal drupal-7 drupal-modules


    【解决方案1】:

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

    我希望这会有所帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      相关资源
      最近更新 更多