Seite 1 von 1
2 Mandanten mit gleichem Serverpfad und verlinkt
Verfasst: Mi 30. Mär 2005, 10:53
von Hagbard
Hallo zusammen,
ich habe zwei Mandanten angelegt die beide den selben Serverpfad benutzen. Grund hierfür ist, daß ich zwei Sprachen verwalten möchte, wobei die zweite Sprache eine komplett andere Seitenstruktur hat. Darum der zweite Mandant. Damit ich auf die gleichen Daten im Uploadverzeichnis zugreifen kann, sind beide Serverpfade bei den Mandaten gleich.
Soweit so gut. Jetzt habe ich beide Sprachen (Mandanten) fertig und bis auf die Struktur und Text unterscheiden sich beide nicht (gleichen Temps, Module, etc.).
Aber wie kann ich nun von einem Mandanten auf den anderen verlinken? Irgendwie fehlt mir da die Einsicht. Wenn ich einfach den Pfad front_content.php?idcat=63&lang=5&client=5 oder ähnlich eingebe gelange ich zum Log-In-Screen.
Ich habe das Forum durchsucht, komme aber nicht weiter... Cookies? Falscher Pfad? Falsche Einstelltung des Mandanten?!
Nachtrag: Wie gesagt, beide Mandanten nutzen den gleichen Serverpfad und der erste Mandant läuft auch wunderbar im Frontend. Der zweite Mandant ist mit Content befüllt und wartet nur darauf angelinkt zu werden... Aber wie?!
Auch ist beim zweiten Mandanten (auf den ich ja verlinken möchte) keine Kategorie geschütz. Startartikel ist online.
Mal wieder vielen Dank für die Hilfe!
Re: 2 Mandanten mit gleichem Serverpfad und verlinkt
Verfasst: Mi 30. Mär 2005, 11:08
von Halchteranerin
Hagbard hat geschrieben:Wenn ich einfach den Pfad front_content.php?idcat=63&lang=5&client=5 oder ähnlich eingebe gelange ich zum Log-In-Screen.
"oder so aehnlich" reicht nicht aus.

Du brauchst entweder idcat
und idart
oder aber idcatart.
Verfasst: Mi 30. Mär 2005, 11:13
von Hagbard
Ahhhh, ok. Das kling einleuchtend
Nun habe ich von Mandant 1 direkt auf einen Artikel in Mandant 2 verlinkt (mit front_content.php?idcatart=120&lang=5&client=5). Aber ich komme trotzdem wieder auf den Log-In-Screen.
Muß ich in der Config.php etwas ändern? Also in der Config.php, die für beide Mandanten gilt, da beide im selben Server-Verzeichnis liegen?!
Bisher sieht die Config so aus:
Code: Alles auswählen
/* Required: language and client */
$load_lang = "1";
$load_client = "1";
Verfasst: Mi 30. Mär 2005, 12:08
von HerrB
a) Wenn der Startartikel online ist, brauchst Du die idcatart nicht angeben (d.h. Du kannst es zunächst ohne versuchen)
b) Zum Wechsel der Sprache und des Clients verwende changelang und changeclient, e.g.
Gruß
HerrB
Verfasst: Mi 30. Mär 2005, 12:46
von Halchteranerin
hmm, was ich mich frage ... wie ist das mit der config.php aus dem Mandantenverzeichnis? Denn wenn beide Mandanten dieselbe config.php benutzen, dann steht ja darin nur eine lang und ein client. Geht das ueberhaupt?
Verfasst: Mi 30. Mär 2005, 12:49
von Hagbard
Danke nochmals. Aber ich komme mit dem Pfad auch auf den Log-In-Screen... Was mache ich falsch?
Verfasst: Do 31. Mär 2005, 00:39
von HerrB
hmm, was ich mich frage ... wie ist das mit der config.php aus dem Mandantenverzeichnis? Denn wenn beide Mandanten dieselbe config.php benutzen, dann steht ja darin nur eine lang und ein client. Geht das ueberhaupt?
Nein, die Angaben in der config.php sind nur die Parameter, die verwendet werden, wenn nichts angegeben ist.
Man könnte auch direkt lang und client angeben. Diese Angaben werden jedoch ignoriert, es werden die Angaben aus der config.php genommen. Dazu im Gegensatz "überschreiben" die changelang und changeclient-Angaben die Standardparameter.
@Hagbard: Wenn möglich, sende mal Deine Angaben für Contenido per PM.
Gruß
HerrB
Verfasst: Fr 1. Apr 2005, 21:39
von HerrB
Entschuldige, ich habe gerade sehr viel zu tun, daher die Verzögerung.
Ich habe mir die Seite angesehen. Leider kann ich z.Z. das Problem nur bestätigen.
Problematisch ist u.U. die Verwendung der Weiterleitung, aber diese ist bei dem englischen Mandanten gar nicht aktiviert (bei der Startseite).
Ich denke, dass da irgendwo noch ein Bug schlummert. Leider habe ich im Moment keine Zeit, mir das näher anzusehen. Wenn es also einen Moment Zeit hat, würde ich mich freuen, wenn Du mir bei Gelegenheit zur Erinnerung eine PM senden könntest - dann bitte ich auch um ein FTP-Account.
Bis dahin könntest Du versuchen, dem zweiten Mandanten ein eigenes Verzeichnis zu geben (testweise). Über die Einträge in der Mandanten-config.php könntest Du die Start-Mandanten-ID und Sprach-ID fest verdrahten.
Ich bin mir aber fast sicher, dass es auch dann nicht geht. Ansonsten solltest Du in der contenido\includes\config.php und in den Mandanteneinstellungen das www. noch ergänzen, wenn Du i.A. mit der www.-Domain (im Gegensatz zu domain.tld ohne www.) arbeitest (siehe Administration -> System).
Gruß
HerrB
Verfasst: Mi 6. Apr 2005, 13:43
von Hagbard
Wenn ich in der config.php den Client und die Lang fix eintrage geht alles wunderbar. Ich kann dann zwar nicht über die URL den Client und Lanmg wechseln, aber das macht nichts. Was sagt uns das jetzt?!

Keine Ahnung.
Kann ich ne zweite config.php erstellen, auf die ich dann irgendwie verlinke um dann meinen zweiten Mandanten zu laden?! Es wird für die Seite eh ne Doorpage geben... Ich weiss, daß das nicht der eleganteste Weg ist, aber...
Verfasst: Mi 6. Apr 2005, 14:56
von HerrB
Danke für die PM, ich sehe es mir die Tage an (max. Wochenende). Wir hatten schon mal ein Problem in der front_content.php gefunden, allerdings in meiner Erinnerung für V4.5.x.
Ich bin dran, es kostet nur seeeehr viel Zeit, das schrittweise auszutesten.
Gruß
HerrB
Verfasst: Sa 9. Apr 2005, 00:28
von HerrB
So, es sollte jetzt gehen. Je nach Betrachtungsweise ist bzw. war das ein Bug oder ein Konfigurationsproblem.
In der front_content.php heißt es:
Code: Alles auswählen
...
}
// Sprache wechseln
if (isset($changelang)) $lang = $changelang;
// Client wechseln
if (isset($changeclient)){
$client = $changeclient;
[b] unset($lang);[/b]
}
// Client initialisieren
if (!isset($client)) {
$sess->register("client");
//load_client defined in frontend/config.php
$client = $load_client;
}
// Initialize language
if (!isset($lang)) {
$sess->register("lang");
//if is an entry load_lang in frontend/config.php use it, else use the first language of this client
[b] if(isset($load_lang)){[/b]
//load_client is set in frontend/config.php
$lang = $load_lang;
}else{
...
Zunächst wird - sofern angegeben - $lang = $changelang gesetzt.
Danach erfolgt ein Client-Wechsel anhang $changeclient; dies hat zur Folge, dass $lang nicht mehr gesetzt ist (unset $lang).
Im weiteren Verlauf wird nun - da ja load_lang durch die config.php gesetzt ist - $lang = $load_lang gesetzt. Bei Deinem Beispiel ergibt das $client = 5, $lang = 1. Da aber $lang = 1 nicht definiert ist (für $client 5), landet man im Nirwana-Land.
Die kurzfristige Lösung ist simpel:
Code: Alles auswählen
...
}
// Client wechseln
if (isset($changeclient)){
$client = $changeclient;
unset($lang);
}
[b]// Sprache wechseln
if (isset($changelang)) $lang = $changelang;[/b]
// Client initialisieren
if (!isset($client)) {
$sess->register("client");
//load_client defined in frontend/config.php
$client = $load_client;
}
// Initialize language
if (!isset($lang)) {
$sess->register("lang");
//if is an entry load_lang in frontend/config.php use it, else use the first language of this client
if(isset($load_lang)){
//load_client is set in frontend/config.php
$lang = $load_lang;
}else{
...
Die Zeile if (isset($changelang)) $lang = $changelang; liegt nun hinter dem Client-Wechsel (und dem darin enthaltenen unset ($lang)).
Damit ist die Sprache durch $changelang definiert und die Sprache wird nicht überschrieben.
Wird nun also sowohl changeclient als auch changelang angegeben (einmalig), wird der Client und die Sprache korrekt gewechselt.
Man könnte auch alternativ den Eintrag $load_lang in der Mandanten-config.php entfernen; das hat aber - wenn nicht noch andere - u.a. zur Folge, dass Contenido jedesmal erst in der DB nach der Sprache suchen muss.
Als Workaround reicht das angegebene aus (ggf. übrigens auch in der front_content.php in contenido/external/frontend ändern - damit man es nicht vergisst), aber eine endgültige Lösung ist es eigentlich nicht.
Ich würde erwarten, dass Contenido die Sprache anhand des Mandanten aus der DB ermittelt, wenn changeclient angegeben ist, changelang jedoch nicht. Oder halt nochmal überprüft, ob die bestimmte Kombination $client/$lang überhaupt möglich ist.
Aber das ist halt relativ. So wie es jetzt ist, ist es performanter, sofern man für jeden Client ein eigenes Verzeichnis zur Verfügung stellen kann.
Gruß
HerrB
Verfasst: Sa 9. Apr 2005, 03:38
von timo
Die Anforderung war, daß mit lang=XX die Sprache nur temporär gewechselt wird, und mit changelang=XX dauerhaft.
Kann man sehen wie man möchte, aber ich für meinen Teil packe z.b. für verschiedene Sprachen einfach das Frontend in verschiedene Verzeichnisse, passe die config.php entsprechend an und verlinke den Rest mit symlinks auf Dateisystemebene.
Verfasst: Mo 11. Apr 2005, 13:39
von Hagbard
Vielen Dank HerrB! Ich bin begeistert. Das hat mich jetzt schon ewig gefuchst
