Skip to content

Votes πŸ‘ πŸ‘Ž // Favorite ⭐ // Like ❀️ module for Yii 2

License

Notifications You must be signed in to change notification settings

hauntd/yii2-vote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9bb2657 Β· Oct 8, 2018

History

78 Commits
Jun 29, 2018
Jul 9, 2016
Jun 29, 2018
Jun 29, 2018
Jun 29, 2018
Jul 10, 2016
Oct 23, 2017
Oct 8, 2018
Jun 29, 2018
Jun 29, 2018
Jun 24, 2016
Jun 24, 2016
Jul 1, 2016
Jun 29, 2018
Oct 8, 2018
Jul 1, 2016
Jun 24, 2016
Oct 29, 2017
Nov 1, 2017
Jun 24, 2016

Repository files navigation

Yii2-Vote Latest Version License Scrutinizer Code Quality Code Climate

This module allows you to attach vote widgets, like/favorite buttons to your models.

Demo

  • 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.