Morning all. I am diving into C5-9 for the first time and so far I am liking it. I am trying to set up a user attribute (that is a file) for a particular user group but I would like for the files that the new users upload to go to a particular folder. I can see that if I edit an individual user i can select the HOME FOLDER for them but how can I make it preset for all users in that group (or just all HTML Input uploads {ie not through the file manager}). Also, is there a way to have new users be able to select between two groups? ie Parents / Students
THanks in advance.
C
I pieced together something that seems to work. Tacking it on here for posterity. The code below checks for a folder called ‘Fencers’ and if none, creates one. Then does the same for the ‘Name’ attribute. Lastly, looks for a folder with the current year (season) within the new ‘Name’ folder. Over two years it should look like this.
Fencers
–Bob Miller
----headshot-for-bob.jpg
----2021-22
------membershipcard21.jpg
----2022-23
------membershipcard22.jpg
–Sarah Smith
----headshot-for-sarah.jpg
----2021-22
------membershipcard21.jpg
----2022-23
------membershipcard22.jpg
–Frank Butz
----headshot-for-frank.jpg
----2021-22
------membershipcard21.jpg
----2022-23
------membershipcard22.jpg
Any improvement recommendations welcome.
I placed it in /application/controllers/single_page/register.php just after…
if (is_object($process)) {
$process->saveUserAttributesForm($aks);
//CREATE FOLDERS AND MOVE FILES TO IT
if ($process->getAttribute('membertype')=='Fencer') {
$date = date_create();
$dateStamp = date_timestamp_get($date);
if ($process->getAttribute('name')!='') {
$name = $process->getAttribute('name');
} else {
$name = 'Untitled-'.$dateStamp;
}
$curmonth = date('n', time());
$curyear = date('Y', time());
if ($curmonth>3) {
$year = $curyear. '-' . substr($curyear+1, -2);
} else {
$year = $curyear-1 . '-' . substr($curyear, -2);
}
$filesystem = new Filesystem();
$baseFolderName = 'Fencers';
$basefolder = FileFolder::getNodeByName($baseFolderName);
if (!is_object($basefolder)) {
$folder = $filesystem->getRootFolder();
$folderName = t($baseFolderName);
$basefolder = $filesystem->addFolder($folder, $folderName);
}
$memberFolderName = $name;
$memberfolder = FileFolder::getNodeByName($memberFolderName);
if (!is_object($memberfolder)) {
$folder = $basefolder;
$folderName = t($memberFolderName);
$memberfolder = $filesystem->addFolder($folder, $folderName);
}
$yearFolderName = $year;
$yearfolder = $filesystem->getRootFolder()->getChildFolderByPath([$memberFolderName, $yearFolderName]);
if (!is_object($yearfolder)) {
$folder = $memberfolder;
$folderName = t($yearFolderName);
$yearfolder = $filesystem->addFolder($folder, $folderName);
}
$fileID = $process->getAttribute('photo');
$file = \File::getByID($fileID); // by ID
if($file) {
$fileNode = $file->getFileNodeObject();
if (is_object($fileNode)) {
$fileNode->move($memberfolder);
}
}
$fileID = $process->getAttribute('usfa_membership_card');
$file = \File::getByID($fileID); // by ID
if($file) {
$fileNode = $file->getFileNodeObject();
if (is_object($fileNode)) {
$fileNode->move($yearfolder);
}
}
$fileID = $process->getAttribute('vax');
$file = \File::getByID($fileID); // by ID
if($file) {
$fileNode = $file->getFileNodeObject();
if (is_object($fileNode)) {
$fileNode->move($yearfolder);
}
}
}
//CREATE FOLDER
2 Likes