Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
OrcaDesign

[Mini-Mod] CSS-Caching kompatibler machen

Recommended Posts

... vielleicht hat der eine oder andere auch schon mit der Möglichkeit geliebäugelt, seine CSSs extern einbinden zu lassen, so wie es ab Version 1.2 auch möglich ist einzustellen.

Nur hat diese Methode im Original den Nachteil, daß sie die CSS a) per Import-Befehl einbindet (was einige Browser wie der Netscape 4 schlicht nicht verarbeiten können / verstehen und somit die CSS bei diesen nicht zur Anwendung kommt) und B) auf eine PHP verweisen, diese also jedes Mal erneut geladen werden muß anstatt diese ebenso zu cachen.

... wie ändern? Nichts leichter als das...:

sxx/skin_global.php

Dort findet man denn die function css_external (suchen), welche man denn nur von

function css_external($css, $img) {

global $ibforums;

return <<<EOF

<style type='text/css' media="all">

@import url(css.php?d={$css}_{$img}.css);

</style>

EOF;

}
in
function css_external($css, $img) {

global $ibforums;

return <<<EOF

<link rel="stylesheet" type="text/css" media="all" href="cache/css_{$css}.css" />

EOF;

}

abändern muß. Fortan wird die CSS-Datei nur noch einmal geladen und denn aus dem Cache des Browsers - und Anzeigeprobleme, die sich aus der Verwendung eines externen CSS-Linkverweises sollten der Vergangenheit angehören :).

Zu beachten ist denn allerdings, daß im CSS Angaben wie <#IMG_DIR#> natürlich nicht mehr konvertiert werden und deshalb, sofern vorhanden, durch entsprechende Realpfadangaben ersetzt werden müssen!

Gruß,

Orca

Edited by OrcaDesign

Share this post


Link to post

Hallo,

ist das mit mit "<#IMG_DIR#>" wirklich nur das einzige Problem bei dieser Sache ?

Wie kann ich das ändern, da ich ja so das ganze Forum auf ein Skin hardcode.

kann man z.B. statt

$data = str_replace( "<#IMG_DIR#>", $img_id, $data );

sowas wie

$data = str_replace( "/style_images/" . skin, $img_id, $data );

machen, also dass er nur den style pfad nimmt, aber den kompletten pfad dann zusammensetzt aus einer variable von invision in der der skin name steckt ?

Thx für eure Hilfe

Share this post


Link to post

Du kannst einfach in der CSS selber das <#IMG_DIR#> durch den Imagepfad "/style_images/sx/" ersetzen. Schon hast Du das Board auf einen Style

Share this post


Link to post

Öhmm... wo ist das Problem, howgo :blink: ?

Diese <img dir>-Angabe befindet sich doch in der CSS-Datei, und da diese nach Einbau dieses "Mods" nicht mehr geparsed, sondern vom Browser direkt (!) abgefragt wird und der nunmal mit einer solchen Variable nu gar nichts anfangen kann, muß man eben dort auch entsprechend alle solche Angaben auf richtige Pfadangaben umstellen.

Kein if und string und was noch in PHP, denn genau dieses parsen wurde hierbei ja beseitigt ;). (nebenbei: guck Dir mal den Inhalt der css.php an - irgendwie das gleiche, oder? Ich entferne doch nicht das eine, um's gleich wieder nachzubauen :D)

Dadurch wird nichts hardgecodet und man ist auch ganz sicher nicht auf einen bestimmten Skin festgelegt - sondern legt einzig im jeden einzelnen CSS einen Pfad an den zu ersetzenden Stellen fest - einen Serverpfad, den man nach allen Regeln des HTMLs natürlich auch weiterhin relativ halten kann (was man auch besser macht).

Und am allerwenigsten hat das mit Mods zu tun... geschweige denn an sich noch etwas mit dem Code des Boards, denn hierbei geht's nur noch um ein CSS-Problem, wie's auf jeder anderen Seite auch so wäre :rolleyes:. Problem ist doch nur noch, daß im Original im CSS eben diese eine Variable verwendet wird manchmal, die aber nun natürlich nicht mehr umgesetzt wird - und schon findet der Browser nicht mehr, was er finden soll, da er ja nun die CSS-Datei so wie sie ist bekommt.

Arbeit? Ohweh, ja - ein Mal...! Bei Einbau dieses "Mods"!

Und nicht nach jedem weiteren Mod, oder haben diese etwas mit der CSS-Datei zu tun bzw. setzen dort <img-dir>-Pfadangaben?

... eines kann man natürlich hiernach vergessen: Mods, die mit der css.php arbeiten - ist mir bislang nur noch keiner untergekommen (warum auch).

Entschuldige, wenn ich falsch liege, aber mir dünkt, daß Du einfach die Wirkweise dieses Minimods nicht ganz verstanden hast... :blink:

Edited by OrcaDesign

Share this post


Link to post
Sign in to follow this  

×