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/NavigatorDao.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 navigator of RVSiteBuilder  
 *
 * @package sitebuilder
 * @author  Pairote Manunphol <pairote@rvglobalsoft.com>
 * @author  Parinya <parinya@rvglobalsoft.com>
 * @version $Revision$
 * @since   PHP 5.1
 */

class NavigatorDao extends DbWrapper implements SitebuilderInf
{
	function NavigatorDao()
	{
		parent::DbWrapper();
	}
	
	/**
	 * Returns a singleton NavigatorDao 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;
    }
    
    /**
     * Select navigator data by navigator id and|or navigator name id and|or $menustyle id and|or color group id
     * @author Parinya Chaipetch
     * 
     * @param string $navigatorId
     * @param string $navigatorNameId
     * @param string $menustyleId
     * @param string $colorGroupId
     * @param string $fetchMode
     * @access public
     * @return array
     */
    public function findNavigatorByNavigatorData($navigatorId=null, $navigatorNameId=null, $menustyleId=null, $colorGroupId=null, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);    
        DB_DataObject::debugLevel();
        $oNavigator = DB_DataObject::factory($this->aConf['table']['rvs_navigator']);
        $query = sprintf('
            SELECT 
                *
            FROM 
                %s na
                , %s nv
                , %s rf
            WHERE 
                na.navigator_name_id = nv.navigator_name_id
                %s
                %s
                %s
                %s
            '
            , $this->aConf['table']['rvs_navigator_name']
            , $this->aConf['table']['rvs_navigator']
            , $this->aConf['table']['rvs_navigator_color_xref']
            , ($navigatorNameId) ? ' AND na.navigator_name_id = ' . RvsLibs_String::quoteSmart($navigatorNameId) : ''
            , ($menustyleId) ? ' AND nv.menustyle_id = ' . RvsLibs_String::quoteSmart($menustyleId) : ''
            , ($colorGroupId) ? ' AND rf.color_group_id = ' . RvsLibs_String::quoteSmart($colorGroupId) : ''
            , ($navigatorId) ? ' AND nv.navigator_id = ' . RvsLibs_String::quoteSmart($navigatorId) : ' AND rf.navigator_id = nv.navigator_id'
        );
        $oNavigator->query($query);
        $aCloneData = array();
        while ($oNavigator->fetch()) {
            $aCloneData[] = clone($oNavigator);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oNavigator->_resultFields, $aCloneData, $fetchMode);
    }
    
    /**
     * Find Data from table rvs_navigator and rvs_navigator_name By NavigatorNameId navigator_name_id and navigator_name_id
     *
     * Resulting SQ
     *  	SELECT 
     * 					*
     * 		FROM
     * 					rvs_navigatorna
     * 					, rvs_navigator_name nm
     * 		WHERE 
     * 					 na.navigator_name_id = nm.navigator_name_id
     * 		 AND 
     * 					nm.navigator_name_id = {$navigatorNameId}
     * 
     * @param string $navigatorNameId
     * @param string $fetchMode
     * @return object
     */
    public function findNavigatorDataByNavigatorNameId($navigatorNameId = null, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oNavigator = DB_DataObject::factory($this->aConf['table']['rvs_navigator']);
        if (!is_null($navigatorNameId)) {
              $query = sprintf('
					SELECT 
                            *
					 FROM
                           %s na
                             , %s nm
					WHERE 
                            na.navigator_name_id = nm.navigator_name_id
					AND 
                           nm.navigator_name_id = %s
                    '
                    , $this->aConf['table']['rvs_navigator']
                    , $this->aConf['table']['rvs_navigator_name']
                    , RvsLibs_String::quoteSmart($navigatorNameId)
                    );
             $oNavigator->query($query);
        }
        $aCloneData = array();
        while ($oNavigator->fetch()) {
            $aCloneData[] = clone($oNavigator);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oNavigator->_resultFields, $aCloneData, $fetchMode);
    }
    
/**
     * Find Data from table rvs_navigator and rvs_navigator_name DISTINCT na.navigator_name_id, na.navigator_name By NavigatorNameId navigator_name_id and navigator_name_id
     *
     * @param string $navigatorNameId
     * @param string $fetchMode
     * @return object
     */
    public function findNavigatorDataDistinctByNavigatorIdAndName($navigatorNameId = null, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oNavigator = DB_DataObject::factory($this->aConf['table']['rvs_navigator']);
        if (!is_null($navigatorNameId)) {
            $query = sprintf('
                SELECT 
                    DISTINCT na.navigator_name_id,
                    na.navigator_name
                FROM 
                        %s nv,
                        %s na
                WHERE 
                    nv.menustyle_id = %s
                    AND nv.navigator_name_id = na.navigator_name_id
                ORDER BY 
                    na.navigator_name_id
                        ',
            $this->aConf['table']['rvs_navigator'],
            $this->aConf['table']['rvs_navigator_name'],
             RvsLibs_String::quoteSmart($navigatorNameId)
            );
           $oNavigator->query($query);
        }
        $aCloneData = array();
        while ($oNavigator->fetch()) {
            $aCloneData[] = clone($oNavigator);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oNavigator->_resultFields, $aCloneData, $fetchMode);
    }
    
    /**
     * Find NavigatorData from table rvs_navigator and rvs_navigator_name By navigator_name_id, menustyle_id , navigator_id
     *
     * @author duangdao.k
     * @param string $menustyleId
     * @param string  $defNavigatorId
     * @param string $fetchMode
     * @return object
     */
    public function findNavigatorDataByMenustyleIdAnDefNavigatorId($menustyleId = null, $defNavigatorId = null, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oNavigator = DB_DataObject::factory($this->aConf['table']['rvs_navigator']);
        if (!is_null($menustyleId) && !is_null($defNavigatorId)) {
            $query = sprintf('
				 SELECT 
                        *
				  FROM
                          %s na
                           , %s nm
                  WHERE 
                         na.navigator_name_id = nm.navigator_name_id
                   AND 
                         na.menustyle_id = %s
                   AND 
                        na.navigator_id = %s
               '
               , $this->aConf['table']['rvs_navigator']
               , $this->aConf['table']['rvs_navigator_name']
               , RvsLibs_String::quoteSmart($menustyleId)
               , RvsLibs_String::quoteSmart($defNavigatorId)
             );
             $oNavigator->query($query);
        }
        $aCloneData = array();
        while ($oNavigator->fetch()) {
            $aCloneData[] = clone($oNavigator);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oNavigator->_resultFields, $aCloneData, $fetchMode);
    }
    
       /*
        $query = "
                    SELECT
                                *
                    FROM
                                {$this->conf['table']['rvs_navigator']} n
                                , {$this->conf['table']['rvs_navigator_name']} na
                    WHERE
                                n.navigator_name_id = na.navigator_name_id
                                AND n.navigator_id = '$navigatorId'
                                AND n.menustyle_id = '$menustyleId'
                    ";
        $res = $this->dbh->getRow($query);
    */
    public function findNavigatorNameByNavigatorIdAndMenustyleId($navigatorId = null, $menustyleId = null, $fetchMode = 'getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oNavigator = DB_DataObject::factory($this->aConf['table']['rvs_navigator']);
        if (!is_null($navigatorId) && !is_null($menustyleId)) {
        $query = sprintf('
                    SELECT
                                *
                    FROM
                                %s  n
                                , %s  na
                    WHERE
                                n.navigator_name_id = na.navigator_name_id
                                AND n.navigator_id = %s
                                AND n.menustyle_id =  %s
                     '
                     , $this->aConf['table']['rvs_navigator']
                     , $this->aConf['table']['rvs_navigator_name']
                     , RvsLibs_String::quoteSmart($navigatorId)
                     , RvsLibs_String::quoteSmart($menustyleId)
                      );
         $oNavigator->query($query);
        }
        $aCloneData = array();
        while ($oNavigator->fetch()) {
            $aCloneData[] = clone($oNavigator);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oNavigator->_resultFields, $aCloneData, $fetchMode);
       }

  /**
     * Find TemplateData And NavigatorData AndNavigatorNameDataBy NavigatorId
     * Resulting SQL
     * 
     *		 SELECT
     * 				*
     * 		 FROM	
     * 			rvs_template as tp
     * 			  , rvs_navigator as na
     * 			 , rvs_navigator_name as nn
     * 		WHERE
     * 				 tp.navigator_id = na.navigator_id
     * 				AND nn.navigator_name_id = na.navigator_name_id
     * 				AND tp.template_id = {$templateId}
     * 	
     * @author duangdao.k           
     * @param string $templateId
     * @param string $fetchMode
     * @return object
     */
    public function findTemplateDataAndNavigatorDataAndNavigatorNameDataByNavigatorId($templateId = null, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oNavigator = DB_DataObject::factory($this->aConf['table']['rvs_navigator']);
        $query = sprintf('
			SELECT
                 *
			FROM
				 %s tp
				 , %s na
				 , %s nn
			WHERE
 				 tp.navigator_id = na.navigator_id
				 AND nn.navigator_name_id = na.navigator_name_id
				 AND tp.template_id = %s
              '
              , $this->aConf['table']['rvs_template']
              , $this->aConf['table']['rvs_navigator']
              , $this->aConf['table']['rvs_navigator_name']
              , RvsLibs_String::quoteSmart($templateId)
            );
            $oNavigator->query($query);
        $aCloneData = array();
        while ($oNavigator->fetch()) {
            $aCloneData[] = clone($oNavigator);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oNavigator->_resultFields, $aCloneData, $fetchMode);
    }
    
    public function findNavigatorNameByNavigatorNameId($navigatorNameId, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oNavigator = DB_DataObject::factory($this->aConf['table']['rvs_navigator_name']);
        if (!is_null($navigatorNameId)) {
            $oNavigator->navigator_name_id = $navigatorNameId;
        }
        $oNavigator->find();
        $aCloneData = array();
        while ($oNavigator->fetch()) {
            $aCloneData[] = clone($oNavigator);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oNavigator->_resultFields, $aCloneData, $fetchMode);
    }
    
    public function findNavigatorId($navigatorNameId=null, $menustyleId=null, $fetchMode='getassoc')
    {
    	SGL::logMessage(null, PEAR_LOG_DEBUG);
    	DB_DataObject::debugLevel();
    	$oNavigator = DB_DataObject::factory($this->aConf['table']['rvs_navigator']);
    	if (!is_null($navigatorNameId)) {
    		$oNavigator->navigator_name_id = $navigatorNameId;
    	}
    	if (!is_null($menustyleId)) {
    		$oNavigator->menustyle_id = $menustyleId;
    	}
    	$oNavigator->find();
    	$aCloneData = array();
    	while ($oNavigator->fetch()) {
    		$aCloneData[] = clone($oNavigator);
    	}
    	DB_DataObject::debugLevel();
    	return DbWrapper::fetchDatas($oNavigator->_resultFields, $aCloneData, $fetchMode);
    }
    
    public function findNavigatorByNavigatorId($navigatorId, $fetchMode='getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oNavigator = DB_DataObject::factory($this->aConf['table']['rvs_navigator']);
        if (!is_null($navigatorId)) {
            $oNavigator->navigator_id = $navigatorId;
        }
        $oNavigator->find();
        $aCloneData = array();
        while ($oNavigator->fetch()) {
            $aCloneData[] = clone($oNavigator);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oNavigator->_resultFields, $aCloneData, $fetchMode);
    }
    
    public function backupsql($projectId, $usrId)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        $aSQLData = array();
        $aTemplate = array();
        $aNavigator = array();
        $aProjectInfo = array();
        $aNavigatorName = array();
         
        /// Get Project info id By project_id
        $aProjectInfo = DaoFactory::Project()->findProjectInfoDataByProjectId($projectId, 'getDataObject');
        if (count($aProjectInfo) > 0) {
            ///find navigator name data by navigator_Name_id
            if (!empty($aProjectInfo[0]->navigator_name_id)) {
	            $aNavigatorName = DaoFactory::Navigator()->findNavigatorNameByNavigatorNameId($aProjectInfo[0]->navigator_name_id, 'getDataObject');
	            foreach ($aNavigatorName as $oNavigatorName) {
	                $aSQLData[] = DbWrapper::buildSQLFormat($oNavigatorName);
	            }
            }
            if (!empty($aProjectInfo[0]->template_item_id)) {
	            $aTemplate = DaoFactory::Template()->findTemplateAndTemplateItemByTemplateItemId($aProjectInfo[0]->template_item_id, 'getDataObject');
	            foreach ($aTemplate as $key => $oTemplate) {
	                $aNavigator = DaoFactory::Navigator()->findNavigatorByNavigatorId($oTemplate->navigator_id, 'getDataObject');
	                foreach ($aNavigator as $oNavigator) {
	                    $aSQLData[] = DbWrapper::buildSQLFormat($oNavigator);
	                }
	            }
            }
        }
        return $aSQLData;
    }
     
    public function deleteProjectOfUserId($projectId, $usrId, $aProjectPageId = array()) {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
    }
}
?>