easyhp-cms.org

Das offizielle Support-Forum zu EasyHP CMS

Zum Inhalt

Sprachwechsler - Zwischen Sprachen umherschalten

Beitragvon daniel am 17. Januar 2009, 16:31

Hier habe ich mal mit der Hilfe von EloKoN eine Mod gebastelt, mit der man die Sprache des CMS anpassen kann, d.h. jeder Gast kann seine angezeigte Sprache anzeigen.

Bevor du anfängst erstelle ein Backup der Daten und der Datenbank

Datenbankänderungen
Als erstes müssen die Tabellen entsprechend umbenannt werden:
Code: Alles auswählen
RENAME TABLE `easyhp_categories` TO `easyhp_categories_de`;

Code: Alles auswählen
RENAME TABLE `easyhp_menu` TO `easyhp_menu_de`;

Code: Alles auswählen
RENAME TABLE `easyhp_sites` TO `easyhp_sites_de ;

Code: Alles auswählen
RENAME TABLE `easyhp_site_comments` TO `easyhp_site_comments_de`;

Code: Alles auswählen
RENAME TABLE `easyhp_site_news` TO `easyhp_site_news_de`;


Für die andere Sprache müssen dann auch entsprechende Datenbanktabellen angelegt werden.
Hier das Beispiel für en (Englisch):
Code: Alles auswählen
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: Alles auswählen
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: Alles auswählen
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: Alles auswählen
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


Die User können mit Hilfe von sites.php?id=2&l=en die Sprache auf Englisch umstellen. Mit sites.php?id=2&l=de kann man wieder auf Deutsch umstellen. Natürlich können auch alle anderen Sprachen verwendet werden, nur müssen diese in dem folgendem array in der includes/sprache.php definiert werden:
Code: Alles auswählen
$sprachen = array('de', 'en');


Datei-Änderungen
Kopiere die includes/sprache.php nach includes/sprache.php

Öffne die includes/mysql.php

Finde :
Code: Alles auswählen
if (!defined("IN_EASYHP")) {
   die();
}


Und füge darunter ein:
Code: Alles auswählen
@include "includes/sprache.php";
@include "../sprache.php";


Danach öffne die common.php.

Finde darin:
Code: Alles auswählen
@include "language/$config->default_language/main_language.php";


Und ersetze es durch:
Code: Alles auswählen
@include "language/$sprach_ordner/main_language.php";



Öffne die Datei includes/constants.php.

Finde:
Code: Alles auswählen
//
// MySQL-Tables
//


Und füge davor ein:
Code: Alles auswählen
if (empty($sprache))
   $sprache1 = "_de";


Danach finde:
Code: Alles auswählen
define ("MENU_TABLE", $dbprefix . "_menu");


Ersetze durch:
Code: Alles auswählen
define ("MENU_TABLE", $dbprefix . $sprache1 . "_sites");


Finde:
Code: Alles auswählen
define ("SITES_TABLE", $dbprefix . "_menu");


Ersetze durch:
Code: Alles auswählen
define ("SITES_TABLE", $dbprefix . $sprache1 . "_sites");


Finde:
Code: Alles auswählen
define ("SITE_COMMENTS_TABLE", $dbprefix . "_site_comments");


Ersetze durch:
Code: Alles auswählen
define ("SITE_COMMENTS_TABLE", $dbprefix.$sprache1 .  "_site_comments");


Finde:
Code: Alles auswählen
define ("NEWS_TABLE", $dbprefix . "_site_news");


Ersetze durch:
Code: Alles auswählen
define ("NEWS_TABLE", $dbprefix . $sprache1 . "_site_news");


Da zwei Einstellungen, bei diesem Mod überflüssig werden, können die folgenden Schritte noch ausgeführt werden.

Sind aber nicht zwingend notwendig:

Öffne die admin/admin_configuration.php ...

Und finde:
Code: Alles auswählen
$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'";


Ersetze es durch:
Code: Alles auswählen
$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'";


Öffne die styles/wattlaufen/admin/admin_configuration.html.

Suche und lösche:
Code: Alles auswählen
<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>


Suche und lösche:
Code: Alles auswählen
<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>
http://www.daniel-schlueter.de.vu | http://www.seko-forum.de.vu
Meine Homepage | Mein Forum
Benutzeravatar
daniel
Supporter
Supporter
 
Beiträge: 171
Registriert: 13. März 2008, 16:49
Wohnort: Bremen
  • Website
  • ICQ
Nach oben

-->
EasyHP Powered by Laurenz Ruprecht © Laurenz Ruprecht
phpBB skin developed by: Abdul Turan
Powered by phpBB © phpBB Group