2009-02-17 8 views
2

Je crée un site de publication SharePoint (MOSS) pour les informations sur les employés sur le site Web de mon entreprise. J'ai un type de contenu employé et j'utilise la colonne du site Adresse de contact pour stocker l'adresse e-mail d'un employé. Je voudrais est la possibilité d'encoder les adresses e-mail à l'exécution pour empêcher la véritable adresse e-mail d'être récolté par les spammeurs. Cela serait décodé lorsqu'un utilisateur clique sur l'hyperlien de courrier électronique, par exemple. le code HTML suivant sera envoyé au navigateur:Codage/décodage d'un site de publication SharePoint

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

J'ai déjà les méthodes javascript pour le codage/décodage d'une valeur de texte de la chaîne vide de sens ci-dessus, mais je ne suis pas trop sûr quant à la façon d'aborder cela avec SharePoint esprit. Je pense à un contrôle personnalisé et/ou personnalisé J-Query?

Toute aide serait grandement appréciée!

Jonny

Répondre

2

Dans le cas où vous ne parvenez pas à mettre les utilisateurs en AD, un custom field control vous donnera la possibilité d'inclure le rendu personnalisé (jquery) dont vous avez besoin, ainsi que la capacité d'entrer les données en tant que texte "normal".

Le champ personnalisé, une fois défini, "fonctionne" partout où vous devez afficher le champ. Étant donné que vous envisagez d'utiliser JQuery, le problème consiste alors à s'assurer que la bibliothèque jquery est correctement liée lorsque vous avez besoin d'un champ de ce type.

+0

Salut Nat, merci beaucoup pour votre commentaire. Un contrôle de champ personnalisé semble parfait pour mes besoins. Je n'étais pas au courant de cette option! – Jonny

2

Si vous faites ces employés membres du site, SharePoint prend en charge cette question.

Vous pouvez leur envoyer des courriels, mais l'adresse e-mail ne sera utilisée qu'au moment de l'envoi, lorsque vous ajoutez un bouton pour envoyer un e-mail à quelqu'un, il ne montrera pas l'adresse e-mail.

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

alt text http://blogs.msdn.com/blogfiles/sharepoint/WindowsLiveWriter/AnnouncingCommunityKitforSharePointWindo_4443/image_2.png

+0

Salut Ric, Excellente suggestion, mais je ne pense pas que nous puissions aller avec l'option d'adhésion. Nous souhaitons également afficher des informations sur les anciens employés (l'option current/past est activée par une case à cocher sur le type de contenu). Les anciens employés ne seraient pas membres. D'autres idées? – Jonny

+0

@Nat cloué je pense –

0

Deux autres options/approches que vous pouvez essayer:

(1) mettre en œuvre un contrôle TextField personnalisé, héritant de Microsoft.SharePoint.WebControls.TextField et passer outre RenderFieldForDisplay

Ensuite, dans le code - coder le champ pour afficher.

Ajoutez ce contrôle à safecontrols et utilisez-le à la place de TextField normal dans pagelayout.

(2) utilisez le contrôle TextField existant, mais injectez un bouton [Encode] en utilisant jQuery à côté de TextField dans editmode.

Utilisez la méthode de codage JavaScript pour coder ce que l'utilisateur a tapé dans une valeur codée, en remplaçant la valeur TextField existante. Ce qu'ils peuvent ensuite enregistrer dans SharePoint.


Je dirais que les approches en fonction de votre scénario de déploiement - celui de Nat est le plus propre mais probablement plus impliqué pour le déploiement et la seule jQuery semble très hackish mais facile sur le déploiement. L'approche prioritaire TextField serait probablement quelque part au milieu.

Questions connexes