Skip to content

lsl-soft/poll

Folders and files

NameName
Last commit message
Last commit date

Latest commit

21a62f9 · Jan 25, 2017

History

22 Commits
Jan 22, 2017
Jan 22, 2017
Jan 23, 2017
Jan 25, 2017
Jan 25, 2017
Jan 18, 2017
Jan 23, 2017
Jan 20, 2017

Repository files navigation

Yii2-poll widget

This is simple poll widget for yii2 framework. You can use both single and multiple answer.

(More information: lslsoft.com)

Installing

Yii2-poll can be installed using composer. Run following command to download and install yii2-poll:

composer require lslsoft/yii2-poll

or add this in require section of composer.json of your project

"lslsoft/yii2-poll" : "dev-master"

Migrations

Migrations are in the folder

lslsoft/yii2-poll/migrations/create

Files which are responsible for creating tables and relations needed

lslsoft/yii2-poll/migrations/create

Files which are responsible for inserting some sample data

to apply migrations add in your config file

'migrate-lslsoft-create' => [
            'class' => 'yii\console\controllers\MigrateController',
            'migrationPath' => 'vendor/lslsoft/yii2-poll/migrations/create',
            'migrationTable' => 'migration_lslsoft_create',
        ],

to run use the command

php yii migrate-lslsoft-create

for creating tables and relations needed

and for inserting some sample data:

'migrate-lslsoft-insert' => [
            'class' => 'yii\console\controllers\MigrateController',
            'migrationPath' => 'vendor/lslsoft/yii2-poll/migrations/insert',
            'migrationTable' => 'migration_lslsoft_insert',
        ],

to run use the command

php yii migrate-lslsoft-insert

###Internalization

You should add in your config file

'i18n' => [ 'translations' => [ 'sourceLanguage' => 'en-En',

            'polls*' => [
                'class' => 'yii\i18n\PhpMessageSource',
                'basePath' => '@yii/vendor/lslsoft/poll/messages',
            ],
            
        ],
    ],

Basic language for extension - english In the folder lslsoft/yii2-poll/migrations/messages you will find folder for russian and chinese

###Usage

use lslsoft\poll\Poll;

 <?= Poll::widget(); ?>

Without any parameter will choose a first poll for which

date_beg < today < date_end;
 <?= Poll::widget([
                    'idPoll' => 1,
                    
                ]                     
                    ); ?>

will use poll from table polls with id=1;

On default results will be shown as simple bar chart

 <?= Poll::widget([
                    'idPoll' => 1,
                    'resultView'=>'table'
                    
                ]                     
                    ); ?>

will display results as a GridView;

Tables

TABLE `polls` (
  `id` int(11) NOT NULL COMMENT '№ poll',
  `question` text NOT NULL COMMENT 'Question', //text of the poll's question 
  `date_beg` date NOT NULL COMMENT 'Date begin',//Date when poll should start
  `date_end` date NOT NULL COMMENT 'Date end', //Date when poll should end
  `allow_multiple` tinyint(4) NOT NULL COMMENT 'Multiple answer', //Define type of poll - with only one possible answer or not
  `is_random` tinyint(4) NOT NULL COMMENT 'Random order', //if true - display answers in random order
  `anonymous` tinyint(4) NOT NULL COMMENT 'Anonymous answers',//if true - user can vote without sign up
  `show_vote` int(11) NOT NULL COMMENT 'Show number of votes' //if true - the results will be shown after sending vote
) ENGINE=InnoDB DEFAULT CHARSET=;
CREATE TABLE `polls_answers` (
  `id` int(11) NOT NULL COMMENT '№ answer',
  `id_poll` int(11) DEFAULT NULL COMMENT '№ poll',
  `answer` text NOT NULL COMMENT 'answer'
) ENGINE=InnoDB;
CREATE TABLE `polls_result` (
  `num` int(11) NOT NULL DEFAULT '0' COMMENT 'Number of the voting',
  `id_poll` int(11) NOT NULL COMMENT '№ of poll',
  `id_answer` int(11) NOT NULL COMMENT '№ of answer',
  `id_user` int(11) NOT NULL,
  `id` int(11) NOT NULL,
  `create_at` datetime NOT NULL,
  `update_at` datetime NOT NULL,
  `ip` varchar(20) NOT NULL,
  `host` varchar(20) DEFAULT NULL
) ENGINE=InnoDB;

Author

  • Leonid Lyalin

License

This project is licensed under the BSD-3-Clause

Acknowledgments

  • Thanks to all Yii framework team for inspiration and special thanks to Alexander Makarov (@samdark)
  • Thanks to @Insolita for magic yii2-migrik

About

Poll widget for yii2 framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages