Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: cms2day Forum - Community & Support rund ums cms2day. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Dienstag, 2. Februar 2010, 19:28

Zweisprachige Version

Hallo allerseits,
ich versuche mich kurz und knapp zu fassen:

Zweisprachige Version realisiert indem das CMS zweimal installiert wurde
(1. www.beispiel.de 2. www.beispiel.de/en/)
Dies ist praktisch da so die zwei Sprachen strikt voneinander getrennt sind.

Nun gibt es Fälle in denen einzelne Unter-Seiten allerdings nicht strikt voneinander getrennt sein sollen.

Beispiele:
Gästebuch-Kommentare sollen auf beiden Seiten identisch sein und zeitgleich erscheinen
Fotos sollen lediglich in eine der beiden CMS Versionen eingepflegt werden
Newsletter-Adressen sollen automatisch in beiden Modulen eingefügt werden

Ich dachte mir das die einfachste Lösung dafür wäre, das einzelne Module die gleiche MySQL Tabelle benutzen. Soweit ich weiß nutzen alle Module und alle Funktionen den selben MySQL Zugang welcher unter mysql.inc.php angegeben ist.

Frage: Wäre es möglich das einzelne Module einen anderen mySQL Zugang nutzen? Wenn ja, wie?

Zweite Frage: Können zwei installationen eine Datenbank nutzen mit verschiedenen Tabellen-präfixen? (Es ist nur eine MySQL Datenbank vorhanden)

Danke im Vorraus, bei Verständnissfragen einfach nachfragen,

liebe Grüße

Werbung

2

Dienstag, 2. Februar 2010, 21:00

Da hast du dir etwas vorgenommen ...

Präfixe sind in der 3er Version nicht möglich. Und ein Konstrukt zu erstellen, in der immer wieder neue Verbindungen hergestellt werden, halte ich für sehr unvorteilhaft und mühsam zu realisieren.

Das Beste und einfachste wäre es, das ganze CMS mit Präfixen zu versehen. Das solltest du schnell hinkriegen. Anschliessend beide Sprachen auf der gleichen Datenbank anlegen und bei den Tabellen, die parallel laufen sollen, jeweils einen Trigger erstellen. Wird in der deutschen Datenbanktabelle ein Eintrag erstellt, soll der gleiche Eintrag in der Englischen erstellt werden und umgekehrt. Dafür brauchst du aber die Version 5.1 von MySQL und den InnoDB Treiber. Das CMS benutzt MyISAM. Aber die Statements kannst du schnell anpassen.

http://dev.mysql.com/doc/refman/5.1/de/triggers.html

Nunja, ob dies mehr Arbeit ist, als zwei CMS' zu bewirtschaften, ist natürlich eine andere Frage.

Werbung

3

Mittwoch, 3. Februar 2010, 09:16

Hyperlink zum Gästebuch ist praktisch nicht umsetzbar, da dann der englische user ungewollt auf der deutschen seite landet.

Das mit den präfixen wird wohl am einfachsten sein, hat denn jemand schon eine angepasste version die er mir geben kann?

Ob das mit den triggern funktioniert werd ich heute na hmittag mal probieren. Sonst jemand noch eine lösungsidee? Danke schomal :)

Werbung

4

Mittwoch, 3. Februar 2010, 09:35

Das Gästebuch sowie die "dualen" Module kannst Du mit einem iframe einbinden, ist nicht eine saubere Lösung funzt aber.

Gruss
mantis

Werbung

5

Mittwoch, 3. Februar 2010, 15:49

Die einfachste Lösung ist nicht immer die schönste. Vorallem ein iFrame.
Abgesehen davon ist es aber auch einfach nicht praktikabel, wieso sollte ich auf der englischen Seite das deutsche Gästebuch einbinden? Es geht um die selben Einträge, nicht um das selbe Formular (was dann unpraktischerweise ebenfalls auf Deutsch wäre)

Auf die 4. Version zu warten ist genauso wenig eine Lösung da ich eine zeitnahe umsetzung benötige.

Könnte mir jemand zumindest theoretisch erklären wie man Präfixe hinzufügt, bzw. gibt es niemanden der seine Version bereits dementsprechend editiert hat?

Liebe Grüße

Werbung

6

Mittwoch, 3. Februar 2010, 15:56

Die Theorie ist immer so schön simple:

Für alle Installationsroutinen (.sql), Deinstallationsroutinen(.sql) sowie für jeden Aufruf (u.a. select, alter, update usw.) in jeder Datei der die db berührt den gewünschten Prefix einfügen(voranstellen).

Ferner
Nun gibt es Fälle in denen einzelne Unter-Seiten allerdings nicht strikt voneinander getrennt sein sollen.



Beispiele:

Gästebuch-Kommentare sollen auf beiden Seiten identisch sein und zeitgleich erscheinen

Fotos sollen lediglich in eine der beiden CMS Versionen eingepflegt werden

Newsletter-Adressen sollen automatisch in beiden Modulen eingefügt werden
Daher der iframe

Gruss
mantis

Werbung

7

Mittwoch, 3. Februar 2010, 16:10

Okay also jetzt sollte es eigentlich funktionieren, hab alle Sachen in jeder Datei abgeändert.

Im Grunde genommen muss man doch lediglich nach "mysql_fetch_assoc(mysql_query("SELECT * FROM" suchen und dann mit folgendem ersetzen "mysql_fetch_assoc(mysql_query("SELECT * FROM en_" (vorrausgesetzt das Präfix heißt "en_")

hab ich nun etwas übersehen oder läuft das so?

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Luchador« (3. Februar 2010, 16:36)


Werbung

8

Mittwoch, 3. Februar 2010, 17:33

Also ich such jetzt seit fast einer Stunde den Fehler, ich kann mich nicht als Admin einloggen, wahrscheinlich wird der Cookie nicht richtig gesetzt, woran es genau liegt kann ich aber nicht sagen. Kann mir jemand helfen?

Werbung

cms2day

Profi

  • »cms2day« ist männlich

Beiträge: 1 282

CMS Version: 4.x/5.x

Beruf: Webentwickler

Paypal:

  • Nachricht senden

9

Mittwoch, 3. Februar 2010, 18:11

Ohje, da haste dir aber was vorgenommen.
Die is schon klar, dass am vorraussichtlich am WE ein Update kommt, wo Du alles überschreiben musst?!

:|

Werbung

10

Mittwoch, 3. Februar 2010, 18:21

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

Werbung