Кастомизация выпадающих меню в 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>
Ссылки
b. https://blogs.msdn.com/bowerm/articles/175691.aspx
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, PeterAnonymous
March 25, 2010
Куда скрипт то вставлять? Не совсем понял.