Траблы при добавлении комментария
Постояно добавляются какие то дополнительные знаки например такие "289 Отсутствие пошлин — дешевые товары (теже японские автомобили). Разве не так?" оригинал здесь
http://anomalno.ru и http://60-e.ru
Это работает модуль типографирования. Весьма полезная и хорошая штука, кстати. Ну, конечно, если вы делаете сайт для людей а не для поисковых роботов.
Если вам это жить мешает, то внесите исправления в соответствующую ТДС, закомментировав там типографирование текста комментария перед его сохранением.
Или просто отключите модуль типографирования.
Если вам это жить мешает, то внесите исправления в соответствующую ТДС, закомментировав там типографирование текста комментария перед его сохранением.
Или просто отключите модуль типографирования.
Заказов не беру. Консультирую редко.
@если вы делаете сайт для людей а не для поисковых роботов.@
конечно для людей, только люди такое читать не смогут))а вот роботами то наоборот читается такая абракадабра легко. Модуль топографирования мне нравится, отключать совсем его неохота, а вот как закоментить? как он вышглядит в ТДС?
конечно для людей, только люди такое читать не смогут))а вот роботами то наоборот читается такая абракадабра легко. Модуль топографирования мне нравится, отключать совсем его неохота, а вот как закоментить? как он вышглядит в ТДС?
http://anomalno.ru и http://60-e.ru
Пухата писал(а):
тут вы не правы. То есть роботам-то по большому счету наплевать, да, а вот людям читать оттипографированный текст приятнее. Другое дело, что всякие метасимволы, вроде неразрывного пробела " ", не должны быть видны, хотя и доложны присутствовать в строке.
Возможно у вас комментарии выводятся не в том режиме.
Проверьте в вашем xsl-шаблоне, выводящем комментарии, в теге <xsl:value-of ... /> должен присутствовать параметр disable-output-escaping со значением yes.
То есть сама строка вывода текста комментария должна выглядеть так:
конечно для людей, только люди такое читать не смогут))а вот роботами то наоборот читается такая абракадабра легко
тут вы не правы. То есть роботам-то по большому счету наплевать, да, а вот людям читать оттипографированный текст приятнее. Другое дело, что всякие метасимволы, вроде неразрывного пробела " ", не должны быть видны, хотя и доложны присутствовать в строке.
Возможно у вас комментарии выводятся не в том режиме.
Проверьте в вашем xsl-шаблоне, выводящем комментарии, в теге <xsl:value-of ... /> должен присутствовать параметр disable-output-escaping со значением yes.
То есть сама строка вывода текста комментария должна выглядеть так:
<xsl:value-of select="comment_text" disable-output-escaping="yes"/>
Заказов не беру. Консультирую редко.
Вот здесь код вывода комментария, там этот тег есть, но находится он вроде как раньше чем вывод комментария, может в этом проблема?
<?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) > 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 > 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}&height=30&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">→</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> · <xsl:value-of select="comment_datetime"/> · <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> · </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 > 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>
http://anomalno.ru и http://60-e.ru
Пухата, что-то я в вашем шаблоне вообще не нашел _вывода_ узла comment_text 

Заказов не беру. Консультирую редко.
После добавления комментария, если в админке активность сделать нажатием оампочки, то все теги обрезаются(((( Что делать?
Авторизация