2

URLからパラメーターを取得し、drupal 7でdrupalノードを作成するPHPファイルを作成しました

コード:

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

$node=new stdClass;
$node->title='ABCD';
$node->type='order';
$node->language=LANGUAGE_NONE;
$node->uid=1;
$node->field_name['und'][0]['value']='ABC';
$node->field_contact['und'][0]['value']='1234567890';
$node->field_addr['und'][0]['value']='LMNOPQRST';
$node->field_email['und'][0]['value']='abc@abc.com';
$node->field_orderdetails['und'][0]['value']='fgheghfgjhgfhj';
$node->field_transaddr['und'][0]['value']='hdfghwgfhwgj';
$node->field_outletid['und'][0]['value']='MCK01';
node_save($node);

?>

PHP を介したこのノードの作成について、drupal で指定する必要がありますか?..

私はdrupalが初めてです。よろしくお願いします

4

2 に答える 2

1

あなたのコードはノードを作成するのに十分です。微調整のためのいくつかの変更を次に示します。

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

$node = new stdClass();
$node->type = 'order';
node_object_prepare($node); // Prepare node object with default values. 

$node->title = 'ABCD';
$node->language = LANGUAGE_NONE; // LANGUAGE_NONE is a constant with value "und".
$node->uid = 1;
$node->field_name[LANGUAGE_NONE][0]['value']='ABC';
$node->field_contact[LANGUAGE_NONE][0]['value']='1234567890';
$node->field_addr[LANGUAGE_NONE][0]['value']='LMNOPQRST';
$node->field_email[LANGUAGE_NONE][0]['value']='abc@abc.com';
$node->field_orderdetails[LANGUAGE_NONE][0]['value']='fgheghfgjhgfhj';
$node->field_transaddr[LANGUAGE_NONE][0]['value']='hdfghwgfhwgj';
$node->field_outletid[LANGUAGE_NONE][0]['value']='MCK01';

node_save($node);

ただし、このスニペットを外部ファイルとして使用する必要はありません。Drupal にはフックhook_cronがたくさんあります。また、メンテナンス時にコードを実行するために実装することもできます。

于 2013-03-22T06:31:38.777 に答える
0

あなたのコードは完全に問題ありません。あなたがする必要があるのは、特定のイベント(メニュー、またはノードの追加/編集/削除イベント)でトリガーすることだけです。

于 2013-05-15T12:03:10.753 に答える