Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function rand_string($length) {
- $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- $size = strlen( $chars );
- for( $i = 0; $i < $length; $i++ ) {
- $str .= $chars[ rand( 0, $size - 1 ) ];
- }
- return $str;
- }
- $allFormFields = $hook->getValues();
- $save = $allFormFields['submitSave'];
- $fullname = $allFormFields['fullname'];
- $email = $allFormFields['email'];
- $address = $allFormFields['address'];
- $zip = $allFormFields['zip'];
- $city = $allFormFields['city'];
- $phone = $allFormFields['phone'];
- $mobilephone = $allFormFields['mobilephone'];
- $dob = $allFormFields['dob'];
- if (!empty($dob)) { $dob = strtotime($dob); }
- $username = $allFormFields['username'];
- $usertype = $allFormFields['usertype'];
- $teacher = $allFormFields['teacher'];
- $instrument = $allFormFields['instrument'];
- $day = $allFormFields['day'];
- $starttime = $allFormFields['starttime'];
- $endtime = $allFormFields['endtime'];
- $frequency = $allFormFields['frequency'];
- if ($save == 'Save') {
- $user = $modx->getObject('modUser', array('username' => $username));
- if (!$user) {
- $msg = '2';
- $user = $modx->newObject('modUser');
- $user->set('username', $username);
- $password = rand_string(10);
- $user->set('password', $password);
- $profile = $modx->newObject('modUserProfile');
- }
- else {
- $msg = '3';
- $profile = $user->getOne('Profile');
- }
- $extended = $profile->get('extended');
- $extendedFields = array();
- $user->set('active', 1);
- if (!empty($instrument)) { $extendedFields['instrument'] = $instrument; }
- if (!empty($day)) { $extendedFields['day'] = $day; }
- if (!empty($starttime)) { $extendedFields['starttime'] = $starttime; }
- if (!empty($endtime)) { $extendedFields['endtime'] = $endtime; }
- if (!empty($frequency)) { $extendedFields['frequency'] = $frequency; }
- if (!empty($teacher)) { $extendedFields['teacher'] = $teacher; }
- $profile->set('fullname', $fullname);
- $profile->set('email', $email);
- $profile->set('phone', $phone);
- $profile->set('mobilephone', $mobilephone);
- $profile->set('dob', $dob);
- $profile->set('address', $address);
- $profile->set('city', $city);
- $profile->set('zip', $zip);
- // Process headshot
- $ext_array = array('jpg','jpeg','png'); // valid extensions
- $uploadpath = 'assets/uploads/';
- $target_path = $modx->config['base_path'] . $uploadpath;
- $submittedfiles = array_keys($_FILES); // get uploaded file names
- foreach ($submittedfiles as $sf) {
- $filename = basename( $_FILES[$sf]['name'] ); // Get Filename and make sure its good.
- $ext = pathinfo($filename, PATHINFO_EXTENSION); // Get file's extension
- $ext = mb_strtolower($ext); // case insensitive
- if($filename != '') { // is the file name empty (no file uploaded)
- if(in_array($ext, $ext_array)) { // is this the right type of file?
- $filename = str_replace(' ', '_', $filename); // spaces to underscores
- $filename = date("Y-m-d_G-i-s_") . $filename; // add date & time
- $myTarget = $target_path . $filename; // full path to new file
- if(move_uploaded_file($_FILES[$sf]['tmp_name'], $myTarget)) { // is the file moved to the proper folder successfully?
- $extendedFields['headshot'] = $filename;
- }
- else {
- // File not uploaded
- $errorMsg = 'There was a problem uploading the file.';
- $hook->setValue('errorMsg', $errorMsg);
- return false; // generate submission error
- }
- }
- else {
- // File type not allowed
- $errorMsg = 'Type of file not allowed.';
- $hook->setValue('errorMsg', $errorMsg);
- return false; // generate submission error
- }
- // if no file, don't error, but return blank
- }
- }
- if (!empty($extendedFields)) { $profile->set('extended', $extendedFields); }
- $user->addOne($profile);
- $user->save();
- if ($usertype == 'Student') { $user->joinGroup('Student', 'Member'); }
- if ($usertype == 'Teacher') { $user->joinGroup('Teacher', 'Member'); }
- $url = $modx->makeUrl(4,'',array('msg' => $msg));
- $modx->sendRedirect($url);
- }
- else {
- return false;
- }
Add Comment
Please, Sign In to add comment