PHP code example of davidxu / yii2-adminlte4

1. Go to this page and download the library: Download davidxu/yii2-adminlte4 library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

davidxu / yii2-adminlte4 example snippets


'components' => [
    'view' => [
         'theme' => [
             'pathMap' => [
                '@app/views' => '@vendor/davidxu/yii2-adminlte4/src/views'
             ],
         ],
    ],
],

<?= \davidxu\adminlte4\widgets\Alert::widget([
    'type' => 'success',
    'body' => '<h3>Congratulations!</h3>'
]) 

class BaseController extends \davidxu\adminlte4\controllers\BaseController
{
    /**
     * @return void
     */
    public function init(): void
    {
        parent::init();
    }
}


use backend\models\Article;
use davidxu\adminlte4\enums\StatusEnum;
use davidxu\adminlte4\helpers\ActionHelper;
use davidxu\adminlte4\widgets\SweetAlert2;
use yii\data\ActiveDataProvider;
use yii\db\ActiveRecordInterface;
use yii\web\BadRequestHttpException;
use yii\base\ExitException;
use Exception;

class ArticleController extends \davidxu\adminlte4\controllers\BaseController
{
    public ActiveRecordInterface|string|null $modelClass = Article::class;
    /**
     * @return array
     */
    public function actions(): array
    {
        $actions = parent::actions();
        unset($actions['ajax-edit'], $actions['edit']);
        return $actions;
    }
    
    /**
     * Lists all Article models.
     *
     * @return string
     */
    public function actionIndex(): string
    {
        $dataProvider = new ActiveDataProvider([
            'query' => $this->modelClass::find(),
            'sort' => [
                'defaultOrder' => [
                    'order' => SORT_ASC,
                ]
            ],
        ]);

        return $this->render('index', [
            'dataProvider' => $dataProvider,
        ]);
    }
    
    /**
     * @throws BadRequestHttpException|ExitException|Exception
     */
    public function actionAjaxEdit()
    {
        $id = Yii::$app->request->get('id', 0);
        $model = $this->findModel($id, $this->modelClass);
        ActionHelper::activeFormValidate($model);
        if ($model->load(Yii::$app->request->post())) {
            if ($model->save()) {
                return ActionHelper::message(Yii::t('app', 'Saved successfully'),
                    $this->redirect(Yii::$app->request->referrer));
            }
            return ActionHelper::message(ActionHelper::getError($model),
                $this->redirect(Yii::$app->request->referrer), SweetAlert2::TYPE_ERROR);
        }

        return $this->renderAjax($this->action->id, [
            'model' => $model,
        ]);
    }
    
    /**
     * @return mixed
     * @throws BadRequestHttpException
     * @throws Exception
     */
    public function actionEdit(): mixed
    {
        $id = Yii::$app->request->get('id', 0);
        $model = $this->findModel($id, $this->modelClass);
        if ($model->load(Yii::$app->request->post())) {
            if ($model->save()) {
                return ActionHelper::message(Yii::t('app', 'Saved successfully'),
                    $this->redirect(Yii::$app->request->referrer));
            }
            return ActionHelper::message(ActionHelper::getError($model),
                $this->redirect(Yii::$app->request->referrer), SweetAlert2::TYPE_ERROR);
        }
        return $this->render($this->action->id, [
            'model' => $model,
        ]);
    }
}

// article index


use backend\models\Article;
use common\enums\CategoryTypeEnum;
use davidxu\adminlte4\enums\ModalSizeEnum;
use davidxu\adminlte4\enums\StatusEnum;
use yii\data\ActiveDataProvider;
use davidxu\adminlte4\yii\grid\ActionColumn;
use yii\grid\GridView;
use yii\widgets\Pjax;
use davidxu\adminlte4\helpers\HtmlHelper;

/**
 * @var $dataProvider ActiveDataProvider
 */

$this->title = Yii::t('app', 'Content management');
$this->params['breadcrumbs'][] = $this->title;

// article ajax-edit


use backend\models\Category;
use yii\base\InvalidConfigException;
use yii\bootstrap5\ActiveForm;
use yii\helpers\Url;
use yii\web\View;
use yii\helpers\Html;

/**
 * @var $this View
 * @var $model Category
 * @var $form ActiveForm
 */

try {
    $form = ActiveForm::begin([
        'id' => $model->formName(),
        'enableAjaxValidation' => true,
        'options' => [
            'class' => 'form-horizontal',
        ],
        'validationUrl' => Url::to(['ajax-edit', 'id' => $model->primaryKey]),
        'fieldConfig' => [
            'options' => ['class' => 'form-group row mb-2'],
            'template' => "<div class='col-sm-2 text-end'>{label}</div>"
                . "<div class='col-sm-10'>{input}\n{hint}\n{error}</div>",
        ]
    ]);