Frage

Ich erstelle eine SharePoint (MOSS) -Publishing -Website für Mitarbeiterinformationen auf meiner Unternehmenswebsite. Ich habe einen Mitarbeiterinhaltstyp und verwende die Contact E-Mail-Adress-Site-Spalte, um die E-Mail-Adresse eines Mitarbeiters zu speichern.

Ich möchte, dass ich gerne E -Mail -Adressen zur Laufzeit codieren kann, um zu verhindern, dass die tatsächliche E -Mail -Adresse von Spammer geerntet wird. Dies würde dekodiert, wenn ein Benutzer auf die E -Mail -Hyperlink klickt. Das folgende HTML wird an den Browser gesendet:

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

Ich habe bereits die JavaScript -Methoden für die Codierung/Dekodierung eines Textwerts aus der bedeutungslosen Zeichenfolge oben, bin mir jedoch nicht sicher, wie man dies mit dem Vorbild von SharePoint nähert. Ich denke an eine benutzerdefinierte Kontrolle und/oder eine benutzerdefinierte J-Query?

Jede Hilfe wäre sehr geschätzt!

Jonny

War es hilfreich?

Lösung

Für den Fall, dass Sie die Benutzer nicht in AD einsetzen können, a Benutzerdefinierte Feldsteuerung Sie geben Ihnen die Möglichkeit, das benutzerdefinierte Rendering (JQuery) sowie die Möglichkeit, die Daten als "normaler" Text einzugeben, einzubeziehen.

Das benutzerdefinierte Feld, sobald "einfach funktioniert", wo immer Sie das Feld anzeigen müssen.

Da Sie über die Verwendung von JQuery nachdenken, wird das Problem dann dazu, sicherzustellen, dass die Jquery -Bibliothek korrekt verknüpft ist, wenn Sie uns ein Feld dieser Art benötigen.

Andere Tipps

Wenn Sie diese Mitarbeiter Mitglieder der Website herstellen, kümmert sich SharePoint um dieses Problem.

Sie können E -Mails an sie senden, aber die E -Mail -Adresse wird nur zum Sendenzeit verwendet. Wenn Sie eine Schaltfläche zum E -Mail an jemandem hinzufügen, wird die E -Mail -Adresse nicht angezeigt, die im Backend behandelt wird.

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

alt text
(Quelle: msdn.com)

Zwei weitere Optionen/Ansätze, die Sie ausprobieren können:

(1) Implementieren Sie ein benutzerdefiniertes Textfield -Steuerelement, Erben von microsoft.sharepoint.webcontrols.textfield und Renderfieldfordisplay überschreiben

Dann in Code - codieren das Feld für die Anzeige.

Fügen Sie diese Kontrolle zu SafeControls hinzu und verwenden Sie diese anstelle des normalen Textfelds im Pagelayout.

(2) Verwenden Sie das vorhandene TextField -Steuerelement, injizieren Sie jedoch eine Schaltfläche [codieren] mit JQuery neben dem Textfeld in Editmode.

Verwenden Sie die JavaScript -Encodemethode, um das zu codieren, was der Benutzer in einen codierten Wert eingegeben hat, wodurch der vorhandene Textfeldwert ersetzt wird. Was sie dann in SharePoint speichern können.


Ich würde die Ansätze basierend auf Ihrem Bereitstellungsszenario bewerten - die von NAT ist die sauberste, aber wahrscheinlich stärker für die Bereitstellung, und der nur die JQuery scheint sehr hackig, aber einfach für die Bereitstellung zu sein. Der Override Textfield -Ansatz würde wahrscheinlich irgendwo in der Mitte sitzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top