onBeforeDeleteUserにエラーメッセージを設定できません

これはカスタムクラフトエラーメッセージを覆す方法setError()?がありますが、コメントするのに十分な担当者がいません。

I have a plugin that needs to check if a user is ok to be
deleted before doing so. Stopping the delete with
$event->performAction = false; works fine, but I am
unable to overwrite the Craft message with my own to tell them
why.

次のコードは、この問題を示しています。

craft()->on('users.onBeforeDeleteUser', function(Event $event){
    craft()->userSession->setError("I don't want to delete " . $event->params['user']->username);
    $event->performAction = false;
});

編集ユーザーページから削除すると、「ユーザーを削除できませんでした」というメッセージが表示されます。私は
setError()
setNotice()に変更することができますが、潜在的な回避策としてCraftエラーの横に表示されますが、そのように。
(ユーザーエントリのフィールドにエラーを設定する他の回避策がありますが、私の場合、エラーはページ上のフィールドとは関係がないため、誤解を招きます。)

ユーザーのリストページ setError()からの削除が何も表示されない場合、Craft通知
“Deleted Users”だけが表示されます。これは
setNotice()で上書きすることもできません。

クラフトのエラーメッセージをオーバーライドするか、それとも私自身のエラーメッセージを表示する方法はありますか?

ベストアンサー

私はこれを行うためのきれいな方法を考えることができません。

craft()->userSession->setError() is just a
wrapper for craft()->userSession->setFlash()
that uses a key of error and saves the message to user
session and is good for one request. Multiple calls to it just
overwrite the same key causing the last one in to win.

独自のキーを渡して setFlash()を直接使用して、 JS でCraftのような追加のフラッシュメッセージを表示します。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です