diff --git a/common/models/Book.php b/common/models/Book.php index 4f53eba..aa6d0cc 100644 --- a/common/models/Book.php +++ b/common/models/Book.php @@ -165,7 +165,7 @@ } public function getActiveComments(){ - return $this->hasMany(Comment::className(), ['book_id' => 'id'])->where(['status' => true])->orderBy('created_at'); + return $this->hasMany(Comment::className(), ['book_id' => 'id'])->with('activeComments')->where(['status' => true, 'parent_id' => null])->orderBy('created_at'); } } diff --git a/common/models/Comment.php b/common/models/Comment.php index 65dc7e5..c6d0e77 100644 --- a/common/models/Comment.php +++ b/common/models/Comment.php @@ -130,4 +130,8 @@ { return $this->hasMany(Comment::className(), [ 'parent_id' => 'id' ]); } + + public function getActiveComments(){ + return $this->getComments()->where(['status' => true]); + } } diff --git a/frontend/config/main.php b/frontend/config/main.php index b1b1d45..8c45fd0 100755 --- a/frontend/config/main.php +++ b/frontend/config/main.php @@ -139,6 +139,118 @@ }', ], + 'comments' => [ + 'class' => 'artbox\core\forms\Module', + 'activeRecord' => "common\models\Comment", + 'attributes' => [ + 'name', + 'email', + 'comment', + 'book_id', + 'parent_id' + ], + 'templateForm' => '
Додати коментар
{form}', + 'rules' => [ + [ + [ + 'name', + 'email', + ], + 'required', + ] + ], + 'labels' => [ + 'name' => 'Ім\'я', + 'email' => 'Пошта', + 'comment' => 'коментар', + 'book_id' => false, + 'parent_id' => false + ], + + 'inputOptions' => [ + 'name' => [ + 'template' => '
{input}
' + ], + 'email' => [ + 'template' => '
{input}
' + ], + 'comment' => [ + 'type' => 'textarea', + 'options' => [], + 'template' => '
{input}
' + ], + ], + 'buttonTemplate' => '
{button}
', + 'buttonOptions' => [], + 'buttonContent' => 'Додати', + 'sendEmail' => false, + 'ajax' => true, + 'formId' => 'comment-form', + 'scenario' => 'default', + 'successCallback' => 'function (data) { + document.getElementById("comment-form").reset(); + $("#comment-form").parent().html("

Ваш коментар з\'явиться після перевірки модератором

") + $("#comment-form").remove(); + + }', + + ], + 'commentsChild' => [ + 'class' => 'artbox\core\forms\Module', + 'activeRecord' => "common\models\Comment", + 'attributes' => [ + 'name', + 'email', + 'comment', + 'book_id', + 'parent_id' + ], + 'templateForm' => '
Відповісти
{form}', + 'rules' => [ + [ + [ + 'name', + 'email', + ], + 'required', + ] + ], + 'labels' => [ + 'name' => 'Ім\'я', + 'email' => 'Пошта', + 'comment' => 'коментар', + 'book_id' => false, + 'parent_id' => false + ], + + 'inputOptions' => [ + 'name' => [ + 'template' => '
{input}
' + ], + 'email' => [ + 'template' => '
{input}
' + ], + 'comment' => [ + 'type' => 'textarea', + 'options' => [], + 'template' => '
{input}
' + ], + ], + 'buttonTemplate' => '
{button}
', + 'buttonOptions' => [], + 'buttonContent' => 'Додати', + 'sendEmail' => false, + 'ajax' => true, + 'formId' => 'answer-form', + 'scenario' => 'default', + 'successCallback' => 'function (data) { + document.getElementById("answer-form").reset(); + $("#answer-form").parent().html("

Ваш коментар з\'явиться після перевірки модератором

") + $("#answer-form").remove(); + + }', + + ], ], 'components' => [ 'user' => [ diff --git a/frontend/controllers/BookController.php b/frontend/controllers/BookController.php index c3a7bc6..3e56201 100644 --- a/frontend/controllers/BookController.php +++ b/frontend/controllers/BookController.php @@ -99,7 +99,7 @@ } public function actionView($id){ - $model = Book::find()->with('author') ->where(['id' => $id])->one(); + $model = Book::find()->with(['author', 'activeComments']) ->where(['id' => $id])->one(); return $this->render('view', ['model' => $model]); } } \ No newline at end of file diff --git a/frontend/views/book/view.php b/frontend/views/book/view.php index 65274a0..189a463 100644 --- a/frontend/views/book/view.php +++ b/frontend/views/book/view.php @@ -12,6 +12,30 @@ ]; $this->params['breadcrumbs'][] = $model->title; + + /** + * @var \artbox\core\forms\Module $module + * @var \artbox\core\forms\Module $moduleAnswer + */ + $module = \Yii::$app->getModule('comments'); + $module->inputOptions += ['book_id' => [ + 'type' => 'hiddenInput', + 'options' => ['value' => $model->id], + ]]; + $module->inputOptions += ['parent_id' => [ + 'type' => 'hiddenInput', + 'options' => ['value' => ''], + ]]; + + $moduleAnswer = \Yii::$app->getModule('commentsChild'); + $moduleAnswer->inputOptions += ['book_id' => [ + 'type' => 'hiddenInput', + 'options' => ['value' => $model->id], + ]]; + $moduleAnswer->inputOptions += ['parent_id' => [ + 'type' => 'hiddenInput', + 'options' => ['value' => ''], + ]]; ?>
@@ -99,92 +123,40 @@
+
+ activeComments)){?>
+ activeComments as $comment){?>
-
Ольга Ващенко
-
Скоріше відкривайте, чекатиму з нетерпінням! Неймовірне вам спасибі за видання цього автора українською!
-
- відповісти -
-
- -
-
Олександр Кармаш
-
Скоріше відкривайте, чекатиму з нетерпінням! Неймовірне вам спасибі за видання цього автора українською!Це вже остаточний варіант обкладинки? Бо це мені вперше не сподобалась обкладинка книжки вашого видавництва...(як на мене фраза про розчинний убік збоку псує всю картину і видається зайвою)..
+
name?>
+
comment?>
- відповісти + відповісти
+ activeComments as $child){?>
-
Андрій
+
name?>
- Доброго дня! Це не обкладинка, а просто футуристична картинка "для ілюстрації". Обкладинку ми зараз готуємо і незабаром додамо її на сайт. + comment?>
+
- -
-
Вікторія
-
Дочекався. Перша книжка Діка яку я прочитав (російською), тепер й українською. Неймовірно захоплива, і з (спойлер). - Але, шановні, змініть обкладинку, це ж обкладинка бразильського видання "Нейромант" Вільяма Гібсона
-
- відповісти -
-
- -
-
Руслан Ковтун
-
Дочекався. Перша книжка Діка яку я прочитав (російською), тепер й українською. Неймовірно захоплива, і з (спойлер). - Але, шановні, змініть обкладинку, це ж обкладинка бразильського видання "Нейромант" Вільяма Гібсона
-
- відповісти -
-
+
+
+
-
-
Додати коментар
-
- - -
-
- - -
-
- - -
-
- -
-
+ renderForm($this)?>
diff --git a/frontend/web/js/script.js b/frontend/web/js/script.js index e8a05ec..4e80a04 100644 --- a/frontend/web/js/script.js +++ b/frontend/web/js/script.js @@ -92,6 +92,7 @@ $(document).ready(function() { function scrollToForm() { $('body').on('click','.answers-wr span', function () { + $("#answer-form").find('.field-comment-parent_id').find("#comment-parent_id").val($(this).data('id')); var block = $('.hidden-comments-form-card'); block.addClass('vis_'); $('body, html').animate({scrollTop:block.offset().top - 36},500) @@ -99,6 +100,7 @@ $(document).ready(function() { }) $('body').on('click','.hidden-comments-form-card button', function () { $('.hidden-comments-form-card').removeClass('vis_'); + alert('thiiiis') }) -- libgit2 0.21.4