PHPackages                             jjkkopq/configx - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. jjkkopq/configx

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jjkkopq/configx
===============

laravel-admin extension configx

1.3.11(5y ago)013MITPHPPHP &gt;=7.0.0

Since Dec 9Pushed 5y agoCompare

[ Source](https://github.com/jjkkopq/configx)[ Packagist](https://packagist.org/packages/jjkkopq/configx)[ Docs](https://github.com/ichynul/configx)[ RSS](/packages/jjkkopq-configx/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (4)Versions (66)Used By (0)

laravel-admin configx
=====================

[](#laravel-admin-configx)

Installation
------------

[](#installation)

need to install laravel-admin-ext/config first, see

Then run :

```
$ composer require jjkkopq/configx

```

Then run:

```
$ php artisan admin:import configx

```

Add a tabs config in `config/admin.php`:

```
    'extensions' => [
        'configx' => [
            // Set to `false` if you want to disable this extension
            'enable' => true,
            'tabs' => [
                'base' => '基本设置',
                'shop' => '店铺设置',
                'uplaod' => '上传设置',
                'image' => '' // if tab name is empty, get from trans : trans('admin.configx.tabs.image'); tab名称留空则从翻译中获取
            ],
            // Whether check group permissions.
            //if (!Admin::user()->can('confix.tab.base')) {/*hide base tab*/ } .
            'check_permission' => false
        ],
    ],
```

Usage
-----

[](#usage)

Open `http://your-host/admin/configx/edit`

Demo
----

[](#demo)

You can click "+" to config tabs :

add an new config key

step 1 Select config type from `['base']`

step 2 Select form-element type from `['normal', 'date', 'time', 'datetime', 'image', 'yes_or_no', 'number', 'rate', 'editor', 'radio_group' ,'checkbox_group', 'select']`... and so on

step 3 If you selected form-element type is `['radio_group' ,'checkbox_group', 'select']` ,you need inupt `[options]` :

just text:

```
text1
text2
...
```

and key-text:

```
key1 : text1
key2 : text2
...
```

or load from ulr:

`options_url:/api/mydata`

If you selected form-element type is `textarea` , you can config it `rows:3` , default is 5.

If you selected form-element type is `table`, `rows / cols` is needed :

`base.some_key`

```
rows: 4
cols: 4

```

This wiil build a table like below :

```
/*
|-------------------------------------------------------------------------------------
|  r_label\ c_labe |       c_label1      |        c_label2     |      c_label3       |  ⬅Col labels
|-------------------------------------------------------------------------------------
|     r_label1     |  base.some_key_1_1  |  base.some_key_1_2  |  base.some_key_1_3  |
|-------------------------------------------------------------------------------------
|     r_label2     |  base.some_key_2_1  |  base.some_key_2_2  |  base.some_key_2_3  |
|-------------------------------------------------------------------------------------
|     r_label3     |  base.some_key_3_1  |  base.some_key_3_2  |  base.some_key_3_3  |
|-------------------------------------------------------------------------------------
        ↑
    Row labels

You can edit labels as you want.

Each  has a key , base.some_key_[0]_[0] to base.some_key_[rows-1]_[cols-1] . (from 0 to length -1 )

So, you can chang a label  to input :

|-------------------------------------------------------------------------------------
|  r_label\ c_labe |       c_label1      |        c_label2     |  base.some_key_0_3  |  ⬅ [c_label3] change to [base.some_key_0_3]
|-------------------------------------------------------------------------------------     , we can input here .
|     r_label1     |  base.some_key_1_1  |  base.some_key_1_2  |  base.some_key_1_3  |      (可以把label 换成输入元素)
|-------------------------------------------------------------------------------------
|     r_label2     |  base.some_key_2_1  |  base.some_key_2_2  |  base.some_key_2_3  |
|-------------------------------------------------------------------------------------
| trans.sometext   |  base.some_key_3_1  |     hello world!    |  base.some_key_3_3  |
|-------------------------------------------------------------------------------------
          ↑                                           ↑
          ↑                           [base.some_key_3_2] change to [hello world!]
          ↑                              , we can not input here any more ,
          ↑                           it wiil just show label text 'hello world!' .
          ↑                              (也可以把输入元素换成仅显示文字)
          ↑
  get text from trans
trans("admin.configx.base.some_key.sometext")
显示文字时可以从翻译获取文字,样式 `trans.sometext`
其中 sometext 为翻译的key

note : if text = key or text = '' ,render as input form element , otherwise just show the text you leave.

//if text is trans.sometext , get from trans : trans("admin.configx.{$tab}.{$tablekey}.{$sometext}")

总结 : 如果输入的字符串与td默认key一样或输入的字符串为空，这个位置将是一个可输入的表单元素，否则就显示原样你输入的字符串 .

*/
Add a lang config in `resources/lang/{zh-CN}/admin.php`

```php
'configx' => [
        'new_config_type' => '配置类型',
        'new_config_key' => '配置key',
        'new_config_name' => '配置名称',
        'new_config_element' => '配置表单元素',
        'new_config_help' => '配置help',
        'new_config_options' => '配置扩展项',
        'header' => '网站设置',
        'desc' => '网站设置设置',
        'element' => [
           'normal' => '默认',
            'textarea' => '文本域',
            'date' => '日期',
            'time' => '时间',
            'datetime' => '日期时间',
            'password' => '密码'
            'image' => '图片',
            'multiple_image' => '多图',
            'file' => '文件',
            'multiple_file' => '多文件',
            'yes_or_no' => '是或否',
            'editor' => '编辑器',
            'radio_group' => '单选框组',
            'checkbox_group' => '多选框组',
            'number' => '数字',
            'rate' => '比例',
            'select' => '下拉框',
            'tags' => '标签',
            'icon' => '图标',
            'color' => '颜色',
            'table' =>'表格',
            'listbox' => '左右多选框',
            'multiple_select' => '下拉多选',
            'map' => '地图'
        ],
    ],
'yes' => '是',
'no' => '否'
```

if you need add a new config tab, chang it in `config/admin.php`.

After add config in the panel, use `config($key)` to get value you configured.

License

---

Licensed under [The MIT License (MIT)](LICENSE).

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 96.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Recently: every ~59 days

Total

64

Last Release

2074d ago

Major Versions

0.0.9 → 1.0.02019-01-26

### Community

Maintainers

![](https://www.gravatar.com/avatar/9e68b617906b144cabaed64ba9ac49e59923da872f7939c0019c126e7cb92e78?d=identicon)[jjkkopq](/maintainers/jjkkopq)

---

Top Contributors

[![ichynul](https://avatars.githubusercontent.com/u/10061650?v=4)](https://github.com/ichynul "ichynul (123 commits)")[![gai871013](https://avatars.githubusercontent.com/u/3212029?v=4)](https://github.com/gai871013 "gai871013 (2 commits)")[![jjkkopq](https://avatars.githubusercontent.com/u/34591326?v=4)](https://github.com/jjkkopq "jjkkopq (2 commits)")[![wuzhihui819](https://avatars.githubusercontent.com/u/9027099?v=4)](https://github.com/wuzhihui819 "wuzhihui819 (1 commits)")

---

Tags

extensionlaravel-admin

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jjkkopq-configx/health.svg)

```
[![Health](https://phpackages.com/badges/jjkkopq-configx/health.svg)](https://phpackages.com/packages/jjkkopq-configx)
```

###  Alternatives

[laravel-admin-ext/chartjs

Use Chartjs in laravel-admin

102180.6k1](/packages/laravel-admin-ext-chartjs)[laravel-admin-ext/china-distpicker

Distpicker extension for laravel-admin

13443.9k](/packages/laravel-admin-ext-china-distpicker)[laravel-admin-ext/grid-sortable

Sort the grid data by drag and drop rows

42119.3k](/packages/laravel-admin-ext-grid-sortable)[jxlwqq/json-editor

JSON Editor for Laravel-admin

32101.8k](/packages/jxlwqq-json-editor)[jxlwqq/env-manager

Env Manager for Laravel-admin

3719.9k](/packages/jxlwqq-env-manager)[jxlwqq/quill

quill editor for laravel-admin

2427.1k](/packages/jxlwqq-quill)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
