私はphpスクリプトを使用して多言語ノードを作成しようとしています。
私はこれをやっています:
$node = new stdClass();
$node->title = "Test ".mktime();
$node->type = "job";
$node->language = 'de'; // Or e.g. 'en' if locale is enabled
$node->uid = $user->uid;
$node->status = 1; //(1 or 0): published or not
$node->promote = 0; //(1 or 0): promoted to front page
$node->comment = 1; //2 = comments on, 1 = comments off
$node->path = array('alias' => 'das-ist-ein-test-'.mktime());
$node->body[$node->language][0]['value'] = "Body Body Body";
$node->body[$node->language] = text_summary("Body Body Body");
$node->body[$node->language] = 'filtered_html';
node_save($node);
$ node-> languageを「und」に設定している限り、すべてが正常に機能しています。しかし、言語を「de」または「en」に設定するとすぐに(両方の言語が私のDrupalインストールでアクティブ化されます)、本文テキストが保存されません。
だから私の質問は:プログラムコードを使用して、複数のノード(de、en)をDrupal)に格納する方法の実用的な例を誰かに教えてもらえますか?.
ありがとうございました
それはあなたのボディフィールドが翻訳可能かどうかに依存します。翻訳可能なフィールドについてのこの説明を見てください: https://drupal.stackexchange.com/a/31639/2466
$node_lang = 'ru'; // I am a Russian girl
$node = new stdClass();
$node->title = "Test ".mktime();
$node->type = 'article'; // Your type
$node->language = $node_lang;
$node->uid = 1;
$node->status = 1;
// Get proper langcode
$body_field_info = field_info_field('body');
if (field_is_translatable('node', $body_field_info)) {
$body_language = field_valid_language($node_lang);
} else {
$body_language = LANGUAGE_NONE;
}
// Some lorem ipsum.
// You can add custom summary:
// $node->body[$body_language][0]['summary'] = 'Summary';
$node->body[$body_language][0]['value'] = 'Lorem monotonectally iterate resource-leveling innovation before timely core competencies. Globally coordinate sustainable strategic theme areas and intermandated infomediaries. Monotonectally brand customer directed solutions and high-quality bandwidth.';
node_save($node);
フィールド言語APIをより使いやすくするために、 問題 Drupal 8があります。