View file FaceBook clone 2.3/UPLOAD/application/controllers/admin/manageLanguageFile.php

File size: 5.35Kb
<?php

class ManageLanguageFile extends Controller
{
		function ManageLanguageFile()
		{
				parent::controller();
				//check login
				if ($this->session->userdata('admin_logged_in') != 1 && $this->session->userdata('admin_id') == '') redirect('admin/login');
				//Load the language file
				$this->lang->load('admin/manageLanguageFile', $this->config->item('language_code'));
		}
		function index()
		{
				$this->load->helper('string');
				$this->load->library('validation');
				$this->load->model('settingsmodel');
				if ($this->session->userdata('admin_logged_in') != 1 && $this->session->userdata('admin_profileID') == '')
				{
						redirect('admin/logout');
				}
				$outputData['form_directory_list'] = true;
				$outputData['form_files_list'] = false;
				$outputData['form_edit_phrases'] = false;
				$outputData['page_list_phrases'] = false;
				$outputData['languages'] = $this->settingsmodel->getLanguages();
				if (isset($_POST['submit_directory']) && isset($_POST['language']))
				{
						if ($_POST['directory'] == 'admin')
						{
								$dir = BASEPATH . '../application/language/' . $_POST['language'] . '/admin/';
								$dir1 = './application/language/' . $_POST['language'] . '/admin/';
						}
						else
						{
								$dir = BASEPATH . '../application/language/' . $_POST['language'] . '/';
								$dir1 = './application/language/' . $_POST['language'] . '/member/';
						}
						$direxists = is_dir($dir);
						if ($direxists)
						{
								if ($handle = opendir($dir))
								{
										/* This is the correct way to loop over the directory. */
										while (($file = readdir($handle)) != false)
										{
												if (strpos($file, '.php') !== false)
												{
														$outputData['file_arr'][] = $file;
												}
										}
										closedir($handle);
								}
								$outputData['directory'] = $_POST['directory'];
								$outputData['directory_path'] = $dir;
								$outputData['form_directory_list'] = false;
								$outputData['form_edit_phrases'] = false;
								$outputData['page_list_phrases'] = false;
								$outputData['form_files_list'] = true;
						}
						else
						{
								$outputData['validation_error'] = $this->lang->line('managelanguagefile_error');
								$outputData['form_directory_list'] = true;
								$outputData['form_files_list'] = false;
								$outputData['form_edit_phrases'] = false;
								$outputData['page_list_phrases'] = false;
								$outputData['languages'] = $this->settingsmodel->getLanguages();
						}
				}
				elseif (isset($_POST['submit_files']))
				{
						$outputData['form_directory_list'] = false;
						$outputData['form_edit_phrases'] = true;
						$outputData['form_files_list'] = false;
						$outputData['page_list_phrases'] = false;
						$outputData['file'] = $_POST['file'];
						$outputData['directory'] = $_POST['directory'];
						$outputData['directory_path'] = $_POST['directory_path'] . $_POST['file'];
						$fileArr = explode('.', $_POST['file']);
						require_once ($outputData['directory_path']);
						//$this->lang->load((($outputData['directory'] == 'members')? '': $outputData['directory'].'/').trim($fileArr[0],'_lang'), $this->config->item('language_code'));
						$outputData['langArr'] = $lang;
				}
				elseif (isset($_POST['submit_phrases']))
				{
						$outputData['form_directory_list'] = false;
						$outputData['form_edit_phrases'] = false;
						$outputData['form_files_list'] = false;
						$outputData['page_list_phrases'] = true;
						$outputData['directory_path'] = $_POST['directory_path'];
						if ($_POST)
						{
								// set file name with path
								$file_path = $_POST['directory_path'];
								//read file content
								$content = file_get_contents($file_path);
								//include the file as
								require ($file_path);
								// checks whether file edited
								$is_file_edited = false;
								foreach ($_POST as $varname => $value)
								{
										// checks variable value has been changed
										if (isset($lang[$varname]) && isset($_POST[$varname]) && $lang[$varname] != $_POST[$varname])
										{
												$is_file_edited = true;
												// replace value of file content
												// vaiable start pos
												$variable_start = strpos($content, $varname, 0);
												// vaiable end pos
												$end_of_variable = strpos($content, '=', $variable_start) + 1;
												// get content before value
												$content_before_value = trim(substr($content, 0, $end_of_variable));
												// vaiable line end pos
												$variable_end_pos = strpos($content, ';', $end_of_variable);
												// get content after value
												$content_after_value = trim(substr($content, $variable_end_pos));
												// new content+
												$content = $content_before_value . ' \'' . $_POST[$varname] . '\'' . $content_after_value;
										}
								}
								if ($is_file_edited)
								{
										$fw = fopen($file_path, 'w');
										fwrite($fw, $content);
										fclose($fw);
								}
						}
						$outputData['success_msg'] = 'The language file edited successfully!';
						require ($outputData['directory_path']);
						//$this->lang->load((($outputData['directory'] == 'members')? '': $outputData['directory'].'/').trim($fileArr[0],'_lang'), $this->config->item('language_code'));
						$outputData['langArr'] = $lang;
				}
				//}
				$this->smartyextended->view('../admin/manageLanguageFile', $outputData);
		}
}
?>