ノード入力フォームへパラメータを渡す

カテゴリ コンテンツの作成 コアバージョン 7.34 関連モジュール CCK

ノード入力時、指示(パラメータ)を渡し、特定のフォームに初期値を設定したり、入力不可にしたい場合があります。
ノード入力フォームにおけるパラメータの渡し方と、使い方を教えて下さい。

コメント

ユーザー actbrain の写真

下記のような形が最も良いと思います。

1.ノード新規作成時、や更新時のリンクにパラメータを乗せる。
2.hook_form_alter()でパラメータによるフォーム変更を行う。

以下に例を示します。

1.リンク

1)ノード新規作成:node/add/{your node-type}/パラメータ1/...
2)既存ノード変更:node/{node id}/edit/パラメータ1/...

2.hook_form_alter()

function {your module name}_form_alter(&$form, $form_state, $form_id) {
 switch ($form_id) {
  case '{your node-type}_node_form':
   if (strlen(arg(3))) {
    $is_add = arg(0) == 'node' && arg(1) == 'add' & empty($form['nid']['value']);
    $is_edit = arg(0) == 'node' && arg(2) == 'edit' & !empty($form['nid']['value']);
    if ($is_add || $is_edit) {
     // 初期値を設定し、変更禁止にする
     $form['{initial field name}']['und'][0]['#default_value'] = arg(3);
     $form['{initial field name}']['und'][0]['#disabled'] = TRUE;
    }
   }
  }
 }
}

ページ

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール タイトル
SSH 7.50 ProxyCommand SSH IP制限を1コマンドで通過する
Apache2.4 7.50 Apache2.4のアクセス制限
サイトの構築 7.50 Module Missing Message Fixer モジュールをアンインストールしたらエラーがでるようになった
drush 7.54 Drush Drushでdrupalサイトをインストールする方法
ユーザの管理 7.50 Paypal continued billing drupal7のPaypal継続課金モジュールについて
コンテンツの管理 7,51 Views Data Export Views Data ExportでCSVデータが欠けてしまう
アップデート 7.50 Download count DOWNLOAD MODULEページでダウンロードが失敗することがある
開発 mail 7.50 Mail Safety 開発/テスト用サイトのメール
メール 7.50 Smtp smtpでGmailアカウントを使いたい
jQuery Revolution 7.50 jQuery Revolutionのリンクがスマホで機能しない
CentOS 7.50 消せないファイルを消すには
権限 7.50 Cron Basic認証時のCron(wget)実行方法
PCRE 7.50 preg_match()がおかしい
コンテンツの作成 7.50 Inline Entity Form Drupal6のフィールドグループのようなモジュールはありませんか?
ユーザ 7.44 Quickbar 会員の種別(役割)別にメニューを設けたい
ユーザ 7.44 Password Policy 無効なユーザーを整理したい
コンテンツの作成 7.50 Expanding Textareas Textareaフォームの行サイズを自動調整するモジュール
コンテンツの作成 7.50 Code per Node ページ毎にCSSやJSを設定したい
コンテンツの作成 7.34 Entityreference prepopulate 新規ノード作成時のリファレンス方法
コンテンツの管理 7.50 Administration menu 標準のユーザー管理ページ

ページ