123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <?php
- namespace Elgg\Cache;
- class SimpleCache {
-
-
- private $CONFIG;
-
- public function __construct() {
- global $CONFIG;
- $this->CONFIG = $CONFIG;
- }
-
- function registerView($view_name) {
- elgg_register_external_view($view_name, true);
- }
-
-
- function getUrl($type, $view) {
-
- if (($type === 'js' || $type === 'css') && 0 === strpos($view, $type . '/')) {
- $view = substr($view, strlen($type) + 1);
- }
-
- elgg_register_simplecache_view("$type/$view");
- return _elgg_get_simplecache_root() . "$type/$view";
- }
-
-
-
- function getRoot() {
- $viewtype = elgg_get_viewtype();
- if (elgg_is_simplecache_enabled()) {
-
- $lastcache = (int)_elgg_services()->config->get('lastcache');
- } else {
- $lastcache = 0;
- }
-
- return elgg_normalize_url("/cache/$lastcache/$viewtype/");
- }
-
-
- function isEnabled() {
- return (bool) _elgg_services()->config->get('simplecache_enabled');
- }
-
-
- function enable() {
- _elgg_services()->datalist->set('simplecache_enabled', 1);
- _elgg_services()->config->set('simplecache_enabled', 1);
- elgg_invalidate_simplecache();
- }
-
-
- function disable() {
- if (_elgg_services()->config->get('simplecache_enabled')) {
- _elgg_services()->datalist->set('simplecache_enabled', 0);
- _elgg_services()->config->set('simplecache_enabled', 0);
-
-
- _elgg_rmdir(_elgg_services()->config->getDataPath() . "views_simplecache");
- }
- }
-
-
- function invalidate() {
-
-
- if (!isset($this->CONFIG->views->simplecache) || !is_array($this->CONFIG->views->simplecache)) {
- return false;
- }
-
- _elgg_rmdir("{$this->CONFIG->dataroot}views_simplecache");
- mkdir("{$this->CONFIG->dataroot}views_simplecache");
-
- $time = time();
- _elgg_services()->datalist->set("simplecache_lastupdate", $time);
- $this->CONFIG->lastcache = $time;
-
- return true;
- }
-
- function init() {
-
- if (!defined('UPGRADING') && empty($this->CONFIG->lastcache)) {
- $this->CONFIG->lastcache = (int)_elgg_services()->datalist->get('simplecache_lastupdate');
- }
- }
- }
|