Commit 280e92c2fbdbb8872e9c5c680fa06ed7feee396f

Authored by Dmitryi
1 parent 823ef13e

авторизация через соц сети

Showing 47 changed files with 1191 additions and 435 deletions   Show diff stats
common/config/main.php
@@ -40,6 +40,125 @@ return [ @@ -40,6 +40,125 @@ return [
40 'authManager' => [ 40 'authManager' => [
41 'class' => 'yii\rbac\DbManager', 41 'class' => 'yii\rbac\DbManager',
42 ], 42 ],
  43 +
  44 + //подключаем конфигурации API соц сетей для авторизации
  45 +
  46 + 'eauth' => [
  47 + 'class' => 'nodge\eauth\EAuth',
  48 + 'popup' => true, // Use the popup window instead of redirecting.
  49 + 'cache' => false, // Cache component name or false to disable cache. Defaults to 'cache' on production environments.
  50 + 'cacheExpire' => 0, // Cache lifetime. Defaults to 0 - means unlimited.
  51 + 'httpClient' => [
  52 + // uncomment this to use streams in safe_mode
  53 + //'useStreamsFallback' => true,
  54 + ],
  55 + 'services' => [ // You can change the providers and their classes.
  56 + 'google' => [
  57 + // register your app here: https://code.google.com/apis/console/
  58 + 'class' => 'nodge\eauth\services\GoogleOAuth2Service',
  59 + 'clientId' => 'artbox-1138',
  60 + 'clientSecret' => '',
  61 + 'title' => 'Google',
  62 + ],
  63 + 'twitter' => [
  64 + // register your app here: https://dev.twitter.com/apps/new
  65 + 'class' => 'nodge\eauth\services\TwitterOAuth1Service',
  66 + 'key' => '8vReLxI63vTs98MBMqhvrszwy',
  67 + 'secret' => 'jOqNbHIkQw4cVKKJkgrMtaEeCcfbeT1GTik4pF6O9D7AmqcwOG',
  68 + ],
  69 + 'yandex' => [
  70 + // register your app here: https://oauth.yandex.ru/client/my
  71 + 'class' => 'nodge\eauth\services\YandexOAuth2Service',
  72 + 'clientId' => 'ea13195ac0424ff8a190838bec41bb71',
  73 + 'clientSecret' => '911f2c9afcbf4f5f9319b3134c096c86',
  74 + 'title' => 'Yandex',
  75 + ],
  76 + 'facebook' => [
  77 + // register your app here: https://developers.facebook.com/apps/
  78 + 'class' => 'nodge\eauth\services\FacebookOAuth2Service',
  79 + 'clientId' => '1642047622727997',
  80 + 'clientSecret' => 'f5b7ba4f062a568678b764fc74cc416e',
  81 + ],
  82 + 'yahoo' => [
  83 + 'class' => 'nodge\eauth\services\YahooOpenIDService',
  84 + //'realm' => '*.example.org', // your domain, can be with wildcard to authenticate on subdomains.
  85 + ],
  86 + 'linkedin' => [
  87 + // register your app here: https://www.linkedin.com/secure/developer
  88 + 'class' => 'nodge\eauth\services\LinkedinOAuth1Service',
  89 + 'key' => '77s41eixn3dyvo',
  90 + 'secret' => '1xLZQ7RRK6RNjo4U',
  91 + 'title' => 'LinkedIn (OAuth1)',
  92 + ],
  93 + 'linkedin_oauth2' => [
  94 + // register your app here: https://www.linkedin.com/secure/developer
  95 + 'class' => 'nodge\eauth\services\LinkedinOAuth2Service',
  96 + 'clientId' => '77s41eixn3dyvo',
  97 + 'clientSecret' => '1xLZQ7RRK6RNjo4U',
  98 + 'title' => 'LinkedIn (OAuth2)',
  99 + ],
  100 + 'github' => [
  101 + // register your app here: https://github.com/settings/applications
  102 + 'class' => 'nodge\eauth\services\GitHubOAuth2Service',
  103 + 'clientId' => 'd00283b5cfb225cd1600',
  104 + 'clientSecret' => 'f482361fad7184819d452f421c8b09db60830b42',
  105 + ],
  106 + 'live' => [
  107 + // register your app here: https://account.live.com/developers/applications/index
  108 + 'class' => 'nodge\eauth\services\LiveOAuth2Service',
  109 + 'clientId' => '00000000481796AE',
  110 + 'clientSecret' => 'rt9GiJrlKz3sE6CvdOeuwWyYbl1tQT03',
  111 + ],
  112 + 'steam' => [
  113 + 'class' => 'nodge\eauth\services\SteamOpenIDService',
  114 + //'realm' => '*.example.org', // your domain, can be with wildcard to authenticate on subdomains.
  115 + ],
  116 + 'instagram' => [
  117 + // register your app here: https://instagram.com/developer/register/
  118 + 'class' => 'nodge\eauth\services\InstagramOAuth2Service',
  119 + 'clientId' => '...',
  120 + 'clientSecret' => '...',
  121 + ],
  122 + 'vkontakte' => [
  123 + // register your app here: https://vk.com/editapp?act=create&site=1
  124 + 'class' => 'nodge\eauth\services\VKontakteOAuth2Service',
  125 + 'clientId' => '5155388',
  126 + 'clientSecret' => 'jxgmdGVQw7huGKRpnX3a',
  127 + ],
  128 + 'mailru' => [
  129 + // register your app here: http://api.mail.ru/sites/my/add
  130 + 'class' => 'nodge\eauth\services\MailruOAuth2Service',
  131 + 'clientId' => '739322',
  132 + 'clientSecret' => 'd6ce7be6ff791375adff58fe0e4460b2',
  133 + ],
  134 + 'odnoklassniki' => [
  135 + // register your app here: http://dev.odnoklassniki.ru/wiki/pages/viewpage.action?pageId=13992188
  136 + // ... or here: http://www.odnoklassniki.ru/dk?st.cmd=appsInfoMyDevList&st._aid=Apps_Info_MyDev
  137 + 'class' => 'nodge\eauth\services\OdnoklassnikiOAuth2Service',
  138 + 'clientId' => '...',
  139 + 'clientSecret' => '...',
  140 + 'clientPublic' => '...',
  141 + 'title' => 'Odnoklas.',
  142 + ],
  143 + ],
  144 + ],
  145 +
  146 + // (optionally) you can configure logging
  147 + 'log' => [
  148 + 'targets' => [
  149 + [
  150 + 'class' => 'yii\log\FileTarget',
  151 + 'logFile' => '@app/runtime/logs/eauth.log',
  152 + 'categories' => ['nodge\eauth\*'],
  153 + 'logVars' => [],
  154 + ],
  155 + ],
  156 + ],
  157 +
  158 + /*========End=======
  159 + *end api sicial
  160 + * */
  161 +
43 ], 162 ],
44 'language' => 'ru-RU' 163 'language' => 'ru-RU'
45 ]; 164 ];
common/models/LoginForm.php
1 <?php 1 <?php
2 namespace common\models; 2 namespace common\models;
3 -  
4 use Yii; 3 use Yii;
5 use yii\base\Model; 4 use yii\base\Model;
6 -  
7 /** 5 /**
8 - * Login form 6 + * LoginForm is the model behind the login form.
9 */ 7 */
10 class LoginForm extends Model 8 class LoginForm extends Model
11 { 9 {
12 public $username; 10 public $username;
13 public $password; 11 public $password;
14 public $rememberMe = true; 12 public $rememberMe = true;
15 -  
16 - private $_user;  
17 -  
18 - 13 +
  14 + private $_user = false;
19 /** 15 /**
20 - * @inheritdoc 16 + * @return array the validation rules.
21 */ 17 */
22 public function rules() 18 public function rules()
23 { 19 {
24 - return [ 20 + return array(
25 // username and password are both required 21 // username and password are both required
26 - [['username', 'password'], 'required'],  
27 - // rememberMe must be a boolean value  
28 - ['rememberMe', 'boolean'], 22 + array(array('username', 'password'), 'required'),
29 // password is validated by validatePassword() 23 // password is validated by validatePassword()
30 - ['password', 'validatePassword'],  
31 - ]; 24 + array('password', 'validatePassword'),
  25 + // rememberMe must be a boolean value
  26 + array('rememberMe', 'boolean'),
  27 + );
32 } 28 }
33 -  
34 /** 29 /**
35 * Validates the password. 30 * Validates the password.
36 * This method serves as the inline validation for password. 31 * This method serves as the inline validation for password.
37 - *  
38 - * @param string $attribute the attribute currently being validated  
39 - * @param array $params the additional name-value pairs given in the rule  
40 */ 32 */
41 - public function validatePassword($attribute, $params) 33 + public function validatePassword()
42 { 34 {
43 - if (!$this->hasErrors()) {  
44 - $user = $this->getUser();  
45 - if (!$user || !$user->validatePassword($this->password)) {  
46 - $this->addError($attribute, 'Incorrect username or password.');  
47 - } 35 + $user = $this->getUser();
  36 + if (!$user || !$user->validatePassword($this->password)) {
  37 + $this->addError('password', 'Incorrect username or password.');
48 } 38 }
49 } 39 }
50 -  
51 /** 40 /**
52 * Logs in a user using the provided username and password. 41 * Logs in a user using the provided username and password.
53 - *  
54 * @return boolean whether the user is logged in successfully 42 * @return boolean whether the user is logged in successfully
55 */ 43 */
56 public function login() 44 public function login()
57 { 45 {
58 if ($this->validate()) { 46 if ($this->validate()) {
59 - return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0); 47 + return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0);
60 } else { 48 } else {
61 return false; 49 return false;
62 } 50 }
63 } 51 }
64 -  
65 /** 52 /**
66 * Finds user by [[username]] 53 * Finds user by [[username]]
67 * 54 *
68 * @return User|null 55 * @return User|null
69 */ 56 */
70 - protected function getUser() 57 + private function getUser()
71 { 58 {
72 - if ($this->_user === null) { 59 + if ($this->_user === false) {
73 $this->_user = User::findByUsername($this->username); 60 $this->_user = User::findByUsername($this->username);
74 } 61 }
75 -  
76 return $this->_user; 62 return $this->_user;
77 } 63 }
78 -} 64 -}
  65 +}
79 \ No newline at end of file 66 \ No newline at end of file
common/models/User.php
@@ -24,8 +24,13 @@ use developeruz\db_rbac\interfaces\UserRbacInterface; @@ -24,8 +24,13 @@ use developeruz\db_rbac\interfaces\UserRbacInterface;
24 */ 24 */
25 class User extends ActiveRecord implements IdentityInterface, UserRbacInterface 25 class User extends ActiveRecord implements IdentityInterface, UserRbacInterface
26 { 26 {
  27 + /**
  28 + * @var array EAuth attributes
  29 + */
  30 +
27 const STATUS_DELETED = 0; 31 const STATUS_DELETED = 0;
28 const STATUS_ACTIVE = 10; 32 const STATUS_ACTIVE = 10;
  33 + public $profile;
29 34
30 /** 35 /**
31 * @inheritdoc 36 * @inheritdoc
@@ -59,10 +64,36 @@ class User extends ActiveRecord implements IdentityInterface, UserRbacInterface @@ -59,10 +64,36 @@ class User extends ActiveRecord implements IdentityInterface, UserRbacInterface
59 /** 64 /**
60 * @inheritdoc 65 * @inheritdoc
61 */ 66 */
62 - public static function findIdentity($id)  
63 - {  
64 - return static::findOne(['id' => $id, 'status' => self::STATUS_ACTIVE]);  
65 - } 67 + public static function findIdentity($id) {
  68 + if (Yii::$app->getSession()->has('user-'.$id)) {
  69 + return new self(Yii::$app->getSession()->get('user-'.$id));
  70 + }
  71 + else {
  72 + return isset(self::$users[$id]) ? new self(self::$users[$id]) : null;
  73 + }
  74 + }
  75 + /**
  76 + * @param \nodge\eauth\ServiceBase $service
  77 + * @return User
  78 + * @throws ErrorException
  79 + */
  80 + public static function findByEAuth($service) {
  81 + if (!$service->getIsAuthenticated()) {
  82 + throw new ErrorException('EAuth user should be authenticated before creating identity.');
  83 + }
  84 + $id = $service->getServiceName().'-'.$service->getId();
  85 + $attributes = array(
  86 + 'id' => $id,
  87 + 'username' => $service->getAttribute('name'),
  88 + 'authKey' => md5($id),
  89 + 'profile' => $service->getAttributes(),
  90 + );
  91 + $attributes['profile']['service'] = $service->getServiceName();
  92 + Yii::$app->getSession()->set('user-'.$id, $attributes);
  93 + return new self($attributes);
  94 + }
  95 +
  96 + public $authKey;
66 97
67 /** 98 /**
68 * @inheritdoc 99 * @inheritdoc
@@ -21,7 +21,8 @@ @@ -21,7 +21,8 @@
21 "dmstr/yii2-adminlte-asset": "2.*", 21 "dmstr/yii2-adminlte-asset": "2.*",
22 "yiisoft/yii2-jui": "^2.0", 22 "yiisoft/yii2-jui": "^2.0",
23 "kartik-v/yii2-widget-select2": "@dev", 23 "kartik-v/yii2-widget-select2": "@dev",
24 - "developeruz/yii2-db-rbac": "*" 24 + "developeruz/yii2-db-rbac": "*",
  25 + "nodge/yii2-eauth": "*"
25 }, 26 },
26 "require-dev": { 27 "require-dev": {
27 "yiisoft/yii2-codeception": "*", 28 "yiisoft/yii2-codeception": "*",
@@ -4,8 +4,7 @@ @@ -4,8 +4,7 @@
4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 "This file is @generated automatically" 5 "This file is @generated automatically"
6 ], 6 ],
7 - "hash": "52ade047603d8461342b32b7f76785af",  
8 - "content-hash": "35117bfe670ed414624b171df746a308", 7 + "hash": "6b310fccece1d1eddc11db43624c06ab",
9 "packages": [ 8 "packages": [
10 { 9 {
11 "name": "almasaeed2010/adminlte", 10 "name": "almasaeed2010/adminlte",
@@ -461,16 +460,16 @@ @@ -461,16 +460,16 @@
461 }, 460 },
462 { 461 {
463 "name": "dmstr/yii2-adminlte-asset", 462 "name": "dmstr/yii2-adminlte-asset",
464 - "version": "2.2.3", 463 + "version": "2.2.4",
465 "source": { 464 "source": {
466 "type": "git", 465 "type": "git",
467 "url": "https://github.com/dmstr/yii2-adminlte-asset.git", 466 "url": "https://github.com/dmstr/yii2-adminlte-asset.git",
468 - "reference": "45cffbfe90d79f3c405b4cc98f7f318ae372bb10" 467 + "reference": "c842a15ceef4e903f70ac927ec3246e6d53e1148"
469 }, 468 },
470 "dist": { 469 "dist": {
471 "type": "zip", 470 "type": "zip",
472 - "url": "https://api.github.com/repos/dmstr/yii2-adminlte-asset/zipball/45cffbfe90d79f3c405b4cc98f7f318ae372bb10",  
473 - "reference": "45cffbfe90d79f3c405b4cc98f7f318ae372bb10", 471 + "url": "https://api.github.com/repos/dmstr/yii2-adminlte-asset/zipball/c842a15ceef4e903f70ac927ec3246e6d53e1148",
  472 + "reference": "c842a15ceef4e903f70ac927ec3246e6d53e1148",
474 "shasum": "" 473 "shasum": ""
475 }, 474 },
476 "require": { 475 "require": {
@@ -511,7 +510,7 @@ @@ -511,7 +510,7 @@
511 "extension", 510 "extension",
512 "yii2" 511 "yii2"
513 ], 512 ],
514 - "time": "2015-10-07 21:31:26" 513 + "time": "2015-11-06 10:35:36"
515 }, 514 },
516 { 515 {
517 "name": "ezyang/htmlpurifier", 516 "name": "ezyang/htmlpurifier",
@@ -559,16 +558,16 @@ @@ -559,16 +558,16 @@
559 }, 558 },
560 { 559 {
561 "name": "kartik-v/yii2-krajee-base", 560 "name": "kartik-v/yii2-krajee-base",
562 - "version": "v1.7.7", 561 + "version": "v1.7.8",
563 "source": { 562 "source": {
564 "type": "git", 563 "type": "git",
565 "url": "https://github.com/kartik-v/yii2-krajee-base.git", 564 "url": "https://github.com/kartik-v/yii2-krajee-base.git",
566 - "reference": "c0adff9d9762f4fd3bf0e7cd0000fcab0bf00f19" 565 + "reference": "f90b9ff515ced4e40ff5ec8156a5c9f7f51e2a7f"
567 }, 566 },
568 "dist": { 567 "dist": {
569 "type": "zip", 568 "type": "zip",
570 - "url": "https://api.github.com/repos/kartik-v/yii2-krajee-base/zipball/c0adff9d9762f4fd3bf0e7cd0000fcab0bf00f19",  
571 - "reference": "c0adff9d9762f4fd3bf0e7cd0000fcab0bf00f19", 569 + "url": "https://api.github.com/repos/kartik-v/yii2-krajee-base/zipball/f90b9ff515ced4e40ff5ec8156a5c9f7f51e2a7f",
  570 + "reference": "f90b9ff515ced4e40ff5ec8156a5c9f7f51e2a7f",
572 "shasum": "" 571 "shasum": ""
573 }, 572 },
574 "require": { 573 "require": {
@@ -601,7 +600,7 @@ @@ -601,7 +600,7 @@
601 "widget", 600 "widget",
602 "yii2" 601 "yii2"
603 ], 602 ],
604 - "time": "2015-06-16 05:19:57" 603 + "time": "2015-11-22 06:35:23"
605 }, 604 },
606 { 605 {
607 "name": "kartik-v/yii2-widget-select2", 606 "name": "kartik-v/yii2-widget-select2",
@@ -652,17 +651,178 @@ @@ -652,17 +651,178 @@
652 "time": "2015-09-22 03:10:57" 651 "time": "2015-09-22 03:10:57"
653 }, 652 },
654 { 653 {
  654 + "name": "lusitanian/oauth",
  655 + "version": "v0.3.6",
  656 + "source": {
  657 + "type": "git",
  658 + "url": "https://github.com/Lusitanian/PHPoAuthLib.git",
  659 + "reference": "4ce8c488971410233eb3b1e6d9ac4e81debb41d5"
  660 + },
  661 + "dist": {
  662 + "type": "zip",
  663 + "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/4ce8c488971410233eb3b1e6d9ac4e81debb41d5",
  664 + "reference": "4ce8c488971410233eb3b1e6d9ac4e81debb41d5",
  665 + "shasum": ""
  666 + },
  667 + "require": {
  668 + "php": ">=5.3.0"
  669 + },
  670 + "require-dev": {
  671 + "phpunit/phpunit": "3.7.*",
  672 + "predis/predis": "0.8.*@dev",
  673 + "symfony/http-foundation": "~2.1"
  674 + },
  675 + "suggest": {
  676 + "ext-openssl": "Allows for usage of secure connections with the stream-based HTTP client.",
  677 + "predis/predis": "Allows using the Redis storage backend.",
  678 + "symfony/http-foundation": "Allows using the Symfony Session storage backend."
  679 + },
  680 + "type": "library",
  681 + "extra": {
  682 + "branch-alias": {
  683 + "dev-master": "0.1-dev"
  684 + }
  685 + },
  686 + "autoload": {
  687 + "psr-0": {
  688 + "OAuth": "src",
  689 + "OAuth\\Unit": "tests"
  690 + }
  691 + },
  692 + "notification-url": "https://packagist.org/downloads/",
  693 + "license": [
  694 + "MIT"
  695 + ],
  696 + "authors": [
  697 + {
  698 + "name": "David Desberg",
  699 + "email": "david@daviddesberg.com"
  700 + },
  701 + {
  702 + "name": "Pieter Hordijk",
  703 + "email": "info@pieterhordijk.com"
  704 + }
  705 + ],
  706 + "description": "PHP 5.3+ oAuth 1/2 Library",
  707 + "keywords": [
  708 + "Authentication",
  709 + "authorization",
  710 + "oauth",
  711 + "security"
  712 + ],
  713 + "time": "2015-09-09 06:43:02"
  714 + },
  715 + {
  716 + "name": "nodge/lightopenid",
  717 + "version": "1.1.2",
  718 + "source": {
  719 + "type": "git",
  720 + "url": "https://github.com/Nodge/LightOpenID.git",
  721 + "reference": "a5492cc0c932c557b7e9b54a6e5bbd85cc5fa041"
  722 + },
  723 + "dist": {
  724 + "type": "zip",
  725 + "url": "https://api.github.com/repos/Nodge/LightOpenID/zipball/a5492cc0c932c557b7e9b54a6e5bbd85cc5fa041",
  726 + "reference": "a5492cc0c932c557b7e9b54a6e5bbd85cc5fa041",
  727 + "shasum": ""
  728 + },
  729 + "require": {
  730 + "php": ">=5.2"
  731 + },
  732 + "type": "library",
  733 + "autoload": {
  734 + "classmap": [
  735 + "openid.php",
  736 + "provider/provider.php"
  737 + ]
  738 + },
  739 + "notification-url": "https://packagist.org/downloads/",
  740 + "license": [
  741 + "MIT License"
  742 + ],
  743 + "authors": [
  744 + {
  745 + "name": "Mewp",
  746 + "homepage": "http://code.google.com/p/lightopenid/"
  747 + },
  748 + {
  749 + "name": "Ignat Ignatov",
  750 + "homepage": "https://github.com/iignatov/LightOpenID"
  751 + }
  752 + ],
  753 + "description": "Lightweight PHP5 library for easy OpenID authentication.",
  754 + "homepage": "https://github.com/Nodge/LightOpenID",
  755 + "keywords": [
  756 + "Authentication",
  757 + "OpenId"
  758 + ],
  759 + "time": "2013-08-31 16:48:56"
  760 + },
  761 + {
  762 + "name": "nodge/yii2-eauth",
  763 + "version": "2.3.0",
  764 + "source": {
  765 + "type": "git",
  766 + "url": "https://github.com/Nodge/yii2-eauth.git",
  767 + "reference": "25963e78c6083734736187bff992dd9da60fd125"
  768 + },
  769 + "dist": {
  770 + "type": "zip",
  771 + "url": "https://api.github.com/repos/Nodge/yii2-eauth/zipball/25963e78c6083734736187bff992dd9da60fd125",
  772 + "reference": "25963e78c6083734736187bff992dd9da60fd125",
  773 + "shasum": ""
  774 + },
  775 + "require": {
  776 + "lib-curl": "*",
  777 + "lusitanian/oauth": "~0.3.0",
  778 + "nodge/lightopenid": "~1.1.0",
  779 + "php": ">=5.4.0",
  780 + "yiisoft/yii2": "*"
  781 + },
  782 + "type": "yii2-extension",
  783 + "extra": {
  784 + "bootstrap": "nodge\\eauth\\Bootstrap"
  785 + },
  786 + "autoload": {
  787 + "psr-4": {
  788 + "nodge\\eauth\\": "src/"
  789 + }
  790 + },
  791 + "notification-url": "https://packagist.org/downloads/",
  792 + "license": [
  793 + "New BSD License"
  794 + ],
  795 + "authors": [
  796 + {
  797 + "name": "Maxim Zemskov",
  798 + "email": "nodge@yandex.ru",
  799 + "homepage": "http://nodge.ru/"
  800 + }
  801 + ],
  802 + "description": "Yii2 EAuth Extension. EAuth allows to authenticate users with accounts on other websites (Google, Facebook, Twitter, etc).",
  803 + "homepage": "https://github.com/Nodge/yii2-eauth",
  804 + "keywords": [
  805 + "Authentication",
  806 + "OpenId",
  807 + "eauth",
  808 + "extension",
  809 + "oauth",
  810 + "yii2"
  811 + ],
  812 + "time": "2015-10-17 16:51:17"
  813 + },
  814 + {
655 "name": "rmrevin/yii2-fontawesome", 815 "name": "rmrevin/yii2-fontawesome",
656 - "version": "2.12.0", 816 + "version": "2.12.2",
657 "source": { 817 "source": {
658 "type": "git", 818 "type": "git",
659 "url": "https://github.com/rmrevin/yii2-fontawesome.git", 819 "url": "https://github.com/rmrevin/yii2-fontawesome.git",
660 - "reference": "51d33ec9d1d7edab2166f1d42668c1bc8d28c068" 820 + "reference": "62308687477734c166753de0ad9e2333dc7dce32"
661 }, 821 },
662 "dist": { 822 "dist": {
663 "type": "zip", 823 "type": "zip",
664 - "url": "https://api.github.com/repos/rmrevin/yii2-fontawesome/zipball/51d33ec9d1d7edab2166f1d42668c1bc8d28c068",  
665 - "reference": "51d33ec9d1d7edab2166f1d42668c1bc8d28c068", 824 + "url": "https://api.github.com/repos/rmrevin/yii2-fontawesome/zipball/62308687477734c166753de0ad9e2333dc7dce32",
  825 + "reference": "62308687477734c166753de0ad9e2333dc7dce32",
666 "shasum": "" 826 "shasum": ""
667 }, 827 },
668 "require": { 828 "require": {
@@ -688,9 +848,9 @@ @@ -688,9 +848,9 @@
688 ], 848 ],
689 "authors": [ 849 "authors": [
690 { 850 {
691 - "name": "Roman Revin",  
692 - "email": "xgismox@gmail.com",  
693 - "homepage": "http://rmrevin.ru/" 851 + "name": "Revin Roman",
  852 + "email": "roman@rmrevin.com",
  853 + "homepage": "https://rmrevin.com/"
694 } 854 }
695 ], 855 ],
696 "description": "Asset Bundle for Yii2 with Font Awesome", 856 "description": "Asset Bundle for Yii2 with Font Awesome",
@@ -701,7 +861,7 @@ @@ -701,7 +861,7 @@
701 "font", 861 "font",
702 "yii" 862 "yii"
703 ], 863 ],
704 - "time": "2015-08-15 16:50:16" 864 + "time": "2015-11-20 09:17:45"
705 }, 865 },
706 { 866 {
707 "name": "swiftmailer/swiftmailer", 867 "name": "swiftmailer/swiftmailer",
frontend/controllers/SiteController.php
@@ -16,7 +16,8 @@ use yii\filters\VerbFilter; @@ -16,7 +16,8 @@ use yii\filters\VerbFilter;
16 use yii\filters\AccessControl; 16 use yii\filters\AccessControl;
17 use frontend\models\OptionsToValues; 17 use frontend\models\OptionsToValues;
18 use yii\validators\EmailValidator; 18 use yii\validators\EmailValidator;
19 - 19 +use common\models\User;
  20 +use yii\helpers\VarDumper;
20 use common\models\Page; 21 use common\models\Page;
21 22
22 /** 23 /**
@@ -52,6 +53,11 @@ class SiteController extends Controller @@ -52,6 +53,11 @@ class SiteController extends Controller
52 'logout' => ['post'], 53 'logout' => ['post'],
53 ], 54 ],
54 ], 55 ],
  56 + 'eauth' => [
  57 + // required to disable csrf validation on OpenID requests
  58 + 'class' => \nodge\eauth\openid\ControllerBehavior::className(),
  59 + 'only' => ['login'],
  60 + ],
55 ]; 61 ];
56 } 62 }
57 63
@@ -94,6 +100,42 @@ class SiteController extends Controller @@ -94,6 +100,42 @@ class SiteController extends Controller
94 */ 100 */
95 public function actionLogin() 101 public function actionLogin()
96 { 102 {
  103 +
  104 + $serviceName = Yii::$app->getRequest()->getQueryParam('service');
  105 + if (isset($serviceName)) {
  106 + /** @var $eauth \nodge\eauth\ServiceBase */
  107 + $eauth = Yii::$app->get('eauth')->getIdentity($serviceName);
  108 + $eauth->setRedirectUrl(Yii::$app->getUser()->getReturnUrl());
  109 + $eauth->setCancelUrl(Yii::$app->getUrlManager()->createAbsoluteUrl('site/login'));
  110 +
  111 + try {
  112 + if ($eauth->authenticate()) {
  113 +// var_dump($eauth->getIsAuthenticated(), $eauth->getAttributes()); exit;
  114 +
  115 + $identity = User::findByEAuth($eauth);
  116 + Yii::$app->getUser()->login($identity);
  117 +
  118 + // special redirect with closing popup window
  119 + $eauth->redirect();
  120 + }
  121 + else {
  122 + // close popup window and redirect to cancelUrl
  123 + $eauth->cancel();
  124 + }
  125 + }
  126 + catch (\nodge\eauth\ErrorException $e) {
  127 + // save error to show it later
  128 + Yii::$app->getSession()->setFlash('error', 'EAuthException: '.$e->getMessage());
  129 +
  130 + // close popup window and redirect to cancelUrl
  131 +// $eauth->cancel();
  132 + $eauth->redirect($eauth->getCancelUrl());
  133 + }
  134 + }
  135 +
  136 +
  137 +
  138 +
97 if (!\Yii::$app->user->isGuest) { 139 if (!\Yii::$app->user->isGuest) {
98 return $this->goHome(); 140 return $this->goHome();
99 } 141 }
@@ -126,7 +168,13 @@ class SiteController extends Controller @@ -126,7 +168,13 @@ class SiteController extends Controller
126 * @return mixed 168 * @return mixed
127 */ 169 */
128 public function actionContact() 170 public function actionContact()
129 - { 171 + {
  172 +
  173 + //Yii::$app->user->logout();
  174 + $identity = Yii::$app->getUser()->getIdentity();
  175 + var_dump($identity[profile]);
  176 + die();
  177 +
130 $model = new ContactForm(); 178 $model = new ContactForm();
131 if ($model->load(Yii::$app->request->post()) && $model->validate()) { 179 if ($model->load(Yii::$app->request->post()) && $model->validate()) {
132 if ($model->sendEmail(Yii::$app->params['adminEmail'])) { 180 if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
@@ -217,6 +265,7 @@ class SiteController extends Controller @@ -217,6 +265,7 @@ class SiteController extends Controller
217 $option_list = $option_model->find()->where(1)->all(); 265 $option_list = $option_model->find()->where(1)->all();
218 $option_values = array(); 266 $option_values = array();
219 $post = \Yii::$app->request->post(); 267 $post = \Yii::$app->request->post();
  268 +
220 if(!empty(\Yii::$app->request->post())) { 269 if(!empty(\Yii::$app->request->post())) {
221 $options_to_values = array(); 270 $options_to_values = array();
222 $hasErrors = false; 271 $hasErrors = false;
frontend/views/site/login.php
1 <?php 1 <?php
2 -  
3 -/* @var $this yii\web\View */  
4 -/* @var $form yii\bootstrap\ActiveForm */  
5 -/* @var $model \common\models\LoginForm */  
6 -  
7 use yii\helpers\Html; 2 use yii\helpers\Html;
8 -use yii\bootstrap\ActiveForm;  
9 - 3 +use yii\widgets\ActiveForm;
  4 +/**
  5 + * @var yii\web\View $this
  6 + * @var yii\widgets\ActiveForm $form
  7 + * @var app\models\LoginForm $model
  8 + */
10 $this->title = 'Login'; 9 $this->title = 'Login';
11 $this->params['breadcrumbs'][] = $this->title; 10 $this->params['breadcrumbs'][] = $this->title;
12 ?> 11 ?>
13 -<div class="site-login">  
14 - <h1><?= Html::encode($this->title) ?></h1>  
15 -  
16 - <p>Please fill out the following fields to login:</p>  
17 -  
18 - <div class="row">  
19 - <div class="col-lg-5">  
20 - <?php $form = ActiveForm::begin(['id' => 'login-form']); ?> 12 +<h1><?php echo Html::encode($this->title); ?></h1>
21 13
22 - <?= $form->field($model, 'username') ?>  
23 -  
24 - <?= $form->field($model, 'password')->passwordInput() ?>  
25 -  
26 - <?= $form->field($model, 'rememberMe')->checkbox() ?> 14 +<?php
  15 + if (Yii::$app->getSession()->hasFlash('error')) {
  16 + echo '<div class="alert alert-danger">'.Yii::$app->getSession()->getFlash('error').'</div>';
  17 + }
  18 +?>
27 19
28 - <div style="color:#999;margin:1em 0">  
29 - If you forgot your password you can <?= Html::a('reset it', ['site/request-password-reset']) ?>.  
30 - </div> 20 +<p class="lead">Do you already have an account on one of these sites? Click the logo to log in with it here:</p>
  21 +<?php echo \nodge\eauth\Widget::widget(array('action' => 'site/login')); ?>
  22 +<hr/>
31 23
32 - <div class="form-group">  
33 - <?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>  
34 - </div> 24 +<p>Please fill out the following fields to login:</p>
35 25
36 - <?php ActiveForm::end(); ?>  
37 - </div> 26 +<?php $form = ActiveForm::begin(array('options' => array('class' => 'form-horizontal', 'id' => 'login-form'))); ?>
  27 + <?php echo $form->field($model, 'username')->textInput(); ?>
  28 + <?php echo $form->field($model, 'password')->passwordInput(); ?>
  29 + <?php echo $form->field($model, 'rememberMe')->checkbox(); ?>
  30 + <div class="form-actions">
  31 + <?php echo Html::submitButton('Login', array('class' => 'btn btn-primary')); ?>
38 </div> 32 </div>
39 -</div> 33 +<?php ActiveForm::end(); ?>
40 \ No newline at end of file 34 \ No newline at end of file
vendor/composer/autoload_classmap.php
@@ -6,4 +6,6 @@ $vendorDir = dirname(dirname(__FILE__)); @@ -6,4 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
6 $baseDir = dirname($vendorDir); 6 $baseDir = dirname($vendorDir);
7 7
8 return array( 8 return array(
  9 + 'LightOpenID' => $vendorDir . '/nodge/lightopenid/openid.php',
  10 + 'LightOpenIDProvider' => $vendorDir . '/nodge/lightopenid/provider/provider.php',
9 ); 11 );
vendor/composer/autoload_namespaces.php
@@ -7,6 +7,8 @@ $baseDir = dirname($vendorDir); @@ -7,6 +7,8 @@ $baseDir = dirname($vendorDir);
7 7
8 return array( 8 return array(
9 'cebe\\gravatar\\' => array($vendorDir . '/cebe/yii2-gravatar'), 9 'cebe\\gravatar\\' => array($vendorDir . '/cebe/yii2-gravatar'),
  10 + 'OAuth\\Unit' => array($vendorDir . '/lusitanian/oauth/tests'),
  11 + 'OAuth' => array($vendorDir . '/lusitanian/oauth/src'),
10 'HTMLPurifier' => array($vendorDir . '/ezyang/htmlpurifier/library'), 12 'HTMLPurifier' => array($vendorDir . '/ezyang/htmlpurifier/library'),
11 'Diff' => array($vendorDir . '/phpspec/php-diff/lib'), 13 'Diff' => array($vendorDir . '/phpspec/php-diff/lib'),
12 ); 14 );
vendor/composer/autoload_psr4.php
@@ -16,6 +16,7 @@ return array( @@ -16,6 +16,7 @@ return array(
16 'yii\\bootstrap\\' => array($vendorDir . '/yiisoft/yii2-bootstrap'), 16 'yii\\bootstrap\\' => array($vendorDir . '/yiisoft/yii2-bootstrap'),
17 'yii\\' => array($vendorDir . '/yiisoft/yii2'), 17 'yii\\' => array($vendorDir . '/yiisoft/yii2'),
18 'rmrevin\\yii\\fontawesome\\' => array($vendorDir . '/rmrevin/yii2-fontawesome'), 18 'rmrevin\\yii\\fontawesome\\' => array($vendorDir . '/rmrevin/yii2-fontawesome'),
  19 + 'nodge\\eauth\\' => array($vendorDir . '/nodge/yii2-eauth/src'),
19 'kartik\\select2\\' => array($vendorDir . '/kartik-v/yii2-widget-select2'), 20 'kartik\\select2\\' => array($vendorDir . '/kartik-v/yii2-widget-select2'),
20 'kartik\\base\\' => array($vendorDir . '/kartik-v/yii2-krajee-base'), 21 'kartik\\base\\' => array($vendorDir . '/kartik-v/yii2-krajee-base'),
21 'dmstr\\' => array($vendorDir . '/dmstr/yii2-adminlte-asset'), 22 'dmstr\\' => array($vendorDir . '/dmstr/yii2-adminlte-asset'),
vendor/composer/installed.json
@@ -696,60 +696,6 @@ @@ -696,60 +696,6 @@
696 ] 696 ]
697 }, 697 },
698 { 698 {
699 - "name": "rmrevin/yii2-fontawesome",  
700 - "version": "2.12.0",  
701 - "version_normalized": "2.12.0.0",  
702 - "source": {  
703 - "type": "git",  
704 - "url": "https://github.com/rmrevin/yii2-fontawesome.git",  
705 - "reference": "51d33ec9d1d7edab2166f1d42668c1bc8d28c068"  
706 - },  
707 - "dist": {  
708 - "type": "zip",  
709 - "url": "https://api.github.com/repos/rmrevin/yii2-fontawesome/zipball/51d33ec9d1d7edab2166f1d42668c1bc8d28c068",  
710 - "reference": "51d33ec9d1d7edab2166f1d42668c1bc8d28c068",  
711 - "shasum": ""  
712 - },  
713 - "require": {  
714 - "bower-asset/fontawesome": "4.4.*",  
715 - "php": ">=5.4.0",  
716 - "yiisoft/yii2": "2.0.*"  
717 - },  
718 - "time": "2015-08-15 16:50:16",  
719 - "type": "yii2-extension",  
720 - "extra": {  
721 - "asset-installer-paths": {  
722 - "npm-asset-library": "vendor/npm",  
723 - "bower-asset-library": "vendor/bower"  
724 - }  
725 - },  
726 - "installation-source": "dist",  
727 - "autoload": {  
728 - "psr-4": {  
729 - "rmrevin\\yii\\fontawesome\\": ""  
730 - }  
731 - },  
732 - "notification-url": "https://packagist.org/downloads/",  
733 - "license": [  
734 - "MIT"  
735 - ],  
736 - "authors": [  
737 - {  
738 - "name": "Roman Revin",  
739 - "email": "xgismox@gmail.com",  
740 - "homepage": "http://rmrevin.ru/"  
741 - }  
742 - ],  
743 - "description": "Asset Bundle for Yii2 with Font Awesome",  
744 - "keywords": [  
745 - "asset",  
746 - "awesome",  
747 - "bundle",  
748 - "font",  
749 - "yii"  
750 - ]  
751 - },  
752 - {  
753 "name": "almasaeed2010/adminlte", 699 "name": "almasaeed2010/adminlte",
754 "version": "v2.3.2", 700 "version": "v2.3.2",
755 "version_normalized": "2.3.2.0", 701 "version_normalized": "2.3.2.0",
@@ -837,62 +783,6 @@ @@ -837,62 +783,6 @@
837 ] 783 ]
838 }, 784 },
839 { 785 {
840 - "name": "dmstr/yii2-adminlte-asset",  
841 - "version": "2.2.3",  
842 - "version_normalized": "2.2.3.0",  
843 - "source": {  
844 - "type": "git",  
845 - "url": "https://github.com/dmstr/yii2-adminlte-asset.git",  
846 - "reference": "45cffbfe90d79f3c405b4cc98f7f318ae372bb10"  
847 - },  
848 - "dist": {  
849 - "type": "zip",  
850 - "url": "https://api.github.com/repos/dmstr/yii2-adminlte-asset/zipball/45cffbfe90d79f3c405b4cc98f7f318ae372bb10",  
851 - "reference": "45cffbfe90d79f3c405b4cc98f7f318ae372bb10",  
852 - "shasum": ""  
853 - },  
854 - "require": {  
855 - "almasaeed2010/adminlte": "~2.0",  
856 - "cebe/yii2-gravatar": "1.*",  
857 - "rmrevin/yii2-fontawesome": "~2.9",  
858 - "yiisoft/yii2": "2.*",  
859 - "yiisoft/yii2-bootstrap": "2.*"  
860 - },  
861 - "time": "2015-10-07 21:31:26",  
862 - "type": "yii2-extension",  
863 - "extra": {  
864 - "branch-alias": {  
865 - "dev-master": "2.0.x-dev"  
866 - }  
867 - },  
868 - "installation-source": "dist",  
869 - "autoload": {  
870 - "psr-4": {  
871 - "dmstr\\": ""  
872 - }  
873 - },  
874 - "notification-url": "https://packagist.org/downloads/",  
875 - "license": [  
876 - "BSD-3-Clause"  
877 - ],  
878 - "authors": [  
879 - {  
880 - "name": "Tobias Munk",  
881 - "email": "tobias@diemeisterei.de"  
882 - },  
883 - {  
884 - "name": "Evgeniy Tkachenko",  
885 - "email": "et.coder@gmail.com"  
886 - }  
887 - ],  
888 - "description": "Backend theme for Yii2 Framework",  
889 - "keywords": [  
890 - "AdminLTE",  
891 - "extension",  
892 - "yii2"  
893 - ]  
894 - },  
895 - {  
896 "name": "yiisoft/yii2-jui", 786 "name": "yiisoft/yii2-jui",
897 "version": "2.0.4", 787 "version": "2.0.4",
898 "version_normalized": "2.0.4.0", 788 "version_normalized": "2.0.4.0",
@@ -945,54 +835,6 @@ @@ -945,54 +835,6 @@
945 ] 835 ]
946 }, 836 },
947 { 837 {
948 - "name": "kartik-v/yii2-krajee-base",  
949 - "version": "v1.7.7",  
950 - "version_normalized": "1.7.7.0",  
951 - "source": {  
952 - "type": "git",  
953 - "url": "https://github.com/kartik-v/yii2-krajee-base.git",  
954 - "reference": "c0adff9d9762f4fd3bf0e7cd0000fcab0bf00f19"  
955 - },  
956 - "dist": {  
957 - "type": "zip",  
958 - "url": "https://api.github.com/repos/kartik-v/yii2-krajee-base/zipball/c0adff9d9762f4fd3bf0e7cd0000fcab0bf00f19",  
959 - "reference": "c0adff9d9762f4fd3bf0e7cd0000fcab0bf00f19",  
960 - "shasum": ""  
961 - },  
962 - "require": {  
963 - "yiisoft/yii2-bootstrap": "@dev"  
964 - },  
965 - "time": "2015-06-16 05:19:57",  
966 - "type": "yii2-extension",  
967 - "installation-source": "dist",  
968 - "autoload": {  
969 - "psr-4": {  
970 - "kartik\\base\\": ""  
971 - }  
972 - },  
973 - "notification-url": "https://packagist.org/downloads/",  
974 - "license": [  
975 - "BSD-3-Clause"  
976 - ],  
977 - "authors": [  
978 - {  
979 - "name": "Kartik Visweswaran",  
980 - "email": "kartikv2@gmail.com",  
981 - "homepage": "http://www.krajee.com/"  
982 - }  
983 - ],  
984 - "description": "Base library and foundation components for all Yii2 Krajee extensions.",  
985 - "homepage": "https://github.com/kartik-v/yii2-krajee-base",  
986 - "keywords": [  
987 - "base",  
988 - "extension",  
989 - "foundation",  
990 - "krajee",  
991 - "widget",  
992 - "yii2"  
993 - ]  
994 - },  
995 - {  
996 "name": "bower-asset/jquery", 838 "name": "bower-asset/jquery",
997 "version": "2.1.4", 839 "version": "2.1.4",
998 "version_normalized": "2.1.4.0", 840 "version_normalized": "2.1.4.0",
@@ -1395,5 +1237,330 @@ @@ -1395,5 +1237,330 @@
1395 "CC-BY-3.0" 1237 "CC-BY-3.0"
1396 ], 1238 ],
1397 "description": "Font Awesome" 1239 "description": "Font Awesome"
  1240 + },
  1241 + {
  1242 + "name": "dmstr/yii2-adminlte-asset",
  1243 + "version": "2.2.4",
  1244 + "version_normalized": "2.2.4.0",
  1245 + "source": {
  1246 + "type": "git",
  1247 + "url": "https://github.com/dmstr/yii2-adminlte-asset.git",
  1248 + "reference": "c842a15ceef4e903f70ac927ec3246e6d53e1148"
  1249 + },
  1250 + "dist": {
  1251 + "type": "zip",
  1252 + "url": "https://api.github.com/repos/dmstr/yii2-adminlte-asset/zipball/c842a15ceef4e903f70ac927ec3246e6d53e1148",
  1253 + "reference": "c842a15ceef4e903f70ac927ec3246e6d53e1148",
  1254 + "shasum": ""
  1255 + },
  1256 + "require": {
  1257 + "almasaeed2010/adminlte": "~2.0",
  1258 + "cebe/yii2-gravatar": "1.*",
  1259 + "rmrevin/yii2-fontawesome": "~2.9",
  1260 + "yiisoft/yii2": "2.*",
  1261 + "yiisoft/yii2-bootstrap": "2.*"
  1262 + },
  1263 + "time": "2015-11-06 10:35:36",
  1264 + "type": "yii2-extension",
  1265 + "extra": {
  1266 + "branch-alias": {
  1267 + "dev-master": "2.0.x-dev"
  1268 + }
  1269 + },
  1270 + "installation-source": "dist",
  1271 + "autoload": {
  1272 + "psr-4": {
  1273 + "dmstr\\": ""
  1274 + }
  1275 + },
  1276 + "notification-url": "https://packagist.org/downloads/",
  1277 + "license": [
  1278 + "BSD-3-Clause"
  1279 + ],
  1280 + "authors": [
  1281 + {
  1282 + "name": "Tobias Munk",
  1283 + "email": "tobias@diemeisterei.de"
  1284 + },
  1285 + {
  1286 + "name": "Evgeniy Tkachenko",
  1287 + "email": "et.coder@gmail.com"
  1288 + }
  1289 + ],
  1290 + "description": "Backend theme for Yii2 Framework",
  1291 + "keywords": [
  1292 + "AdminLTE",
  1293 + "extension",
  1294 + "yii2"
  1295 + ]
  1296 + },
  1297 + {
  1298 + "name": "nodge/lightopenid",
  1299 + "version": "1.1.2",
  1300 + "version_normalized": "1.1.2.0",
  1301 + "source": {
  1302 + "type": "git",
  1303 + "url": "https://github.com/Nodge/LightOpenID.git",
  1304 + "reference": "a5492cc0c932c557b7e9b54a6e5bbd85cc5fa041"
  1305 + },
  1306 + "dist": {
  1307 + "type": "zip",
  1308 + "url": "https://api.github.com/repos/Nodge/LightOpenID/zipball/a5492cc0c932c557b7e9b54a6e5bbd85cc5fa041",
  1309 + "reference": "a5492cc0c932c557b7e9b54a6e5bbd85cc5fa041",
  1310 + "shasum": ""
  1311 + },
  1312 + "require": {
  1313 + "php": ">=5.2"
  1314 + },
  1315 + "time": "2013-08-31 16:48:56",
  1316 + "type": "library",
  1317 + "installation-source": "dist",
  1318 + "autoload": {
  1319 + "classmap": [
  1320 + "openid.php",
  1321 + "provider/provider.php"
  1322 + ]
  1323 + },
  1324 + "notification-url": "https://packagist.org/downloads/",
  1325 + "license": [
  1326 + "MIT License"
  1327 + ],
  1328 + "authors": [
  1329 + {
  1330 + "name": "Mewp",
  1331 + "homepage": "http://code.google.com/p/lightopenid/"
  1332 + },
  1333 + {
  1334 + "name": "Ignat Ignatov",
  1335 + "homepage": "https://github.com/iignatov/LightOpenID"
  1336 + }
  1337 + ],
  1338 + "description": "Lightweight PHP5 library for easy OpenID authentication.",
  1339 + "homepage": "https://github.com/Nodge/LightOpenID",
  1340 + "keywords": [
  1341 + "Authentication",
  1342 + "OpenId"
  1343 + ]
  1344 + },
  1345 + {
  1346 + "name": "lusitanian/oauth",
  1347 + "version": "v0.3.6",
  1348 + "version_normalized": "0.3.6.0",
  1349 + "source": {
  1350 + "type": "git",
  1351 + "url": "https://github.com/Lusitanian/PHPoAuthLib.git",
  1352 + "reference": "4ce8c488971410233eb3b1e6d9ac4e81debb41d5"
  1353 + },
  1354 + "dist": {
  1355 + "type": "zip",
  1356 + "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/4ce8c488971410233eb3b1e6d9ac4e81debb41d5",
  1357 + "reference": "4ce8c488971410233eb3b1e6d9ac4e81debb41d5",
  1358 + "shasum": ""
  1359 + },
  1360 + "require": {
  1361 + "php": ">=5.3.0"
  1362 + },
  1363 + "require-dev": {
  1364 + "phpunit/phpunit": "3.7.*",
  1365 + "predis/predis": "0.8.*@dev",
  1366 + "symfony/http-foundation": "~2.1"
  1367 + },
  1368 + "suggest": {
  1369 + "ext-openssl": "Allows for usage of secure connections with the stream-based HTTP client.",
  1370 + "predis/predis": "Allows using the Redis storage backend.",
  1371 + "symfony/http-foundation": "Allows using the Symfony Session storage backend."
  1372 + },
  1373 + "time": "2015-09-09 06:43:02",
  1374 + "type": "library",
  1375 + "extra": {
  1376 + "branch-alias": {
  1377 + "dev-master": "0.1-dev"
  1378 + }
  1379 + },
  1380 + "installation-source": "dist",
  1381 + "autoload": {
  1382 + "psr-0": {
  1383 + "OAuth": "src",
  1384 + "OAuth\\Unit": "tests"
  1385 + }
  1386 + },
  1387 + "notification-url": "https://packagist.org/downloads/",
  1388 + "license": [
  1389 + "MIT"
  1390 + ],
  1391 + "authors": [
  1392 + {
  1393 + "name": "David Desberg",
  1394 + "email": "david@daviddesberg.com"
  1395 + },
  1396 + {
  1397 + "name": "Pieter Hordijk",
  1398 + "email": "info@pieterhordijk.com"
  1399 + }
  1400 + ],
  1401 + "description": "PHP 5.3+ oAuth 1/2 Library",
  1402 + "keywords": [
  1403 + "Authentication",
  1404 + "authorization",
  1405 + "oauth",
  1406 + "security"
  1407 + ]
  1408 + },
  1409 + {
  1410 + "name": "nodge/yii2-eauth",
  1411 + "version": "2.3.0",
  1412 + "version_normalized": "2.3.0.0",
  1413 + "source": {
  1414 + "type": "git",
  1415 + "url": "https://github.com/Nodge/yii2-eauth.git",
  1416 + "reference": "25963e78c6083734736187bff992dd9da60fd125"
  1417 + },
  1418 + "dist": {
  1419 + "type": "zip",
  1420 + "url": "https://api.github.com/repos/Nodge/yii2-eauth/zipball/25963e78c6083734736187bff992dd9da60fd125",
  1421 + "reference": "25963e78c6083734736187bff992dd9da60fd125",
  1422 + "shasum": ""
  1423 + },
  1424 + "require": {
  1425 + "lib-curl": "*",
  1426 + "lusitanian/oauth": "~0.3.0",
  1427 + "nodge/lightopenid": "~1.1.0",
  1428 + "php": ">=5.4.0",
  1429 + "yiisoft/yii2": "*"
  1430 + },
  1431 + "time": "2015-10-17 16:51:17",
  1432 + "type": "yii2-extension",
  1433 + "extra": {
  1434 + "bootstrap": "nodge\\eauth\\Bootstrap"
  1435 + },
  1436 + "installation-source": "dist",
  1437 + "autoload": {
  1438 + "psr-4": {
  1439 + "nodge\\eauth\\": "src/"
  1440 + }
  1441 + },
  1442 + "notification-url": "https://packagist.org/downloads/",
  1443 + "license": [
  1444 + "New BSD License"
  1445 + ],
  1446 + "authors": [
  1447 + {
  1448 + "name": "Maxim Zemskov",
  1449 + "email": "nodge@yandex.ru",
  1450 + "homepage": "http://nodge.ru/"
  1451 + }
  1452 + ],
  1453 + "description": "Yii2 EAuth Extension. EAuth allows to authenticate users with accounts on other websites (Google, Facebook, Twitter, etc).",
  1454 + "homepage": "https://github.com/Nodge/yii2-eauth",
  1455 + "keywords": [
  1456 + "Authentication",
  1457 + "OpenId",
  1458 + "eauth",
  1459 + "extension",
  1460 + "oauth",
  1461 + "yii2"
  1462 + ]
  1463 + },
  1464 + {
  1465 + "name": "kartik-v/yii2-krajee-base",
  1466 + "version": "v1.7.8",
  1467 + "version_normalized": "1.7.8.0",
  1468 + "source": {
  1469 + "type": "git",
  1470 + "url": "https://github.com/kartik-v/yii2-krajee-base.git",
  1471 + "reference": "f90b9ff515ced4e40ff5ec8156a5c9f7f51e2a7f"
  1472 + },
  1473 + "dist": {
  1474 + "type": "zip",
  1475 + "url": "https://api.github.com/repos/kartik-v/yii2-krajee-base/zipball/f90b9ff515ced4e40ff5ec8156a5c9f7f51e2a7f",
  1476 + "reference": "f90b9ff515ced4e40ff5ec8156a5c9f7f51e2a7f",
  1477 + "shasum": ""
  1478 + },
  1479 + "require": {
  1480 + "yiisoft/yii2-bootstrap": "@dev"
  1481 + },
  1482 + "time": "2015-11-22 06:35:23",
  1483 + "type": "yii2-extension",
  1484 + "installation-source": "dist",
  1485 + "autoload": {
  1486 + "psr-4": {
  1487 + "kartik\\base\\": ""
  1488 + }
  1489 + },
  1490 + "notification-url": "https://packagist.org/downloads/",
  1491 + "license": [
  1492 + "BSD-3-Clause"
  1493 + ],
  1494 + "authors": [
  1495 + {
  1496 + "name": "Kartik Visweswaran",
  1497 + "email": "kartikv2@gmail.com",
  1498 + "homepage": "http://www.krajee.com/"
  1499 + }
  1500 + ],
  1501 + "description": "Base library and foundation components for all Yii2 Krajee extensions.",
  1502 + "homepage": "https://github.com/kartik-v/yii2-krajee-base",
  1503 + "keywords": [
  1504 + "base",
  1505 + "extension",
  1506 + "foundation",
  1507 + "krajee",
  1508 + "widget",
  1509 + "yii2"
  1510 + ]
  1511 + },
  1512 + {
  1513 + "name": "rmrevin/yii2-fontawesome",
  1514 + "version": "2.12.2",
  1515 + "version_normalized": "2.12.2.0",
  1516 + "source": {
  1517 + "type": "git",
  1518 + "url": "https://github.com/rmrevin/yii2-fontawesome.git",
  1519 + "reference": "62308687477734c166753de0ad9e2333dc7dce32"
  1520 + },
  1521 + "dist": {
  1522 + "type": "zip",
  1523 + "url": "https://api.github.com/repos/rmrevin/yii2-fontawesome/zipball/62308687477734c166753de0ad9e2333dc7dce32",
  1524 + "reference": "62308687477734c166753de0ad9e2333dc7dce32",
  1525 + "shasum": ""
  1526 + },
  1527 + "require": {
  1528 + "bower-asset/fontawesome": "4.4.*",
  1529 + "php": ">=5.4.0",
  1530 + "yiisoft/yii2": "2.0.*"
  1531 + },
  1532 + "time": "2015-11-20 09:17:45",
  1533 + "type": "yii2-extension",
  1534 + "extra": {
  1535 + "asset-installer-paths": {
  1536 + "npm-asset-library": "vendor/npm",
  1537 + "bower-asset-library": "vendor/bower"
  1538 + }
  1539 + },
  1540 + "installation-source": "dist",
  1541 + "autoload": {
  1542 + "psr-4": {
  1543 + "rmrevin\\yii\\fontawesome\\": ""
  1544 + }
  1545 + },
  1546 + "notification-url": "https://packagist.org/downloads/",
  1547 + "license": [
  1548 + "MIT"
  1549 + ],
  1550 + "authors": [
  1551 + {
  1552 + "name": "Revin Roman",
  1553 + "email": "roman@rmrevin.com",
  1554 + "homepage": "https://rmrevin.com/"
  1555 + }
  1556 + ],
  1557 + "description": "Asset Bundle for Yii2 with Font Awesome",
  1558 + "keywords": [
  1559 + "asset",
  1560 + "awesome",
  1561 + "bundle",
  1562 + "font",
  1563 + "yii"
  1564 + ]
1398 } 1565 }
1399 ] 1566 ]
vendor/dmstr/yii2-adminlte-asset/CHANGELOG.md
1 CHANGELOG 1 CHANGELOG
2 --------- 2 ---------
3 3
  4 +## 2.2.4
  5 + * [FIX] fixed active menu with modules (Vasiliy Baranov)
  6 + * [ENH] added .hold-transition
  7 +
  8 +## 2.2.3
  9 + * [ENH] : updated Gravatar widget E-Mail usage (@Quexer69)
  10 +
4 ## 2.2.2 11 ## 2.2.2
5 * fixed Menu widget selection 12 * fixed Menu widget selection
6 * updated example views 13 * updated example views
@@ -114,4 +121,4 @@ CHANGELOG @@ -114,4 +121,4 @@ CHANGELOG
114 * fixed missing csrf token, updated menu, code-formatting 121 * fixed missing csrf token, updated menu, code-formatting
115 * updated paths, added Phundament 4 template 122 * updated paths, added Phundament 4 template
116 * update README.md 123 * update README.md
117 - * initial commit  
118 \ No newline at end of file 124 \ No newline at end of file
  125 + * initial commit
vendor/dmstr/yii2-adminlte-asset/example-views/phundament/app/layouts/main.php
@@ -29,7 +29,7 @@ dmstr\web\AdminLteAsset::register($this); @@ -29,7 +29,7 @@ dmstr\web\AdminLteAsset::register($this);
29 <![endif]--> 29 <![endif]-->
30 </head> 30 </head>
31 31
32 -<body class="skin-black"> 32 +<body class="hold-transition skin-black sidebar-mini">
33 <?php $this->beginBody() ?> 33 <?php $this->beginBody() ?>
34 34
35 <div class="wrapper"> 35 <div class="wrapper">
vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app/layouts/header.php
1 <?php 1 <?php
2 -  
3 use yii\helpers\Html; 2 use yii\helpers\Html;
4 -use yii\helpers\Url;  
5 -  
6 -$username = Yii::$app->user->identity->firstname.' '.Yii::$app->user->identity->lastname;  
7 3
8 /* @var $this \yii\web\View */ 4 /* @var $this \yii\web\View */
9 /* @var $content string */ 5 /* @var $content string */
@@ -234,7 +230,7 @@ $username = Yii::$app-&gt;user-&gt;identity-&gt;firstname.&#39; &#39;.Yii::$app-&gt;user-&gt;identity-&gt; @@ -234,7 +230,7 @@ $username = Yii::$app-&gt;user-&gt;identity-&gt;firstname.&#39; &#39;.Yii::$app-&gt;user-&gt;identity-&gt;
234 <li class="dropdown user user-menu"> 230 <li class="dropdown user user-menu">
235 <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 231 <a href="#" class="dropdown-toggle" data-toggle="dropdown">
236 <img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="user-image" alt="User Image"/> 232 <img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="user-image" alt="User Image"/>
237 - <span class="hidden-xs"><?=$username; ?></span> 233 + <span class="hidden-xs">Alexander Pierce</span>
238 </a> 234 </a>
239 <ul class="dropdown-menu"> 235 <ul class="dropdown-menu">
240 <!-- User image --> 236 <!-- User image -->
@@ -243,12 +239,11 @@ $username = Yii::$app-&gt;user-&gt;identity-&gt;firstname.&#39; &#39;.Yii::$app-&gt;user-&gt;identity-&gt; @@ -243,12 +239,11 @@ $username = Yii::$app-&gt;user-&gt;identity-&gt;firstname.&#39; &#39;.Yii::$app-&gt;user-&gt;identity-&gt;
243 alt="User Image"/> 239 alt="User Image"/>
244 240
245 <p> 241 <p>
246 - <?=$username; ?> - Web Developer 242 + Alexander Pierce - Web Developer
247 <small>Member since Nov. 2012</small> 243 <small>Member since Nov. 2012</small>
248 </p> 244 </p>
249 </li> 245 </li>
250 - <!--  
251 - Menu Body 246 + <!-- Menu Body -->
252 <li class="user-body"> 247 <li class="user-body">
253 <div class="col-xs-4 text-center"> 248 <div class="col-xs-4 text-center">
254 <a href="#">Followers</a> 249 <a href="#">Followers</a>
@@ -260,11 +255,10 @@ $username = Yii::$app-&gt;user-&gt;identity-&gt;firstname.&#39; &#39;.Yii::$app-&gt;user-&gt;identity-&gt; @@ -260,11 +255,10 @@ $username = Yii::$app-&gt;user-&gt;identity-&gt;firstname.&#39; &#39;.Yii::$app-&gt;user-&gt;identity-&gt;
260 <a href="#">Friends</a> 255 <a href="#">Friends</a>
261 </div> 256 </div>
262 </li> 257 </li>
263 - -->  
264 <!-- Menu Footer--> 258 <!-- Menu Footer-->
265 <li class="user-footer"> 259 <li class="user-footer">
266 <div class="pull-left"> 260 <div class="pull-left">
267 - <a href="<?=Url::toRoute('site/profile'); ?>" class="btn btn-default btn-flat">Profile</a> 261 + <a href="#" class="btn btn-default btn-flat">Profile</a>
268 </div> 262 </div>
269 <div class="pull-right"> 263 <div class="pull-right">
270 <?= Html::a( 264 <?= Html::a(
vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app/layouts/left.php
@@ -30,22 +30,10 @@ @@ -30,22 +30,10 @@
30 [ 30 [
31 'options' => ['class' => 'sidebar-menu'], 31 'options' => ['class' => 'sidebar-menu'],
32 'items' => [ 32 'items' => [
33 - ['label' => 'Страница', 'icon' => 'fa fa-file-code-o', 'url' => ['/page/']],  
34 - ['label' => 'Термин', 'icon' => 'fa fa-file-code-o', 'url' => ['/termin_lang/']],  
35 - ['label' => 'Меню', 'icon' => 'fa fa-file-code-o', 'url' => ['/menu/']], 33 + ['label' => 'Menu Yii2', 'options' => ['class' => 'header']],
36 ['label' => 'Gii', 'icon' => 'fa fa-file-code-o', 'url' => ['/gii']], 34 ['label' => 'Gii', 'icon' => 'fa fa-file-code-o', 'url' => ['/gii']],
37 ['label' => 'Debug', 'icon' => 'fa fa-dashboard', 'url' => ['/debug']], 35 ['label' => 'Debug', 'icon' => 'fa fa-dashboard', 'url' => ['/debug']],
38 ['label' => 'Login', 'url' => ['site/login'], 'visible' => Yii::$app->user->isGuest], 36 ['label' => 'Login', 'url' => ['site/login'], 'visible' => Yii::$app->user->isGuest],
39 - ['label' => 'Пользователи', 'icon' => 'fa fa-file-code-o', 'url' => ['/user/']],  
40 - [  
41 - 'label' => 'Роли',  
42 - 'icon' => 'fa fa-share',  
43 - 'url' => '#',  
44 - 'items' => [  
45 - ['label' => 'Управление ролями', 'icon' => 'fa fa-file-code-o', 'url' => ['/permit/access/role'],],  
46 - ['label' => 'Управление правами доступа', 'icon' => 'fa fa-dashboard', 'url' => ['/permit/access/permission'],],  
47 - ],  
48 - ],  
49 [ 37 [
50 'label' => 'Same tools', 38 'label' => 'Same tools',
51 'icon' => 'fa fa-share', 39 'icon' => 'fa fa-share',
vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app/layouts/main.php
@@ -36,7 +36,7 @@ if (Yii::$app-&gt;controller-&gt;action-&gt;id === &#39;login&#39;) { @@ -36,7 +36,7 @@ if (Yii::$app-&gt;controller-&gt;action-&gt;id === &#39;login&#39;) {
36 <title><?= Html::encode($this->title) ?></title> 36 <title><?= Html::encode($this->title) ?></title>
37 <?php $this->head() ?> 37 <?php $this->head() ?>
38 </head> 38 </head>
39 - <body class="skin-blue sidebar-mini"> 39 + <body class="hold-transition skin-blue sidebar-mini">
40 <?php $this->beginBody() ?> 40 <?php $this->beginBody() ?>
41 <div class="wrapper"> 41 <div class="wrapper">
42 42
vendor/dmstr/yii2-adminlte-asset/widgets/Menu.php
@@ -152,6 +152,9 @@ class Menu extends \yii\widgets\Menu @@ -152,6 +152,9 @@ class Menu extends \yii\widgets\Menu
152 if (isset($arrayRoute[1]) && $arrayRoute[1] !== $arrayThisRoute[1]) { 152 if (isset($arrayRoute[1]) && $arrayRoute[1] !== $arrayThisRoute[1]) {
153 return false; 153 return false;
154 } 154 }
  155 + if (isset($arrayRoute[2]) && $arrayRoute[2] !== $arrayThisRoute[2]) {
  156 + return false;
  157 + }
155 unset($item['url']['#']); 158 unset($item['url']['#']);
156 if (count($item['url']) > 1) { 159 if (count($item['url']) > 1) {
157 foreach (array_splice($item['url'], 1) as $name => $value) { 160 foreach (array_splice($item['url'], 1) as $name => $value) {
vendor/kartik-v/yii2-krajee-base/AnimateAsset.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
vendor/kartik-v/yii2-krajee-base/AssetBundle.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
@@ -21,10 +21,10 @@ class AssetBundle extends \yii\web\AssetBundle @@ -21,10 +21,10 @@ class AssetBundle extends \yii\web\AssetBundle
21 const EMPTY_PATH = 'N0/P@T#'; 21 const EMPTY_PATH = 'N0/P@T#';
22 const KRAJEE_ASSET = 'K3/@$$3T$'; 22 const KRAJEE_ASSET = 'K3/@$$3T$';
23 const KRAJEE_PATH = 'K3/P@T#'; 23 const KRAJEE_PATH = 'K3/P@T#';
24 - 24 +
25 public $js = self::KRAJEE_ASSET; 25 public $js = self::KRAJEE_ASSET;
26 public $css = self::KRAJEE_ASSET; 26 public $css = self::KRAJEE_ASSET;
27 - public $sourcePath = self::KRAJEE_PATH; 27 + public $sourcePath = self::KRAJEE_PATH;
28 public $depends = [ 28 public $depends = [
29 'yii\web\JqueryAsset', 29 'yii\web\JqueryAsset',
30 'yii\web\YiiAsset', 30 'yii\web\YiiAsset',
@@ -34,7 +34,8 @@ class AssetBundle extends \yii\web\AssetBundle @@ -34,7 +34,8 @@ class AssetBundle extends \yii\web\AssetBundle
34 /** 34 /**
35 * @inheritdoc 35 * @inheritdoc
36 */ 36 */
37 - public function init() { 37 + public function init()
  38 + {
38 parent::init(); 39 parent::init();
39 if ($this->js === self::KRAJEE_ASSET) { 40 if ($this->js === self::KRAJEE_ASSET) {
40 $this->js = []; 41 $this->js = [];
@@ -46,7 +47,7 @@ class AssetBundle extends \yii\web\AssetBundle @@ -46,7 +47,7 @@ class AssetBundle extends \yii\web\AssetBundle
46 $this->sourcePath = null; 47 $this->sourcePath = null;
47 } 48 }
48 } 49 }
49 - 50 +
50 /** 51 /**
51 * Adds a language JS locale file 52 * Adds a language JS locale file
52 * 53 *
@@ -62,7 +63,7 @@ class AssetBundle extends \yii\web\AssetBundle @@ -62,7 +63,7 @@ class AssetBundle extends \yii\web\AssetBundle
62 if (empty($lang) || substr($lang, 0, 2) == 'en') { 63 if (empty($lang) || substr($lang, 0, 2) == 'en') {
63 return $this; 64 return $this;
64 } 65 }
65 - $ext = $min ? (YII_DEBUG ? ".min.js" : ".js") : ".js"; 66 + $ext = $min ? (YII_DEBUG ? ".min.js" : ".js") : ".js";
66 $file = "{$prefix}{$lang}{$ext}"; 67 $file = "{$prefix}{$lang}{$ext}";
67 if ($dir === null) { 68 if ($dir === null) {
68 $dir = 'js'; 69 $dir = 'js';
@@ -75,16 +76,16 @@ class AssetBundle extends \yii\web\AssetBundle @@ -75,16 +76,16 @@ class AssetBundle extends \yii\web\AssetBundle
75 $file = "{$prefix}{$lang}{$ext}"; 76 $file = "{$prefix}{$lang}{$ext}";
76 } 77 }
77 if (Config::fileExists("{$path}/{$file}")) { 78 if (Config::fileExists("{$path}/{$file}")) {
78 - $this->js[] = empty($dir) ? $file : "{$dir}/{$file}"; 79 + $this->js[] = empty($dir) ? $file : "{$dir}/{$file}";
79 } 80 }
80 return $this; 81 return $this;
81 } 82 }
82 - 83 +
83 /** 84 /**
84 * Set up CSS and JS asset arrays based on the base-file names 85 * Set up CSS and JS asset arrays based on the base-file names
85 * 86 *
86 * @param string $type whether 'css' or 'js' 87 * @param string $type whether 'css' or 'js'
87 - * @param array $files the list of 'css' or 'js' basefile names 88 + * @param array $files the list of 'css' or 'js' basefile names
88 */ 89 */
89 protected function setupAssets($type, $files = []) 90 protected function setupAssets($type, $files = [])
90 { 91 {
vendor/kartik-v/yii2-krajee-base/CHANGE.md
1 -version 1.7.7  
2 -============= 1 +Change Log: `yii2-krajee-base`
  2 +==============================
  3 +
  4 +## Version 1.7.8
  5 +
  6 +**Date:** 22-Nov-2015
  7 +
  8 +- (enh #40): Various enhancements for PJAX .
  9 +- (enh #41): Added .gitignore for Composer stuff.
  10 +- (bug #42): Better and more correct date format parsing.
  11 +- (enh #46): Enhance `Html5Input` initialization.
  12 +- (enh #47): Implement message translations.
  13 +
  14 +## Version 1.7.7
  15 +
3 **Date:** 16-Jun-2015 16 **Date:** 16-Jun-2015
4 17
5 - (enh #37): Set range input caption to change during slide. 18 - (enh #37): Set range input caption to change during slide.
6 - (enh #38): Update to use `Json::htmlEncode` as per yii release v2.0.4. 19 - (enh #38): Update to use `Json::htmlEncode` as per yii release v2.0.4.
7 20
8 -version 1.7.6  
9 -============= 21 +## Version 1.7.6
  22 +
10 **Date:** 09-May-2015 23 **Date:** 09-May-2015
11 24
12 - (enh #36): Add kv-input-group-hide class. 25 - (enh #36): Add kv-input-group-hide class.
13 26
14 -version 1.7.5  
15 -============= 27 +## Version 1.7.5
  28 +
16 **Date:** 03-May-2015 29 **Date:** 03-May-2015
17 30
18 - (enh #30): Improve translation trait for determining messages folder. 31 - (enh #30): Improve translation trait for determining messages folder.
@@ -20,8 +33,8 @@ version 1.7.5 @@ -20,8 +33,8 @@ version 1.7.5
20 - (enh #34): New `addLanguage` method in `AssetBundle`. 33 - (enh #34): New `addLanguage` method in `AssetBundle`.
21 - (enh #35): Allow extending translation messages. 34 - (enh #35): Allow extending translation messages.
22 35
23 -version 1.7.4  
24 -============= 36 +## Version 1.7.4
  37 +
25 **Date:** 13-Feb-2015 38 **Date:** 13-Feb-2015
26 39
27 - (enh #28): Create WidgetTrait for better code reuse. 40 - (enh #28): Create WidgetTrait for better code reuse.
@@ -29,27 +42,27 @@ version 1.7.4 @@ -29,27 +42,27 @@ version 1.7.4
29 - (enh #29): New `getModule` and `initModule` methods in `Config`. 42 - (enh #29): New `getModule` and `initModule` methods in `Config`.
30 - Set copyright year to current. 43 - Set copyright year to current.
31 44
32 -version 1.7.3  
33 -============= 45 +## Version 1.7.3
  46 +
34 **Date:** 25-Jan-2015 47 **Date:** 25-Jan-2015
35 48
36 - (enh #26): Enhance `Widget` options to store multiple plugin config. 49 - (enh #26): Enhance `Widget` options to store multiple plugin config.
37 - (enh #27): Set directory and URL separator rightly for the setLanguage validation. 50 - (enh #27): Set directory and URL separator rightly for the setLanguage validation.
38 51
39 -version 1.7.2  
40 -============= 52 +## Version 1.7.2
  53 +
41 **Date:** 20-Jan-2015 54 **Date:** 20-Jan-2015
42 55
43 - (enh #24): Revert use of DIRECTORY_SEPARATOR and use forward slash instead. 56 - (enh #24): Revert use of DIRECTORY_SEPARATOR and use forward slash instead.
44 57
45 -version 1.7.1  
46 -============= 58 +## Version 1.7.1
  59 +
47 **Date:** 15-Jan-2015 60 **Date:** 15-Jan-2015
48 61
49 - (enh #23): Enhance AssetBundle for over riding empty assets from AssetManager. 62 - (enh #23): Enhance AssetBundle for over riding empty assets from AssetManager.
50 63
51 -version 1.7.0  
52 -============= 64 +## Version 1.7.0
  65 +
53 **Date:** 12-Jan-2015 66 **Date:** 12-Jan-2015
54 67
55 - Fix kartik-v/yii2-widget-datepicker#10 - Language definition in pluginOptions 68 - Fix kartik-v/yii2-widget-datepicker#10 - Language definition in pluginOptions
@@ -57,8 +70,8 @@ version 1.7.0 @@ -57,8 +70,8 @@ version 1.7.0
57 - (enh #22): Implement base Module class. 70 - (enh #22): Implement base Module class.
58 - Code formatting updates as per Yii2 coding style. 71 - Code formatting updates as per Yii2 coding style.
59 72
60 -version 1.6.0  
61 -============= 73 +## Version 1.6.0
  74 +
62 **Date:** 16-Dec-2014 75 **Date:** 16-Dec-2014
63 76
64 - (bug #16): variable `$short` in `InputWidget` in method `setLanguage` set without `$prefix`. 77 - (bug #16): variable `$short` in `InputWidget` in method `setLanguage` set without `$prefix`.
@@ -67,8 +80,8 @@ version 1.6.0 @@ -67,8 +80,8 @@ version 1.6.0
67 - (enh #19): Avoid inspect errors in IDE for `Html5Input`. 80 - (enh #19): Avoid inspect errors in IDE for `Html5Input`.
68 - (enh #20): Add new PluginAssetBundle for bootstrap JS dependent plugins. 81 - (enh #20): Add new PluginAssetBundle for bootstrap JS dependent plugins.
69 82
70 -version 1.5.0  
71 -============= 83 +## Version 1.5.0
  84 +
72 **Date:** 06-Dec-2014 85 **Date:** 06-Dec-2014
73 86
74 - (enh #11): Added new properties `disabled` and `readonly` to `InputWidget` and `Html5Input`. 87 - (enh #11): Added new properties `disabled` and `readonly` to `InputWidget` and `Html5Input`.
@@ -79,8 +92,8 @@ version 1.5.0 @@ -79,8 +92,8 @@ version 1.5.0
79 - (enh #13): Enhancements to Config helper and change `self` methods to `static`. 92 - (enh #13): Enhancements to Config helper and change `self` methods to `static`.
80 - (bug #14): Fix line terminators and new lines in `getPluginScript`. 93 - (bug #14): Fix line terminators and new lines in `getPluginScript`.
81 94
82 -version 1.4.0  
83 -============= 95 +## Version 1.4.0
  96 +
84 **Date:** 29-Nov-2014 97 **Date:** 29-Nov-2014
85 98
86 - (enh #9): Enhanced language validation for combined ISO-639 and ISO-3166 codes 99 - (enh #9): Enhanced language validation for combined ISO-639 and ISO-3166 codes
@@ -93,8 +106,8 @@ version 1.4.0 @@ -93,8 +106,8 @@ version 1.4.0
93 - `getCurrentDir` - gets the current directory of the extended class object 106 - `getCurrentDir` - gets the current directory of the extended class object
94 - `fileExists` - modified file_exists method after replacing the slashes with right directory separator 107 - `fileExists` - modified file_exists method after replacing the slashes with right directory separator
95 108
96 -version 1.3.0  
97 -============= 109 +## Version 1.3.0
  110 +
98 **Date:** 25-Nov-2014 111 **Date:** 25-Nov-2014
99 112
100 - (enh #6): Enhance `InputWidget` for attaching multiple jQuery plugins. 113 - (enh #6): Enhance `InputWidget` for attaching multiple jQuery plugins.
@@ -118,8 +131,8 @@ Following functionality included in `InputWidget` and `Widget` classes: @@ -118,8 +131,8 @@ Following functionality included in `InputWidget` and `Widget` classes:
118 - New protected property `_dataVar` included for generating the above data attribute. 131 - New protected property `_dataVar` included for generating the above data attribute.
119 132
120 133
121 -version 1.2.0  
122 -============= 134 +## Version 1.2.0
  135 +
123 **Date:** 25-Nov-2014 136 **Date:** 25-Nov-2014
124 137
125 - (bug #2): AssetBundle::EMPTY_PATH is not setting sourcePath to null. 138 - (bug #2): AssetBundle::EMPTY_PATH is not setting sourcePath to null.
@@ -127,8 +140,8 @@ version 1.2.0 @@ -127,8 +140,8 @@ version 1.2.0
127 - (enh #4): Add validations for html inputs, dropdowns, and widgets in `Config`. 140 - (enh #4): Add validations for html inputs, dropdowns, and widgets in `Config`.
128 - (enh #5): Correctly validate checkbox and radio checked states for `InputWidget`. 141 - (enh #5): Correctly validate checkbox and radio checked states for `InputWidget`.
129 142
130 -version 1.1.0  
131 -============= 143 +## Version 1.1.0
  144 +
132 **Date:** 10-Nov-2014 145 **Date:** 10-Nov-2014
133 146
134 - Validation for sub repositories containing input widgets. 147 - Validation for sub repositories containing input widgets.
@@ -137,8 +150,8 @@ version 1.1.0 @@ -137,8 +150,8 @@ version 1.1.0
137 - Include `AnimateAsset` bundle. 150 - Include `AnimateAsset` bundle.
138 - Code formatting as per standards. 151 - Code formatting as per standards.
139 152
140 -version 1.0.0  
141 -============= 153 +## Version 1.0.0
  154 +
142 **Date:** 06-Nov-2014 155 **Date:** 06-Nov-2014
143 156
144 Initial release 157 Initial release
145 \ No newline at end of file 158 \ No newline at end of file
vendor/kartik-v/yii2-krajee-base/Config.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
@@ -43,7 +43,9 @@ class Config @@ -43,7 +43,9 @@ class Config
43 'listBox', 43 'listBox',
44 'dropDownList', 44 'dropDownList',
45 'checkboxList', 45 'checkboxList',
46 - 'radioList' 46 + 'radioList',
  47 + 'checkboxButtonGroup',
  48 + 'radioButtonGroup'
47 ]; 49 ];
48 50
49 protected static $_validInputWidgets = [ 51 protected static $_validInputWidgets = [
@@ -187,6 +189,9 @@ class Config @@ -187,6 +189,9 @@ class Config
187 /** 189 /**
188 * Check if a namespaced widget is valid or installed. 190 * Check if a namespaced widget is valid or installed.
189 * 191 *
  192 + * @param string $type the widget type
  193 + * @param string $reason the message to be displayed for dependency failure
  194 + *
190 * @throws InvalidConfigException 195 * @throws InvalidConfigException
191 */ 196 */
192 public static function validateInputWidget($type, $reason = self::DEFAULT_REASON) 197 public static function validateInputWidget($type, $reason = self::DEFAULT_REASON)
@@ -197,8 +202,7 @@ class Config @@ -197,8 +202,7 @@ class Config
197 } 202 }
198 203
199 /** 204 /**
200 - * Convert a language string in yii\i18n format to  
201 - * a ISO-639 format (2 or 3 letter code). 205 + * Convert a language string in yii\i18n format to a ISO-639 format (2 or 3 letter code).
202 * 206 *
203 * @param string $language the input language string 207 * @param string $language the input language string
204 * 208 *
@@ -263,6 +267,7 @@ class Config @@ -263,6 +267,7 @@ class Config
263 */ 267 */
264 public static function initModule($class) 268 public static function initModule($class)
265 { 269 {
  270 + /** @noinspection PhpUndefinedFieldInspection */
266 $m = $class::MODULE; 271 $m = $class::MODULE;
267 $module = $m ? static::getModule($m) : null; 272 $module = $m ? static::getModule($m) : null;
268 if ($module === null || !$module instanceof $class) { 273 if ($module === null || !$module instanceof $class) {
vendor/kartik-v/yii2-krajee-base/Html5Input.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
@@ -23,73 +23,82 @@ use yii\helpers\ArrayHelper; @@ -23,73 +23,82 @@ use yii\helpers\ArrayHelper;
23 class Html5Input extends InputWidget 23 class Html5Input extends InputWidget
24 { 24 {
25 /** 25 /**
26 - * @var array the special inputs which need captions  
27 - */  
28 - private static $_specialInputs = [  
29 - 'color',  
30 - 'range'  
31 - ];  
32 - /**  
33 * @var string the HTML 5 input type 26 * @var string the HTML 5 input type
34 */ 27 */
35 public $type; 28 public $type;
  29 +
36 /** 30 /**
37 * @var string the width in 'px' or '%' of the HTML5 input container 31 * @var string the width in 'px' or '%' of the HTML5 input container
38 */ 32 */
39 public $width; 33 public $width;
  34 +
40 /** 35 /**
41 * @var array the HTML attributes for the widget container 36 * @var array the HTML attributes for the widget container
42 */ 37 */
43 public $containerOptions = []; 38 public $containerOptions = [];
  39 +
44 /** 40 /**
45 * @var array the HTML attributes for the HTML-5 input. 41 * @var array the HTML attributes for the HTML-5 input.
46 */ 42 */
47 public $html5Options = []; 43 public $html5Options = [];
  44 +
48 /** 45 /**
49 * @var array the HTML attributes for the HTML-5 input container 46 * @var array the HTML attributes for the HTML-5 input container
50 */ 47 */
51 public $html5Container = []; 48 public $html5Container = [];
  49 +
52 /** 50 /**
53 * @var string|boolean the message shown for unsupported browser. If set to false 51 * @var string|boolean the message shown for unsupported browser. If set to false
54 * will not be displayed 52 * will not be displayed
55 */ 53 */
56 public $noSupport; 54 public $noSupport;
  55 +
57 /** 56 /**
58 * @var string array the HTML attributes for container displaying unsupported browser message 57 * @var string array the HTML attributes for container displaying unsupported browser message
59 */ 58 */
60 public $noSupportOptions = []; 59 public $noSupportOptions = [];
  60 +
61 /** 61 /**
62 * @var string one of the SIZE modifiers 'lg', 'md', 'sm', 'xs' 62 * @var string one of the SIZE modifiers 'lg', 'md', 'sm', 'xs'
63 */ 63 */
64 public $size; 64 public $size;
  65 +
65 /** 66 /**
66 * @var array the addon content 67 * @var array the addon content
67 - * - prepend: array/string the prepend addon content. If set as an array, the  
68 - * following options can be set: 68 + * - prepend: array/string the prepend addon content. If set as an array, the following options can be set:
69 * - content: string the prepend addon content 69 * - content: string the prepend addon content
70 * - asButton: boolean whether the addon is a button 70 * - asButton: boolean whether the addon is a button
71 * - options: array the HTML attributes for the prepend addon 71 * - options: array the HTML attributes for the prepend addon
72 - * - append: array/string the append addon content. If set as an array, the  
73 - * following options can be set: 72 + * - append: array/string the append addon content. If set as an array, the following options can be set:
74 * - content: string the append addon content 73 * - content: string the append addon content
75 * - asButton: boolean whether the addon is a button 74 * - asButton: boolean whether the addon is a button
76 * - options: array the HTML attributes for the append addon 75 * - options: array the HTML attributes for the append addon
77 - * - preCaption: array/string the addon content placed before the caption. If  
78 - * set as an array, the following options can be set: 76 + * - preCaption: array/string the addon content placed before the caption. If set as an array, the following
  77 + * options can be set:
79 * - content: string the append addon content 78 * - content: string the append addon content
80 * - asButton: boolean whether the addon is a button 79 * - asButton: boolean whether the addon is a button
81 * - options: array the HTML attributes for the append addon */ 80 * - options: array the HTML attributes for the append addon */
82 public $addon = []; 81 public $addon = [];
83 82
84 /** 83 /**
85 - * Runs the widget 84 + * @var array the special inputs which need captions
  85 + */
  86 + private static $_specialInputs = [
  87 + 'color',
  88 + 'range'
  89 + ];
  90 +
  91 + /**
  92 + * @inheritdoc
86 */ 93 */
87 - public function init() 94 + public function run()
88 { 95 {
89 - parent::init();  
90 $this->initInput(); 96 $this->initInput();
91 } 97 }
92 98
  99 + /**
  100 + * Initializes the input
  101 + */
93 protected function initInput() 102 protected function initInput()
94 { 103 {
95 $this->initDisability($this->html5Options); 104 $this->initDisability($this->html5Options);
@@ -117,7 +126,7 @@ class Html5Input extends InputWidget @@ -117,7 +126,7 @@ class Html5Input extends InputWidget
117 $input = 'jQuery("#' . $this->html5Options['id'] . '")'; 126 $input = 'jQuery("#' . $this->html5Options['id'] . '")';
118 $js = "{$caption}.on('change',function(){{$input}.val(this.value)});\n" . 127 $js = "{$caption}.on('change',function(){{$input}.val(this.value)});\n" .
119 "{$input}.on('input change',function(e){{$caption}.val(this.value);if(e.type=='change'){{$caption}.trigger('change');}});"; 128 "{$input}.on('input change',function(e){{$caption}.val(this.value);if(e.type=='change'){{$caption}.trigger('change');}});";
120 - $view->registerJs($js); 129 + $this->registerWidgetJs($js);
121 } 130 }
122 131
123 /** 132 /**
@@ -146,8 +155,11 @@ class Html5Input extends InputWidget @@ -146,8 +155,11 @@ class Html5Input extends InputWidget
146 $message = ''; 155 $message = '';
147 } else { 156 } else {
148 $noSupport = !empty($this->noSupport) ? $this->noSupport : 157 $noSupport = !empty($this->noSupport) ? $this->noSupport :
149 - Yii::t('app', 'It is recommended you use an upgraded browser to display the {type} control properly.',  
150 - ['type' => $this->type]); 158 + Yii::t(
  159 + 'kvbase',
  160 + 'It is recommended you use an upgraded browser to display the {type} control properly.',
  161 + ['type' => $this->type]
  162 + );
151 $message = "\n<br>" . Html::tag('div', $noSupport, $this->noSupportOptions); 163 $message = "\n<br>" . Html::tag('div', $noSupport, $this->noSupportOptions);
152 } 164 }
153 return "<!--[if lt IE 10]>\n{$caption}{$message}\n<![endif]--><![if gt IE 9]>\n{$content}\n<![endif]>"; 165 return "<!--[if lt IE 10]>\n{$caption}{$message}\n<![endif]--><![if gt IE 9]>\n{$content}\n<![endif]>";
vendor/kartik-v/yii2-krajee-base/Html5InputAsset.php
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 /** 3 /**
4 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 4 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
5 * @package yii2-krajee-base 5 * @package yii2-krajee-base
6 - * @version 1.7.7 6 + * @version 1.7.8
7 */ 7 */
8 8
9 namespace kartik\base; 9 namespace kartik\base;
@@ -14,7 +14,7 @@ namespace kartik\base; @@ -14,7 +14,7 @@ namespace kartik\base;
14 * @author Kartik Visweswaran <kartikv2@gmail.com> 14 * @author Kartik Visweswaran <kartikv2@gmail.com>
15 * @since 1.0 15 * @since 1.0
16 */ 16 */
17 -class Html5InputAsset extends \kartik\base\AssetBundle 17 +class Html5InputAsset extends AssetBundle
18 { 18 {
19 /** 19 /**
20 * @inheritdoc 20 * @inheritdoc
vendor/kartik-v/yii2-krajee-base/InputWidget.php
@@ -4,12 +4,13 @@ @@ -4,12 +4,13 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
11 11
12 use Yii; 12 use Yii;
  13 +use yii\base\InvalidConfigException;
13 use yii\helpers\FormatConverter; 14 use yii\helpers\FormatConverter;
14 use yii\helpers\Html; 15 use yii\helpers\Html;
15 use yii\helpers\ArrayHelper; 16 use yii\helpers\ArrayHelper;
@@ -77,6 +78,12 @@ class InputWidget extends \yii\widgets\InputWidget @@ -77,6 +78,12 @@ class InputWidget extends \yii\widgets\InputWidget
77 * ~~~ 78 * ~~~
78 */ 79 */
79 public $pluginEvents = []; 80 public $pluginEvents = [];
  81 +
  82 + /**
  83 + * @var string a pjax container identifier if applicable inside which the widget will be rendered.
  84 + * If this is set, the widget will automatically reinitialize on pjax completion.
  85 + */
  86 + public $pjaxContainerId;
80 87
81 /** 88 /**
82 * @var boolean whether the widget should automatically format the date from 89 * @var boolean whether the widget should automatically format the date from
@@ -132,6 +139,15 @@ class InputWidget extends \yii\widgets\InputWidget @@ -132,6 +139,15 @@ class InputWidget extends \yii\widgets\InputWidget
132 public function init() 139 public function init()
133 { 140 {
134 parent::init(); 141 parent::init();
  142 + $this->initInputWidget();
  143 + }
  144 +
  145 + /**
  146 + * Initializes the input widget
  147 + */
  148 + protected function initInputWidget()
  149 + {
  150 + $this->initI18N(__DIR__, 'kvbase');
135 if (!isset($this->language)) { 151 if (!isset($this->language)) {
136 $this->language = Yii::$app->language; 152 $this->language = Yii::$app->language;
137 } 153 }
@@ -182,6 +198,7 @@ class InputWidget extends \yii\widgets\InputWidget @@ -182,6 +198,7 @@ class InputWidget extends \yii\widgets\InputWidget
182 /** 198 /**
183 * Sets the language JS file if it exists 199 * Sets the language JS file if it exists
184 * 200 *
  201 + * @param string $prefix the language filename prefix
185 * @param string $assetPath the path to the assets 202 * @param string $assetPath the path to the assets
186 * @param string $filePath the path to the JS file with the file name prefix 203 * @param string $filePath the path to the JS file with the file name prefix
187 * @param string $suffix the file name suffix - defaults to '.js' 204 * @param string $suffix the file name suffix - defaults to '.js'
@@ -220,6 +237,11 @@ class InputWidget extends \yii\widgets\InputWidget @@ -220,6 +237,11 @@ class InputWidget extends \yii\widgets\InputWidget
220 237
221 /** 238 /**
222 * Generates an input 239 * Generates an input
  240 + *
  241 + * @param string $type the input type
  242 + * @param bool $list whether the input is of dropdown list type
  243 + *
  244 + * @return mixed
223 */ 245 */
224 protected function getInput($type, $list = false) 246 protected function getInput($type, $list = false)
225 { 247 {
@@ -313,20 +335,18 @@ class InputWidget extends \yii\widgets\InputWidget @@ -313,20 +335,18 @@ class InputWidget extends \yii\widgets\InputWidget
313 } 335 }
314 if (isset($this->pluginOptions['format'])) { 336 if (isset($this->pluginOptions['format'])) {
315 $format = $this->pluginOptions['format']; 337 $format = $this->pluginOptions['format'];
316 - $format = strncmp($format, 'php:', 4) === 0 ? substr($format,  
317 - 4) : FormatConverter::convertDateIcuToPhp($format, $type); 338 + $format = strncmp($format, 'php:', 4) === 0 ? substr($format, 4) :
  339 + FormatConverter::convertDateIcuToPhp($format, $type);
318 $this->pluginOptions['format'] = static::convertDateFormat($format); 340 $this->pluginOptions['format'] = static::convertDateFormat($format);
319 return; 341 return;
320 } 342 }
321 $attrib = $type . 'Format'; 343 $attrib = $type . 'Format';
322 $format = isset(Yii::$app->formatter->$attrib) ? Yii::$app->formatter->$attrib : ''; 344 $format = isset(Yii::$app->formatter->$attrib) ? Yii::$app->formatter->$attrib : '';
323 - if (isset($this->dateFormat) && strncmp($this->dateFormat, 'php:', 4) === 0) {  
324 - $this->pluginOptions['format'] = static::convertDateFormat(substr($format, 4));  
325 - } elseif ($format != '') {  
326 - $format = FormatConverter::convertDateIcuToPhp($format, $type);  
327 - $this->pluginOptions['format'] = static::convertDateFormat($format);  
328 - } else {  
329 - throw InvalidConfigException("Error parsing '{$type}' format."); 345 + if (empty($format)) {
  346 + throw new InvalidConfigException("Error parsing '{$type}' format.");
330 } 347 }
  348 + $format = strncmp($format, 'php:', 4) === 0 ? substr($format, 4) :
  349 + FormatConverter::convertDateIcuToPhp($format, $type);
  350 + $this->pluginOptions['format'] = static::convertDateFormat($format);
331 } 351 }
332 -}  
333 \ No newline at end of file 352 \ No newline at end of file
  353 +}
vendor/kartik-v/yii2-krajee-base/Module.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
@@ -13,7 +13,7 @@ namespace kartik\base; @@ -13,7 +13,7 @@ namespace kartik\base;
13 * Base module class for Krajee extensions 13 * Base module class for Krajee extensions
14 * 14 *
15 * @author Kartik Visweswaran <kartikv2@gmail.com> 15 * @author Kartik Visweswaran <kartikv2@gmail.com>
16 - * @since 1.7.7 16 + * @since 1.7.8
17 */ 17 */
18 class Module extends \yii\base\Module 18 class Module extends \yii\base\Module
19 { 19 {
vendor/kartik-v/yii2-krajee-base/PluginAssetBundle.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
@@ -26,4 +26,3 @@ class PluginAssetBundle extends AssetBundle @@ -26,4 +26,3 @@ class PluginAssetBundle extends AssetBundle
26 'yii\bootstrap\BootstrapPluginAsset' 26 'yii\bootstrap\BootstrapPluginAsset'
27 ]; 27 ];
28 } 28 }
29 -  
30 \ No newline at end of file 29 \ No newline at end of file
vendor/kartik-v/yii2-krajee-base/README.md
1 yii2-krajee-base 1 yii2-krajee-base
2 ================ 2 ================
3 3
4 -[![Latest Stable Version](https://poser.pugx.org/kartik-v/yii2-krajee-base/v/stable)](https://packagist.org/packages/kartik-v/yii2-krajee-base) 4 +[![Latest Stable Version](https://img.shields.io/packagist/v/kartik-v/yii2-krajee-base.svg)](https://packagist.org/packages/kartik-v/yii2-krajee-base)
5 [![License](https://poser.pugx.org/kartik-v/yii2-krajee-base/license)](https://packagist.org/packages/kartik-v/yii2-krajee-base) 5 [![License](https://poser.pugx.org/kartik-v/yii2-krajee-base/license)](https://packagist.org/packages/kartik-v/yii2-krajee-base)
6 [![Total Downloads](https://poser.pugx.org/kartik-v/yii2-krajee-base/downloads)](https://packagist.org/packages/kartik-v/yii2-krajee-base) 6 [![Total Downloads](https://poser.pugx.org/kartik-v/yii2-krajee-base/downloads)](https://packagist.org/packages/kartik-v/yii2-krajee-base)
7 [![Monthly Downloads](https://poser.pugx.org/kartik-v/yii2-krajee-base/d/monthly)](https://packagist.org/packages/kartik-v/yii2-krajee-base) 7 [![Monthly Downloads](https://poser.pugx.org/kartik-v/yii2-krajee-base/d/monthly)](https://packagist.org/packages/kartik-v/yii2-krajee-base)
@@ -15,7 +15,7 @@ This is a base library with set of foundation classes and components used by all @@ -15,7 +15,7 @@ This is a base library with set of foundation classes and components used by all
15 To ensure a leaner code base / foundation component for use in all Krajee extensions (e.g. yii2-widgets, yii2-datecontrol, yii2-grid, yii2-dynagrid etc.). This should allow most developers to plug and play components only they need, without needing the complete suite of widgets. For example, this mitigates [this issue](https://github.com/kartik-v/yii2-grid/issues/123). 15 To ensure a leaner code base / foundation component for use in all Krajee extensions (e.g. yii2-widgets, yii2-datecontrol, yii2-grid, yii2-dynagrid etc.). This should allow most developers to plug and play components only they need, without needing the complete suite of widgets. For example, this mitigates [this issue](https://github.com/kartik-v/yii2-grid/issues/123).
16 16
17 ## Latest Release 17 ## Latest Release
18 -The latest version of the extension is v1.7.7. Refer the [CHANGE LOG](https://github.com/kartik-v/yii2-krajee-base/blob/master/CHANGE.md) for details. 18 +The latest version of the extension is v1.7.8. Refer the [CHANGE LOG](https://github.com/kartik-v/yii2-krajee-base/blob/master/CHANGE.md) for details.
19 19
20 ## Extension Classes 20 ## Extension Classes
21 21
vendor/kartik-v/yii2-krajee-base/TranslationTrait.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
@@ -14,33 +14,41 @@ use Yii; @@ -14,33 +14,41 @@ use Yii;
14 /** 14 /**
15 * Trait for all translations used in Krajee extensions 15 * Trait for all translations used in Krajee extensions
16 * 16 *
  17 + * @property array $i18n
  18 + *
17 * @author Kartik Visweswaran <kartikv2@gmail.com> 19 * @author Kartik Visweswaran <kartikv2@gmail.com>
18 - * @since 1.7.7 20 + * @since 1.7.8
19 */ 21 */
20 trait TranslationTrait 22 trait TranslationTrait
21 { 23 {
22 /** 24 /**
23 * Yii i18n messages configuration for generating translations 25 * Yii i18n messages configuration for generating translations
24 * 26 *
  27 + * @param string $dir the directory path where translation files will exist
  28 + * @param string $cat the message category
  29 + *
25 * @return void 30 * @return void
26 */ 31 */
27 - public function initI18N($dir = '') 32 + public function initI18N($dir = '', $cat = '')
28 { 33 {
29 - if (empty($this->_msgCat)) { 34 + if (empty($cat) && empty($this->_msgCat)) {
30 return; 35 return;
31 } 36 }
  37 + if (empty($cat)) {
  38 + $cat = $this->_msgCat;
  39 + }
32 if (empty($dir)) { 40 if (empty($dir)) {
33 $reflector = new \ReflectionClass(get_class($this)); 41 $reflector = new \ReflectionClass(get_class($this));
34 $dir = dirname($reflector->getFileName()); 42 $dir = dirname($reflector->getFileName());
35 } 43 }
36 - Yii::setAlias("@{$this->_msgCat}", $dir); 44 + Yii::setAlias("@{$cat}", $dir);
37 if (empty($this->i18n)) { 45 if (empty($this->i18n)) {
38 $this->i18n = [ 46 $this->i18n = [
39 'class' => 'yii\i18n\PhpMessageSource', 47 'class' => 'yii\i18n\PhpMessageSource',
40 - 'basePath' => "@{$this->_msgCat}/messages", 48 + 'basePath' => "@{$cat}/messages",
41 'forceTranslation' => true 49 'forceTranslation' => true
42 ]; 50 ];
43 } 51 }
44 - Yii::$app->i18n->translations[$this->_msgCat . '*'] = $this->i18n; 52 + Yii::$app->i18n->translations["{$cat}*"] = $this->i18n;
45 } 53 }
46 -}  
47 \ No newline at end of file 54 \ No newline at end of file
  55 +}
vendor/kartik-v/yii2-krajee-base/Widget.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
@@ -33,9 +33,7 @@ class Widget extends \yii\base\Widget @@ -33,9 +33,7 @@ class Widget extends \yii\base\Widget
33 public $pluginOptions = []; 33 public $pluginOptions = [];
34 34
35 /** 35 /**
36 - * @var array widget JQuery events. You must define events in  
37 - * event-name => event-function format  
38 - * for example: 36 + * @var array widget JQuery events. You must define events in event-name => event-function format for example:
39 * ~~~ 37 * ~~~
40 * pluginEvents = [ 38 * pluginEvents = [
41 * "change" => "function() { log("change"); }", 39 * "change" => "function() { log("change"); }",
@@ -46,6 +44,12 @@ class Widget extends \yii\base\Widget @@ -46,6 +44,12 @@ class Widget extends \yii\base\Widget
46 public $pluginEvents = []; 44 public $pluginEvents = [];
47 45
48 /** 46 /**
  47 + * @var string a pjax container identifier if applicable inside which the widget will be rendered. If this is set,
  48 + * the widget will automatically reinitialize on pjax completion.
  49 + */
  50 + public $pjaxContainerId;
  51 +
  52 + /**
49 * @var array the the internalization configuration for this widget 53 * @var array the the internalization configuration for this widget
50 */ 54 */
51 public $i18n = []; 55 public $i18n = [];
vendor/kartik-v/yii2-krajee-base/WidgetAsset.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
vendor/kartik-v/yii2-krajee-base/WidgetTrait.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @package yii2-krajee-base 4 * @package yii2-krajee-base
5 * @author Kartik Visweswaran <kartikv2@gmail.com> 5 * @author Kartik Visweswaran <kartikv2@gmail.com>
6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 6 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
7 - * @version 1.7.7 7 + * @version 1.7.8
8 */ 8 */
9 9
10 namespace kartik\base; 10 namespace kartik\base;
@@ -16,6 +16,14 @@ use yii\web\View; @@ -16,6 +16,14 @@ use yii\web\View;
16 /** 16 /**
17 * Trait used for Krajee widgets. 17 * Trait used for Krajee widgets.
18 * 18 *
  19 + * @property array $options
  20 + * @property array $pluginOptions
  21 + * @property array $_encOptions
  22 + * @property string $_hashVar
  23 + * @property string $_dataVar
  24 + *
  25 + * @method View getView()
  26 + *
19 * @author Kartik Visweswaran <kartikv2@gmail.com> 27 * @author Kartik Visweswaran <kartikv2@gmail.com>
20 * @since 1.6.0 28 * @since 1.6.0
21 */ 29 */
@@ -30,6 +38,7 @@ trait WidgetTrait @@ -30,6 +38,7 @@ trait WidgetTrait
30 */ 38 */
31 protected function setDataVar($name) 39 protected function setDataVar($name)
32 { 40 {
  41 + /** @noinspection PhpUndefinedFieldInspection */
33 $this->_dataVar = "data-krajee-{$name}"; 42 $this->_dataVar = "data-krajee-{$name}";
34 } 43 }
35 44
@@ -76,14 +85,15 @@ trait WidgetTrait @@ -76,14 +85,15 @@ trait WidgetTrait
76 /** 85 /**
77 * Registers plugin options by storing it in a hashed javascript variable 86 * Registers plugin options by storing it in a hashed javascript variable
78 * 87 *
  88 + * @param string $name the plugin name
  89 + *
79 * @return void 90 * @return void
80 */ 91 */
81 protected function registerPluginOptions($name) 92 protected function registerPluginOptions($name)
82 { 93 {
83 - $view = $this->getView();  
84 $this->hashPluginOptions($name); 94 $this->hashPluginOptions($name);
85 $encOptions = empty($this->_encOptions) ? '{}' : $this->_encOptions; 95 $encOptions = empty($this->_encOptions) ? '{}' : $this->_encOptions;
86 - $view->registerJs("var {$this->_hashVar} = {$encOptions};\n", View::POS_HEAD); 96 + $this->registerWidgetJs("var {$this->_hashVar} = {$encOptions};\n", View::POS_HEAD);
87 } 97 }
88 98
89 /** 99 /**
@@ -94,7 +104,7 @@ trait WidgetTrait @@ -94,7 +104,7 @@ trait WidgetTrait
94 * @param string $callback the javascript callback function to be called after plugin loads 104 * @param string $callback the javascript callback function to be called after plugin loads
95 * @param string $callbackCon the javascript callback function to be passed to the plugin constructor 105 * @param string $callbackCon the javascript callback function to be passed to the plugin constructor
96 * 106 *
97 - * @return the generated plugin script 107 + * @return string the generated plugin script
98 */ 108 */
99 protected function getPluginScript($name, $element = null, $callback = null, $callbackCon = null) 109 protected function getPluginScript($name, $element = null, $callback = null, $callbackCon = null)
100 { 110 {
@@ -131,9 +141,35 @@ trait WidgetTrait @@ -131,9 +141,35 @@ trait WidgetTrait
131 protected function registerPlugin($name, $element = null, $callback = null, $callbackCon = null) 141 protected function registerPlugin($name, $element = null, $callback = null, $callbackCon = null)
132 { 142 {
133 $script = $this->getPluginScript($name, $element, $callback, $callbackCon); 143 $script = $this->getPluginScript($name, $element, $callback, $callbackCon);
134 - if (!empty($script)) {  
135 - $view = $this->getView();  
136 - $view->registerJs($script); 144 + $this->registerWidgetJs($script);
  145 + }
  146 +
  147 + /**
  148 + * Registers a JS code block for the widget.
  149 + *
  150 + * @param string $js the JS code block to be registered
  151 + * @param integer $position the position at which the JS script tag should be inserted in a page. The possible
  152 + * values are:
  153 + * - [[POS_HEAD]]: in the head section
  154 + * - [[POS_BEGIN]]: at the beginning of the body section
  155 + * - [[POS_END]]: at the end of the body section
  156 + * - [[POS_LOAD]]: enclosed within jQuery(window).load(). Note that by using this position, the method will
  157 + * automatically register the jQuery js file.
  158 + * - [[POS_READY]]: enclosed within jQuery(document).ready(). This is the default value. Note that by using
  159 + * this position, the method will automatically register the jQuery js file.
  160 + * @param string $key the key that identifies the JS code block. If null, it will use $js as the key. If two JS
  161 + * code blocks are registered with the same key, the latter will overwrite the former.
  162 + */
  163 + public function registerWidgetJs($js, $position = View::POS_READY, $key = null)
  164 + {
  165 + if (empty($js)) {
  166 + return;
  167 + }
  168 + $view = $this->getView();
  169 + $view->registerJs($js, $position, $key);
  170 + if (!empty($this->pjaxContainerId) && ($position === View::POS_LOAD || $position === View::POS_READY)) {
  171 + $pjax = 'jQuery("#' . $this->pjaxContainerId . '")';
  172 + $view->registerJs("{$pjax}.on('pjax:complete',function(){ {$js} });");
137 } 173 }
138 } 174 }
139 -}  
140 \ No newline at end of file 175 \ No newline at end of file
  176 +}
vendor/kartik-v/yii2-krajee-base/assets/css/html5input.css
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 * @subpackage yii2-widget-activeform 3 * @subpackage yii2-widget-activeform
4 * @author Kartik Visweswaran <kartikv2@gmail.com> 4 * @author Kartik Visweswaran <kartikv2@gmail.com>
5 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 5 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
6 - * @version 1.7.7 6 + * @version 1.7.8
7 * 7 *
8 * HTML 5 input styling for Twitter Bootstrap 3.0 8 * HTML 5 input styling for Twitter Bootstrap 3.0
9 * Covers color and range inputs 9 * Covers color and range inputs
vendor/kartik-v/yii2-krajee-base/assets/css/html5input.min.css
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 * @subpackage yii2-widget-activeform 3 * @subpackage yii2-widget-activeform
4 * @author Kartik Visweswaran <kartikv2@gmail.com> 4 * @author Kartik Visweswaran <kartikv2@gmail.com>
5 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 5 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
6 - * @version 1.7.7 6 + * @version 1.7.8
7 * 7 *
8 * HTML 5 input styling for Twitter Bootstrap 3.0 8 * HTML 5 input styling for Twitter Bootstrap 3.0
9 * Covers color and range inputs 9 * Covers color and range inputs
vendor/kartik-v/yii2-krajee-base/assets/css/kv-widgets.css
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 * @subpackage yii2-widget-activeform 3 * @subpackage yii2-widget-activeform
4 * @author Kartik Visweswaran <kartikv2@gmail.com> 4 * @author Kartik Visweswaran <kartikv2@gmail.com>
5 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 5 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
6 - * @version 1.7.7 6 + * @version 1.7.8
7 * 7 *
8 * Common CSS file for all kartik\widgets. 8 * Common CSS file for all kartik\widgets.
9 * 9 *
vendor/kartik-v/yii2-krajee-base/assets/css/kv-widgets.min.css
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 * @subpackage yii2-widget-activeform 3 * @subpackage yii2-widget-activeform
4 * @author Kartik Visweswaran <kartikv2@gmail.com> 4 * @author Kartik Visweswaran <kartikv2@gmail.com>
5 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015 5 * @copyright Copyright &copy; Kartik Visweswaran, Krajee.com, 2014 - 2015
6 - * @version 1.7.7 6 + * @version 1.7.8
7 * 7 *
8 * Common CSS file for all kartik\widgets. 8 * Common CSS file for all kartik\widgets.
9 * 9 *
vendor/rmrevin/yii2-fontawesome/.bowerrc deleted
1 -{  
2 - "directory": "vendor/bower",  
3 - "interactive": true  
4 -}  
5 \ No newline at end of file 0 \ No newline at end of file
vendor/rmrevin/yii2-fontawesome/.scrutinizer.yml
@@ -4,7 +4,7 @@ build: @@ -4,7 +4,7 @@ build:
4 version: 5.5.12 4 version: 5.5.12
5 dependencies: 5 dependencies:
6 before: 6 before:
7 - - composer global require "fxp/composer-asset-plugin:1.0.0" 7 + - composer global require "fxp/composer-asset-plugin:~1.0.0"
8 tests: 8 tests:
9 override: 9 override:
10 - phpunit 10 - phpunit
vendor/rmrevin/yii2-fontawesome/CHANGELOG.md
  1 +2015-11-20 - 2.12.2
  2 +-------------------
  3 +* Add shortcuts methods `i()` for `FA::icon()` and `FA::s()` for `FA::stack()`
  4 +* Update readme
  5 +
  6 +2015-11-09 - 2.12.1
  7 +-------------------
  8 +* Variable `FA::$cssPrefix` transferred to the class `FontAwesome`.
  9 +* Refactoring.
  10 +* Update tests.
  11 +
1 2015-08-15 - 2.12.0 12 2015-08-15 - 2.12.0
2 ------------------- 13 -------------------
3 * `Font Awesome` updated to version `4.4`. 14 * `Font Awesome` updated to version `4.4`.
vendor/rmrevin/yii2-fontawesome/FA.php
@@ -14,9 +14,6 @@ namespace rmrevin\yii\fontawesome; @@ -14,9 +14,6 @@ namespace rmrevin\yii\fontawesome;
14 class FA extends FontAwesome 14 class FA extends FontAwesome
15 { 15 {
16 16
17 - /** @var string CSS Class prefix */  
18 - public static $cssPrefix = 'fa';  
19 -  
20 /** 17 /**
21 * Get all icon constants for dropdown list in example 18 * Get all icon constants for dropdown list in example
22 * @param bool $html whether to render icon as array value prefix 19 * @param bool $html whether to render icon as array value prefix
vendor/rmrevin/yii2-fontawesome/FontAwesome.php
@@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
7 7
8 namespace rmrevin\yii\fontawesome; 8 namespace rmrevin\yii\fontawesome;
9 9
  10 +use rmrevin\yii\fontawesome\component;
  11 +
10 /** 12 /**
11 * Class FA 13 * Class FA
12 * @package rmrevin\yii\fontawesome 14 * @package rmrevin\yii\fontawesome
@@ -14,7 +16,12 @@ namespace rmrevin\yii\fontawesome; @@ -14,7 +16,12 @@ namespace rmrevin\yii\fontawesome;
14 class FontAwesome 16 class FontAwesome
15 { 17 {
16 18
  19 + /** @var string CSS Class prefix */
  20 + public static $cssPrefix = 'fa';
  21 +
17 /** 22 /**
  23 + * Creates an `Icon` component that can be used to FontAwesome html icon
  24 + *
18 * @param string $name 25 * @param string $name
19 * @param array $options 26 * @param array $options
20 * @return component\Icon 27 * @return component\Icon
@@ -25,6 +32,21 @@ class FontAwesome @@ -25,6 +32,21 @@ class FontAwesome
25 } 32 }
26 33
27 /** 34 /**
  35 + * Shortcut for `icon()` method
  36 + * @see icon()
  37 + *
  38 + * @param string $name
  39 + * @param array $options
  40 + * @return component\Icon
  41 + */
  42 + public static function i($name, $options = [])
  43 + {
  44 + return static::icon($name, $options);
  45 + }
  46 +
  47 + /**
  48 + * Creates an `Stack` component that can be used to FontAwesome html icon
  49 + *
28 * @param array $options 50 * @param array $options
29 * @return component\Stack 51 * @return component\Stack
30 */ 52 */
@@ -34,6 +56,18 @@ class FontAwesome @@ -34,6 +56,18 @@ class FontAwesome
34 } 56 }
35 57
36 /** 58 /**
  59 + * Shortcut for `stack()` method
  60 + * @see stack()
  61 + *
  62 + * @param array $options
  63 + * @return component\Stack
  64 + */
  65 + public static function s($options = [])
  66 + {
  67 + return static::stack($options);
  68 + }
  69 +
  70 + /**
37 * Size values 71 * Size values
38 * @see rmrevin\yii\fontawesome\component\Icon::size 72 * @see rmrevin\yii\fontawesome\component\Icon::size
39 */ 73 */
@@ -57,4 +91,4 @@ class FontAwesome @@ -57,4 +91,4 @@ class FontAwesome
57 */ 91 */
58 const FLIP_HORIZONTAL = 'horizontal'; 92 const FLIP_HORIZONTAL = 'horizontal';
59 const FLIP_VERTICAL = 'vertical'; 93 const FLIP_VERTICAL = 'vertical';
60 -}  
61 \ No newline at end of file 94 \ No newline at end of file
  95 +}
vendor/rmrevin/yii2-fontawesome/README.md
1 -Yii 2 Font Awesome Asset Bundle 1 +Yii 2 [Font Awesome](http://fortawesome.github.io/Font-Awesome/) Asset Bundle
2 =============================== 2 ===============================
3 3
4 This extension provides a assets bundle with [Font Awesome](http://fortawesome.github.io/Font-Awesome/) 4 This extension provides a assets bundle with [Font Awesome](http://fortawesome.github.io/Font-Awesome/)
@@ -20,7 +20,8 @@ Code Status @@ -20,7 +20,8 @@ Code Status
20 20
21 Support 21 Support
22 ------- 22 -------
23 -[GutHub issues](https://github.com/rmrevin/yii2-fontawesome/issues) or [public chat](https://gitter.im/rmrevin/support). 23 +* [GutHub issues](https://github.com/rmrevin/yii2-fontawesome/issues)
  24 +* [Public chat](https://gitter.im/rmrevin/support)
24 25
25 Installation 26 Installation
26 ------------ 27 ------------
@@ -30,13 +31,13 @@ The preferred way to install this extension is through [composer](https://getcom @@ -30,13 +31,13 @@ The preferred way to install this extension is through [composer](https://getcom
30 Either run 31 Either run
31 32
32 ```bash 33 ```bash
33 -composer require "rmrevin/yii2-fontawesome:2.10.*" 34 +composer require "rmrevin/yii2-fontawesome:~2.12"
34 ``` 35 ```
35 36
36 or add 37 or add
37 38
38 ``` 39 ```
39 -"rmrevin/yii2-fontawesome": "2.10.*", 40 +"rmrevin/yii2-fontawesome": "~2.12",
40 ``` 41 ```
41 42
42 to the `require` section of your `composer.json` file. 43 to the `require` section of your `composer.json` file.
@@ -66,22 +67,78 @@ class AppAsset extends AssetBundle @@ -66,22 +67,78 @@ class AppAsset extends AssetBundle
66 67
67 ``` 68 ```
68 69
69 -Helper  
70 ------- 70 +Class reference
  71 +---------------
  72 +
  73 +Namespace: `rmrevin\yii\fontawesome`;
  74 +
  75 +###Class `FA` or `FontAwesome`
  76 +
  77 +* `static FA::icon($name, $options=[])` - Creates an [`component\Icon`](#class-componenticon-icon) that can be used to FontAwesome html icon
  78 + * `$name` - name of icon in font awesome set.
  79 + * `$options` - additional attributes for `i.fa` html tag.
  80 +* `static FA::stack($name, $options=[])` - Creates an [`component\Stack`](#class-componentstack-stack) that can be used to FontAwesome html icon
  81 + * `$options` - additional attributes for `span.fa-stack` html tag.
  82 +
  83 +###Class `component\Icon` (`$Icon`)
  84 +
  85 +* `(string)$Icon` - render icon
  86 +* `$Icon->render()` - render icon
  87 +* `$Icon->tag($value)` - set another html tag for icon (default `i`)
  88 + * `$value` - name of tag
  89 +* `$Icon->addCssClass($value)` - add to html tag css class in `$value`
  90 + * `$value` - name of css class
  91 +* `$Icon->inverse()` - add to html tag css class `fa-inverse`
  92 +* `$Icon->spin()` - add to html tag css class `fa-spin`
  93 +* `$Icon->fixedWidth()` - add to html tag css class `fa-fw`
  94 +* `$Icon->ul()` - add to html tag css class `fa-ul`
  95 +* `$Icon->li()` - add to html tag css class `fa-li`
  96 +* `$Icon->border()` - add to html tag css class `fa-border`
  97 +* `$Icon->pullLeft()` - add to html tag css class `pull-left`
  98 +* `$Icon->pullRight()` - add to html tag css class `pull-right`
  99 +* `$Icon->size($value)` - add to html tag css class with size
  100 + * `$value` - size value (variants: `FA::SIZE_LARGE`, `FA::SIZE_2X`, `FA::SIZE_3X`, `FA::SIZE_4X`, `FA::SIZE_5X`)
  101 +* `$Icon->rotate($value)` - add to html tag css class with rotate
  102 + * `$value` - rotate value (variants: `FA::ROTATE_90`, `FA::ROTATE_180`, `FA::ROTATE_270`)
  103 +* `$Icon->flip($value)` - add to html tag css class with rotate
  104 + * `$value` - flip value (variants: `FA::FLIP_HORIZONTAL`, `FA::FLIP_VERTICAL`)
  105 +
  106 +###Class `component\Stack` (`$Stack`)
  107 +
  108 +* `(string)$Stack` - render icon stack
  109 +* `$Stack->render()` - render icon stack
  110 +* `$Stack->tag($value)` - set another html tag for icon stack (default `span`)
  111 +* `$Stack->icon($icon, $options=[])` - set icon for stack
  112 + * `$icon` - name of icon or `component\Icon` object
  113 + * `$options` - additional attributes for icon html tag.
  114 +* `$Stack->icon($icon, $options=[])` - set background icon for stack
  115 + * `$icon` - name of icon or `component\Icon` object
  116 + * `$options` - additional attributes for icon html tag.
  117 +
  118 +Helper examples
  119 +---------------
71 120
72 ```php 121 ```php
73 use rmrevin\yii\fontawesome\FA; 122 use rmrevin\yii\fontawesome\FA;
74 123
  124 +// normal use
75 echo FA::icon('home'); // <i class="fa fa-home"></i> 125 echo FA::icon('home'); // <i class="fa fa-home"></i>
  126 +
  127 +// shortcut
  128 +echo FA::i('home'); // <i class="fa fa-home"></i>
  129 +
  130 +// icon with additional attributes
76 echo FA::icon( 131 echo FA::icon(
77 'arrow-left', 132 'arrow-left',
78 ['class' => 'big', 'data-role' => 'arrow'] 133 ['class' => 'big', 'data-role' => 'arrow']
79 ); // <i class="big fa fa-arrow-left" data-role="arrow"></i> 134 ); // <i class="big fa fa-arrow-left" data-role="arrow"></i>
80 135
  136 +// icon in button
81 echo Html::submitButton( 137 echo Html::submitButton(
82 Yii::t('app', '{icon} Save', ['icon' => FA::icon('check')]) 138 Yii::t('app', '{icon} Save', ['icon' => FA::icon('check')])
83 ); // <button type="submit"><i class="fa fa-check"></i> Save</button> 139 ); // <button type="submit"><i class="fa fa-check"></i> Save</button>
84 140
  141 +// icon with additional methods
85 echo FA::icon('cog')->inverse(); // <i class="fa fa-cog fa-inverse"></i> 142 echo FA::icon('cog')->inverse(); // <i class="fa fa-cog fa-inverse"></i>
86 echo FA::icon('cog')->spin(); // <i class="fa fa-cog fa-spin"></i> 143 echo FA::icon('cog')->spin(); // <i class="fa fa-cog fa-spin"></i>
87 echo FA::icon('cog')->fixedWidth(); // <i class="fa fa-cog fa-fw"></i> 144 echo FA::icon('cog')->fixedWidth(); // <i class="fa fa-cog fa-fw"></i>
@@ -91,18 +148,22 @@ echo FA::icon(&#39;cog&#39;)-&gt;border(); // &lt;i class=&quot;fa fa-cog fa-border&quot;&gt;&lt;/i&gt; @@ -91,18 +148,22 @@ echo FA::icon(&#39;cog&#39;)-&gt;border(); // &lt;i class=&quot;fa fa-cog fa-border&quot;&gt;&lt;/i&gt;
91 echo FA::icon('cog')->pullLeft(); // <i class="fa fa-cog pull-left"></i> 148 echo FA::icon('cog')->pullLeft(); // <i class="fa fa-cog pull-left"></i>
92 echo FA::icon('cog')->pullRight(); // <i class="fa fa-cog pull-right"></i> 149 echo FA::icon('cog')->pullRight(); // <i class="fa fa-cog pull-right"></i>
93 150
  151 +// icon size
94 echo FA::icon('cog')->size(FA::SIZE_3X); 152 echo FA::icon('cog')->size(FA::SIZE_3X);
95 // values: FA::SIZE_LARGE, FA::SIZE_2X, FA::SIZE_3X, FA::SIZE_4X, FA::SIZE_5X 153 // values: FA::SIZE_LARGE, FA::SIZE_2X, FA::SIZE_3X, FA::SIZE_4X, FA::SIZE_5X
96 // <i class="fa fa-cog fa-size-3x"></i> 154 // <i class="fa fa-cog fa-size-3x"></i>
97 155
  156 +// icon rotate
98 echo FA::icon('cog')->rotate(FA::ROTATE_90); 157 echo FA::icon('cog')->rotate(FA::ROTATE_90);
99 // values: FA::ROTATE_90, FA::ROTATE_180, FA::ROTATE_180 158 // values: FA::ROTATE_90, FA::ROTATE_180, FA::ROTATE_180
100 // <i class="fa fa-cog fa-rotate-90"></i> 159 // <i class="fa fa-cog fa-rotate-90"></i>
101 160
  161 +// icon flip
102 echo FA::icon('cog')->flip(FA::FLIP_VERTICAL); 162 echo FA::icon('cog')->flip(FA::FLIP_VERTICAL);
103 // values: FA::FLIP_HORIZONTAL, FA::FLIP_VERTICAL 163 // values: FA::FLIP_HORIZONTAL, FA::FLIP_VERTICAL
104 // <i class="fa fa-cog fa-flip-vertical"></i> 164 // <i class="fa fa-cog fa-flip-vertical"></i>
105 165
  166 +// icon with multiple methods
106 echo FA::icon('cog') 167 echo FA::icon('cog')
107 ->spin() 168 ->spin()
108 ->fixedWidth() 169 ->fixedWidth()
@@ -110,6 +171,7 @@ echo FA::icon(&#39;cog&#39;) @@ -110,6 +171,7 @@ echo FA::icon(&#39;cog&#39;)
110 ->size(FA::SIZE_LARGE); 171 ->size(FA::SIZE_LARGE);
111 // <i class="fa fa-cog fa-spin fa-fw pull-left fa-size-lg"></i> 172 // <i class="fa fa-cog fa-spin fa-fw pull-left fa-size-lg"></i>
112 173
  174 +// icons stack
113 echo FA::stack() 175 echo FA::stack()
114 ->icon('twitter') 176 ->icon('twitter')
115 ->on('square-o'); 177 ->on('square-o');
@@ -118,9 +180,10 @@ echo FA::stack() @@ -118,9 +180,10 @@ echo FA::stack()
118 // <i class="fa fa-twitter fa-stack-1x"></i> 180 // <i class="fa fa-twitter fa-stack-1x"></i>
119 // </span> 181 // </span>
120 182
  183 +// icons stack with additional attributes
121 echo FA::stack(['data-role' => 'stacked-icon']) 184 echo FA::stack(['data-role' => 'stacked-icon'])
122 - ->on((new FA\Icon('square'))->inverse())  
123 - ->icon((new FA\Icon('cog'))->spin()); 185 + ->on(FA::Icon('square')->inverse())
  186 + ->icon(FA::Icon('cog')->spin());
124 // <span class="fa-stack" data-role="stacked-icon"> 187 // <span class="fa-stack" data-role="stacked-icon">
125 // <i class="fa fa-square-o fa-inverse fa-stack-2x"></i> 188 // <i class="fa fa-square-o fa-inverse fa-stack-2x"></i>
126 // <i class="fa fa-cog fa-spin fa-stack-1x"></i> 189 // <i class="fa fa-cog fa-spin fa-stack-1x"></i>
@@ -130,8 +193,8 @@ echo FA::stack([&#39;data-role&#39; =&gt; &#39;stacked-icon&#39;]) @@ -130,8 +193,8 @@ echo FA::stack([&#39;data-role&#39; =&gt; &#39;stacked-icon&#39;])
130 echo FA::icon(FA::_COG); 193 echo FA::icon(FA::_COG);
131 echo FA::icon(FA::_DESKTOP); 194 echo FA::icon(FA::_DESKTOP);
132 echo FA::stack() 195 echo FA::stack()
133 - ->on((new FA\Icon(FA::_SQUARE))->inverse())  
134 - ->icon((new FA\Icon(FA::_COG))->spin()); 196 + ->on(FA::_CIRCLE_O)
  197 + ->icon(FA::_TWITTER);
135 ``` 198 ```
136 199
137 ### Set another prefix 200 ### Set another prefix
vendor/rmrevin/yii2-fontawesome/component/Icon.php
@@ -215,6 +215,7 @@ class Icon @@ -215,6 +215,7 @@ class Icon
215 * @param string|bool $throw 215 * @param string|bool $throw
216 * @return \rmrevin\yii\fontawesome\component\Icon 216 * @return \rmrevin\yii\fontawesome\component\Icon
217 * @throws \yii\base\InvalidConfigException 217 * @throws \yii\base\InvalidConfigException
  218 + * @codeCoverageIgnore
218 */ 219 */
219 public function addCssClass($class, $condition = true, $throw = false) 220 public function addCssClass($class, $condition = true, $throw = false)
220 { 221 {
@@ -249,4 +250,4 @@ class Icon @@ -249,4 +250,4 @@ class Icon
249 250
250 return Html::tag($tag, $content, $options); 251 return Html::tag($tag, $content, $options);
251 } 252 }
252 -} 253 -}
  254 +}
253 \ No newline at end of file 255 \ No newline at end of file
vendor/rmrevin/yii2-fontawesome/composer.json
@@ -17,9 +17,9 @@ @@ -17,9 +17,9 @@
17 }, 17 },
18 "authors": [ 18 "authors": [
19 { 19 {
20 - "name": "Roman Revin",  
21 - "email": "xgismox@gmail.com",  
22 - "homepage": "http://rmrevin.ru/" 20 + "name": "Revin Roman",
  21 + "email": "roman@rmrevin.com",
  22 + "homepage": "https://rmrevin.com/"
23 } 23 }
24 ], 24 ],
25 "require": { 25 "require": {
vendor/rmrevin/yii2-fontawesome/composer.lock
@@ -4,7 +4,8 @@ @@ -4,7 +4,8 @@
4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 "This file is @generated automatically" 5 "This file is @generated automatically"
6 ], 6 ],
7 - "hash": "54ddca2d2b639ae136422a58590cdccc", 7 + "hash": "a6e2105374df8af26fdde9137b018143",
  8 + "content-hash": "94d3274c874502d1e22ab4ff59c2386f",
8 "packages": [ 9 "packages": [
9 { 10 {
10 "name": "bower-asset/fontawesome", 11 "name": "bower-asset/fontawesome",
vendor/rmrevin/yii2-fontawesome/phpunit.xml.dist
@@ -6,10 +6,13 @@ @@ -6,10 +6,13 @@
6 convertWarningsToExceptions="true" 6 convertWarningsToExceptions="true"
7 stopOnFailure="false"> 7 stopOnFailure="false">
8 <filter> 8 <filter>
9 - <blacklist>  
10 - <directory suffix=".php">./tests</directory>  
11 - <directory suffix=".php">./vendor</directory>  
12 - </blacklist> 9 + <whitelist>
  10 + <directory suffix=".php">./</directory>
  11 + <exclude>
  12 + <directory>./tests</directory>
  13 + <directory>./vendor</directory>
  14 + </exclude>
  15 + </whitelist>
13 </filter> 16 </filter>
14 <testsuites> 17 <testsuites>
15 <testsuite name="Test Suite"> 18 <testsuite name="Test Suite">
vendor/rmrevin/yii2-fontawesome/tests/unit/fontawesome/MainTest.php
@@ -76,6 +76,33 @@ class MainTest extends \rmrevin\yii\fontawesome\tests\unit\TestCase @@ -76,6 +76,33 @@ class MainTest extends \rmrevin\yii\fontawesome\tests\unit\TestCase
76 ->on((new Icon('square-o'))->size(FA::SIZE_3X)), 76 ->on((new Icon('square-o'))->size(FA::SIZE_3X)),
77 '<span class="fa-stack"><i class="fa fa-square-o fa-3x fa-stack-2x"></i><i class="fa fa-cog fa-spin fa-stack-1x"></i></span>' 77 '<span class="fa-stack"><i class="fa fa-square-o fa-3x fa-stack-2x"></i><i class="fa fa-cog fa-spin fa-stack-1x"></i></span>'
78 ); 78 );
  79 +
  80 + $this->assertEquals(
  81 + (string)FA::stack()
  82 + ->icon(FA::Icon('cog')->spin())
  83 + ->on(FA::Icon('square-o')->size(FA::SIZE_3X)),
  84 + '<span class="fa-stack"><i class="fa fa-square-o fa-3x fa-stack-2x"></i><i class="fa fa-cog fa-spin fa-stack-1x"></i></span>'
  85 + );
  86 +
  87 + $this->assertNotEquals(
  88 + (string)FA::stack()
  89 + ->icon((string)FA::Icon('cog')->spin())
  90 + ->on((string)FA::Icon('square-o')->size(FA::SIZE_3X)),
  91 + '<span class="fa-stack"><i class="fa fa-square-o fa-3x fa-stack-2x"></i><i class="fa fa-cog fa-spin fa-stack-1x"></i></span>'
  92 + );
  93 + }
  94 +
  95 + public function testAnotherPrefix()
  96 + {
  97 + $old_prefix = FA::$cssPrefix;
  98 +
  99 + FA::$cssPrefix = 'fontawesome';
  100 +
  101 + $this->assertEquals(FA::icon('cog'), '<i class="fontawesome fontawesome-cog"></i>');
  102 + $this->assertEquals(FA::icon('cog')->tag('span'), '<span class="fontawesome fontawesome-cog"></span>');
  103 + $this->assertEquals(FA::icon('cog')->addCssClass('highlight'), '<i class="fontawesome fontawesome-cog highlight"></i>');
  104 +
  105 + FA::$cssPrefix = $old_prefix;
79 } 106 }
80 107
81 public function testIconOutput() 108 public function testIconOutput()
@@ -145,4 +172,15 @@ class MainTest extends \rmrevin\yii\fontawesome\tests\unit\TestCase @@ -145,4 +172,15 @@ class MainTest extends \rmrevin\yii\fontawesome\tests\unit\TestCase
145 FA::icon('cog') 172 FA::icon('cog')
146 ->flip('badvalue'); 173 ->flip('badvalue');
147 } 174 }
  175 +
  176 + public function testIconAddCssClassCondition()
  177 + {
  178 + $this->assertEquals(FA::icon('cog')->addCssClass('highlight', true), '<i class="fa fa-cog highlight"></i>');
  179 +
  180 + $this->setExpectedException(
  181 + 'yii\base\InvalidConfigException',
  182 + 'Condition is false'
  183 + );
  184 + FA::icon('cog')->addCssClass('highlight', false, true);
  185 + }
148 } 186 }
149 \ No newline at end of file 187 \ No newline at end of file
vendor/yiisoft/extensions.php
@@ -57,15 +57,6 @@ return array ( @@ -57,15 +57,6 @@ return array (
57 '@yii/faker' => $vendorDir . '/yiisoft/yii2-faker', 57 '@yii/faker' => $vendorDir . '/yiisoft/yii2-faker',
58 ), 58 ),
59 ), 59 ),
60 - 'rmrevin/yii2-fontawesome' =>  
61 - array (  
62 - 'name' => 'rmrevin/yii2-fontawesome',  
63 - 'version' => '2.12.0.0',  
64 - 'alias' =>  
65 - array (  
66 - '@rmrevin/yii/fontawesome' => $vendorDir . '/rmrevin/yii2-fontawesome',  
67 - ),  
68 - ),  
69 'cebe/yii2-gravatar' => 60 'cebe/yii2-gravatar' =>
70 array ( 61 array (
71 'name' => 'cebe/yii2-gravatar', 62 'name' => 'cebe/yii2-gravatar',
@@ -75,15 +66,6 @@ return array ( @@ -75,15 +66,6 @@ return array (
75 '@cebe/gravatar' => $vendorDir . '/cebe/yii2-gravatar/cebe/gravatar', 66 '@cebe/gravatar' => $vendorDir . '/cebe/yii2-gravatar/cebe/gravatar',
76 ), 67 ),
77 ), 68 ),
78 - 'dmstr/yii2-adminlte-asset' =>  
79 - array (  
80 - 'name' => 'dmstr/yii2-adminlte-asset',  
81 - 'version' => '2.2.3.0',  
82 - 'alias' =>  
83 - array (  
84 - '@dmstr' => $vendorDir . '/dmstr/yii2-adminlte-asset',  
85 - ),  
86 - ),  
87 'yiisoft/yii2-jui' => 69 'yiisoft/yii2-jui' =>
88 array ( 70 array (
89 'name' => 'yiisoft/yii2-jui', 71 'name' => 'yiisoft/yii2-jui',
@@ -93,15 +75,6 @@ return array ( @@ -93,15 +75,6 @@ return array (
93 '@yii/jui' => $vendorDir . '/yiisoft/yii2-jui', 75 '@yii/jui' => $vendorDir . '/yiisoft/yii2-jui',
94 ), 76 ),
95 ), 77 ),
96 - 'kartik-v/yii2-krajee-base' =>  
97 - array (  
98 - 'name' => 'kartik-v/yii2-krajee-base',  
99 - 'version' => '1.7.7.0',  
100 - 'alias' =>  
101 - array (  
102 - '@kartik/base' => $vendorDir . '/kartik-v/yii2-krajee-base',  
103 - ),  
104 - ),  
105 'kartik-v/yii2-widget-select2' => 78 'kartik-v/yii2-widget-select2' =>
106 array ( 79 array (
107 'name' => 'kartik-v/yii2-widget-select2', 80 'name' => 'kartik-v/yii2-widget-select2',
@@ -120,4 +93,41 @@ return array ( @@ -120,4 +93,41 @@ return array (
120 '@developeruz/db_rbac' => $vendorDir . '/developeruz/yii2-db-rbac', 93 '@developeruz/db_rbac' => $vendorDir . '/developeruz/yii2-db-rbac',
121 ), 94 ),
122 ), 95 ),
  96 + 'dmstr/yii2-adminlte-asset' =>
  97 + array (
  98 + 'name' => 'dmstr/yii2-adminlte-asset',
  99 + 'version' => '2.2.4.0',
  100 + 'alias' =>
  101 + array (
  102 + '@dmstr' => $vendorDir . '/dmstr/yii2-adminlte-asset',
  103 + ),
  104 + ),
  105 + 'nodge/yii2-eauth' =>
  106 + array (
  107 + 'name' => 'nodge/yii2-eauth',
  108 + 'version' => '2.3.0.0',
  109 + 'alias' =>
  110 + array (
  111 + '@nodge/eauth' => $vendorDir . '/nodge/yii2-eauth/src',
  112 + ),
  113 + 'bootstrap' => 'nodge\\eauth\\Bootstrap',
  114 + ),
  115 + 'kartik-v/yii2-krajee-base' =>
  116 + array (
  117 + 'name' => 'kartik-v/yii2-krajee-base',
  118 + 'version' => '1.7.8.0',
  119 + 'alias' =>
  120 + array (
  121 + '@kartik/base' => $vendorDir . '/kartik-v/yii2-krajee-base',
  122 + ),
  123 + ),
  124 + 'rmrevin/yii2-fontawesome' =>
  125 + array (
  126 + 'name' => 'rmrevin/yii2-fontawesome',
  127 + 'version' => '2.12.2.0',
  128 + 'alias' =>
  129 + array (
  130 + '@rmrevin/yii/fontawesome' => $vendorDir . '/rmrevin/yii2-fontawesome',
  131 + ),
  132 + ),
123 ); 133 );