Package Data | |
---|---|
Maintainer Username: | musonza |
Maintainer Contact: | tinashemusonza@gmail.com (Tinashe Musonza) |
Package Create Date: | 2016-04-02 |
Package Last Update: | 2020-02-05 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-19 03:14:33 |
Package Statistics | |
---|---|
Total Downloads: | 3,086 |
Monthly Downloads: | 2 |
Daily Downloads: | 0 |
Total Stars: | 69 |
Total Watchers: | 9 |
Total Forks: | 15 |
Total Open Issues: | 5 |
This package allows you to add user groups (groups, comment, like ...) system to your Laravel 5 application.
composer require musonza/groups
./config/app.php
in providers
array, like : /*
* Package Service Providers...
*/
Musonza\Groups\GroupsServiceProvider::class,
./config/app.php
at the end of aliases
array : 'Groups' => Musonza\Groups\Facades\GroupsFacade::class,
Note : The class is bound to the ioC as Groups.
$groups = App::make('Groups');
php artisan vendor:publish
Note : This will publish database migrations in
./database/migrations/
.
create_groups_table // main groups table
id
name
description
short_description
image
url
user_id
private
conversation_id
extra_info
settings
# Usage
## Groups
1. ##### Create a group
```php
$group = Groups::create($userId, $data);
Note : Accepted fields in $data array :
$data = [
'name' => '',
'description' => '', // optional
'short_description' => '', // optional
'image' => '', // optional
'private' => 0, // 0 (public) or 1 (private)
'extra_info' => '', // optional
'settings' => '', // optional
'conversation_id' => 0, // optional if you want to add messaging to your groups this can be useful
];
$group->delete();
$group->update($updateArray);
$user = Groups::getUser($userId);
$group->addMembers([$userId, $userId2, ...]);
$group->request($userId);
$group->acceptRequest($userId);
$group->declineRequest($userId);
$requests = $group->requests;
$user = Groups::getUser($userId);
$count = $user->groups->count();
$group->leave([$userId, $userId2, ...]);
$post = Groups::createPost($data);
Note : Acceptable values for Post $data array
$data = [
'title' => '',
'user_id' => 0,
'body' => '',
'type' => '',
'extra_info' => '',
];
$post = Groups::post($postId);
$post->update($data);
$post->delete();
$group->attachPost($postId);
$group->attachPost([$postId, $postId2, ...]);
$group->detachPost($postId);
$posts = $group->posts;
$posts = $group->posts()->paginate(5);
$posts = $group->posts()->orderBy('id', 'DESC')->paginate(5);
$user = Groups::getUser($userId);
$posts = $user->posts;
Note : Acceptable values for Comment $data array
$data = [
'post_id' => 0,
'user_id' => 0,
'body' => '',
];
$comment = Groups::addComment($data);
$comment = Groups::comment($commentId);
$comment->update($data);
$comment->delete();
$comment->report($userIdOfReporter);
$post->report($userIdOfReporter);
$post->removeReport($userId);
$comment->removeReport($userId);
$post->toggleReport($userId);
$comment->toggleReport($userId);
$commentReports = $comment->reportsCount;
$postReports = $post->reportsCount;
$post->like($userId);
$comment->like($userId);
$post->unlike($userId);
$comment->unlike($userId);
$post->toggleLike($userId);
$comment->toggleLike($userId);
$postLikes = $post->likesCount;
$commentLikes = $comment->likesCount;