2014-09-12 3 views
0
<?php 
    module_load_include('inc', 'node', 'node.pages'); 
    $node_form = node_add('post'); 
    print drupal_render($node_form); 
?> 

Это мой фрагмент кода. Проблема заключается в том, что я хочу передать несколько параметров для предварительно выбранных значений по умолчанию:Drupal 7 node_add() параметры передачи

/узел/добавить/запись FIELD_TYPE = 3 & field_post_id = 122

Как и выше примере?.

Как добавить параметры (например, "field_type = 3" & "field_post_id = 122") в мой пример кода PHP выше?

ответ

1

Не используйте node_add здесь, есть несколько способов сделать это (как обычно):

  1. Посмотрите на модуль
  2. prepopulate Если модуль не подходит, изменяющие форму узла с помощью hook_form_FORMID_alter в described in the API.
0

Если вам не нравится ответ McGo (который хорош) по какой-то причине, вот пример того, как сделать это:

$node_form = node_add('post'); 
foreach ($_GET as $key => $value) { 
    // this query string is a field prepop. 
    if (strpos($key, 'field_') === 0) { // === to prevent a false negative. 
     // this field exists on the form 
     if (!empty($node_form[$key])) { 
      $node_form[$key]['#default_value'] = $value; 
     } 
    } 
} 

Пока непроверено, что-то вроде этого должно работать.

Смежные вопросы