/** * Uploads Browser Cache .htaccess to FTP * * @return void */ function cdn_upload_browsercache() { require_once W3TC_LIB_W3_DIR . '/Plugin/Cdn.php'; require_once W3TC_LIB_W3_DIR . '/Plugin/BrowserCache.php'; $w3_plugin_cdn =& W3_Plugin_Cdn::instance(); $w3_plugin_browsercache =& W3_Plugin_BrowserCache::instance(); $rules = $w3_plugin_browsercache->generate_rules_cache(true); $cdn_path = w3_get_cdn_rules_path(); $tmp_path = W3TC_TMP_DIR . '/' . $cdn_path; if (@file_put_contents($tmp_path, $rules)) { $results = array(); $upload = array($tmp_path => $cdn_path); $w3_plugin_cdn->upload($upload, true, $results); } }
/** * Returns CDN object * * @return W3_Cdn_Base */ function &get_cdn() { static $cdn = array(); if (!isset($cdn[0])) { $engine = $this->_config->get_string('cdn.engine'); $compression = $this->_config->get_boolean('browsercache.enabled') && $this->_config->get_boolean('browsercache.html.compression'); switch ($engine) { case 'mirror': $engine_config = array('domain' => $this->_config->get_array('cdn.mirror.domain'), 'ssl' => $this->_config->get_string('cdn.mirror.ssl'), 'compression' => false); break; case 'netdna': $engine_config = array('apiid' => $this->_config->get_string('cdn.netdna.apiid'), 'apikey' => $this->_config->get_string('cdn.netdna.apikey'), 'domain' => $this->_config->get_array('cdn.netdna.domain'), 'ssl' => $this->_config->get_string('cdn.netdna.ssl'), 'compression' => false); break; case 'cotendo': $engine_config = array('username' => $this->_config->get_string('cdn.cotendo.username'), 'password' => $this->_config->get_string('cdn.cotendo.password'), 'zones' => $this->_config->get_array('cdn.cotendo.zones'), 'domain' => $this->_config->get_array('cdn.cotendo.domain'), 'ssl' => $this->_config->get_string('cdn.cotendo.ssl'), 'compression' => false); break; case 'ftp': $engine_config = array('host' => $this->_config->get_string('cdn.ftp.host'), 'port' => $this->_config->get_integer('cdn.ftp.port'), 'user' => $this->_config->get_string('cdn.ftp.user'), 'pass' => $this->_config->get_string('cdn.ftp.pass'), 'path' => $this->_config->get_string('cdn.ftp.path'), 'pasv' => $this->_config->get_boolean('cdn.ftp.pasv'), 'domain' => $this->_config->get_array('cdn.ftp.domain'), 'ssl' => $this->_config->get_string('cdn.ftp.ssl'), 'compression' => false); break; case 's3': $engine_config = array('key' => $this->_config->get_string('cdn.s3.key'), 'secret' => $this->_config->get_string('cdn.s3.secret'), 'bucket' => $this->_config->get_string('cdn.s3.bucket'), 'cname' => $this->_config->get_array('cdn.s3.cname'), 'ssl' => $this->_config->get_string('cdn.s3.ssl'), 'compression' => $compression); break; case 'cf': $engine_config = array('key' => $this->_config->get_string('cdn.cf.key'), 'secret' => $this->_config->get_string('cdn.cf.secret'), 'bucket' => $this->_config->get_string('cdn.cf.bucket'), 'id' => $this->_config->get_string('cdn.cf.id'), 'cname' => $this->_config->get_array('cdn.cf.cname'), 'ssl' => $this->_config->get_string('cdn.cf.ssl'), 'compression' => $compression); break; case 'cf2': $engine_config = array('key' => $this->_config->get_string('cdn.cf2.key'), 'secret' => $this->_config->get_string('cdn.cf2.secret'), 'id' => $this->_config->get_string('cdn.cf2.id'), 'cname' => $this->_config->get_array('cdn.cf2.cname'), 'ssl' => $this->_config->get_string('cdn.cf2.ssl'), 'compression' => false); break; case 'rscf': $engine_config = array('user' => $this->_config->get_string('cdn.rscf.user'), 'key' => $this->_config->get_string('cdn.rscf.key'), 'location' => $this->_config->get_string('cdn.rscf.location'), 'container' => $this->_config->get_string('cdn.rscf.container'), 'cname' => $this->_config->get_array('cdn.rscf.cname'), 'ssl' => $this->_config->get_string('cdn.rscf.ssl'), 'compression' => false); break; case 'azure': $engine_config = array('user' => $this->_config->get_string('cdn.azure.user'), 'key' => $this->_config->get_string('cdn.azure.key'), 'container' => $this->_config->get_string('cdn.azure.container'), 'cname' => $this->_config->get_array('cdn.azure.cname'), 'ssl' => $this->_config->get_string('cdn.azure.ssl'), 'compression' => $compression); break; } $engine_config = array_merge($engine_config, array('debug' => $this->_config->get_boolean('cdn.debug'))); require_once W3TC_LIB_W3_DIR . '/Cdn.php'; $cdn[0] =& W3_Cdn::instance($engine, $engine_config); /** * Set cache config for CDN */ if ($this->_config->get_boolean('browsercache.enabled')) { require_once W3TC_LIB_W3_DIR . '/Plugin/BrowserCache.php'; $w3_plugin_browsercache =& W3_Plugin_BrowserCache::instance(); $cdn[0]->cache_config = $w3_plugin_browsercache->get_cache_config(); } } return $cdn[0]; }