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/alt/php54/usr/share/pear/RVSeagullMod/lib/RVSGL/SitebuilderDao/LayoutTemplateDao.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 layout template of RVSiteBuilder
 *
 * @package sitebuilder
 * @author  Pairote Manunphol <pairote@rvglobalsoft.com>
 * @author  Parinya <parinya@rvglobalsoft.com>
 * @version $Revision$
 * @since   PHP 5.1
 */

class LayoutTemplateDao extends DbWrapper implements SitebuilderInf
{

	function LayoutTemplateDao()
	{
		parent::DbWrapper();
	}

	/**
	 * Returns a singleton LayoutTemplateDao 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                                                               */
/* ============================================================= */

    /**
     * Find layout template id by project info id
     *
     * Resulting SQL
     *      SELECT
     *           layout_template_id
     *       FROM
     *           rvs_project_info
     *       WHERE
     *           project_info_id = {$projectInfoId}
     *
     * @param string $projectInfoId
     * @param string $fetchMode
     * @author Parinya Chaipetch
     * @access public
     * @return array
     */
    public function findLayoutTemplateIdByProjectInfoId($projectInfoId=null,  $fetchMode = 'getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oProjectInfo = DB_DataObject::factory($this->aConf['table']['rvs_project_info']);

        $oProjectInfo->selectAdd();
        $oProjectInfo->selectAdd('layout_template_id');

        if (!is_null($projectInfoId)) {
            $oProjectInfo->project_info_id = $projectInfoId;
        }
        $oProjectInfo->find();

        $aCloneData = array();

        while ($oProjectInfo->fetch()) {
            $aCloneData[] = clone($oProjectInfo);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oProjectInfo->_resultFields, $aCloneData, $fetchMode);
    }

    /**
     * Find layout template id by layout category id
     *
     * Resulting SQL
     *      SELECT
     *           lt.layout_template_id
     *       FROM
     *           rvs_layout_template as lt
     *           , rvs_layout_group as ct
     *       WHERE
     *           lt.layout_group_id = ct.layout_group_id
     *           AND ct.layout_category_id = {$layoutCategoryId}
     *
     * @param string $layoutCategoryId
     * @param string $fetchMode
     *
     * @author Parinya Chaipetch
     * @access public
     * @return array
     */
    public function findLayoutTemplateIdByLayoutCategoryId($layoutCategoryId='1',  $fetchMode = 'getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_template']);

        $aCloneData = array();
        $query = sprintf('
            SELECT
                lt.layout_template_id
            FROM
                %s as lt
                , %s as ct
            WHERE
                lt.layout_group_id = ct.layout_group_id
                AND ct.layout_category_id = %s
            '
            , $this->aConf['table']['rvs_layout_template']
            , $this->aConf['table']['rvs_layout_group']
            , RvsLibs_String::quoteSmart($layoutCategoryId)
        );
        $oLayoutTemplate->query($query);
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oLayoutTemplate->_resultFields, $aCloneData, $fetchMode);
    }
     /**
     * Find layout template  by layout category id
     *
     * Resulting SQL
     *      SELECT
     *           lt.layout_template_id
     * 			, lt.layout_template_name
     * 			, lt.layout_template_preview
     * 			, lt.layout_group_id
     * 			, ct.layout_group_name
     * 			, ct.layout_category_id
     *       FROM
     *           rvs_layout_template as lt
     *           , rvs_layout_group as ct
     *       WHERE
     *           lt.layout_group_id = ct.layout_group_id
     *           AND ct.layout_category_id = {$layoutCategoryId}
     *
     * @param string $layoutCategoryId
     * @param string $fetchMode
     *
     * @author Darawan Taorong create date : 28/04/2552
     * @access public
     * @return array
     * $form edit: LayoutTemplateMainMgr.php Fn: _cmd_lish
     **/
    public function findLayoutTemplateByLayoutCategoryId($layoutCategoryId='1',  $fetchMode = 'getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_template']);
        $aCloneData = array();
        $query = sprintf('
            SELECT
                lt.layout_template_id
                , lt.layout_template_name
                , lt.layout_template_preview
                , lt.layout_group_id
                , ct.layout_group_name
                , ct.layout_category_id
            FROM
                %s as lt
                , %s as ct
            WHERE
                lt.layout_group_id = ct.layout_group_id
                AND ct.layout_category_id = %s
            '
            , $this->aConf['table']['rvs_layout_template']
            , $this->aConf['table']['rvs_layout_group']
            , RvsLibs_String::quoteSmart($layoutCategoryId)
        );
        $oLayoutTemplate->query($query);
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oLayoutTemplate->_resultFields, $aCloneData, $fetchMode);
    }

    /**
     * Find layout template header and layout template data by layout template id
     *
     * Resulting SQL
     *      SELECT
     *           layout_template_head
     *           , layout_template_data
     *       FROM
     *           rvs_layout_template
     *       WHERE
     *           layout_template_id = {$layoutTemplateId}
     *
     * @param string $layoutTemplateId
     * @param string $fetchMode
     * @author Parinya Chaipetch
     * @access public
     * @return array|obj
     */
    public function findLayoutTemplateHeaderAndDataByLayoutTemplateId($layoutTemplateId=null, $fetchMode = 'getassoc', $aResultFields = array('layout_template_head', 'layout_template_data'))
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_template']);

        if (!is_null($layoutTemplateId)) {
            $oLayoutTemplate->layout_template_id = $layoutTemplateId;
        }
        $oLayoutTemplate->find();
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
        DB_DataObject::debugLevel();
        $oLayoutTemplate->_resultFields = DbWrapper::buildResultFields($oLayoutTemplate, $aResultFields);
        return DbWrapper::fetchDatas($oLayoutTemplate->_resultFields, $aCloneData, $fetchMode);
    }

     /**
     * Find layout template Preview and layout template data by layout template id
     *
     * Resulting SQL
     *      SELECT
     *           layout_template_preview
     * 			 , layout_template_desc
     *           , layout_template_name
     *       FROM
     *           rvs_layout_template
     *       WHERE
     *           layout_template_id = {$layoutTemplateId}
     *
     * @param string $layoutTemplateId
     * @param string $fetchMode
     * @author Darawan Taorong
     * @access public
     * @return array|obj
     * $from LayoutTemplatePreviewMgr.php   Fn: _cmd_list
     **/
    public function findLayoutTemplatePreviewAndDataByLayoutTemplateId($layoutTemplateId=null, $fetchMode = 'getassoc', $aResultFields=array())
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_template']);

        if (!is_null($layoutTemplateId)) {
            $oLayoutTemplate->layout_template_id = $layoutTemplateId;
        }
        $oLayoutTemplate->find();
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
          $_aResultFields = DbWrapper::buildResultFields($oLayoutTemplate, $aResultFields);
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($_aResultFields, $aCloneData, $fetchMode);
    }
     /**
     * Find layout template header and layout template data by layout template id
     *
     * Resulting SQL
     *      SELECT
     *           layout_group_id
     *           , layout_group_name
     *       FROM
     *           rvs_layout_group
     *
     * @param string $fetchMode
     * @author Darawan Taorong
     * @access public
     * @return array|obj
     * @form LayoutTemplateMainMgr.php , Fn: _cmd_list
     **/
    public function findLayoutTemplateGroup( $fetchMode = 'getassoc' )
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_group']);
        $oLayoutTemplate->selectAdd();
        $oLayoutTemplate->selectAdd('layout_group_id, layout_group_name');
        $oLayoutTemplate->find();
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oLayoutTemplate->_resultFields, $aCloneData, $fetchMode);
    }

/*
 *
 * @param <string> $layoutTemplateId
 * @param <string> $fetchMode
 * @param <string> $aResultFields
 * @return array
 * form file ImportTemplate
 */

        /*
        $query = "
                        SELECT
                                    layout_template_preview
                        FROM
                                    {$this->conf['table']['rvs_layout_template']}
                        WHERE
                                    layout_template_id = '$defaultLayoutId'
                    ";
                                    */
       // $res = $this->dbh->getRow($query);
    public function findLayoutImagesPreview($layoutTemplateId=null,  $fetchMode = 'getassoc', $aResultFields = array())
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_template']);

        $oLayoutTemplate->selectAdd();
        $oLayoutTemplate->selectAdd('layout_template_preview');
        if (!is_null($layoutTemplateId)) {
            $oLayoutTemplate->layout_template_id = $layoutTemplateId;
        }
        $oLayoutTemplate->find();
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
        $_aResultFields = DbWrapper::buildResultFields($oLayoutTemplate, $aResultFields);
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($_aResultFields, $aCloneData, $fetchMode);
    }

    public function findLayoutTemplateByLayoutTemplateId($layoutTemplateId = null,  $fetchMode = 'getassoc')
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_template']);

        if (!is_null($layoutTemplateId)) {
            $oLayoutTemplate->layout_template_id = $layoutTemplateId;
        }
        $oLayoutTemplate->find();
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oLayoutTemplate->_resultFields, $aCloneData, $fetchMode);
    }

    public function findLayoutTemplateGroupByLayoutGroupId($layoutGroupId = null, $fetchMode = 'getassoc' )
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_group']);
        if (!is_null($layoutGroupId)) {
            $oLayoutTemplate->layout_group_id = $layoutGroupId;
        }
        $oLayoutTemplate->find();
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oLayoutTemplate->_resultFields, $aCloneData, $fetchMode);
    }

    public function findLayoutTemplateUserByProject($projectId = null, $fetchMode = 'getAll' )
    {
    	SGL::logMessage('projectId: ' . $projectId, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_template_user_project']);
        if (!is_null($projectId)) {
        	$oLayoutTemplate->project_id = $projectId;
        }
        $oLayoutTemplate->find();
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oLayoutTemplate->_resultFields, $aCloneData, $fetchMode);
    }

    public function findLayoutTemplateUserByProjectWithLayoutName($projectId = null, $fetchMode = 'getAll' )
    {
         SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_template_user_project']);
        $aCloneData = array();

         $query = sprintf('
            SELECT *
			FROM
				%s AS rp
				, %s AS ru
			WHERE
				rp.project_id =  %s
				AND rp.layout_template_user_id = ru.layout_template_user_id
            '
            , $this->aConf['table']['rvs_layout_template_user_project']
            , $this->aConf['table']['rvs_layout_template_user']
            , RvsLibs_String::quoteSmart($projectId)
        );

        $oLayoutTemplate->query($query);
        $aCloneData = array();
        while ($oLayoutTemplate->fetch()) {
            $aCloneData[] = clone($oLayoutTemplate);
        }
        DB_DataObject::debugLevel();
        return DbWrapper::fetchDatas($oLayoutTemplate->_resultFields, $aCloneData, $fetchMode);
    }

    public function findLayoutTemplateUserByProjectWithLayoutNameAddCountPage($projectId = null, $fetchMode = 'getAll' )
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oLayoutTemplate = DB_DataObject::factory($this->aConf['table']['rvs_layout_template_user_project']);
        $aCloneData = array();
         $query = sprintf('
            SELECT *,
            	(SELECT
            		count(*)
            	FROM
            		 %s
            	WHERE
					layout_template_user_id = rp.layout_template_user_id)
				AS page_total
			FROM
				%s AS ru
				, %s AS rp

			WHERE
				rp.project_id =  %s
				AND ru.layout_template_user_id = rp.layout_template_user_id
			ORDER BY ru.layout_template_name ASC

            '
            , $this->aConf['table']['rvs_project_page_to_layout']
            , $this->aConf['table']['rvs_layout_template_user']
            , $this->aConf['table']['rvs_layout_template_user_project']
            , RvsLibs_String::quoteSmart($projectId)
            );

            $oLayoutTemplate->query($query);
            $aCloneData = array();
            while ($oLayoutTemplate->fetch()) {
                $aCloneData[] = clone($oLayoutTemplate);
            }
            DB_DataObject::debugLevel();
            return DbWrapper::fetchDatas($oLayoutTemplate->_resultFields, $aCloneData, $fetchMode);
    }



/* ============================================================= */
/*                                                INSERT                                                               */
/* ============================================================= */

    /*
     * @return bool
     */
    public function insertLayoutTemplateUserProject($aTemplateUser)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);

        DB_DataObject::debugLevel(0);
        $oLnk =  DB_DataObject::factory($this->aConf['table']['rvs_layout_template_user_project']);
        $query = sprintf('
			 INSERT INTO
                        %s
                        (
						 project_id
						 , layout_template_user_id
						 )
				 VALUES
				 		 (
							%s
							 , %s

                          )
                    '
                    , $this->aConf['table']['rvs_layout_template_user_project']
                    , RvsLibs_String::quoteSmart($aTemplateUser['project_id'])
                    , RvsLibs_String::quoteSmart($aTemplateUser['layout_template_user_id'])

            );
            $res = $oLnk->query($query);
            DB_DataObject::debugLevel();
            return (isset($res) && $res) ? true : false;
    }




/* ============================================================= */
/*                                                UPDATE                                                              */
/* ============================================================= */
    /**
     * Update layout template id by usr id and project id and project info id
     *
     * Resulting SQL
     *      UPDATE
     *           rvs_project_info as pi
     *           , rvs_project  as pp
     *       SET
     *           pi.layout_template_id = {$layoutTemplateId}
     *       WHERE
     *           pi.project_info_id =  {$projectInfoId}
     *           AND pp.project_id = {$projectId}
     *           AND pp.rvs_usr_id = {$usrId}
     *           AND pi.project_info_id = pp.project_info_id
     *
     * @param string $layoutTemplateId
     * @param string $usrId
     * @param string $projectId
     * @param string $projectInfoId
     * @author Parinya Chaipetch
     * @access public
     * @return bool
     */
    public function updateLayoutTemplateIdByUsrIdAndProjectIdAndProjectInfoId($layoutTemplateId=null, $usrId=null, $projectId=null, $projectInfoId=null)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();
        $oProject = DB_DataObject::factory($this->aConf['table']['rvs_project']);
        $query = sprintf('
            UPDATE
                %s as pi
                , %s  as pp
            SET
                pi.layout_template_id = %s
            WHERE
                pi.project_info_id =  %s
                AND pp.project_id = %s
                AND pp.rvs_usr_id =%s
                AND pi.project_info_id = pp.project_info_id

            '
            , $this->aConf['table']['rvs_project_info']
            , $this->aConf['table']['rvs_project']
            , RvsLibs_String::quoteSmart($layoutTemplateId)
            , RvsLibs_String::quoteSmart($projectInfoId)
            , RvsLibs_String::quoteSmart($projectId)
            , RvsLibs_String::quoteSmart($usrId)
        );
        $oProject->query($query);
        DB_DataObject::debugLevel();
        return true;
    }


    public function updateMasterPageLayoutFormUserLayoutByProjectId($projectId=null)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
        DB_DataObject::debugLevel();

        if ($projectId) {
            $oProject = DB_DataObject::factory($this->aConf['table']['rvs_layout_template_user_project']);
            $oLayout = DB_DataObject::factory($this->aConf['table']['rvs_project_page_to_layout']);

        /*
         * REPLACE INTO rvs_layout_template_user_project( `project_id`,`layout_template_user_id`)
SELECT DISTINCT `project_id`,`layout_template_user_id` FROM rvs_project_page_to_layout
WHERE `project_id` = '694b9543ac68345fa39a445139042b79'
         * */
         $query = sprintf('
            REPLACE INTO
            	%s( project_id,layout_template_user_id)
			SELECT DISTINCT
				project_id
				,layout_template_user_id
			FROM
				%s
			WHERE project_id = %s
            AND layout_template_user_id != %s
            '
            , $this->aConf['table']['rvs_layout_template_user_project']
            , $this->aConf['table']['rvs_project_page_to_layout']
            , RvsLibs_String::quoteSmart($projectId)
        	, RvsLibs_String::quoteSmart('1')
        );
        }

        $oProject->query($query);
        DB_DataObject::debugLevel();
        return true;
    }



/* ============================================================= */
/*                                                DELETE                                                               */
/* ============================================================= */



public function deleteLayoutTemplateUserProjectByTemplateUserId($LayoutTemplateUserId)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
    	DB_DataObject::debugLevel();
    	$oRvsHead = DB_DataObject::factory($this->aConf['table']['rvs_layout_template_user_project']);
    	$query = sprintf('
            DELETE FROM
                %s
            WHERE
	            layout_template_user_id = %s
            '
            , $this->aConf['table']['rvs_layout_template_user_project']
            , RvsLibs_String::quoteSmart($LayoutTemplateUserId)
            );
            $res = $oRvsHead->query($query);
            DB_DataObject::debugLevel();
            return $res;
    }

    public function deleteLayoutTemplateUserByTemplateUserId($LayoutTemplateUserId)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
    	DB_DataObject::debugLevel();
    	$oRvsHead = DB_DataObject::factory($this->aConf['table']['rvs_layout_template_user']);
    	$query = sprintf('
            DELETE FROM
                %s
            WHERE
	            layout_template_user_id = %s
            '
            , $this->aConf['table']['rvs_layout_template_user']
            , RvsLibs_String::quoteSmart($LayoutTemplateUserId)
            );
            $res = $oRvsHead->query($query);
            DB_DataObject::debugLevel();
            return $res;
    }

    public function deleteLayoutTemplateUserByProject($projectId)
    {
        SGL::logMessage(null, PEAR_LOG_DEBUG);
    	DB_DataObject::debugLevel();
    	$oRvsHead = DB_DataObject::factory($this->aConf['table']['rvs_layout_template_user_project']);
    	$query = sprintf('
            DELETE FROM
                %s
            WHERE
	            project_id = %s
            '
            , $this->aConf['table']['rvs_layout_template_user_project']
            , RvsLibs_String::quoteSmart($projectId)
            );
            $res = $oRvsHead->query($query);
            DB_DataObject::debugLevel();
            return $res;
    }

    public function backupsql($projectId, $usrId)
    {
    	SGL::logMessage('projectId: ' . $projectId, PEAR_LOG_DEBUG);
        $aSQLData = array();
        $aLayoutGroupId = array();
        /// Get Project info id By project_id
        $oProjectInfoId = DaoFactory::Project()->findProjectInfoDataByProjectId($projectId, 'getDataObject');
        foreach ($oProjectInfoId as $key => $val) {
            ///Backup table rvs_layout_template
        	if (!empty($val->layout_template_id)) {
        		$oLayoutTemplate = $this->findLayoutTemplateByLayoutTemplateId($val->layout_template_id, 'getDataObject');
        		foreach ($oLayoutTemplate as $k => $v) {
        			$aLayoutGroupId[] = $v->layout_group_id;
        			$aSQLData[] = DbWrapper::buildSQLFormat($v);
        		}
        	}
        }
        foreach ($aLayoutGroupId as $layoutGroupId) {
            ///Backup table rvs_layout_group
            $oLayoutTemplateGroup = $this->findLayoutTemplateGroupByLayoutGroupId($layoutGroupId, 'getDataObject');
            foreach ($oLayoutTemplateGroup as $k => $v) {
                $aSQLData[] = DbWrapper::buildSQLFormat($v);
            }
        }
         $oLayerData = $this->findLayoutTemplateUserByProject($projectId, 'getDataObject');
        foreach ($oLayerData as $k => $v) {
        	$aSQLData[] = DbWrapper::buildSQLFormat($v);
        }


        return $aSQLData;
    }

    public function deleteProjectOfUserId($projectId, $usrId, $aProjectPageId = array()) {
        //$this->deleteAttributeXrefAndBodyAttributeByProjectIdAndAttId($projectId, $projectPageId);
        $this->deleteLayoutTemplateUserByProject($projectId);
        SGL::logMessage(null, PEAR_LOG_DEBUG);
    }
}
?>