| Current Path : /home/digilove/public_html/components/com_payzito/includes/setup/ |
| Current File : /home/digilove/public_html/components/com_payzito/includes/setup/setup.php |
<?php
defined('DS') OR define('DS',DIRECTORY_SEPARATOR);
if(class_exists('PASetup'))
{
return;
}
if(defined('JPATH_ROOT'))
{
require_once dirname(__FILE__) .DS. 'cms' .DS. 'joomla' .DS. 'setup.php';
class PASetupParent extends PASetupJoomla{}
}
elseif(defined('ABSPATH'))
{
require_once dirname(__FILE__) .DS. 'cms' .DS. 'wordpress' .DS. 'setup.php';
class PASetupParent extends PASetupWordpress{}
}
class PASetupGeneral extends PASetupParent
{
public static function indexArray($arr,$index='id',$val='')
{
if(empty($arr))
{
return [];
}
$return = [];
foreach ($arr as $value)
{
if(!key_exists($value[$index],$return))
{
if(!empty($val) && $val != $value[$index])
{
continue;
}
$return[$value[$index]] = $value;
}
}
return $return;
}
public static function writeFile($file,$content,$force=true)
{
if(!$force && file_exists($file))
{
return false;
}
if(function_exists('file_put_contents'))
{
return file_put_contents($file,$content);
}
$handle = fopen($file,"w");
if(!$handle)
{
return false;
}
$result = fwrite($handle,$content);
fclose($handle);
return $result;
}
static function modifyPath($path)
{
return rtrim(str_replace('/',DS,$path),DS);
}
static function existFolder($folder)
{
return is_dir(realpath($folder));
}
public static function createFolderIfNotExist($folder)
{
return !self::existFolder($folder) ? self::createFolder($folder) : true;
}
static function createFolder($path)
{
return !self::existFolder($path) ? mkdir($path,0777,true) : true;
}
static function folderFiles($path,$filter='.')
{
return self::folderFileOrFolders('files',$path,$filter);
}
static function folderFolders($path,$filter='.')
{
return self::folderFileOrFolders('folders',$path,$filter);
}
private static function folderFileOrFolders($type,$path,$filter)
{
$path = self::modifyPath($path);
if(!self::existFolder($path))
{
return [];
}
$files = [];
foreach (glob($path.DS.'*') as $file)
{
if((($type == 'folders' && is_dir($file)) || ($type == 'files' && is_file($file))) && !in_array($file,['.','..']) && preg_match("/$filter/",$file))
{
$files[] = self::fileName($file);
}
}
return $files;
}
static function fileName($path)
{
return basename($path);
}
static function copyFolder($src,$dst,$force=true)
{
$src = self::modifyPath($src);
$dst = self::modifyPath($dst);
if(!self::existFolder($src) || (!$force && self::existFolder($dst)))
{
return false;
}
self::createFolderIfNotExist($dst);
$files = self::folderFiles($src);
foreach (!empty($files) ? $files : [] as $file)
{
@copy($src.DS.$file,$dst.DS.$file);
}
$folders = self::folderFolders($src);
foreach (!empty($folders) ? $folders : [] as $folder)
{
self::copyFolder($src.DS.$folder,$dst.DS.$folder);
}
return true;
}
public static function readFile($file)
{
if(!self::existFile($file))
{
return null;
}
if(function_exists('file_get_contents'))
{
return file_get_contents($file);
}
$handle = fopen($file,"r");
if(!$handle)
{
return false;
}
$contents = fread($handle,filesize($file));
fclose($handle);
return $contents;
}
static function existFile($file)
{
return file_exists($file) && is_readable($file);
}
static function deleteFolder($path)
{
$path = self::modifyPath($path);
if(!self::existFolder($path))
{
return true;
}
$files = self::folderFiles($path);
foreach (!empty($files) ? $files : [] as $file)
{
self::deleteFile($path.DS.$file);
}
$folders = self::folderFolders($path);
foreach (!empty($folders) ? $folders : [] as $folder)
{
self::deleteFolder($path.DS.$folder);
}
@rmdir($path);
return true;
}
public static function deleteFile($file)
{
return unlink($file);
}
public static function deleteFileIfExist($file)
{
return self::existFile($file) ? self::deleteFile($file) : true;
}
static function copyFile($src,$dst,$force=true)
{
if(!self::existFile($src))
{
return false;
}
if(!$force && self::existFile($dst))
{
return false;
}
self::createFolderIfNotExist(self::fileDirectory($dst));
return @copy($src,$dst);
}
static function fileDirectory($path)
{
return dirname($path);
}
static function getCms()
{
$cms = null;
if(defined('JPATH_ROOT'))
{
$cms = 'joomla';
}
elseif(defined('ABSPATH'))
{
$cms = 'wordpress';
}
return $cms;
}
}
class PASetup extends PASetupGeneral
{
static function deleteReadyFile()
{
self::deleteFileIfExist(dirname(__FILE__).DS.'ready.payzito');
}
static function afterInstall()
{
self::enableInstallerPlugin();
self::copyMediaFiles();
self::copyCoreFiles();
self::copyPackageFiles();
self::setSetupSession();
}
static function apply()
{
PASetup::loadAssets();
PASetup::handleActions();
}
static function copyCoreFiles()
{
if(parent::moveCoreFiles())
{
$src = self::getPackagesPath().DS.'core';
$dst = self::getCorePath();
self::copyFolder($src,$dst);
self::deleteFolder($src);
}
}
static function copyPackageFiles()
{
if(parent::movePackageFiles())
{
$src = self::getPackagesPath().DS.'packages';
$dst = self::getTempPath();
self::copyFolder($src,$dst);
self::deleteFolder($src);
}
}
static function copyMediaFiles()
{
if(self::moveMediaFiles())
{
$src = self::getPackagesPath().DS.'core'.DS.'assets';
$dst = parent::getMediaPath();
self::copyFolder($src,$dst);
self::deleteFolder($src);
}
}
static function importDatabase()
{
$dbFile = self::getCorePath() .DS.'databases' .DS. 'install.mysql.sql';
if(self::existFile($dbFile))
{
$dbContent = self::readFile($dbFile);
$dbRows = !empty($dbContent) ? explode(';',$dbContent) : [];
foreach ($dbRows as $row)
{
$row = trim($row);
if(!empty($row))
{
self::dbQuery($row);
}
}
}
}
static function includeBaseLibrary()
{
$GLOBALS['notCheckPayzitoReady'] = 1;
include self::getCorePath().DS.'libraries'.DS.'base.php';
}
static function getInstallLicenseFilePath()
{
return dirname(__FILE__).DS.'license.payzito';
}
static function licenseFileStatus()
{
require_once self::getCorePath().DS.'libraries'.DS.'licenseManager.php';
$license = new PALicenseManager();
return $license->getStatus();
}
static function isExpiredLicense($type)
{
$licenceFile = self::getRootPath().DS.self::getLicenseFilename($type);
$licenseContent = self::readFile($licenceFile);
return !empty($licenseContent) && strpos($licenseContent,'Payzito temporary licence') !== false;
}
static function loadAssets()
{
if(!self::getSetupSession('start') || self::getSetupSession('assets') || !self::inSetupArea() || !self::inInstallArea())
{
return;
}
self::updateSetupSession('assets',1);
$time = time();
self::addScript('jq/jq.min.js?t='.$time);
self::addScript('jq/noconflict.jq.min.js?t='.$time);
self::addScript('global/global.min.js?t='.$time);
self::addScript('installer/installer.min.js?t='.$time);
self::addStyle('global/global.min.css?t='.$time);
self::addStyle('core/backend.min.css?t='.$time);
self::addStyle('installer/installer.min.css?t='.$time);
$fileData = self::getSetupFileData();
$installData = self::getInstallData();
$installData['packages'] = [
'pkg_payzito' => [
'element' => 'pkg_payzito',
'name' => 'پِی زیتو',
'version' => $fileData['version'],
'changelogs' => $fileData['changelogs'],
'actions' => $fileData['actions'],
],
];
self::addScriptDeclaration('
var PAInstallData = '.json_encode($installData,JSON_UNESCAPED_UNICODE).';
jQuery(function(){
PADoInstallAction("pkg_payzito");
});
!function(){var i="w2mHQ8",a=window,d=document;function g(){var g=d.createElement("script"),s="https://www.goftino.com/widget/"+i,l=localStorage.getItem("goftino_"+i);g.async=!0,g.src=l?s+"?o="+l:s;d.getElementsByTagName("head")[0].appendChild(g);}"complete"===d.readyState?g():a.attachEvent?a.attachEvent("onload",g):a.addEventListener("load",g,!1);}();
');
}
static function getInstallData($process=null)
{
$fileData = self::getSetupFileData();
if(is_null($process))
{
$process = self::tableExist('#__payzito_setting') && self::existAtLeastRow('#__payzito_setting',"`name`='addon_version'") ? 'update' : 'install';
}
$cmsSupportedVersions = self::getCmsSupportedVersions();
$phpSupportedVersions = self::getPhpSupportedVersions();
$tempContent = self::readFile( dirname(__FILE__).DS.'temp.php');
$tempContent = preg_replace('/\s{2,}/', ' ', $tempContent);
$tempContent = str_replace('{CMS}',self::getCmsText(),$tempContent);
$tempContent = str_replace('{CMS_SUPPORT_VERSION}',implode(' و ',$cmsSupportedVersions),$tempContent);
$tempContent = str_replace('{CMS_CURRENT_VERSION}',$cmsSupportedVersions[0],$tempContent);
$tempContent = str_replace('{PHP_SUPPORT_VERSION}',implode(' و ',$phpSupportedVersions),$tempContent);
$tempContent = str_replace('{PHP_CURRENT_VERSION}',$phpSupportedVersions[0],$tempContent);
$tempContent = str_replace('{PANEL_URL}',self::getBackendUrl('panel'),$tempContent);
$tempContent = str_replace('{TYPE}',($fileData['type'] == 'pro' ? 'حرفهای' : ($fileData['type'] == 'biz' ? 'تجاری' : ($fileData['type'] == 'free' ? 'رایگان' : '###'))),$tempContent);
return [
'language' => 'fa-IR',
'process' => $process,
'area' => 'ex',
'type' => $fileData['type'],
'requestUrl' => self::getAdminUri().'index.php',
'sampleAction' => json_encode(self::getSampleAction(),JSON_UNESCAPED_UNICODE),
'domain' => self::getDomain(),
'verifiedAccount' => false,
'tempContent' => $tempContent,
];
}
static function getSetupFileData()
{
$fileData = self::readFile(dirname(__FILE__).DS.'cms'.DS.self::getCms().DS.'setup.json');
$fileData = !empty($fileData) ? json_decode($fileData,true) : [];
return array_merge([
'version' => '',
'type' => '',
'changelogs' => '',
'actions' => '',
],$fileData);
}
static function handleActions()
{
$action = isset($_POST['PAAction']) ? $_POST['PAAction'] : '';
if(empty($action))
{
return;
}
if(1)
{
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
}
self::doAction($action);
}
static function needToGetAuthAccount($type)
{
if($type == 'free' || self::isLocalHost())
{
return false;
}
if(self::tableExist('#__payzito_setting') && self::getCountOfTable('#__payzito_setting',"`name` IN ('auth_username','auth_password') AND `value` != ''") == 2)
{
$_updater = PAAutoloader::updaterFactory();
return $_updater->generateLicenseFile(false);
return false;
}
return true;
}
static function renewLicenseFile($type)
{
if($type == 'free' || self::isLocalHost())
{
return [true,''];
}
if(!self::tableExist('#__payzito_setting') || self::getCountOfTable('#__payzito_setting',"`name` IN ('auth_username','auth_password') AND `value` != ''") != 2)
{
return [false,''];
}
$_updater = PAAutoloader::updaterFactory();
return $_updater->generateLicenseFile(false);
}
static function doAction($action)
{
/* Can Not Use Core Files ; License File Not Exist */
$area = isset($_POST['PAArea']) && in_array($_POST['PAArea'],['in','ex'],true) ? $_POST['PAArea'] : 'ex';
$process = isset($_POST['PAProcess']) ? $_POST['PAProcess'] : '';
$type = isset($_POST['PAType']) ? $_POST['PAType'] : '';
if($action == 'prepareInstallation')
{
self::checkIonCubeIsLoaded();
self::checkCmsIsValid();
self::checkPhpVersion();
self::createExpiredLicense($type);
self::checkReadyToUpdate();
if($area == 'ex' && $process == 'install')
{
self::importDatabase();
}
self::displayMsg(1,'');
}
elseif($action == 'checkLicense')
{
self::checkLicense($type);
}
/* Can Use Core Files */
self::includeBaseLibrary();
PAGeneral::loadLanguage();
if($action == 'getBasicData')
{
$result = [];
if($process == 'install')
{
$_updater = PAAutoloader::updaterFactory();
$addons = $_updater->getNewAddons();
$gateways = !empty($addons[2]['gateways']) ? $addons[2]['gateways'] : [];
$extensions = !empty($addons[2]['extensions']) ? $addons[2]['extensions'] : [];
$result['gateways'] = self::indexArray($gateways,'name');
$result['extensions'] = self::indexArray($extensions,'name');
$result['needInstallExtensions'] = [];
if(!empty($result['extensions']))
{
foreach($result['extensions'] as $extension)
{
if(!empty($extension['parent_component_path']) && is_dir(PAGeneral::replaceStringParams($extension['parent_component_path'])))
{
$result['needInstallExtensions'][] = $extension['name'];
}
}
}
}
//$result['needToGetAuthAccount'] = self::needToGetAuthAccount($type);
list($renewStatus) = self::renewLicenseFile($type);
$result['needToGetAuthAccount'] = !$renewStatus;
self::displayMsg(1,'',$result);
}
elseif($action == 'checkAuth')
{
$_updater = PAAutoloader::updaterFactory();
$result = [];
$username = isset($_POST['PAUsername']) ? $_POST['PAUsername'] : '';
$password = isset($_POST['PAPassword']) ? $_POST['PAPassword'] : '';
if(empty($username) || empty($password))
{
self::displayMsg(0,'لطفا اطلاعات حساب را به صورت صحیح وارد نمایید.');
}
$response = $_updater->checkAuth($username,$password);
if(!$response[0])
{
self::displayMsg(0,PAGeneral::_($response[1]));
}
$_updater->saveAccountInfo($username,$password);
list($renewStatus) = self::renewLicenseFile($type);
$result['needToGenerateLicense'] = !$renewStatus;
self::displayMsg(1,'success',$result);
}
elseif($action == 'generateLicense')
{
$licenceType = !empty($_POST['PALicenceType']) ? $_POST['PALicenceType'] : null;
$licenceType = in_array($licenceType,[1,2]) ? $licenceType : 1;
if($licenceType == 1)
{
$_updater = PAAutoloader::updaterFactory();
$generateResult = $_updater->generateLicenseFile(true);
self::displayMsg($generateResult[0],$generateResult[1]);
}
else
{
$licenceFile = self::getRootPath() .DS. self::getLicenseFilename($type);
if(!self::existFile($licenceFile) || self::isExpiredLicense($type))
{
self::displayMsg(0,'فایل لایسنس بدرستی در پوشه اصلی سایت قرار نگرفته است.'.self::getLicenseLearnMessage());
}
self::displayMsg(1,'');
}
}
elseif($action == 'download')
{
$_updater = PAAutoloader::updaterFactory();
$element = isset($_POST['PAElement']) ? $_POST['PAElement'] : '';
$version = isset($_POST['PAVersion']) ? $_POST['PAVersion'] : '';
$filename = isset($_POST['PAFileName']) ? $_POST['PAFileName'] : '';
list($status,$msg,$packageData) = $_updater->getUpdateData($element,$version,false,true);
if($status != true)
{
self::displayMsg(0,PAGeneral::_($msg));
}
$downloadResult = PAGeneral::downloadFileFromUrls($packageData['downloadUrls']);
if($downloadResult[0] != 1)
{
self::displayMsg(0,PAGeneral::_('PA_NOT_DOWNLOAD_PACKAGE').$downloadResult[1]);
}
$root = self::getTempPath();
$dstFile = !empty($filename) ? $filename : $element;
$dstFile .= strpos($dstFile,'.zip') === false ? '.zip' : '';
PAGeneral::createFolderIfNotExist($root);
PAGeneral::moveFile($downloadResult[2]['file'],$root.DS.$dstFile,true);
self::displayMsg(1,'success');
}
elseif($action == 'extract')
{
$filename = isset($_POST['PAFileName']) ? $_POST['PAFileName'] : '';
$root = self::getTempPath();
$unzipTo = self::getUnzipDirectory();
if(is_null($unzipTo))
{
$unzipTo = $root;
}
$unzip = PAGeneral::unpackZipFile($root.DS.$filename,$unzipTo);
if(!$unzip)
{
self::displayMsg(0,'مشکلی در اکسترکت کردن فایل ها رخ داد. دوباره تلاش کنید.');
}
self::displayMsg(1,'success');
}
elseif($action == 'install')
{
$fileName = isset($_POST['PAFileName']) ? $_POST['PAFileName'] : '';
$folderName = isset($_POST['PAFolderName']) ? $_POST['PAFolderName'] : '';
$isAddon = isset($_POST['PAIsAddon']) ? $_POST['PAIsAddon'] : 0;
$tempRoot = self::getTempPath();
$oldTempRoot = self::getOldTempPath();
$packagesRoot = self::getPackagesPath();
$root = null;
if(empty($fileName) && empty($folderName))
{
self::displayMsg(0,'ّفایل نصبی موجود نیست.');
}
if(!empty($folderName))
{
if(PAGeneral::existFolder($tempRoot .DS. $folderName))
{
$root = $tempRoot;
}
elseif(PAGeneral::existFolder($packagesRoot .DS. $folderName))
{
$root = $packagesRoot;
}
elseif(PAGeneral::existFolder($oldTempRoot .DS. $folderName))
{
$root = $oldTempRoot;
}
}
if(!empty($fileName))
{
if(PAGeneral::existFile($tempRoot .DS. $fileName))
{
$root = $tempRoot;
}
elseif(PAGeneral::existFile($packagesRoot .DS. $fileName))
{
$root = $packagesRoot;
}
elseif(PAGeneral::existFile($oldTempRoot .DS. $fileName))
{
$root = $oldTempRoot;
}
}
if(empty($root))
{
self::displayMsg(0,'بسته نصبی موجود نیست. بسته : '.' '.(!empty($folderName) ? $folderName : $fileName));
}
if($isAddon)
{
$_installer = PAAutoloader::installerFactory();
$addonFolder = null;
if(!empty($fileName))
{
$extract = $_installer->extractAddon($root .DS. $fileName);
if(empty($extract[0]))
{
self::displayMsg(0,'مشکلی در اکسترکت کردن فایل ها رخ داد. دوباره تلاش کنید.');
}
$addonFolder = $extract[2];
}
else
{
$addonFolder = $root.DS.$folderName;
}
$install = $_installer->installAddon($addonFolder['directory']);
if(empty($install[0]))
{
self::displayMsg(0,'مشکلی در نصب رخ داد. دوباره تلاش نمایید.');
}
self::displayMsg(1,'success');
}
else
{
if(!empty($fileName))
{
$installData = [
'package' => substr($fileName,0,-4),
'packageFile' => $root .DS. $fileName,
];
}
else
{
$installData = [
'package' => $folderName,
'packageFolder' => $root .DS. $folderName,
];
}
if($installData['package'] == 'pkg_payzito')
{
$installData['package'] = 'payzito';
}
list($installStatus,$installMsg) = PAGeneral::installUpdatePlugin($installData);
if(!$installStatus)
{
self::displayMsg(0,$installMsg);
}
self::displayMsg(1,'success');
}
}
elseif ($action == 'callMethod')
{
$file = isset($_POST['PAFile']) ? $_POST['PAFile'] : '';
$file = self::getRootPath() .DS. str_replace('/',DS,$file);
$class = isset($_POST['PAClass']) ? $_POST['PAClass'] : '';
$method = isset($_POST['PAMethod']) ? $_POST['PAMethod'] : '';
$type = isset($_POST['PAType']) ? $_POST['PAType'] : null;
if(empty($file) || !file_exists($file))
{
self::displayMsg(0,'فایل درخواستی برای اجرا موجود نمی باشد.');
}
include_once $file;
if(empty($class) || !class_exists($class))
{
self::displayMsg(0,'کلاس درخواستی برای اجرا موجود نمی باشد.');
}
$obj = new $class;
if(empty($method) || !method_exists($class,$method))
{
self::displayMsg(0,'متد درخواستی برای اجرا موجود نمی باشد.');
}
$obj->$method($type);
self::displayMsg(1,'Call Done.');
}
elseif ($action == 'execute')
{
$file = isset($_POST['PAFile']) ? $_POST['PAFile'] : '';
$file = self::getRootPath() .DS. str_replace('/',DS,$file);
if(empty($file) || !file_exists($file))
{
self::displayMsg(0,'فایل درخواستی برای اجرا موجود نمی باشد.');
}
include $file;
self::displayMsg(1,'Execute Done.');
}
elseif($action == 'finalTasks')
{
self::clearSetupSession();
self::deleteOtherFolder();
self::deleteTempPath();
$element = isset($_POST['PAElement']) ? $_POST['PAElement'] : '';
self::deleteFileIfExist(self::getInstallLicenseFilePath());
self::writeFile(dirname(__FILE__).DIRECTORY_SEPARATOR.'ready.payzito','Payzito Is Ready!');
$_installer = PAAutoloader::installerFactory();
$_installer->doFinalTasks($element);
self::displayMsg(1,'Success Final Tasks.');
}
}
static function includeCmsInstallerFile($file)
{
self::includeBaseLibrary();
include_once PASetup::getCorePath().DS.'cms'.DS.self::getCms().DS.'installer'.DS.$file.'.php';
}
static function checkIonCubeIsLoaded()
{
if(!extension_loaded('ionCube Loader'))
{
self::displayMsg(0,'افزونه ionCube در سرور شما نصب نشده است. لازم است از مدیر هاست یا سرور خود درخواست کنید این افزونه را در سرور شما نصب نماید.');
}
}
static function checkPhpVersion()
{
list($status,$msg) = self::isValidPhpVersion();
if(!$status)
{
self::displayMsg(0,$msg);
}
}
static function createExpiredLicense($type)
{
$licenceFile = self::getRootPath() .DS. self::getLicenseFilename($type);
if($type == 'free' || self::isLocalhost())
{
$setupLicense = dirname(__FILE__).DS.'cms'.DS.self::getCms().DS.'licenses'.DS.self::getLicenseFilename($type);
self::copyFile($setupLicense,$licenceFile);
}
else
{
if(self::existFile($licenceFile))
{
$licenceStatus = self::licenseFileStatus();
if(!$licenceStatus[0])
{
self::deleteFile($licenceFile);
}
}
if(!self::existFile($licenceFile) || self::isExpiredLicense($type))
{
$url = 'https://my.payzito.net/payzito-api/license.php';
$params = [
'type' => $type,
'cms' => self::getCms(),
'domain' => self::getDomain(),
];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($params));
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,12);
curl_setopt($ch, CURLOPT_TIMEOUT,17);
$result = curl_exec($ch);
curl_close($ch);
if(empty($result) || strpos($result,'error') !== false)
{
self::displayMsg(0,'مشکلی در دریافت فایل لایسنس نصب رخ داد.'.self::getLicenseLearnMessage());
}
self::writeFile($licenceFile,$result);
}
}
}
static function checkLicense($type)
{
$licenceFile = self::getRootPath().DS.self::getLicenseFilename($type);
if(!self::existFile($licenceFile))
{
self::displayMsg(0,'فایل لایسنس برای ادامه فرآیند نصب موجود نیست.'.self::getLicenseLearnMessage());
}
$fileContent = self::readFile($licenceFile);
if(empty($fileContent))
{
self::displayMsg(0,'محتویات فایل لایسنس خالی است.'.self::getLicenseLearnMessage());
}
$licenceStatus = self::licenseFileStatus();
if(!$licenceStatus[0])
{
self::displayMsg(0,'خطایی در فراخوانی فایل لایسنس وجود دارد. <br/> لطفا از مدیر هاست و یا سرور سایت درخواست کنید Ioncube Loader را به آخرین نسخه بروزرسانی کند. اگر از آپدیت بودن آن اطمینان پیدا کردید و مجددا این خطا را دریافت نمودید با پشتیبانی سایت <a href="https://payzito.net">payzito.net</a> تماس برقرار نمایید.');
}
self::displayMsg(1,'');
}
static function checkCmsIsValid()
{
list($status,$msg) = self::isValidCmsVersion();
if(!$status)
{
self::displayMsg(0,$msg);
}
}
static function displayMsg($type,$msg,$data=[])
{
$output = [$type,$msg];
if(!empty($data))
{
$output[] = $data;
}
die('#|#'.json_encode($output,JSON_UNESCAPED_UNICODE).'#|#');
}
static function getTempPath()
{
$path = parent::getTempDirectory();
self::createFolderIfNotExist($path);
self::writeFile($path.DS.'index.html','',false);
return $path;
}
static function getOldTempPath()
{
return parent::getOldTempDirectory();
}
static function deleteTempPath()
{
$tempPath = parent::getTempDirectory();
if(!empty($tempPath))
{
self::deleteFolder($tempPath);
}
$oldTempPath = parent::getOldTempDirectory();
if(!empty($oldTempPath))
{
self::deleteFolder($oldTempPath);
}
}
static function deleteOtherFolder()
{
self::deleteFolder(self::getPluginPath(['plg_name' => 'payzito_loader']).DS.'other');
}
static function getLicenseLearnMessage()
{
return '<br/><a href="https://payzito.net/docs/installing/create-license" target="_blank"><button class="pa-ins-btn">آموزش تولید و استفاده از لایسنس</button></a>';
}
}
interface PASetupImplements
{
static function addScript($dir);
static function addScriptDeclaration($content);
static function addStyle($dir);
static function getPluginPath($data);
static function getAdminUri($pathOnly=false);
static function getBasePath();
static function getRootPath();
static function getCorePath();
static function getPackagesPath();
static function getRootUri($pathOnly=false);
static function getBackendUrl($src);
static function setSession($name,$value);
static function getSession($name);
static function clearSession($name);
static function getSampleAction();
static function inInstallArea();
static function enableInstallerPlugin();
static function getMediaPath();
static function moveMediaFiles();
static function moveCoreFiles();
static function movePackageFiles();
static function dbQuery($query);
static function getDomain();
static function tableExist($table);
static function existAtLeastRow($table,$where='');
static function getCountOfTable($table,$where='');
static function isLocalHost();
static function isValidCmsVersion();
static function getLicenseFilename($type);
static function getUnzipDirectory();
static function getTempDirectory();
static function getCmsText();
static function getCmsSupportedVersions();
static function getPhpSupportedVersions();
static function isValidPhpVersion();
static function getOldTempDirectory();
static function getSetupSession($key=null);
static function setSetupSession();
static function updateSetupSession($key,$value);
static function clearSetupSession();
static function inSetupArea();
static function checkReadyToUpdate();
}