В этой статье я расскажу, как сделать SharePoint WebPart, используя блокнот используя только xml и xsl.
Про разработку web part-ов уже писалось ранее, там же писалось, зачем, собственно, они нужны: habrahabr.ru/blogs/sharepoint/57992
В данной статье мы создадим WebPart, который просто покажет какое-то сообщение. Сам по себе он не информативен и сомнителен, как пример, но задаче показать общий механизм вполне соответствует.
Не так много:
1. Доступ к MS SharePoint services 3.0 и возможность редактировать страницы с веб-партами (для опытов)
2. XML/text редактор
Основное преимущество этого мазохизма — легкая установка.
Что НЕ НАДО делать:
Не надо никуда класть сборку
Не надо регистрировать сборку где-либо
Не надо править какие-либо конфиги
Установка таких web-part-ов легко производится, используя только Web Interface SharePoint-а.
Процесс будет описан кратенько и без излишних подробностей.
Итак, приступим.
Открываем ваш любимый XML редактор (юзаю VS 2008) и создаем «болванку» для web-part-а:
Собственно, нас интересуют следующие свойства:
Первое — название вебпарта. Второе и третье вполне понятно, а в четвертом мы будем писать XSL.
Пропишем самый-самый простой:
Теперь добавим наш XSL в webpart:
Все. Сохраняем наш xml в файл с расширением .webpart (например Habr.webpart).
Целиком скачать/посмотреть код можно здесь:
anychart.com/batsuev/habrahabr/sharepoint-1/habr.webpart
Все очень просто. Открываем web part page, идем в edit mode:
Давим по Add web part, там выбираем Advanced Web Part gallery and options:
В панели справа в Browse переключаемся на import:
Аплоадим web-part и видим:
Дальше просто перетаскиваем drag & drop-ом на страницу.
Уаля:
Самая большая проблема, с которой мы столкнулись при написании таких webpart-ов: мы не нашли нормальной документации по ним.
Если статья понравилась, могу написать про:
1. Куда класть web-part и как зарегистрировать его, что бы он был доступен со всех страниц.
2. Создание инсталлера для подобных WebPart-ов (как мы это сделали вот тут: www.anychart.com/products/sharepoint/demos/installation.php )
3. Доступ к различным данным (например из базы, из List и т.п.), используя xml/xsl
Ну или еще про что-нибудь, связанное с этим.
Про разработку web part-ов уже писалось ранее, там же писалось, зачем, собственно, они нужны: habrahabr.ru/blogs/sharepoint/57992
В данной статье мы создадим WebPart, который просто покажет какое-то сообщение. Сам по себе он не информативен и сомнителен, как пример, но задаче показать общий механизм вполне соответствует.
Что нужно
Не так много:
1. Доступ к MS SharePoint services 3.0 и возможность редактировать страницы с веб-партами (для опытов)
2. XML/text редактор
Зачем xml/xsl?
Основное преимущество этого мазохизма — легкая установка.
Что НЕ НАДО делать:
Не надо никуда класть сборку
Не надо регистрировать сборку где-либо
Не надо править какие-либо конфиги
Установка таких web-part-ов легко производится, используя только Web Interface SharePoint-а.
Как это сделать
Процесс будет описан кратенько и без излишних подробностей.
Итак, приступим.
Создание .webpart файла
Открываем ваш любимый XML редактор (юзаю VS 2008) и создаем «болванку» для web-part-а:
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="Microsoft.SharePoint.WebPartPages.DataFormWebPart, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<importErrorMessage>Cannot import this Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<property name="MissingAssembly" type="string">Cannot import this Web Part.</property>
<property name="FireInitialRow" type="bool">True</property>
<property name="TitleIconImageUrl" type="string" />
<property name="HelpMode" type="helpmode">Modeless</property>
<property name="CacheXslStorage" type="bool">True</property>
<property name="ViewContentTypeId" type="string" />
<property name="Description" type="string" />
<property name="DataSourcesString" type="string">NotSet</property>
<property name="AllowZoneChange" type="bool">True</property>
<property name="ParameterBindings" type="string" null="true" />
<property name="PageSize" type="int">-1</property>
<property name="TitleUrl" type="string" />
<property name="ViewFlag" type="string">0</property>
<property name="NoDefaultStyle" type="string">TRUE</property>
<property name="Direction" type="direction">NotSet</property>
<property name="UseSQLDataSourcePaging" type="bool">True</property>
<property name="ListName" type="string" null="true" />
<property name="Hidden" type="bool">False</property>
<property name="DisplayName" type="string" />
<property name="SampleData" type="string" null="true" />
<property name="HelpUrl" type="string" />
<property name="ChromeType" type="chrometype">Default</property>
<property name="CatalogIconImageUrl" type="string" />
<property name="DataFields" type="string" />
<property name="Default" type="string" />
<property name="ChromeState" type="chromestate">Normal</property>
<property name="DataSourceID" type="string" />
<property name="AllowClose" type="bool">True</property>
<property name="CacheXslTimeOut" type="int">86400</property>
<property name="AllowMinimize" type="bool">True</property>
<property name="AllowEdit" type="bool">True</property>
<property name="XslLink" type="string" null="true" />
<property name="ShowWithSampleData" type="bool">False</property>
<property name="ExportMode" type="exportmode">All</property>
<property name="AllowHide" type="bool">True</property>
<property name="AllowConnect" type="bool">True</property>
<property name="Title" type="string">HabraSample</property>
<property name="Width" type="string">500px</property>
<property name="Height" type="string">400px</property>
<property name="Xsl" type="string"></property>
</properties>
</data>
</webPart>
</webParts>
* This source code was highlighted with Source Code Highlighter.
Собственно, нас интересуют следующие свойства:
<property name="Title" type="string">HabraSample</property>
<property name="Width" type="string">500px</property>
<property name="Height" type="string">400px</property>
<property name="Xsl" type="string"></property>
* This source code was highlighted with Source Code Highlighter.
Первое — название вебпарта. Второе и третье вполне понятно, а в четвертом мы будем писать XSL.
Пропишем самый-самый простой:
xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ddwrt2="urn:frontpage:internal">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" >
Hello, Habr!
</xsl:template>
</xsl:stylesheet>
* This source code was highlighted with Source Code Highlighter.
Теперь добавим наш XSL в webpart:
<property name="Xsl" type="string">
<![CDATA[<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ddwrt2="urn:frontpage:internal">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" >
Hello, Habr!
</xsl:template>
</xsl:stylesheet>]]></property>
* This source code was highlighted with Source Code Highlighter.
Все. Сохраняем наш xml в файл с расширением .webpart (например Habr.webpart).
Целиком скачать/посмотреть код можно здесь:
anychart.com/batsuev/habrahabr/sharepoint-1/habr.webpart
Добавление webpart-а на страницу
Все очень просто. Открываем web part page, идем в edit mode:
Давим по Add web part, там выбираем Advanced Web Part gallery and options:
В панели справа в Browse переключаемся на import:
Аплоадим web-part и видим:
Дальше просто перетаскиваем drag & drop-ом на страницу.
Уаля:
Послесловие
Самая большая проблема, с которой мы столкнулись при написании таких webpart-ов: мы не нашли нормальной документации по ним.
Если статья понравилась, могу написать про:
1. Куда класть web-part и как зарегистрировать его, что бы он был доступен со всех страниц.
2. Создание инсталлера для подобных WebPart-ов (как мы это сделали вот тут: www.anychart.com/products/sharepoint/demos/installation.php )
3. Доступ к различным данным (например из базы, из List и т.п.), используя xml/xsl
Ну или еще про что-нибудь, связанное с этим.