0

ログインページの外観を変更したい。jquery と javascript を DesktopModules/AuthenticationServices/DNN/Login.ascx に追加したので、ユーザーがユーザー名とパスワードを入力するために使用できる仮想キーボードを使用できます。問題は、ログインが失敗したときに、jquery および JavaScript スクリプトが実行されず、その結果、仮想キーボードが表示されないように思われることです。

私はこれについて多くの検索を行いました。新しいログイン モジュールを作成することを検討していますが、これによって問題を解決できるかどうか、またはその方法がわかりません。

何か提案はありますか?

DNN バージョン: 6.1.3

4

3 に答える 3

1

コアログインは「コア変更」と見なされ、アップグレード時に上書きされるため、コアログインを直接変更しないことをお勧めします。毎回アップグレードする前に、変更をマージする必要があります。

代わりに、そのレベルのアクセスが必要な場合は、独自のログインモジュールを作成することをお勧めします。

しかし、あなたの問題を見ると、それは必要ではないと思います。スキンウィジェットを作成して実装することで、これと同じ効果を得ることができます。スキンウィジェットを使用すると、jQueryを使用してjQueryプラグインを挿入できるため、考えられるほぼすべての方法でUIを操作できます。

これは、拡張性があり、テスト可能で、アップグレードに対して安全であり、複数のサイトやインストールで必要に応じて再利用できる、はるかに洗練されたソリューションです。

ウィジェットとドキュメントの例は、次の2つのリンクにあります。

DNNウィジェットスイートプロジェクト スキンウィジェットWikiの記事と多くのリンクされたリソース

于 2012-04-28T06:36:48.183 に答える
0

Will が言ったように、コア ファイルは DNN のアップグレードで上書きされるため、コア ファイルを編集したりコードを追加したりしないでください。Javascript だけでこれを解決できるはずですが、次のようなサード パーティのログイン モジュールを調べることもできます 。http://www.dnnspot.com/Modules/DotNetNuke-Custom-Loginビュー、ログイン ビュー、さらにはエラー メッセージ。したがって、さまざまな状況で必要に応じてさまざまな JavaScript を挿入できるはずです。

免責事項 - 私は DNNspot と提携しています。

于 2012-05-01T05:49:52.017 に答える
0

私は素敵なこのjavascript On-Screen-Keyboard (OSK)を使いました。( http://www.greywyvern.com/code/javascript/keyboard )

私は DNN 5.6.8 を使用しているため、私のソリューションが DNN 6.x で機能するかどうかはわかりません。

使用している「スキン」の「page.ascx」ファイルを修正していますが、デフォルトスキンの「page.ascx」も修正できると思います。

page.ascx の上部、「Register」のリストの下に、次のように書きました。

<script type="text/javascript" src="/js/keyboard.js" charset="UTF-8"></script>
<link rel="stylesheet" type="text/css" href="/js/keyboard.css">

これら 2 つのファイル (keyboard.js と keyboard.css) は、オンスクリーン キーボードです。もちろん「/js」以外のフォルダに保存しても構いません。

page.ascx の下部に、次のスクリプトを配置します。

<script type="text/javascript">
$(document).ready(function () {
    if (document.getElementById('dnn_ctr_Login_Login_DNN_txtUsername') != null) {
        $("#dnn_ctr_Login_Login_DNN_txtUsername").attr("lang", "es");
        $("#dnn_ctr_Login_Login_DNN_txtPassword").attr("lang", "es");
        VKI_attach(document.getElementById('dnn_ctr_Login_Login_DNN_txtUsername'));
        VKI_attach(document.getElementById('dnn_ctr_Login_Login_DNN_txtPassword'));
    }
});
</script>

これらの名前: 'dnn_ctr_Login_Login_DNN_txtUsername' と 'dnn_ctr_Login_Login_DNN_txtPassword' は、実行中の DNN サイトを右クリックして [ソース コードを表示] で見たものであり、他の DNN サイトでこれらが異なる可能性があると考える理由はないと思いますが、それでもなお、あなたはあなたのものをチェックすることができます。

明らかに、DNN インストールで jQuery をアクティブにする必要があります。:)

それでおしまい。それはうまくいきます!!

チッ!

于 2014-01-25T12:23:24.213 に答える