hauntd / yii2-vote
Votes, likes, favorites.
Installs: 2 819
Dependents: 0
Suggesters: 0
Security: 0
Stars: 39
Watchers: 4
Forks: 11
Open Issues: 2
Type:yii2-extension
Requires
- yiisoft/yii2: ^2.0
- yiisoft/yii2-bootstrap: ^2.0
README
This module allows you to attach vote widgets, like/favorite buttons to your models.
- Attach as many widgets to model as you need
- Customization (action, events, views)
- Useful widgets included (Favorite button, Like button, Rating "up/down")
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist hauntd/yii2-vote "0.3.*"
or add
"hauntd/yii2-vote": "*"
to the require section of your composer.json
file.
Configuration
Add module settings to your application config (config/main.php
).
Entity names should be in camelCase like itemVote
, itemVoteGuests
, itemLike
and itemFavorite
.
return [ 'modules' => [ 'vote' => [ 'class' => hauntd\vote\Module::class, 'guestTimeLimit' => 3600, 'entities' => [ // Entity -> Settings 'itemVote' => app\models\Item::class, // your model 'itemVoteGuests' => [ 'modelName' => app\models\Item::class, // your model 'allowGuests' => true, 'allowSelfVote' => false, 'entityAuthorAttribute' => 'user_id', ], 'itemLike' => [ 'modelName' => app\models\Item::class, // your model 'type' => hauntd\vote\Module::TYPE_TOGGLE, // like/favorite button ], 'itemFavorite' => [ 'modelName' => app\models\Item::class, // your model 'type' => hauntd\vote\Module::TYPE_TOGGLE, // like/favorite button ], ], ], ], 'components' => [ ... ] ];
After you downloaded and configured hauntd/yii2-vote
, the last thing you need to do is updating your database schema by applying the migrations:
php yii migrate/up --migrationPath=@vendor/hauntd/yii2-vote/migrations/
Usage
Vote widget:
<?= \hauntd\vote\widgets\Vote::widget([ 'entity' => 'itemVote', 'model' => $model, 'options' => ['class' => 'vote vote-visible-buttons'] ]); ?>
Like/Favorite widgets:
<?= \hauntd\vote\widgets\Favorite::widget([ 'entity' => 'itemFavorite', 'model' => $model, ]); ?> <?= \hauntd\vote\widgets\Like::widget([ 'entity' => 'itemLike', 'model' => $model, ]); ?>
Change log
Please see CHANGELOG for more information what has changed recently.
Documentation
License
BSD 3-Clause License. Please see License File for more information.