]> git.wh0rd.org - tt-rss.git/blobdiff - include/functions.php
remove apache-specific x-sendfile stuff
[tt-rss.git] / include / functions.php
index 2034547474d7adb6fd1a2c1d4ff16f0b33f324ef..392042b901f2b109ded436659e0283f2acef9c01 100644 (file)
                }
        }
 
+       /*      this is essentially a wrapper for readfile() which allows plugins to hook
+               output with httpd-specific "fast" implementation i.e. X-Sendfile or whatever else
+
+               hook function should return true if request was handled (or at least attempted to)
+
+               note that this can be called without user context so the plugin to handle this
+               should be loaded systemwide in config.php */
+       function send_local_file($filename) {
+               if (file_exists($filename)) {
+                       $tmppluginhost = new PluginHost();
+
+                       $tmppluginhost->load(PLUGINS, PluginHost::KIND_SYSTEM);
+                       $tmppluginhost->load_data();
+
+                       foreach ($tmppluginhost->get_hooks(PluginHost::HOOK_SEND_LOCAL_FILE) as $plugin) {
+                               if ($plugin->hook_send_local_file($filename)) return true;
+                       }
+
+                       $mimetype = mime_content_type($filename);
+                       header("Content-type: $mimetype");
+
+                       $stamp = gmdate("D, d M Y H:i:s", filemtime($filename)) . " GMT";
+                       header("Last-Modified: $stamp", true);
+
+                       return readfile($filename);
+               } else {
+                       return false;
+               }
+       }
+