domain.dk soll auf domain.de/cms/..?changelang=2 zugreifen
domain.dk soll auf domain.de/cms/..?changelang=2 zugreifen
Ich versuch mal mein aktuelles Problem einigermaßen zu beschreiben:
Inhalte der .de sind unter domain.de/cms aufrufbar.
domain.dk ordner ist bis auf temp. htaccess weiterleitung leer.
ich möchte (sofern realisierbar) bei aufruf der domain.dk auf domain.de/cms/front_content.php?changelang=x weiterleiten
ABER
in der adresszeile und in den links soll natürlich domain.dk stehen?
Bin mit
http://contenido.org/forum/viewtopic.php?p=68877#68877
nicht bedeutend weiter gekommen.
Leider absolut nicht mein Gebiet.
Wäre über schnelle Hilfestellung dankbar.
Inhalte der .de sind unter domain.de/cms aufrufbar.
domain.dk ordner ist bis auf temp. htaccess weiterleitung leer.
ich möchte (sofern realisierbar) bei aufruf der domain.dk auf domain.de/cms/front_content.php?changelang=x weiterleiten
ABER
in der adresszeile und in den links soll natürlich domain.dk stehen?
Bin mit
http://contenido.org/forum/viewtopic.php?p=68877#68877
nicht bedeutend weiter gekommen.
Leider absolut nicht mein Gebiet.
Wäre über schnelle Hilfestellung dankbar.
Hallo,
die Lösung unter Thema http://contenido.org/forum/viewtopic.php?p=68877#68877 ist zum Setzen des korrekten Wertes für den base Tag, was bei Multidomains auf eine Contenidoinstallation und ein Mandant wichtig ist.
Du möchtest eine bestimmte Sprache abhängig von der Domain machen, das lässt sich eigentlich auch mit Mandanteneinstellungen und einem kleinen Hack in der front_content.php machen. Dafür kannst du z. B. folgende Variable in Mandanteneinstellungen anlegen:
Der Name ist einfach zusammengstellter String aus 'language4' und dem eigentlichen Domainnamen (z. B. www.domain.dk). Value enthält die id der Sprache.
In der front_content.php kannst du ab der Zeile 129 folgendes hinzufügen:
Der Code sollte dafür sorgen, dass die Sprache auf die in den Mandanteneinstellungen festgelegten Sprache für die aktuelle Domain gesetzt wird, ohne ein Redirect mit changelang=id.
Allerdings habe ich den Code nicht auf Herz und Nieren getestet und kann auch nicht sicher sagen, ob es sich auf andere Bereiche negativ auswirkt. Daher würde ich es richtig durchtesten (auch im Backend) bevor es live geht...
Gruß
xmurrix
die Lösung unter Thema http://contenido.org/forum/viewtopic.php?p=68877#68877 ist zum Setzen des korrekten Wertes für den base Tag, was bei Multidomains auf eine Contenidoinstallation und ein Mandant wichtig ist.
Du möchtest eine bestimmte Sprache abhängig von der Domain machen, das lässt sich eigentlich auch mit Mandanteneinstellungen und einem kleinen Hack in der front_content.php machen. Dafür kannst du z. B. folgende Variable in Mandanteneinstellungen anlegen:
Code: Alles auswählen
type: client
name: language4www.domain.dk
value: 2
In der front_content.php kannst du ab der Zeile 129 folgendes hinzufügen:
Code: Alles auswählen
...
// Ab Zeile 129
if (isset($lang) && !is_numeric($lang)) {
unset ($lang);
}
if (!is_object($oClient)) {
cInclude('classes', 'contenido/class.client.php');
$oClient = new cApiClient($client);
}
$domainlang = $oClient->getProperty('client', 'language4'.$_SERVER['HTTP_HOST']);
if (is_numeric($domainlang) && $domainlang > 0 && $domainlang != $lang) {
$lang = $domainlang;
$sess->register("lang");
unset($domainlang);
}
// Change client
if (isset($changeclient)){
...
Allerdings habe ich den Code nicht auf Herz und Nieren getestet und kann auch nicht sicher sagen, ob es sich auf andere Bereiche negativ auswirkt. Daher würde ich es richtig durchtesten (auch im Backend) bevor es live geht...
Gruß
xmurrix
Hallo,
es gibt noch 2 weitere Versionen der front_content.php, diese sollten auch angepasst werden (oder auch nicht).
Vielleicht hilft es, wenn du die eine if-Anweisung folgendermaßen Erweiterst:
Dann sollte die Sprache nicht nach der in den Client-Settings definierten Werten gesetzt werden, wenn die front_content.php im Backend läuft.
Gruß
xmurrix
es gibt noch 2 weitere Versionen der front_content.php, diese sollten auch angepasst werden (oder auch nicht).
- /contenido/external/frontend/front_content.php:
Verwendung als Vorlage, beim Anlegen eines neuen Mandanten
- /contenido/external/backendedit/front_content.php:
Wird im Backend zum Editieren und Preview der Seiten verwendet.
Vielleicht hilft es, wenn du die eine if-Anweisung folgendermaßen Erweiterst:
Code: Alles auswählen
if (is_numeric($domainlang) && $domainlang > 0 && $domainlang != $lang && !$contenido) {
Gruß
xmurrix
Habe noch folgendes Problem, dass erst nach dem zweiten Aufruf der Länderdomain die Sprache geändert wird.
Beim ersten Aufruf gibt es noch kein Cookie für die .dk Domain bzw. wird erst geschrieben.
Wenn die Seite nun aktualisiert wird oder die Domain direkt aufgerufen wird, dann funktioniert erst die Umschaltung der Sprache.
1) keine Cookies (= neuer Besucher)
2) .de Domain wird aufgerufen (-> Inhalt deutsch)
3) .dk wird aufgerufen (-> Inhalt deutsch -> .dk Cookie wird geschrieben)
4) .dk -erneut- aufrufen (-> Inhalt dänisch)
Beim ersten Aufruf gibt es noch kein Cookie für die .dk Domain bzw. wird erst geschrieben.
Wenn die Seite nun aktualisiert wird oder die Domain direkt aufgerufen wird, dann funktioniert erst die Umschaltung der Sprache.
1) keine Cookies (= neuer Besucher)
2) .de Domain wird aufgerufen (-> Inhalt deutsch)
3) .dk wird aufgerufen (-> Inhalt deutsch -> .dk Cookie wird geschrieben)
4) .dk -erneut- aufrufen (-> Inhalt dänisch)
Habe nun die hier im Thread beschriebene Vorgehensweise in eine Contenido-Installation (4.6.15) eingebaut und bei mir funzt es wunderbar.
Im Frontend wird die Sprache je nach HTTP_HOST gesetzt und dementsprechend werden auch die Inhalte korrekt angezeigt. Im Backend können die Inhalte der Seite über die im Backend gewählte Sprache bearbeitet werden.
Am Cookie oder der Session kann es nicht liegen. Der Code-Snippet hier im Beispiel überschreibt die Sprache, egal ob die Sprache von der Session kommt oder nicht. Beim ersten Aufruf der Seite wird die korrekte Sprache gesetzt.
Das Problem wird wohl woanders sein. Entweder beeinflussen andere Änderungen an Contenido-Sourcen die korrekte Funktionalität oder die Konfiguration des HTTP-Servers. Vielleicht macht der HTTP-Server beim ersten Request von *.dk ein internes Mapping auf die *.de (falls sowas möglich ist) und in der Variable $_SERVER['HTTP_HOST'] steht 'www.domain.de' drin, 'www.domain.dk' erst beim zweiten Request...
Gruß
xmurrix
Im Frontend wird die Sprache je nach HTTP_HOST gesetzt und dementsprechend werden auch die Inhalte korrekt angezeigt. Im Backend können die Inhalte der Seite über die im Backend gewählte Sprache bearbeitet werden.
Am Cookie oder der Session kann es nicht liegen. Der Code-Snippet hier im Beispiel überschreibt die Sprache, egal ob die Sprache von der Session kommt oder nicht. Beim ersten Aufruf der Seite wird die korrekte Sprache gesetzt.
Das Problem wird wohl woanders sein. Entweder beeinflussen andere Änderungen an Contenido-Sourcen die korrekte Funktionalität oder die Konfiguration des HTTP-Servers. Vielleicht macht der HTTP-Server beim ersten Request von *.dk ein internes Mapping auf die *.de (falls sowas möglich ist) und in der Variable $_SERVER['HTTP_HOST'] steht 'www.domain.de' drin, 'www.domain.dk' erst beim zweiten Request...
Gruß
xmurrix
funktioniert nun alles soweit.
ca 10 sprachen, 10 länderdomains unter einem mandanten und mr.
ne feine sache, vielen dank nochmal.
habe nun gestern eine .fi domain zugeschalten,
man sollte meinen die funktioniert genauso wie zb. die .dk Domain.
die .fi domain bleibt aber an der .htaccess hängen.
403
sobald ich die htaccess entferne werden inhalte angezeigt.
kann ich momentan nicht nachvollziehen, wenn jemand eine idee hat, hab ich eher feierabend ;0)
ca 10 sprachen, 10 länderdomains unter einem mandanten und mr.
ne feine sache, vielen dank nochmal.
habe nun gestern eine .fi domain zugeschalten,
man sollte meinen die funktioniert genauso wie zb. die .dk Domain.
die .fi domain bleibt aber an der .htaccess hängen.
403
sobald ich die htaccess entferne werden inhalte angezeigt.
kann ich momentan nicht nachvollziehen, wenn jemand eine idee hat, hab ich eher feierabend ;0)