142 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
// addnews ready
 | 
						|
// translator ready
 | 
						|
// mail ready
 | 
						|
define("OVERRIDE_FORCED_NAV",true);
 | 
						|
require_once("common.php");
 | 
						|
tlschema("translatortool");
 | 
						|
 | 
						|
check_su_access(SU_IS_TRANSLATOR);
 | 
						|
$op=httpget("op");
 | 
						|
if ($op==""){
 | 
						|
	popup_header("Translator Tool");
 | 
						|
	$uri = rawurldecode(httpget('u'));
 | 
						|
	$text = stripslashes(rawurldecode(httpget('t')));
 | 
						|
	
 | 
						|
	$translation = translate_loadnamespace($uri);
 | 
						|
	if (isset($translation[$text]))
 | 
						|
		$trans = $translation[$text];
 | 
						|
	else
 | 
						|
		$trans = "";
 | 
						|
	$namespace = translate_inline("Namespace:");
 | 
						|
	$texta = translate_inline("Text:");
 | 
						|
	$translation = translate_inline("Translation:");
 | 
						|
	$saveclose = htmlentities(translate_inline("Save & Close"), ENT_COMPAT, getsetting("charset", "ISO-8859-1"));
 | 
						|
	$savenotclose = htmlentities(translate_inline("Save No Close"), ENT_COMPAT, getsetting("charset", "ISO-8859-1"));
 | 
						|
	rawoutput("<form action='translatortool.php?op=save' method='POST'>");
 | 
						|
	rawoutput("$namespace <input name='uri' value=\"".htmlentities(stripslashes($uri), ENT_COMPAT, getsetting("charset", "ISO-8859-1"))."\" readonly><br/>");
 | 
						|
	rawoutput("$texta<br>");
 | 
						|
	rawoutput("<textarea name='text' cols='60' rows='5' readonly>".htmlentities($text, ENT_COMPAT, getsetting("charset", "ISO-8859-1"))."</textarea><br/>");
 | 
						|
	rawoutput("$translation<br>");
 | 
						|
	rawoutput("<textarea name='trans' cols='60' rows='5'>".htmlentities(stripslashes($trans), ENT_COMPAT, getsetting("charset", "ISO-8859-1"))."</textarea><br/>");
 | 
						|
	rawoutput("<input type='submit' value=\"$saveclose\" class='button'>");
 | 
						|
	rawoutput("<input type='submit' value=\"$savenotclose\" class='button' name='savenotclose'>");
 | 
						|
	rawoutput("</form>");
 | 
						|
	popup_footer();
 | 
						|
}elseif ($_GET['op']=='save'){
 | 
						|
	$uri = httppost('uri');
 | 
						|
	$text = httppost('text');
 | 
						|
	$trans = httppost('trans');
 | 
						|
 | 
						|
	$page = $uri;
 | 
						|
	if (strpos($page,"?")!==false) $page = substr($page,0,strpos($page,"?"));
 | 
						|
 | 
						|
	if ($trans==""){
 | 
						|
		$sql = "DELETE ";
 | 
						|
	}else{
 | 
						|
		$sql = "SELECT * ";
 | 
						|
	}
 | 
						|
	$sql .= "
 | 
						|
		FROM ".db_prefix("translations")."
 | 
						|
		WHERE language='".LANGUAGE."'
 | 
						|
			AND intext='$text'
 | 
						|
			AND (uri='$page' OR uri='$uri')";
 | 
						|
	if ($trans>""){
 | 
						|
		$result = db_query($sql);
 | 
						|
		invalidatedatacache("translations-".$uri."-".$language);
 | 
						|
		//invalidatedatacache("translations-".$namespace."-".$language);
 | 
						|
		if (db_num_rows($result)==0){
 | 
						|
			$sql = "INSERT INTO ".db_prefix("translations")." (language,uri,intext,outtext,author,version) VALUES ('".LANGUAGE."','$uri','$text','$trans','{$session['user']['login']}','$logd_version ')";
 | 
						|
			$sql1 = "DELETE FROM " . db_prefix("untranslated") .
 | 
						|
				" WHERE intext='$text' AND language='" . LANGUAGE .
 | 
						|
				"' AND namespace='$url'";
 | 
						|
			db_query($sql1);
 | 
						|
		}elseif(db_num_rows($result)==1){
 | 
						|
			$row = db_fetch_assoc($result);
 | 
						|
			// MySQL is case insensitive so we need to do it here.
 | 
						|
			if ($row['intext'] == $text){
 | 
						|
				$sql = "UPDATE ".db_prefix("translations")." SET author='{$session['user']['login']}', version='$logd_version', uri='$uri', outtext='$trans' WHERE tid={$row['tid']}";
 | 
						|
			}else{
 | 
						|
				$sql = "INSERT INTO " . db_prefix("translations") . " (language,uri,intext,outtext,author,version) VALUES ('" . LANGUAGE . "','$uri','$text','$trans','{$session['user']['login']}','$logd_version ')";
 | 
						|
				$sql1 = "DELETE FROM " . db_prefix("untranslated") . " WHERE intext='$text' AND language='" . LANGUAGE . "' AND namespace='$url'";
 | 
						|
				db_query($sql1);
 | 
						|
			}
 | 
						|
		}elseif(db_num_rows($result)>1){
 | 
						|
			$rows = array();
 | 
						|
			while ($row = db_fetch_assoc($result)){
 | 
						|
				// MySQL is case insensitive so we need to do it here.
 | 
						|
				if ($row['intext'] == $text){
 | 
						|
					$rows['tid']=$row['tid'];
 | 
						|
				}
 | 
						|
			}
 | 
						|
			$sql = "UPDATE ".db_prefix("translations")." SET author='{$session['user']['login']}', version='$logd_version', uri='$page', outtext='$trans' WHERE tid IN (".join(",",$rows).")";
 | 
						|
		}
 | 
						|
	}
 | 
						|
	db_query($sql);
 | 
						|
	if (httppost("savenotclose")>""){
 | 
						|
		header("Location: translatortool.php?op=list&u=$page");
 | 
						|
		exit();
 | 
						|
	}else{
 | 
						|
		popup_header("Updated");
 | 
						|
		rawoutput("<script language='javascript'>window.close();</script>");
 | 
						|
		popup_footer();
 | 
						|
	}
 | 
						|
}elseif($op=="list"){
 | 
						|
	popup_header("Translation List");
 | 
						|
	$sql = "SELECT uri,count(*) AS c FROM " . db_prefix("translations") . " WHERE language='".LANGUAGE."' GROUP BY uri ORDER BY uri ASC";
 | 
						|
	$result = db_query($sql);
 | 
						|
	rawoutput("<form action='translatortool.php' method='GET'>");
 | 
						|
	rawoutput("<input type='hidden' name='op' value='list'>");
 | 
						|
	output("Known Namespaces:");
 | 
						|
	rawoutput("<select name='u'>");
 | 
						|
	while ($row = db_fetch_assoc($result)){
 | 
						|
		rawoutput("<option value=\"".rawurlencode(htmlentities($row['uri'], ENT_COMPAT, getsetting("charset", "ISO-8859-1")))."\">".htmlentities($row['uri'], ENT_COMPAT, getsetting("charset", "ISO-8859-1"))." ({$row['c']})</option>",true);
 | 
						|
	}
 | 
						|
	rawoutput("</select>");
 | 
						|
	$show = translate_inline("Show");
 | 
						|
	rawoutput("<input type='submit' class='button' value=\"$show\">");
 | 
						|
	rawoutput("</form>");
 | 
						|
	$ops = translate_inline("Ops");
 | 
						|
	$from = translate_inline("From");
 | 
						|
	$to = translate_inline("To");
 | 
						|
	$version = translate_inline("Version");
 | 
						|
	$author = translate_inline("Author");
 | 
						|
	$norows = translate_inline("No rows found");
 | 
						|
	rawoutput("<table border='0' cellpadding='2' cellspacing='0'>");
 | 
						|
	rawoutput("<tr class='trhead'><td>$ops</td><td>$from</td><td>$to</td><td>$version</td><td>$author</td></tr>");
 | 
						|
	$sql = "SELECT * FROM " . db_prefix("translations") . " WHERE language='".LANGUAGE."' AND uri='".httpget("u")."'";
 | 
						|
	$result = db_query($sql);
 | 
						|
	if (db_num_rows($result)>0){
 | 
						|
		$i=0;
 | 
						|
		while ($row = db_fetch_assoc($result)){
 | 
						|
			$i++;
 | 
						|
			rawoutput("<tr class='".($i%2?"trlight":"trdark")."'><td>");
 | 
						|
			$edit = translate_inline("Edit");
 | 
						|
			rawoutput("<a href='translatortool.php?u=".rawurlencode(htmlentities($row['uri'], ENT_COMPAT, getsetting("charset", "ISO-8859-1")))."&t=".rawurlencode(htmlentities($row['intext']))."'>$edit</a>");
 | 
						|
			rawoutput("</td><td>");
 | 
						|
			rawoutput(htmlentities($row['intext'], ENT_COMPAT, getsetting("charset", "ISO-8859-1")));
 | 
						|
			rawoutput("</td><td>");
 | 
						|
			rawoutput(htmlentities($row['outtext'], ENT_COMPAT, getsetting("charset", "ISO-8859-1")));
 | 
						|
			rawoutput("</td><td>");
 | 
						|
			rawoutput($row['version']);
 | 
						|
			rawoutput("</td><td>");
 | 
						|
			rawoutput($row['author']);
 | 
						|
			rawoutput("</td></tr>");
 | 
						|
		}
 | 
						|
	}else{
 | 
						|
		rawoutput("<tr><td colspan='5'>$norows</td></tr>");
 | 
						|
	}
 | 
						|
	rawoutput("</table>");
 | 
						|
	popup_footer();
 | 
						|
}
 | 
						|
?>
 |