Ich mache eine Website, die nur PHP als Back-End (kein Framework) verwendet, das in drei Sprachen verfügbar sein sollte. Die Seitenstruktur (Tabellen / Divs) ist vielleicht weniger verbreitet. Es neigt dazu, ein Ajax-Verhalten zu simulieren. Ich füge eine Datei (selector.php) in den Körper ein, die sich um ihren Inhalt kümmert, über _GET (), der von den Navigationslinks weitergegeben wird. Dies bedeutet, dass die Seite index.php niemals verlässt. Die Sprachen sind Links (Flags).
Nun habe ich es geschafft, die drei Sprachen (Arrays / Session / Cookie) erfolgreich zu implementieren, und es funktioniert. Was ich jedoch brauche, ist, dass ich in der Lage bin, die Sprachauswahl so zu machen, dass dieselbe Seite von dort, wo sie aufgerufen wurde, erhalten bleibt. Hier wird es schwierig, da ich nur eine Seite benutze, jedes include / spätere includes (30+) aus der index.php aufgerufen wird, also scheint die Verwendung von header ('Location: ...')
keine Option zu sein.
Ich weiß, wie ich meine aktuelle Adresse einschließlich des GET-Parameters abrufen kann, damit ich sie verwenden kann. Aber wie? Lesen Sie es am Anfang des Codes, und lesen Sie erneut in das Sprachmodul passt an jedem beliebigen Punkt. Es gibt eine Sitzung, also könnte ich auch Sitzungsvariablen verwenden, aber 35+ Variablen für den Inhalt zu erstellen (also URLs zu ändern) und sie ständig anzupassen, scheint nicht die richtige Methode zu sein. Wo, und genauer, wie man die Sprachveränderung abfängt und wie man auf die "selbe Seite" aktualisiert / umgeleitet wird, damit die Änderungen wirksam werden? Es könnte ein Design-Flow sein.
Hinweis 1: Mit mod_rewrite habe ich meine Sprachabfrage umgeleitet, also statt mysite.com/index.php?lang=en
in Form von mysite.com/en/index.php
, sodass ich den Inhalt des Bodycontents mit freundlicheren Links aufrufen kann. < br>
Anmerkung 2: Ich habe die letzte Woche die Lese / Suche hier / überall wo Google führt, unzählige Male versucht verschiedene Ansätze, keiner von ihnen funktioniert wie erwartet (vielleicht Konzept fließen ?!) bestanden
Anmerkung 3: Da dies für einen Client ist, der explizit keine Verwendung von Java wünschte, geben Sie bitte keine Ajax / jQuery / Java-Lösungen (mit denen würde ich wissen, wie es geht)
Hinweis 4: Der gesamte Code ist ziemlich groß, um hier eingefügt zu werden. Wenn Sie also verschiedene Teile sehen müssen, benennen Sie sie und ich werde meine Frage bearbeiten.
Anmerkung 5: Ich behalte mich immer noch als Anfänger, also bitte ertragen Sie mit mir.
Vielen Dank im Voraus.
Der Sprachwähler sieht also so aus:
%Vor%Dann der Selektor ...
%Vor%Ich starte meine index.php mit:
%Vor%Dann enthält die linke Seite die Flags:
%Vor%Auch das Menü, das eine Reihe von Listen ist wie:
%Vor%Der Inhalt ist einfach, Text und Bilder. Also ist der Hauptcode oben ...
Nach 1 Billionen Versuchen / Fehlern habe ich es endlich geschafft! Vielleicht ist es nicht die eleganteste Lösung (dh spartanisch), aber es funktioniert. Der Catch war, die aktuelle URL zu lesen, sie zu explodieren, um die aktuelle Seite mit params zu erhalten, und sie dann in die hrefs der Flags einzufügen.
Also am Anfang von index.php habe ich gesagt:
%Vor%Dann wurden die Links meiner Flagge:
%Vor% wo WEBROOT
ist meine Basis-URL und Ordner, und $pieces[3]
ist immer meine aktuelle Seite (dh. index.php?cont=history
. Auf diese Weise lande ich immer auf der aktuellen Seite, und die Sprache wird entsprechend geändert.
Hinweis: In meinem Fall. Das 3. Stück enthält die aktuelle Seite. Wenn jemand anderes diese Technik verwendet, sollten Sie dies überprüfen. Außerdem benutze ich immer nur 1 Parameter, also behalte das im Hinterkopf (es spielt eigentlich keine Rolle).
Wenn jemand anderes eine bessere Lösung kennt, bin ich aufgeschlossen. Danke für alles, tho.
Tags und Links php