質問

私の会社のウェブサイトで従業員情報のためのSharePoint(Moss)パブリッシングサイトを構築しています。従業員のコンテンツタイプがあり、連絡先電子メールアドレスサイト列を使用して従業員のメールアドレスを保存しています。

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

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

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

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

ジョニー

役に立ちましたか?

解決

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

カスタムフィールドは、フィールドを表示する必要がある場合でも「Just Works」と定義されたものです。

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

他のヒント

サイトの従業員を作成すると、SharePointがこの問題を処理します。

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

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

alt text
(ソース: msdn.com)

試してみることができる2つのオプション/アプローチ:

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

次に、コード - ディスプレイ用のフィールドをエンコードします。

このコントロールをSafeControlsに追加し、PageLayoutの通常のテキストフィールドの代わりにこれを使用します。

(2)既存のTextfieldコントロールを使用しますが、editModeのTextfieldの横にあるjQueryを使用して[エンコード]ボタンを挿入します。

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


展開シナリオに基づいてアプローチを評価します - Nat's Oneは最もクリーンですが、おそらく展開に関与しています。オーバーライドのテキストフィールドアプローチは、おそらく真ん中のどこかに座るでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top