Hallo jens,
- language_via_url ist eigentlich nur für Gast-Nutzer relevant.
Für registrierte und eingeloggte Nutzer können wir, das Language aus der User-Tabelle ziehen.
Sprachauswahl des Nutzers kann im User-Profil erfolgen.
naja ich denke es macht wenig Sinn, wenn ein user erstmal in seine Administration muss,
um die Sprache zu wechseln, nur weil er die Webseiten mal in einer anderen Sprache sehen will.
Ich denke da speziell an die Designer, die müssen ja Ihre defaultsprache ansonsten ständig umstellen.
public function getLocale()
{
# if language_via_url was used, the filter set the URL value to the session
if(isset($_SESSION['user']['language_via_url']) === true
and ($_SESSION['user']['language_via_url'] == 1))
{
# use language setting from session
$this->locale = $_SESSION['user']['language'];
// write language in Cookie
$cookie_lifetime = time() + round(60*60); // 1 hour
$cookie_string = $this->locale;
setcookie('cs_language', $cookie_string, $cookie_lifetime);
unset($cookie_string, $cookie_lifetime);
}
else # get language from the cookie or browser or config AND set it to session
{
# Check for login cookie
if ( isset($_COOKIE['cs_language']) )
{
$this->locale = $_COOKIE['cs_language'];
}
else
{
$this->locale = $this->getLanguage();
$_SESSION['user']['language'] = $this->locale;
if(empty($this->locale)) # 3) get the default language from config as fallback
{
$this->locale = self::$config['language']['default'];
}
}
}
return $this->locale;
}
Mit einem Cookie könnte man das umgehen, man kann das Cookie ja entsprechend in der Zeit
anpassen, also 30 min. oder max 1 std. oder wie auch immer.
Zumindest bleibt man so in der ausgewählten Sprache und kann die einzelnen Seiten aufrufen
ohne das Clansuite auf die defaultsprache zurückspringt.
Was hier vor dem Auslesen der browser sprache stehen sollte, wäre erstmal eine prüfung ob der user
eine default Sprache hat und diese dann zu nehmen. Danach erst die browsersprache, dann die aus
der config.
Somit würde der Akt entfallen!
Problematischer für die Languages ist, das jedesmal bei klick auf eine Sprache
diese als get an die URL angehängt wird. ist etwas unschön wenn da mehrmals
&lang=de&lang=en&lang=de zu sehen ist

Das könnte man evtl. in der render.base.php umgehen:
public function getConstants()
{
$modulename = Clansuite_HttpRequest::getRoute()->getModuleName();
$template_constants = array();
# URI-Helper prepare for Languages
$urilanguage = Clansuite_HttpRequest::getRequestURI();
$urilanguage = WWW_ROOT . mb_substr($urilanguage, 1);
$urilanguage = str_replace( '&', '&', $urilanguage);
if( false !== mb_strpos( $urilanguage, '?lang=' ) )
{
$part1 = mb_substr( $urilanguage, 0, mb_strpos( $urilanguage, '?lang=' ) );
$part2 = mb_substr( $urilanguage, mb_strpos( $urilanguage, '?lang=' )+9 );
$urilanguage = $part1.'?'.$part2;
}
if( false !== mb_strpos( $urilanguage, '&lang=' ) ) {
$urilanguage = mb_substr( $urilanguage, 0, mb_strpos( $urilanguage, '&lang=' ) );
}
$template_constants['urilanguage'] = $urilanguage;
...
In den Sprachlinks z.B. Flaggen dann ...<a href="{$urilanguage}&lang=es">... angeben
so wird immer nur 1 language parameter angehängt.
Ist aber nicht so wichtig, ist mir nur mal so am Rande unschön aufgefallen, weswegen ich da
ein bischen experimentiert habe

Für den CssBuilder dachte ich an 2 Versionen:
- mit Form um diverse Einstellungen machen zu können
- eine CLi version mit parametern im silent mode
Auf jedenfall denke ich das es an der Zeit ist den Builder als Clansuite Class zu integrieren.
Habe im letzten Projekt für den Shop ein PayPal Modul integriert.
Denke mir das das auch für die Clankasse interessant wäre, wenn diese mal irgendwann erstellt wird.
Was browserinfo.php betrifft, so lasse ich mich gern überraschen.
Das ist nichts grossartiges, simple und einfach gestrickt, aber ausbaufähig.
Was mir an der browscap nicht gefällt, ist das man diese ständig auf den neuesten Stand
halten muss. d.H. sie muss am Server ja auch immer wieder mal erneuert werden.
Die definitionen in der browserinfo.php könnte man irgendwann in der Administration Änderbar
bzw. erweiterbar gestalten. Es muss ja hier nicht jeder auf dem Markt befindliche browser
abgedeckt werden, zudem macht es meiner meinung auch keinen Sinn mehr Uralte Browser
mit zu schleifen.
Das sind nur Lösungsansätze die ich auf die schnelle mal ausprobiert habe, allerdings an der alten
Clansuite Struktur, welche ich noch hatte. Die aktuelle muss ich mir erstmal genau ansehen,
da hat sich ja einiges geändert.
Wie gesagt, ich denke wir sollten mal ein Meeting abhalten!
gruss
paul