Кодировка / декодирование электронной почты сайта публикации SharePoint - PullRequest
2 голосов
/ 18 февраля 2009

Я создаю сайт публикации SharePoint (MOSS) для информации о сотрудниках на веб-сайте моей компании. У меня есть тип контента сотрудника, и я использую столбец сайта Контактный адрес электронной почты для хранения адреса электронной почты сотрудника.

Хотите, чтобы я хотел, это возможность кодировать адреса электронной почты во время выполнения, чтобы спамеры не собирали реальный адрес электронной почты. Это будет декодировано, когда пользователь щелкает гиперссылку электронной почты, например, в браузер будет отправлен следующий HTML-код:

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

У меня уже есть методы javascript для кодирования / декодирования текстового значения из бессмысленной строки выше, но я не слишком уверен в том, как подойти к этому с учетом SharePoint. Я думаю, что пользовательский элемент управления и / или пользовательский J-Query?

Любая помощь будет высоко ценится!

Jonny

Ответы [ 3 ]

2 голосов
/ 18 февраля 2009

В случае, если вы не можете поместить пользователей в AD, элемент управления настраиваемого поля даст вам возможность включить требуемый пользовательский рендеринг (jquery), а также возможность ввести данные как "обычный" текст.

Настраиваемое поле, однажды определенное «просто работает» везде, где вам нужно отобразить поле.

Учитывая, что вы думаете об использовании JQuery, проблема заключается в том, чтобы убедиться, что библиотека jquery правильно связана, когда вам нужно нам поле этого типа.

2 голосов
/ 18 февраля 2009

Если вы сделаете этих сотрудников участниками сайта, SharePoint позаботится об этой проблеме.

Вы можете отправлять им электронные письма, но адрес электронной почты будет использоваться только во время отправки, когда вы добавляете кнопку для отправки кому-либо по электронной почте, она не будет отображать адрес электронной почты, обработанный на сервере.

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

alt text
(источник: msdn.com )

0 голосов
/ 19 февраля 2009

Вы можете попробовать еще два варианта / подхода:

(1) реализовать пользовательский элемент управления TextField, унаследованный от Microsoft.SharePoint.WebControls.TextField, и переопределить RenderFieldForDisplay

Затем в коде - кодировать поле для отображения.

Добавьте этот элемент управления в safecontrols и используйте его вместо обычного TextField в pagelayout.

(2) использовать существующий элемент управления TextField, но добавить кнопку [Encode] с помощью jQuery рядом с TextField в режиме редактирования.

Используйте метод кодирования JavaScript для кодирования того, что пользователь ввел в закодированное значение, заменив существующее значение TextField. Затем они могут сохранить их в SharePoint.


Я бы оценил подходы, основанные на вашем сценарии развертывания - у Nat самый чистый, но, вероятно, более сложный вариант для развертывания, а вариант jQuery-only кажется очень хакерским, но простым при развертывании. Подход переопределения TextField, вероятно, будет где-то посередине.

...