ノード入力時、指示(パラメータ)を渡し、特定のフォームに初期値を設定したり、入力不可にしたい場合があります。
ノード入力フォームにおけるパラメータの渡し方と、使い方を教えて下さい。
ノード入力フォームへパラメータを渡す
OTHER FAQ
カテゴリ | Core Ver. | 関連モジュール | タイトル |
---|---|---|---|
コンテンツの作成 | 8.4x | json | jQueryにjsonで渡す方法 |
mac linux ファイル名 文字化け | 8.7.x | mac linux ファイル名 文字化け | Macからlinuxにrsyncするとファイル名(濁点)が文字化けする場合の対応方法 |
フォーム | 7.15 | system | mail()での送信が失敗する |
言語 | 7.15 | Entity Translation | nodeのEntity Translation |
コンテンツの作成 | 8.4x | node | node保存前に色々やる方法 |
アップデート | 7.28 | Views | Pagerが表示されなくなった |
アップデート | 8.9.x | composer patch | patch を composer に 組み込む方法 |
サイトの構築 | 7.41 | Rules | Paygent モジュールについて |
PHP-FPM | 8.9.x | PHP | PHP-FPM 環境で .htaccess に php_value を 書いてもダメ |
PhpStorm | 7.50 | LocalForward | PhpStormから踏み台を使う |
JavaScript | 7.34 | PHP | PHPからJavaScriptに変数値を渡したい |
サイトの構築 | 7.19 | Plesk | Pleskでdrupal7(プライベートファイルシステム)を使う場合の注意点 |
PCRE | 7.50 | preg_match()がおかしい | |
サイトの環境設定 | 7.15 | Secure Pages | Secure Pagesが急に機能しなくなった |
SFTP | 8.4x | SFTP RSA | SFTP(RSA)でファイル転送(送信)する方法 |
ニュースレター | 7.34 | Simple news | Simplenewsで追加顧客(リスト)だけにニュースレターを配信する方法 |
メール | 7.50 | Smtp | smtpでGmailアカウントを使いたい |
SSH | 7.50 | ProxyCommand | SSH IP制限を1コマンドで通過する |
タクソノミー | 7.15 | Entity_Trarnslation Taxonomy | TaxonomyのEntity Translation |
コンテンツの作成 | 7.50 | Expanding Textareas | Textareaフォームの行サイズを自動調整するモジュール |
コメント
下記のような形が最も良いと思います。
パーマリンク Submitted by actbrain on 2014/12/15 15:10.
下記のような形が最も良いと思います。
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;
}
}
}
}
}
〜
ページ