2009-02-17 7 views
2

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

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

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

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

Любая помощь была бы высоко оценена!

Jonny

ответ

2

В случае, если вы не в состоянии поставить пользователей в AD, custom field control даст вам возможность включить пользовательский рендеринг (JQuery) вам требуется, а также возможность ввода данные как «нормальный» текст.

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

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

+0

Привет, спасибо, очень за ваш комментарий. Пользовательское полевое управление отлично подходит для моих требований. Я не знал об этом раньше! – Jonny

2

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

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

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

Hi Ric, Отличное предложение, однако я не думаю, что мы можем пойти с вариантом членства. Мы также хотим отображать информацию о прошлых сотрудниках (текущее/прошлое включено флажком по типу контента). Прошлые сотрудники не будут членами. Любые другие идеи? – Jonny

+0

@ Nat nailed it Я думаю –

0

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

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

Затем в коде - кодировать поле дисплей.

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

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

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


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