当前位置

Drupal网站中批量添加某些字段、更新日期等

James Qi 在 2012年12月29日 - 23:28 提交

  还是在Business Profile Report这个网站的设置中,我们有些特别的需求,例如:批量设置产品初始价格、顺序添加SKU产品编码、产品页面更新日期等,都可以用PHP程序来实现,程序bulk_set.php记录如下:

<?php
$_SERVER['HTTP_HOST'] = 'report.bizdirlib.com';
$_SERVER['SCRIPT_NAME'] = '/bulk_set.php';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$drupal_path = '/var/www/html/report.bizdirlib.com/';
chdir($drupal_path);

define('DRUPAL_ROOT', $drupal_path);

 

#require_once './includes/bootstrap.inc';
require_once DRUPAL_ROOT.'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

$node_type = "product";
$limit = 1;
$offset = 2;
$sql = "SELECT node.nid FROM {node} WHERE node.type = '$node_type' LIMIT $limit OFFSET $offset";
$result = db_query($sql);

 

while ($anode = $result->fetch()) {

$node=node_load($anode->nid);

 

//将CCK数据库字段读出赋值给变量

//基本信息,字段对应是准确的
#$sell_price=$node->field_sell_price[0]['value'];
#$model=$node->field_model[0]['value'];

 

$price_set="650.00000";
$model_set="C";
$date_set=gmmktime(0,0,0,12,16,2012);//hour,minute,second,month,day,year

$nid=$node->nid;

 

$new=$node;

$new->sell_price=$price_set;
$new->model=$model_set.$nid; //顺序设置SKU,产品编号除了第一个字母C以外后面是与$nid一样的数字
//$new->created=$date_set;
$new->changed=$date_set;
$new->revision_timestamp=$date_set;

 

node_save($new);

echo "<br>Done!<br>\n"
?>

  上面这个例子以Drupal 7系统来显示的,Drupal 6中也可以用类似的办法。

 

自由标签:

评论

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。