В этом случае, поскольку SafeCracker не имеет каких-либо расширений, и я не знаю каких-либо надстроек, которые бы допускали такое специфическое поведение, я бы сделал копию файла SafeCracker и изменил бы ее, чтобы добавить эту функциональность. В противном случае вы просто начинаете с нуля со своим собственным типом поля «загрузить файл».
Вы захотите просмотреть строку 148 в ft.safecracker_file.php и добавить небольшой кусочек кода, чтобы проверить, существует ли каталог с отображаемым именем вошедшего в систему пользователя или что у вас ( посмотрите, как получить это здесь ), создайте его, если это не так, затем добавьте это имя каталога к пути загрузки:
$data = $this->EE->filemanager->upload_file($this->settings['safecracker_upload_dir'].'/'.$users_directory_name, $field_name);
Думаю, это должно помочь тебе начать.