您在這裡

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 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。