繁体   English   中英

通过PHP在Drupal中创建自定义节点

[英]Create a custom node in drupal by PHP

我创建了一个PHP文件,该文件从URL获取参数并在drupal 7中创建了一个drupal节点。

码:

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

?>

我是否需要在drupal中指定有关通过PHP创建此节点的信息?

我是drupal的新手,谢谢

您的代码足以创建节点。 以下是一些微调的更改:

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在维护期间执行代码。

您的代码非常好。 您只需要在特定事件(在菜单上,或任何节点的添加/编辑/删除事件)上触发它即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM