форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Добрый день, форумчане. Хотелось бы с помощью более опытных txp'шников решить следующую проблему. Если при добавлении комментария возникает ошибка (например, не заполнено поле), то сам комментарий отображается. То есть, если я не введу имя, то выведется сообщение о ошибках, а так же и сам блок с предпросмотром. В итоге этот блок может быть без имени автора или самого сообщения Хотелось бы, чтобы в случае возникновения ошибки выводился только блок с ошибками. Пробовал с if_comments_error, но ничего не вышло - блок с предпросмотром все равно выводится.
Спасибо.
Неактивен
Пожалуйста, запостите сюда свои формы для комментариев (все формы с типом comment), форму которой вы выводите статьи и укажите - стоит ли "Автоматически добавлять комментарии?" в настройках?
Неактивен
default:
<div class="entry"> <txp:if_individual_article> <h2 class="entry-title"><txp:permlink><txp:title /></txp:permlink></h1> <txp:else /> <h3 class="entry-title"><txp:permlink><txp:title /></txp:permlink></h3> </txp:if_individual_article> <p class="info">Добавлено <txp:posted /></p> <div class="body"> <txp:body /> </div> <p class="info">Теги: <a href="index.htm">python</a>, <a href="index.htm">интернет</a>, <a href="index.htm">wikipedia</a></p> </div>
comments
<p class="info"><noindex><txp:comment_name /></noindex>, <txp:comment_time /></p> <div class="comment-body"><noindex><txp:comment_message /></noindex></div>
comment_form
<txp:comments_error wraptag="ul" break="li" /> <txp:comment_message_input /> <div class="comment-userinfo"> <label for="name"><txp:text item="comment_name" /><txp:comment_name_input /></label> <label for="email"><txp:text item="comment_email" /><txp:comment_email_input /></label> <label for="web"><txp:text item="comment_web" /><txp:comment_web_input /></label> <txp:comment_preview /> <txp:comment_submit /> </div>
ну вот еще comments_display (тип - article)
<h2 id="<txp:text item="comment" />"><txp:comments_invite textonly="1" showalways="1" showcount="0" /></h2> <txp:comments /> <txp:if_comments_preview> <div id="cpreview"> <txp:comments_preview /> </div> </txp:if_comments_preview> <txp:if_comments_allowed> <txp:comments_form isize="25" msgcols="45" msgrows="15" /> <txp:else /> <p><txp:text item="comments_closed" /></p> </txp:if_comments_allowed>
Неактивен
ps. шаблон пока не завершен, так что в default там еще не все сделано))
Насчет автоматического добавления комментариев - стоит да.
Отредактированно anyNeT (28-04-2009 06:34:20)
Неактивен
Попробуйте так - если при добавлении комментария будет допущена ошибка, то сам комментарий, который пытаются добавить, показан не будет. Вы этого добиться хотели?
Форма comments_display
<h2 id="<txp:text item="comment" />"><txp:comments_invite textonly="1" showalways="1" showcount="0" /></h2> <txp:comments /> <txp:if_comments_preview> <div id="cpreview"> <txp:if_comments_error><txp:else /> <txp:comments_preview /> </txp:if_comments_error> </div> </txp:if_comments_preview> <txp:if_comments_allowed> <txp:comments_form isize="25" msgcols="45" msgrows="15" /> <txp:else /> <p><txp:text item="comments_closed" /></p> </txp:if_comments_allowed>
Неактивен
Я так пробовал. Комментарий все равно отображается.
Вы этого добиться хотели?
Именно.
Неактивен
anyNeT написал:
Я так пробовал. Комментарий все равно отображается.
Вы этого добиться хотели?
Именно.
А если <txp:comments /> спрятать в это условие?
Неактивен
Все равно. Вообще что-то не совсем, как хотелось бы работает условие if_comments_error. Даже при ошибках в комментарии он выполняет условие else.
Неактивен
Версия тхп самая последняя, 4.0.8?
Неактивен
Неактивен
Попробуйте так (видимо, txp:if_comments_error работает по другому принципу):
<h2 id="<txp:text item="comment" />"><txp:comments_invite textonly="1" showalways="1" showcount="0" /></h2> <txp:comments /> <txp:variable name="comments_error" value='<txp:comments_error wraptag="ul" break="li" />' /> <txp:if_comments_preview> <txp:if_variable name="comments_error" value=""><txp:else /> <div id="cpreview"> <txp:comments_preview /> </div> </txp:if_variable> </txp:if_comments_preview> <txp:if_comments_allowed> <txp:comments_form isize="25" msgcols="45" msgrows="15" /> <txp:else /> <p><txp:text item="comments_closed" /></p> </txp:if_comments_allowed>
Неактивен
Спасибо, но все равно не работает =/ Странно как-то. Сейчас комментарий тоже выводится, только почему-то не обертывается в блок с id cpreview.
Неактивен
Значит, оберните <txp:comments /> предложенной конструкцией
Неактивен
В это случае комментарии вообще не отображаются.
Неактивен
А если в javascript вставить обработчик событий: если поле пустое, показывать alert с надписью "Укажите адрес сайта" или "Укажите эл. адрес" ?
Тоже пытаюсь решить данную проблему
Неактивен
С простеньким яваскриптом - можно. если на jQuery писать - минутное дело.
Повесить событие на кнопки "предпросмотр", которые будет запускать функцию проверки содержимого в полях.
Неактивен