added user icon upload
This commit is contained in:
		| @ -368,7 +368,7 @@ class File extends Controller | ||||
|  | ||||
| 								if ($this->files->create ($login['id'], $file) === FALSE) | ||||
| 								{ | ||||
| 									unlink (CODEPOT_FILE_DIR . "/{$file->encname}"); | ||||
| 									@unlink (CODEPOT_FILE_DIR . "/{$file->encname}"); | ||||
| 									$data['message'] = 'DATABASE ERROR'; | ||||
| 									$data['file'] = $file; | ||||
| 									$this->load->view ($this->VIEW_EDIT, $data); | ||||
|  | ||||
| @ -157,13 +157,56 @@ class User extends Controller | ||||
| 		$data['login'] = $login; | ||||
| 		$data['message'] = ''; | ||||
|  | ||||
| 		$icon_fname = FALSE; | ||||
| 		$uploaded_fname = FALSE; | ||||
|  | ||||
| 		if($this->input->post('settings')) | ||||
| 		{ | ||||
| 			if (array_key_exists ('icon_img_file_name', $_FILES)) | ||||
| 			{ | ||||
| 				$fname = $_FILES['icon_img_file_name']['name']; | ||||
|  | ||||
| 				if (strpos ($fname, ':') !== FALSE) | ||||
| 				{ | ||||
| 					$data['message'] = $this->lang->line ('FILE_MSG_NAME_NO_COLON'); | ||||
| 					$data['file'] = $file; | ||||
| 					$this->load->view ($this->VIEW_EDIT, $data); | ||||
| 					return; | ||||
| 				} | ||||
|  | ||||
| 				// delete all \" instances ...  | ||||
| 				$_FILES['icon_img_file_name']['type'] =  | ||||
| 					str_replace('\"', '', $_FILES['icon_img_file_name']['type']); | ||||
| 				// delete all \\ instances ...   | ||||
| 				$_FILES['icon_img_file_name']['type'] =  | ||||
| 					str_replace('\\', '', $_FILES['icon_img_file_name']['type']); | ||||
|  | ||||
| 				$config['allowed_types'] = 'png'; | ||||
| 				$config['upload_path'] = CODEPOT_USERICON_DIR; | ||||
| 				$config['max_size'] = CODEPOT_MAX_UPLOAD_SIZE; | ||||
| 				$config['max_width'] = 100; // TODO: make it configurable. | ||||
| 				$config['max_height'] = 100; | ||||
| 				$config['encrypt_name'] = TRUE; | ||||
|  | ||||
| 				$this->load->library ('upload'); | ||||
| 				$this->upload->initialize ($config); | ||||
| 		 | ||||
| 				if ($this->upload->do_upload ('icon_img_file_name')) | ||||
| 				{ | ||||
| 					$upload = $this->upload->data (); | ||||
| 					$uploaded_fname = $upload['file_name']; | ||||
| 					$icon_fname = $login['id'] . '.png'; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			$settings->code_hide_line_num = $this->input->post('code_hide_line_num'); | ||||
| 			$settings->code_hide_details = $this->input->post('code_hide_details'); | ||||
| 			$settings->icon_name = $icon_fname; | ||||
| 			$settings->uploaded_icon_name = $uploaded_fname; | ||||
|  | ||||
| 			if ($this->users->storeSettings ($login['id'], $settings) === FALSE) | ||||
| 			{ | ||||
| 				@unlink (CODEPOT_USERICON_DIR . '/' . $uploaded_fname); | ||||
| 				$data['message'] = 'DATABASE ERROR'; | ||||
| 				$data['settings'] = $settings; | ||||
| 				$this->load->view ($this->VIEW_SETTINGS, $data); | ||||
| @ -185,6 +228,7 @@ class User extends Controller | ||||
| 				if ($settings === FALSE) $data['message'] = 'DATABASE ERROR'; | ||||
| 				$settings->code_hide_line_num = ' '; | ||||
| 				$settings->code_hide_details = ' '; | ||||
| 				$settings->icon_name = ''; | ||||
| 			} | ||||
|  | ||||
| 			$data['settings'] = $settings; | ||||
|  | ||||
| @ -35,6 +35,7 @@ $lang['Head revision'] = 'Head revision'; | ||||
| $lang['Hide details'] = 'Hide details'; | ||||
| $lang['History'] = 'History'; | ||||
| $lang['Home'] = 'Home'; | ||||
| $lang['Icon'] = 'Icon'; | ||||
| $lang['ID'] = 'ID'; | ||||
| $lang['Issue'] = 'Issue'; | ||||
| $lang['Issues'] = 'Issues'; | ||||
|  | ||||
| @ -32,6 +32,7 @@ $lang['Full Difference'] = 'FullDiff'; | ||||
| $lang['Head revision'] = 'Kepala revisi'; | ||||
| $lang['History'] = 'Sejarah'; | ||||
| $lang['Home'] = 'Beranda'; | ||||
| $lang['Icon'] = 'Icon'; | ||||
| $lang['ID'] = 'ID'; | ||||
| $lang['Issue'] = 'Issue'; | ||||
| $lang['Issues'] = 'Issue'; | ||||
|  | ||||
| @ -35,6 +35,7 @@ $lang['Head revision'] = '최신리비전'; | ||||
| $lang['Hide details'] = '상세내역숨김'; | ||||
| $lang['History'] = '변경기록'; | ||||
| $lang['Home'] = '홈'; | ||||
| $lang['Icon'] = '아이콘'; | ||||
| $lang['ID'] = '아이디'; | ||||
| $lang['Issue'] = '이슈'; | ||||
| $lang['Issues'] = '이슈'; | ||||
|  | ||||
| @ -35,6 +35,8 @@ class UserModel extends Model | ||||
|  | ||||
| 	function storeSettings ($userid, $settings) | ||||
| 	{ | ||||
| 		$icon_name_set = strlen($settings->icon_name) > 0; | ||||
|  | ||||
| 		$this->db->trans_begin (); | ||||
|  | ||||
| 		$this->db->where ('userid', $userid); | ||||
| @ -52,6 +54,7 @@ class UserModel extends Model | ||||
| 			$this->db->set ('userid', $userid); | ||||
| 			$this->db->set ('code_hide_line_num', (string)$settings->code_hide_line_num); | ||||
| 			$this->db->set ('code_hide_details', (string)$settings->code_hide_details); | ||||
| 			if ($icon_name_set) $this->db->set ('icon_name', (string)$settings->icon_name); | ||||
| 			$this->db->insert ('user_settings'); | ||||
| 		} | ||||
| 		else | ||||
| @ -59,6 +62,7 @@ class UserModel extends Model | ||||
| 			$this->db->where ('userid', $userid); | ||||
| 			$this->db->set ('code_hide_line_num', (string)$settings->code_hide_line_num); | ||||
| 			$this->db->set ('code_hide_details', (string)$settings->code_hide_details); | ||||
| 			if ($icon_name_set) $this->db->set ('icon_name', (string)$settings->icon_name); | ||||
| 			$this->db->update ('user_settings'); | ||||
| 		} | ||||
|  | ||||
| @ -68,6 +72,16 @@ class UserModel extends Model | ||||
| 			return FALSE; | ||||
| 		} | ||||
|  | ||||
| 		if ($icon_name_set) | ||||
| 		{ | ||||
| 			if (@rename (CODEPOT_USERICON_DIR . '/' . $settings->uploaded_icon_name, | ||||
| 			             CODEPOT_USERICON_DIR . '/' . $settings->icon_name) === FALSE) | ||||
| 			{ | ||||
| 				$this->db->trans_rollback (); | ||||
| 				return FALSE; | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		$this->db->trans_commit (); | ||||
| 		return TRUE; | ||||
|  | ||||
| @ -77,6 +91,7 @@ class UserModel extends Model | ||||
| 		$this->db->where ('userid', $userid); | ||||
| 		$this->db->set ('code_hide_line_num', (string)$settings->code_hide_line_num); | ||||
| 		$this->db->set ('code_hide_details', (string)$settings->code_hide_details); | ||||
| 		if (strlen($settings->icon_name) > 0) $this->db->set ('icon_name', (string)$settings->icon_name); | ||||
| 		$this->db->update ('user_settings'); | ||||
|  | ||||
| 		if ($this->db->trans_status() === FALSE) | ||||
|  | ||||
| @ -61,7 +61,7 @@ $this->load->view ( | ||||
|  | ||||
| <div id="user_settings_mainarea_result"> | ||||
|  | ||||
| <?=form_open('user/settings/')?> | ||||
| <?=form_open_multipart('user/settings/')?> | ||||
|  | ||||
| 	<?=form_fieldset($this->lang->line('Code'))?> | ||||
|  | ||||
| @ -75,6 +75,15 @@ $this->load->view ( | ||||
| 		?> | ||||
| 		<?= $this->lang->line('USER_MSG_HIDE_DETAILS')?> | ||||
|  | ||||
| 		<div class='form_input_field'> | ||||
| 			<?=form_label($this->lang->line('Icon').': ', 'icon_img_file_name')?> | ||||
| 			<?php | ||||
| 				$extra = 'maxlength="255" size="40"'; | ||||
| 				print form_upload('icon_img_file_name', set_value('icon_img_file_name', ''), $extra); | ||||
| 			?> | ||||
| 			<?=form_error('icon_img_file_name');?> | ||||
| 		</div> | ||||
| 	 | ||||
| 	<?=form_fieldset_close()?> | ||||
|  | ||||
| 	<!-- | ||||
|  | ||||
		Reference in New Issue
	
	Block a user