protected function cleanCache() { $result = true; $message = ''; try { if ($this->isInstalled()) { if (!empty($_REQUEST['clean_sessions'])) { Mage::app()->cleanAllSessions(); $message .= 'Session cleaned successfully. '; } Mage::app()->cleanCache(); // reinit config and apply all updates Mage::app()->getConfig()->reinit(); Mage_Core_Model_Resource_Setup::applyAllUpdates(); Mage_Core_Model_Resource_Setup::applyAllDataUpdates(); $message .= 'Cache cleaned successfully'; } else { $result = true; } } catch (Exception $e) { $result = false; $message = "Exception during cache and session cleaning: " . $e->getMessage(); $this->session()->addMessage('error', $message); } if ($result && $this->_getMaintenanceFlag()) { $maintenance_filename = 'maintenance.flag'; $config = $this->config(); if (!$this->isWritable() && strlen($config->__get('remote_config')) > 0) { $ftpObj = new Mage_Connect_Ftp(); $ftpObj->connect($config->__get('remote_config')); $ftpObj->delete($maintenance_filename); $ftpObj->close(); } else { @unlink($this->_getMaintenanceFilePath()); } } return array('result' => $result, 'message' => $message); }
/** * * @param $chanName * @param $package * @param Mage_Connect_Singleconfig $cacheObj * @param Mage_Connect_Ftp $ftp * @return unknown_type */ public function processUninstallPackageFtp($chanName, $package, $cacheObj, $ftp) { $ftpDir = $ftp->getcwd(); $package = $cacheObj->getPackageObject($chanName, $package); $contents = $package->getContents(); foreach ($contents as $file) { $res = $ftp->delete($file); $this->removeEmptyDirectory(dirname($file), $ftp); } $remoteXml = Mage_Connect_Package::PACKAGE_XML_DIR . DS . $package->getReleaseFilename() . '.xml'; $ftp->delete($remoteXml); $ftp->chdir($ftpDir); }
/** * Validate settings post data. * * @param array $p */ public function validateConfigPost($p) { $errors = array(); $configTestFile = 'connect.cfgt'; $configObj = $this->connect()->getConfig(); if ('ftp' == $p['deployment_type'] || '1' == $p['inst_protocol']) { /*check ftp*/ $confFile = $configObj->downloader_path . DIRECTORY_SEPARATOR . $configTestFile; try { $ftpObj = new Mage_Connect_Ftp(); $ftpObj->connect($p['ftp']); $tempFile = tempnam(sys_get_temp_dir(), 'config'); $serial = md5('config test file'); $f = @fopen($tempFile, "w+"); @fwrite($f, $serial); @fclose($f); $ret = $ftpObj->upload($confFile, $tempFile); //read file if (!$errors && is_file($configTestFile)) { $size = filesize($configTestFile); if (!$size) { $errors[] = 'Unable to read saved settings. Please check Installation Path of FTP Connection.'; } if (!$errors) { $f = @fopen($configTestFile, "r"); @fseek($f, 0, SEEK_SET); $contents = @fread($f, strlen($serial)); if ($serial != $contents) { $errors[] = 'Wrong Installation Path of FTP Connection.'; } fclose($f); } } else { $errors[] = 'Unable to read saved settings. Please check Installation Path of FTP Connection.'; } $ftpObj->delete($confFile); $ftpObj->close(); } catch (Exception $e) { $errors[] = 'Deployment FTP Error. ' . $e->getMessage(); } } else { $p['ftp'] = ''; } if ('1' == $p['use_custom_permissions_mode']) { /*check permissions*/ if (octdec(intval($p['mkdir_mode'])) < 73 || octdec(intval($p['mkdir_mode'])) > 511) { $errors[] = 'Folders permissions not valid. '; } if (octdec(intval($p['chmod_file_mode'])) < 73 || octdec(intval($p['chmod_file_mode'])) > 511) { $errors[] = 'Files permissions not valid. '; } } //$this->controller()->session()->addMessage('success', 'Settings has been successfully saved'); return $errors; }
/** * * @param $chanName * @param $package * @param Mage_Connect_Singleconfig $cacheObj * @param Mage_Connect_Ftp $ftp * @return unknown_type */ public function processUninstallPackageFtp($chanName, $package, $cacheObj, $ftp) { $ftpDir = $ftp->getcwd(); $package = $cacheObj->getPackageObject($chanName, $package); $contents = $package->getContents(); foreach ($contents as $file) { $res = $ftp->delete($file); } $ftp->chdir($ftpDir); }
/** * Uninstall Package over FTP * * @param $chanName * @param $package * @param Mage_Connect_Singleconfig $cacheObj * @param Mage_Connect_Ftp $ftp * @throws RuntimeException */ public function processUninstallPackageFtp($chanName, $package, $cacheObj, $ftp) { $ftpDir = $ftp->getcwd(); $package = $cacheObj->getPackageObject($chanName, $package); $contents = $package->getContents(); $failedFiles = array(); foreach ($contents as $file) { $ftp->delete($file); if ($ftp->fileExists($file)) { $failedFiles[] = $file; continue; } $this->removeEmptyDirectory(dirname($file), $ftp); } if (!empty($failedFiles)) { $msg = sprintf("Failed to delete files: %s \r\n Check permissions", implode("\r\n", $failedFiles)); throw new RuntimeException($msg); } $remoteXml = Mage_Connect_Package::PACKAGE_XML_DIR . DS . $package->getReleaseFilename() . '.xml'; $ftp->delete($remoteXml); $ftp->chdir($ftpDir); }
/** * End install package(s) * */ public function endInstall() { if ($this->isInstalled()) { try { if (!empty($_GET['clean_sessions'])) { Mage::app()->cleanAllSessions(); } Mage::app()->cleanCache(); } catch (Exception $e) { $this->session()->addMessage('error', "Exception during cache and session cleaning: " . $e->getMessage()); } // reinit config and apply all updates Mage::app()->getConfig()->reinit(); Mage_Core_Model_Resource_Setup::applyAllUpdates(); Mage_Core_Model_Resource_Setup::applyAllDataUpdates(); } if ($this->_getMaintenanceFlag()) { $maintenance_filename = 'maintenance.flag'; $config = $this->config(); if (!$this->isWritable() && strlen($config->__get('remote_config')) > 0) { $ftpObj = new Mage_Connect_Ftp(); $ftpObj->connect($config->__get('remote_config')); $ftpObj->delete($maintenance_filename); $ftpObj->close(); } else { @unlink($this->_getMaintenanceFilePath()); } } }