HEX
Server: Apache
System: Linux sg241.singhost.net 2.6.32-896.16.1.lve1.4.51.el6.x86_64 #1 SMP Wed Jan 17 13:19:23 EST 2018 x86_64
User: honghock (909)
PHP: 8.0.30
Disabled: passthru,system,shell_exec,show_source,exec,popen,proc_open
Upload Files
File: //opt/cpanel/ea-php54/root/usr/share/pear/RVSeagullMod/lib/RVSGL/SitebuilderDao/SideDao.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$
// +---------------------------------------------------------------------------+

/**
 *  Data access methods for the side of RVSiteBuilder  
 *
 * @package sitebuilder
 * @author  Pairote Manunphol <pairote@rvglobalsoft.com>
 * @author  Parinya <parinya@rvglobalsoft.com>
 * @version $Revision$
 * @since   PHP 5.1
 */

class SideDao extends DbWrapper implements SitebuilderInf
{
	
	function SideDao()
	{
		parent::DbWrapper();
	}
	
	/**
	 * Returns a singleton SideDao instance.
	 *
	 * @param bool $autoload
	 * @return obj
	 */
	public static function singleton($autoload=false)
    {
        static $instance;
        // If the instance is not there, create one
        if (!isset($instance) || $autoload) {
            $class = __CLASS__;
            $instance = new $class();
        }
        return $instance;
    }
       
    /**
     * Find side id by project id
     * @author Pharadol
     * @param <string> $projectId
     * @param <string> $sideConfig
     * @param <string> $fetchMode
     * @return array
     * form file importProjectMgr.php
     /* $query = "
                        SELECT
                                    sp.rvs_side_id
                        FROM
                                    {$this->conf['table']['rvs_side_to_project']} sp
                                    , {$this->conf['table']['rvs_side']} rs
                        WHERE
                                    sp.rvs_side_id = rs.rvs_side_id
                                    AND sp.project_id = '$input->project_id'
                                    AND rs.side_config = '$input->side_config' 
                        ";
      $res = $this->dbh->getAll($query,DB_FETCHMODE_ASSOC);*/
    public function findSideIdByProjectId($projectId, $sideConfig, $fetchMode='getassoc', $aResultFields=array('rvs_side_id'))
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oSide = DB_DataObject::factory($this->aConf['table']['rvs_side_to_project']); 
        $query = sprintf('
                        SELECT
                                    *
                        FROM
                                    %s sp
                                    , %s rs
                        WHERE
                                    sp.rvs_side_id = rs.rvs_side_id
                                    AND sp.project_id = %s 
                                    AND rs.side_config = %s
                        '
                        , $this->aConf['table']['rvs_side_to_project']
                        , $this->aConf['table']['rvs_side']
                        , RvsLibs_String::quoteSmart($projectId)
                        , RvsLibs_String::quoteSmart($sideConfig) 
                       );
                       
        $oSide->query($query); 
        $aCloneData = array();
        while ($oSide->fetch()) {
        $aCloneData[] = clone($oSide);
        }
        $_aResultFields = DbWrapper::buildResultFields($oSide, $aResultFields);
        return DbWrapper::fetchDatas($_aResultFields, $aCloneData, $fetchMode);  
    }
    
    /**
     * Find side_config And side_value From Table rvs_side and rvs_side_to_project By $projectID
     *
     * Resulting SQL
     *  	SELECT 
     * 			 cf.side_config
     * 			 , cf.side_value 
     * 		FROM 
     * 				 rvs_side as cf
     * 				, rvs_side_to_project as cc
     * 		WHERE 	
     * 				cf.rvs_side_id =  cc.rvs_side_id
     * 				AND cc.project_id = {$projectID}
     * 
     * @author duangdao.k
     * @param string $projectID
     * @param string $fetchMode
     * @return array
     */
    public function findsideConfigAndsideValue($projectID = null, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oSide = DB_DataObject::factory($this->aConf['table']['rvs_side']); 
        if (!is_null($projectID)) {
            $query = sprintf(' 
				SELECT 
					cf.side_config
					 , cf.side_value 
				FROM 
					%s cf
					, %s cc
				WHERE 
					 cf.rvs_side_id =  cc.rvs_side_id
					AND cc.project_id = %s
           	 '
           	 , $this->aConf['table']['rvs_side']
            , $this->aConf['table']['rvs_side_to_project']
            , RvsLibs_String::quoteSmart($projectID)
          );
           $oSide->query($query);   
        }
        $aCloneData = array();
        while ($oSide->fetch()) {
            $aCloneData[] = clone($oSide);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oSide->_resultFields, $aCloneData, $fetchMode);  
    }
    
    public function findSideToProjectbyProjectId($projectId, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        $oSide =  DB_DataObject::factory($this->aConf['table']['rvs_side_to_project']);
        $oSide->project_id = $projectId;
        $oSide->find();
        $aCloneData = array();
        while ($oSide->fetch()) {
            $aCloneData[] = clone($oSide);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oSide->_resultFields, $aCloneData, $fetchMode); 
    }
    
    public function findSideBySideId($sideId, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        $oSide =  DB_DataObject::factory($this->aConf['table']['rvs_side']);
        $oSide->rvs_side_id = $sideId;
        $oSide->find();
        $aCloneData = array();
        while ($oSide->fetch()) {
            $aCloneData[] = clone($oSide);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oSide->_resultFields, $aCloneData, $fetchMode); 
    }

/**************************************************
*                  Insert
**************************************************/

    /**
     * insert  rvs_side_id, side_config, side_value table rvs_side
     *
     * Resulting SQL
     *  	INSERT INTO
     * 				table rvs_side
     * 				(  rvs_side_id
     * 					, side_config
     * 					 , side_value
     * 				 )
     * 			 VALUES 
     * 				(
     * 				 {$SideId}
     * 				  , {$Sideconfig}
     * 				  , {$sideValue}
     * 				   )
     * 
     * 
     * @author  duangdao.k
     * @param string $SideId
     * @param string $Sideconfig
     * @param string $sideValue
     * @return obj
     */
    public function insertSideData($SideId, $Sideconfig, $sideValue)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel(0);
        $oSide =  DB_DataObject::factory($this->aConf['table']['rvs_side']);
        $query = sprintf('
			INSERT INTO
					%s
			 		(
			 		rvs_side_id
                     , side_config
                      , side_value
                     )
			 VALUES 
			 		(
			 			%s
                         , %s
                         ,  %s
                      )
         '
         , $this->aConf['table']['rvs_side']
         , RvsLibs_String::quoteSmart($SideId)
          , RvsLibs_String::quoteSmart($Sideconfig)
          , RvsLibs_String::quoteSmart($sideValue)
          );
          $res = $oSide->query($query); 
          DB_DataObject::debugLevel();
          return (isset($res) && $res) ? true : false;
    }
    
    /**
     * insert rvs_side_id, project_id table  rvs_side_to_project
     *
     * Resulting SQL
     * 		 INSERT INTO
     * 			rvs_side_to_project
     * 					 (
     * 						 rvs_side_id
     * 						 , project_id
     * 					 )
     * 			 VALUES 
     * 					(
     * 						 {$rvsSideId}
     * 						 , {$input->project_id}
     *  				 )
     * 
     * @author duangdao.k
	 * @param string $SideId
     * @param string $projectId
     * @return object
     */
    public function insertSideToProjectData($SideId, $projectId)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel(0);
        $oSideToProject =  DB_DataObject::factory($this->aConf['table']['rvs_side_to_project']);
        $query = sprintf('
			INSERT INTO
				%s
				(
					 rvs_side_id
					, project_id
                   )
			 VALUES
			 	 (
					  %s
					 , %s
					)
              '
               , $this->aConf['table']['rvs_side_to_project']
               ,  RvsLibs_String::quoteSmart($SideId)
               , RvsLibs_String::quoteSmart($projectId)
         );
          $res = $oSideToProject->query($query); 
          DB_DataObject::debugLevel();
          return (isset($res) && $res) ? true : false;
    }

    /**************************************************************************************/
    /*                                     Update 
   ****************************************************************************************
	 /**
     * update SideValue By SideId And ProjectId And UsrId
     *
     * Resulting SQL
     *   UPDATE
     * 		  rvs_side as On
     *		  , rvs_side_to_project as sp
     * 		  , rvs_project'] as pp
     * 	  SET
     * 		    side_value ={$sideValue}
     * 	  WHERE
     * 			 ss.rvs_side_id = sp.rvs_side_id
     * 			 AND sp.project_id = pp.project_id
     * 			 AND ss.rvs_side_id = {SideId}
     * 			 AND pp.project_id = {$ProjectId}
     * 			 AND pp.rvs_usr_id = {$UsrId}
     * 
     * 
     * @author duangdao.k
     * @param string $sideValue
     * @param string $sideId
     * @param string $ProjectId
     * @param string $UsrId
     * @return string
     */
    public function updateSideValueBySideIdAndProjectIdAndUsrId($sideValue, $sideId, $ProjectId, $UsrId)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oProjectInfo = DB_DataObject::factory($this->aConf['table']['rvs_project_info']);
        $query = sprintf('
            UPDATE
                %s as ss
                 , %s as sp
                  , %s as pp
            SET
                 ss.side_value = %s
            WHERE
                   ss.rvs_side_id = sp.rvs_side_id
                   AND sp.project_id = pp.project_id
                   AND ss.rvs_side_id = %s
                   AND pp.project_id = %s
                   AND pp.rvs_usr_id = %s
             '
             , $this->aConf['table']['rvs_side']
             , $this->aConf['table']['rvs_side_to_project']
             , $this->aConf['table']['rvs_project']
             , RvsLibs_String::quoteSmart($sideValue)
             , RvsLibs_String::quoteSmart($sideId)
             , RvsLibs_String::quoteSmart($ProjectId)
             , RvsLibs_String::quoteSmart($UsrId)
       );
       $res = $oProjectInfo->query($query);
       DB_DataObject::debugLevel();
       return $res;
    }
    
 public function updateSideValueByProjectIdAndUserId($sideValue, $UsrId, $ProjectId, $sideConfig)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oProjectInfo = DB_DataObject::factory($this->aConf['table']['rvs_side']);
        $query = sprintf('
            UPDATE
                %s as ss
                 , %s as sp
                  , %s as pp
            SET
                 ss.side_value = %s
            WHERE
                   ss.rvs_side_id = sp.rvs_side_id
                   AND sp.project_id = pp.project_id
                   AND pp.project_id = %s
                   AND pp.rvs_usr_id = %s
                   AND ss.side_config = %s
             '
             , $this->aConf['table']['rvs_side']
             , $this->aConf['table']['rvs_side_to_project']
             , $this->aConf['table']['rvs_project']
             , RvsLibs_String::quoteSmart($sideValue)
             , RvsLibs_String::quoteSmart($ProjectId)
             , RvsLibs_String::quoteSmart($UsrId)
             , RvsLibs_String::quoteSmart($sideConfig)
             
       );
       $res = $oProjectInfo->query($query);
       DB_DataObject::debugLevel();
       return $res;
    }
	
    /**
     * delete Side to project
     * $query = "
                        DELETE
                                    {$this->conf['table']['rvs_side']} as si
                                    , {$this->conf['table']['rvs_side_to_project']} as sp
                        FROM
                                    {$this->conf['table']['rvs_side']} as si
                                    , {$this->conf['table']['rvs_side_to_project']} as sp
                                    , {$this->conf['table']['rvs_project']} as p
                        WHERE
                                    si.rvs_side_id = sp.rvs_side_id
                                    AND p.project_id = sp.project_id
                                    AND p.rvs_usr_id = '$input->rvs_usr_id'
                                    AND p.project_id = '$input->project_id'
                    ";
     * @author Pharadol
     * @param <string> $projectId
     * @param <string> $usrId
     * @return array
     * form file ReMoveProjectMgr.php
     */
    public function deleteSideToProjectByUsrIdAndProjectId($sideId = null)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        $res = self::deleteSideById($sideId);
        $res2 = self::deleteSideToProjectById($sideId);
        
        return ($res2 && $res) ? true : false;
    }
    
    public function deleteSideById($sideId)
    {
    	$oSide = DB_DataObject::factory($this->aConf['table']['rvs_side']);
    	if (is_null($sideId) === false) {
    		if ($oSide->get('rvs_side_id', $sideId)) {
    			$oSide->rvs_side_id = $sideId;
    			$oSide->delete();
    		}
    		if (SGL::isError($oSide)) {
    			SGL_Error::pop();
    			return false;	
    		}
    	}
    	return true;
    }
    
    public function deleteSideToProjectById($sideId)
    {
    	$oSide = DB_DataObject::factory($this->aConf['table']['rvs_side_to_project']);
    	if (is_null($sideId) === false) {
    		if ($oSide->get('rvs_side_id', $sideId)) {
    			$oSide->rvs_side_id = $sideId;
    			$oSide->delete();
    		}
    		if (SGL::isError($oSide)) {
    			SGL_Error::pop();
    			return false;	
    		}
    	}
    	return true;
    }

    public function backupsql($projectId, $usrId)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        $aSQLData = array();
        $aSide = array();
        $aSideId = array();
        $aSideToProject = array();
        /// Backup Table rvs_side_to_project
        $aSideToProject = $this->findSideToProjectbyProjectId($projectId, 'getDataObject');
        foreach ($aSideToProject as $k => $v) {
            $aSideId[] = $v->rvs_side_id;
            $aSQLData[] = DbWrapper::buildSQLFormat($v);
        }
        /// Backup Table rvs_side
        foreach ($aSideId as $sideId) {
            $aSide = $this->findSideBySideId($sideId, 'getDataObject');            
            foreach ($aSide as $k => $v) {                
                $aSQLData[] = DbWrapper::buildSQLFormat($v);
            }
        }        
        return $aSQLData;
    }

    public function deleteProjectOfUserId($projectId, $usrId, $aProjectPageId=array()) 
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        $aSideToProject = $this->findSideToProjectbyProjectId($projectId, 'getDataObject');
        foreach ($aSideToProject as $k => $v) {
        	self::deleteSideToProjectByUsrIdAndProjectId($v->rvs_side_id);
        }
    }
}
?>