Допсвойство для ИС

#
Допсвойство для ИС
1) Подскажите, как правильно вывести дополнительное свойство типа "картинка" для информационной системы?

Сейчас используется эта конструкция:
<xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/imgN"/>

Результат ее обработки - вывод названия файла.

2) как к любому элементу ИС я могу добавить возможность его комментирования?

Спасибо!
ищу себя...
#
Re: Допсвойство для ИС
1. для вывода изображения, являющего дополнительным свойством инфоэлемента, в XSL-шаблоне попробуйте добавить(в Вашем случае):
<img src="/{item_propertys/item_property[@xml_name='imgN']/property_file_path}"/>

2. для разрешения отображения формы добавления комментариев к инфоэлементу, нужно при редактировании узла структуры, которому соответсвует данная инфосистема, установить галочку "Отображать комментарии" и при желании "Добавленные комментарии публиковать сразу"
#
Re: Допсвойство для ИС
1) Спасибо, вывод получился. Но вот беда: если к элементу ИС картинка не прикреплена, все равно выводит пустое поле <img ......> и отображает его на странице. Как ввести проверку: если есть загруженный рисунок, тогда отображать его?
(что-то подобное мне советовали для отображения полей "чекбокс", но сообразить еще не могу...)

2) Стоит галочка. Ничего не происходит. Вот код ИС:


<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />

<xsl:template match="/">
    <xsl:apply-templates select="/document/item"/>
</xsl:template>

<xsl:template match="/document/item">

   <SCRIPT>
      <xsl:comment>
         <xsl:text disable-output-escaping="yes">
         <![CDATA[
         function ShowImgWindow(title, src, width, height)
         {
            obj = window.open("", "", "scrollbars=0,dialog=0,minimizable=1,modal=1,width="+width+",height="+height+",resizable=0");
            obj.document.write("<html>");
            obj.document.write("<head>");
         
            obj.document.write("<title>"+title+"</title>");
         
            obj.document.write("</head>");
         
            obj.document.write("<body topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>");
         
            obj.document.write("<img src=\""+src+"\" />");
         
            obj.document.write("</body>");
            obj.document.write("</html>");
         }
         ]]>
         </xsl:text>
      </xsl:comment>
   </SCRIPT>
   
   <!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
   <xsl:variable name="parent_group_id" select="/document/information_system/parent_group_id"/>
   
   <h1><xsl:value-of disable-output-escaping="yes" select="item_name"/></h1>
   
   <!-- ============= -->
   <!-- Путь к гурппе -->
   <!-- ============= -->
   <xsl:apply-templates select="//group[@id=$parent_group_id]" mode="goup_path"/>

<p/>

<!-- Изображение для записи со ссылкой на большой файл -->
<table border="0">
<tr>
<td align="center">

<xsl:if test="item_small_image!=''">

<!-- Проверяем задан ли путь к файлу большого изображения -->
<xsl:if test="item_image!=''">
   <xsl:variable name="srcpath" select="item_image" />
   <a href="JavaScript:void(0)" onclick="ShowImgWindow('{item_name}','/{$srcpath}', {item_image/@width}, {item_image/@height})"><img src="/{item_small_image}" style="padding-right:10px; padding-bottom:10px;"/></a>
</xsl:if>

<xsl:if test="item_image =''">
   <img  src="/{item_small_image}" style="padding-right:10px; padding-bottom:10px;"/>
</xsl:if>

</xsl:if>

</td>

<td>
Основная часть страницы!!!

<img src="/{item_propertys/item_property[@xml_name='img01']/property_file_path}"/><br/>
<img src="/{item_propertys/item_property[@xml_name='img02']/property_file_path}"/><br/>
<img src="/{item_propertys/item_property[@xml_name='img03']/property_file_path}"/><br/>
<img src="/{item_propertys/item_property[@xml_name='img04']/property_file_path}"/><br/>
<img src="/{item_propertys/item_property[@xml_name='img05']/property_file_path}"/>
<p/>

</td>
</tr>
</table>

<br/>

<!-- Текст элемента информационного блока -->
<xsl:value-of disable-output-escaping="yes" select="item_text"/>

<br/>

</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->

<xsl:template match="group" mode="goup_path">
   <xsl:variable name="parent_id" select="@parent_id"/>

   <!-- Выбираем рекурсивно вышестоящую группу -->
   <xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path" />

   <xsl:if test="@parent_id=0">
      <a href="{/document/information_system/url}"><xsl:value-of disable-output-escaping="yes" select="/document/information_system/name"/></a>
   </xsl:if>

   <span class="path_arrow">&#8594;</span>

   <a href="{/document/information_system/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:template>

</xsl:stylesheet>
ищу себя...
#
Re: Допсвойство для ИС
1. проверку можно добавить, например так:
<xsl:if test="item_propertys/item_property[@xml_name='img01']/property_file_path/node() and item_propertys/item_property[@xml_name='img01']/property_file_path != ''">
<img src="/{item_propertys/item_property[@xml_name='img01']/property_file_path}"/><br/>
</xsl:if>


2. да, форма добавлнеия комментариев отображаться не будет, несмотря на галочку, т.к. этой формы нет в приведенном XSL-шаблоне. Поэтому Вам нужно взять код формы из стандартного XSL-шаблона(например, "ВыводЕдиницыИнформационнойСистемы" ) и вставить его в Ваш XSL-шаблон.
#
Re: Допсвойство для ИС
Разобрался, спасибо!

А как можно немного модифицировать условие:
"Если нет загруженной для данного свойства ИС изображения, подгружать другую картинку по адресу http://....."

Сейчас вот так:

<xsl:if test="item_propertys/item_property[@xml_name='img01']/property_file_path/node() and item_propertys/item_property[@xml_name='img01']/property_file_path != ''">
<img src="/{item_propertys/item_property[@xml_name='img01']/property_file_path}" class="full"/>
ищу себя...
#
Re: Допсвойство для ИС
Можно модифицировать условие так:
<xsl:choose>
<xsl:when test="item_propertys/item_property[@xml_name='img01']/property_file_path/node() and item_propertys/item_property[@xml_name='img01']/property_file_path != ''">
<img src="/{item_propertys/item_property[@xml_name='img01']/property_file_path}" class="full"/>
</xsl:when>

<xsl:otherwise>
<img src="/images/kartinka.gif" />
</xsl:otherwise>
</xsl:choose>

Если свойство не загружено, то загрузится картинка kartinka.gif из директории /images/ на сервере. Посдтавляйте в качестве src любой путь к нужной картинке.
Авторизация