File: //opt/cpanel/ea-php54/root/usr/share/pear/RVSeagullMod/lib/RVSGL/CpHandle/NocpUser.php
<?php
require_once dirname(__FILE__) . '/InterfaceForUser.php';
require_once dirname(__FILE__) . '/NocpLibs.php';
class CpHandle_NocpUser extends CpHandle_NocpLibs implements CpHandle_InterfaceForUser
{
public function CpHandle_NocpUser()
{
parent::SGL_Manager();
}
public function init()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
}
public function getLogoutUrl()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return '/user/login/action/logout/';
}
public function definedModulePathConfig($moduleName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return SGL_MOD_DIR . '/' . $moduleName . '/conf.ini';
}
public function setCookieAndRedirect()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function detectPathPHP()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function isValidBuyAccountUrl()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function doAddCronJob()
{
return "";
}
public function getUrlBackToTryout()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function isValidClearCacheAndRVSiteFIX()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function isValidIncludeFileLang($aConfTemplateList)
{
return false;
}
public function isNotTryout()
{
//log loop SGL::logMessage(null, PEAR_LOG_DEBUG);
return true;
}
public function isVaildTemplatePrivate()
{
//SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function isValidDataHomeReplace($data)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function actionAJExternal($url)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function isRecordPublishProject()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* user run setup แล้วมีปัญหาเรียก function ในฝั่ง admin
*/
/** START For Admin **/
public function listAccts($owner=null)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$aUserList = array('pornthip', 'darawan', 'puttipong', 'duangdao', 'witoon', 'pharadol'
, 'apiruk', 'siwakorn', 'tanawat', 'parinya', 'user1', 'user2', 'user3', 'user4', 'user5'
, 'user6', 'user7', 'resellerRoute', 'reseller', 'reseller2');
return $aUserList;
}
public function getResellers()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return array('reseller' ,'reseller1','reseller2','reseller3','reseller4','reseller5','reseller6','reseller7');
}
/** END For Admin **/
/**
* no process in cpanel
* nocp is process
*/
public function isValidTemplateItemPath($templateUserId, $templateItemFolder)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return RvsLibs_Template::isValidTemplate($templateUserId, $templateItemFolder);
}
public function isLicenseValid()
{
return false;
}
public function getPathPHPsuexec()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function getProjectDbMissing($userID)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
require_once dirname(dirname(__FILE__)) . '/RestoreProjectDbMissingMgr.php';
$oRestorePj = new RestoreProjectDbMissingMgr();
$aProjectNotInDb = $oRestorePj->getProjectNotInDbByUserId($userID, REAL_PROJECT_PATH);
return $aProjectNotInDb;
}
public function isAllowExportProject()
{
return (isset($this->conf['Admin']['Owner']['AllowExportProject']))
? $this->conf['Admin']['Owner']['AllowExportProject']
: '0';
}
public function isAllowImportProject()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return (isset($this->conf['Admin']['Owner']['AllowImportProject']))
? $this->conf['Admin']['Owner']['AllowImportProject']
: '0';
}
public function getHomeDir($username=RVS_USER_NAME)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return '/home/' . $username;
}
public function getCPDATA($username=RVS_USER_NAME)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$aCpdata = array();
if (file_exists('/var/cpanel/users/' . $username)) {
/// สามารถจำลองข้อมูล user ตามระบบ cPanel ได้
$aCpLine = RvsLibs_File::file('/var/cpanel/users/' . $username);
foreach ($aCpLine as $cpLine) {
$cpLine = RvsLibs_String::preg_replace("/\r|\n/", "", $cpLine);
list($cpKey, $cpValue) = RvsLibs_String::dbeExplode("=", $cpLine);
if (isset($cpKey)) {
$aCpdata[$cpKey] = $cpValue;
}
}
} else {
/// หากไม่มีการจำลองให้ใช้ค่านี้ เป็น defauft
$aCpdata = array (
'BWLIMIT'=>'0',
'DNS'=>'rvglobalsoft.net',
'FEATURELIST'=>'rvskin',
'IP'=>'192.168.1.111',
'LANG'=>'english',
'MAXADDON'=>'0',
'MAXFTP'=>'unlimited',
'MAXLST'=>'unlimited',
'MAXPARK'=>'0',
'MAXPOP'=>'unlimited',
'MAXSQL'=>'unlimited',
'MAXSUB'=>'unlimited',
'OWNER'=>'root',
'PLAN'=>'rvdevelop',
'RS'=>'rvblue',
'STARTDATE'=>'1151982059',
'DNS2'=>'tryout.clientroot.rvglobalsoft.net'
);
}
return $aCpdata;
}
public function getUserDNS($all=0)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$aDNS = array();
if ($all == 1) {
foreach ($GLOBALS['NOCP']['CPDATA'] as $key=>$val) {
if (RvsLibs_String::preg_match('/^DNS/',$key,$match)) {
array_push($aDNS, $val);
}
}
} else {
$aDNS = (isset($GLOBALS['NOCP']['CPDATA']['DNS']))
? $GLOBALS['NOCP']['CPDATA']['DNS']
: array();
}
return $aDNS;
}
public function getRealDIRbyDomain($domain)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$subDomainPath = array();
if (isset($_SERVER['DOCUMENT_ROOT'])) {
$subDomainPath['DIR'] = $_SERVER['DOCUMENT_ROOT'];
} elseif (!RvsLibs_String::preg_match('/\/public_html/i', RVS_USER_HOME, $match)) {
$subDomainPath['DIR'] = RvsLibs_File::buildPath(array(RVS_USER_HOME, 'public_html'));
} else {
$subDomainPath['DIR'] = RVS_USER_HOME;
}
return $subDomainPath;
}
public function getDatabaseInfomation()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$res = $this->runCpOnIframe("getDatabaseInfomation", '');
/// On error return PEAR::Error
if (SGL::isError($res) === true) return $res;
$aDBConf = $this->fetchDBInfomation($res);
return $aDBConf;
}
public function doCreateDatabase($dbname)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$codeTag = <<<EOF
[data]
dbname={$dbname}
EOF;
return $this->_validateStatus(
$this->fetchStatus(
$this->runCpOnIframe('doCreateDatabase', $codeTag)
));
}
public function doCreateDatabaseUser($username, $passwd)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$codeTag = <<<EOF
[data]
username={$username}
password={$passwd}
EOF;
return $this->_validateStatus(
$this->fetchStatus(
$this->runCpOnIframe('doCreateDatabaseUser', $codeTag)
));
}
public function doAddDBUser($dbname, $username)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$codeTag = <<<EOF
[data]
dbname={$dbname}
username={$username}
EOF;
return $this->_validateStatus(
$this->fetchStatus(
$this->runCpOnIframe('doAddDBUser', $codeTag)
));
}
public function doDeleteDatabase($dbname)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$codeTag = <<<EOF
[data]
dbname={$dbname}
EOF;
return $this->_validateStatus(
$this->fetchStatus(
$this->runCpOnIframe('doDeleteDatabase', $codeTag)
));
}
public function doDeleteDatabaseUser($username)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$codeTag = <<<EOF
[data]
username={$username}
EOF;
return $this->_validateStatus(
$this->fetchStatus(
$this->runCpOnIframe('doDeleteDatabaseUser', $codeTag)
));
}
/**
* input $dbname
* check prefix and add prefix , return new dbname have prefix
*/
public function getRealFormatDBName($dbName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return (defined('DATABASE_PREFIX') && DATABASE_PREFIX === false)
? RVS_USER_NAME . $dbName
: RVS_USER_NAME . '_' . $dbName;
}
/// Usage Disk Quota Functions
public function getMaxUserQuota()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return 'unlimited';
}
public function getUserQuota()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return 100;
}
public function getDocroot()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return $_SERVER['DOCUMENT_ROOT'];
}
public function getCpUserInfo()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$oCpData = new stdClass();
$oCpData->quotaused = 100;
$oCpData->maxquota = 'unlimited';
$oCpData->docroot = $_SERVER['DOCUMENT_ROOT'];
return $oCpData;
}
/**
* This function process in tryout mode.
* @author siwakorn@rvglobalsoft.com
* @param $isPhpSuExec ( 0/1 )
* @return <true>/<false>
*/
public function changePermissionRVSPreview($isPhpSuExec)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
############# Siwakorn Modify New Function ############
public function registerButtonOnlineCounter()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* Make folder component in scripts project path.
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @param String $pathComponentName
* @return mix PEAR error or Boolean True
*/
public function makeFolderComponent($pathComponentName = null)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
if (isset($pathComponentName) === true && is_dir($pathComponentName) === false) {
$resMkdir = RvsLibs_System::mkDir(array('-p', $pathComponentName));
if (SGL::isError($resMkdir) === true) {
return $resMkdir;
}
}
return true;
}
public function isDisableBlogComponent($aTestOption = array())
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$license = isset($aTestOption['license'])
? $aTestOption['license']
: RvsLibs_License::getSitebuilderLicense();
$isOwnerAllowComponent = isset($aTestOption['isOwnerAllowBlog'])
? $aTestOption['isOwnerAllowBlog']
: RvsLibs_Component::isOwnerAllowComponent(RvsLibs_User::getOwnerId(), 'Blog');
if (strtolower($license) != 'pro') {
return 2;
} elseif ($isOwnerAllowComponent === false) {
return 3;
} else {
return 0;
}
}
public function getDatabaseEditURL()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$hostname = RvsLibs_Net::getServerAddress();
$aSetOutput = array(
'UrlManageDatabase' => (SSL_MODE)
? 'https://' . $hostname . '/phpmyadmin'
: 'http://' . $hostname . '/phpmyadmin'
);
return RvsLibs_String::translate('prepare your database','vprintf', $aSetOutput);
}
/**
* (non-PHPdoc)
* @author
* @return <string>path
*/
public function getTmpPath()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return '/tmp';
}
/**
* (non-PHPdoc)
* @author
* @param <string>$action, <array>$aTemplateOption
* @return <array>$aTemplatePathUrl
*/
public function getTemplatePathUrl($action='edit', $aTemplateOption=array())
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
if (count($aTemplateOption)
&& (RvsLibs_Template::isValidTemplate($aTemplateOption['templateUserId'], $aTemplateOption['templateItemFolder']) )) {
$aTemplatePathUrl = ($action == 'edit')
? RvsLibs_Template::getImportedTemplatePathUrlAdmin()
: RvsLibs_Template::getImportedTemplatePathUrlUser($aTemplateOption['templateUserId']);
} else {
$aTemplatePathUrl['path'] = TEMPLATE_PATH;
$aTemplatePathUrl['url'] = TEMPLATE_URL;
}
return $aTemplatePathUrl;
}
/**
* (non-PHPdoc)
* @author
* @return true/false
*/
public function skipValidTemplate()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* (non-PHPdoc)
* @author
* @param $fileName
* @return $TypeFileEncode
*/
public function getTypeFileEncode($fileName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$TypeFileEncode = '';
if (RvsLibs_System::function_exists('finfo_open') && RvsLibs_System::function_exists('finfo_file')) {
$finfo = @finfo_open(FILEINFO_MIME_ENCODING);
$TypeFileEncode = @finfo_file($finfo, $fileName);
}
return $TypeFileEncode;
}
/**
* No process in Nocp
*/
public function isMinRvsOK($versionExport)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return true;
}
public function replaceRelativeURL()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return RvsLibs_String::str_replace('/' . PROGRAM_NAME, '', RVSITEBUILDER_URL);
}
/**
* ใช้กรณี output ออกไปใช้งานต่อ
* ไม่ได้เอาไว้เช็ค CPMODE
*/
public function isCpanel()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* getHashUrl()
* @return ''
* @author pharadol@rvglobalsoft.com
* *//*
public function getHashUrl()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return '';
}
*/
/**
* Process in cp mode
* @param $cycleNow = 0, $errorNotExit = 0, $skipMsg = 0
* @author pharadol@rvglobalsoft.com
* */
public function checkFileConfigLicenseCycle($cycleNow = 0, $errorNotExit = 0, $skipMsg = 0)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
}
/**
* get controlpael url path
* @return string
* @author siwakorn induang
*/
/*
public function getControlPanelUrl()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return INDEX_URL . '/sitebuilder';
}
*/
/**
* For process in cp mode
* check counter is existing and make new counter.
* @param $defCounterName <string> counter name
* @author pharadol@rvglobalsoft.com
*/
public function getNewCounterExisting($counterName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* process in CPANEL
* @author siwakorn induang
* @param <string>$counterName
* @return true / false
*/
public function validateCounterNameExisting($counterName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* process in CPANEL
* @author siwakorn induang
* @param <string>$counterName
* @return true / false
*/
public function validateChangeCounterName($counterName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return true;
}
#File:Online_CounterMgr
public function runUpdateFileCounterData($filePreview, $cpanelTagPreview, $counterName, $newCounter)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return $newCounter;
}
#File:Online_CounterMgr
public function runUpdateCounterData($cpanelTag, $counterName, $newCounter)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return '<!-- ' . RvsLibs_String::translate('Counter no support in "nocp"') . ' -->';
}
public function cpanelHtmlTagCounter($counterTag)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function tryoutGetBuyAccountUrl()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function createNewEmailcpSecurity()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function runDetectPhpSuexec($dePhpSuexec)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$phpSuExec = RvsLibs_System::runDetectPhpSuexec();
if($phpSuExec != $dePhpSuexec) {
RvsLibs_Config::autoUpdatePhpSuExecToMainIpConf($phpSuExec, $this->conf);
}
return $phpSuExec;
}
//TODO
public function createAutoDatabase($buildDBName, $buildDBUsername, $buildDBPasswd)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$dbname = (defined('DATABASE_PREFIX') && DATABASE_PREFIX === false) ? RVS_USER_NAME . $buildDBName : $buildDBName;
$isOk = $this->doCreateDatabase($dbname);
if (SGL::isError($isOk)) {
SGL_Error::pop();
return false;
}
$username = (defined('DATABASE_PREFIX') && DATABASE_PREFIX === false) ? RVS_USER_NAME . $buildDBUsername : $buildDBUsername;
$isOk = $this->doCreateDatabaseUser($username, $buildDBPasswd);
if (SGL::isError($isOk)) {
SGL_Error::pop();
$aDatabase = $this->doDeleteDatabase($buildDBName);
$this->getDataResponse($aDatabase);
return false;
}
$isOk = $this->doAddDBUser($this->getRealFormatDBName($buildDBName), $this->getRealFormatDBName($buildDBUsername));
if (SGL::isError($isOk)) {
SGL_Error::pop();
$aData = $this->doDeleteDatabase($buildDBName);
$this->getDataResponse($aData);
$aDatabaseUser = $this->doDeleteDatabaseUser($buildDBUsername);
$this->getDataResponse($aDatabaseUser);
return false;
}
}
######################## END #####################
public function replateAtOnUserName($userName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return $userName;
}
public function isSkipAllowUserPerms()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function getPathQuotaUser($aPath)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return SGL_BASE_URL . '/nocp_panel/getDiskQuota.html';
}
public function getFileManagerUrlByUser($username)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return '';
}
/**
* Get path image diy in mode wysiwyg
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @param String $pathImg
* @return String Path image diy in mode wysiwyg
*/
public function getPathImgWysDiy($pathImg = null)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return RvsLibs_File::buildPath(array(SGL_PATH . str_replace(PROGRAM_NAME,'',strstr($pathImg, PROGRAM_NAME))));
}
/**
* Validate create project on mode.
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return Boolean False
*/
public function isValidCreateProject()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* Validate get html tag counter
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return Boolean False
*/
public function isValidHtmlTagCounter()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* Validate update rollback version
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return Boolean False
*/
public function isValidUpdateRollbackVersion()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* Validate phpsu in XML
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return Boolean False
*/
public function isValidPhpsuModeXml()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* Validate component db on mode
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return Boolean True
*/
public function isValidCompoDbMode()
{
return true;
}
/**
* Get url for edit database
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return String
*/
public function getUrlDb()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return '/phpMyAdmin';
}
/**
* Validate component db on flexy
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return Boolean False
*/
public function isValidCompoDbFlexy()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* Is mode tryout
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return Boolean False
*/
public function isTryout()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
/**
* Is mode nocp
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return Boolean True
*/
public function isNocp()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return true;
}
/**
* Make update tryout
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @return String null
*/
public function makeUpdateTryout()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return null;
}
/**
* Make update tryout login config
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @param Boolean $isAutoApproval
* @param String null
*/
public function makeUpdateTryoutLoginConf($isAutoApproval = false, $subdomainPath = null)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return null;
}
/**
* Make remove tryout
*
* @author Puttipong <puttipong@rvglobalsoft.com>
* @param String null
*/
public function makeRemoveTryout($option = array())
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return null;
}
####################################
########### PRIVATE FUNCTION ###########
####################################
private function _validateStatus($status)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
if (strtolower($status) == 'ok') {
return true;
} else {
return SGL::raiseError($status);
}
}
public function replacePreviewOnlineCounter($cpanelCounterTag)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return $cpanelCounterTag;
}
public function isDirectAdmin()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return false;
}
public function getRvBinPath()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return SGL_PATH . '/rvbin/rvswrapper';
}
public function isAdmin($username = RVS_USER_NAME)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return ($username == 'root')? true : false;
}
public function ownerIsAdmin($ownername = RVS_OWNER_USER_NAME)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return ($ownername == 'root')? true : false;
}
public function makeUploadFolder($userUploadPath, $pathLinkUpload, $userDataPath)
{
SGL::logMessage('real path:' . $userUploadPath, PEAR_LOG_DEBUG);
SGL::logMessage('link path:' . $pathLinkUpload, PEAR_LOG_DEBUG);
if (!is_link($pathLinkUpload) && is_dir($userDataPath) ) {
return symlink($userUploadPath, $pathLinkUpload);
}
return false;
}
public function createUserSymlinkUserFolder($pathUserUpload, $pathUploadLink)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
RvsLibs_User::createUserSymlinkUserFolder($pathUserUpload, $pathUploadLink);
}
public function moveUploadedFile($tempFile, $destination)
{
$res = RvsLibs_File::moveUploadedFile($tempFile, $destination);
$msq = ($res) ? 'TRUE' : 'FALSE';
SGL::logMessage(" moveUploadedFile= " . $msq, PEAR_LOG_DEBUG);
return $res;
}
public function isUploadedFile($tempFile)
{
$res = RvsLibs_File::isUploadedFile($tempFile);
$msq = ($res) ? 'TRUE' : 'FALSE';
SGL::logMessage(" isUploadedFile= " . $msq, PEAR_LOG_DEBUG);
return $res;
}
public function makeLink($source, $des)
{
SGL::logMessage('tempFile :: ' . $source, PEAR_LOG_DEBUG);
SGL::logMessage('destination::' . $des, PEAR_LOG_DEBUG);
RvsLibs_System::ln(array('-s', $source, $des));
}
function secureCommandMakeLinkProjectId($projectId)
{
$resSecure = RvsLibs_System::secureCommand('makeprojectsymlink', array('project-id' => $projectId));
if (SGL::isError($resSecure) === true) {
return SGL::raiseError(
RvsLibs_String::translate(
'Cannot create project folder symlink, becase %MSG.'
, 'vprintf'
, array('MSG' => $resSecure->getMessage())
)
);
}
}
public function msgWaringOpenBaseDir()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return RvsLibs_String::translate('Reseller contact provider to update virtualhost');
}
public function buildProjectUrlForDa()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
}
public function createLinkFolder($fullPath, $fileZip)
{
SGL::logMessage("createLinkFolder >>>>>>>>>>>>> " . $fullPath . $fileZip, PEAR_LOG_DEBUG);
$fileNameZip = preg_replace('/(\.tar\.gz$|\.gz$|\.tar$|\.zip$)/i', '', $fileZip);
$FName = urlencode($fileNameZip);
if (file_exists($fullPath . $fileNameZip)) {
self::makeLink($fullPath . $fileNameZip, $fullPath . $FName);
}
}
public function createLinkFileAndFolder($fullPath)
{
//file image
$allFile = RvsLibs_System::ls($fullPath);
foreach ($allFile['files'] as $k => $v) {
$image = end(RvsLibs_String::dbeExplode('/', $v));
$fileName = urlencode($image);
if (preg_match('/\.gif$|\.png$|\.jpg$|\.jpeg$/i',$fileName, $match)) {
if (is_link($fullPath . $fileName) === false) {
self::makeLink($fullPath . $image, $fullPath . $fileName);
}
}
}
//folder
foreach ($allFile['dirs'] as $key => $val ) {
//เช็คว่าถ้าอัพโหลดไฟล์รูปจะไม่ให้เข้ามาทำงานในส่วนนี้
if (realpath($fullPath) != $val) {
$folder= end(RvsLibs_String::dbeExplode('/', $val));
$dirName = urlencode($folder);
if (RvsLibs_File::_isEncode($dirName) === true) {
if (is_link($fullPath . $dirName) === false) {
//RvsLibs_System::ln(array('-s', $fullPath . $folder, $fullPath . $dirName));
self::makeLink($fullPath . $folder, $fullPath . $dirName);
$aFile = RvsLibs_System::ls(array('-a', '-R', '-C', $fullPath . $folder));
foreach($aFile['files'] as $k => $v) {
$file= end(RvsLibs_String::dbeExplode('/', $v));
$fName = urlencode($file);
$encodeFile = str_replace($file, $fName, $v);
self::makeLink($v, $encodeFile);
}
}
}
}
}
}
public function makeFolderLink($fullPath, $folderName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
RvsLibs_File::makeFolderLink($fullPath, $folderName);
}
public function makeImageLink($fullPath, $filename)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
RvsLibs_File::makeImageLink($fullPath, $filename);
}
public function isRealConfigUpLoadMaxFileSize()
{
return ini_get('upload_max_filesize');
}
/**
* Make userdata path
* @return unknown_type
*/
function makeuserdatapath($userdataPath)
{
return RvsLibs_System::secureCommand('makeuserdatapath');
}
function replaceUrlToNobase($data)
{
return RvsLibs_Project::replaceDaToNobase($data);
}
function makeFileQuota($dnsPublish)
{
return true;
}
public function getPublishMsgHttps($domain = '')
{
$domain = ($domain != '') ? $domain : 'domain';
return RvsLibs_String::translate('Please make sure your %DOMAIN can be called as https://.'
, 'vprintf'
, array('DOMAIN' => $domain)
);
}
public function detectCpanelProxyMsg()
{
return false;
}
/**
*
* Make Restore Online Counter
*
* @author Puttipong <puttipong at rvglobalsoft.com>
*
* @param $projectId <STRING>
* @return TRUE
*/
public function makeRestoreOnlineCounter($projectId=null) {
return true;
}
public function getCPVersion()
{
$version = 'Unknown';
if (function_exists('php_uname')) {
$version = php_uname('s').' - '.php_uname('r');
} elseif (function_exists('posix_uname')) {
$aVersion = posix_uname();
$version = $aVersion['sysname'].' - '.$aVersion['release'];
}
return $version;
}
public function getMySQLVersion()
{
ob_start();
phpinfo(INFO_MODULES);
$info = ob_get_contents();
ob_end_clean();
$info = stristr($info, 'Client API version');
if (preg_match('/[1-9].[0-9].[1-9][0-9]/', $info, $match)) {
return $match[0];
} else {
return 'Unknown';
}
}
public function getPHPVersion()
{
return phpversion();
}
public function getPerlVersion()
{
RvsLibs_System::exec("perl -v | awk '/This/ {print $4}' | sed -e 's/v//'", $aVersion);
return trim(join('', $aVersion));
}
/**
* Nocp explode _ and return all character
* User12345678_xxxx
*
* return User12345678
*
* (non-PHPdoc)
* @see CpHandle_InterfaceForUser::getDBMinChaName()
*/
public function getDBMinChaName($name = '')
{
SGL::logMessage("debug before: " . $name, PEAR_LOG_DEBUG);
return $name;
}
}
?>