- - - = = = +++ Voorbeeldje +++ = = = - - - 
[code]
<?
include('IncludeFile.php');

#het Talen menu aanroepen
echo '<p>'.$ListMenu.'</p>';

echo "<div style='background-color:#EEEEEE'><b>Normale user:</b><br/>";

# Voor de ogen van de normale gebruikers
$DT = new DispText($_SESSION['lang'],0);
echo $DT->_Text('Home');

echo "</div>";

echo "<div style='background-color:#EEEEEE'><b>Moderator:</b><br/>";

# Voor het de oog van de moderator
$DT = new DispText($_SESSION['lang'],1);
echo $DT->_Text('Home');

echo "</div>";

?>
[/code]

- - - = = = EditTextClass.php = = = - - -
[code]
<?php
#########################################
# By: Pieter van Linschoten				#
# Licence: GNU General Public Licence	#
# Project: Easy Language System			#
# Version: 0.1 BETA						#
# Publish Date: Januari 23, 2008		#
# Page: EditTextClass.php				#
# Questions: webmaster@lapidi.nl		#
#########################################

class EditTextForm{
	var $Form;
	var $Language;
	var $TextOutput;

	function EditTextForm($PartCode,$Lang='En',$method){
		$this->Language = $Lang;
		
		$LangSql = "SELECT Text_LangCode FROM Text_Languages ORDER BY Text_Language ASC";
		$LangResponse = mysql_query($LangSql) or die(mysql_error());
		if(mysql_num_rows($LangResponse) == 0){
			echo "There is no language available to edit.";
			exit();
		}
		while($LangRow = @mysql_fetch_array($LangResponse)){
		$TextSql = "SELECT * FROM Text_Display WHERE Text_PartCode = '" . $PartCode . "' and Text_LangCode = '" . $LangRow['Text_LangCode'] . "'";
			$TextResponse = mysql_query($TextSql) or die(mysql_error());
			
			if(mysql_num_rows($TextResponse) == 0){
				$Text = '';
			}else{
				$TextRow = @mysql_fetch_array($TextResponse);
				$Text = $TextRow['Text_Content'];
			}

			$this->CreateFormContent($LangRow['Text_LangCode'],$PartCode,$Text);
		}
		
		$this->TextOutput = '<form action="' . $_SERVER['PHP_SELF'] . '?mod=edit&Part=' . $PartCode . '" method="POST">' . $this->Form . '<p><input name="TextUpdate" type="submit" value="Update"></p></form>';
	}
	#@ Maak voor elke taal een apart Text Area
	function CreateFormContent($LangCode,$PartCode,$Text){

		$this->Form .= '<p>' . $PartCode . '_' . $LangCode . '<br/>';	
		$this->Form .= '<textarea name="' . $PartCode . '_' . $LangCode . '" >' . $Text . '</textarea>';
		$this->Form .= '</p>';
	}

	function _Output(){
		return $this->TextOutput;
	}
}

?>
[/code]

- - - = = = EditText.php = = = - - -
[code]
<?php
<?
#########################################
# By: Pieter van Linschoten				#
# Licence: GNU General Public Licence	#
# Project: Easy Language System			#
# Version: 0.1 BETA						#
# Publish Date: Januari 23, 2008		#
# Page: EditText.php					#
# Questions: webmaster@lapidi.nl		#
#########################################

#! Let op: Deze pagina is hier onbeveiligd!

require('IncludeFile.php');
require('EditTextClass.php');


#@ Controleer of het er een formulier verzonden is.
if($_SERVER['REQUEST_METHOD'] == 'POST'){
	
	# Loop de array van $_POST af.
	foreach($_POST as $key => $post){
		
		#@ Alles, behalve de update knop hebben we nodig
		if($key != 'TextUpdate'){
			$key = explode('_',$key);
			
			#@ Controleer of het verzonden veld niet leeg was, want dan doen we er niets mee.
			if(!empty($post)){
				
				#@ Kijk of dit tekstgedeelte al bestond in de DB.
				$CheckSql = "SELECT id FROM Text_Display WHERE Text_PartCode = '" . $key[0] . "' AND Text_LangCode = '" . $key[1] . "' LIMIT 1";
				$CheckResponse = mysql_query($CheckSql) or die(mysql_error());
				$Check = mysql_num_rows($CheckResponse);

				switch($Check){
					case 0:
						#@ INSERT de text als deze voor het eerst wordt aangepast.
						$aUpdateQuery[] = "INSERT INTO Text_Display SET id = '', Text_PartCode = '" . $key[0] . "', Text_LangCode = '" . $key[1] . "', Text_Content = '" . mysql_real_escape_string($post) . "'";
					break;
					default:
						#@ UPDATE de text als deze al bestaat.
						$aUpdateQuery[] = "UPDATE Text_Display SET Text_Content = '" . mysql_real_escape_string($post) . "' WHERE Text_PartCode = '" . $key[0] . "' AND Text_LangCode = '" . $key[1] . "'";
					break;
				}
			}
		}
	}
	#@ En de functies uitvoeren. Controleer of het goed gaat
	$iError = 0;
	foreach($aUpdateQuery as $Query){
		mysql_query($Query) or $iError = 1;
	}
	
	#@ Kijk of de query gelukt is.
	switch($iError){
		case 0: echo "<p>The languages have been edited.</p><p>(<a href='#' onClick='javascript:window.close();'>Close Window</a>)</p>";
		break;
		case 1: echo "<p>Something went wrong while updating.</p><p><a href='#' onClick='javascript:history.go(-1);'>Please try again.</a></p>";
		break;
	}

}else{

	$ET = new EditTextForm($_GET['Part'],$_SESSION['lang'],'edit');
	echo $ET->_Output();
}
?>
[/code]

- - - = = = DispTextClass.php = = = - - - 
[code]
<?php 
#########################################
# By: Pieter van Linschoten				#
# Licence: GNU General Public Licence	#
# Project: Easy Language System			#
# Version: 0.1 BETA						#
# Publish Date: Januari 23, 2008		#
# Page: DispTextClass.php					#
# Questions: webmaster@lapidi.nl		#
#########################################


#@ Display Text in correct Language
class DispText{
	var $Mod;
	var $Lang;
	var $Content;
	
	#@ Weergeef foutmeldingen alleen in DEBUGMODUS voor Moderators. 
	function DispError($error){
		if($this->Mod == 1){
			die($error);
			$this->Content .= $error;
		}
	}
	
	#@ Initialiseer de class, wanneer deze wordt aangemaakt.
	function DispText($LangCode='EN',$Moderator=0){
		$this->Mod = $Moderator;
		$this->Lang = $LangCode;
	}
	
	#@ Wanneer iemand moderator is, moet hij natuurlijk wel de tekst aan kunnen passen.
	# Daarom zetten we een [EDIT] knopje erbij.
	function Moderator($PartCode){
		if($this->Mod == 1){
			return "&nbsp;[<a <a href=\"class.php?mod=edit&Part=" . $PartCode . "\" onclick=\"window.open('EditText.php?mod=edit&Part=" . $PartCode . "','Edit','width=400, height=400, scrollbars=yes, toolbar=no, location=no'); return false\" title='Edit'>Edit</a>]";
		}
	}
	
	#@ Hier wordt de bijbehorende taal uit de Database gehaalt.
	# Wanneer deze nog niet in de database staat, zetten we de partcode_langcode neer, om te laten zien dat hier nog iets moet komen.
	function _Text($PartCode){
		$qSql	= "SELECT Text_Content FROM Text_Display WHERE Text_LangCode = '" . $this->Lang. "' AND Text_PartCode = '" . $PartCode . "' LIMIT 1";
		$qResponse = mysql_query($qSql) or $this->DispError(mysql_error());
		
		if(mysql_num_rows($qResponse) == 0){
			return "[" . $PartCode . "_" . $this->Lang . "]" . $this->Moderator($PartCode);
		}else{
			$qRow = mysql_fetch_array($qResponse);
			return $qRow['Text_Content'] . $this->Moderator($PartCode);
		}
	}
	
}
?>
[/code]

- - - = = = IncludeFile = = = - - - 
[code]
<?php
#########################################
# By: Pieter van Linschoten				#
# Licence: GNU General Public Licence	#
# Project: Easy Language System			#
# Version: 0.1  BETA					#
# Publish Date: Januari 23, 2008		#
# Page: IncludeFile.php					#
# Questions: webmaster@lapidi.nl		#
#########################################


session_start();

#@ Database connectie, ook niet onhandig...
$user = "username"; 
$dbpass = "password"; 
$host = "hostname"; 
$dbdb = "database"; 

if (!mysql_select_db($dbdb, mysql_connect($host, $user, $dbpass))) 
{ 
     echo "Database connectie mislukt."; 
     exit(); 
} 

# Initialiseer variabelen
$aLang = array();
$ListMenu = NULL; # Dit word het menu
$cntr = 0;

#@ Bepaal de ondersteunende talen.
#@ Maak een menu van deze talen.
$LangSql = "SELECT * FROM Text_Languages ORDER BY Text_Language ASC";
$LangResponse = mysql_query($LangSql);

#@ Indien er geen talen in de DB staan, geen menu aanmaken.
if(mysql_num_rows($LangResponse) == 0){
	$ListMenu = '';
	$aLang[] = NULL;
}else{
	while($LangRow = mysql_fetch_array($LangResponse)){
		$cntr++;
		# Array met bestaande talen
		$aLang[] = $LangRow['Text_LangCode'];
		
		# Het menu: Je kan er ook voor kiezen om plaatjes in te voeren.
		# Ik heb hier gewoon text, waarvan de gekozen taal dikgedrukt is.
		if(isset($_GET['setlang'])){
			if($_GET['setlang'] == $LangRow['Text_LangCode']){
				$bold = ' style= "font-weight:bold; "';
			}else{
				$bold = ' ';
			}
		}elseif(isset($_SESSION['lang']) && ($_SESSION['lang'] == $LangRow['Text_LangCode'])){
			$bold = ' style= "font-weight:bold; "';
		}else{
			$bold = ' ';
		}
		$ListMenu .= "<a".$bold."href='".$_SERVER["PHP_SELF"]."?setlang=" . $LangRow['Text_LangCode'] . "'>" . $LangRow['Text_Language'] . "</a>" . ($cntr == mysql_num_rows($LangResponse) ? ' ' : ' | ');
	}
}

#@ Controleer of iemand van taal wil veranderen
if(!empty($_GET['setlang']) && isset($_GET['setlang'])){
	# Controleer of deze taal toegestaan is.
	if(in_array($_GET['setlang'],$aLang)){
		# Onthoudt gekozen taal dmv een sessie
		$_SESSION['lang'] = $_GET['setlang'];
	}
}

#@ Controleer of er een taal is onthouden. Zo niet: Dwing om er een te kiezen.
if(!isset($_SESSION['lang'])){
	echo '<b>Select Language:</b> <p>' . $ListMenu . '</p>';
	exit();
}

# En haal de display class erbij.
require_once("DispTextClass.php");
?>
[/code]