2

会社のWebサイトに従業員情報用のSharePoint(MOSS)発行サイトを構築しています。従業員のコンテンツタイプがあり、[連絡先の電子メールアドレス]サイトの列を使用して従業員の電子メールアドレスを保存しています。

私が欲しいのは、実行時に電子メールアドレスをエンコードして、実際の電子メールアドレスがスパマーによって収集されるのを防ぐ機能です。これは、ユーザーが電子メールのハイパーリンクをクリックするとデコードされます。たとえば、次のHTMLがブラウザに送信されます。

<a href="javascript:sendEmail('5237952A6F67618E407373772E6063212E6175')">Email Jonny</a>

上記の無意味な文字列からテキスト値をエンコード/デコードするためのjavascriptメソッドはすでにありますが、SharePointを念頭に置いてこれにアプローチする方法についてはあまりよくわかりません。カスタムコントロールやカスタムJ-Queryを考えていますか?

どんな助けでも大歓迎です!

ジョニー

4

3 に答える 3

2

ユーザーをADに入れることができない場合、カスタムフィールドコントロールを使用すると、必要なカスタムレンダリング(jquery)を含めることができ、データを「通常の」テキストとして入力することもできます。

カスタムフィールドは、一度定義すると、フィールドを表示する必要がある場所で「正しく機能」します。

JQueryの使用を考えている場合、このタイプのフィールドが必要なときはいつでも、jqueryライブラリが正しくリンクされていることを確認することが問題になります。

于 2009-02-18T02:57:57.943 に答える
2

これらの従業員をサイトのメンバーにすると、SharePoint がこの問題に対処します。

メールを送信することはできますが、メール アドレスは送信時にのみ使用されます。誰かにメールを送信するボタンを追加すると、メール アドレスは表示されず、バックエンドで処理されます。

SPUtility.SendEmail(SPContext.Current.Web, false, false,
[SPUser.Email][1], "E-mail title",
"E-mail body");

代替テキスト
(ソース: msdn.com )

于 2009-02-18T00:42:35.257 に答える
0

あなたが試すことができるさらに2つのオプション/アプローチ:

(1) Microsoft.SharePoint.WebControls.TextField から継承するカスタム TextField コントロールを実装し、RenderFieldForDisplay をオーバーライドします。

次にコードで - 表示用にフィールドをエンコードします。

このコントロールを safecontrols に追加し、これをページレイアウトの通常の TextField の代わりに使用します。

(2) 既存の TextField コントロールを使用しますが、編集モードで TextField の横に jQuery を使用してボタン [Encode] を挿入します。

JavaScript エンコード メソッドを使用して、ユーザーが入力した内容をエンコードされた値にエンコードし、既存の TextField 値を置き換えます。その後、SharePoint に保存できます。


展開シナリオに基づいてアプローチを評価します.Natのアプローチは最もクリーンですが、おそらく展開にはより複雑であり、jQueryのみのアプローチは非常にハックですが、展開は簡単です。オーバーライド TextField アプローチは、おそらく中間のどこかに位置するでしょう。

于 2009-02-19T07:04:21.930 に答える