2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von Jamest » Do 8. Jan 2009, 12:04

Hallo liebe Community,

ich habe mal eine generelle Frage,

ich habe im Moment 2 getrennte Contenido Seiten laufen, die eine ist für eine deutsche Website und die 2te für die selbe Website für die Schweiz.

Es gibt also 2 Domains, www.domain.de und www.domain.ch, jede Domain zeigt selbstverständlich auf die passende Contenido installation.

Jetzt meine Frage, da viele Inhalte in der Deutschen Website auch identisch in die schweizer Website (im Moment per cut & paste) übernommen werden,
haben wir im Moment ziemlich viel Aufwand beide Seiten zu pflegen.

Hier wäre die Synchronisationsfunktion wie wenn man bei einen Mandanten, von einer Sprache in die nächste synchronisiert sehr hilfreich.

Jetzt ist allerdings die Frage, kann ich dann auch die Domains auf die richtige Sprache umleiten und wie? Weil der Mandantenpfad ist ja immer der gleiche.

Weil die Website selber ist an vielen Stellen gleich, soll jedoch nicht den Eindruck erwecken, das man einfach nur die Sprache umschaltet, (etwas andere Farbgebung, Layout, etc.)

Oder habe ich eventuell die Synchronisationsfunktion auch zwischen 2 Mandanten? Wie würdet ihr vorgehen?

Vielen Dank schonmal für eure Ideen.

Liebe Grüße

Jamest

MichFress
Beiträge: 750
Registriert: Mo 5. Jan 2004, 22:32
Wohnort: Bochum
Kontaktdaten:

Beitrag von MichFress » Fr 9. Jan 2009, 09:45

So wie du es beschreibst, scheint mir die Lösung mit einem Mandanten und zwei Sprachen die geeignetste zu sein.

Dafür nötige Anpassungen sind:
1) base-href abstellen - ist in 4.8.x über die Einstellungen machbar
2) je nach Domain die richtige Sprache laden - das müsste mit einer if-Bedingung in cms/config.php machbar sein.

Dann musst du nur noch beide Domains in dasselbe Mandantenverzeichnis leiten und die Sache ist technisch gesehen fertig.

PS: Nutzt du das mod_rewrite-Plugin?
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)

Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Beitrag von Jamest » Fr 9. Jan 2009, 10:06

Hi MichFress,

danke für die Infos, ja ich nutze das Mod_rewrite-Plugin.

Was genau meinst du mit base-href abstellen? Was macht base-href?

Grüße

Jamest

MichFress
Beiträge: 750
Registriert: Mo 5. Jan 2004, 22:32
Wohnort: Bochum
Kontaktdaten:

Beitrag von MichFress » Fr 9. Jan 2009, 10:51

base-href nimmt die Url, die in den Mandanteneinstellungen steht. Nähere Infos findest du im Netz und hier im Forum...

Die Benutzung des mod_rewrite-Plugins könnte die Sache unter Umständen etwas verkomplizieren. Ich würd's aber erstmal so versuchen, dass das Plugin nicht die Sprache mit in die Url aufnehmen soll... Vielleicht klappt's ja...
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Beitrag von malsdgtac » Fr 9. Jan 2009, 19:08

Hi Jamest,

die Synchronisation gibt es, meines Wissens, nur für einen Mandanten. So gesehen sind zwei Sprachen wahrscheinlich ganz gut für dich.

Ich würde an deiner Stelle ins Root eine index.php rein nehmen (die musst du dann in der .htaccess als Ausnahme angeben) und in dieser die Domain abfragen und dann auf die entsprechende Seite weiterleiten.

Etwa in der Art:

Code: Alles auswählen

if ($_SERVER['HTTP_HOST'] == "xyz.de") {
	header("Location: http://www.xyz.de/de/abc/");
} else {
	header("Location: http://www.xyz.ch/ch/abc/");
}
Daher musst du meiner Meinung nach auch unbedingt die Sprache im Mod_rewrite rein nehmen - genau das ist ja die Trennung deiner beiden Websites. Der base-href sollte keine Probleme machen.

Wozu ich noch keine Erfahrungen habe, ist dein Wunsch ein anderes Layout zu verwenden.

Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von Jamest » Mi 1. Apr 2009, 08:53

Hallo,

danke smac für den Tipp, ich habe es nun mal folgenderweise probiert, habe im domain root eine index.php erstellt mit folgendem inhalt:

Code: Alles auswählen

<?PHP
if ($_SERVER['HTTP_HOST'] == "www.domain.org") {
   header("Location: http://www.domain.org/startseite/startseite.html?changelang=1");
} else {
   header("Location: http://".$_SERVER['HTTP_HOST']."/startseite/startseite.html?changelang=2");
}
?>
Dies führt nun zum gewünschten Effekt das bei aufruf von domain.org in die erste Sprache weitergeleitet wird
und beim Aufruf von domain2.org in die 2te Sprache. Ich brauche nun weder in der URL die Sprache zu zeigen,
noch den Mandanten. Mit mod_rewrite klappt es auch problemlos.

Jetzt meine Fragen an die erfahrenen Contenido Benutzer:

- Habe ich durch diese Vorgehen irgendwelche Nachteile die ich jetzt noch nicht entdeckt habe?
- Was macht beispielsweise Google, weil die Domains jetzt ja sozusagen immer über die Hauptdomain laufen und dann nur umgeleitet werden?
- Ist das mit dem Changelang in der URL noch anders möglich?
- Gibt es eventuell andere Probleme?

Vielen Dank und eine angenehme Woche

Jamest

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von idea-tec » Mi 1. Apr 2009, 09:04

in der config.php:

Code: Alles auswählen

// If language isn't specified, set this client and language (ID)
if ($_SERVER['HTTP_HOST'] == "www.domain.org") {
   $load_lang		= "1";
} else {
   $load_lang		= "2";
}
sollte gehen
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von Jamest » Di 7. Apr 2009, 10:09

in der config.php:

Code: Alles auswählen

Code: Alles auswählen
    // If language isn't specified, set this client and language (ID)
    if ($_SERVER['HTTP_HOST'] == "www.domain.org") {
       $load_lang      = "1";
    } else {
       $load_lang      = "2";
    }
sollte gehen
Hallo idea-tec,

vielen Dank für den Tipp, das hat soweit gut geklappt, allerdings hab ich da jetzt ein Folge Problem.

Die Sprache wurde richtig umgestellt, allerdings verweisen alle links auf der Seite (Buttons, das von Contenido generierte Menu, etc...)
immernoch auf die .de domain, nicht auf die .ch domain. Was dazu führt dass wenn ich den link anklicke und die Domain wieder .de ist,
das $load_lang wieder auf 1 gesetzt wird und ich wieder auf die Deutsche seite umgeswitcht werde.

Hast du (hat jemand) dazu noch eine Idee? Gibt es eventuell noch eine weitere Contenido variable die ich ändern muss?
oder soll ich in der if Abfrage zusätzlich noch mit header("") arbeiten und umleiten?

Danke und Gruß

Jamest

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von idea-tec » Di 7. Apr 2009, 10:15

dann hättest du einen 2ten Mandanten anlegen müssen
also, der Mandant hat in seinen einstellungen eine Domain eingetragen, für diese gelten die einstellungen, also gehen alle links auf diese zugeordnete domain
wenn du das anders haben wolltest, so musst du einen zweiten mandanten anlegen

alternativ kannst du mal .htaccess-Cracks hier befragen, bzw. ich hoffe, dass ein solcher das hier liest und einen workaround für dich hat
mir fällt in der beschriebenen konstellation nicht ein, wie es gehen könnte
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von Jamest » Di 7. Apr 2009, 10:21

Hallo idea-tec,

Es gibt leider nur einen Mandanten, da ich die Synchronisation brauche. ;-)
Werde mal warten was noch für Tipps kommen, ansonsten hilft mir doch header("Location... ") doch schon ganz gut, oder?

Grüße

Jamest

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von kummer » Di 7. Apr 2009, 10:50

Jamest hat geschrieben:Jetzt meine Frage, da viele Inhalte in der Deutschen Website auch identisch in die schweizer Website (im Moment per cut & paste) übernommen werden,
haben wir im Moment ziemlich viel Aufwand beide Seiten zu pflegen.

Hier wäre die Synchronisationsfunktion wie wenn man bei einen Mandanten, von einer Sprache in die nächste synchronisiert sehr hilfreich.
ich bin nicht der meinung, dass du auf lange frist mit einer solchen lösung glücklich werden wirst. was geschieht zum beispiel, wenn du eine seite aktualisierst, die schon synchronisiert ist? dann musst du diese wieder löschen und neu synchronisieren. in der schweiz kommt dann erschwerend hinzu, dass du möglicherweise dann noch französisch oder italienisch in der site haben musst.

ich würde folgendes machen:

(1) zwei mandanten erstellen

(2) den einen mandanten (z.b. de) als hauptmandanten festlegen

(3) im zweiten mandanten (ch) alle seiten, welche identisch sein sollen, direkt aus dem hauptmandaten beziehen.

wenn eine seite dann sowohl in der de-domäne als auch in der ch-domäne ausgegeben werden soll, bezieht die ch-domäne die daten aus der de-domäne. wenn diese in der de-domäne aktualisiert wird, hast du die aktualisierung in der ch-domäne gleichzeitig. sonst musst du trotzdem beide mandanten (oder sprachen) aktualisieren.

wenn die layouts unterschiedlich sein müssen, machst du einfach drei mandanten:
1. zentraler mandant
2. de
3. ch

zentrale inhalte (die sowohl in ch wie auch in de angezeigt werden sollen) pflegst du im zentralen mandanten. in den anderen mandanten beziehst du die inhalte dynamisch.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

Jamest
Beiträge: 137
Registriert: Mi 2. Aug 2006, 09:29
Kontaktdaten:

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von Jamest » Do 9. Apr 2009, 10:26

Code: Alles auswählen

ich bin nicht der meinung, dass du auf lange frist mit einer solchen lösung glücklich werden wirst. was geschieht zum beispiel, wenn du eine seite aktualisierst, die schon synchronisiert ist? dann musst du diese wieder löschen und neu synchronisieren. in der schweiz kommt dann erschwerend hinzu, dass du möglicherweise dann noch französisch oder italienisch in der site haben musst.

ich würde folgendes machen:

(1) zwei mandanten erstellen

(2) den einen mandanten (z.b. de) als hauptmandanten festlegen

(3) im zweiten mandanten (ch) alle seiten, welche identisch sein sollen, direkt aus dem hauptmandaten beziehen.

wenn eine seite dann sowohl in der de-domäne als auch in der ch-domäne ausgegeben werden soll, bezieht die ch-domäne die daten aus der de-domäne. wenn diese in der de-domäne aktualisiert wird, hast du die aktualisierung in der ch-domäne gleichzeitig. sonst musst du trotzdem beide mandanten (oder sprachen) aktualisieren.

wenn die layouts unterschiedlich sein müssen, machst du einfach drei mandanten:
1. zentraler mandant
2. de
3. ch

zentrale inhalte (die sowohl in ch wie auch in de angezeigt werden sollen) pflegst du im zentralen mandanten. in den anderen mandanten beziehst du die inhalte dynamisch.
Hallo kummer,

das mit der Synchronisierung ist so schon ok, erstmal sollte es am Anfang Arbeit abnehmen um bestimmte Artikel von der deutschen Seite zu kopieren. In Zukunft wird es einfach so sein, das ein Artikel auf der deutschen Seite erstellt wird und dann zur Schweizer Seite synchronisiert und dort kurz angepasst wird, was manchmal nur die Währungsangaben sind, weiter nichts.

Zu deinem Vorschlag habe ich jedoch noch Fragen.
(2) den einen mandanten (z.b. de) als hauptmandanten festlegen
(3) im zweiten mandanten (ch) alle seiten, welche identisch sein sollen, direkt aus dem hauptmandaten beziehen.
Wie genau lege ich einen Mandanten als Hauptmandanten fest, und wie kann ich in einem zweiten Mandanten die Seiten aus dem Hauptmandanten beziehen?

Kannst du dazu vielleicht noch etwas ausführlicher werden?

Grüße

Jamest

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von kummer » Do 9. Apr 2009, 10:56

contenido stellt dazu keine bordmittel zur verfügung. mindestens noch nicht. du kannst die festlegung, welcher mandant nun der zentrale mandant ist, nicht in contenido abbilden. aber das spielt auch überhaupt keine rolle. du hast einfach zwei, oder auch drei mandanten. einer davon (den ich als hauptmandanten oder zentralen mandanten bezeichne) wird nicht über das frontend angesprochen, sondern nur über das backend. dessen aufgabe ist lediglich, die daten zu speichern.

bei den anderen mandanten (in nenne sie mal zielmandanten) benötigst du ein modul, dass einen inhalt aus einem anderen mandanten beziehen kann, die achor- und bildreferenzen (a- und img-tags) auf die geltende domäne umschreibt, den body-bereich isoliert und den so erhaltenen inhalt in der aktuellen seite ausgibt. das geht auf zwei verschiedene wege:

(1) durch ausführung des entsprechenden codes der con_code-tabelle (sofern ein entsprechender eintrag existiert) oder

(2) durch ansprechen des mandanten über http (einfach get-request und datenbezug).

das gleiche verfahren ist analog auch mit news möglich, wobei die artikelliste die daten einfach aus dem zentralen mandanten bezieht, statt aus dem aktuellen.

die synchronisation, wie sie für die sprachen vorgenommen wird, ist nicht dasselbe. dabei wird der artikel lediglich kopiert und ist von diesem moment an unabhängig (resp. teilweise unabhängig). änderungen in der einen sprache habe keine (oder kaum) auswirkungen auf die andere sprache. ich würde die sprachsynchronisation für eine solche aufgabe deshalb nicht wählen, weil auf lange frist vermutlich nicht beide sprachen denselben umfang aufweisen werden. wenn du nun einen artikel A von der sprache de in die sprache ch synchronisierst und später feststellst, dass du diesen artikel in der de-domäne nicht mehr benötigst, kannst du ihn nicht mehr löschen ohne zuvor auch den artikel der ch-domäne zu löschen. auch eine verschiebung in eine andere kategorie ist nicht möglich, ohne dass auch der andere artikel automatisch verschoben werden würde.

wenn es dir nur darum geht, die artikel nicht mehrfach schreiben zu müssen, würde ich dir folgendes emfpehlen:

lege für jede domäne einen eigenen kategoriebaum an, lass beide domänen auf dasselbe verzeichnis zeigen, mach mit htaccess ein rewrite, dass jeder domäne eine andere startkategorie zuweist (geht zur not auch im navigationsmodul). dann kannst du ganz einfach und normal artikel kopieren (statt sie zu synchronisieren) und dann verschiebst du sie an die richtige stelle. dann hast du volle unabhängigkeit vom synchronisationsmechanismus und kannst diesen nutzen für was er eigentlich vorgesehen wäre: für verschiedene sprachen. ausserdem kannst du dann auch gleich bilder und dokumente für den download in beiden domänen verwenden.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von Spider IT » Sa 26. Sep 2009, 09:51

Jamest hat geschrieben:
in der config.php:

Code: Alles auswählen

Code: Alles auswählen
    // If language isn't specified, set this client and language (ID)
    if ($_SERVER['HTTP_HOST'] == "www.domain.org") {
       $load_lang      = "1";
    } else {
       $load_lang      = "2";
    }
sollte gehen
Hallo idea-tec,

vielen Dank für den Tipp, das hat soweit gut geklappt, allerdings hab ich da jetzt ein Folge Problem.

Die Sprache wurde richtig umgestellt, allerdings verweisen alle links auf der Seite (Buttons, das von Contenido generierte Menu, etc...)
immernoch auf die .de domain, nicht auf die .ch domain. Was dazu führt dass wenn ich den link anklicke und die Domain wieder .de ist,
das $load_lang wieder auf 1 gesetzt wird und ich wieder auf die Deutsche seite umgeswitcht werde.

Hast du (hat jemand) dazu noch eine Idee? Gibt es eventuell noch eine weitere Contenido variable die ich ändern muss?
oder soll ich in der if Abfrage zusätzlich noch mit header("") arbeiten und umleiten?

Danke und Gruß

Jamest
Hallo Jamest (und alle anderen die mit dem gleichen Problem kämpfen),

die Lösung ist einfach: unter Administration - System - Systemeinstellungen das Häkchen für "Basehref erzeugen" rausnehmen.
Hierdurch wird nicht mehr die BaseHREF, die HauptURI des Mandanten, mit in die Ausgabe geschrieben.
Die BaseHREF hat eigentlich als einziges Ziel, unterschiedliche SeitenURLs zu vermeiden, indem alle Links auf die komplette URL erweitert werden.
Wenn dann im Browser http://domain.de aufgerufen wird und ein Link front_content.php?idcat=3 existiert, wird durch die BaseHREF-Angabe http://www.domain.de der Link für den Browser in http://www.domain.de/front_content.php?idcat=3 umgewandelt.
Hiermit wird die URL http://domain.de/front_content.php?idcat=3 vermieden.
Ohne die BaseHREF Angabe beziehen sich alle Links auf die aufgerufene Adresse, was in unserem Fall genau das gewünschte Ergebnis zur Folge hat.
Wenn ihr trotzdem eine BaseHREF Angabe haben möchtet, diesen aber für die aufgerufene Adresse, dann packt doch einfach ein Modul rein welches die aufgerufene Adresse auswertet ($_SERVER["HTTP_HOST"]) und anhand dessen die Angabe schreibt.
(Eine schönere Alternative zur BaseHREF ist eine Umleitung schon in eine .htaccess Datei, dann wird bereits der erste Aufruf korrigiert.)

Gruß
René

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: 2 Mandanten oder lieber 1 Mandant + 2 Sprachen?

Beitrag von Spider IT » Mo 28. Sep 2009, 09:29

Ergänzung/Korrektur:
Beim Einsatz von Advanced ModRewrite (AMR) kann man auf den Einsatz des base href Tags nicht verzichten, da hier die URLs um die Kategorien erweitert werden.
Dies hat zur Folge, dass z.B. das Stylesheet aus einem nicht existierenden Pfad geladen wird (http://www.domain.de/kategorie/style.css).

Und hier der Code für das BaseHREF Modul:

Code: Alles auswählen

<?php
    $url = $_SERVER['HTTP_HOST'];
    if (substr($url, 0, 4) == 'www.') {
?>
<base href="http://<?=$url?>/" /><?php
    } else {
?>
<base href="http://www.<?=$url?>/" /><?php
    }
?>
(erweiterbar mit elseif für andere Domains).

Achtung!
Dieser Code setzt www. vor der aufgerufenen URL wenn dieser damit nicht anfängt.
Dies kann bei Subdomains zu unerwünschten Ergebnissen führen.
Hierfür kann man aber die if-Zeile erweitern.

Gruß
René

Gesperrt