close
Node Import 模組是個非常好用的模組,可以把各種類型的 Node 資料先用打好,存成 csv 檔然後匯入。
不過對於自設的 CCK 欄位有個缺憾,就是在匯入之前必須先把 widget 的型態,由 option (select list / checkbox / radio) 改成 text,這樣才能匯入,實在是不太方便。
我修改了一點程式,讓它可以不用轉換 widget 的型態也能匯入,不過有個限制,目前修改的方式,只支援 Allowed values list 為下列形式:
修改方式:
找出 node_import/supported/cck/content.inc 中的 function content_node_import_prepare
在該函數接近結尾的地方找到:
改成:
這樣就可以了~
報錯在這裡。
不過對於自設的 CCK 欄位有個缺憾,就是在匯入之前必須先把 widget 的型態,由 option (select list / checkbox / radio) 改成 text,這樣才能匯入,實在是不太方便。
我修改了一點程式,讓它可以不用轉換 widget 的型態也能匯入,不過有個限制,目前修改的方式,只支援 Allowed values list 為下列形式:
value1不支援 Allowed values list 為下列形式:
value2
vaule3
key1|value1這是要注意的地方。
key2|value2
key3|value3
修改方式:
找出 node_import/supported/cck/content.inc 中的 function content_node_import_prepare
在該函數接近結尾的地方找到:
// Unset the dummy column value.
unset($node->$dummy_name);
改成:
$option_type = array('options_select' => true, 'options_onoff' => true, 'options_buttons' => true);
if (isset($option_type[$field['widget']['type']])) {
$keys = array();
foreach($node->$field_name as $value_list) {
$keys[] = $value_list['value'];
}
if ($field['multiple'] || $field['widget']['type'] == 'options_onoff') {
$node->$field_name += array('keys' => $keys);
} else {
$node->$field_name += array('key' => reset($keys));
}
}
// Unset the dummy column value.
unset($node->$dummy_name);
這樣就可以了~
報錯在這裡。
全站熱搜
留言列表