質問

本当にばかげた問題があり、すでにかなりの時間を費やしています。

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 ファイルに追加します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top