Library of the helpfull functions for MODX as composer package
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

MODX Helpers

Functions-helpers for MODX. It's made as composer package. Depricated. See modHelpers.


  • Create a plugin which loads composer files.
switch ($modx->event->name) {
    case 'OnMODXInit':
        $file = MODX_CORE_PATH . 'vendor/autoload.php';

        if (file_exists($file)) {
            require_once $file;
  • Put the composer.json to the core folder
  "repositories": [
      "type": "vcs",
      "url": ""
  "minimum-stability": "dev",
  "require": {
    "sergant210/modxhelpers": "1.*"
  • Use a terminal tool and run composer install or php composer.phar install within the folder core.

That's all. Now you can use the functions.


Check the user exists

if (user_exists(['email'=>'']) {
    // Exists

Get the data from the cache

$value = cache('key', 'my_data');
// Or 
$value = cache()->get('key', 'my_data');

Send an email

email('', 'Subject','Email content');
// To the user
email_user('admin', $subject, $content);


//To the resource with the id = 5

The latest resource

$resourceObject = resource()->last(); // Resource object
$resourceArray = resource()->last()->toArray(); // Resource data as array

The last 10 resources

$resObjects = resources()->last(10); 

Array of the resource pagetitles of the parent with the id = 20.

$titles= resources()->where(['parent'=>20])->get('pagetitle'); // array('pagetitle 1', 'pagetitle 2', 'pagetitle 3')

Set a value to the session

session('key1.key2', 'value'); // => $_SESSION['key1']['key2'] = $value;

Get the value from session

$value = session('key1.key2');  // $value = $_SESSION['key1']['key2']

Validates the email

if (is_email($_POST['email'])) {
   // Valid

Remove child resources of the one with the id = 10


Count blocked users

$count = users()->profile()->where(['Profile.blocked'=>1])->count();

Load script with the async attribute

script('/path/to/script.js', 'async'); // <script async type="text/javascript" src="/path/to/script.js"></script>

Get an array of users

// Can use the prepared query
$userArray = query('select * from ' . table_name('modUser'). ' WHERE id < ?')->execute(( (int) $_POST['user_id']);

Log error to the error log

log_error($array); // Convert the array to string using print_r().
log_error($message, 'HTML'); // Show message on the page.

Get the list of the pagetitles

return resources()->where(['id:IN'=>children(5)])->each(function($resource, $idx){ return "<li>{$idx}. ".$resource['pagetitle']."</li>";});

Get all users which are members of the "Manager" group

$usersArray = users()->members('Managers')->toArray();
# Get all users from "ContentManagers" and "SaleManagers" groups 
$users = users()->members('%Managers')->get();
foreach($users as $user) {
  echo $user->username;

Russian documentation
English documentation