Ziel: Jeder User soll unter MODx Revo 2.2 oder höher sein eigenen Media Sources (https://docs.modx.com/revolution/2.x/administering-your-site/media-sources) Ordner bekommen.
Dazu lege ich für jeden User unter "assets/content/user/" einen Ordner mit dessen User ID an, z.B.: "assets/content/user/2/"
Dann noch ein Snippet getUserID
<?php
// return userid
return $modx->user->get('id');
und in der entsprechenden Media Source (z.B. myFolder) als basePath und baseUrl assets/content/user/[[getUserID]]/ eintragen.
Im TAB Access Permissions z.B.
[tt]Administrator - Super User - Media Source Admin
Manager - Editor - Media Source Admin[/tt]
eintragen und Flush Permissions nicht vergessen :wink:
Wer will kann sich den User-Ordner automatisch anlegen lassen.
Snippet getUserID
<?php
// get userid
// $UserID = $modx->user->get('id');
$UserID = $modx->getLoginUserID('mgr');
// check proper path alignment!
$users_folder = $modx->getOption('assets_path').'content/user/'.$UserID.'/';
// $modx->log(modX::LOG_LEVEL_ERROR,$users_folder);
// create an user folder
if (!file_exists($users_folder)){
mkdir($users_folder,0755);
}
return $UserID;
Unter den Users Settings dann noch per 'default_media_source' eine Media Sources zuordnen, damit der User diese direkt als Auswahl bekommt und fertig.