Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
vityapro opened this issue Jun 20, 2016 · 11 comments
Closed

Comments

@vityapro
Copy link

При отправки комментария 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
Copy link
Contributor

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

@vityapro
Copy link
Author

  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
Copy link
Contributor

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

@vityapro
Copy link
Author

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

@ihorchepurnyi
Copy link
Contributor

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

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

@vityapro
Copy link
Author

vityapro commented Jun 20, 2016

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

http://pastebin.com/BGwSXA0S

_list.php

http://pastebin.com/Dh4N2BAb

@ihorchepurnyi
Copy link
Contributor

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

@vityapro
Copy link
Author

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

@ihorchepurnyi
Copy link
Contributor

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

@ihorchepurnyi
Copy link
Contributor

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

@ihorchepurnyi
Copy link
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants