Location: PHPKode > projects > SiteTranslator > translation/translate.php
<?
/*
$Author: colineberhardt $
$Date: 2004/11/12 16:30:20 $
$Revision: 1.1 $
$Name:  $

Copyright (C) 2004  C.N.Eberhardt (hide@address.com)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

	require("../SiteTranslatorAdmin.php");
	$translator = new SiteTranslatorAdmin();
?>

<html>
<body>
<?
	if (!$translator->isLoggedIn())
	{
		echo "<h2>Access denied</h2>";
	}
	else
	{
	
		if ($_POST["submit"])
		{		
			if ($translator->isEditor())
			{
				if ($_POST["delete"]=="CHECKED")
				{
					$translator->deleteText($_POST["key"]);
				}
				else
				{
					$languages = $translator->getTranslatorLanguages().",".$translator->getDefaultLanguage();
					
					//update the localised text for each language that this editor manages
					$language = strtok ($languages,",");
					while($language)
					{
						//does the editor wish to update this text?
						if ($_POST[$language."_update_text"]=="CHECKED")
						{
							//do they wish to update the timestamp for this record
							$blnUpdateTime = ($_POST[$language."_update_date"]=="CHECKED");
							$translator->setLocalisedText($language, $_POST["key"], $_POST[$language."_text"], $blnUpdateTime);
						}
						$language = strtok (",");
					}
				}
			}
			else
			{
				//update the localised text for each language that this editor manages
				$language = strtok ($translator->getTranslatorLanguages(),",");
				while($language)
				{
					$translator->setLocalisedText($language, $_POST["key"], $_POST[$language."_text"]);
					$language = strtok (",");
				}
			}
				
			echo "<h3>The database has been updated</h3>";
			echo "You will have to refresh the menu on the left hand side to see the changes";
		
		}
		else
		{
			?>
			<form method="post" action="<? echo $PHP_SELF ?>">
			<INPUT VALUE="<? echo $_GET["key"] ?>" READONLY TYPE="HIDDEN" NAME="key" SIZE=10>
			<?
								
				if ($translator->isEditor())
				{
					echo '<INPUT TYPE="CHECKBOX" VALUE="CHECKED" NAME="delete"><b>Delete this text entry</b></INPUT>';	
					
					//show the default text
					ShowTextArea($_GET["key"], $translator->getDefaultLanguage(), false, true);
					
					//show an edit box for each of the languages that this editor can translate
					$language = strtok ($translator->getTranslatorLanguages(),",");
					while($language)
					{
						ShowTextArea($_GET["key"], $language, false, true);
						$language = strtok (",");
					}	
				}
				else
				{
					//show the default text (read only)
					ShowTextArea($_GET["key"], $translator->getDefaultLanguage(), true);
					
					//show an edit box for each of the languages that this editor can translate
					$language = strtok ($translator->getTranslatorLanguages(),",");
					while($language)
					{
						ShowTextArea($_GET["key"], $language);
						$language = strtok (",");
					}	
				}
				
			?>
			<p>
			<INPUT TYPE="SUBMIT" VALUE="Submit Details" NAME="submit">
			</form>
			<?
		}
	}
	
	
	function ShowTextArea($key, $language, $blnReadOnly=false, $blnEditor=false)
	{
		global $translator;		
				
		//if the text requires an update - highlight it	
		if ($translator->isTranslated($key, $language) && !$translator->isUpToDate($key, $language))
			$strUpdateText = '<font color="red">(requires updating)</font>';
		
		//output the heading
		$languageName = $translator->getLanguageName($language);	
		echo "<br><br><b>$languageName: $strUpdateText</b><br><br>";								
	
		//output the text area
		if ($blnReadOnly)
			$strReadOnly = "READONLY";
		$strText = $translator->getLocalisedText($language, $key);
		echo "<TEXTAREA $strReadOnly NAME=\"".$language."_text\" rows=\"15\" cols=\"80\">$strText</TEXTAREA>";
		
		if ($blnEditor)
		{
			echo "<BR><INPUT TYPE=\"CHECKBOX\" VALUE=\"CHECKED\" NAME=\"".$language."_update_text\">Update $languageName text</INPUT>";		
			echo '<BR><INPUT TYPE="CHECKBOX" VALUE="CHECKED" NAME="'.$language.'_update_date">Update the timestamp for this text</INPUT>';		
		}
	}
	
?>

</body>
</html>

Return current item: SiteTranslator