Quantcast
Channel: Live News for Yii Framework
Viewing all 2941 articles
Browse latest View live
↧

[extension] razonyang/yii2-jsend

$
0
0

JSend port for Yii2 ΒΆ

  1. Installation
  2. Usage
  3. Error Handler

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads LICENSE

The package is a Yii2's implementation of JSend specification.

Installation ΒΆ

composer require razonyang/yii2-jsend:^1.0

Usage ΒΆ

Update resposne formater and error handler:

return [
    'components' => [
        'response' => [
            'formatters' => [
                \yii\web\Response::JSON => [
                    'class' => \RazonYang\Yii2\JSend\Formatter::class,
                ],
            ],
        ],
        'errorHandler' => [
            'class' => \RazonYang\Yii2\JSend\ErrorHandler::class,
        ],
    ],
];

Change you rest controller serializer:

public $serializer = \RazonYang\Yii2\JSend\Serializer::class;

Error Handler ΒΆ

ErrorHandler converts exception to error payload:

{
    "status": "error",
    "code": "exception code",
    "message": "exception message"
}

It can also returns the optional data field by throwing a JSend's Exception:

throws new RazonYang\Jsend\Exception($message, $code, $data, $previous);

// you can also define your own exception:
class MyException extends RazonYang\Jsend\Exception
{
}

throws new MyException();
{
    "status": "error",
    "code": "exception code",
    "message": "exception message",
    "data": "exception data"
}
↧

[extension] diecoding/yii2-core

$
0
0

Yii2 Core ΒΆ

  1. Cara Memasang
  2. List Class

Tidak ada dokumentasi, karena hanya untuk tambahan internal Die Coding saja ^_^

Latest Version Software License Quality Score Total Downloads

Cara Memasang ΒΆ

  • Melalui console
composer require --prefer-dist diecoding/yii2-core "dev-master"
  • Melalui composer.json
  1. Tambahkan pada baris require
"diecoding/yii2-core": "dev-master"
  1. Kemudian jalankan
composer update

List Class ΒΆ

\diecoding\behaviors\TouchDbBehavior();

\diecoding\behaviors\TouchDbBehavior();


\diecoding\helpers\Date();
↧
↧

[news] Bootstrap 4 extension version 2.0.7 released

$
0
0

Bootstrap 4 extension version 2.0.7 was released. This version fixes a bug in displaying error message for checkbox and radio lists and allowing to override all CSS classes via widget factory.

Thanks to @simialbi for taking care of the extension!

See CHANGELOG for details.

↧

[news] Gii extension 2.1.1 released

$
0
0

We are very pleased to announce the release of Gii extension version 2.1.1 fixing a bug not highlighting part of the diff preview.

See the CHANGELOG for details.

↧

[news] Yii 2.0.25

$
0
0

We are very pleased to announce the release of Yii Framework version 2.0.25. Please refer to the instructions at https://www.yiiframework.com/download/ to install or upgrade to this version.

Version 2.0.25 is a minor release of Yii 2.0. This release includes bug fixes accumulated since last release.

Thanks to all Yii community members who contribute to the framework, translators who keep documentation translations up to date and community members who answer questions at forums.

There are many active Yii communities so if you need help or want to share your experience, feel free to join them.

A complete list of changes can be found in the CHANGELOG.

↧
↧

[wiki] Move sources to src

$
0
0

Yii 3 and many Yii 2 package sources are contained within src directory which is convenient since you have less directories to check.

/config
/runtime
/src
  /assets
  /commands
  /controllers
  /mail
  /models
  /views
  /widgets
/tests
/vendor
/web
yii

Let's start with the basic applicaiton template.

  1. Create src directory.
  2. Move source directories there.
  3. Adjust config/web.php:
$config = [
    // ...
    'basePath' => dirname(__DIR__) . '/src',
    // ...
    'aliases' => [
        '@vendor' => dirname(__DIR__) . '/vendor',
        '@runtime' => dirname(__DIR__) . '/runtime',
        // ...
    ],
    // ...
];

And config/console.php:

$config = [
    // ...
    'basePath' => dirname(__DIR__) . '/src',
    // ...
    'aliases' => [
        '@vendor' => dirname(__DIR__) . '/vendor',
        '@runtime' => dirname(__DIR__) . '/runtime',
        // ...
    ],
    // ...
];

That's it now you have both console and web application source code in src.

↧

[news] Debug extension 2.1.8 released

$
0
0

Debug extension version 2.1.8 was released.

This version fixes two bugs:

  • Infinite redirect when URL normalizer is turned on
  • Broken user switching from the toolbar

See the CHANGELOG for details.

↧

[extension] owk/yii2-circular-navigation

$
0
0

Yii2 Circular navigation ΒΆ

  1. Installation
  2. Usage

Created by Codrops

http://www.codrops.com

>Integrate or build upon it for free in your personal or commercial projects. Don't republish, redistribute or sell "as-is".

Read more here: licensing

edited by owk

Installation ΒΆ

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist owk/yii2-circular-navigation

or add

"owk/yii2-circular-navigation": "^1.0.0"

to the require section of your composer.json file.

Usage ΒΆ

Once the extension is installed, simply use it in your view by : `php <?php echo owk\circularnavigation\CircularNavigation::widget([

            'cnoptions'=>[
                'menu' =>[
                    'background_color' => '#0088cd',
                    'background_color_hover' => 'rgb(12, 135, 212)',
                    // 'openLabel' => 'MenΓΊ',
                    // 'closeLabel' => 'Cerrar',
                    // 'color' => 'white'
                ],
                'item' => [
                    'background_color' => '-webkit-linear-gradient(90deg, #666666 0%,#319ed8 50%,#666666 100%)',
                    // 'background_color' => '#000',
                    // 'background_color_hover' => '#0088cd'
                ]
            ],
            'items' => [
                
                [
                    'url' =>'#',
                    'icon' =>'glyphicon-list-alt'
                ],
                [
                    'url' =>'/',
                    'icon' =>'glyphicon-home'
                ],
                [
                    'url' =>'#editar',
                    'icon' =>'glyphicon-pencil'
                ],
                // [
                //     'url' =>'#enviar',
                //     'icon' =>'glyphicon-send'
                // ],
                [
                    'url' =>'#table',
                    'icon' =>'glyphicon-duplicate'
                ]
                ,
                [
                    'url' =>'#aceptar',
                    'icon' =>'glyphicon-phone'
                ]
            ]
            ]);?>

↧

[news] ApiDoc extension version 2.1.2 released

$
0
0

We are very pleased to announce the release of the ApiDoc extension version 2.1.2.

This release upgrades highlight.js dependency to 9.13.1 and fixes multiple TOC rendering in ApiMarkdown.

See the CHANGELOG for a full list of changes.

↧
↧

[extension] razonyang/yii2-uploader

$
0
0

Yii2 Uploader ΒΆ

  1. Installation
  2. Usage

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads LICENSE

Installation ΒΆ

composer require razonyang/yii2-uploader

Usage ΒΆ

Configuration:

return [
    'components' => [
        'uploader' => [
            'class' => \RazonYang\Yii2\Uploader\Uploader::class,
            'host' => 'http://localhost/resources', // the hostname relative to your uploaded files
            'filesystem' => [
                // filesystem 
                'class' => \creocoder\flysystem\LocalFilesystem::class,
                'path' => '@webroot/resources',
            ],
        ],
    ],
];

And then defines a form, UploadForm

class UploadForm extends \yii\base\Model
{
    use \RazonYang\Yii2\Uploader\UploadModelTrait;

    public function handle()
    {
        if (!$this->validate()) {
            // handles error
            throw new \Exception('invalid file');
        }

        $url = $this->upload();
        return [
            'url' => $url,
            // ... other information
        ];
    }
}

class UploadController extends \yii\web\Controller
{
    public function actionUpload()
    {
        $form = new UploadForm([
            'file' => \yii\web\UploadedFile::getInstanceByName('file')
        ]);
        return $form->handle();
    }
}
↧

[extension] razonyang/yii2-app-template

$
0
0
  1. Yii2 App Template
  2. DEMO
  3. DOCUMENTATION
  4. DIRECTORY STRUCTURE
  5. Credit

Yii2 App Template ΒΆ

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads LICENSE

Yii2 App Project Template is a skeleton Yii 2 application best for developing complex web applications with multiple tiers.

There is a Yii2 Vue Admin for building a back end application.

DEMO ΒΆ

DOCUMENTATION ΒΆ

DIRECTORY STRUCTURE ΒΆ

app
    Console/             
        Controller/              contains console controller classes
        Model/                   contains console model classes
        Job/                     contains console job classes
    Exception/                   contains exception classes
    Form/                        contains form classes
    Http/
       Api/
           Backend/              contains back end API classes
           Frontend/             contains front end API classes
       Asset/                    contains web assets such as JavaScript and CSS
       Controller/               contains web controller classes
       Filter/                   contains web filters
       Form/                     contains web form classes
       Model/                    contains web model classes
       Module/                   contains web modules
       Widget/                   contains web widgets
    Job/                         contains web job classes
    Model/                       contains model classes
    Rbac/
        Rule/
    Validator/                   contains validators
bin/                             contains scripts
conf/                            contains conf files, such as crond job, systemd service unit etc
config/                          contains all of app configurations
public/                          contains the entry script and web resources
resources
    environments/                contains environment-based overrides
    mail/                        contains view files for e-mails
    messages/                    contains I18N emssages
    migrations/                  contains database migrations
    views/                       contains view files for the Web application
tests/                           contains tests    
vendor/                          contains dependent 3rd-party packages

Credit ΒΆ

It is a fork of Yii2 Advanced Template

↧

[extension] razonyang/yii2-rate-limiter

$
0
0

Yii2 Rate Limiter ΒΆ

  1. Backends
  2. Installation
  3. Usage

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads LICENSE

Backends ΒΆ

Installation ΒΆ

composer require razonyang/yii2-rate-limiter

Usage ΒΆ

Let's take 5000 requests every hours as example:

return [
    public function behaviors()
    {
        return [
            // redis via redis extension
            'rateLimiter' => [
                'class' => \RazonYang\Yii2\RateLimiter\RedisRateLimiter::class,
                'password' => '',
                'hostname' => 'localhost',
                'port' => 6379,
                'capacity' => 5000,
                'rate' => 0.72,
                'limitPeriod' => 3600,
                'prefix' => 'rate_limiter:',
                'ttl' => 3600,
                // 'nameCallback' => $callback,
            ],
            // redis via yii2-redis
            'rateLimiter' => [
                'class' => \RazonYang\Yii2\RateLimiter\Redis\RateLimiter::class,
                'redis' => 'redis', // redis component name or definition
                'capacity' => 5000,
                'rate' => 0.72,
                'limitPeriod' => 3600,
                'prefix' => 'rate_limiter:',
                'ttl' => 3600,
                // 'nameCallback' => $callback,
            ],

            // memcached
            'rateLimiter' => [
                'class' => \RazonYang\Yii2\RateLimiter\MemcachedRateLimiter::class,
                'hostname' => 'localhost',
                'port' => 11211,
                'capacity' => 5000,
                'rate' => 0.72,
                'limitPeriod' => 3600,
                'prefix' => 'rate_limiter:',
                'ttl' => 3600,
                // 'nameCallback' => $callback,
            ],
        ];
    }
];

RateLimiter takes uid:route(authorized) or ip:route(guest) as bucket name, you can also change this behavior via nameCallback:

$nameCallback = function (
    \yii\web\User $user,
    \yii\web\Request $request,
    \yii\base\Action $action
): string {
    return 'bucket name';
}
↧

[extension] slavkovrn/yii2-jsoneditor

$
0
0

JsonEditor widget for Yii2 Framework uses Json Editor plugin for jQuery ΒΆ

  1. Installation
  2. Usage

JsonEditor widget demo page

The extension uses Json Editor plugin by Author Jadesoul http://jadesoul.org for jQuery and makes user interface for changing json values.

JsonEditor widget

Installation ΒΆ

The preferred way to install this extension is through composer.

Either run:

composer require slavkovrn/yii2-jsoneditor

or add

"slavkovrn/yii2-jsoneditor": "*"

to the require section of your composer.json file.

Usage ΒΆ

Set link to extension in your view:

<?php
use slavkovrn\jsoneditor\JsonEditorWidget;
use yii\widgets\ActiveForm;
use yii\helpers\Html;
?>
    <?php $ form = ActiveForm::begin(); ?>

    <?= $form->field($model, 'username')->widget(JsonEditorWidget::class,[
        'rootNodeName' => 'root1',
    ]) ?>

    <?= $form->field($model, 'email')->widget(JsonEditorWidget::class,[
        'rootNodeName' => 'root2',
    ]) ?>

    <div class="form-group">
        <?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
    </div>

    <?php ActiveForm::end(); ?>​

write comments to admin

↧
↧

[extension] alles

$
0
0
  1. Requirements
  2. Installation
  3. Usage
  4. Resources

...overview of the extension...

Requirements ΒΆ

...requirements of using this extension (e.g. Yii 2.0 or above)...

Installation ΒΆ

...how to install the extension (e.g. composer install extensionname)...

Usage ΒΆ

...how to use this extension...

...can use code blocks like the following...

$model=new User;
$model->save();

Resources ΒΆ

DELETE THIS SECTION IF YOU DO NOT HAVE IT

...external resources for this extension...

  • [Project page](URL to your project page)
  • [Try out a demo](URL to your project demo page)

  • ---------------------------------------------------------------------------- "THE BEER-WARE LICENSE" (Revision 42): phk@FreeBSD.ORG wrote this file. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return Poul-Henning Kamp ---------------------------------------------------------------------------- /

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GAT/CS d- s+: a C++ UB++++++ P--- L- E- W++ N+ o K- w--- O- M V-- PS++
PE- Y PGP++ t-- 5- X R tv-- b+++ DI++++ D--- G e h---- r+++ y+++
------END GEEK CODE BLOCK------
↧

[extension] nterms/yii2-mailqueue

$
0
0

yii2-mailqueue ΒΆ

  1. Installation
  2. Configuration
  3. Updating database schema
  4. Processing the mail queue
  5. Setting the CRON job
  6. Usage
  7. License

Email queue component for yii2 that works with yii2-swiftmailer

Installation ΒΆ

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist nterms/yii2-mailqueue "*"

or add

"nterms/yii2-mailqueue": "*"

to the require section of your composer.json file.

Configuration ΒΆ

Once the extension is installed, add following code to your application configuration :

return [
    //....
    'components' => [
        'mailqueue' => [
            'class' => 'nterms\mailqueue\MailQueue',
			'table' => '{{%mail_queue}}',
			'mailsPerRound' => 10,
			'maxAttempts' => 3,
        ],
    ],
];

Following properties are available for customizing the mail queue behavior.

  • table: Name of the database table to store emails added to the queue.
  • mailsPerRound: Number of emails to send at a time.
  • maxAttempts: Maximum number of sending attempts per email.

Updating database schema ΒΆ

Apply the database migration to create the table required to store the mail queue messages. To do this, add following code to /config/console.php:

return [
    //....
    'components' => [
        'mailqueue' => [
            'class' => 'nterms\mailqueue\MailQueue',
			'table' => '{{%mail_queue}}',
        ],
    ],
];

then run yii migrate command in command line:

php yii migrate/up --migrationPath=@vendor/nterms/yii2-mailqueue/migrations/

Processing the mail queue ΒΆ

Now calling process() on Yii::$app->mailqueue will process the message queue and send out the emails. In one of your controller actions:


public function actionSend()
{
	Yii::$app->mailqueue->process();
}

Most preferably this could be a console command (eg: mail/send) which can be triggered by a CRON job.

Setting the CRON job ΒΆ

Set a CRON job to run console command:


*/10 * * * * php /var/www/html/myapp/yii mailqueue/process

Usage ΒΆ

You can then send an email to the queue as follows:

Yii::$app->mailqueue->compose('contact/html')
     ->setFrom('from@domain.com')
     ->setTo($form->email)
     ->setSubject($form->subject)
     ->setTextBody($form->body)
     ->queue();

While nterms\mailqueue\MailQueue extends from yii\swiftmailer\Mailer, you can replace it with this extension by adding yii2-swiftmailer configuations directly to mailqueue configurations as follows:

return [
    //....
    'components' => [
        'mailqueue' => [
            'class' => 'nterms\mailqueue\MailQueue',
			'table' => '{{%mail_queue}}',
			'mailsPerRound' => 10,
			'maxAttempts' => 3,
			'transport' => [
				'class' => 'Swift_SmtpTransport',
				'host' => 'localhost',
				'username' => 'username',
				'password' => 'password',
				'port' => '587',
				'encryption' => 'tls',
			],
        ],
    ],
];

And use following code for directly sending emails as you ususally do with yii2-swiftmailer:

Yii::$app->mailqueue->compose('contact/html')
     ->setFrom('from@domain.com')
     ->setTo($form->email)
     ->setSubject($form->subject)
     ->setTextBody($form->body)
     ->send();

License ΒΆ

MIT

↧

[news] Yii 2.0.26

$
0
0

We are very pleased to announce the release of Yii Framework version 2.0.26. Please refer to the instructions at https://www.yiiframework.com/download/ to install or upgrade to this version.

Version 2.0.26 is a minor release of Yii 2.0. This release includes bug fixes accumulated since last release.

Thanks to all Yii community members who contribute to the framework, translators who keep documentation translations up to date and community members who answer questions at forums.

There are many active Yii communities so if you need help or want to share your experience, feel free to join them.

A complete list of changes can be found in the CHANGELOG.

↧

[extension] dmitrybtn/yii2-yimp

$
0
0

YIMP - ПанСль управлСния для Yii 2 Π½Π° Bootstrap 4 ΒΆ

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ ΒΆ

YIMP - это панСль управлСния, прСдназначСнная для быстрого создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

YIMP прСдоставляСт Π»Π΅ΠΉΠ°ΡƒΡ‚, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ страницы, Ρ…Π»Π΅Π±Π½Ρ‹Π΅ ΠΊΡ€ΠΎΡˆΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€ΠΈ мСню - Π²Π΅Ρ€Ρ…Π½Π΅Π΅, Π»Π΅Π²ΠΎΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ΅. Π­Ρ‚ΠΈ свойства Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Π»Π΅ΠΉΠ°ΡƒΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс Navigator.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки: Live demo, API documentation.

Установка Ρ‡Π΅Ρ€Π΅Π· Composer ΒΆ

Π’ настоящСС врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅Ρ‰Π΅ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°. Π Π΅Π»ΠΈΠ· вСрсии 0.1 Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° 10 сСнтября 2019 Π³ΠΎΠ΄Π°. ВСрсия 1.0 Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΉΡ‚ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° сСнтября 2019 Π³ΠΎΠ΄Π°. Если Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ YIMP, установитС Ρ‡Π΅Ρ€Π΅Π· Composer Π²Π΅Ρ€ΡΠΈΡŽ dev-master. Для этого:

запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

php composer.phar require dmitrybtn/yii2-yimp:dev-master

ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅

"dmitrybtn/yii2-yimp": "dev-master"

Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ require вашСго composer.json.

Быстрый старт ΒΆ
ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π»Π΅ΠΉΠ°ΡƒΡ‚Π° ΒΆ

Π›Π΅ΠΉΠ°ΡƒΡ‚ хранится Π² ΠΏΠ°ΠΏΠΊΠ΅ vendor/dmitrybtn/yii2-yimp/views/layout. Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π»Π΅ΠΉΠ°ΡƒΡ‚Π° рСкомСндуСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… прилоТСниях ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»Π΅ΠΉΠ°ΡƒΡ‚ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°, для этого Π² настройках прилоТСния Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ:

'layout' => '@dmitrybtn/yimp/views/layout',
ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π° ΒΆ

Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ класс, унаслСдованный ΠΎΡ‚ \dmitrybtn\yimp\Navigator. Π­Ρ‚ΠΎΡ‚ класс Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², мСню ΠΈ Ρ…Π»Π΅Π±Π½Ρ‹Ρ… ΠΊΡ€ΠΎΡˆΠ΅ΠΊ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π² Π»Π΅ΠΉΠ°ΡƒΡ‚. ΠŸΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ класса рСкомСндуСтся Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π»Π΅Π²ΠΎΠ΅ мСню, Π²Π΅Π΄ΡƒΡ‰Π΅Π΅ Π² основныС Π²Π΅Ρ‚ΠΊΠΈ прилоТСния. НапримСр, Ρ‚Π°ΠΊ:

namespace app\components;

class Navigator extends \dmitrybtn\yimp\Navigator
{
    public function init()
    {
        parent::init();

        $this->menuLeft = [
            ['label' => 'Main menu'],
            ['label' => 'About', 'url' => ['/site/about']],
        ];
    }
}

Π’ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свойство nav, ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса Navigator. Π’ дСйствиях ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ поля свойства nav, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ, мСню ΠΈ Ρ…Π»Π΅Π±Π½Ρ‹ΠΌ ΠΊΡ€ΠΎΡˆΠΊΠ°ΠΌ. НапримСр, Ρ‚Π°ΠΊ:

class SiteController extends \yii\web\Controller
{
    public $nav;

    public function init()
    {
        parent::init();

        $this->nav = new Navigator();
    }

    public function actionAbout()
    {
        $this->nav->title = 'About';

        return $this->render('about');
    }

    ...
}
ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Gii ΒΆ

Π’ состав YIMP входят ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для CRUD ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². Для ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² настройках прилоТСния Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ:

    'modules' => [
        ...
        'gii' => [
             'class' => 'yii\gii\Module',
             'allowedIPs' => ['127.0.0.1', '::1'],
             'generators' => [
                 'crud' => [
                     'class' => 'yii\gii\generators\crud\Generator',
                     'templates' => [
                         'yimp' => '@dmitrybtn/yimp/gii/crud'
                     ]
                 ],
                 'controller' => [
                     'class' => 'yii\gii\generators\controller\Generator',
                     'templates' => [
                         'yimp' => '@dmitrybtn/yimp/gii/controller'
                     ]
                 ]
             ],
        ...
    ]
ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ErrorAction ΒΆ

Π’ состав YIMP Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ErrorAction, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ согласно Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° Yii.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΒΆ

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π° рСкомСндуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс для всСх ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΌ свойство nav. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ рСкомСндуСтся Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ.

Π›Π΅Π²ΠΎΠ΅ мСню рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π³Π»Π°Π²Π½ΠΎΠ΅ мСню прилоТСния. Π’Π΅Ρ€Ρ…Π½Π΅Π΅ мСню - для ΠΎΠΏΡ†ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π»ΠΎΠ³ΠΈΠ½, Π»ΠΎΠ³Π°ΡƒΡ‚, настройки профиля). ΠŸΡ€Π°Π²ΠΎΠ΅ мСню - для ΠΎΠΏΡ†ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ дСйствия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для дСйствия View Ρ‚Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Update ΠΈ Delete). Π›Π΅Π²ΠΎΠ΅ ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅Π΅ мСню рСкомСндуСтся Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² вашСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса Navigator, Π° ΠΏΡ€Π°Π²ΠΎΠ΅ мСню - Π² ΠΊΠΎΠ΄Π΅ дСйствий.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ дСйствий ΠΈ Ρ…Π»Π΅Π±Π½Ρ‹Π΅ ΠΊΡ€ΠΎΡˆΠΊΠΈ рСкомСндуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². НапримСр, Ρ‚Π°ΠΊ:

class OrderController extends \yii\web\Controller
{
    public $nav;

    public function init()
    {
        parent::init();

        $this->nav = new Navigator();
    }

    public static function titleIndex()
    {
        return 'Π—Π°ΠΊΠ°Π·Ρ‹';
    }

    public static function titleView($order)
    {
        return 'Π—Π°ΠΊΠ°Π· β„– ' . $order->id;
    }

    public static function crumbsToIndex()
    {
        return [
            ['label' => static::titleIndex(), 'url' => ['index']]
        ];
    }

    public function actionIndex()
    {
        ...
        
        $this->nav->title = static::titleIndex();

        ...
    }

    public function actionView()
    {
        ...
        
        $this->nav->title = static::titleView();        
        $this->nav->crumbs = static::crumbsToIndex();

        ...
    }

}

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ класс OrderController ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π·Π°ΠΊΠ°Π·Ρ‹. ДСйствиС order/index Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ "Π—Π°ΠΊΠ°Π·Ρ‹". ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ слово "Π—Π°ΠΊΠ°Π·Ρ‹" Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ…Π»Π΅Π±Π½Ρ‹Ρ… ΠΊΡ€ΠΎΡˆΠ΅ΠΊ для Π΄Ρ€ΡƒΠ³ΠΈΡ… дСйствий. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, это слово ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· любого мСста прилоТСния, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ OrderController::titleIndex().

Аналогично с Ρ…Π»Π΅Π±Π½Ρ‹ΠΌΠΈ ΠΊΡ€ΠΎΡˆΠΊΠ°ΠΌΠΈ. НапримСр, Ссли появляСтся класс ItemController, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ Π² Π·Π°ΠΊΠ°Π·Π΅, Ρ‚ΠΎ дСйствиС item/create ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ…Π»Π΅Π±Π½Ρ‹Π΅ ΠΊΡ€ΠΎΡˆΠΊΠΈ "Главная / Π—Π°ΠΊΠ°Π·Ρ‹ / Π—Π°ΠΊΠ°Π· β„– 1 / Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€". Для формирования Ρ‚Π°ΠΊΠΈΡ… Ρ…Π»Π΅Π±Π½Ρ‹Ρ… ΠΊΡ€ΠΎΡˆΠ΅ΠΊ Π² классС ItemController достаточно Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ $this->nav->crumbs = OrderController::crumbsToView($item->order).

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… Gii, входящих Π² состав YIMP.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΒΆ
Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΒΆ

Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ мСсто Π² Ρ„ΡƒΡ‚Π΅Ρ€Π΅ ΠΈ Π±ΠΎΠΊΠΎΠ²Ρ‹Ρ… панСлях ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ вывСсти Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ дСйствия, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² прСдставлСнии для этого дСйствия ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊ:

<?php $this->beginBlock(Yimp::SIDEBAR_RIGHT); ?>
    <div class="border rounded p-3 mt-3">
        <div class="h5">Caption</div>
        Your widget HTML
    </div>
<?php $this->endBlock(); ?>

Для использования Π±Π»ΠΎΠΊΠΎΠ² Π² YIMP ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ константы Yimp::SIDEBAR_LEFT, Yimp::SIDEBAR_RIGHT, Yimp::FOOTER.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π±ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ с Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… экранах (xl). Для ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… экранов рСкомСндуСтся ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ это сдСлано Π² Ρ„ΠΎΡ€ΠΌΠ΅.

Иконки ¢

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Bootstrap 4 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠΊΠΎΠ½ΠΊΠΈ, Π² YIMP ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΎΡ‚ FontAwesome. Они ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ рСгистрации рСсурсов YIMP, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ согласно Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ FontAwesome.

МСню ¢

Для настройки Π»Π΅Π²ΠΎΠ³ΠΎ, ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ мСню ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ свойства Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π° menuLeft, menuRight ΠΈ menuTop. Π’ этих свойствах Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ настройки для свойства items ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° yiisoft/bootstrap4/Nav, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ:

    public function actionIndex()
    {
        ... 

        $this->nav->menuRight = [
            ['label' => 'Options'],
            ['label' => static::titleCreate(), 'url' => ['create']],
        ];

        ...
    }

Помимо извСстных настроСк, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ настройки:

  • active: Π’ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ bool. Π’ YIMP ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строку, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ маскС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°. НапримСр, Ссли для Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ 'active' => 'order/*', ΠΏΡƒΠ½ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ для любого дСйствия ΠΈΠ· OrderController. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ см. MenuAdapter, RouteHelper.
  • visibleMode: YIMP Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ мСню Π΄Π²Π°ΠΆΠ΄Ρ‹ - для дСсктопов ΠΈ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ вывСсти элСмСнт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° устройств, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ здСсь Yimp::DESKTOP ΠΈΠ»ΠΈ YIMP::MOBILE. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ эта настройка Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ связана с CSS.
Бтилизация ΒΆ

YIMP написан с расчСтом Π½Π° максимальноС использованиС возмоТностСй Bootstrap 4. ВсС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ классами Bootstrap 4, сдСлано ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, для части элСмСнтов ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ собствСнныС стили, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Bootstrap 4 Π² основном для опрСдСлСния Ρ†Π²Π΅Ρ‚ΠΎΠ². Π‘Ρ‚ΠΈΠ»ΠΈ Yimp хранятся Π² Ρ„Π°ΠΉΠ»Π΅ vendor\dmitrybtn\yii2-yimp\assets\css\yimp.scss.

Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ стилСй, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ стили Bootstrap ΠΈ стили Yimp, ΡƒΠΊΠ°Π·Π°Π² Π² настройках прилоТСния:

    'assetManager' => [
        'bundles' => [
            'yii\bootstrap4\BootstrapAsset' => [
                'css' => [],
            ],
            'dmitrybtn\yimp\Asset' => [
                'css' => [],
            ]
        ]
    ]
↧
↧

[extension] shahimian/yii2-dategj

$
0
0

Date GJ ΒΆ

  1. Installation
  2. Usage
  3. Method Details

it convert Gregorian date to Jalali calendar one.

Installation ΒΆ

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist shahimian/yii2-dategj "*"

or add

"shahimian/yii2-dategj": "*"

to the require section of your composer.json file.

Usage ΒΆ

Once the extension is installed, simply use it in your code by normally:

<?= $dt = \Yii::createObject([
    'class' => \shahimian\dategj\DateGJ::className(),
    'datetime' => '2019-09-08 11:56', /* format YYYY-MM-DD HH:MM */
]); ?>

You can set another value in $dt->datetime later if you want.

Method Details ΒΆ

You use various methods in this class presented in list below:

public string gj()

gets $dt->datetime it formats YYYY-MM-DD HH:MM as Gregorian date and converting that same format as Jalali date.

public Array convertor()

gets argument with upper format and converting as array. it contains 3 cells for year, month and day.

public integer month()

gets argument and returning month number.

public string month_name($month : integer)

gets month number and returning month name as farsi language.

public string full_date()

return full date contains year, month and day as farsi language.

public string weekday()

return a day of the week as farsi language.

↧

[extension] solutosoft/yii-audit-record

$
0
0

Yii Audit Record ΒΆ

This extension provides support for store active record changes for Yii2.

Build Status Scrutinizer Code Quality Code Coverage Total Downloads Latest Stable Version

Installation ΒΆ

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist solutosoft/yii-audit-record

or add

"solutosoft/yii-audit-record": "*"
↧

[extension] execut/yii2-javascript-handler

$
0
0

yii2-javascript-handler ΒΆ

Javascript error handler for Yii2

Install ΒΆ

Either run

$ php composer.phar require execut/yii2-javascript-handler "dev-master"

or add

"execut/yii2-javascript-handler": "dev-master"

to the `require` section of your composer.json file.

Configuration ΒΆ

Add module inside web application config: `php return [

'modules' => [
    'javascriptHandler' => [
        'class' => Module::class,
    ]
],

]; `

Render widget inside your application layout: `php echo \execut\javascriptHandler\JavascriptHandlerWidget::widget(); `

As a result, all javascript exceptions will throw php exceptions, that will be handled via yii2 error handler

↧
Viewing all 2941 articles
Browse latest View live