Page caching mod for sNews 1.7
Hi again, as promised, I have completed my caching mod for sNews 1.7, and here is my initial release.
What the hell is caching and do I need it?
Well, basically what we're doing with this mod is saving a page's output into a raw HTML document, and we serve that page until there's a change that would require hitting the database again. If your site is like mine and gets a few comments a day and you're adding a few articles a day, then yes, this mod would likely help you considerably.
Uh, what? I need an example please.
Fair enough, say you have an article with 20 comments, every time someone visits that page, you're querying the database for the article, all the comments, as well as anything else on the page (site title, description, categories list, pages, recent comments list, recent articles, my related posts mod, etc). With this mod the first time someone calls the page all information would be pulled from the database and the resulting HTML will be saved into your "cache" folder, and then subsequently served to users after that, up until a new comment is posted, an article is added/edit/deleted, etc.
Sound good? Great, this is another super easy mod to implement, first download the package and unzip.
[1.0.3] - added code to strip failed comments
[1.0.2] - fixed the check for approved comments, should properly empty the cache now
[1.0.1] - added "remember me" function for my sticky forms mod
[1.0.0] - initial release
Now modify the following variables inside the mod.cache.php file. They are self-explanatory, and the comments inside the file should assist you.
$cache_dir = '/home/mysite/cache'; $cache_keep_days = '7'; $cache_polls = '0';
Cool, now upload mod.cache.php to the same directory as your snews.php and index.php files. Create the "cache" directory you specified now as well, if you haven't already.
Now open your index.php file add add the following at the top, just below your snews.php include (and poll include if you have it), like the following;
<?php include('snews.php'); include('mod.cache.php'); //include("mod_poll/poll_functions.php"); //uncomment if you're using my polls mod startCache(); ?>
Now add this to the very bottom of your index.php file;
<?php outputCache(); ?>
Yeah, that's it, upload index.php and browse your site when you're not logged in, you'll see your cache directory start filling up and notice your MySQL database getting only one query per page once cached. Edit an article or post a comment and watch the cache folder empty.