PHPackages                             mmx/users - 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. mmx/users

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

mmx/users
=========

Convenient management of MODX users

1.1.0(1y ago)113MITPHPPHP &gt;=8.1

Since Jun 18Pushed 1y ago1 watchersCompare

[ Source](https://github.com/bezumkin/mmx-users)[ Packagist](https://packagist.org/packages/mmx/users)[ RSS](/packages/mmx-users/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (2)Versions (5)Used By (0)

Users for MODX 3
----------------

[](#users-for-modx-3)

> This extra is part of **MMX** initiative - the **M**odern **M**OD**X** approach.

### Dependencies

[](#dependencies)

This package requires [mmxDatabase](https://packagist.org/packages/mmx/database) to work with MODX database using Eloquent models.

The `mmx/database` dependency will be downloaded automatically by Composer.

### Prepare

[](#prepare)

This package can be installed only with Composer.

If you are still not using Composer with MODX 3, just download the `composer.json` of your version:

```
cd /to/modx/root/
wget https://raw.githubusercontent.com/modxcms/revolution/v3.0.5-pl/composer.json
```

### Install

[](#install)

```
composer require mmx/users --update-no-dev
composer exec mmx-users install
```

### Update

[](#update)

```
composer update mmx/users --no-dev
composer exec mmx-users install
```

### Remove

[](#remove)

```
composer exec mmx-users remove
composer remove mmx/users
```

If you don't want to use mmxDatabase, you can also remove it.

```
composer exec mmx-database remove && composer remove mmx/database
```

### How to use

[](#how-to-use)

Just open **mmxUsers** extra section in MODX manager and enjoy!

### System Settings

[](#system-settings)

You can change the extra grids and forms look and feel with system settings. Please read the description and look into default values.

**Grid** settings

Here you can specify the order and settings for columns.

Available columns are:

- **group-grid-columns**
    - regular UserGroup columns, like `id`, `name`, `description`, `rand`
    - nested options parent UserGroup with the same columns (`id`, `name`, etc...)
    - Special column with group users count: `members_count`
- **user-grid-columns**
    - regular User **and** Profile columns: `id`, `username`, `fullname`, `email`, etc...
    - values from extended fields: `extended.key1`, `extended.key2` and other. Can't be sortable.
    - values from UserSetting table: `setting.key1`, `setting.key2`. Can be sortable!

Supported settings:

- `type` - the type of column, supported are:
    - `boolean` to show yes\\no icons
    - `text` or unset for other values
- `sortable` (true | false) to make column sortable.
- `sort` (true | false) specify this column as sorted by default
- `dir` specify the direction of column sorting (if `sort=true`)

**Tabs** settings

Those are very simple - you just specify wich tabs will be visible.

- **group-tabs-create**
- **group-tabs-edit**
- **user-tabs-create**
- **user-tabse-edit**

See settings description in MODX manager.

**Forms** settings

For now you can customize only users form. I see no point to add this feature for user groups form, but feel free to write me about it.

**user-form-fields-available** - the list of all available fields of form with settings:

- `type`:
    - `text` - just regular text field
    - `email` - here and next the same text field but with specified `type="..."` attribute
    - `password`
    - `url`
    - `tel`
    - `textarea` - you should know what is it, right?
    - `checkbox` - regular checkbox for boolean values
    - `gender` - select with gender variants
    - `image` - this will open MODX browser to pick an uploaded image
    - `country` - select with countries list
    - `select` - select with custom options (don't forget to specify `options:["option1","option2"]` or `options:[{"value":1,"text":"Option 1"},{"value": 2,"text":"Option 2"}]`)
    - `user-password` - special component with changing user password along with confirmation
- `required` (true | false) should this field be required?
- `default` - the default value to set when you are creating the new user

**user-form-fields-user** and **user-form-fields-sudo**

2 system settings for managers with **sudo** permission and without.

Here you can specify the order of existing fields by beauty JSON arrays:

```
[
    ["username", "fullname", ["active", "sudo"]],
    ["email", ["dob", "gender"]]
]
```

You will get 2 column form with nested fields, some of which are also split into 2 columns. On mobile devices it will be 1 column form.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.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 ~21 days

Total

4

Last Release

634d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/022a5cefd3f21223338606065f89cf280b6d9dda930fd9f992c74b42077f70cf?d=identicon)[bezumkin](/maintainers/bezumkin)

---

Top Contributors

[![bezumkin](https://avatars.githubusercontent.com/u/1257284?v=4)](https://github.com/bezumkin "bezumkin (16 commits)")[![gpsietzema](https://avatars.githubusercontent.com/u/381017?v=4)](https://github.com/gpsietzema "gpsietzema (1 commits)")

### Embed Badge

![Health badge](/badges/mmx-users/health.svg)

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

###  Alternatives

[semsol/arc2

ARC2 is a PHP library for working with RDF. It also provides a MySQL-based triplestore with SPARQL support.

334250.0k15](/packages/semsol-arc2)[muqsit/invmenu

A PocketMine-MP virion to create and manage virtual inventories!

2234.2k1](/packages/muqsit-invmenu)[xiyusullos/nullable

chain calls on object whatever the object is null or not

152.2k](/packages/xiyusullos-nullable)

PHPackages © 2026

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