0

ステップバイステップガイドに従って、モジュールイベントカレンダー機能を実装しました。これはモジュールへのリンクです:

http://drupal.org/project/events_calendar_feature

次に、外部のWebサイトから毎日情報をダウンロードするカスタムモジュールを作成しました(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". および 2 番目の日付: $node->field_event_dates[$node->language][1]['value'] = "これは 2 番目の値です".

等...

$node->field_event_dates[$node->language][9]['value'] = "これが最後の可能性です" (最大値を 10 に設定した場合)。

これが役立つことを願っていますか?

于 2013-02-08T00:34:21.723 に答える