erLhcoreClassUserValidator::validateUserPhoto PHP Method

validateUserPhoto() public static method

public static validateUserPhoto ( &$userData, $params = [] )
    public static function validateUserPhoto(&$userData, $params = array())
    {
        $Errors = false;
        if (isset($_FILES["UserPhoto"]) && is_uploaded_file($_FILES["UserPhoto"]["tmp_name"]) && $_FILES["UserPhoto"]["error"] == 0 && erLhcoreClassImageConverter::isPhoto('UserPhoto')) {
            $Errors = array();
            $dir = 'var/userphoto/' . date('Y') . 'y/' . date('m') . '/' . date('d') . '/' . $userData->id . '/';
            erLhcoreClassChatEventDispatcher::getInstance()->dispatch('user.edit.photo_path', array('dir' => &$dir, 'storage_id' => $userData->id));
            $response = erLhcoreClassChatEventDispatcher::getInstance()->dispatch('user.edit.photo_store', array('file_post_variable' => 'UserPhoto', 'dir' => &$dir, 'storage_id' => $userData->id));
            // There was no callbacks
            if ($response === false) {
                erLhcoreClassFileUpload::mkdirRecursive($dir);
                $file = qqFileUploader::upload($_FILES, 'UserPhoto', $dir);
            } else {
                $file = $response['data'];
            }
            if (!empty($file["errors"])) {
                foreach ($file["errors"] as $err) {
                    $Errors[] = $err;
                }
            } else {
                $userData->removeFile();
                $userData->filename = $file["data"]["filename"];
                $userData->filepath = $file["data"]["dir"];
                $response = erLhcoreClassChatEventDispatcher::getInstance()->dispatch('user.edit.photo_resize_150', array('mime_type' => $file["data"]['mime_type'], 'user' => $userData));
                if ($response === false) {
                    erLhcoreClassImageConverter::getInstance()->converter->transform('photow_150', $userData->file_path_server, $userData->file_path_server);
                    chmod($userData->file_path_server, 0644);
                }
            }
        }
        return $Errors;
    }

Usage Example

Example #1
0
    erLhcoreClassModelUserSetting::setSetting('enable_active_list', $validateVisibilityListData['enable_active_list']);
    erLhcoreClassModelUserSetting::setSetting('enable_close_list', $validateVisibilityListData['enable_close_list']);
    erLhcoreClassModelUserSetting::setSetting('enable_unread_list', $validateVisibilityListData['enable_unread_list']);
    $tpl->set('account_updated', 'done');
    $tpl->set('tab', 'tab_settings');
}
if (isset($_POST['Update'])) {
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/account');
        exit;
    }
    $Errors = erLhcoreClassUserValidator::validateAccount($UserData);
    if (isset($_POST['DeletePhoto'])) {
        $UserData->removeFile();
    }
    $userPhotoErrors = erLhcoreClassUserValidator::validateUserPhoto($UserData);
    if ($userPhotoErrors !== false) {
        $Errors = array_merge($Errors, $userPhotoErrors);
    }
    if (count($Errors) == 0) {
        erLhcoreClassUser::getSession()->update($UserData);
        $tpl->set('account_updated', 'done');
    } else {
        $tpl->set('errors', $Errors);
    }
}
$currentUser = erLhcoreClassUser::instance();
$allowEditDepartaments = $currentUser->hasAccessTo('lhuser', 'editdepartaments');
if ($allowEditDepartaments && isset($_POST['UpdateDepartaments_account'])) {
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/account');