現在必須としてマークされているフィールドがあります。ただし、これは管理者以外のすべての役割に必要です。 hook_form_alter()
を実装するモジュールを作成し、日付フィールド以外のすべてのフィールドに必要なステータスを削除できました。どの設定を変更する必要があるかわかりますか?
また、hook_form_alter()
で変更したり、 '#after_build'で変更したりしました。そこにも運がありませんでした。
これは、単純な日付フィールドを使用するだけでなく、たとえば、日付モジュール。
カスタムhook_form_alter
を実装するモジュールが最後に実行されることを確認する必要があります。このように、他のモジュールはそれを再び「必須」に戻すことができません。
さらに、いくつかのモジュールは、異なる「必須」をまとめて実装します。例えば。ビジネスロジック「開始日が設定されている場合、終了日も必要です」は、単純な「必須」フラグでは実装できませんが、そのフォームのhook_validations
で起動します。
これをオーバーライドするには、特定の検証を element_validate
またはフォーム全体#validate
から削除して、実行から除外する必要があります。
これらの元の検証を独自のコピーに置き換えて、醜い動作を変更しないようにすることができます。