Little CMS - Caching - ConfigFiles - Languages
challenger
- php
0 josh
Hallo Forum,
ich möchte ein minikleines CMS schreiben. Dazu habe ich paar Fragen:
Wie regel ich das Caching von bestimmten Seiten am besten. Ich möchte nicht Smarty oder so verwenden.
Einzelne Bereiche werden gecached, das funktioniert auch schon. Doch z.B. habe ich einen "dynamischen" Farbtheme, den ich natürlich nicht Cachen darf. Ist es dafür sinnvoll eine stylesheet.php einzubinden mit angehängtem Parameter und diese jedesmal dynamisch bauen zu lassen? Oder wie regelt man sowas am besten? Auch in Bezug auf Browsercaching, der nicht gleich alles Cachen soll ...
Wenn ich die Config-Files über den Admin schreiben kann, ist das eine Sicherheitslücke? Der Admin-Berecih ist mit htaccess geschützt. Oder wie könnte ich meine Konfiguration sonst sinnvoll verwalten ...
Wie baut man sinnvoll Multilingual? Bisjetzt habe ich die Seiten, die existieren einfach mit verschiedenen Langauge-IDs und jenachdem wird eben ausgegeben?
Gruß
Hallo,
- Wie regel ich das Caching von bestimmten Seiten am besten. Ich möchte nicht Smarty oder so verwenden.
Eine Template-Engine (die ja im eigentlichen Sinne gar nichts mit Caching zu tun hat) wie Smarty ist auch nicht nötig, man kann das direkt mit eingebundenem PHP machen. Geht es dir um das Caching oder um die Templates?
... "dynamischen" Farbtheme ...
Also ich (IMHO) finde das ein bisschen verwirrend, wenn beim Surfen andauernd die Farben wechseln.
- Wie baut man sinnvoll Multilingual? Bisjetzt habe ich die Seiten, die existieren einfach mit verschiedenen Langauge-IDs und jenachdem wird eben ausgegeben?
Wie meinst du das mit den Language-IDs? Über einen Querystring, oder? example.com/meine_seite?lang=de
Das kann man natürlich machen; aber falls dein CMS sowieso mod_rewrite für schöne URLs benutzt, wäre auch das eine Möglichkeit: example.com/de/meine_seite bzw. example.com/meine_seite/de
Schick wäre jetzt natürlich noch, dass, falls keine Sprache angegeben ist, über den accept-language Header die beste Sprache gesucht wird.
Gruß
Gruß
Hallo,
danke für die Antwort.
Templates in dem Sinne habe ich schon laufen. Also Sprich jeweilige Navigation, Titel und der Seiteninhalt werden in ein Template eingebettet. Weiter aufgesplittet habe ich das nicht, weil ich nicht wüsste, was man noch so alles Templaten kann/soll?
Beim Cachen geht es mir vorallem um so Seiten wie Forenübersichten, Blogs etc. die sonst unnötig mehrmals Stündlich gerendert werden müssen.
Mit dynamischen Farbtheme ist ein Farbtheme gemeint, das der Nutzer selbst bestimmten kann. Dies wird entweder per Cookie, per Session oder zur Not (da interne Links eh einheitlich über eine Linkfunktion generiert werden) als GET-Parameter übergeben. Wechselt man nun aber das Farbtheme müsste man ausdrücklich neuladen, dass das Farbtheme übernommen wird, das stört.
Apropos Cookie, Session, GET-Parameter etc. Was ist denn die günstigste Lösung, wenn man Einstellungen "speichern" möchte. Es können unterschiedlich viele sein etc. bisjetzt geht das nur für registrierte Nutzer, da wird ein Array dementsprechend in einer Datenbank gespeichert und entsprechend wieder ausgelesen.
Was wäre da sinnvoll?
Mit session-id Arbeiten und für session-ids einen Datenbank-Configurationseintrag anlegen. Hat der User Cookies erlaubt kann beim nächsten Aufruf diese Configurations-ID wieder geladen werden?
Ja das wird schon über mod_rewrite geregelt. Ich meinte vielmehr z.B. bei Smarty kennt man ja diese languag-confs mit den jeweiligen Werten für die Sprachen, die dann im Template verwendet werden ... Sollte man sowas in einer Datenbank-tabelle speichern und über bestimmte Syntax innerhalb einer Seite eben verfügbar machen? Oder wirklich für jeden Sprache jede Seite komplett anpassen z.B. Bei Foren, wo wenig "fester" Text ist, wäre ersteres einfacher denke ich.
Accept-Language header? Bisjetzt regel ich das über eine definierbare Default-Language. Aber das klingt interessant?
Gruß
Hallo,
Beim Cachen geht es mir vorallem um so Seiten wie Forenübersichten, Blogs etc. die sonst unnötig mehrmals Stündlich gerendert werden müssen.
Verstehe ich jetzt zwar nicht ganz (wieso stündlich?) ;-), aber ich denke du willst einfach Seiten, die sich nicht häufig/gar nicht ändern, quasi vorgefertigt abspeichern. Entweder du suchst nach einem vorgefertigten Script oder programmierst es selbst (viel mehr bleibt auch nicht übrig ;-). Zufälligerweise habe ich erst vor kurzem so etwas programmiert, ist aber noch nicht fertig. Es kommt jetzt aber drauf an, wann die Seite neu erzeugt (gecacht) werden soll. Liegen die Daten in einer Datenbank und besitzen sie ein Datum/Timestamp, kann zum Beispiel nachgeprüft werden, ob die gecachte Datei noch aktuell ist.
Apropos Cookie, Session, GET-Parameter etc. Was ist denn die günstigste Lösung, wenn man Einstellungen "speichern" möchte. Es können unterschiedlich viele sein etc. bisjetzt geht das nur für registrierte Nutzer, da wird ein Array dementsprechend in einer Datenbank gespeichert und entsprechend wieder ausgelesen.
Was wäre da sinnvoll?
Mit session-id Arbeiten und für session-ids einen Datenbank-Configurationseintrag anlegen. Hat der User Cookies erlaubt kann beim nächsten Aufruf diese Configurations-ID wieder geladen werden?
Also da es die Möglichkeit gibt sich anzumelden (nachdem man sich registriert hat) würde ich Sessions verwenden, allerdings die Einstellungen des Benutzers direkt in der Session speichern. Wenn sich ein Benutzer anmeldet, werden seine Einstellungen einmal geladen und in der Session gespeichert.
Ja das wird schon über mod_rewrite geregelt. Ich meinte vielmehr z.B. bei Smarty kennt man ja diese languag-confs mit den jeweiligen Werten für die Sprachen, die dann im Template verwendet werden ... Sollte man sowas in einer Datenbank-tabelle speichern und über bestimmte Syntax innerhalb einer Seite eben verfügbar machen? Oder wirklich für jeden Sprache jede Seite komplett anpassen z.B. Bei Foren, wo wenig "fester" Text ist, wäre ersteres einfacher denke ich.
Ich kenne mich leider mit Smarty nicht aus, verstehe aber was du meinst. Eine schwierige Frage. Ich würde bei Texten, der in den Templates fest drin ist, jeweils eine eigene Seite machen. Für Texte, die eine dynamische Grundlage haben (Beispiel: Alle 64 Kommentare anzeigen / Show all 64 comments) wäre so eine Datenbanktabelle oder Sprachendatei mit einem Array nicht schlecht.
So ganz sicher bin ich mir aber nicht.
Accept-Language header? Bisjetzt regel ich das über eine definierbare Default-Language. Aber das klingt interessant?
http://tools.ietf.org/html/rfc2616#section-14.4 Nur so als Anregung. Müsste man halt parsen (ist nicht ganz leicht wegen so Sachen wie die verschiedenen englischen Sprachtypen).
Gruß
Gruß
Beim Cachen geht es mir vorallem um so Seiten wie Forenübersichten, Blogs etc. die sonst unnötig mehrmals Stündlich gerendert werden müssen.
Dann hast du aber sehr wenig besuchte Seiten. Foren, Boards und Blogs ändern sich dahingehend ständig, da sie Zugriffszahlen, Kommentare und Trackbacks anzeigen, die sich evtl. alle paar Sekunden ändern. Daher bietet z.B. Smarty ein Caching an, wo dynamische Daten in Quasi-Cache-Seiten eingebunden werden.
IMO ist es einfach so, wenn du so wenig Zugriffe hast, dass diese Dinge keine Rolle spielen, brauchst du kein Caching, wenn du so viele Zugriffe hast, rate ich zu einer fertigen und erprobten Lösung. Bei Smarty z.B. kann man das Caching in weiten Bereichen beeinflussen, bei anderen fertigen Systemen dürfte es ähnlich sein.
Wenn es dir um statische Seiten geht, halte ich eine Lösung, bei der du HTML-Seiten erzeugst und auf dem Server ablegst (per CMS) für wesentlich sinnvoller.
Die Sprachauswahl kann dann per Apac he erfolgen, indem man einfasch das Länderkürzel anhängt, z.B. index.html.de