yii2mod / yii2-comments

Comments module for Yii2
MIT License
158 stars 63 forks source link

Возникли проблемы в использовании модуля #11

Closed vityapro closed 8 years ago

vityapro commented 8 years ago

При отправки комментария Pjax container не перезагружаеться а перенаправляет на главную страницу сайта в (возможно связано с тем что в Url-X-Path в хедере ответа приходит не текущая страница а домашняя страница сайта) в качестве хот фикса изменил одну из js функций

` function beforeSubmitForm() { var $commentForm = $(this), settings = $commentForm.data('comment'); //Add loading to comment button $commentForm.find(':submit').prop('disabled', true).text('Loading...'); var pjaxSettings = $.extend({container: settings.pjaxContainerId}, settings.pjaxSettings); //Send post request

    $.post($commentForm.attr("action"), $commentForm.serialize(), function (data) {
        //If success is status, then pjax container has been reloaded and comment form has been reset
        if (data.status == 'success') {
            $commentForm.find(':submit').prop('disabled', false).text('Comment');
            $commentForm.trigger("reset");
            alert('Your comment while show after moderation');
            // $.pjax(pjaxSettings).done(function () {
            //     $commentForm.find(':submit').prop('disabled', false).text('Comment');
            //     $commentForm.trigger("reset");
            //     //Restart plugin
            //     methods.reset.call($commentForm, settings);
            // });
        }
        //If status is error, then only show form errors.
        else {
            if (data.hasOwnProperty('errors')) {
                $commentForm.yiiActiveForm('updateMessages', data.errors, true);
            }else {
                $commentForm.yiiActiveForm('updateAttribute', 'commentmodel-content', [data.message]);
            }
            $commentForm.find(':submit').prop('disabled', false).text('Comment');
        }
    });

    return false;
}`

настройки pjax использую по умолчанию <?php Pjax::begin([ 'enablePushState' => false, 'timeout' => 10000, 'id' => $pjaxContainerId ]); ?>

ihorchepurnyi commented 8 years ago

Опишите пожалуйста шаги для воспроизведения ошибки

vityapro commented 8 years ago
  1. скачян через компосер,
  2. прописан в компонентах с переподключением контроллера в common/config/main: 'comment' => [ 'class' => 'yii2mod\comments\Module', 'controllerMap'=>[ 'default'=>[ 'class'=>'frontend\modules\comments\controllers\DefaultController', ], ], ], инициирован во вюхе самописного модуля новостей вот его инит в common/config/main : 'news'=>[ 'class'=>'common\modules\news\Module', 'tableName'=>'news', 'controllerMap'=>[ 'manager'=>[ 'class'=>'backend\modules\news\controllers\PagemanagerController', 'as access' => [ 'class' => yii\filters\AccessControl::className(), 'rules' => [ [ 'allow' => false, 'roles' => ['*'], ], ], ], ], ], ],

инициировал следующим кодом: <?= \yii2mod\comments\widgets\Comment::widget([ 'model' => $news, 'relatedTo' => 'User ' .$username . ' commented on the page ' . \yii\helpers\Url::current(), // for example 'commentView' => '@frontend/modules/comments/views/index' ]) ?> в собственной вюхе добавил внутреннею проверку что бы не выводить удаленные коментарии настройки Pjax не менял

ihorchepurnyi commented 8 years ago

окей, спасибо. Сегодня вечером постараюсь проверить

vityapro commented 8 years ago

вам спасибо, за быстрый ответ

ihorchepurnyi commented 8 years ago

забыл спросить, пару вопросов:

  1. Версия Yii
  2. Напишите сюда пожалуйста код вашей собственной вюхе для комментов.
vityapro commented 8 years ago

Yii 2.0.9 index.php http://pastebin.com/9XqZKW2h _form.php

http://pastebin.com/BGwSXA0S

_list.php

http://pastebin.com/Dh4N2BAb

ihorchepurnyi commented 8 years ago

Так, только что попробовал на чистом шаблоне воспроизвести, не получилось. Использовал Yii 2.0.9, и создал новый модуль news(в нем рендерил комментарии). Если можете, попробуйте протестировать виджет без вашей вьюхе. Проверьте пожалуйста, работает ли он со своей дефолтной вьюхой корректно.

vityapro commented 8 years ago

При использовании дефолтной вюхи и дефолтного жс ругался на функцию $.pjax

ihorchepurnyi commented 8 years ago

окей, честно говоря пока трудно сказать в чем проблема, так как с таким еще не сталкивался. Думаю что то с ассетами, похоже на то что PjaxAsset не корректно отработал. Вечером еще раз гляну.

ihorchepurnyi commented 8 years ago

поставил на чистый yii2/advanced не смог воспроизвести ошибку

ihorchepurnyi commented 8 years ago

Посмотрите на странице подгружен ли jquery.pjax.js, если он есть то ошибок с функцией $.pjax не должно быть.