//<?php
$evt = &$modx->Event;
switch($evt->name){
case 'OnWebSaveUser':
if($evt->params['mode']=='new'){
$dir = $modx->config['base_path'].$modx->config['rb_base_dir'].'files/'.$evt->params['username'];
$folder_permissions = octdec($modx->config['new_folder_permissions']);
if(! @mkdir($dir,$folder_permissions) ){
$modx->webAlert("Unable to create user folder!");
}
}
break;
}
//?>[[!Register? &submitVar=`registerbtn` &activation=`0` &usergroups=`partner` &successMsg=`Thanks for registering!` postHooks=`generateUserDirectory` ]]
I want to automatically create a new folder for a user when he is registered via the Login.Register snippet or via MODx Usermanagement.
I found a snippet here(http://modxcms.com/forums/index.php/topic,30114.0.html) but for Evolution.//<?php $evt = &$modx->Event; switch($evt->name){ case 'OnWebSaveUser': if($evt->params['mode']=='new'){ $dir = $modx->config['base_path'].$modx->config['rb_base_dir'].'files/'.$evt->params['username']; $folder_permissions = octdec($modx->config['new_folder_permissions']); if(! @mkdir($dir,$folder_permissions) ){ $modx->webAlert("Unable to create user folder!"); } } break; } //?>
I don´t know all the API functions yet. Still much to learn. Any help appreciated.
Thank you.
$user =& $scriptProperties['register.user'];
$dir = (boolean)$modx->getOption('filemanager_path_relative',null,false) ? $modx->getOption('base_path') : '';
$dir .= $modx->getOption('filemanager_path',null,'').'files/'.$user->get('username');
$folder_permissions = octdec($modx->getOption('new_folder_permissions'));
if (!@mkdir($dir,$folder_permissions)) {
$modx->log(modX::LOG_LEVEL_ERROR,'Could not create user directory: '.$dir);
}
return true;
<?php
if ($modx->event->name == 'OnUserFormSave') {
$username = $_REQUEST['username'];
$dir = (boolean)$modx->getOption('filemanager_path_relative',null,false) ? $modx->getOption('base_path') : '';
$dir .= $modx->getOption('filemanager_path',null,'').'files/'.$username;
$folder_permissions = octdec($modx->getOption('new_folder_permissions'));
if (!@mkdir($dir,$folder_permissions)) {
$modx->log(modX::LOG_LEVEL_ERROR,'Could not create user directory: '.$dir);
}
return true;
}
return;
$userName = $user->get('username'); If ($mode == modSystemEvent::MODE_NEW)
if ($mod->event->name == 'OnUserFormSave')
This would be a better method for getting the username:
$userName = $user->get('username');
Thats great to know.
Though when I wrapped the conditional statement [tt]if ($modx == modSystemEvent::MODE_NEW)[/tt] around the code - it no longer created the folder when adding a new user


if ($mode == modSystemEvent::MODE_NEW) {
}<?php
if ($modx->event->name == 'OnUserFormSave') {
$username = $_REQUEST['username'];
$dir = (boolean)$modx->getOption('filemanager_path_relative',null,false) ? $modx->getOption('base_path') : '';
$dir .= $modx->getOption('filemanager_path',null,'').'files/'.$username;
$folder_permissions = octdec($modx->getOption('new_folder_permissions'));
if (!@mkdir($dir,$folder_permissions)) {
$modx->log(modX::LOG_LEVEL_ERROR,'Could not create user directory: '.$dir);
}
return true;
}
return;
if ($mode == modSystemEvent::MODE_UDP) {
$userName = $user->get('username');
$dir = (boolean)$modx->getOption('filemanager_path_relative',null,false) ? $modx->getOption('base_path') : '';
$dir .= $modx->getOption('filemanager_path',null,'').'files/'.$username;
$folder_permissions = octdec($modx->getOption('new_folder_permissions'));
if (!@mkdir($dir,$folder_permissions)) {
$modx->log(modX::LOG_LEVEL_ERROR,'Konnte Ordner nicht erstellen: '.$dir);
}
return true;
}
return;
i got it now
if ($mode == modSystemEvent::MODE_NEW) {
return true;
}
if ($mode == modSystemEvent::MODE_UPD) {
$userName = $user->get('username');
$dir = (boolean)$modx->getOption('filemanager_path_relative',null,false) ? $modx->getOption('base_path') : '';
$dir .= $modx->getOption('filemanager_path',null,'').'assets/kunden/'.$userName;
$folder_permissions = octdec($modx->getOption('new_folder_permissions'));
if (!@mkdir($dir,$folder_permissions)) {
$modx->log(modX::LOG_LEVEL_ERROR,'Could not create user directory: '.$dir);
}
return true;
}