2

ページにノードを挿入できるかどうか知りたいのですが。Drupal 7を使用していますが、これを行う方法が見つかりません。

誰かがアイデアを持っていますか?私はこれをやろうとしました:

    function test(){

       if (!function_exists('node_add')) {
        module_load_include('inc', 'node', 'node.pages');
       }

       print drupal_render(node_add('node_example'));

    }

フォームは表示されますが、うまくいきません。それは私のテーマの「上」です

4

1 に答える 1

2

私はあなたの質問を正しく理解していることを願っています。私のコメントへの答えは役に立ちました!メニューに追加しようとしているのがノードフォームの場合、これは通常、Drupalのhook_menu()関数を使用して行われます。これがあなたが始めるためのいくつかのサンプルコードです

function YOURMODULE_menu() {

 // Here, substitute in the URL of your page.  It can be mymodule/add_content or whatever else you'd like
 $items['YOUR_PAGE_URL'] = array(
    'type' => MENU_CALLBACK,
    'title' => t('YOUR PAGE TITLE'),
    'page callback' => 'drupal_get_form',
    'page arguments' => array('your_node_function'),      // Here, you should put in the function that creates your node form
    'access arguments' => array('Administer content'),  // This is optional, you can require a user to have certain permissions set to access your page/form
 );

 return($items);

}

テストする前に、キャッシュをクリアすることを忘れないでください。

フォームを作成している関数のサンプルコード:

function your_node_function($form, &$form_state)
{
  $form['field_1'] = array(
   '#type' => 'textfield',
   '#title' => t('Field label'),
   '#description' => t('Help user understand what to input here'),
   '#required' => TRUE,
  );

  return $form;
}

開始するために、この小さな1フィールドフォームが表示されるかどうかを確認してください。これは、ユーザーデータなどを実際に保存する方法を説明していません。これは、ここでの1つの回答が提供できる範囲外であるためですが、メニューシステムに接続されたフォームを開始するのに役立ちます。

これがお役に立てば幸いです!!!!

===================編集===================

Drupalのフォームに追加できるさまざまなタイプのフォーム要素のオンラインドキュメントは次のとおりです。http://api.drupal.org/api/drupal/developer !topics!forms_api_reference.html / 7

于 2012-07-23T15:01:20.007 に答える