<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Решения для sharepoint</title>
	<atom:link href="http://prjsoft.ru/rus/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://prjsoft.ru/rus/blog</link>
	<description>Блог программных решений для sharepoint</description>
	<lastBuildDate>Wed, 29 Apr 2009 20:34:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Пользовательское вычислимое поле для формы просмотра элемента списка</title>
		<link>http://prjsoft.ru/rus/blog/?p=21</link>
		<comments>http://prjsoft.ru/rus/blog/?p=21#comments</comments>
		<pubDate>Wed, 29 Apr 2009 20:34:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Главная]]></category>

		<guid isPermaLink="false">http://prjsoft.ru/rus/blog/?p=21</guid>
		<description><![CDATA[Sharepoint имеет два типа полей, предназначенных для вывода вычислимых значений на формах просмотра элемента списка &#8211; computed и calculated. Поля с типом calculated сохраняют свое значение в базе данных и обновляют его только при обновлении элемента списка. Поэтому это поле не может использоваться для отображения данных, которые могут изменитья независимо от элемента списка. Поле типа [...]]]></description>
			<content:encoded><![CDATA[<p>Sharepoint имеет два типа полей, предназначенных для вывода вычислимых значений на формах просмотра элемента списка &#8211; computed и calculated. Поля с типом calculated сохраняют свое значение в базе данных и обновляют его только при обновлении элемента списка. Поэтому это поле не может использоваться для отображения данных, которые могут изменитья независимо от элемента списка. Поле типа computed  вычисляет формулу , состоящую из значений других полей элемента списка. Разработчики не могут создавать пользовательские поля, наследующие этот тип поля (SPFieldComputed) и могут использовать только caml для задания формулы в схеме.<br />
Поставленная задача &#8211; отображение в форме просмотра списка (обычно это dispform.aspx, но в принципе имя формы задается в схеме списка) данных, которые с одной стороны зависят от текущего элемента списка, а с другой независимы от него (в элементе списка item1 есть ссылка на другой элемент списка item2 и надо вывести, например, имя item2 в верхнем регистре).</p>
<p>Решение в целом:</p>
<p>Создать пользовательское поле, наследуемое от SPFieldText и переопределить метод RenderFieldForDisplay класса control, который отображает это поле.</p>
<p>Решение в деталях:</p>
<p>1. Создать проект visual studio с типом class library и создать новый класс:</p>
<p>// example of creating a custom field type<br />
    public class SomeCustomField : SPFieldText<br />
    {</p>
<p>        public SomeCustomField(SPFieldCollection fields, string fieldName)<br />
            : base(fields, fieldName) { }</p>
<p>        public SomeCustomField(SPFieldCollection fields, string typeName, string displayName)<br />
            : base(fields, typeName, displayName) { }</p>
<p>        public override Microsoft.SharePoint.WebControls.BaseFieldControl FieldRenderingControl<br />
        {<br />
            get<br />
            {<br />
              <br />
                BaseFieldControl control = new SomeCustomFieldControl();<br />
                control.FieldName = this.InternalName;<br />
                return control;<br />
            }<br />
        }<br />
    }</p>
<p>    // custom field type uses helper class to initialize and render control<br />
    public class SomeCustomFieldControl : BaseFieldControl<br />
    {<br />
           <br />
        protected override string DefaultTemplateName<br />
        {<br />
            get<br />
            {<br />
                return @”SomeCustomFieldControl”;<br />
            }<br />
        }<br />
      <br />
        protected override void RenderFieldForDisplay(HtmlTextWriter output)<br />
        {</p>
<p>            int IdOfItem2 = (int)this.ListItem["refid"];<br />
            SPListItem item2 = this.ListItem.ParentList.GetItemById(IdOfItem2);<br />
            string data = item2.Name.ToUpper();<br />
            output.Write(data);<br />
            base.RenderFieldForDisplay(output);<br />
        }<br />
 </p>
<p>    }</p>
<p>2.Откомпиллировать класс, создать сборку, подписать ее, и разместить в GAC.<br />
(Как все просто в sharepoint <img src='http://prjsoft.ru/rus/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>3.Создать SomeCustomField.ascx со следующим содержанием:</p>
<p>&lt;SharePoint:RenderingTemplate ID=”SomeCustomFieldControl” runat=”server”&gt;<br />
  &lt;Template&gt;<br />
 <br />
  &lt;/Template&gt;<br />
&lt;/SharePoint:RenderingTemplate&gt;</p>
<p>Скопировать этот файл в директорию Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES</p>
<p>3. Созать файл fldtypes_SomeCustomField.xml со следующим содержанием:<br />
&lt;?xml version=”1.0? encoding=”utf-8 ?&gt;<br />
&lt;FieldTypes&gt;<br />
 </p>
<p>  &lt;FieldType&gt;<br />
    &lt;Field Name=”TypeName”&gt;SomeCustomField&lt;/Field&gt;<br />
    &lt;Field Name=”ParentType”&gt;Text&lt;/Field&gt;<br />
    &lt;Field Name=”TypeDisplayName”&gt;SomeCustomField Status&lt;/Field&gt;<br />
    &lt;Field Name=”TypeShortDescription”&gt;SomeCustomField Status Field&lt;/Field&gt;<br />
    &lt;Field Name=”UserCreatable”&gt;TRUE&lt;/Field&gt;<br />
    &lt;Field Name=”ShowInListCreate”&gt;TRUE&lt;/Field&gt;<br />
    &lt;Field Name=”ShowInSurveyCreate”&gt;TRUE&lt;/Field&gt;<br />
    &lt;Field Name=”ShowInDocumentLibraryCreate”&gt;TRUE&lt;/Field&gt;<br />
    &lt;Field Name=”ShowInColumnTemplateCreate”&gt;TRUE&lt;/Field&gt;<br />
    &lt;Field Name=”FieldTypeClass”&gt;SomeCustomFieldAssembly.SomeCustomField, SomeCustomField, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11ae1111111ddd11&lt;/Field&gt;<br />
    &lt;RenderPattern Name=”DisplayPattern”&gt;<br />
      &lt;Switch&gt;<br />
        &lt;Expr&gt;<br />
          &lt;Column/&gt;<br />
        &lt;/Expr&gt;<br />
        &lt;Case Value=”&raquo;&gt;<br />
        &lt;/Case&gt;<br />
        &lt;Default&gt;<br />
       <br />
          &lt;Column SubColumnNumber=”0? HTMLEncode=”TRUE”/&gt;<br />
       <br />
        &lt;/Default&gt;<br />
      &lt;/Switch&gt;<br />
    &lt;/RenderPattern&gt;<br />
  &lt;/FieldType&gt;<br />
 <br />
 <br />
&lt;/FieldTypes&gt;</p>
<p>Скопировать его в папку Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\XML<br />
4. Инсталлировать и активировать feature.xml:</p>
<p>&lt;?xml version=”1.0? encoding=”utf-8? ?&gt;<br />
&lt;!– _lcid=”1033 _version=”12.0.4017 _dal=”1 –&gt;<br />
&lt;!– _LocalBinding –&gt;<br />
&lt;Feature  Id=”11111111-1111-1111-85B9-5ED1D39C073B”<br />
  Title=”CustomField”<br />
  Description=”SomeCustomField Type”<br />
  Version=”12.0.0.0?<br />
  Scope=”Site”<br />
  xmlns=”http://schemas.microsoft.com/sharepoint/” &gt;<br />
  &lt;ElementManifests&gt;<br />
    &lt;ElementManifest Location=”elements.xml”/&gt;<br />
  &lt;/ElementManifests&gt;<br />
&lt;/Feature&gt;</p>
<p>where the elements.xml is:</p>
<p> &lt;Field ID=”{CA1A1D11-2123-4db7-B11A-1C0D05D01111}”<br />
            Name=”SomeCustomFieldDerived”<br />
            Group=”Custom”<br />
           Type=”SomeCustomField”<br />
           DisplayName=”SomeCustomField Derived”<br />
           ShowInDisplayForm=”TRUE”<br />
            Sortable=”FALSE”<br />
            ReadOnly=”TRUE”<br />
            Required=”false”   <br />
            Hidden=”false”<br />
      SourceID=”http://schemas.microsoft.com/sharepoint/v3”<br />
      StaticName=”SomeCustomFieldDerived”<br />
    <br />
      /&gt;<br />
 <br />
Все сделано. Теперь можно добавлять наше поле к элементам списка или типам содержимого.</p>
<p>К этому полю нельзя будет делать caml запросы и реальное значение этого поля в элементах списка будет null, соответственно оно не будет отображаться на странице просмотра всех элементов списка allitems.aspx.</p>
]]></content:encoded>
			<wfw:commentRss>http://prjsoft.ru/rus/blog/?feed=rss2&#038;p=21</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Отладка асинхронно выполняющегося net кода в sharepoint</title>
		<link>http://prjsoft.ru/rus/blog/?p=18</link>
		<comments>http://prjsoft.ru/rus/blog/?p=18#comments</comments>
		<pubDate>Sat, 21 Mar 2009 20:24:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Главная]]></category>

		<guid isPermaLink="false">http://prjsoft.ru/rus/blog/?p=18</guid>
		<description><![CDATA[Отладка net кода вызываемого системой в sharepoint несколько затруднительна. Например, owstimer может вызывать пользовательский код методов раcчетов &#171;expiration formula&#187; независимо от пользователя. Поэтому простое подключение отладчика visual studio здесь невозможно. Выход из положения &#8211; вставить строчку в начало пользовательского кода Debug.Assert(1==2, &#171;Some message&#187;). При возникновении исключения нажать на кнопку Retry и открыть отладчик. Конечно, пользовательский код должен содержать отладочную информацию и не [...]]]></description>
			<content:encoded><![CDATA[<p>Отладка net кода вызываемого системой в sharepoint несколько затруднительна. Например, owstimer может вызывать пользовательский код методов раcчетов &laquo;expiration formula&raquo; независимо от пользователя. Поэтому простое подключение отладчика visual studio здесь невозможно. Выход из положения &#8211; вставить строчку в начало пользовательского кода Debug.Assert(1==2, &laquo;Some message&raquo;). При возникновении исключения нажать на кнопку Retry и открыть отладчик. Конечно, пользовательский код должен содержать отладочную информацию и не быть оптимизированным.</p>
]]></content:encoded>
			<wfw:commentRss>http://prjsoft.ru/rus/blog/?feed=rss2&#038;p=18</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Невозможно удалить папку forms в sharepoint</title>
		<link>http://prjsoft.ru/rus/blog/?p=14</link>
		<comments>http://prjsoft.ru/rus/blog/?p=14#comments</comments>
		<pubDate>Sat, 07 Feb 2009 11:40:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Главная]]></category>
		<category><![CDATA[sharepoint bug]]></category>

		<guid isPermaLink="false">http://prjsoft.ru/rus/blog/?p=14</guid>
		<description><![CDATA[Ошибка в версии wss 3.0 с sp1 приводит к невозможности удалить или переименовать папку с именем froms в библиотеке документов sharepoint, вне зависимости является ли она папкой первого уровня или подпапкой. Для исправления этого бага нужно скачать обновление для wss 3.0 (KB941422), (файл с именем Wss-kb941422-fullfile-x86-glb.exe). URL to download:http://www.microsoft.com/downloads/details.aspx?FamilyID=78549f3c-3cd2-445e-9dc0-417ca5a4a079&#38;displaylang=en]]></description>
			<content:encoded><![CDATA[<p>Ошибка в версии wss 3.0 с sp1 приводит к невозможности удалить или переименовать папку с именем froms в библиотеке документов sharepoint, вне зависимости является ли она папкой первого уровня или подпапкой. Для исправления этого бага нужно скачать обновление для wss 3.0 (KB941422), (файл с именем Wss-kb941422-fullfile-x86-glb.exe).</p>
<p>URL to download:<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=78549f3c-3cd2-445e-9dc0-417ca5a4a079&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=78549f3c-3cd2-445e-9dc0-417ca5a4a079&amp;displaylang=en</a></p>
]]></content:encoded>
			<wfw:commentRss>http://prjsoft.ru/rus/blog/?feed=rss2&#038;p=14</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Динамическое создание отчетов с помощью report viewer</title>
		<link>http://prjsoft.ru/rus/blog/?p=12</link>
		<comments>http://prjsoft.ru/rus/blog/?p=12#comments</comments>
		<pubDate>Thu, 26 Jun 2008 13:40:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Главная]]></category>

		<guid isPermaLink="false">http://prjsoft.ru/rus/blog/?p=12</guid>
		<description><![CDATA[Для динамического создания отчетов в report viewer можно использовать LoadReportDefinition метод этого элемента, передавая ему созданный &#171;на лету&#187; rdlc файл. Загрузите пример динамического создания отчетов. Скопируйте оба файла куда-нибудь на веб сайт и откройте RMReport.aspx файл в браузере. Вы можете задавать число колонок в отчете, вставляя его в url: RMReport.aspx?col=4. Для дополнительной информации об использовании [...]]]></description>
			<content:encoded><![CDATA[<p>Для динамического создания отчетов в report viewer можно использовать LoadReportDefinition метод этого элемента, передавая ему созданный &laquo;на лету&raquo; rdlc файл. Загрузите <a href="http://prjsoft.ru/rus/blog/wp-content/uploads/2008/06/dynreport.zip" title="Динамическое создание отчетов">пример динамического создания отчетов</a>. Скопируйте оба файла куда-нибудь на веб сайт и откройте RMReport.aspx файл в браузере. Вы можете задавать число колонок в отчете, вставляя его в url: RMReport.aspx?col=4. Для дополнительной информации об использовании report viewer в sharepoint смотрите<a href="http://prjsoft.ru/rus/blog/?p=6"> использовании report viewer в среде sharepoint </a>.<br />
Удачи.</p>
]]></content:encoded>
			<wfw:commentRss>http://prjsoft.ru/rus/blog/?feed=rss2&#038;p=12</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Транзакции в Sharepoint 2007</title>
		<link>http://prjsoft.ru/rus/blog/?p=10</link>
		<comments>http://prjsoft.ru/rus/blog/?p=10#comments</comments>
		<pubDate>Tue, 13 May 2008 13:39:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Главная]]></category>

		<guid isPermaLink="false">http://prjsoft.ru/rus/blog/?p=10</guid>
		<description><![CDATA[При разработке приложения для sharepoint нам потребовалось сделать несколько операций с элементами листа как одно целое, например, переместить элемент и изменить его поле,  или обновить несколько элементов листа, при этом обновиться должны были либо все элементы, либо ничего. Объектная модель Sharepoint services не имеет методов работы с транзакциями. Поиски в интернет привели на статью в  [...]]]></description>
			<content:encoded><![CDATA[<p>При разработке приложения для sharepoint нам потребовалось сделать несколько операций с элементами листа как одно целое, например, переместить элемент и изменить его поле,  или обновить несколько элементов листа, при этом обновиться должны были либо все элементы, либо ничего. Объектная модель Sharepoint services не имеет методов работы с транзакциями. Поиски в интернет привели на статью в  форуме  <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2873895&amp;SiteID=1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2873895&amp;SiteID=1</a>. Модератор ссылаясь здесь на <a href="http://support.microsoft.com/kb/883316">http://support.microsoft.com/kb/883316</a>, указывал, что объектная модель sharepoint вообще их не поддерживает. Я видел ранее несколько других статей, которые советовали использовать Service Without Components <a href="http://weblogs.asp.net/paolopia/archive/2005/01/30/363312.aspx">http://weblogs.asp.net/paolopia/archive/2005/01/30/363312.aspx</a>  или <a href="http://msmvps.com/blogs/anguslogan/archive/2005/07/19/58191.aspx">http://msmvps.com/blogs/anguslogan/archive/2005/07/19/58191.aspx</a> и еще использовать новый для Net класс  TransactionScope <a href="http://www.eggheadcafe.com/software/aspnet/31533974/sharepoint-om–transacti.aspx">http://www.eggheadcafe.com/software/aspnet/31533974/sharepoint-om–transacti.aspx</a>. Я пробовал использовать Service Without Components и TransactionScope класс, но они не работали в sharepoint.  Поэтому, ссылка модератора  на Microsoft KB и аргумет, что распределенные транзакции основаны на  com+ технологии показались мне убедительными и привели к выводу, что проcто использовать транзакции в объектной модели sharepoint нельзя.  Но модератор форума, который отрицал возможность транзакций в ОМ sharepoint, советовал  использовать WF в Sharepoint для этого. Это показалось мне интересным и я продолжил поиски . Я нашел интересную статью <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1993200&amp;SiteID=1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1993200&amp;SiteID=1</a>, которая ссылалась на <a href="http://msdn2.microsoft.com/en-us/library/ms442249.aspx">http://msdn2.microsoft.com/en-us/library/ms442249.aspx</a>.  В MSDN говорилось, что Windows SharePoint Services-specific workflow activities пакетируюся и осуществляются в транзакции, но  code activities осуществляются сразу и без возможности отката. Но большинство SharePoint Services-specific workflow activities не могут быть использованы напряму в Visual Studio,  только посредством sharepoint Designer. Поэтому, я снова начал искать и нашел другую интересную статью  <a href="http://blogs.msdn.com/sharepointdesigner/archive/2007/07/06/porting-sharepoint-designer-workflows-to-visual-studio.aspx">http://blogs.msdn.com/sharepointdesigner/archive/2007/07/06/porting-sharepoint-designer-workflows-to-visual-studio.aspx</a> , которая показывала, как использовать SD workflow in VS.</p>
]]></content:encoded>
			<wfw:commentRss>http://prjsoft.ru/rus/blog/?feed=rss2&#038;p=10</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Использование элемента управления ReportViewer в Sharepoint</title>
		<link>http://prjsoft.ru/rus/blog/?p=6</link>
		<comments>http://prjsoft.ru/rus/blog/?p=6#comments</comments>
		<pubDate>Fri, 16 Nov 2007 18:01:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Главная]]></category>

		<guid isPermaLink="false">http://prjsoft.ru/rus/blog/?p=6</guid>
		<description><![CDATA[ReportViewer можно использовать в Sharepoint для вывода отчетов. Для этого нужно поместить ReportViewer на aspx страницу. Создать rdlc файл отчета, предназначенный для вывода табличных данных, например таблицы Name &#8211; Age. А затем  связать свойство ReportPath с файлом rdlc и добавить в коллекцию DataSources источник данных. Так как, эти свойства мы заполняем программно, то несложно модернизировать [...]]]></description>
			<content:encoded><![CDATA[<p>ReportViewer можно использовать в Sharepoint для вывода отчетов. Для этого нужно поместить ReportViewer на aspx страницу. Создать rdlc файл отчета, предназначенный для вывода табличных данных, например таблицы Name &#8211; Age. А затем  связать свойство ReportPath с файлом rdlc и добавить в коллекцию DataSources источник данных. Так как, эти свойства мы заполняем программно, то несложно модернизировать этот пример для работы с разными файлами rdlc, выводящими разные таблицы. Кроме того, можно <a href="http://prjsoft.ru/rus/blog/?p=5" title="Исспользование сессий в sharepoint">использовать сессию</a> для передачи источника данных в приведенный код. В этом случае формирование источника данных может происходить в другом месте.</p>
<p>В папкe <a href="http://prjsoft.ru/rus/blog/wp-content/uploads/2007/11/reportviewer.zip" title="ReportViewer">ReportViewer</a> находится полный код проекта, созданный в VS2005. Файлы MyReport.aspx и MyReport.aspx.cs нужно скопировать в директорию &laquo;layouts&raquo;, а файл Report.rdlc в корень виртуальной директории вашего приложения, то есть там где находится файл web.config. Для проверки работы нужно ввести в браузер адрес вашего сайта и путь к странице  _layouts/MyReport.aspx. Результат показан на следующем рисунке:</p>
<p align="left"><a href="http://prjsoft.ru/rus/blog/wp-content/uploads/2007/11/report.GIF" title="Отчет"><img src="http://prjsoft.ru/rus/blog/wp-content/uploads/2007/11/report.GIF" alt="Отчет" /></a></p>
<p align="left">В случаях, когда пользователь не имеет  права на чтение из корня вашей виртульной директории, будет возникать ошибка. Решить эту проблему можно если дать право на чтение файлов с отчетами.</p>
]]></content:encoded>
			<wfw:commentRss>http://prjsoft.ru/rus/blog/?feed=rss2&#038;p=6</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Использование сессий в MOSS</title>
		<link>http://prjsoft.ru/rus/blog/?p=5</link>
		<comments>http://prjsoft.ru/rus/blog/?p=5#comments</comments>
		<pubDate>Tue, 13 Nov 2007 14:51:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Главная]]></category>

		<guid isPermaLink="false">http://prjsoft.ru/rus/blog/?p=5</guid>
		<description><![CDATA[По умолчанию сессии доступны на уровне ферм в sharepoint. Проверить это можно, если отркрыть:Central Administration -&#62;Application Management -&#62;Office SharePoint Server Shared Services -&#62;Configure session state. Для того, чтобы использовать сессии в своем коде нужно либо разрешить сессии в web.config, либо на самих веб-страницах. В web.config за это отвечает строчка &#60;pages enableSessionState=&#187;true&#187; &#8230; при этом строчка [...]]]></description>
			<content:encoded><![CDATA[<p>По умолчанию сессии доступны на уровне ферм в sharepoint. Проверить это можно, если отркрыть:Central Administration -&gt;Application Management -&gt;Office SharePoint Server Shared Services -&gt;Configure session state. Для того, чтобы использовать сессии в своем коде нужно либо разрешить сессии в web.config, либо на самих веб-страницах. В web.config за это отвечает строчка &lt;pages enableSessionState=&raquo;true&raquo; &#8230; при этом строчка &lt;add name=&raquo;Session&raquo; type=&raquo;System.Web.SessionState.SessionStateModule&raquo;/&gt; должна быть вынута из комментариев. Чтобы включить поддержку сессий на отдельной веб-странице нужно просто установить EnableSessionState=&raquo;True&raquo; в директиве Page.</p>
]]></content:encoded>
			<wfw:commentRss>http://prjsoft.ru/rus/blog/?feed=rss2&#038;p=5</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
