File: //opt/cpanel/ea-php54/root/usr/share/pear/RVSeagullMod/lib/RVSGL/rvsLibs/Publish.php
<?php
/* Reminder: always indent with 4 spaces (no tabs). */
// +---------------------------------------------------------------------------+
// WebSite: http://www.rvglobalsoft.com
// Unauthorized copying is strictly forbidden and may result in severe legal action.
// Copyright (c) 2006 RV Global Soft Co.,Ltd. All rights reserved.
//
// =====YOU MUST KEEP THIS COPYRIGHTS NOTICE INTACT AND CAN NOT BE REMOVE =======
// Copyright (c) 2006 RV Global Soft Co.,Ltd. All rights reserved.
// This Agreement is a legal contract, which specifies the terms of the license
// and warranty limitation between you and RV Global Soft Co.,Ltd. and RV Site Builder.
// You should carefully read the following terms and conditions before
// installing or using this software. Unless you have a different license
// agreement obtained from RV Global Soft Co.,Ltd., installation or use of this software
// indicates your acceptance of the license and warranty limitation terms
// contained in this Agreement. If you do not agree to the terms of this
// Agreement, promptly delete and destroy all copies of the Software.
//
// ===== Grant of License =======
// The Software may only be installed and used on a single host machine.
//
// ===== Disclaimer of Warranty =======
// THIS SOFTWARE AND ACCOMPANYING DOCUMENTATION ARE PROVIDED "AS IS" AND
// WITHOUT WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER
// WARRANTIES WHETHER EXPRESSED OR IMPLIED. BECAUSE OF THE VARIOUS HARDWARE
// AND SOFTWARE ENVIRONMENTS INTO WHICH RV SITE BUILDER MAY BE USED, NO WARRANTY OF
// FITNESS FOR A PARTICULAR PURPOSE IS OFFERED. THE USER MUST ASSUME THE
// ENTIRE RISK OF USING THIS PROGRAM. ANY LIABILITY OF RV GLOBAL SOFT CO.,LTD. WILL BE
// LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE.
// IN NO CASE SHALL RV GLOBAL SOFT CO.,LTD. BE LIABLE FOR ANY INCIDENTAL, SPECIAL OR
// CONSEQUENTIAL DAMAGES OR LOSS, INCLUDING, WITHOUT LIMITATION, LOST PROFITS
// OR THE INABILITY TO USE EQUIPMENT OR ACCESS DATA, WHETHER SUCH DAMAGES ARE
// BASED UPON A BREACH OF EXPRESS OR IMPLIED WARRANTIES, BREACH OF CONTRACT,
// NEGLIGENCE, STRICT TORT, OR ANY OTHER LEGAL THEORY. THIS IS TRUE EVEN IF
// RV GLOBAL SOFT CO.,LTD. IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO CASE WILL
// RV GLOBAL SOFT CO.,LTD.'S LIABILITY EXCEED THE AMOUNT OF THE LICENSE FEE ACTUALLY PAID
// BY LICENSEE TO RV GLOBAL SOFT CO.,LTD.
// +---------------------------------------------------------------------------+
// $Id$
// +---------------------------------------------------------------------------+
/**
* RvSiteBuilder publish libary
*
* @package RvsLibs
* @author Pairote Manunphol <pairote@rvglobalsoft.com>
* @version $Revision$
* @since PHP 5.1
*/
if (class_exists('Publish_TaskRunner') === false) {
class Publish_TaskRunner extends SGL_TaskRunner
{
function main($freeze=false)
{
$ret = array();
$aTasks = array();
if ($freeze === true) {
$aTasks[] = array_shift($this->aTasks);
} else {
$aTasks = $this->aTasks;
}
foreach ($aTasks as $k => $oTask) {
$return = $oTask->run($this->data);
// log to system tmp dir if we're installing
$err = is_a($return, 'PEAR_Error')
? $return
: 'ok';
$ret[get_class($oTask)] = $return;
}
//var_dump($ret);
return implode('', $ret);
}
}
}
if (class_exists('RvsLibs_Publish_Clean') === false) {
class RvsLibs_Publish_Clean
{
/**
* จะลบก็ต่อเมื่อ ตอน publish website ระบุชื่อ folder name เท่านั้น
* ถ้าไม่ระบุ folder name path by doamain จะเท่ากับ /home/user/public_html
* ซึ่งจะไม่ลบ file หรือ folder ที่อยู่ภายใน /home/user/public_html นี้
*
* @param unknown_type $input
*/
function deletePublishFolder($projectId, $rvsUserId)
{
///Debug SGL::logMessage(null, PEAR_LOG_DEBUG);
if (isset($aProjectPublishData) && is_array($aProjectPublishData)) {
$aProjectPublishData = RvsLibs_Publish::getProjectPublishData($projectId, $rvsUserId);
// Loop remove folder publish
foreach ($aProjectPublishData as $k=>$v) {
$aPathByDomain = RvsLibs_Publish::getPathByDomain($v->rvs_publish_domain);
$publishPath = RvsLibs_File::buildPath(array($aPathByDomain['DIR'], $v->rvs_publish_path));
if (is_dir($publishPath) && $v->rvs_publish_path) {
RvsLibs_System::rm(array('-rf', $publishPath));
}
}
}
}
}
}
if (class_exists('RvsLibs_Publish_Set') === false ) {
class RvsLibs_Publish_Set extends RvsLibs_Publish_Clean
{
function PublishSetUserId($userId = null)
{
if (is_null($userId) === true) {
} else {
}
}
/**
* update publish data to table rvs_publish
*
* @param object $input
* @return array
*/
function updateRvsPublishData($project_id, $rvs_publish_domain, $UserFolder, $publishPath, $rvs_usr_id=null, $publishProtocal)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$rvs_usr_id = (is_null($rvs_usr_id) === true)
? RvsLibs_User::getUserId()
: $rvs_usr_id;
// update Publish Data By ProjectId And PublishDomain And UserFolder And UsrId in rvs_publish and rvs_project table:Pornthip Phothong
$aPublish = DaoFactory::Publish()->updatePublishDataByProjectIdAndPublishDomainAndUserFolderAndUsrId($project_id, $rvs_publish_domain, $UserFolder, $publishPath, $rvs_usr_id, $publishProtocal);
return (isset($aPublish)) ? true : false;
}
/**
* Insert publish data to table rvs_publish
*
* @param object $input
* @return array
*/
function addRvsPublishData($project_id, $rvs_publish_domain, $UserFolder, $publishProtocal)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
// insert Publish Data in rvs_publish table : Pornthip Phothong
$aPublish = DaoFactory::Publish()->insertPublishData($project_id, $rvs_publish_domain, $UserFolder, $publishProtocal);
return (isset($aPublish) && $aPublish) ? true : false;
}
}
}
if (class_exists('RvsLibs_Publish_Get') === false) {
class RvsLibs_Publish_Get extends RvsLibs_Publish_Set
{
/**
*
* @param $projectId
* @return Array
*
(
[68d364dc7edea48e8fa464cf8537e38c] => stdClass Object
(
[project_id] => 68d364dc7edea48e8fa464cf8537e38c
[rvs_publish_protocal] => http
[rvs_publish_domain] => 192.168.1.114
[rvs_publish_path] => /testforums
)
)
or PEAR error in failure.
*/
function getProjectPublishData($projectId=null)
{
///Debug SGL::logMessage(null, PEAR_LOG_DEBUG);
$res = DaoFactory::Project()->findPublishDataByProjectId($projectId);
if (SGL::isError($res) === true) {
return SGL::raiseError(
$res->getMessage()
);
}
return $res;
}
function getPublishPath($projectId)
{
if (empty($projectId)) {
return '';
}
$publishPath = '';
$res = RvsLibs_Publish::getProjectPublishData($projectId);
if (SGL::isError($res) === true) {
return SGL::raiseError(
$res->getMessage()
);
}
//GET DOMAIN PATH ON DB
if (isset($res['$projectId']->rvs_domain_path) === true && $res['$projectId']->rvs_domain_path != '') {
return $res['$projectId']->rvs_domain_path;
}
//GET DOMAIN PATH ON CPANEL TAG
if(isset($res[$projectId]->rvs_publish_domain) && $res[$projectId]->rvs_publish_domain != '') {
$aDNS = RvsLibs_Publish::getPathByDomain($res[$projectId]->rvs_publish_domain);
if (SGL::isError($aDNS) === true) {
return SGL::raiseError(
$aDNS->getMessage()
);
}
$publishPath = RvsLibs_File::buildPath(array($aDNS['DIR'], $res[$projectId]->rvs_publish_path));
}
return $publishPath;
}
function getPhpEchoXmlLine($matches)
{
var_dump($matches);
}
/**
* Get DIR by domain name
* @param $domain
* @return DIR of Domain
*/
function getPathByDomain($domain)
{
// optimize :nipaporn and modify cpHandle
$oCp = CpHandle::factory();
if(SGL::isError($oCp) === true) {
return $oCp;
}
return $oCp->getRealDIRbyDomain($domain);
}
function getPageFilename($pagename)
{
$pagename = RvsLibs_String::trim($pagename);
$pagename = preg_replace('/\/|\?|\ |\./' , '-', $pagename);
$pagename = preg_replace('/&/' , '-and-', $pagename);
$pagename = preg_replace('/#/' , '_', $pagename);
$pagename = RvsLibs_Url::url_encode($pagename);
/*
if (strlen($pagename) > 250) {
// %D0 %A0 %D0 %88 %D0 - -and- %A1 %E2 %80 %D0 %82 %D0 %A1 %D0
$pagename = substr($pagename, 0, 247);
// จาก ท้าย มาจนถึง % มีกี่ตัว ถ้า มี 0, 1 ตัว ให้ตัด อักขระ เพิ่มอีก จนถึงตัว % ที่เจอ
// %D0 %A0 %D0 %88 %D0 - -and- %A1 %E2 %80 %
// %D0 %A0 %D0 %88 %D0 - -and- %A1 %E2 %80 %A
$pagename = preg_replace('/%[^%]*$/', '', $pagename);
// ใส่ running number [0-9a-z]
$oPublishReg = Publish_Registry::singleton();
$runningNo = $oPublishReg->get('runningNo') + 1;
$pagename = $pagename . '_' . $runningNo;
$oPublishReg->set('runningNo', $runningNo);
}
*/
return $pagename;
}
/**
* Get url block login
*
* @param String $projectId
* @return String - Url block login
*/
function getUrlBlogLogin($projectId)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$res = RvsLibs_Publish::getProjectPublishData($projectId);
$protocal = (defined(SSL_MODE) == true && SSL_MODE == 1) ? 'https://' : 'http://';
return (count($res) > 0)
? $protocal . $res[$projectId]->rvs_publish_domain . $res[$projectId]->rvs_publish_path . '/login/index.php'
: $protocal . 'yourdomain.com' . '/login/index.php';
}
/**
* Get Layout by page id
*
* @param string $pageId
* @return array
*/
function getLayoutTemplate($pageId)
{
$aRes = DaoFactory::OutSuggestion()->findNewLayoutByTemplateId($pageId, 'getarray');
$aReturn = array();
foreach ($aRes as $k => $v) {
$aReturn[] = $v['layout_template_id'];
}
return $aReturn;
}
function getSideDataBlog($sideConfig, $projectId, $step3 = false)
{
if (!$sideConfig || !$projectId) {
return '';
}
require_once SGL_MOD_DIR . '/sitebuilder/classes/SideMgr.php';
$oSide = new SideMgr();
$sideValue = $oSide->getSideVal($sideConfig, $projectId);
//fixed PHPMD scan 07/07/2554
//$bgBlogColor = ($sideValue) ? '#f3e5a8' : '#CCCCCC';
if ($sideConfig == 'SIDE1' || $sideConfig == 'SIDE2') {
$width = '160px';
} else {
$width = '96%';
}
if (RvsLibs_String::strtolower($sideConfig) == 'side1' || RvsLibs_String::strtolower($sideConfig) == 'side2') {
// side1 , side2
if ($sideValue != '') {
$classPreviewNormal = 'EditPreviewCurrent';
$classPreviewHover = 'EditSideHover';
} else {
$classPreviewNormal = 'EditSideNormal';
$classPreviewHover = 'EditSideHover';
}
} else {
// top , footer
if ($sideValue != '') {
$classPreviewNormal = 'EditPreviewCurrent';
$classPreviewHover = 'EditSideHover';
} else {
$classPreviewNormal = 'EditSideNormal';
$classPreviewHover = 'EditSideHover';
}
}
$sideConfigTran = RvsLibs_String::translate($sideConfig);
$side = RvsLibs_String::translate('EMBED CODE section', 'vprintf', array('sectionname' => $sideConfigTran));
$sideUrl = SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/side/side_config/' . $sideConfig;
if ($step3 == true) {
$side1Code = <<<EOF
<!-- START BLOCK SITE $sideConfig -->
<div class="$classPreviewNormal" id="side_$sideConfig" idside="side_$sideConfig" url="$sideUrl"
onmouseover="edfaultBorderIf(this.id, '$classPreviewHover');parent.jQuery.sitebuilder.editside.SwitchClassOver(parent.jQuery(this));"
onmouseout="edfaultBorderIf(this.id, '$classPreviewNormal');parent.jQuery.sitebuilder.editside.SwitchClassOut(parent.jQuery(this));"
onclick="parent.jQuery.sitebuilder.editside.OpenSide(parent.jQuery(this));"
style="width: $width; cursor:pointer;"
>
$side
<div align="right">' . RvsLibs_String::translate('Edit') . '</div>
</div>
<!-- START BLOCK SITE -->
EOF;
} else {
$side1Code = '<link href="' . SGL_BASE_URL . '/themes/default/sitebuilder/css/style.php" rel="stylesheet" type="text/css">';
$side1Code .= '<div class="' . $classPreviewNormal . '" id="side_' . RvsLibs_String::strtolower($sideConfig) . '" style="width:' . $width . ';">' . $side . '</div>';
}
return $side1Code; //EMBED CODE TOP Section edit
}
function getAllSideId()
{
return array('TOP', 'BOTTOM', 'SIDE1', 'SIDE2');
}
function getEMBEDSideValue($projectId, $sideConfig)
{
///Debug SGL::logMessage(null, PEAR_LOG_DEBUG);
//fixed PHPMD scan 07/07/2554
return DaoFactory::Side()->findSideIdByProjectId($projectId, RvsLibs_String::strtolower($sideConfig), 'getone', array('side_value'));
}
/**
* get componect block code
* เรียกไปยัง c{Component}UserMgr->publishExtraCode เพื่อขอข้อมูลของ code ที่จะให้เอาไปแสดงใน sode block ต่างๆ
*
* @param <string> $componentName
* @return <array> ; array('side_{componentName}_top' => 'Top');
*/
function getComponentPublishExtraCode($componentName, $loadAllBlockStyle=false)
{
/*
@TODO code ส่วนนี้ เป็น code ที่จะให้งานจริง แต่ comment เอาไว้เนื่องจากจะต้องไปปรับใน function publishExtraCode ใน c{Component}UserMgr ต่างๆกอน ถึงจะเห็นผล
$oMainComponent = MainComponent::singleton();
$oComponent = $oMainComponent->callComponentUser($componentName);
$aComponentExtraCodeConf = $oComponent->publishExtraCode();
*/
$oMainComponent = MainComponent::singleton();
$oComponent = $oMainComponent->callComponentUser($componentName);
if (empty($loadAllBlockStyle)) {
$aComponentExtraCodeConf = $oComponent->publishExtraCode();
} else {
$aComponentExtraCodeConf = $oComponent->publishExtraCode($loadAllBlockStyle);
}
/// START Warning: นี่เป็นการจำลอง data ที่จะ return ออกไปเฉยๆ ไม่ใช่ data จริงๆ
$cName = RvsLibs_String::strtolower($componentName);
$aComponentExtraCode = array(
"{$cName}_side1" => array(
'codeForStaticpage' => "",
'codeForDynamicpage' => "",
'loadInSite' => 'side1',
'isUseinallpage' => true,
'isDisplayOnPublishOnly' => false,
),
"{$cName}_side2" => array(
'codeForStaticpage' => "",
'codeForDynamicpage' => "",
'loadInSite' => 'side2',
'isUseinallpage' => true,
'isDisplayOnPublishOnly' => false,
),
"{$cName}_top" => array(
'codeForStaticpage' => "",
'codeForDynamicpage' => "",
'loadInSite' => 'top',
'isUseinallpage' => true,
'isDisplayOnPublishOnly' => false,
),
"{$cName}_bottom" => array(
'codeForStaticpage' => "",
'codeForDynamicpage' => "",
'loadInSite' => 'bottom',
'isUseinallpage' => true,
'isDisplayOnPublishOnly' => false,
),
);
// optimize :nipaporn
return array_merge($aComponentExtraCode, $aComponentExtraCodeConf);
}
}
}
if (class_exists('RvsLibs_Publish_Validate') === false ) {
class RvsLibs_Publish_Validate extends RvsLibs_Publish_Get
{
function isUsageOnlineFom($pageData)
{
if (preg_match_all('/"formId[0-9a-zA-Z]+"/i', $pageData, $aMatch)) {
return true;
}
if(preg_match_all('/DragAndDropForm_/i', $pageData, $aMatch)) {
return true;
}
return (preg_match_all("/id\s*=\s*\"onlineForm/i", $pageData, $aMatch)) ? true : false;
}
function isPagenameExists($pagename)
{
$oPublishReg = Publish_Registry::singleton();
$aPagenameList = $oPublishReg->get('pagenameList', 'count', $pagename);
// optimize :nipaporn
return (is_null($aPagenameList) === true)
? false
: true;
}
function isComponent($componentId)
{
return (is_null($componentId) === true || $componentId == '' || $componentId == '0')
? false
: true;
// TODO :: เช็คว่ามี component นี้มีอยู่จริงหรือไม่
}
}
}
if (class_exists('RvsLibs_Publish') === false) {
class RvsLibs_Publish extends RvsLibs_Publish_Validate
{
function taskLists()
{
return array(
/*
* Site wide task list
*/
// Register deault values
'PublishTask_RegisterTask'
// List all file and forder to copy
, 'PublishTask_PreBuildPage'
// taskList()
// 1. PublishTask_ListFileData
// 2. PublishTask_MakeFolders
// 3. PublishTask_ChangeTemplateVariables // เพิ่มตัวแปร
// 4. PublishTask_ComplierStaticDataForDynamic
//-generate navigator
//-generate pathWay TODO
//-generate icon config by page TODO
// Register default values to GAIP
, 'PublishTask_ComplierStaticData'
/*
* Page Task lists
*/
// Register values in page data to GAIP
// replace IMAGE_URL, PUBLISH_URL
, 'PublishTask_ComplierDynamicData'
// Build Pages replace ตัวแปรต่างๆ
, 'PublishTask_BuildPages'
/*
* Site wide task list - after build page
*/
, 'PublishTask_PostBuildPage'
// taskList()
// 1. PublishTask_ProjectBackUpDatabase
// 2. PublishTask_RemoveBeforePublish
// 3. PublishTask_MakeFiles
// 4. PublishTask_UpdateNavigaterCss
// 5. PublishTask_UpdateFlashIndex
// 6. PublishTask_ChangePermission
// 7. PublishTask_FixedHtaccessFile
// 8. PublishTask_ComponentPublishConfig
// 9. PublishTask_MakeProjectConfig
, 'PublishTask_SendTemplateStat'
);
}
/**
* Enter description here...
*
* @param <string> $loadPublishTask
* @param <array> $aProjectPageId
* @param <array> $aCustomTask; Custom taks
* @return unknown
*/
function Init($loadPublishTask, $aData=null, $aCustomTask=null, $freeze=true)
{
SGL::logMessage('run task::' . $loadPublishTask, PEAR_LOG_DEBUG);
$generalAPIFile = RvsLibs_File::buildPath(array(SGL_MOD_DIR, 'sitebuilder', 'classes', 'GeneralAPI.php'));
require_once $generalAPIFile;
/// Load Task File
RvsLibs_Publish::_loadDefaultClass();
//fixed PHPMD scan 07/07/2544
//$aTaskFiles = array();
$loadPublishTask = "{$loadPublishTask}";
$TaskFiles = "Task{$loadPublishTask}";
SGL::logMessage($TaskFiles, PEAR_LOG_DEBUG);
$res = RvsLibs_Publish::_loadTaskFile($TaskFiles);
if (SGL::isError($res)) {
SGL::logMessage($res, PEAR_LOG_DEBUG);
return $res;
}
SGL::logMessage(null, PEAR_LOG_DEBUG);
$oPublishReg = Publish_Registry::singleton(); /// Warning: in freeze mode usage it
$init = new Publish_TaskRunner();
if (is_null($aData) === false) {
$init->addData($aData);
}
$aTask = (is_null($aCustomTask) === true) ? RvsLibs_Publish::taskLists() : $aCustomTask;
/// Check Class in task list
foreach (RvsLibs_Publish::taskLists() as $v) {
if (class_exists($v) === false) {
return SGL::raiseError(
'Find not found class ' . $v
);
}
}
if (is_scalar($aCustomTask)) {
$init->addTask(new $aCustomTask);
} else {
foreach ($aTask as $task) {
$init->addTask(new $task);
}
}
$res = $init->main($freeze);
return $res;
}
function _loadDefaultClass()
{
$aTaskFiles = array('Registry', 'PublishTaskInf', 'CommonTask');
foreach ($aTaskFiles as $taskFile) {
$res = RvsLibs_Publish::_loadTaskFile($taskFile);
if (SGL::isError($res)) {
return $res;
}
}
$generalAPIFile = RvsLibs_File::buildPath(array(SGL_MOD_DIR, 'sitebuilder', 'classes', 'GeneralAPI.php'));
require_once $generalAPIFile;
}
function freeze()
{
RvsLibs_Publish::_loadDefaultClass();
//SGL::logMessage('***************************befor Freeze_Registry************', PEAR_LOG_DEBUG);
return Publish_Freeze_Registry::freezer();
}
function unfreeze()
{
RvsLibs_Publish::_loadDefaultClass();
Publish_Freeze_Registry::unfreezer();
}
function cleanFreezer()
{
Publish_Freeze_Registry::cleanFreezer();
}
function getRegistry()
{
RvsLibs_Publish::_loadDefaultClass();
$oPublishReg = Publish_Registry::singleton();
return $oPublishReg;
}
/**
* Include publish file
*
* @param <string> $task
* @access private
* @return bool; Returns TRUE on success or PEAR::ERROR on failure.
*/
function _loadTaskFile($taskFile)
{
/// Lookup publish task file
$loadPublishTaskFile = RvsLibs_File::buildPath(array(SGL_MOD_DIR, 'sitebuilder', 'classes', 'Publish', $taskFile . '.php'));
if (file_exists($loadPublishTaskFile) === false) {
/// return Pear error if cannot found publish task file
return SGL::raiseError(
'Find not found Publish Task ' . $loadPublishTask
);
}
require_once $loadPublishTaskFile;
return true;
}
}
}
if (class_exists('Publish_Freeze_Registry') === false ) {
class Publish_Freeze_Registry
{
public function freezer()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
//fixed memory limit
$oldMemory = @ini_get('memory_limit');
$oldTimeOut = (int)@ini_get('max_execution_time');
RvsLibs_Project::setMaximumMemory($oldMemory, $oldTimeOut);
$aFreezeData = array();
$aFreezeData['Publish_Registry'] = Publish_Registry::singleton();
$aFreezeData['GeneralAPI'] = GeneralAPI::singleton();
$oFreezeData = serialize($aFreezeData);
unset($aFreezeData);
if (SGL::isError($oFreezeData) === true) {
return $oFreezeData;
}
$freezeFile = RvsLibs_File::buildPath(array(SGL_TMP_DIR, Publish_Freeze_Registry::getFreezeId()));
if (file_exists($freezeFile) === true) {
RvsLibs_System::unlink($freezeFile);
}
$fd = RvsLibs_File::fopen($freezeFile, 'w+');
if (SGL::isError($fd) === true) {
return $fd;
}
SGL::logMessage("check memory SB= 0 write path:" . $freezeFile, PEAR_LOG_DEBUG);
$usage = memory_get_usage();
//$peak = memory_get_peak_usage();
$memoryLimit = @ini_get('memory_limit');
SGL::logMessage("check memory SB= usage byte:" . $usage, PEAR_LOG_DEBUG);
//SGL::logMessage("check memory SB= peak byte:" . $peak, PEAR_LOG_DEBUG);
SGL::logMessage("check memory SB= limit byte:" . $memoryLimit - $usage, PEAR_LOG_DEBUG);
if (($memoryLimit - $usage) < ($memoryLimit*0.1)) {
@ini_set('memory_limit', '-1'); //set no memory_limit
@set_time_limit(0); //set no memory_limit
SGL::logMessage('=== set_time_limit(0); > no time limit ==' , PEAR_LOG_DEBUG);
SGL::logMessage("check memory SB low memory", PEAR_LOG_DEBUG);
}
$gzFreezeData = gzcompress($oFreezeData, 9);
//SGL::logMessage("check memory SB= 2 byte:" . strlen($oFreezeData), PEAR_LOG_DEBUG);
RvsLibs_File::fwrite($fd, ($gzFreezeData === false) ? $oFreezeData : $gzFreezeData);
RvsLibs_File::fclose($fd);
unset($oFreezeData);
unset($gzFreezeData);
//@ini_restore('memory_limit');
SGL::logMessage("check memory SB= 2 byte:" . memory_get_usage(), PEAR_LOG_DEBUG);
}
private function getFreezeId()
{
return 'freeze_' . md5('Publish_Freeze_Registry_' . SGL_Session::get('key'));
}
public function cleanFreezer()
{
$freezeFile = RvsLibs_File::buildPath(array(SGL_TMP_DIR, Publish_Freeze_Registry::getFreezeId()));
if (file_exists($freezeFile) === true) {
RvsLibs_System::unlink($freezeFile);
}
}
public function unfreezer()
{
$freezeFile = RvsLibs_File::buildPath(array(SGL_TMP_DIR, Publish_Freeze_Registry::getFreezeId()));
if (file_exists($freezeFile) === true) {
$afrezeData = RvsLibs_File::file($freezeFile);
$gzFrezeData = join('', $afrezeData);
$usage = @memory_get_usage();
$memoryLimit = @ini_get('memory_limit');
if (($memoryLimit - $usage) < ($memoryLimit*0.1)) {
@ini_set('memory_limit', '-1'); //set no memory_limit
@set_time_limit(0); //set no memory_limit
SGL::logMessage('=== set_time_limit(0); > no time limit ==' , PEAR_LOG_DEBUG);
SGL::logMessage("check memory SB low memory", PEAR_LOG_DEBUG);
}
SGL::logMessage("Start gzuncompress:", PEAR_LOG_DEBUG);
$frezeData = gzuncompress($gzFrezeData);
SGL::logMessage("End gzuncompress:", PEAR_LOG_DEBUG);
$frezeData = ($frezeData === false) ? $gzFrezeData : $frezeData;
//fixed PHPMD scan 07/07/2544
RvsLibs_System::unlink($freezeFile);
static $instance;
$instance = @unserialize($frezeData);
unset($gzFrezeData);
/// TODO : เพื่อความถูกต้องควรตรวจสอบ $instance ว่าเป็น Object ก่อน ยังไม่ได้ทำ
$oTest["Publish_Registry"] = Publish_Registry::singleton(false, $instance["Publish_Registry"]);
$oTest["GeneralAPI"] = GeneralAPI::singleton(false, $instance["GeneralAPI"]);
foreach ($oTest as $k => $v) {
if (get_class($instance[$k]) != get_class($v)) {
/// TODO : ???????????
return false;
}
}
} else {
//fixed PHPMD scan 07/07/2554
Publish_Registry::singleton();
GeneralAPI::singleton();
}
}
}
}
/**
* Tasl Register Publish
* @author parinya
*
*/
if (class_exists('PublishTask_RegisterTask') === false) {
class PublishTask_RegisterTask extends SGL_Task
{
public function run($data = null)
{
Publish_Freeze_Registry::cleanFreezer();
/// call class Publish_TaskRegister{PublishTask}
$oPublishTask = Publish_TaskRegister::singleton();
if ($oPublishTask === false) {
/// return Pear error if cannot call function singleton of publish task
return SGL::raiseError(
'Cannot call function singleton of Publish_TaskRegister'
);
}
$oPublishTask->oParent = $oPublishTask;
$aSetupConstantsTaskList = $oPublishTask->taskList();
foreach ($aSetupConstantsTaskList as $task) {
$res = $oPublishTask->{$task}();
if (SGL::isError($res) === true) {
return SGL::raiseError(
'Publish_TaskRegister->' . $task . ' has problem.' . $res->getMessage()
);
}
}
return true;
}
}
}
/**
* Task Register User DNS
* @author parinya
*
*/
if (class_exists('PublishTask_RegisterUserDNS') === false) {
class PublishTask_RegisterUserDNS extends SGL_Task
{
public function run($data = null)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
Publish_Freeze_Registry::cleanFreezer();
$oRegisterUserDNSTask = Publish_TaskRegisterUserDNS::singleton();
$oRegisterUserDNSReg = Publish_Registry::singleton();
$aDomain = RvsLibs_User::getUserDNS('1');
$sqlWaitTimeout = $oRegisterUserDNSReg->get('sql_wait_timeout');
foreach ($aDomain as $kDomain => $vDomain) {
if (is_null($oRegisterUserDNSReg->get('userDns', $vDomain)) === true) {
$ip = $oRegisterUserDNSTask->gethostbyname($vDomain);
$oRegisterUserDNSReg->set('userDns', array('domain' => $vDomain, 'ip' => $ip));
}
$timeOut = RvsLibs_String::getExecuteTime($sqlWaitTimeout);
if ($timeOut < 15) {
SGL::logMessage("timeout >>>>", PEAR_LOG_DEBUG);
$oRegisterUserDNSReg->set('timeout', 'YES');
break;
}
}
}
}
}
if (class_exists('PublishTask_ComplierStaticData') === false ) {
class PublishTask_ComplierStaticData extends SGL_Task
{
public function run($data = null)
{
/// Call class Publish_TaskComplierStaticData
$oPublishTask = Publish_TaskComplierStaticData::singleton();
$aComplierStaticDataTask = $oPublishTask->taskList();
foreach ($aComplierStaticDataTask as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Publish_TaskComplierStaticData->' . $task . ' has problem.'
);
}
$oGeneralAPI = GeneralAPI::singleton();
$oGeneralAPI->registerStatic($k, $val);
}
}
function _registerAPIData($key, $val)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishReg->set('apiRegisStaticData', array('api_key' => $key, 'api_value' => $val));
}
}
}
if (class_exists('PublishTask_ComplierDynamicData') === false) {
class PublishTask_ComplierDynamicData extends SGL_Task
{
public function run($data = null)
{
require_once SGL_MOD_DIR . '/sitebuilder/classes/Publish/CommonTask.php';
/// Call class Publish_TaskComplierStaticData
$oPublishReg = Publish_Registry::singleton();
$projectId = $oPublishReg->get('project_id');
$publishUrl = $oPublishReg->get('publishUrl');
$publishPath = $oPublishReg->get('publishPath');
$iUikit = $oPublishReg->get('isUikit');
$isResponsive = $oPublishReg->get('isResponsiveTemplate');
$oPublishTask = Publish_TaskComplierDynamicData::singleton();
/// แก้ปัญหา time out
$sqlWaitTimeout = $oPublishReg->get('sql_wait_timeout');
$encode_page_list = $oPublishReg->get('encode_page_list');
$timeout = $oPublishReg->get('timeout');
if ($encode_page_list != '' && $timeout === 'YES') {
$aProjectPageId = RvsLibs_Util::decodeArray($encode_page_list);
$oPublishReg->set('timeout', 'NO');
} else {
$_aProjectPageId = $oPublishReg->get('pageData');
$aProjectPageId = (is_null($_aProjectPageId) === true) ? array() : array_keys($_aProjectPageId);
}
if( !ini_get('safe_mode') ){
set_time_limit(60);
}
$aTaskList = $oPublishTask->taskList();
$oGeneralAPI = GeneralAPI::singleton();
$oGeneralAPI->publishPath = $publishPath;
$oGeneralAPI->publishUrl = $publishUrl;
$oGeneralAPI->isCompoDB = $oPublishReg->get('isComponentDB');
$oGeneralAPI->getSourceMode = $oPublishReg->get('action');
if (count($aProjectPageId) > 0) {
while ($projectPageIdId = array_pop($aProjectPageId)) {
foreach ($aTaskList as $k => $v) {
$val = $oPublishTask->{$v}($projectPageIdId);
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Cannot call singleton function of publish task :' . $v
);
}
$oGeneralAPI->register($k, $val);
}
$oGeneralAPI->pageId = $projectPageIdId;
//Start check template blank : by duangdaov
$oPageData = (object)$oPublishReg->get('pageData', null, $projectPageIdId);
if (isset($oPageData->blank_page) && $oPageData->blank_page == '1') {
$aCodePreview = $oPublishReg->get('templateBlank');
} else {
$aCodePreview = $oPublishReg->get('originalCodeData');
}
SGL::logMessage('witoon==>'.$projectPageIdId, PEAR_LOG_DEBUG);
if ($iUikit == true) {
$homePageId = $oPublishReg->get('lessPriority', 'project_page_id', $projectId);
SGL::logMessage('witoon==>'.$homePageId."==".$projectPageIdId, PEAR_LOG_DEBUG);
if ($homePageId == $projectPageIdId ) {
//add newsletter block uikit
$aComponent = $oPublishReg->get('sideValue');
if (isset($aComponent['side_top_newsletter_top']['staticpage_data'])
&& $aComponent['side_top_newsletter_top']['staticpage_data']) {
$newsletterBlock = $aComponent['side_top_newsletter_top']['staticpage_data'];
//$aCodePreview = preg_replace('/<\!--\s*Start\s*BODY\s*-->/ims', "\n" . $newsletterBlock . "\n<!-- Start BODY -->", $aCodePreview);
$aCodePreview = preg_replace('/(<div[^>]*id\s*=\s*"selected_body"[^>]*>)/ims', "$1\n" . $newsletterBlock . "\n", $aCodePreview);
}
}
}
//End check template blank
$oGeneralAPI->register_template($aCodePreview);
$pageCodeData = $oGeneralAPI->fetch();
$oGeneralAPI->unregister('{BODY}');
//delete site1 site2 in gallery
if ($isResponsive == true) {
//reponsive css
$pageCodeData = RvsLibs_String::preg_replace('/href\="base\.css"/', 'href="' . $publishUrl . '/base.css"', $pageCodeData);
$pageCodeData = RvsLibs_String::preg_replace('/href\="skeleton\.css"/', 'href="' . $publishUrl . '/skeleton.css"', $pageCodeData);
$pageCodeData = RvsLibs_String::preg_replace('/href\="layout\.css"/', 'href="' . $publishUrl . '/layout.css"', $pageCodeData);
} else {
//validat hidden blog login
$pageCodeData = $this->getComponentBlogLogin($projectId, $pageCodeData);
$pageCodeData = RvsLibs_String::preg_replace('/href\="style\.css"/', 'href="' . $publishUrl . '/style.css"', $pageCodeData);
}
//uikit,rvsb-css
$pageCodeData = preg_replace('/=\s*\"uikit\//i', '="' . $publishUrl . '/uikit/', $pageCodeData);
$pageCodeData = preg_replace('/=\s*\"rvsb\-css\//i', '="' . $publishUrl . '/rvsb-css/', $pageCodeData);
$pageCodeData = preg_replace('/=\s*\"rvsb\-js\//i', '="' . $publishUrl . '/rvsb-js/', $pageCodeData);
$pageCodeData = RvsLibs_String::preg_replace('/<script\s*src\="AC_RunActiveContent\.js"/', '<script src="' . $publishUrl . '/AC_RunActiveContent.js"', $pageCodeData);
$pageCodeData = RvsLibs_String::preg_replace('/<script\s*src\="Scripts\/AC_RunActiveContent\.js"/', '<script src="' . $publishUrl . '/Scripts/AC_RunActiveContent.js"', $pageCodeData);
$pageCodeData = RvsLibs_String::preg_replace('/<link\s*rel\="stylesheet"\s*href\="templatespecific\.css"\s*type\="text\/css"\s*\/>/', '', $pageCodeData);
// update width
$pageCodeData = RvsLibs_Template::UpdateTemplateVar($pageCodeData);
// update position
$aCode = RvsLibs_Template::SetPositionLogoCompanySlogan($pageCodeData);
$pageCodeData = $aCode['template'];
$oPublishReg->set('complierPageData', array('project_page_id' => $projectPageIdId, 'pagedata' => $pageCodeData));
$oPageData = (object)$oPublishReg->get('pageData', null, $projectPageIdId);
$aThankPage = $oGeneralAPI->aThankPage;
foreach ($aThankPage as $thankpagedata) {
//ตัดปัญหาการ unregist pattern ไม่ได้
//$oGeneralAPI->unregister('{BODY}');
//$oGeneralAPI->register('{BODY}', $thankpagedata['pagedata']);
$content = RvsLibs_Template::getLayoutUikit($thankpagedata['pagedata'], $iUikit, null);
$code = RvsLibs_Template::getContainer($content, $iUikit, null);
$aCodePreview = str_replace('{BODY}', $code, $aCodePreview);
$oGeneralAPI->register_template($aCodePreview);
$thankPageCode = $oGeneralAPI->fetch();
if ($isResponsive == true) {
//reponsive css
$pageCodeData = RvsLibs_String::preg_replace('/href\="base\.css"/', 'href="' . $publishUrl . '/base.css"', $pageCodeData);
$pageCodeData = RvsLibs_String::preg_replace('/href\="skeleton\.css"/', 'href="' . $publishUrl . '/skeleton.css"', $pageCodeData);
$pageCodeData = RvsLibs_String::preg_replace('/href\="layout\.css"/', 'href="' . $publishUrl . '/layout.css"', $pageCodeData);
} else {
//VALIDATE DISPLAY BLOG LOGIN
$thankPageCode = $this->getComponentBlogLogin($projectId, $thankPageCode);
//END VALIDATE DISPLAY BLOG LOGIN
$thankPageCode = RvsLibs_String::preg_replace('/href\="style\.css"/', 'href="' . $publishUrl . '/style.css"', $thankPageCode);
}
//uikit,rvsb-css
$pageCodeData = preg_replace('/=\s*\"uikit\//i', '="' . $publishUrl . '/uikit/', $pageCodeData);
$pageCodeData = preg_replace('/=\s*\"rvsb\-css\//i', '="' . $publishUrl . '/rvsb-css/', $pageCodeData);
$pageCodeData = preg_replace('/=\s*\"rvsb\-js\//i', '="' . $publishUrl . '/rvsb-js/', $pageCodeData);
$thankPageCode = RvsLibs_String::preg_replace('/<script\s*src\="AC_RunActiveContent\.js"/', '<script src="' . $publishUrl . '/AC_RunActiveContent.js"', $thankPageCode);
$thankPageCode = RvsLibs_String::preg_replace('/<script\s*src\="Scripts\/AC_RunActiveContent\.js"/', '<script src="' . $publishUrl . '/Scripts/AC_RunActiveContent.js"', $thankPageCode);
$thankPageCode = RvsLibs_String::preg_replace('/<link\s*rel\="stylesheet"\s*href\="templatespecific\.css"\s*type\="text\/css"\s*\/>/', '', $thankPageCode);
//$thankPageCode = Publish_CommonComplierDynamicDataTask::cleanCode($thankPageCode);
// update width
$thankPageCode = RvsLibs_Template::UpdateTemplateVar($thankPageCode);
// update position
$aCode = RvsLibs_Template::SetPositionLogoCompanySlogan($thankPageCode);
$thankPageCode = $aCode['template'];
$oPageData->project_page_id = $thankpagedata['pagename'];
$oPageData->page_data = $thankPageCode;
$oPageData->filename = str_replace('.php', '', $thankpagedata['pagename']);
$oPageData->page_name = $oPageData->filename;
$oPageData->file_extension = 'php';
$oPublishReg->set('pageData', $oPageData);
$oPublishReg->set('complierPageData', array('project_page_id' => $thankpagedata['pagename'], 'pagedata' => $thankPageCode));
$htmlHeader = $oPublishReg->get('isComponentDB') ? RvsLibs_Scripts::getIncludeFileReplace() : "";
$aComponentConf = array(
'rvs_component_id' => '0',
'project_page_id' => $thankpagedata['pagename'],
'header' => '',
'footer' => '',
'htmlheader' => $htmlHeader,
'page_type' => '',
);
$oPublishReg->set('componentInPage', $aComponentConf);
}
$oGeneralAPI->unregister();
$timeOut = RvsLibs_String::getExecuteTime($sqlWaitTimeout);
if ($timeOut < 15 && count($aProjectPageId) > 0) {
//SGL::logMessage('Witoon***** Timeout', PEAR_LOG_DEBUG);
$oPublishReg->set('encode_page_list', RvsLibs_Util::encodeArray($aProjectPageId));
$oPublishReg->set('timeout', 'YES');
break;
}
}
}
}
function removeEmbedSide($pageCodeData)
{
return RvsLibs_String::preg_replace('/<!--\sBegin\sSIDE1\s-->(.*?)<!--\sEnd\sSIDE1\s-->/i', '', $pageCodeData);
}
function getComponentBlogLogin($projectId, $htmlCodeSideBlock)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$pattern = '/id="RVS_BlockLogin"/';
$replacement = 'id="RVS_hideblock"';
return (RvsLibs_Project::isEnableBlockLogin($projectId) === false)
? RvsLibs_String::preg_replace($pattern, $replacement, $htmlCodeSideBlock)
: $htmlCodeSideBlock;
}
}
}
if (class_exists('PublishTask_PreBuildPage') === false) {
class PublishTask_PreBuildPage extends SGL_Task
{
public function run($data = null)
{
ob_start();
/// Call class Publish_TaskComplierStaticData
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskPreBuildPage::singleton();
$sqlWaitTimeout = $oPublishReg->get('sql_wait_timeout');
$task_list = $oPublishReg->get('task_list');
$validateTimeout = $oPublishReg->get('timeout');
if ($task_list != '' && $validateTimeout === 'YES') {
$aListFileTask = RvsLibs_Util::decodeArray($task_list);
$oPublishReg->set('timeout', 'NO');
} else {
$aListFileTask = $oPublishTask->taskList();
$oPublishReg->set('task_list', RvsLibs_Util::encodeArray($aListFileTask));
}
$aTaskList = $aListFileTask;
foreach ($aListFileTask as $k => $v) {
SGL::logMessage('Witoon*******Task:' . $v, PEAR_LOG_DEBUG);
$o = new $v();
$o->run($data=null);
if (SGL::isError($o) === true) {
return SGL::raiseError(
'Cannot call singleton function of publish task :' . $v
);
}
$validateSubTimeout = $oPublishReg->get('sub_timeout');
if ($validateSubTimeout === 'YES') {
SGL::logMessage("Witoon timeout >>>>", PEAR_LOG_DEBUG);
$oPublishReg->set('task_list', RvsLibs_Util::encodeArray($aTaskList));
$oPublishReg->set('timeout', 'YES');
break;
}
unset($aTaskList[$k]);
$timeOut = RvsLibs_String::getExecuteTime($sqlWaitTimeout);
SGL::logMessage('Witoon***** Time used:' . $timeOut, PEAR_LOG_DEBUG);
if ($timeOut < 15 && count($aTaskList) > 0) {
SGL::logMessage("Witoon timeout >>>>", PEAR_LOG_DEBUG);
$oPublishReg->set('task_list', RvsLibs_Util::encodeArray($aTaskList));
$oPublishReg->set('timeout', 'YES');
break;
}
}
}
}
}
if (class_exists('PublishTask_ListFileData') === false) {
class PublishTask_ListFileData extends SGL_Task
{
public function run($data = null)
{
SGL::logMessage('run task =>', PEAR_LOG_DEBUG);
/// Call class Publish_TaskComplierStaticData
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskListFile::singleton();
$sqlWaitTimeout = $oPublishReg->get('sql_wait_timeout');
$sub_task_list = $oPublishReg->get('sub_task_list');
$sub_timeout = $oPublishReg->get('sub_timeout');
if ($sub_task_list != '' && $sub_timeout === 'YES') {
$aListFileTask = RvsLibs_Util::decodeArray($sub_task_list);
$oPublishReg->set('sub_timeout', 'NO');
} else {
$aListFileTask = $oPublishTask->taskList();
}
$aTaskList = $aListFileTask;
foreach ($aTaskList as $k => $v) {
SGL::logMessage('Witoon*****Task :' . $v , PEAR_LOG_DEBUG);
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Cannot call singleton function of publish task :' . $v
);
}
$validateSubTimeout = $oPublishReg->get('function_timeout');
if ($validateSubTimeout === 'YES') {
$oPublishReg->set('sub_task_list', RvsLibs_Util::encodeArray($aTaskList));
$oPublishReg->set('sub_timeout', 'YES');
break;
}
unset($aTaskList[$k]);
$timeOut = RvsLibs_String::getExecuteTime($sqlWaitTimeout);
SGL::logMessage('Witoon***** Time used:' . $timeOut, PEAR_LOG_DEBUG);
if ($timeOut < 10 && count($aTaskList) > 0) {
SGL::logMessage('Witoon Process is time out ', PEAR_LOG_DEBUG);
$oPublishReg->set('sub_task_list', RvsLibs_Util::encodeArray($aTaskList));
$oPublishReg->set('sub_timeout', 'YES');
break;
}
}
}
}
}
/**
* Make folders for publish
* @package PublishTask
* @author develop503
*/
if (class_exists('PublishTask_MakeFolders') === false) {
class PublishTask_MakeFolders extends SGL_Task
{
public function run($data = null)
{
SGL::logMessage('run task =>', PEAR_LOG_DEBUG);
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskMakeFolders::singleton();
$aMakeFolders = $oPublishTask->taskList();
foreach ($aMakeFolders as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
/**
* Change Template variables
* @author pharadol
*
*/
if (class_exists('PublishTask_ChangeTemplateVariables') === false) {
class PublishTask_ChangeTemplateVariables extends SGL_Task
{
public function run($data = null)
{
/// Call class Publish_TaskChangeTemplateVariables
$oPublishTask = Publish_TaskChangeTemplateVariables::singleton();
$aTaskList = $oPublishTask->taskList();
foreach ($aTaskList as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Publish_TaskChangeTemplateVariables->' . $task . ' has problem.'
);
}
$oGeneralAPI = GeneralAPI::singleton();
$oGeneralAPI->registerStatic($k, $val);
}
}
function _registerAPIData($key, $val)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishReg->set('apiRegisStaticData', array('api_key' => $key, 'api_value' => $val));
}
}
}
/**
* complier static data for dynamic
* @author pharadol
*
*/
if (class_exists('PublishTask_ComplierStaticDataForDynamic') === false) {
class PublishTask_ComplierStaticDataForDynamic
{
public static function run($data = null)
{
/// Call class Publish_TaskComplierStaticDataForDynamic
$oPublishTask = Publish_TaskComplierStaticDataForDynamic::singleton();
$aTaskList = $oPublishTask->taskList();
foreach ($aTaskList as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Publish_TaskComplierStaticDataForDynamic->' . $task . ' has problem.'
);
}
$oGeneralAPI = GeneralAPI::singleton();
$oGeneralAPI->registerStatic($k, $val);
}
}
function _registerAPIData($key, $val)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishReg->set('apiRegisStaticData', array('api_key' => $key, 'api_value' => $val));
}
}
}
/**
* publish Component Config , publish header
* @package PublishTask
* @author develop503
*/
if (class_exists('PublishTask_ComponentPublishConfig') === false) {
class PublishTask_ComponentPublishConfig extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskComponentPublishConfig::singleton();
$task_list = $oPublishReg->get('sub_task_list');
$timeout = $oPublishReg->get('sub_timeout');
if ($task_list != '' && $timeout === 'YES') {
$aTaskList = RvsLibs_Util::decodeArray($task_list);
$oPublishReg->set('sub_timeout', 'NO');
} else {
$aTaskList = $oPublishTask->taskList();
}
$aTaskList_buff = $aTaskList;
foreach ($aTaskList as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
$validateSubTimeout = $oPublishReg->get('function_timeout');
if ($validateSubTimeout === 'YES') {
$oPublishReg->set('sub_task_list', RvsLibs_Util::encodeArray($aTaskList_buff));
$oPublishReg->set('sub_timeout', 'YES');
break;
}
unset($aTaskList_buff[$k]);
}
}
}
}
if (class_exists('PublishTask_MakeProjectConfig') === false) {
class PublishTask_MakeProjectConfig extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskMakeProjectConfig::singleton();
$aMakeFolders = $oPublishTask->taskList();
foreach ($aMakeFolders as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
if (class_exists('PublishTask_SendTemplateStat') === false) {
class PublishTask_SendTemplateStat extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskSendTemplateStat::singleton();
$aSendTemplateStat = $oPublishTask->taskList();
foreach ($aSendTemplateStat as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
/**
* Build Page
* @package PublishTask
* @author develop503
*
*/
if (class_exists('PublishTask_BuildPages') === false) {
class PublishTask_BuildPages extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskBuildPages::singleton();
$aTaskList = $oPublishTask->taskList();
foreach ($aTaskList as $k => $v) {
if ($v == 'buldIncludeFile') continue;
$aPageData = $oPublishReg->get('complierPageData', 'project_page_id');
foreach ($aPageData as $pageId => $value) {
$val = $oPublishTask->{$v}($pageId);
}
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
$oPublishTask->buldIncludeFile();
}
}
}
/**
* past build page
* @author pharadol
*
*/
if (class_exists('PublishTask_PostBuildPage') === false) {
class PublishTask_PostBuildPage extends SGL_Task
{
public function run($data = null)
{
/// Call class Publish_TaskComplierStaticData
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskPostBuildPage::singleton();
$task_list = $oPublishReg->get('task_list');
$timeout = $oPublishReg->get('timeout');
if ($task_list != '' && $timeout === 'YES') {
$aListFileTask = RvsLibs_Util::decodeArray($task_list);
$oPublishReg->set('timeout', 'NO');
} else {
$aListFileTask = $oPublishTask->taskList();
}
$aTaskList = $aListFileTask;
foreach ($aListFileTask as $k => $v) {
//SGL::logMessage('run task =>********' . $v, PEAR_LOG_DEBUG);
$o = new $v();
$o->run($data=null);
if (SGL::isError($o) === true) {
return SGL::raiseError(
'Cannot call singleton function of publish task :' . $v
);
}
$validateSubTimeout = $oPublishReg->get('sub_timeout');
if ($validateSubTimeout === 'YES') {
$oPublishReg->set('task_list', RvsLibs_Util::encodeArray($aTaskList));
$oPublishReg->set('timeout', 'YES');
break;
}
unset($aTaskList[$k]);
if (count($aTaskList) > 0) {
$oPublishReg->set('task_list', RvsLibs_Util::encodeArray($aTaskList));
$oPublishReg->set('timeout', 'YES');
break;
}
}
}
}
}
if (class_exists('PublishTask_MakeFiles') === false) {
class PublishTask_MakeFiles extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskMakeFiles::singleton();
$sqlWaitTimeout = $oPublishReg->get('sql_wait_timeout');
$task_list = $oPublishReg->get('sub_task_list');
$timeout = $oPublishReg->get('sub_timeout');
if ($task_list != '' && $timeout === 'YES') {
$aTaskList = RvsLibs_Util::decodeArray($task_list);
$oPublishReg->set('sub_timeout', 'NO');
} else {
$aTaskList = $oPublishTask->taskList();
}
$aTaskList_buff = $aTaskList;
foreach ($aTaskList as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
$validateSubTimeout = $oPublishReg->get('function_timeout');
if ($validateSubTimeout === 'YES') {
$oPublishReg->set('sub_task_list', RvsLibs_Util::encodeArray($aTaskList_buff));
$oPublishReg->set('sub_timeout', 'YES');
break;
}
unset($aTaskList_buff[$k]);
$timeOut = RvsLibs_String::getExecuteTime($sqlWaitTimeout);
if ($timeOut < 15 && count($aTaskList_buff) > 0) {
$oPublishReg->set('sub_task_list', RvsLibs_Util::encodeArray($aTaskList_buff));
$oPublishReg->set('sub_timeout', 'YES');
break;
}
}
}
}
}
if (class_exists('PublishTask_UpdateFlashIndex') === false) {
class PublishTask_UpdateFlashIndex extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskUpdateFlashIndex::singleton();
$aMakeFiles = $oPublishTask->taskList();
foreach ($aMakeFiles as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
if (class_exists('PublishTask_UpdateNavigaterCss') === false) {
class PublishTask_UpdateNavigaterCss extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskUpdateNavigaterCss::singleton();
$aMakeFiles = $oPublishTask->taskList();
foreach ($aMakeFiles as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
if (class_exists('PublishTask_FixedHtaccessFile') === false) {
class PublishTask_FixedHtaccessFile extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskFixedHtaccessFile::singleton();
$aMakeFolders = $oPublishTask->taskList();
foreach ($aMakeFolders as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
if (class_exists('PublishTask_ProjectBackUpDatabase') === false) {
class PublishTask_ProjectBackUpDatabase extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskProjectBackUpDatabase::singleton();
$aTaskList = $oPublishTask->taskList();
foreach ($aTaskList as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
if (class_exists('PublishTask_RemoveBeforePublish') === false) {
class PublishTask_RemoveBeforePublish extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskRemoveBeforePublish::singleton();
$aTaskList = $oPublishTask->taskList();
foreach ($aTaskList as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
if (class_exists('PublishTask_ChangePermission') === false) {
class PublishTask_ChangePermission extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskChangePermission::singleton();
$aMakeFolders = $oPublishTask->taskList();
foreach ($aMakeFolders as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
if (class_exists('PublishTask_ComplierPageForComponentDB') === false) {
class PublishTask_ComplierPageForComponentDB extends SGL_Task
{
public function run($data = null)
{
$oPublishReg = Publish_Registry::singleton();
$oPublishTask = Publish_TaskComplierPageForComponentDB::singleton();
$aMakeFolders = $oPublishTask->taskList();
foreach ($aMakeFolders as $k => $v) {
$val = $oPublishTask->{$v}();
if (SGL::isError($val) === true) {
return SGL::raiseError(
'Error function of publish task :' . $v . ' ' . $val->getMessage()
);
}
}
}
}
}
?>