Drupal の長いフォームフィールド
質問
本当にばかげた問題があり、すでにかなりの時間を費やしています。
URLを含むコンテンツテンプレートを作成しました。この HTML コードを見ると、form タグ内に大きな「maxlength=256」が表示されます。顧客が非常に長いリンク (500 文字を超える) を入力したいと考えているため、このフィールドの長さを拡張したいと考えています。どうすれば変更できるでしょうか?コード全体で一般的な検索を行うと、256 が非常に多く出現しますが、その長さはデータベースのどこかにある可能性があります。もちろん、データベース フィールドを長い varchar (1024 というと詩的に聞こえます) にしましたので、それについては心配する必要はありません。
ばかげていると思いますが、私たちが知っているように、顧客は常に正しいです。
Drupal 6.14を使用しています。
解決 2
Yahoooooo!私は、便利Drupalのページのおかげでそれを修正しました: http://drupal.org/node/300705する
私はそれが完全に生成された後、私はフォームを編集でき考え出しました。エリックが提示する解決策は良いですが、CCKフィールドのために働くためには表示されません。それが最初に発生する必要があり、この生成ステップのためではなかった場合、私の場合はエリックのソリューションは、働いている可能性があります。
次のように私の新しいコードは次のとおりです。
function longerfield_form_alter(&$form, &$form_state, $form_id) {
$form['#after_build'][] = 'longerfield_after_build';
}
function longerfield_after_build($form, &$form_state) {
// This is for a node reference field:
$form['field_page_boeken'][0]['data']['url']['#maxlength'] = 1024;
return $form;
}
さて、私はここにも、他のフォーム要素(ちょうど0からインクリメント)があるかもしれません、特にので、それは醜いだことがわかり、それは最初の要素のために働きます! Yippeee!
他のヒント
でhook_form_alter()を使用したいとします。 あなたのtemplete.phpまたは カスタムモジュール。
次のようになります。
MODULE_form_alter(&$form, &$form_state, $form_id) {
if($form_id = 'name_of_form_you_want_to_alter') {
form['name_of_url_field']['#maxlength'] = 500;
}
}
MODULE を次の名前に置き換えるだけです。 テーマ (template.php にある場合)、またはテーマの名前に置き換えます。 使用しているカスタムモジュール。
フォームの ID を見つけるには、firebug で要素を検査します。URL フィールドの ID についても同様です。
さらに詳細が必要な場合はお知らせください。
編集:指摘されているように、テーマレベルからフックを呼び出すことはできないようです。
これに対処する最善の方法は、サイト用の小さなカスタム モジュールを作成することです。SITENAME_customizations などの名前で呼び出すことができます。
必要なのは、次のような MODULENAME.info という名前の単純な .info ファイルだけです。
name = SITE customizations
description = "Customizations"
MODULENAME.module ファイルも必要です。ここに、 hook_form_alter
電話。
PS.php タグを閉じないように注意してください (?>
) .module ファイルに追加します。