Freigeben über


Кастомизация выпадающих меню в SharePoint Portal 2003

   Очень интересной возможностью, представленной в SharePoint Portal Server 2003 является кастомизация выпадающих меню у списков, библиотек документов и т.п. Суть данной кастомизации заключается в том, что контекстное меню генерируется на стороне клиента с помощью JScript, содержащегося в ows.js (\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\LAYOUTS\1033). Если переопределить ряд методов, то можно расширить стандартное выпадающее меню. Ниже приведены релевантные ссылки.

   Рассмотрим небольшой Proof-Of-Concept.

1. Поместим на страницу список и библиотеку документов

2. Модифицируем список и библиотеку таким образом, чтобы были выпадающие меню у каждого элемента (обычно это вид "Все документы" etc)

3. Добавим на страницу веб-парт Content Editor Web Part. И сделаем его hidden на странице. В Source Editor переопределим методы Custom_AddListMenuItems и Custom_AddDocLibMenuItems (ниже будет представлен код)

4. Посмотрим изменилось ли выпадающее меню

Вообще, на мой взгляд, с помощью этого механизма создавать достойные решения, расширяющие стандартный функционал SPPS 2003

 

Скрипт:

<script language="javascript">

function Custom_AddListMenuItems(m, ctx)

{

  var strDisplayText = "Список: новый пункт меню";
var test=ctx.displayFormUrl;
var strAction = "alert('"+test+"')";
var strImagePath = "";
CAMOpt(m, strDisplayText, strAction, strImagePath);
CAMSep(m);
return false;
}

function Custom_AddDocLibMenuItems(m, ctx)

{

  var strDisplayText = "Документы: новый пункт меню";
var test=ctx.displayFormUrl;
var strAction = "alert('"+test+"')";
var strImagePath = "";
CAMOpt(m, strDisplayText, strAction, strImagePath);
CAMSep(m);
return false;
}
</script>

 

Ссылки

a. https://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/tsptAddingContextMenu_SV01068564.asp

b. https://blogs.msdn.com/bowerm/articles/175691.aspx

c. https://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/tscliListNetControl_SV01091871.asp

Comments

  • Anonymous
    June 19, 2006
    Это конечно здорово, только совсем не полезно. Ведь новый пункт выпадающего меню добавляется сразу у всех библиотек. А как правило, его надо добавить только у одной.

  • Anonymous
    June 19, 2006
    Да. Добавляется пункт ко всем. Но ведь если нужно хитрая логика работы, то и реализовать можно по-хитрее. Самый топорный вариант.

    1. На страницу добавляется hidden-скрипт, который добавляет идентификационную метку типа (рисовать-не рисовать)
    2. В скрипт отрисовки прописывается проверка флага

  • Anonymous
    June 19, 2006
    А WPS всеравно круче! :)

  • Anonymous
    June 19, 2006
    ну-ка, ну-ка...=)

    много ли там выпадающих менюшек, которые к тому же можно кастомизировать=)

  • Anonymous
    March 09, 2009
    I have requirement which need to add the custom content menu item to picture library. Neither Custom_AddListMenuItems(m, ctx) nor Custom_AddDocLibMenuItems(m, ctx) will work. Could someone tell me how to do it for Picture Library? Thanks in advance, Peter

  • Anonymous
    March 25, 2010
    Куда скрипт то вставлять? Не совсем понял.