WBCE CMS – Way Better Content Editing.
You are not logged in.
Pages: 1
Hallo!
Ich hab mich heute hingesetzt und ein Modul gemacht. Noch nicht sehr ausgereift, ich hab zunächst nur mal die Fallstricke ausgelotet und muss es erst mal auf ein paar eigenen Seiten testen.
Ein Seitenmodul, daher ein Abschnitt. Ist der auf einer Seite, kann man sie cachen/freezen
Seiten, die von Modulen erzeugt wurden, können nicht gecached werden, ebenso wird immer verweigert, wenn es Parameter gibt.
Frage:
Wie finde ich in der modify.php des Moduls heraus, ob die aktuelle $page_id die Startseite ist?
Unschönheit:
Derzeit ist das so, dass man die index.php im Root umbenennen muss (zu index2.php) und es eine neue index.php gibt.
Das gefällt mir gar nicht.
Man könnte das bisschen Code in die index.php packen - aber dann würde ich den Vorteil verlieren, dass kaum was geparsed werden muss und daher Cache-Seiten wirklich flott sind - und mit jeder PHP-Version laufen.
Oder ich könnte die access-Files neu speichern. Wäre wohl das eleganteste, aber auch nicht so super.
Offline
Wie finde ich in der modify.php des Moduls heraus, ob die aktuelle $page_id die Startseite ist?
Vielleicht (!) so:
$sql_home = 'SELECT `page_trail`,`position` FROM `{TP}pages` WHERE `page_id`='.(int)$page_id;
$query_home = $database->query($sql_home);
$page_infos = $query_home->fetchRow();
$page_trail = $page_infos['page_trail'];
$position = $page_infos['position'];
if (strpos($page_trail,',')==false && $position=='1'){
echo 'Dies ist wahrscheilich die Startseite';
} else{
echo 'Dies ist wahrscheilich nicht die Startseite';
}
Das funktioniert aber nur so lange wie die Startseite nicht in einem Unterordner liegt, d.h. für mehrsprachige Seiten ist das nix
Last edited by florian (06.01.2023 08:12:59)
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Danke Florian, das funktioniert - fast ;-)
Man müsste noch auf "visible" überprüfen, aber das ist jetzt mal mein kleinstes Problem..
Ich hau jetzt meine Nerven weg mit dem Krempel. Ein Fallstrick nach dem anderen und irgendwie ist man immer "knapp" am Ziel
https://wbce.at/downloads/pagefreezer-0.1.0.zip
Ist ein normales Modul, einfach einen Abschnitt anlegen damit, auf Seiten, die gecached werden sollen.
Was funktioniert:
Das Backend. Es wird noch nicht sauber aufgeräumt bei der Deinstallation, das sollte für Testzwecke aber kein Problem sein.
Die Cache-Files sind in /temp/freeze_files/ -> siehe quicksettings.php
Dort wird auch die Startseite (page_id) angegeben, wenn es Probleme bei der Erkennung gibt.
Wo es Probleme gibt:
Das Cachen der Startseite. Die hat ja kein Access-File, also muss in die index.php (Root) ganz oben rein:
[== PHP ==]
if ( !isset($page_id) ) {
$check_cache_path = __DIR__ .'/modules/pagefreezer/check_cache.php';
if (file_exists($check_cache_path) ) {require($check_cache_path);}
}
Und da fängt der Wickel an: Die index.php wird ja auch zum Laden der Cache-Dateien in der modify.php verwendet, ebenso von diversen Modulen (zb Miniform)
Da klemmt es irgendwie.
Ich bekomme auch die Pfade nicht auf die Reihe - bin ich zuwenig erfahren mit PHP. Und mit den Feinheiten von exit; und include/require bin ich auch nicht so vertraut.
Also: Wer will, ist herzlich eingeladen, sich das anzusehen:
Start sind die erzeugten access-files -> weiter zu: /modules/pagefreezer/check_cache.php
Ist ein recht kleines Script. Dort wird entschieden, ob ein Cache-File vorhanden ist und dieses ggf verwendet.
Last edited by ruebezahl (06.01.2023 13:30:44)
Offline
Jou
Ich habe das gestern auf ein paar Websites installiert. Das Fazit ist gemischt. Eine Geschwindigkeitsvorteil sehe ich nicht wirklich.
Miniform funktioniert mal, mal nicht. Auf jeden Fall hat das was mit dem Captcha zu tun, aber nicht nur. Da bin ich noch nicht drauf gekommen.
Ich lasse mal liegen, vielleicht schaut sich das mal jemand an, es geht ja nur um 10 Zeilen Code, die mir Probleme machen.
Vielleicht war mein Fehler auch, parallel zum Coden auch gleich die Anleitung zu schreiben - und da merkt man, dass man manches nicht erklären kann. Und dass diffuse Gedanken nicht immer zu einem genialen Ergebnis führen. Kennt man ja..
Auf https://wbce.at/ hab ich 3 Topics zum Thema Caching geschrieben. Kommentare und Meinungen sind erbeten.
Offline
require entspricht im Wesentlichen include, wirft aber im Fehlerfall einen E_COMPILE_ERROR Fehler. Es beendet also die Programmausführung während include nur eine Warnung (E_WARNING) generiert und so die weitere Programmausführung gestattet.
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
Ich habe den Download erneuert:
https://wbce.at/downloads/pagefreezer-0.2.0.zip
Ist immer noch beta, aber bei Löschen/Deinstallation wird aufgeräumt. Und ein paar Kleinigkeiten wurden verschlimmbessert.
Offline
Pages: 1