ユーザーが分類法選択フィールドのあるコンテンツを送信し、[〜#〜] not [〜#〜]で選択すると、参照エラーが表示されます。
これで、メッセージがいつ、どのように、どこに表示されるかを正確に把握でき、ユーザーにとって実際に役立つように変更できます(つまり、「カテゴリを選択しませんでした。」)。ユーザーを恐怖に陥れる可能性はありますか?
ノードにカスタム検証を追加して、出力を取得するエラーメッセージを制御できるようにします。その良い例があります この質問では 。これに関する潜在的な問題は、あなたがmayで両方のエラーメッセージを受け取ることです。私はすぐにそれに対処する方法についての提案はありません。
これは、レサリオンの答えに追加することです。同じ原理を使用して、バリデーターで置き換えるエラーメッセージを確認することもできます。
function MY_MODULE_form_validate($form, &$form_state){
$errors = drupal_get_messages(); // (dpm()'s has to go AFTER this line--they get cleared)
foreach ($errors as $type => $id) {
foreach ($id as $message){
// Loop through individual messages, looking for ones to remove or replace
if (test_for_invalid_error($message)===FALSE){
drupal_set_message($message,$type);
} elseif (test_for_invalid_error($message)!==TRUE){
drupal_set_message(test_for_invalid_error($message), $type);
}
}
}
}
function test_for_invalid_error($message){
if (strpos($message, 'An illegal choice has been detected. Please contact the site administrator.') !== false) {
return t('Please select a category!');
}
return FALSE;
}
これにより、独自のカスタムエラーが追加されるだけでなく、「不正な選択」エラーが置き換えられます。すっきりしていませんか?わーい!
モジュール String Overrides があなたの最善の解決策になります。文字列を好きなように変更するだけです。