Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 113 комментариев

Ivan
Ivan
В общем это решение мне не нравится, но оно работает
switch ($modx->event->name) {
    case "OnMODXInit":
        $fields = [
            'ur' => 0,
            'orgname' => '',
            'inn' => '',    
        ];
        
        $fieldsMeta = [
            'ur' => array(
                'dbtype' => 'tinyint',
                'precision' => '1',
                'phptype' => 'boolean',
                'attributes' => 'unsigned',
                'null' => false,
                'default' => 0,
            ),
            'orgname' => array(
                'dbtype' => 'varchar',
                'precision' => '255',
                'phptype' => 'string',
                'null' => false,
            ),
            'inn' => array(
                'dbtype' => 'varchar',
                'precision' => '255',
                'phptype' => 'string',
                'null' => false,
            ),
        ];
        
        $modx->map['modUser']['fields'] = array_merge($modx->map['modUser']['fields'], $fields);
        $modx->map['modUser']['fieldMeta'] = array_merge($modx->map['modUser']['fieldMeta'], $fieldsMeta);
            
        if ($modx->user->get('id') > 0) {
            if ($user = $modx->getObject('modUser', $modx->user->get('id'))) {
                $modx->user->set('orgname', $user->get('orgname'));
                $modx->user->set('ur', $user->get('ur'));
                $modx->user->set('inn', $user->get('inn'));
            }
        }
        break;
}