Bitte les dir lieber die html-datei durch


Hier habe ich mal mit der Hilfe von EloKoN eine Mod gebastelt mit der man die Sprache des cms an die Gste anpassen kann. also jeder Gast kann sich eine Sprache auswhlen

[size=150][color=#FF0000][b]bevor du anfngst mache ein Backup der Daten und der Datenbank[/b][/color][/size]

[b]Datenbanknderungen[/b]
als erstes mssen die Tabellen entsprechend umbenannt werden:
[code]RENAME TABLE `easyhp_categories` TO `easyhp_categories_de` ;[/code]
[code]RENAME TABLE `easyhp_menu` TO `easyhp_menu_de` ;[/code]
[code]RENAME TABLE `easyhp_sites` TO `easyhp_sites_de` ;[/code]
[code]RENAME TABLE `easyhp_site_comments` TO `easyhp_site_comments_de` ;[/code]
[code]RENAME TABLE `easyhp_site_news` TO `easyhp_site_news_de` ;[/code]

fr die andere Sprache mssen dann auch entsprechende Datenbanktabellen angelegt werden
Hier das Bsiepiel fr en (englisch):
[code]CREATE TABLE easyhp_menu_en (
  `id` int(11) NOT NULL auto_increment,
  `menu_order` int(10) unsigned NOT NULL default '0',
  `site_id` int(10) unsigned NOT NULL default '0',
  `title` varchar(55) collate latin1_general_ci NOT NULL default '',
  `link` varchar(255) collate latin1_general_ci NOT NULL default '',
  `ext` int(1) NOT NULL default '0',
  `window` varchar(15) collate latin1_general_ci NOT NULL default '',
  `level` char(1) collate latin1_general_ci NOT NULL default '0',
  `isset` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1[/code]
[code]CREATE TABLE easyhp_sites_en (
  `id` int(11) unsigned NOT NULL auto_increment,
  `title` varchar(55) collate latin1_general_ci NOT NULL default '',
  `text` mediumtext collate latin1_general_ci NOT NULL,
  `date` varchar(255) collate latin1_general_ci NOT NULL default '',
  `set_date` int(1) NOT NULL default '0',
  `cat` varchar(255) collate latin1_general_ci NOT NULL default '',
  `level` int(11) NOT NULL default '0',
  `trash` int(1) NOT NULL,
  `trash_date` varchar(255) collate latin1_general_ci NOT NULL,
  `comments_on` int(11) NOT NULL default '0',
  `news` int(1) NOT NULL default '0',
  `newssite` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1[/code]
[code]CREATE TABLE easyhp_site_comments_en (
  `id` int(11) NOT NULL auto_increment,
  `site_id` int(11) NOT NULL,
  `subject` varchar(55) collate latin1_general_ci NOT NULL,
  `username` varchar(255) collate latin1_general_ci NOT NULL,
  `date` varchar(255) collate latin1_general_ci NOT NULL,
  `text` text collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1[/code]
[code]CREATE TABLE easyhp_site_news_en (
  `id` int(11) NOT NULL auto_increment,
  `site_id` int(11) NOT NULL,
  `title` varchar(255) collate latin1_general_ci NOT NULL,
  `message` text collate latin1_general_ci NOT NULL,
  `username` varchar(255) collate latin1_general_ci NOT NULL,
  `date` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1[/code]

die User knnen mithilfe von [i]sites.php?id=2&l=en[/i] die englische Sprache aufrufen. mit [i]sites.php?id=2&l=de[/i] gelangt man wieder in die deutsche Version. natrlich knnen auch alle anderen Sprachen verwendet werden, nur mssen diese in dem folgendem array in der [i]includes/sprache.php[/i] eingefgt werden:
[code]$sprachen = array("de", "en");[/code]

[b]Dateinderungen[/b]
kopiere die [i]\includes\sprache.php[/i] nach [i]/includes/sprache.php[/i]

ffne die [i]includes/mysql.php[/i]

finde 
[code]if (!defined("IN_EASYHP")) {
	die();
}[/code]

fge darunter ein
[code]@include "includes/sprache.php";
@include "../sprache.php";[/code]

ffne die [i]common.php[/i]

finde:
[code]@include "language/$config->default_language/main_language.php";[/code]

ersetze durch:
[code]@include "language/$sprach_ordner/main_language.php";[/code]


ffne die [i]common.php[/i]

finde:
[code]//
// MySQL-Tables
//[/code]

fge dahinter ein:
[code]if (empty($sprache))
	$sprache1 = "_de";[/code]

finde:
[code]define ("MENU_TABLE", $dbprefix . "_menu");[/code]

ersetze durch:
[code]define ("MENU_TABLE", $dbprefix.$sprache1 . "_sites");[/code]

finde:
[code]define ("SITES_TABLE", $dbprefix . "_menu");[/code]

ersetze durch:
[code]define ("SITES_TABLE", $dbprefix.$sprache1 . "_sites");[/code]

finde:
[code]define ("SITE_COMMENTS_TABLE", $dbprefix . "_site_comments");[/code]

ersetze durch:
[code]define ("SITE_COMMENTS_TABLE", $dbprefix.$sprache1 .  "_site_comments");[/code]

finde:
[code]define ("NEWS_TABLE", $dbprefix . "_site_news");[/code]

ersetze durch:
[code]define ("NEWS_TABLE", $dbprefix.$sprache1 . "_site_news");[/code]

Da zwei Einstellungen, bei diesem Mod berflssig werden, knnen die folgenden schritte noch ausgefhrt werden.
sind aber nicht zwingend notwendig:

ffne die [i]admin/admin_configuration.php[/i]

finde:
[code]$query[save_settings] = "UPDATE " . CONFIG_TABLE . " SET domain_name = '$domain_name', website_name = '$website_name', website_title = '$website_title', path = '$path', default_style = '$default_style', default_language = '$default_language', footer_title = '$footer_title', disable = '$disable', logo_url = '$logo_url', email = '$email', frontpage = '$frontpage'";[/code]

ersetze durch:
[code]$query[save_settings] = "UPDATE " . CONFIG_TABLE . " SET domain_name = '$domain_name', website_name = '$website_name', website_title = '$website_title', path = '$path', default_style = '$default_style', footer_title = '$footer_title', disable = '$disable', logo_url = '$logo_url', email = '$email'";[/code]

ffne die [i]styles\wattlaufen\admin\admin_configuration.html[/i]

suche und lsche:
[code]<table width="100%">
	<tr>
	   <td width="20%">{l_default_language}</td>
	   <td width="80%">
		<select name="default_language">
			{d_default_language}
		</select>
	   </td>
	</tr>
</table>

<table>
	<tr>
	   <td><div class="desc">{desc_default_language}</div></td>
	</tr>
</table>[/code]

suche und lsche:
[code]<table width="100%">
	<tr>
	   <td width="20%">{l_frontpage}</td>
	   <td width="80%">
		<select name="frontpage">
			{d_frontpage}
		</select>
	   </td>
	</tr>
</table>

<table>
	<tr>
	   <td><div class="desc">{desc_frontpage}</div></td>
	</tr>
</table>[/code]