skeeks/cms-comments

评论组件

安装: 51

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 4

分支: 0

类型:yii2-extension

1.2.1.4 2019-09-16 11:25 UTC

This package is auto-updated.

Last update: 2024-09-16 22:34:37 UTC


README

安装

安装此扩展的首选方式是通过 composer.

运行以下命令之一

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

或添加

"skeeks/cms-comments": "*"
  • 运行迁移
yii migrate --migrationPath=@skeeks/cms/comments/migrations/

如何使用(简单)

配置

  • 在你的配置文件中
'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)
        {
            //...
        }
	]
]
  • 在你的模型中 [可选]
public function behaviors()
{
  return [
    'comments' => [
      'class' => 'skeeks\cms\comments\behaviors\CommentsBehavior'
    ]
  ];
}
  • 内容元素属性更新评论计数
'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)
{
....
	    

用法

  • 小部件命名空间
use skeeks\cms\comments\widgets\CommentsWidget;
  • 使用(字符串)页面键在模型视图中添加评论小部件
echo Comments::widget(['model' => $pageKey]);
  • 或使用模型名称和ID显示评论
echo Comments::widget(['model' => 'post', 'model_id' => 1]);
  • 或使用模型行为显示评论
echo Post::findOne(10)->displayComments();

模块选项

使用此选项来配置评论模块

  • userModel - 用户模型类名。

  • maxNestedLevel - 允许的最大嵌套级别。

  • onlyRegistered - 指示未注册用户是否可以发表评论。

  • orderDirection - 评论排序方向。

  • nestedOrderDirection - 回复排序方向。

  • userAvatar - 显示用户头像的字段。

    如果此字段为NULL,则默认显示头像图像。还可以指定路径或使用可调用类型。

    如果此属性指定为回调,则它应具有以下签名: function ($user_id)

开发者

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

skeeks!
SkeekS CMS (Yii2) — 快速,简单,高效!
skeeks.com | cms.skeeks.com | marketplace.cms.skeeks.com