вторник, 31 мая 2011 г.

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

Для того, чтобы вывести предстоящие события (например, общие собрания) из календаря, можно выполнить следующие шаги:

1. В календаре добавить вычисляемое поле:

image

2. На странице, где требуется вывести событие, добавить веб-часть запроса содержимого, выбрать в ней определенный список и указать в настройках фильтра:

image

Следует иметь ввиду, что при этом событие не должно быть повторяющееся, иначе дата окончания будет отражать только дату окончания последнего события:

image

image

понедельник, 30 мая 2011 г.

CSS стили закладок ленты

Для того чтобы настраивать стили закладок ленты, необходимо понимать принцип применения классов к блокам, ленты закладок.

Обычные закладки

- li class=ms-cui-tt (закладка «Обзор» помечается стилем ms-browseTab; если закладка выделена, добавляется класс ms-cui-tt-s; если закладка является первой внутри двухуровневой закладки, добавляется класс ms-cui-ct-first; если закладка является последней внутри двухуровневой закладки, добавляется класс ms-cui-ct-last)

   o a class=ms-cui-tt-a

      § span class=ms-cui-tt-span

         · текст закладки

Двухуровневые закладки

- li class=ms-cui-cg (добавляется класс цвета, см. таблицу ниже; если закладка выделена, добавляется класс ms-cui-cg-lb)

   o div class=ms-cui-cg-i

      § div class=ms-cui-cg-t

         · span class=ms-cui-cg-t-i

            o текст верхней закладки

            o ul class=ms-cui-ct-ul (внутри размещаются обычные закладки)

Цвета закладок обозначаются следующими классами:

Цвет

Класс закладки

Класс ленты закладок

Класс контейнера инструментов ленты

Класс ul контейнера инструментов ленты

Dark blue

ms-cui-cg-db

ms-cui-ct-topBar-db

ms-cui-tabContainer-db

ms-cui-tabBody-db

Light blue

ms-cui-cg-lb

ms-cui-ct-topBar-lb

ms-cui-tabContainer-lb

ms-cui-tabBody-lb

Teal

ms-cui-cg-tl

ms-cui-ct-topBar-tl

ms-cui-tabContainer-tl

ms-cui-tabBody-tl

Оранжевый

ms-cui-cg-or

ms-cui-ct-topBar-or

ms-cui-tabContainer-or

ms-cui-tabBody-or

Green

ms-cui-cg-gr

ms-cui-ct-topBar-gr

ms-cui-tabContainer-gr

ms-cui-tabBody-gr

Magenta

ms-cui-cg-mg

ms-cui-ct-topBar-mg

ms-cui-tabContainer-mg

ms-cui-tabBody-mg

желтый

ms-cui-cg-yl

ms-cui-ct-topBar-yl

ms-cui-tabContainer-yl

ms-cui-tabBody-yl

Purple

ms-cui-cg-pp

ms-cui-ct-topBar-pp

ms-cui-tabContainer-pp

ms-cui-tabBody-pp

Класс закладки в стандартных стилях определяет:

- цвет границы закладки

- цвет текста верхней закладки

- градиент фона закладок

- цвет фона закладки (если выбрана)

Класс ленты закладок применяется ко всему блоку, содержащему ленту закладок. Он определяет

- цвет бордюра ленты закладок

Класс ul контейнера инструментов ленты применяется к ul, содержащему нижнюю (инструментальную) часть ленты

- цвет бордюра контейнера инструментов ленты

среда, 25 мая 2011 г.

Отладка скриптов SharePoint в IE

При выполнении отладки на обычной инсталляции SharePoint вы видите монолитный неформатированный текст:

image

Для более удобной отладки скриптов переключите приложение:

image

В web.config замените

compilation batch=”false” debug=”false”

на

compilation batch=”false” debug=”true”

Изменения вступают в силу моментально, iisreset не требуется.

Вместо стандартных файлов скриптов (типа sp.ribbon.js) будут подключаться специальные, предназначенные для отладки (типа sp.ribbon.debug.js).

вторник, 24 мая 2011 г.

Данные проверки безопасности этой страницы недопустимы

При нажатии ОК на формах с использованием разработанной главной страницы выводится ошибка:

image

[COMException (0x8102006d): Данные проверки безопасности этой страницы недопустимы. Нажмите в веб-браузере кнопку "Назад", обновите страницу и повторите попытку.] Microsoft.SharePoint.Library.SPRequestInternalClass.SetWebProps…

Причина: внутри тега form на главной странице отсутствует элемент <SharePoint:FormDigest runat="server"/>.

Ошибка страницы _layouts/prjsetng.aspx на настроенной главной странице

При использовании разработанной главной страницы (master page) открывая страницу некоторые страницы сайта (например, настройку названия, описания и значка) видим ошибку

image

NullReferenceException: В экземпляре объекта не задана ссылка на объект.] Microsoft.SharePoint.WebControls.SPRibbon.OnPreRender(EventArgs e) +612 System.Web.UI.Control.PreRenderRecursiveInternal() +107 System.Web.UI.Control.PreRenderRecursiveInternal() +223 System.Web.UI.Control.PreRenderRecursiveInternal() +223 System.Web.UI.Control.PreRenderRecursiveInternal() +223 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3393

Причина в том, что для тега head на задан параметр runat="server".

понедельник, 23 мая 2011 г.

Прокрутка рабочей области страницы

На стандартной странице SharePoint прокручивается только рабочая область страницы, без ленты.

Реализовано это в файле init.js (в функции FixRibbonAndWorkspaceDimensions) автоматическим присвоением блоку s4-workspace определенной ширины и высоты.

Например, параметр высота задается так:

Если лента свернута, s4-ribbonrow.высота = 44px + WebPartAdderUpdatePanelContainer.высота

Если лента развернута, s4-ribbonrow.высота = 155px + WebPartAdderUpdatePanelContainer.высота

s4-workspace.высота = window.innerHeight – s4-ribbonrow.высота – s4-ribbonrow.

Исходный код этой функции:

function FixRibbonAndWorkspaceDimensions() {
    a: ;
    g_frl = true;
    var b = GetCachedElement("s4-ribbonrow"), a = GetCachedElement("s4-workspace"), f = GetCachedElement("s4-titlerow"), c = GetCachedElement("s4-bodyContainer");
    if (!b || !a || !c) return;
    if (!g_setWidthInited) {
        var h = true;
        if (a.className.indexOf("s4-nosetwidth") > -1) h = false;
        g_setWidth = h;
        g_setWidthInited = true
    } else var h = g_setWidth;
    var l = RibbonIsMinimized() ? 44 : 135, j = l + g_wpadderHeight;
    if (GetCurrentEltStyle(b, "visibility") == "hidden") j = 0;
    b.style.height = j + "px";
    var d = g_viewportHeight;
    if (null === d) { d = GetViewportHeight(); g_viewportHeight = d } var e = d - b.offsetHeight - AbsTop(b);
    if (e < 0) e = 0; a.style.height = e + "px";
    if (h) {
        a.style.width = document.documentElement.clientWidth + "px";
        if (c.offsetWidth < a.clientWidth) c.style.width = a.clientWidth + "px";
        if (f) {
            f.style.width = Math.max(c.offsetWidth - 1, 0) + "px"; f.className += " ms-titlerowborder"
        }
    } var m = browseris.ie && browseris.iever == 7 && !browseris.ie8standard;
    if (!g_setScrollPos) {
        browseris.firefox && browseris.firefox36up && window.scroll(0, 0);
        if (window.location.search.match("[?&]IsDlg=1")) if (!m || a.scrollHeight < a.clientHeight) a.style.overflowY = "auto";
        var g = document.getElementById("_maintainWorkspaceScrollPosition");
        if (g != null && g.value != null) a.scrollTop = g.value;
        g_setScrollPos = true
    } for (var k = [].concat(g_workspaceResizedHandlers), i = 0, n = k.length; i < n; i++) k[i]();

g_frl = false
}

Можете переопределить данную функцию - в свою главную страницу скопировать данный код в блок <script> и внести необходимые изменения.

При работе в диалоге под размерами экрана подразумевается размер элемента iframe, в котором содержится страница.

Сначала автоматически под содержимое подгоняется размер iframe, а затем размер s4-workspace.

Панель разработчика

Если панель разработчика настроена, у пользователя на странице есть значок

image

Нажав на этот значок, пользователь видит панель внизу страницы:

image

На панели выводятся параметры производительности и информация о возникших или возможных ошибках.

Для того, чтобы включить на ферме панель разработчика, используйте команду

stsadm -o setproperty -pn developer-dashboard -pv ondemand

Для отключения:

stsadm -o setproperty -pn developer-dashboard -pv off