Veröffentlichungszeit: Freitag, 30. Dezember 2016 (vor 2 Jahren)

Erstellt von: Семенов Александр Сергеевич

Kategorie: Bewertungen, Kommentare

Aktuelle Version: 1.2.1.4
16.09.2019 14:25:54 (vor einem Monat)

Packagist: skeeks/cms-comments

: https://github.com/skeeks-cms/cms-comments

: 47

Typ: Компонент

Comments

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist skeeks/cms-comments "*"

or add

"skeeks/cms-comments": "*"
  • Run migrations
yii migrate --migrationPath=@skeeks/cms/comments/migrations/

How to use (simple)

Configuration

  • In your config file
'bootstrap' => ['comments'],
'components' =>
[
'i18n' => [
    'translations'  =>
    [
        'skeeks/comments' =>
        [
            'class'             => 'yii\i18n\PhpMessageSource',
            'basePath'          => '@skeeks/cms/comments/messages',
            'fileMap' => [
                'skeeks/comments' => 'main.php',
            ],
        ]
    ],
],
],

'modules' =>
[
    'comments' =>
    [
        'class' => 'skeeks\cms\comments\CommentsModule',
        //'maxNestedLevel'          => 5
        //'onlyRegistered'          => false
        //'orderDirection'          => SORT_DESC
        //'nestedOrderDirection'    => SORT_ASC
        //'displayAvatar'           => true
        //'commentsPerPage'         => 5,
        'on commentAdded' => function(\skeeks\cms\comments\events\CommentEvent $e)
        {
            /**
             * @var $comment \skeeks\cms\comments\models\CmsComment
             */
            $comment = $e->comment;
            $comment->user;
            $comment->model;
            $comment->model_id;
        },

        'on commentDeleted' => function(\skeeks\cms\comments\events\CommentEvent $e)
        {
            //...
        }
    ]
]
  • In you model [optional]
public function behaviors()
{
  return [
    'comments' => [
      'class' => 'skeeks\cms\comments\behaviors\CommentsBehavior'
    ]
  ];
}
  • Content element property update count comments
'on commentAdded' => function(\skeeks\cms\comments\events\CommentEvent $e)
{
    /**
     * @var $comment \skeeks\cms\comments\models\CmsComment
     * @var $user \common\models\User
     * @var $element \skeeks\cms\models\CmsContentElement
     */
    $comment = $e->comment;
    $user = $comment->user;

    /*$user->appUser->total_comments = $user->appUser->total_comments + 1;
    if (!$user->appUser->save())
    {
        \Yii::error("Not update user total comments: {$user->id}", 'project');
    }*/

    \Yii::error(\skeeks\cms\models\CmsContentElement::tableName(), 'project');
    \Yii::error(\yii\helpers\Json::encode($comment->toArray()), 'project');

    if ($comment->model == \skeeks\cms\models\CmsContentElement::tableName())
    {
        $element = \skeeks\cms\models\CmsContentElement::findOne($comment->model_id);
        if ($element && $element->relatedPropertiesModel->hasAttribute('comments'))
        {
        $totalComments = \skeeks\cms\comments\models\CmsComment::find()->where([
            'model_id' => $element->id,
        ])->andWhere(['model' => \skeeks\cms\models\CmsContentElement::tableName()])->count();
        $element->relatedPropertiesModel->setAttribute('comments', $totalComments);
        //$element->relatedPropertiesModel->setAttribute('comments', ((int) $element->relatedPropertiesModel->getAttribute('comments') + 1));

        if (!$element->relatedPropertiesModel->save())
        {
            \Yii::error("Not update element total comments: {$element->id}", 'project');
        }
        } else
        {
        \Yii::error("Element not found or not have property comments: {$element->id}", 'project');
        }
    }
},

'on commentDeleted' => function(\skeeks\cms\comments\events\CommentEvent $e)
{
....

Usage

  • Widget namespace
use skeeks\cms\comments\widgets\CommentsWidget;
  • Add comment widget in model view using (string) page key :
echo Comments::widget(['model' => $pageKey]);
  • Or display comments using model name and id:
echo Comments::widget(['model' => 'post', 'model_id' => 1]);
  • Or display comments using model behavior:
echo Post::findOne(10)->displayComments();

Module Options

Use this options to configurate comments module:

  • userModel - User model class name.

  • maxNestedLevel - Maximum allowed nested level for comment’s replies.

  • onlyRegistered - Indicates whether not registered users can leave a comment.

  • orderDirection - Comments order direction.

  • nestedOrderDirection - Replies order direction.

  • userAvatar - The field for displaying user avatars.

    Is this field is NULL default avatar image will be displayed. Also it can specify path to image or use callable type.

    If this property is specified as a callback, it should have the following signature: function ($user_id)

For dev

php yii lang/translate-app @skeeks/cms/comments/messages/ru/main.php @skeeks/cms/comments/messages/ main.php

skeeks!
SkeekS CMS (Yii2) — fast, simple, effective!
skeeks.com | cms.skeeks.com | marketplace.cms.skeeks.com

CHANGELOG

1.2.0

  • SkeekS CMS updated
  • Pgsql support

1.1.0

  • Using composer-config-plugin

1.0.0

  • Stable release

Alle Kommentare (1)
Тестирование комментариев после обновления

dev-master — 16.09.2019 14:25:54 (vor einem Monat)

1.2.1.4 — 16.09.2019 14:25:54 (vor einem Monat)

1.2.1.3 — 06.04.2019 12:49:04 (vor 7 Monaten)

1.2.1.2 — 25.01.2019 18:51:34 (vor 9 Monaten)

1.2.1.1 — 25.01.2019 17:01:36 (vor 9 Monaten)

1.2.0 — 21.11.2017 11:24:55 (vor einem Jahr)

1.1.0 — 07.11.2017 13:37:53 (vor 2 Jahren)

1.0.0 — 30.12.2016 12:41:50 (vor 2 Jahren)

Стандартная установка:

Добавьте composer.json файл вашего проекта:

"skeeks/cms-comments": "*"

Запустите обновление зависимостей


Читать про обнолвение SkeekS CMS