Prevent Drupal from caching your module's output

Well, it's been an incredibly long time since I've written anything, so here's a little something to get started again.

I wrote a in-house Drupal module for one-use ticket file streaming. Basically, a unique identifier is used to stream the file, then is discarded, making the url invalid after one use. Everything worked fine for logged-in users, but just today I noticed a giant hole: users who are not logged in can access the file as much as they want, thanks to Drupal's caching system.

I'm not knocking the caching system, if fact, it's working exactly the way it's supposed to. But that's counter productive for my needs. I posted my predicament on #drupal, and Crell pointed me right to the solution, using a module he wrote to disable caching for specific pages.

If you want to disable caching for your module, you need to set the global configuration for caching to false in your hook_init() like so:


function audiostreamer_init() {
$GLOBALS['conf']['cache'] = FALSE;
}

So, next time you need to disable caching in your module, you know what to do.

Caveat emptor: Disabling caching will affect your site's performance. Tread lightly.

Post new comment

The content of this field is kept private and will not be shown publicly.
Captcha
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
six minus equals five
Solve this math question and enter the solution with digits. E.g. for "two plus four = ?" enter "6".