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);
}
}
}
?>