четверг, 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

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

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

вторник, 28 сентября 2010 г.

Открытие PDF-документов в браузере в SharePoint 2010

Возможно, вы уже столкнулись с необычным поведением SharePoint при попытке открыть pdf-документ. Он предлагает сохранить документ на диск вместо отображения его на экране. Связано это с тем, что SharePoint 2010 имеет более жесткую настройку безопасности. Если Вас не устраивает такое поведение по отношению к открытию файлов – можете подстроить его. Для этого в общих параметрах приложения SharePoint в настройках обработки файлов в браузере выберите “Нестрогая”

image

На уровне семейства сайтов убедитесь, что возможность “Открывать документы в клиентских приложениях по умолчанию” не активирована:

image

Либо на уровне библиотеки убедитесь что в дополнительных параметрах указан “Открыть в браузере”:

image

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

На клиентском рабочем месте должен быть установлен Adobe Reader.

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

Поиск документов с истинным значением логического столбца

Несколько часов потратил на решение следующей проблемы.

Для одного из заказчиков требуется реализовать фильтрацию результатов поиска по логическому столбцу “Архивный”. То бишь хочет пользователь по актуальным (неархивным) документам искать – устанавливает в поисковом диалоге:

image

Ну сказано – сделано. Создал управляемое поле, прописал в веб-части, все ок. При поиске актуальных документов – все ок. Начинаю искать по архивным

image

Нет результатов.

image

В результате моих прыжков оказалось что на инфраструктуре не развернут SP2 для SharePoint и последние обновления. После их установки все стало работать нормально.