Sie sind nicht angemeldet.

11

Mittwoch, 3. Februar 2010, 19:05

Zitat

seh ich nicht ganz so...bei meiner version kann man sich bei der installation den präfix aussuchen. dieser wird ebenfalls in die mysql.inc.php geschrieben damit er bei einer mysql-abfrage automatisch abgerufen wird. somit ist der präfix frei wählbar und man kann eine "unendliche" anzahl an cms installieren ;)
Gibts deine Version auch zum runterladen? Ich geh eher nicht davon aus, also für alle anderen der beschriebene Weg..

Werbung

12

Mittwoch, 3. Februar 2010, 19:26

So entschuldigt die Doppelposts, der vollständigkeit halber erläuter ich aber noch meinen Lösungsweg um anderen die Arbeit ebenfalls zu vereinfachen:

Problem 1: cms2day zweimal installieren mit nur einer Datenbank.
Lösung:
In jeder Datei (alle Dateien in den Verzeichnissen "/admin/inc/", "/install/" und die einzelnen Dateien "/admin/index.php", "/includes/config.inc.php" und "/index.php" ) bei jeder Funktion, die die Datenbank aufruft (beginnt immer mit "mysql_query" und dann folgt entweder "SELECT", "INSERT", "DELETE" oder "UPDATE") ein Präfix einfügen (z.B. "en_").

Konkret wird dann z.B. aus mysql_query("SELECT * FROM admin WHERE id='1'") das hier: mysql_query("SELECT * FROM en_admin WHERE id='1'") (Präfix mit rot makiert)

Problem 2: Einige Module sollen bei zwei installieren Versionen die gleiche Datenbanktabelle benutzen
Achtung: Funktioniert nur wenn beide Versionen die gleiche mySQL-Datenbank nutzen! (siehe Präfixe)
Lösung: Das Modul einfach bei beiden Versionen in den "includes/module/"-Ordner verschieben und bei beiden Versionen installieren. Da die Module OHNE Präfixe installiert werden nutzen beide automatisch die gleiche Datenbanktabelle. Die Module müssen aber AUF JEDENFALL bei beiden Versionen installiert werden, da ihr sie sonst nicht als Seite einbinden könnt.

(Hab das nun nur beim Gästebuch getestet)

Liebe Grüße

Edit: @cms2day: Jippiee ^^ Ich bin zwar grade schon fast komplett am durch drehen weil ich nun 3 stunden daran saß, aber egal, ist schließlich ne kundenarbeit... ;)

Achso, Beispiel könnt ihr euch (zumindest temporär) auf www.android-blogger.de und www.android-blogger.de/en/ angucken


Das ist total clever ... Und ich Idiot schlug dir Trigger vor. Das ist eine geniale Variante.

Werbung

13

Mittwoch, 3. Februar 2010, 20:03

Danke ;) Ich kam mit den Triggern nicht ganz klar, also hab ich erstmal ein wenig rumprobiert (vll. war ich auch zu faul bei den Modulen auch überall noch präfixe vorzuschreiben ;) )

Ich hab aber noch ein anderes Problem:

Das CMS ignoriert das gewählte Template Verzeichniss (wollte bei beiden einfach das gleiche Template wählen). Dieses Problem hab ich aber auch schon bei anderen Seiten mitbekommen, es kann also nicht an der gleichen Datenbank etc. liegen. Ist das ein bekanntes Problem?

Werbung

14

Donnerstag, 4. Februar 2010, 17:38

wäre es denn nicht besser das alles mit javascript zu machen habe hier ein tut von lima-city (http://www.lima-city.de/tutorials/2-spra…epage-betreiben).



Du hast eine Homepage, die in 2 Sprachen vorhanden ist ? Dann empfehle ich dir, dieses Tutorial durchzulesen. Hier wird dir nämlich erklärt, wie du eine Homepage mit 2 Sprachen ganz einfach betreibein kannst.

Zuerst legst du die Datei index.php an. In diese fügst du diesen Code ein:

$lang[1] = 'de';
$lang[2] = 'en';


statt de und en kannst du auch andere Kürzel einfügen, wie "pl" für polnisch, "dk" für dänisch usw. "de" steht für deutsch und "en" für englisch.

Dass allein tuts aber noch nicht - jetzt ergänzt du die index.php mit folgendem Code:

if ($_GET['lang'] == $lang[1]) {
if(isset($_GET['show'])) {
$show = $_GET['show'];
include($show.'_'.$lang[1].'.html');
}
if(!isset($_GET['show'])) {
include($lang[1].'.html');
}
}
elseif ($_GET['lang'] == $lang[2]) {
$show = $_GET['show'];
if(isset($_GET['show'])) {
include($show.'_'.$lang[2].'.html');
}
if(!isset($_GET['show'])) {
include($lang[2].'.html');
}
}
else {
include('index.html');
}

Als erstes schaut das Script, ob der User eine Sprache ausgewählt hat. Hat er das, so wird die Startseite der gewählten Sprache angezeigt. Diese heißt in unserem Beispiel de.html oder en.html. Die Startseite der Sprache heißt immer
lang-kürzel.html, also je nach dem was sie bei $lang[1] und $lang[2] gesetzt haben. Z.B.: de.html (deutsch), en.html (englisch), dk.html (dänisch), pl.html (polnisch).
Hat der User noch keine Sprache ausgewählt, so wird die index.html angezeigt.

Vielleicht will der User aber auch garnicht die Startseite der von ihm gewählten Sprache sehen, sonderen eine andere Seite. Dann muss er index.php?lang=[lang-kürzel]&show=[seitenname] aufrufen. Dann wird, jenachdem was der User angegeben hat, $_GET['lang']_$_GET['show'].html angezeigt. Wenn der User also index.php?lang=en&show=aboutme aufruft, so wird die Datei aboutme_en.html angezeigt.

Noch kurz das "Query String Manual":
index.php - Startseite (Dort wird die Sprache ausgewählt)
index.php?lang=[lang-kürzel] - Startseite der Sprache [lang-kürzel]
index.php?lang=[lang-kürzel]&show=[seitenname] - [seitenname]_[lang-kürzel].html wird angezeigt.

Werbung

15

Donnerstag, 4. Februar 2010, 17:48

Ich möchte gerne sehen, wie du mit diesen Codeschnippseln das Ganze in cms2day umsetzt. Da geht es nicht um eine einfache Seite sondern um eine von einem CMS generierter Seite. Da kannst du diesen Code gleich in Eimer schmeissen.

Werbung

16

Donnerstag, 4. Februar 2010, 18:32

Nett gemeint, funktioniert auch durchaus für eine kleine html-basierte seite, aber für das CMS ist das keine Lösung ;)

Werbung

17

Donnerstag, 4. Februar 2010, 18:36

ich habe wenig ahnung was php angeht aber eventuell könnte man das so machen:

das menue vielleicht neu strukturieren wenn das modul installiert wird:

Menue:

de -
home
---- home 2
gbook
mehr
....
fr +
se +
uk +

und halt den javascript code entsprechend anpassen?

wäre das denn nicht möglich?

sonst halt einen sprachenwechseler der auf die menuelinks de,fr etc. entsprechend zugreift

Werbung

18

Donnerstag, 4. Februar 2010, 19:32

Thema führt nirgendwo hin daher Closed

Gruss
mantis

Werbung