Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 3
Seite [1]
Cheerleader


Beginner



Herkunft: Hamburg
Beiträge: 12
# Thema - 05.09.2009 um 11:30 Uhr
Hi zusammen,

ich habe für mein derzeitiges Projekt zwei Domains registriert. Beide Domains verweisen auf die gleiche Clansphere-Installation. Einmal als "xyz.com" und einmal als "xyz.de". Nun möchte ich erreichen, dass beim Betreten der Seite die Seite per .com Englisch als Vorauswahl getroffen wird und bei .de analog natürlich Deutsch.

Das Ganze darf aber nur passieren, wenn der User nicht eingeloggt ist und per {users:lang} noch keine Sprache ausgewählt hat. Quasi wenn er ein unbefleckter Besucher ist.

Nun hab ich gedacht, dass bei fehlender Sprachdefinition eine Abfrage auf strpos($_SERVER['HTTP_HOST'], '.com') vermutlich das sinnvollste wäre. Ich habe allerdings keine Idee, wo ich diese Weiche einbauen muss, damit sie seitenübergreifend funktioniert.

Kann mir da jemand auf die Sprünge helfen?

Vielen Dank im Voraus,

Patrick
Inaktiv
Tom08 ClanSphere Team

Supporter
Supporter



Herkunft: Daheim
Beiträge: 2923
# Antwort: 1 - 05.09.2009 um 11:37 Uhr
Schöne Idee.
Ich würde mal in der /system/core/account.php gucken.
Da steht so um Zeile 118 rum, was von Lang und deren initialisierung.

Tom


------------------
Bei Problemen mit Code von mir bitte eine Private Nachricht an mich


Inaktiv
|
Cheerleader
Thread-Ersteller


Beginner



Herkunft: Hamburg
Beiträge: 12
# Antwort: 2 - 05.09.2009 um 21:30 Uhr
Irgendetwas mach ich falsch. Ab Zeile 118 wird geprüft ob "lang" als Get-Parameter vorhanden ist und ob ein Cookie existiert. Wenn beides nicht gegeben ist, dann müsste laut

 
1.
2.
3.
4.
5.
1. / 2. / ... 
 
  $languages 
cs_checkdirs('lang');
  
$cookie_lang = empty($_COOKIE['cs_lang']) ? '' $_COOKIE['cs_lang'];
  
$cs_user['users_lang'] = empty($_GET['lang']) ? $cookie_lang $_GET['lang'];


doch $cs_user['users_lang] ein leerer String sein. Also sollte

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
1. / 2. / ... 
 
if($cs_user['users_lang']=='') {
  if(
strpos($_SERVER['HTTP_HOST'], ".com")!==false) {
    
$cs_user['users_lang'] = 'English';
  } else {
    
$cs_user['users_lang'] = 'German';
  }
}


im Anschluss daran doch das Kunststück vollbringen. Es passiert aber gar nichts. Ich brauche also leider noch ein wenig Hilfe.

Patrick


Inaktiv
|
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 3 - 06.09.2009 um 23:06 Uhr
hi,
der block ab zeile 118 wird nur ausgeführt, wenn entweder $_GET lang übergeben wird oder eine sprache als cookie gespeichert wird. beides ist nicht der fall.

ich würde nach dem ganzen block, also so bei zeile 140, einfügen:

 
1.
2.
1. / 2. / ... 
 if (empty($account['users_lang']))
    
$account['users_lang'] = strpos($_SERVER['HTTP_HOST'], '.com') !== false 'English' 'German';


so wird diese auswahl auch nur getroffen, wenn der benutzer noch nicht individuell eine sprache ingestellt hat.

ist ungetestet.


gruß
duRiel


Inaktiv
|
Antworten: 3
Seite [1]


Sie müssen sich registrieren, um zu antworten.