Траблы при добавлении комментария

#
Траблы при добавлении комментария
Постояно добавляются какие то дополнительные знаки например такие "289 Отсутствие пошлин — дешевые товары (теже японские автомобили). Разве не так?" оригинал здесь http://zanauku.ru/faq/zachem-rossii-vstupat-v-vto/
http://anomalno.ru и http://60-e.ru
#
Re: Траблы при добавлении комментария
Это работает модуль типографирования. Весьма полезная и хорошая штука, кстати. Ну, конечно, если вы делаете сайт для людей а не для поисковых роботов.
Если вам это жить мешает, то внесите исправления в соответствующую ТДС, закомментировав там типографирование текста комментария перед его сохранением.
Или просто отключите модуль типографирования.
Заказов не беру. Консультирую редко.
#
Re: Траблы при добавлении комментария
@если вы делаете сайт для людей а не для поисковых роботов.@
конечно для людей, только люди такое читать не смогут))а вот роботами то наоборот читается такая абракадабра легко. Модуль топографирования мне нравится, отключать совсем его неохота, а вот как закоментить? как он вышглядит в ТДС?
http://anomalno.ru и http://60-e.ru
#
Re: Траблы при добавлении комментария
Пухата писал(а):
конечно для людей, только люди такое читать не смогут))а вот роботами то наоборот читается такая абракадабра легко

тут вы не правы. То есть роботам-то по большому счету наплевать, да, а вот людям читать оттипографированный текст приятнее. Другое дело, что всякие метасимволы, вроде неразрывного пробела " ", не должны быть видны, хотя и доложны присутствовать в строке.
Возможно у вас комментарии выводятся не в том режиме.
Проверьте в вашем xsl-шаблоне, выводящем комментарии, в теге <xsl:value-of ... /> должен присутствовать параметр disable-output-escaping со значением yes.
То есть сама строка вывода текста комментария должна выглядеть так:
<xsl:value-of select="comment_text" disable-output-escaping="yes"/>
Заказов не беру. Консультирую редко.
#
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">            <SCRIPT>         <xsl:comment>            <xsl:text disable-output-escaping="yes">               <![CDATA[                              // массив для хранения текущих рейтингов звезд               var curr_rate = new Array();                              // функция работы со звездами рейтинга               function set_rate(id, new_rate)               {               // устанавливаем атрибуты               curr_star = document.getElementById(id);               parent_id = parseInt(curr_star.parentNode.id);                              // при первом пересчете ставим рейтинг для группы звезд в 0               if (!curr_rate[parent_id])               {               curr_rate[parent_id] = 0;               }                              // устанавливаем новый рейтинг в массив рейтингов и значение скрытого поля               if (new_rate != curr_rate[parent_id] && parseInt(new_rate) > 0)               {               curr_rate[parent_id] = new_rate;                              curr_form = document.getElementById('comment_form_0' + (parent_id != 0 ? parent_id : ''));               curr_form.comment_grade.value = curr_rate[parent_id].charAt(curr_rate[parent_id].length - 1);               }                              // пересчет стилей для звезд               for (i = 1; i < 6; i++)                  {                  if (parent_id != 0)                  {                  j = parent_id + '' + i + '_star_' + i;                  }                  else                  {                  j = i + '_star_' + i;                  }                                    temp_obj = document.getElementById(j);                                    if (new_rate == 0)                  {                  id = curr_rate[parent_id];                  }                                    if (parseInt(j) > parseInt(id))                  {                  temp_obj.className = '';                  }                  else                  {                  temp_obj.className = 'curr';                  }                  }                  }                  ]]>               </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"/>                  <!-- Выводим сообщение -->         <xsl:if test="/document/message/node()">            <xsl:value-of disable-output-escaping="yes" select="/document/message"/>         </xsl:if>                  <!-- Фотогафия к информационному элементу -->         <xsl:if test="item_small_image!=''">            <!-- Проверяем задан ли путь к файлу большого изображения -->            <xsl:if test="item_image!=''">               <xsl:variable name="srcpath" select="item_image"/>               <a href="{item_image}" target="_blank" onclick="ShowImgWindow('{item_name}','/{$srcpath}', {item_image/@width}, {item_image/@height}); return false;">                  <img align="left" src="{item_small_image}" style="margin-right: 10px; margin-bottom: 10px"/>               </a>            </xsl:if>                        <xsl:if test="item_image =''">               <img align="left" src="{item_small_image}" style="margin-right: 10px; margin-bottom: 10px"/>            </xsl:if>         </xsl:if>                  <!-- Текст информационного элемента -->         <p>            <xsl:value-of disable-output-escaping="yes" select="item_text"/>         </p>                  <!-- Дата информационного элемента -->         <p>            <xsl:value-of disable-output-escaping="yes" select="item_date"/>         </p>                  <!-- Отображение комментариев  -->         <xsl:if test="count(item_comments/comment) &gt; 0">            <p class="title">Ответы</p>            <xsl:apply-templates select="item_comments/comment"/>                                 </xsl:if>                  <!-- Если разрешено отображать формы добавления комментария         1 - Только авторизированным         2 - Всем -->         <xsl:if test="/document/show_add_comments/node() and ((/document/show_add_comments = 1 and /document/site_user_id &gt; 0)  or /document/show_add_comments = 2)">                        <div id="ShowAddComment">               <a href="javascript:void(0)" onclick="javascript:cr('AddComment')">Добавить ответ</a>            </div>                        <div id="AddComment" style="display: none">               <xsl:call-template name="AddCommentForm"></xsl:call-template>            </div>         </xsl:if>      </xsl:template>            <!-- Шаблон вывода добавления комментария -->      <xsl:template name="AddCommentForm">         <xsl:param name="comment_id" select="0"/>                  <!-- Заполняем форму -->         <xsl:variable name="subject">            <xsl:if test="/document/form_parent_id/node() and /document/form_parent_id/node() and /document/form_parent_id= $comment_id">               <xsl:value-of select="/document/form_subject"/>            </xsl:if>         </xsl:variable>         <xsl:variable name="email">            <xsl:if test="/document/form_user_email/node() and /document/form_parent_id/node() and /document/form_parent_id= $comment_id">               <xsl:value-of select="/document/form_user_email"/>            </xsl:if>         </xsl:variable>         <xsl:variable name="text">            <xsl:if test="/document/form_text/node() and /document/form_parent_id/node() and /document/form_parent_id= $comment_id">               <xsl:value-of disable-output-escaping="yes" select="/document/form_text"/>            </xsl:if>         </xsl:variable>         <xsl:variable name="name">            <xsl:if test="/document/form_user_name/node() and /document/form_parent_id/node() and /document/form_parent_id= $comment_id">               <xsl:value-of select="/document/form_user_name"/>            </xsl:if>         </xsl:variable>                  <div class="comment">            <div class="tl"></div>            <div class="tr"></div>            <div class="bl"></div>            <div class="br"></div>                        <!--Отображение формы добавления комментария-->            <form action="{/document/url}" name="comment_form_0{comment_id}" method="post">               <!-- Авторизированным не показываем -->               <xsl:if test="/document/site_user_id = 0">                                    Имя                  <br/>                  <input type="text" size="70" name="comment_autor" value="{$name}"/>                                    <p>                     E-mail                     <br/>                     <input id="email{$comment_id}" type="text" size="70" name="comment_email" value="{$email}"                        onblur="FieldCheckEmail(this.id)"                        onkeyup="FieldCheckEmail(this.id)"                        onkeydown="FieldCheckEmail(this.id)" />                     <div id="error_email{$comment_id}"></div>                  </p>               </xsl:if>                              <p>                  Тема                  <br/>                  <input type="text" size="70" name="comment_subject" value="{$subject}"/>               </p>                              <p>                  Текст ответа                  <br/>                  <textarea name="comment_text" cols="68" rows="5" class="mceEditor"><xsl:value-of select="$text"/></textarea>               </p>                              <p>                  Оценка                  <br/>                  <input type="hidden" name="comment_grade" value="0"/>                                    <xsl:variable name="ul_id">                     <xsl:choose>                        <xsl:when test="comment_id > 0"><xsl:value-of select="comment_id"/>_stars</xsl:when>                        <xsl:otherwise>0_stars</xsl:otherwise>                     </xsl:choose>                  </xsl:variable>                                    <ul id="{$ul_id}" class="stars">                     <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1')" onmouseout="set_rate(this.id, 0)" id="{comment_id}1_star_1"></li>                     <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1')" onmouseout="set_rate(this.id, 0)" id="{comment_id}2_star_2"></li>                     <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1')" onmouseout="set_rate(this.id, 0)" id="{comment_id}3_star_3"></li>                     <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1')" onmouseout="set_rate(this.id, 0)" id="{comment_id}4_star_4"></li>                     <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1')" onmouseout="set_rate(this.id, 0)" id="{comment_id}5_star_5"></li>                  </ul>               </p>                              <br />                              <!-- Обработка CAPTCHA -->               <xsl:if test="//captcha_key != 0 and /document/site_user_id = 0">                                    Контрольные цифры                  <sup>                     <font color="red">*</font>                  </sup>                                    <div style="float: left">                     <img id="comment_{$comment_id}" style="border: 1px solid #000000" src="/captcha.php?get_captcha={//captcha_key}{$comment_id}&amp;height=30&amp;width=100" title="Код подтверждения" name="captcha"/>                  </div>                                    <div id="captcha" style="clear:both;">                     <img style="border: 0px" src="/hostcmsfiles/images/refresh.gif" /> <a href="javascript:void(0);" onclick="ReNewCaptchaById('comment_{$comment_id}', '{//captcha_key}{$comment_id}', 30); return false;">Показать другое число</a>                  </div>                                    <div style="float: left;margin-top: 5px">                     <input type="hidden" name="captcha_key" value="{//captcha_key}{$comment_id}"/>                     <input type="text" name="captcha_keystring" size="15"/>                  </div>                                    <div id="captcha" style="clear:both;margin-bottom:10px;">                     Введите число, которое указано выше.                  </div>               </xsl:if>                              <xsl:if test="$comment_id != 0">                  <input type="hidden" name="comment_parent_id" value="{comment_id}"/>               </xsl:if>                              <p>                  <input id="submit_email{$comment_id}" type="submit" name="add_comment" value="Опубликовать"/>               </p>            </form>         </div>      </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">&#x2192;</span>                  <a href="{/document/information_system/url}{fullpath}">            <xsl:value-of disable-output-escaping="yes" select="name"/>         </a>      </xsl:template>            <!-- Отображение комментариев -->      <xsl:template match="item_comments/comment">         <!-- Отображаем комментарий, если задан текст или тема комментария -->         <xsl:if test="comment_text != '' or comment_subject != ''">            <a name="comment{comment_id}"></a>            <div class="comment" id="comment{comment_id}">               <div class="tl"></div>               <div class="tr"></div>               <div class="bl"></div>               <div class="br"></div>                              <xsl:if test="comment_subject != ''">                  <div>                     <strong>                        <xsl:value-of select="comment_subject"/>                     </strong>                  </div>               </xsl:if>                               disable-output-escaping="yes"/>                              <!-- Оценка комментария -->               <xsl:if test="comment_grade != 0">                  <div>Оценка:                     <xsl:call-template name="show_average_grade">                        <xsl:with-param name="grade" select="comment_grade"/>                        <xsl:with-param name="const_grade" select="5"/>                     </xsl:call-template>                  </div>               </xsl:if>            </div>                        <div class="comment_desc">               <xsl:choose>                  <!-- Комментарий добавил авторизированный пользователь -->                  <xsl:when test="site_user_login/node()">                     <a href="/users/info/{site_user_login}/" class="c_u_l">                        <xsl:value-of select="site_user_login"/>                     </a>                  </xsl:when>                  <!-- Комментарй добавил неавторизированный пользователь -->                  <xsl:otherwise>                     <xsl:value-of select="comment_fio"/></xsl:otherwise>               </xsl:choose>&#xA0;·&#xA0;<xsl:value-of select="comment_datetime"/>&#xA0;·&#xA0;<xsl:if                  test="/document/show_add_comments/node()                  and ((/document/show_add_comments = 1 and /document/site_user_id > 0)         or /document/show_add_comments = 2)"><a href="javascript:cr('cr_{comment_id}');">ответить</a>&#xA0;·&#xA0;</xsl:if><a href="{/document/item/item_path}#comment{comment_id}" title="ссылка">#</a>                           </div>                        <!-- Отображаем только авторизированным пользователям -->            <xsl:if test="/document/show_add_comments/node() and ((/document/show_add_comments = 1 and /document/site_user_id > 0) or /document/show_add_comments = 2)">               <div class="cr" id="cr_{comment_id}">                                    <xsl:call-template name="AddCommentForm">                     <xsl:with-param name="comment_id" select="comment_id"/>                  </xsl:call-template>               </div>            </xsl:if>                        <!-- Выбираем дочерние комментарии -->            <xsl:if test="count(comment) > 0">               <div class="csd">                  <xsl:apply-templates select="comment"/>               </div>            </xsl:if>         </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 &gt; ceiling($current_grade))">                              <xsl:if test="$current_grade - 1 &gt; 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 &gt; ceiling($current_grade))">                              <xsl:if test="$current_grade - 0.5 &gt; 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>      
http://anomalno.ru и http://60-e.ru
#
Re: Траблы при добавлении комментария
Пухата, что-то я в вашем шаблоне вообще не нашел _вывода_ узла comment_text
Заказов не беру. Консультирую редко.
#
Re: Траблы при добавлении комментария
После добавления комментария, если в админке активность сделать нажатием оампочки, то все теги обрезаются(((( Что делать?
Модератор
#
Re: Траблы при добавлении комментария
kondakov1,
Опишите более подробно проблему.
Авторизация