Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skeeks-cms/cms-comments
Comments for skeeks cms
https://github.com/skeeks-cms/cms-comments
comments skeeks skeeks-cms skeekscms yii yii2 yii2-extension
Last synced: 7 days ago
JSON representation
Comments for skeeks cms
- Host: GitHub
- URL: https://github.com/skeeks-cms/cms-comments
- Owner: skeeks-cms
- License: bsd-3-clause
- Created: 2016-06-24T14:24:38.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-09-16T11:41:29.000Z (about 5 years ago)
- Last Synced: 2024-10-07T17:01:11.634Z (29 days ago)
- Topics: comments, skeeks, skeeks-cms, skeekscms, yii, yii2, yii2-extension
- Language: PHP
- Homepage: https://skeeks.com
- Size: 125 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Comments
===================================Installation
------------The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
Either run
```
php composer.phar require --prefer-dist skeeks/cms-comments "*"
```or add
```
"skeeks/cms-comments": "*"
```- Run migrations
```php
yii migrate --migrationPath=@skeeks/cms/comments/migrations/
```How to use (simple)
----------Configuration
------- In your config file
```php
'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]
```php
public function behaviors()
{
return [
'comments' => [
'class' => 'skeeks\cms\comments\behaviors\CommentsBehavior'
]
];
}
```- Content element property update count comments
```php
'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
```php
use skeeks\cms\comments\widgets\CommentsWidget;
```- Add comment widget in model view using (string) page key :
```php
echo Comments::widget(['model' => $pageKey]);
```- Or display comments using model name and id:
```php
echo Comments::widget(['model' => 'post', 'model_id' => 1]);
```- Or display comments using model behavior:
```php
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
php yii lang/translate-app @skeeks/cms/comments/messages/ru/main.php @skeeks/cms/comments/messages/ main.php
```
___> [![skeeks!](https://gravatar.com/userimage/74431132/13d04d83218593564422770b616e5622.jpg)](http://skeeks.com)
SkeekS CMS (Yii2) — fast, simple, effective!
[skeeks.com](http://skeeks.com) | [cms.skeeks.com](http://cms.skeeks.com) | [marketplace.cms.skeeks.com](http://marketplace.cms.skeeks.com)