понедельник, 6 декабря 2010 г.

Добавление условной логики в InfoPath

В InfoPath вы можете производить вычисление отображаемого или хранящегося в форме значения.

Для отображения есть элемент управления “Вычисляемое значение” image, в котором можно ввести формулу:

image

Точно такая же возможность есть и для любого поля (т.е. которое хранится в форме, а не только отображается).

Но почему-то среди разнообразных функций, доступных в редакторе формулы, отсутствуют логические функции, такие как “если”, “и”, “или”:

image

Для реализации логических вычислений приходится пользоваться обходными путями. Например, так можно реализовать проверку если(ТСГ=”З”;”З”;””):

подстрока-после(объединить((ТСГ = "З"); "З"); "ue")

Кто знает как можно реализовать функции “и” и “или”, пишите в комментах.

суббота, 4 декабря 2010 г.

Настройка главной страницы для узла SharePoint Foundation Services 4.0

В MSS 2010 есть возможность параметрах сайта назначить главную страницу для страниц публикации (custom master page) и главную страницу для системных страниц (master page).

В SharePoint Designer Вы можете назначить главную страницу, расположенную локально на данном узле. Как же настроить главную страницу, если она располагается на другом узле?

Для этого воспользуемся инструментом SharePoint Manager 2010. Запускаем утилиту на сервере, где развернут требуемый нам узел. В иерархии находим его (узел): выбираем приложение, затем семейство узлов, затем узел.

В параметре MasterUrl указываем ссылку на главную страницу по умолчанию для всех обычных страниц:

image

В параметре CustomMasterUrl – для системных страниц:

image

Нажимаем image

четверг, 2 декабря 2010 г.

Возвращение хлебных крошек

В стандартном оформлении SharePoint 2010 хлебные крошки (breabcrumb) были спрятаны за кнопкой image:

image

Тогда как в строке навигации теперь отображается только навигация по текущему сайту:

image

Если Вы считаете, что пользователям часто необходимы хлебные крошки (звучит круто!), и каждый раз нажимать на открывающую их кнопку не удобно, в главной странице (master page) следует заменить блок текста

<h1 name="onetidProjectPropertyTitle">
    <asp:ContentPlaceHolder id="PlaceHolderSiteName" runat="server">
        <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/" id="onetidProjectPropertyTitle"><SharePoint:ProjectProperty Property="Title" runat="server" /></SharePoint:SPLinkButton>
    </asp:ContentPlaceHolder>
</h1>
<span id="onetidPageTitleSeparator" class="s4-nothome s4-bcsep s4-titlesep">
<SharePoint:ClusteredDirectionalSeparatorArrow runat="server"/> </span>
<h2>
    <asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea" runat="server" />
</h2>

на следующий блок:

    <h1 name="onetidProjectPropertyTitle">
          <asp:SiteMapPath SiteMapProvider="SPContentMapProvider" id="ContentMap" SkipLinkText="" NodeStyle-CssClass="ms-sitemapdirectional" runat="server"/>
  </h1>
  <asp:ContentPlaceHolder id="PlaceHolderSiteName" runat="server" Visible="false"/>
  <asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea" runat="server" Visible="false"/>

После сохранения страницы вы увидите следующее:

image

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

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

пятница, 12 ноября 2010 г.

Убрать кнопку “Рабочие процессы сайта”

По умолчанию на странице просмотра всего содержимого сайта (/viewlsts.aspx) отображается кнопка “Рабочие процессы сайта”.

image

При построении некоторых систем на базе SharePoint 2010 необходимость в этой кнопке отсутствует. Так же как и отсутствует возможность скрыть эту кнопку настроечными средствами.

В качестве обходного решения предлагаю добавление в разметке главной страницы скрипта скрытия блока.

После блока

<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server">
</asp:ContentPlaceHolder>

необходимо вставить

<script type="text/javascript">
    document.getElementById('ctl00_PlaceHolderMain_ToolBar_RptControls_diidIOSiteWorkflows').parentNode.style.display='none';
</script>

В результате получаем более дружелюбный интерфейс:

image

понедельник, 8 ноября 2010 г.

Добавление элементов на даты (или время) в календаре

Обнаружена следующая аномалия.

При использовании списка, созданного по шаблону “Календарь” пользователь имеет возможность добавлять события на определенные даты календаря. Для этого при наведении на дату (или время, в представлении недели или дня) появляется ссылка “Добавить”.

image

При использовании же списка, созданного по любому другому шаблону, такая ссылка не появляется.

Если кто-то знает о глубинных причинах такого поведения – прошу написать в комментариях.

А пока предлагаю только обходной путь, если для вас важно предоставить возможность добавлять события прямо на даты. Создавайте список изначально по шаблону “Календарь”, и потом добавляйте по необходимости типы содержимого, соответствующие требуемой функциональности (элемент, задача и т.п.), устанавливая для данных типов содержимого порядок кнопок создания.

среда, 3 ноября 2010 г.

Настроенное оформление и диалоги SharePoint

Одно из нововведений последней версии SharePoint – открытие пользовательских форм в виде диалога, без полного перехода со страницы. Пользователю, конечно, удобно, он видит и текущий список и форму.

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

У некоторых специалистов уже возник другой вопрос – поменяли дизайн страницы, но как исключить эти модификации из диалогов?

Для того чтобы вы сами смогли ответить на этот вопрос, давайте разберемся, откуда берется дизайн диалогов. На самом деле, он берется из той же главной страницы, примененной к узлу. Почему же тогда мы не видим в диалогах таких элементов, как меню, ленту, запрос поиска и т.п.?

image

image

Дело в том, что блоки div, не требующиеся на диалогах, отмечены классом s4-notdlg, а в стилях dlgframe.css уже применено скрытие. Например, лента меню имеет следующий вид div:

<div id="s4-titlerow" class="s4-pr s4-notdlg s4-titlerowhidetitle">

Таким же образом, если Вы добавляете на главную страницу элементы , не требующиеся в диалогах, заключайте их в блоки div с классом s4-notdlg.

пятница, 8 октября 2010 г.

stsadm –o restore: Отказано в доступе по пути

Столкнулся с такой трудностью.

При переносе семейства узлов на операции restore происходит ошибка “Отказано в доступе по пути …”

image

Командная строка запущена под администраторскими правами. Права на файл присутствуют.

Оказалось, что на каком-то этапе переноса архивная копия получила атрибут “Только для чтения”. После снятия этого атрибута команда отработала корректно. Хотя, казалось бы, на какая взаимосвязь?