From dd0130670fe3cab4c7e2c1ab4f3bf0d2b2d512b0 Mon Sep 17 00:00:00 2001
From: Denny Bortfeldt <denny@bortfeldt.net>
Date: Mon, 27 Jun 2016 18:02:16 -0400
Subject: [PATCH] When uploading a logo which is smaller than the current ispconfig one, then the logo will be on the left side of the header. In my opinion it will look better when it's centered. You could vote about it ;)

---
 interface/web/admin/language_complete.php |  102 ++++++++++++++++++++++++++++-----------------------
 1 files changed, 56 insertions(+), 46 deletions(-)

diff --git a/interface/web/admin/language_complete.php b/interface/web/admin/language_complete.php
index 63c89e7..d28e89a 100644
--- a/interface/web/admin/language_complete.php
+++ b/interface/web/admin/language_complete.php
@@ -27,11 +27,13 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-require_once('../../lib/config.inc.php');
-require_once('../../lib/app.inc.php');
+require_once '../../lib/config.inc.php';
+require_once '../../lib/app.inc.php';
 
 //* Check permissions for module
 $app->auth->check_module_permissions('admin');
+$app->auth->check_security_permissions('admin_allow_langedit');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
 
 //* This is only allowed for administrators
 if(!$app->auth->is_admin()) die('only allowed for administrators.');
@@ -45,13 +47,13 @@
 $language_option = '';
 $error = '';
 $msg = '';
-$selected_language = (isset($_REQUEST['lng_select']))?substr($_REQUEST['lng_select'],0,2):'en';
+$selected_language = (isset($_REQUEST['lng_select']))?substr($_REQUEST['lng_select'], 0, 2):'en';
 if(!preg_match("/^[a-z]{2}$/i", $selected_language)) die('unallowed characters in selected language name.');
 
-$handle = opendir(ISPC_ROOT_PATH.'/lib/lang/'); 
-while ($file = readdir ($handle)) { 
-    if ($file != '.' && $file != '..') {
-		$tmp_lng = substr($file,0,-4);
+$handle = opendir(ISPC_ROOT_PATH.'/lib/lang/');
+while ($file = readdir($handle)) {
+	if ($file != '.' && $file != '..') {
+		$tmp_lng = substr($file, 0, -4);
 		if($tmp_lng !='' && $tmp_lng != 'en') {
 			$selected = ($tmp_lng == $selected_language)?'SELECTED':'';
 			$language_option .= "<option value='$tmp_lng' $selected>$tmp_lng</option>";
@@ -59,65 +61,68 @@
 		}
 	}
 }
-$app->tpl->setVar('language_option',$language_option);
-$app->tpl->setVar('error',$error);
+$app->tpl->setVar('language_option', $language_option);
+$app->tpl->setVar('error', $error);
 
 // Export the language file
 if(isset($_POST['lng_select']) && $error == '') {
+
+	//* CSRF Check
+	$app->auth->csrf_token_check();
 	
 	// complete the global langauge file
-	merge_langfile(ISPC_LIB_PATH."/lang/".$selected_language.".lng",ISPC_LIB_PATH."/lang/en.lng");
-	
+	merge_langfile(ISPC_LIB_PATH."/lang/".$selected_language.".lng", ISPC_LIB_PATH."/lang/en.lng");
+
 	// Go trough all language files
 	$bgcolor = '#FFFFFF';
 	$language_files_list = array();
-	$handle = @opendir(ISPC_WEB_PATH); 
-	while ($file = @readdir ($handle)) { 
-	   	if ($file != '.' && $file != '..') {
-	        if(@is_dir(ISPC_WEB_PATH.'/'.$file.'/lib/lang')) {
+	$handle = @opendir(ISPC_WEB_PATH);
+	while ($file = @readdir($handle)) {
+		if ($file != '.' && $file != '..') {
+			if(@is_dir(ISPC_WEB_PATH.'/'.$file.'/lib/lang')) {
 				$handle2 = opendir(ISPC_WEB_PATH.'/'.$file.'/lib/lang');
-				while ($lang_file = @readdir ($handle2)) {
-					if ($lang_file != '.' && $lang_file != '..' && substr($lang_file,0,2) == 'en') {
-						$target_lang_file = $selected_language.substr($lang_file,2);
-						merge_langfile(ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$target_lang_file,ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$lang_file);
+				while ($lang_file = @readdir($handle2)) {
+					if ($lang_file != '.' && $lang_file != '..' && substr($lang_file, 0, 2) == 'en') {
+						$target_lang_file = $selected_language.substr($lang_file, 2);
+						merge_langfile(ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$target_lang_file, ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$lang_file);
 					}
 				}
 				$handle2 = opendir(ISPC_WEB_PATH.'/'.$file.'/lib/lang');
-				while ($lang_file = @readdir ($handle2)) {
-					if ($lang_file != '.' && $lang_file != '..' && substr($lang_file,0,2) == $selected_language) {
-						$master_lang_file=ISPC_WEB_PATH.'/'.$file.'/lib/lang/en'.substr($lang_file,2);
+				while ($lang_file = @readdir($handle2)) {
+					if ($lang_file != '.' && $lang_file != '..' && substr($lang_file, 0, 2) == $selected_language) {
+						$master_lang_file=ISPC_WEB_PATH.'/'.$file.'/lib/lang/en'.substr($lang_file, 2);
 						$target_lang_file=ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$lang_file;
 						if(!file_exists($master_lang_file)){
-						unlink($target_lang_file);
-						$msg.="File $target_lang_file remove because does not exist in master language<br />";
+							unlink($target_lang_file);
+							$msg.="File $target_lang_file removed because does not exist in master language<br />";
 						}
 					}
 				}//Finish of remove the files how not exists in master language
 			}
 		}
 	}
-if($msg=='')
-$msg="No files created, remove or modified<br />";
+	if($msg=='')
+		$msg="No files created, removed or modified<br />";
 }
 
-function merge_langfile($langfile,$masterfile) {
+function merge_langfile($langfile, $masterfile) {
 	global $msg;
-	
+
 	if(is_file($langfile)) {
-	
+
 		// Load the english language file
-		include($masterfile);
+		include $masterfile;
 		if(isset($wb) && is_array($wb)) {
 			$wb_master = $wb;
 			unset($wb);
 		} else {
 			$wb_master = array();
 		}
-	
+
 		// Load the incomplete language file
 		$wb = array();
-		include($langfile);
-	
+		include $langfile;
+
 		$n = 0;
 		foreach($wb_master as $key => $val) {
 			if(!isset($wb[$key])) {
@@ -125,7 +130,7 @@
 				$n++;
 			}
 		}
-		
+
 		$r = 0;
 		foreach($wb as $key => $val) {
 			if(!isset($wb_master[$key])) {
@@ -133,35 +138,40 @@
 				$r++;
 			}
 		}
-	
+
 		$file_content = "<?php\n";
 		foreach($wb as $key => $val) {
-			$val = str_replace("'",'',$val);
-			$val = str_replace('"','',$val);
+			$val = str_replace("'", "\\'", $val);
+			$val = str_replace('"', '\"', $val);
 			$file_content .= '$wb['."'$key'".'] = '."'$val';\n";
 		}
 		$file_content .= "?>\n";
-		
+
 		if($n!=0)
-		$msg .= "Added $n lines to the file $langfile<br />";
+			$msg .= "Added $n lines to the file $langfile<br />";
 		if($r!=0)
-		$msg .= "Removed $r lines to the file $langfile<br />";
-		file_put_contents($langfile ,$file_content);
+			$msg .= "Removed $r lines to the file $langfile<br />";
+		file_put_contents($langfile , $file_content);
 	} else {
 		$msg .= "File does not exist yet. Copied file $masterfile to $langfile<br />";
-		copy($masterfile,$langfile);
+		copy($masterfile, $langfile);
 	}
 }
 
-$app->tpl->setVar('msg',$msg);
+$app->tpl->setVar('msg', $msg);
 
-//* load language file 
+//* SET csrf token
+$csrf_token = $app->auth->csrf_token_get('language_merge');
+$app->tpl->setVar('_csrf_id',$csrf_token['csrf_id']);
+$app->tpl->setVar('_csrf_key',$csrf_token['csrf_key']);
+
+//* load language file
 $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_language_complete.lng';
-include($lng_file);
+include $lng_file;
 $app->tpl->setVar($wb);
 
 $app->tpl_defaults();
 $app->tpl->pparse();
 
 
-?>
\ No newline at end of file
+?>

--
Gitblit v1.9.1