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

カテゴリ コンテンツの作成 コアバージョン 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. 関連モジュール タイトル
Views 8.4x hook_views_query_alter Viewsクエリの条件式にサブクエリを追加する方法
Views 8.4x hook_views_query_alter 現在のViewsクエリを保存・再現する方法
Views Exposed Filter 8.4x hook_views_pre_view Views Exposed Formの複数単語入力(textfield)をフォーム上だけ複数行入力(textarea)にする方法
Initial 8.4x Subscriber hook_init() 〜 drupal_goto() を drupal8でやる方法
コンテンツの管理 8.4x Action カスタムアクションを作成する方法
SFTP 8.4x SFTP RSA SFTP(RSA)でファイル転送(送信)する方法
コンテンツの管理 8.4x Entity EntityをPropertyで探す(クエリする)方法
コンテンツの作成 8.4x node node保存前に色々やる方法
Token 8.4x Token カスタムモジュールからtokenを提供する方法(drupal8版)
コンテンツの作成 8.4x コンテンツ作成時のフォームレイアウトの変更
video 8.4x video map 動画上にクリッカブルマップを作成する方法
PHP 8.3x PHP drupa8でhook_init()する方法
テーマ 8.3x Theme drupal8 で パスに応じたページテンプレート名を利用する方法
Custom module 8.3x Custom module Twig Block Cache カスタムモジュールのレンダリングを非キャッシュ化する方法
テーマ 8.3x Block Cache Theme 管理ページから作成したカスタムブロックを非キャッシュ化する方法
テーマ 8.3x Core Twig開発用の設定
テーマ 8.3x Contribute themes drupal8-寄贈テーマの動向
拡張機能 8.3x Contribute modules drupal8-寄贈モジュールの動向
テーマ 7.56 field レンダリング配列内に「ラベル非表示」を指定する方法
PhpStorm 7.50 LocalForward PhpStormから踏み台を使う

ページ