Saya mencoba memigrasikan situs html saya saat ini ke Drupal. Saya memiliki lebih dari 80.000 halaman yang harus saya migrasikan, jadi saya pikir daripada duduk di depan komputer selama 50 tahun saya akan membuat modul. Saya dapat membuat skrip yang mengekstrak html dari setiap direktori dan sekarang saya sampai pada blok jalan di mana saya perlu membuat simpul. Saya mencoba membuat simpul baru menggunakan node_save()
, tetapi ketika node_save dieksekusi, saya mendapatkan PDOException
kesalahan dengan semua yang saya coba. Saya lewat $node
, yang merupakan array yang kemudian dilemparkan ke objek.
PDOException: di field_sql_storage_field_storage_write () (baris 424 dari /srv/www/htdocs/modules/field/modules/field_sql_storage/field_sql_storage.module).
Ini adalah bagaimana kami saat ini membuat simpul, tetapi menghasilkan kesalahan:
$node= array(
'uid' => $user->uid,
'name' => $user->name,
'type' => 'page',
'language' => LANGUAGE_NONE,
'title' => $html['title'],
'status' => 1,
'promote' => 0,
'sticky' => 0,
'created' => (int)REQUEST_TIME,
'revision' => 0,
'comment' => '1',
'menu' => array(
'enabled' => 0,
'mlid' => 0,
'module' => 'menu',
'hidden' => 0,
'has_children' => 0,
'customized' => 0,
'options' => array(),
'expanded' => 0,
'parent_depth_limit' => 8,
'link_title' => '',
'description' => '',
'parent' => 'main-menu:0',
'weight' => '0',
'plid' => '0',
'menu_name' => 'main-menu',
),
'path' => array(
'alias' => '',
'pid' => null,
'source' => null,
'language' => LANGUAGE_NONE,
'pathauto' => 1,
),
'nid' => null,
'vid' => null,
'changed' => '',
'additional_settings__active_tab' => 'edit-menu',
'log' => '',
'date' => '',
'submit' => 'Save',
'preview' => 'Preview',
'private' => 0,
'op' => 'Save',
'body' => array(LANGUAGE_NONE => array(
array(
'value' => $html['html'],
'summary' => $link,
'format' => 'full_html',
),
)),
'validated' => true,
);
node_save((object)$node);
// Small hack to link revisions to our test user.
db_update('node_revision')
->fields(array('uid' => $node->uid))
->condition('vid', $node->vid)
->execute();