Cache-Problem beim Sprachwechsel

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe »

Hi,

das ist mir vom Prinzip her klar, aber ich spreche nur wenig PHP und weiß deshalb nicht, wie ich welchen Code wo platziere. Sprich: Ich brauch den Code angepasst :shock:

Gruß,
Ayshe
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe »

ÄH, ja, vielleicht ist es hilfreicher für euch, wenn ich den gesamte Output-Code des Nav-Moduls hergebe:

Code: Alles auswählen

<?php
/********************************************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname     :     Hauptnavigation
* Author(s)   :     Jan Lengowski, Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
* Modifier   :   Oliver Simon, simon-oliver.com
* Modified   :   27.11.2005
*********************************************************************/

#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation

#Includes
cInclude("frontend", "includes/functions.navigation.php");

#If no tree is selected, use client setting
$start_cat = "CMS_VALUE[0]";
if ($start_cat=='') {
    $cApiClient = new cApiClient($client);
   $start_cat = $cApiClient->getProperty('navigation','idcat_homepage');
}

if ( !is_object($db2) ) {
    $db2 = new DB_Contenido;
}

/**
 * Check if a category is child
 * of another category
 *
 * @return boolean true/false
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG 2003
 */
function catIsChildOf($id, $idparent) {

    global $cfg, $client, $lang;

    $db = new DB_Contenido;

    $parent = $id;

    while ( $parent != 0 ) {

        $sql = "SELECT
                    a.parentid
                FROM
                    ".$cfg["tab"]["cat"]." AS a,
                    ".$cfg["tab"]["cat_lang"]." AS b
                WHERE
                    a.idclient  = '".$client."' AND
                    b.idlang    = '".$lang."' AND
                    a.idcat     = b.idcat AND
                    a.idcat   = '".$parent."'";

        $db->query($sql);
        $db->next_record();

        $parent = $db->f("parentid");

        if ($parent == $idparent) {
            return true;
        }

    }

    return false;

}

if ( catIsChildOf($idcat, $start_cat) ) {
    $sel_idcat = $idcat;
} else {
    $sel_idcat = $start_cat;
}

/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');

/**
 * Array storing alle the
 * navigation data
 */
$navitems = array();


/* Template Instance */
$tpl = new Template;

/**
 * Recursive function for creating
 * the navigation array
 * @param Int $idcat Category id
 */
function nav($idcat) {

        global $navitems, $client, $lang, $cfg, $start_cat;

        $db  = new DB_Contenido;
        $db2 = new DB_Contenido;

        $sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'";

        $db->query($sql);
        $db->next_record();

        $parentid = $db->f("parentid");

        if ( $parentid == 0 ) {

           if ( $idcat != $start_cat ){

                $navitems = array();
             
                $sql = "SELECT
                            A.idcat,
                            C.name,
                        C.public,
                        C.idcatlang
                        FROM
                            ".$cfg["tab"]["cat_tree"]." AS A,
                            ".$cfg["tab"]["cat"]." AS B,
                            ".$cfg["tab"]["cat_lang"]." AS C
                        WHERE
                            A.idcat     = B.idcat   AND
                            B.idcat     = C.idcat   AND
                            B.idclient  = '$client' AND
                            C.idlang    = '$lang'   AND
                            C.visible   = '1'       AND
                            B.parentid  = '".$start_cat."'
                        ORDER
                            BY A.idtree";

                      $db->query($sql);

                      while ($db->next_record()) {

                            /* Check for external redirects... */
                            $sql = "SELECT
                                        a.external_redirect AS ext,
                                        a.idartlang AS idartlang
                                    FROM
                                        ".$cfg["tab"]["art_lang"]." AS a,
                                        ".$cfg["tab"]["cat_art"]." AS b,
                                        ".$cfg["tab"]["cat"]." AS c
                                    WHERE
                                        b.idcat     = '".$db->f("idcat")."' AND
                                        c.idclient  = '".$client."' AND
                                        c.idcat     = b.idcat AND
                                        a.idart     = b.idart AND
                                        a.idlang    = '".$lang."'";

                            $db2->query($sql);
                            $flag = false;
                     while ($db2->next_record()&&!$flag) {
                               if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
                               {
                           $flag = true;
                                   $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
   
                                   $navitems[$db->f("idcat")] = array("idcat"      => $db->f("idcat"),
                                                                       "name"      => htmldecode($db->f("name")),
                                                                       "target"    => $target,
                                                                 "public" => $db->f("public"),
                                                                "idcatlang" => $db->f("idcatlang"));
                               }
                     }
                      }

           }
           
           return true;
        }

        $sql = "SELECT
                    A.idcat,
                    C.name,
                  C.public,
                    C.idcatlang
                FROM
                    ".$cfg["tab"]["cat_tree"]." AS A,
                    ".$cfg["tab"]["cat"]." AS B,
                    ".$cfg["tab"]["cat_lang"]." AS C
                WHERE
                    A.idcat     = B.idcat   AND
                    B.idcat     = C.idcat   AND
                    B.idclient  = '$client' AND
                    C.idlang    = '$lang'   AND
                    C.visible   = '1'       AND
                    B.parentid  = '$parentid'
                ORDER BY
                    A.idtree";

        $db->query($sql);

        while ($db->next_record()) {

                /* Check for external redirects... */
                $sql = "SELECT
                            a.external_redirect AS ext,
                            a.idartlang AS idartlang
                        FROM
                            ".$cfg["tab"]["art_lang"]." AS a,
                            ".$cfg["tab"]["cat_art"]." AS b,
                            ".$cfg["tab"]["cat"]." AS c
                        WHERE
                            b.idcat     = '".$db->f("idcat")."' AND
                            c.idclient  = '".$client."' AND
                            c.idcat     = b.idcat AND
                            a.idart     = b.idart AND
                            a.idlang    = '".$lang."'";

                $db2->query($sql);
            $flag = false;
                while ($db2->next_record() && !$flag) {
                   if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
                   {
                  $flag = true;
                       $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
                      
                       $tmp_nav[$db->f("idcat")] = array("idcat"   => $db->f("idcat"),
                                                         "name"    => htmldecode($db->f("name")),
                                                          "public" => $db->f("public"),
                                                  "idcatlang" => $db->f("idcatlang"),
                                                         "target"  => $target);
                   }
            }
        }

        $tmp_nav[$idcat]["sub"] = $navitems;
        $navitems = $tmp_nav;

        /* Function call */
        nav($parentid);

}  // end function

$sql = "SELECT
            A.idcat,
            C.name,
          C.public,
             C.idcatlang
        FROM
            ".$cfg["tab"]["cat_tree"]." AS A,
            ".$cfg["tab"]["cat"]." AS B,
            ".$cfg["tab"]["cat_lang"]." AS C
        WHERE
            A.idcat     = B.idcat   AND
            B.idcat     = C.idcat   AND
            B.idclient  = '$client' AND
            C.idlang    = '$lang'   AND
            C.visible   = '1'       AND
            B.parentid  = '$sel_idcat'
        ORDER BY
            A.idtree";

$db->query($sql);

while ( $db->next_record() ) {

        /* Check for external redirects... */
        $sql = "SELECT
                    a.external_redirect AS ext,
                    a.idartlang AS idartlang
                FROM
                    ".$cfg["tab"]["art_lang"]." AS a,
                    ".$cfg["tab"]["cat_art"]." AS b,
                    ".$cfg["tab"]["cat"]." AS c
                WHERE
                    b.idcat     = '".$db->f("idcat")."' AND
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

        $db2->query($sql);
        #$db2->next_record();
      $flag = false;
      while ($db2->next_record()&&!$flag) {
           if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
           {
            $flag = true;
               $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
      
               $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                                  "name"   => htmldecode($db->f("name")),
                                                  "public" => $db->f("public"),
                                            "idcatlang" => $db->f("idcatlang"),
                                                  "target" => $target);
           }
      }
}

/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
    $cApiClient = new cApiClient($client);
    $sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}

nav($sel_idcat);

/* Start Output buffer */
ob_start();

foreach ($navitems as $key => $data) {

    /* 1. Navigation level */
   if (checkCatPermission($data['idcatlang'],$data['public'])) {
       $tpl->reset();
       $tpl->set('d', 'NAME',  $data['name']);
       $tpl->set('d', 'TARGET', $data['target']);
       $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));

       $tpl->next();
       if ($idcat == $data['idcat']) {
           $tpl->generate('templates/navfirst_on.html');
      }elseif(is_array($data['sub'])){
           $tpl->generate('templates/navfirst_open.html');
       } else {
           $tpl->generate('templates/navfirst_off.html');
       }
   } // end if
} // end foreach

/* Read out buffer */
$html = ob_get_contents();


/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
echo $html;
?>
Hoffnungsvolle Grüße,
Ayshe
MichFress
Beiträge: 750
Registriert: Mo 5. Jan 2004, 22:32
Wohnort: Bochum
Kontaktdaten:

Beitrag von MichFress »

ok, es war nicht unmittelbar zu erkennen, aber ich hatte den Code angepasst.. ;-)

hier nochmal (relativ weit unten):

Code: Alles auswählen

$tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'].'&lang='.$lang));
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe »

Oh, tja, wer lesen kann ist im Vorteil und so...

Hab das in dem Modul (erstmal nur Navigation 1. Level, das ist die Nav links oben vor dem dunkelblauen Hintergrund) angepasst, aber die Sprache wird trotzdem nicht korrekt übergeben, sondern es wechselt wieder auf Deutsch - auch nach Leeren von Cache, Löschen von Cookies. :cry:

Wat nu?

Ratlos: Ayshe
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Und nochmal zur Erläuterung:

lang=$lang: Nur für die aktuelle Seite geltende Umschaltung der Sprache
changelang=$lang: Dauerhafte Umschaltung der Sprache, die in der Session gespeichert wird.

#ayshe: Bitte integriere doch mal in Dein Layout den Code zur Deaktivierung des Cache (findet sich hier im Forum Begriff "pragma" oder vermutlich bei http://de.selfhtml.org).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

et jeht!

Beitrag von #ayshe »

Danke, HerrB, Retter in der Not. Auch bei mir ist endlich der Groschen gefallen :o
Hab immer gedacht, man kann nur entweder &lang = $lang ODER &changelang = $changelang einsetzen, wußte nicht, dass man das auch mischen kann. Mischen is possible. Es klappt jetzt ganz wunderbar.
In den Layouts ist übrigens immer drin

Code: Alles auswählen

<meta http-equiv="expires" content="0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />
Wieder gut gelaunt,
Ayshe
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Dann war das sogar ein Missverständnis: changelang=$changelang bringt natürlich nix, das $changelang praktisch nie definiert ist.

changelang=$lang in einem Link setzt halt die Sprache entsprechend der aktuellen Sprache. Ein changelang=<andere Sprach-ID> schaltet um:

Standard-Sprach-ID: 1 -> $lang = 1 -> changelang=2 (in der URL) -> $lang = 2...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
snuppel
Beiträge: 12
Registriert: Mo 16. Aug 2004, 13:28
Wohnort: Magdeburg
Kontaktdaten:

Beitrag von snuppel »

Ich hab mein Problem auch mit diesem Script gelöst, entweder man plaziert dieses Script gleich am Anfang des Layouts:

Code: Alles auswählen

<?php
  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);
  header("Pragma: no-cache");
?>
oder aber im Head vor dem Body und (ist wichtig) am Ende des Body dieses Script:

Code: Alles auswählen

<?php
   /***** Browsercache abschalten****************************************/
   echo '<meta http-equiv="cache-control" content="no-cache"/>'; echo "\n";
   echo '<meta http-equiv="expires" content="-1"/>'; echo "\n";
?>
Gruß, Snuppel
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe »

Hallo Snuppel,

und worin liegt der Vorteil Deines Skripts gegenüber der herkömmlichen Kodierung der http-equivs und cache-controls?

Gruß,
Ayshe
Johannes W.
Beiträge: 19
Registriert: Sa 28. Aug 2004, 14:23
Wohnort: Karlsruhe
Kontaktdaten:

Sprachwechsel

Beitrag von Johannes W. »

<meta http-equiv="expires" content="0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />
Hallo, ich hatte auch ziemliche Probleme mit dem Sprachwechsel.
Jetzt scheint es einigermaßen zu gehen. Genutzt habe ich die obersten
drei Zeilen und die ?lang=x Variable.

Kann es sein das die Seite durch cache-control langsamer wird?
Ich habe mehrere Seiten die teilweise den gleichen content anzeigen.
Liege ich richtig in der Annahme, dass diese Seiten jetzt jedes Mal
komplett neu geladen werden müssen?

Und noch eine Anmerkung: Ich fände es schade wenn man jetzt manuell bei jedem eingefügten Link das ?lang=x am Ende einfügen müsste. Gibt es da eine Lösung?
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Irgendwann muss ich das mal in die FAQ aufnehmen... :wink:

cache-control ist eine Anweisung an den Proxy (wenn vorhanden) und den Browser, ob die Seite gecached werden soll. Die Seite an sich wird dadurch nicht langsamer - nur wird sie vom Browser jedesmal angefordert (anstatt dem Nutzer die lokal gespeicherte Version im Cache zu zeigen).

Das man die Veränderung nicht sieht, liegt nach wie vor daran, dass der Browser die Seite bereits im Cache hat. Er erkennt halt nicht, dass sich was ändert, da sich die URL nicht ändert. Das das mit &lang=x anders ist, ist klar, da es für den Browser eine neue URL ist.

Das kann man leicht testen: Eine Seite in einer Sprache aufrufen, Sprache umstellen, Cache löschen und Seite nochmal öffnen - sie wird die Sprache wechseln und alle anderen Seiten auch, da sie nicht mehr im Cache zur Verfügung stehen und frisch geladen werden.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Johannes W.
Beiträge: 19
Registriert: Sa 28. Aug 2004, 14:23
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von Johannes W. »

HerrB hat geschrieben: cache-control ist eine Anweisung an den Proxy (wenn vorhanden) und den Browser, ob die Seite gecached werden soll. Die Seite an sich wird dadurch nicht langsamer - nur wird sie vom Browser jedesmal angefordert (anstatt dem Nutzer die lokal gespeicherte Version im Cache zu zeigen).
Hallo Herr B.

Wenn das so ist, wird die Seite beim Wechsel ja doch langsamer, schließlich werden ja dann immer alle Daten übertragen- Auch die, die eigentlich schon im lokalen Cache liegen!?
HerrB hat geschrieben: Das man die Veränderung nicht sieht, liegt nach wie vor daran, dass der Browser die Seite bereits im Cache hat. Er erkennt halt nicht, dass sich was ändert, da sich die URL nicht ändert. Das das mit &lang=x anders ist, ist klar, da es für den Browser eine neue URL ist.
Heißt dann im Umkehrschluss wohl auch das die Cache-Controll nicht funktioniert bei gleicher URL?

Desweiteren würde das bedeuteten das mein Kunde jedes Mal manuell das ?lang=x bei allen Links einfügen muss.
HerrB hat geschrieben: Das kann man leicht testen: Eine Seite in einer Sprache aufrufen, Sprache umstellen, Cache löschen und Seite nochmal öffnen - sie wird die Sprache wechseln und alle anderen Seiten auch, da sie nicht mehr im Cache zur Verfügung stehen und frisch geladen werden.
Wenn das bedeutet das ich jedes Mal den Cache vor bzw. nach einem Sprachwechsel leeren soll / muss, ist das keine sehr erfreunliche Antwort.

Hilfreiche wäre mal eine Art Anleitung was man alles berücksichtigen muss beim voll funktionsfähigen Sprachwechsel.

Bisher ist mir leider noch nicht klar ob ich wirklich das ?lang brauche oder nicht.

Sorry, aber ich glaube da gibt es noch Klärungs- und Optimierungsbedarf.

Grüße,
Johannes
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Sorry, aber ich glaube da gibt es noch Klärungs-
Gern.
und Optimierungsbedarf.
öhm, weiß nich'. Zumindest nicht bei Contenido.

Aber nochmal im Detail:
Der IE cached sehr hartnäckig. Es ist ein Browser-Problem.
Heißt dann im Umkehrschluss wohl auch das die Cache-Controll nicht funktioniert bei gleicher URL?
Welche Angaben er nun tatsächlich verwendet, um festzustellen, dass es sich um eine aktualisierte Seite handelt, werden im Detail nur die Entwickler wissen - Dateigröße, Serverheader, Änderungsdatum, Bildanzahl und -bezeichnung ... - die Sprache des Textes ist es auf jeden Fall nicht. Eine neue URL ist für den IE definitiv eine neue Seite (bis er sie wieder gecached hat).
Wenn das so ist, wird die Seite beim Wechsel ja doch langsamer, schließlich werden ja dann immer alle Daten übertragen- Auch die, die eigentlich schon im lokalen Cache liegen!?
"Langsamer" ist halt relativ. Wenn es sich um eine bildlastige oder umfangreiche Seite handelt, wird eine Seite ohne Cache sicherlich schneller wieder angezeigt. Aber es braucht genauso lange, wie beim ersten Aufruf einer Seite - wenn die Seite mehr als x Sekunden zum Laden braucht, würde ich den Inhalt sowieso anders aufteilen.

Je nach Cache-Einstellung im IE wird die Seite "irgendwann" neu angefordert ("bei jedem Zugriff auf die Seite", "bei jedem Start des IE", "Automatisch" (whatever this means und da liegt das Problem) oder "nie"). Die Einstellung "bei jedem Zugriff auf die Seite" entspricht der Verwendung der Cache-Control-Tags (-> kein Cache). Wenn also die Redakteure ihre Übersetzung prüfen wollen, wäre das eine sinnvolle Einstellung.
Desweiteren würde das bedeuteten das mein Kunde jedes Mal manuell das ?lang=x bei allen Links einfügen muss.
Nein (siehe unten).
Wenn das bedeutet das ich jedes Mal den Cache vor bzw. nach einem Sprachwechsel leeren soll / muss, ist das keine sehr erfreunliche Antwort.
Nein, es heißt nur, dass man entweder die Cache-Einstellung des Browsers anpassen muss oder entsprechende meta-Tags in das Layout integrieren muss (cache-control).
Bisher ist mir leider noch nicht klar ob ich wirklich das ?lang brauche oder nicht.
Na schauen wir mal: Welche Fälle gibt es?

a) Nutzer ist Redakteur, übersetzt die Texte und möchte eine Endkontrolle durchführen -> Cache-Einstellungen des Browsers oder cache-control-Angaben im Layout.
b) Nutzer ist Chef und will sich alles in allen Sprachen ansehen, aber man kann ihm nicht erklären, wie man die Cache-Einstellungen vornimmt: cache-control-Angaben im Layout
c) Nutzer ist Besucher der Webseite -> Er dürfte am Anfang die Sprache umschalten und dann die weiteren Seiten nur in seiner Sprache besuchen (und die sind für ihn dann in seiner Sprache, da er sie noch nicht besucht hat. Vielleicht hat er sogar Firefox..., Safari...). Wenn man sichergehen möchte: cache-control-Angaben im Layout. Eine geringfügig längere Ladezeit würde ich dabei hinnehmen (und ich ziehe da mal kurz den Zorn der es-gibt-auch-Modem-und-ISDN-Surfer auf mich: ich weiß, durfte es gerade selbst genießen).

und um es mal anders zu sehen:

d) Die wichtigsten Seiten werden regelmäßig, vielleicht sogar täglich geändert: das Cachen der Seite bringt wenig.
e) Es gibt Seiten mit dynamischen Inhalten ("Werbespruch des Tages", "Mitarbeiter des Monats", "Das Zen-Gebet des Tages", "Die Top 10 der geänderten Seiten"): das Cachen ist kontraproduktiv...

Das ist eine Abwägung: Wenn man viele sich kurzfristig ändernde Seiten hat oder es wichtig ist, dass sie Sprachumstellung auf jeden Fall funktioniert (weil der Nutzer vorher verzweifelt auf der Seite gesucht und damit einige Seiten im Cache hat), sollte man den cache deaktivieren (cache-control).

Wenn es nur um die Redakteure geht, genügt die Info, wie man den Browser einstellt.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
wosch

Beitrag von wosch »

Ich sage es nochmals:
Die ganze Sprachumschaltung/Sprache merken bei Contenido ist Murks.
(Und hier besteht, aus meiner Sicht, dringender Handlungsbedarf bei den Entwicklern)

Wenn man, bei bedarf, der anderen Sprache gleich ein lang=xx an der URL mitgeben kann oder,
noch besser an der URL eine Sprach-ID in der Art URL?lang=de wären alle diese Probleme mit Cache, Cookies, ... minimiert.

Lösungansätze existieren ja bereits:

http://www.contenido.de/forum/viewtopic.php?t=17052 und ffLinks
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ich sehe zwar den "dringenden" Bedarf nicht (da würden mir noch ein paar andere Sachen einfallen) und für Murx halte ich es auch nicht, aber gut, ich gucke es mir mal an (bei Speicherung als Favorit wäre es sicherlich ganz praktisch).

Das ändert aber nix daran, dass der IE die Seite cached und damit auch die dynamischen Inhalte...

Kurzfristig empfehle ich trotzdem die Integration der cache-control-tags...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt