/** * Returns a valid tmp folder depending on the OS used. * * @return string */ public function getTmpDir() { // We use a Zend method here, for it already checks the OS. require_once 'Zend/Cache/Backend.php'; $temp = new Zend_Cache_Backend(); return $temp->getTmpDir(); }
protected function _getHeaderHtml($element) { $headerHtml = parent::_getHeaderHtml($element); if ($this->getGroup() && @current($this->getGroup()->data_model) !== false) { // Set up cache, using the Magento cache doesn't make sense as it won't cache if cache is disabled try { $cacheBackend = new Zend_Cache_Backend(); $cache = Zend_Cache::factory('Core', 'File', array('lifetime' => 43200), array('cache_dir' => $cacheBackend->getTmpDir())); } catch (Exception $e) { return $headerHtml; } // Get data model $dataModelName = @current($this->getGroup()->data_model); $cacheKey = 'info_' . @current(explode("/", $dataModelName)); if (@current($this->getGroup()->module_name) !== false) { $moduleVersion = (string) @Mage::getConfig()->getNode()->modules->{current($this->getGroup()->module_name)}->version; if (!empty($moduleVersion)) { $cacheKey .= '_' . str_replace('.', '_', $moduleVersion); } } // Is the response cached? $cachedHtml = $cache->load($cacheKey); #$cachedHtml = false; // Test: disable cache if ($cachedHtml !== false && $cachedHtml !== '') { $storeHtml = $cachedHtml; } else { try { $dataModel = Mage::getSingleton($dataModelName); $dataModel->afterLoad(); // Fetch info whether updates for the module are available $url = 'ht' . 'tp://w' . 'ww.' . 'xte' . 'nto.' . 'co' . 'm/li' . 'cense/info/'; $version = Mage::getVersion(); $extensionVersion = $dataModel->getValue(); if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $storeHtml = file_get_contents($url . '?version=' . $version . '&d=' . $extensionVersion); } else { $client = new Zend_Http_Client($url, array('timeout' => 10)); $client->setParameterGet('version', $version); $client->setParameterGet('d', $extensionVersion); $response = $client->request('GET'); // Post version /*$client = new Zend_Http_Client($url, array('timeout' => 10)); $client->setParameterPost('version', $version); $client->setParameterPost('d', $extensionVersion); $response = $client->request('POST');*/ $storeHtml = $response->getBody(); } $cache->save($storeHtml, $cacheKey); } catch (Exception $e) { return '------------------------------------------------<div style="display:none">Exception: ' . $e->getMessage() . '</div>' . $headerHtml; } } if (preg_match('/There has been an error processing your request/', $storeHtml)) { return $headerHtml; } $headerHtml = str_replace('</div><table cellspacing="0" class="form-list">', $storeHtml . '</div><table cellspacing="0" class="form-list">', $headerHtml); // below 1.6 $headerHtml = str_replace('</span><table cellspacing="0" class="form-list">', $storeHtml . '</span><table cellspacing="0" class="form-list">', $headerHtml); // after 1.7 } return $headerHtml; }
/** * Determine system TMP directory and detect if we have read access * * inspired from \Zend_File_Transfer_Adapter_Abstract * * @return string * @throws \Zend_Cache_Exception if unable to determine directory */ public function getTmpDir() { return $this->_backend->getTmpDir(); }