/** * Returns a singleton instance of the class * * Sets the cache name and checks that the cache directory is writeable * @uses defined() * @uses substr() * @uses md5() * * @access public * @return Memcache_Cache_Module */ public static function i() { if (!self::$_singleton instanceof Memcache_Cache_Module) { if (Usu_Main::i()->getVar('page_modules', substr(Usu_Main::i()->getVar('filename'), 0, -4)) instanceof aPage_Modules) { self::$cache_on = defined('USU5_CACHE_ON') && USU5_CACHE_ON == 'true' ? true : false; self::$cache_name = self::$memcache_prefix . md5(HTTP_SERVER . Usu_Main::i()->getVar('page_modules', substr(Usu_Main::i()->getVar('filename'), 0, -4))->buildCacheName()); Usu_Main::i()->setVar('cache_name', self::$cache_name); } else { // No module so we set the cache name as the language id plus the called file self::$cache_name = self::$memcache_prefix . md5(HTTP_SERVER . Usu_Main::i()->getVar('languages_id') . '_' . substr(Usu_Main::i()->getVar('filename'), 0, -4)); Usu_Main::i()->setVar('cache_name', self::$cache_name); } self::$_singleton = new self(); } return self::$_singleton; }