2

I have a created a PHP file that takes parameters from URL and creates a drupal node in drupal 7

CODE:

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

?>

Do i need to specify in drupal about this node creation through PHP?..

I am new to drupal.Thank in advance

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 回答