Sharepoint 2007 - настраиваемое контекстное меню для определенных типов файлов

Мне было интересно, может ли кто-нибудь помочь мне с Sharepoint 2007. Я хочу добавить настраиваемый пункт меню в контекстное меню (меню, которое открывается, когда вы щелкаете документ или другой элемент).

Сейчас меню выглядит так: изображение

Я хочу добавить в это меню, например, пункт «Делать что-нибудь». Основные проблемы:

  1. Я хочу, чтобы этот элемент отображался только в меню для определенного типа файла (например, только для .html, но не для .doc);
  2. Когда я щелкаю этот элемент («Делать что-нибудь»), я хочу вызвать настраиваемый внешний код (написанный на C #, либо exe, либо DLL), который принимает имя файла, по которому был выполнен щелчок, в качестве входного параметра.

Я понимаю, что это можно сделать с помощью настраиваемых действий (редактирование JavaScript в 2007 году не требуется, верно?). Но поскольку я новичок в MOSS, я немного растерялся и не уверен, что именно делать и с чего начать, поэтому любая помощь приветствуется.


person md2511    schedule 23.07.2010    source источник


Ответы (1)


Вы должны реализовать CustomAction следующим образом:

<CustomAction
   Id="YourUniqueId"
   Location="EditControlBlock"
   RegistrationType="FileType"
   RegistrationId="html"
   Sequence="20"
   Title="The text you want">
  <UrlAction Url="~site/_layouts/company/ActionPage.aspx?List={ListId}&amp;ID={ItemId}" />
</CustomAction>

То, что вы указываете в URL-адресе UrlAction, зависит от того, что вы хотите сделать. Это может быть JavaScript или URL-адрес страницы или обработчика.

В моем примере это страница, которая получает параметры запроса, так что SPContext.Current.ListItem будет содержать элемент списка выбранных документов.

person Per Jakobsen    schedule 23.07.2010
comment
Пер, спасибо за быстрый ответ. Одна вещь, в которой я не уверен, - это где именно мне поместить этот xml-файл? Где-то в ... \ ШАБЛОНЕ \ ВОЗМОЖНОСТИ? Есть ли какой-то конкретный способ получить значение идентификатора, или я просто придумаю его? - person md2511; 23.07.2010
comment
Лучшее начало для работы с функциями - это статья MSDN: Создание простой функции msdn.microsoft.com/en-us/library/ms475286 (v = office.12) .aspx - person Per Jakobsen; 23.07.2010
comment
Да, создайте новую функцию, которая имеет указатель на файл элементов. В файле элементов поместите этот XML-файл CustomAction и создайте уникальный идентификатор для каждого CustomAction, который вы хотите создать. - person Punit Vora; 29.07.2010