it-swarm.com.de

Mehrsprachigen Knoten programmgesteuert erstellen

ich versuche, einen mehrsprachigen Knoten mit einem PHP-Skript zu erstellen.

Ich mache das:

 $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);

Solange ich $ node-> language auf 'und' setze, funktioniert alles einwandfrei. Sobald ich jedoch die Sprache auf 'de' oder 'en' setze (beide Sprachen sind in meiner Drupal Installation) aktiviert), wird der Text nicht mehr gespeichert.

Meine Frage lautet also: Kann mir jemand ein funktionierendes Beispiel geben, wie ein mehrsprachiger Knoten (de, en) unter Verwendung von Programmcode in Drupal) gespeichert wird?.

Vielen Dank

8
caspermc

Es hängt davon ab, ob Ihr Körperfeld übersetzbar ist oder nicht. Bitte lesen Sie diese Erklärung zu übersetzbaren Feldern: 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);

Es gibt ein Problem für Drupal 8, um die Feldsprachen-API benutzerfreundlicher zu machen.

9
kalabro