UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: diii3 от 29 Ноября 2011, 23:16:32

Название: Ошибка при добавлении комментариев
Отправлено: diii3 от 29 Ноября 2011, 23:16:32
Здравствуйте! Очень нужна помощь. Сайт на XSLT-шаблоне. При добавлении комментариев пропадает центральная часть сайта. До этого все работало хорошо. Подскажите, пожалуйста, что это может быть?
Название: Re:Ошибка при добавлении комментариев
Отправлено: NOIRMAN от 30 Ноября 2011, 01:47:25
Ну хорошо бы посмотреть на хотя бы кусочки кода шаблона ...
Название: Re:Ошибка при добавлении комментариев
Отправлено: admin от 30 Ноября 2011, 08:55:40
скорее всего в подключаемом блоке с шаблонами для комментарием есть несуществующая переменная, она обычно такие фокусы создает, просто отключи все комментарии и начинай включать по одному шаблону для комментариев, вначале шаблон для блока комментариев, потом шаблон для каждого комментария, в общем простым комментированием или временным удалением найди недопустимую строчку и тогда станет понятней
Название: Re:Ошибка при добавлении комментариев
Отправлено: diii3 от 30 Ноября 2011, 09:20:11
Да, спасибо, я конечно попробую, просто странно - до этого комментарии нормально добавлялись на сайте, а теперь вот такая штука получилась....
Название: Re:Ошибка при добавлении комментариев
Отправлено: Aksuk от 16 Марта 2012, 23:36:43
Такая же проблема. Сайт "разносит" после добавления комментария, а в адресной строке появляется окончание вида "?_err=1331925140" Если убрать его и обновить страницу - все выводится корректно.

Кроме того при попытке открыть саму страницу комментария выдается сообщение: "Notice: Undefined variable: curr_page in /home/raspp/raspp.ru/docs/classes/modules/comments/class.php on line 342" - я вообще не знаю PHP и только могу гадать - что это означает. Криво ли поставили модуль комментариев (СЗ устанавливала по моей просьбе, так как изначально сборка шла без него), или я напортачил.

Делал вывод комментариев точно по инструкции - http://help-dev.umi-cms.ru/chapter.CommentsWithXSLT.html ничего не выдумывал. Единственная переменная, которая там используется - количество страниц (для пэйджинга), я вообще убрал вывод пэйджинга пока что. Не помогло.

Соответственно мой код:

<xsl:template match="result[@module = 'news'][@method = 'item']" mode="comments">

  <h3><a name="comments">Комментарии</a></h3>
 
<xsl:apply-templates select="document(concat('udata://comments/insert/', page/@id))/udata"/>
   
  <xsl:apply-templates select="user"/>
 
</xsl:template>


<!--Пустой список-->
<xsl:template match="udata[@module = 'comments'][@method = 'insert']">
   <span>Нет комментариев</span>
</xsl:template>

<!--Список комментов-->
<xsl:template match="udata[@module = 'comments'][@method = 'insert'][items/item]">

  <ul class="comments">
    <xsl:apply-templates select="items/item" mode="comments.list" />
  </ul>

</xsl:template>

<!--Отдельный комментарий-->

<xsl:template match="item" mode="comments.list">
  <li>
    <xsl:value-of select="@num" />.&nbsp;
    <span class="comment_title">
       <xsl:value-of select="@title" />
    </span>
     &nbsp;-&nbsp;
    <xsl:apply-templates select="document(concat('udata://users/viewAuthor/', @author_id))/udata"/>

    <div class="comment_message">
          <xsl:value-of select="." disable-output-escaping="yes" />
    </div>
  </li>
</xsl:template>

<!--Вывод автора-->

<xsl:template match="udata[@module = 'users'][@method = 'viewAuthor']">
  <xsl:value-of select="nickname" />
</xsl:template>

<xsl:template match="udata[@module = 'users'][@method = 'viewAuthor'][email]">
  <a class="author" href="mailto:{email}">
    <xsl:value-of select="nickname" />
  </a>
</xsl:template>

<!--Зарегистрированный юзер-->
<xsl:template match="user[@status = 'auth']">

  <h3><a name="addcomment">Добавить комментарий</a></h3>

  <form method="post" action="/comments/post/{/result/@pageId}/" name="form_addcomment" id="form_addcomment">

     <fieldset class="intext">
         <label for="comment_title" id="for_title" title="Заголовок">
           <span>Заголовок:&nbsp;<sup class="asterisk">*</sup></span>
           <input type="text" name="title" id="comment_title" />
         </label>

         <label for="comment_text" id="for_comment" title="Текст">
           <span>Текст:&nbsp;<sup class="asterisk">*</sup></span>
           <textarea name="comment" id="comment_text" cols="6" />
         </label>
     </fieldset>

     <input class="submit-send" type="submit" value="Отправить"/>

  </form>

</xsl:template>

<!--Незарегистрированный-->

<xsl:template match="user">
      <xsl:apply-templates select="document(concat('udata://comments/insert/', /result/@pageId))/udata/action"/>
</xsl:template>

<xsl:template match="action">
  <h3><a name="addcomment">Добавить комментарий</a></h3>

  <form method="post" action="{.}" name="form_addcomment" id="form_addcomment">

    <fieldset class="intext">
       <label for="comment_title" id="for_title" title="Заголовок">
         <span>Заголовок:&nbsp;<sup class="asterisk">*</sup></span>
         <input type="text" name="title" id="comment_title" />
       </label>

       <label for="comment_author">
          <span>Ваш ник:</span>
          <input type="text" name="author_nick" id="comment_author" />
       </label>

       <label for="comment_email">
          <span>Ваш e-mail:</span>
          <input type="text" name="author_email" id="comment_email" />
       </label>

       <label for="comment_text" id="for_comment" title="Текст">
          <span>Текст:&nbsp;<sup class="asterisk">*</sup></span>
          <textarea name="comment" id="comment_text" cols="6" />
       </label>
    </fieldset>

    <xsl:apply-templates select="document('udata://system/captcha')/udata[url]" mode="captcha" />

    <input class="btt submit-send" type="submit" value="отправить"/>

  </form>

</xsl:template>

<!--Капча-->

<xsl:template match="udata[@module = 'system'][@method = 'captcha']" mode="captcha">
  <fieldset>
    <legend>Введите символы защиты от автосозданий&nbsp;<sup class="asterisk">*</sup></legend>

    <label for="captcha" id="for_captcha" title="Защитный код">
      <div class="captcha_input">
        <input type="text" name="captcha" id="captcha" />
      </div>
      <span><img src="{url}{@random_string}" /></span>
    </label>
  </fieldset>
</xsl:template>


Подскажите пожалуйста - что здесь может быть не так?
Название: Re:Ошибка при добавлении комментариев
Отправлено: BaceH от 16 Марта 2012, 23:59:18
Здравствуйте! Очень нужна помощь. Сайт на XSLT-шаблоне. При добавлении комментариев пропадает центральная часть сайта. До этого все работало хорошо. Подскажите, пожалуйста, что это может быть?
"До этого" это до чего? что меняли, добавляли, удаляли?
Название: Re:Ошибка при добавлении комментариев
Отправлено: BaceH от 17 Марта 2012, 00:02:49
 "?_err=1331925140" подобную ошибку у меня выдавал модуль при некорректном переносе на хостинг. шаблон тут не причем, до него дело не дошло. Мучайте СЗ.
Название: Re:Ошибка при добавлении комментариев
Отправлено: Aksuk от 17 Марта 2012, 16:09:25
"?_err=1331925140" подобную ошибку у меня выдавал модуль при некорректном переносе на хостинг. шаблон тут не причем, до него дело не дошло. Мучайте СЗ.

Спасибо! Придется помучать. Я им благодарен, конечно, что доставили модуль, которого не было в этой лицензии на момент инсталляции (сейчас есть), но...
А ошибка при открытии материала коммента (что штатным порядком, что в виде xml) - из того же набора глюков?
Название: Re:Ошибка при добавлении комментариев
Отправлено: Vladimir от 17 Марта 2012, 17:02:01


Кроме того при попытке открыть саму страницу комментария выдается сообщение: "Notice: Undefined variable: curr_page in /home/raspp/raspp.ru/docs/classes/modules/comments/class.php on line 342" - я вообще не знаю PHP и только могу гадать - что это означает. Криво ли поставили модуль комментариев (СЗ устанавливала по моей просьбе, так как изначально сборка шла без него), или я напортачил.


О боже(((( Все верно, в методе comment() в инструкции $sel->addLimit($per_page, $curr_page);  неопределена переменная  $curr_page

Добавьтее ее чтобы получилось примерно так:
$curr_page = (int) getRequest('p');
$sel = new umiSelection;
$sel->addLimit($per_page, $curr_page);
Правда, мне еще ни разу не приходило в голову смотреть отдельный комментарий. Возможно, никто никогда до вас такого и не делал, потому никто и не замечал ошибки.
Отправье ее в СЗ, они будут благодарны.
Название: Re:Ошибка при добавлении комментариев
Отправлено: Aksuk от 17 Марта 2012, 19:26:01
Спасибо! Добавил строчку, теперь все честно - перекидывает на страницу материала.

Тем временем я выяснил, что мой "разнос сайта" связан с премодерацией. Убираю ее - все нормально (только капча отображается раз за сессию, но это, право, мелочи). Возможно там после отправки коммента должно показываться какое-то сообщение, а я не предусмотрел для него вывода?