簡體   English   中英

創建動態Drupal節點期間的數據庫查詢以獲取實體ID

[英]Database Query during Dynamic Drupal node creation to get Entity ID

我有一個腳本可以從我們的沖浪網絡攝像頭獲取最新圖像,並保存一個“照片”類型的節點。 在該內容類型中,我有一個引用膨脹大小的實體字段(內容類型swell_data)。 我可以添加一個靜態實體id沒問題:

// Reference Swell Data ID 176821 
$node->field_buoy_ref[$node->language][0]['target_id'] = 176821;

我如何動態查找由swell_data內容類型(使用CRON作業每小時添加一次)創建的最新節點,並使用該值代替? 供您參考,這是我正在使用的當前腳本(感謝FooNinja

define('DRUPAL_ROOT', getcwd());
require_once 'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

$bodytext = "This was the view from the Camera at ".date('gA')." on ".date('l F jS Y');

$node = new stdClass(); // Create a new node object
$node->type = "photos"; // Or page, or whatever content type you like
node_object_prepare($node); 

$node->title = "Caswell Camera ". date('D M j G:i');
$node->language = LANGUAGE_NONE; 

// Author
$node->name = "Gower Live"; // UID of the author of the node; or use $node->name
// Publish Node
$node->status = 1;
//Set Body Text
$node->body[$node->language][0]['value']   = $bodytext;
$node->body[$node->language][0]['summary'] = text_summary($bodytext);
$node->body[$node->language][0]['format']  = 'filtered_html';

//Set Image Location (Caswell)
$node->field_photo_location[$node->language][0]['lat'] = 51.570195982718374;
$node->field_photo_location[$node->language][0]['lng'] = -4.030849980797484;

// Set the Photos date
$node->field_image_date[$node->language][0]['value'] = date("Y-m-d H:i:s");

// From the Webcam
$node->field_webcam_photo[$node->language][0]['value'] = "Caswell";

// Reference Wave Buoy
$node->field_buoy_ref[$node->language][0]['target_id'] = 176821; // I'd this value dynamically pulled from the DB

// Attach Latest Webcam Image
$file_path = drupal_realpath('images/webcams/caswell-webcam.jpg');
$file = (object) array(
            'uid' => 1,
            'uri' => $file_path,
            'filemime' => file_get_mimetype($file_path),
            'status' => 1,
);
// You can specify a subdirectory, e.g. public://foo/
$file = file_copy($file, 'public://');
$node->field_user_photo[$node->language][0] = (array) $file;

$path = 'node_created_on' . date('YmdHis');
$node->path = array('alias' => $path);

if($node = node_submit($node)) { // Prepare node for saving
    node_save($node);
    echo "Node with nid " . $node->nid . " saved!\n";
}

謝謝

背風處

我在引導線和賓果游戲下面添加了以下內容。

$result = db_query("SELECT nid, title, created FROM {node} WHERE type = :type AND title =:title", array(
  ':type' => 'wavebuoy_data',
  ':title' => "Buoy ". date('D M j gA'),
));
foreach($result as $row) {
$wave_buoy_ref_value = $row->nid;
//print_r($row);
}

然后,在構建節點時,添加以下內容:

// Reference Wave Buoy
$node->field_buoy_ref[$node->language][0]['target_id'] = $wave_buoy_ref_value;

背風處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM