Коментарии

#
Коментарии
Столкнулся с 2 проблемами, первая это на моем сайте есть каталог отелей, он сделан с помощью каталога товаров, но проблема что в стандартном шаблоне каталога товаров нет формы отправки комментов, какой код нужно вставить чтобы получить возможность коммента. и еще второе я подсмотрел на сайте http://www.tur-hotel.ru/ там справа в центре у них есть камментарии отелей, как такое сделать?
Модератор
#
Re: Коментарии
Вставьте код комментариев, пример смотрите, например, в новостях.
#
Re: Коментарии
А как сделать вывод комментов?
Модератор
#
Re: Коментарии
в XSL добавить вывод комментариев. пример см. в XSL для новостей
#
Re: Коментарии
нет я имею ввиду как на сайте http://www.tur-hotel.ru/ Отзывы об отелях - как их вывести на отдельную страницу?
Модератор
#
Re: Коментарии
просто взять их из базы и вывести на PHP
#
Re: Коментарии
<?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">

   <!-- Получаем 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><xsl:value-of disable-output-escaping="yes" select="item_text"/></p>
   <p>[<a href="/download_file.php?download_propertys_items_id={item_propertys/item_property/property_id}">Скачать</a>]</p>

</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:if test="/document/show_comments/node() and /document/show_comments = 1">
   
      <!-- Отображение комментариев  -->
      <xsl:if test="count(item_comments/comment) > 0">
         <p class="title">Комментарии</p>
         <ul>
         <xsl:apply-templates select="item_comments/comment" />
         </ul>
      </xsl:if>
   
      <p class="title">Добавить комментарий</p>
      <!--Отображение формы добавления комментария-->
      <form action="{/document/url}" method="post">
         <table border="0" cellspacing="0" cellpadding="2">
         <tr>
         <td>ФИО:&#xA0;</td>
         <td><input type="text" size="50" name="comment_autor" value=""/></td>
         </tr>
         <tr>
         <td>E-mail:&#xA0;</td>
         <td><input type="text" size="50" name="comment_email" value=""/></td>
         </tr>
         <tr>
         <td>Тема:&#xA0;</td>
         <td><input type="text" size="50" name="comment_subject" value=""/></td>
         </tr>
         <tr>
         <td>Комментарий:&#xA0;</td>
         <td><textarea name="comment_text" cols="50" rows="10"></textarea></td>
         </tr>
         
         <tr>
            <td>Оценка:&#xA0;</td>
            <td>
               <xsl:call-template name="for">
                  <xsl:with-param name="n" select="5"/>
               </xsl:call-template>
            </td>
         </tr>

         
         <!-- Обработка CAPTCHA -->
         <xsl:if test="//captcha_key != 0">
            <tr>
            <td>Код подтверждения:</td>
            <td>
            <div style="float: left">
            <img style="border: 1px solid #777777" src="/captcha.php?get_captcha={//captcha_key}&amp;height=28" title="Код подтверждения"/>
            </div>
            
            <div style="float: left; margin-left: 10px; margin-top: 5px">
            <input type="hidden" name="captcha_key" value="{//captcha_key}"/>
            <input type="text" name="captcha_keystring" size="15" />
            </div>
            </td>
            </tr>
         </xsl:if>    
         <tr>
         <td></td>
         <td><input type="submit" name="add_comment" value="Добавить комментарий"/></td>
         </tr>
         </table>
      </form>

   </xsl:if>
</xsl:template>

<!-- Шаблон для вывода звездочек (оценки) -->
<xsl:template name="for">
   <xsl:param name="i" select="0"/>
   <xsl:param name="n"/>
   
   <input type="radio" name="item_comment_grade" value="{$i}" id="id_item_comment_grade_{$i}" />
   &#xa0;<label for="id_item_comment_grade_{$i}">
   <xsl:call-template name="show_average_grade">
      <xsl:with-param name="grade" select="$i"/>
      <xsl:with-param name="const_grade" select="5"/>
   </xsl:call-template>   
   </label>
   
   <br />
   
   <xsl:if test="$n > $i and $n > 1">
      <xsl:call-template name="for">
         <xsl:with-param name="i" select="$i + 1"/>
         <xsl:with-param name="n" select="$n"/>
      </xsl:call-template>   
   </xsl:if>
</xsl:template>


<!-- Вывод рейтинга -->
<xsl:template name="show_average_grade">
   <xsl:param name="grade" select="0"/>
   <xsl:param name="const_grade" select="0"/>   
   
   <!-- Чтобы избежать зацикливания -->
   <xsl:variable name="current_grade" select="$grade * 1" />
   
   <xsl:choose>
      <!-- Если число целое -->
      <xsl:when test="floor($current_grade) = $current_grade and not($const_grade > ceiling($current_grade))">
         
         <xsl:if test="$current_grade - 1 > 0">
            <xsl:call-template name="show_average_grade">
               <xsl:with-param name="grade" select="$current_grade - 1"/>
               <xsl:with-param name="const_grade" select="$const_grade - 1"/>
            </xsl:call-template>
         </xsl:if>
         
         <xsl:if test="$current_grade != 0">
         <img src="/hostcmsfiles/images/stars_single.gif" />
         </xsl:if>
      </xsl:when>
      <xsl:when test="$current_grade != 0 and not($const_grade > ceiling($current_grade))">
      
         <xsl:if test="$current_grade - 0.5 > 0">
            <xsl:call-template name="show_average_grade">
               <xsl:with-param name="grade" select="$current_grade - 0.5"/>
               <xsl:with-param name="const_grade" select="$const_grade - 1"/>
            </xsl:call-template>
         </xsl:if>
         
         <img src="/hostcmsfiles/images/stars_half.gif" />
      </xsl:when>
      
      <!-- Выводим серые звездочки, пока текущая позиция не дойдет то значения, увеличенного до целого -->
      <xsl:otherwise>
         <xsl:call-template name="show_average_grade">
            <xsl:with-param name="grade" select="$current_grade"/>
            <xsl:with-param name="const_grade" select="$const_grade - 1"/>
         </xsl:call-template>
         <img src="/hostcmsfiles/images/stars_gray.gif" />
      </xsl:otherwise>
   </xsl:choose>
</xsl:template>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
</xsl:stylesheet>

Вот что было и часть я вставил, но все ранво ничего  не отображается!
Модератор
#
Re: Коментарии
stas1990 писал(а):
Вот что было и часть я вставил, но все ранво ничего  не отображается!

давайте по существу. Показывайте XML, показывайте XSL. Если у элемента есть комментарии - будем смотреть почему они не отображаются. Информация о просмотре XML смотрите в документации.
#
Re: Коментарии
там все стандартное я ничего не менял, только вот этот код вставил...
#
Re: Коментарии
При добавлении комментария в разделе "Новости" демо-сайта есть возможность устанавливать оценку новости. Но, почему-то при отображении комментария оценка не показывается  (вернее она все время одна  - пол-звездочки) ? Показ выставленной оценки в комментарии не реализован пока или оценка просматривается каким-то другим способом?
Авторизация