File: //opt/cpanel/ea-php54/root/usr/share/pear/RVSeagullMod/modules/tryout/classes/SgOutput.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: Output.php,v 1.52 2006/04/18 04:20:39 apiruk Exp $
// +---------------------------------------------------------------------------+
/**
* Type you class description here ...
*
* @package sitebuilder
* @author Charnchai <charnchai@rvglobalsoft.com>
* @author Thiraphat <thiraphat@rvglobalsoft.com>
* @version $Revision: 1.52 $
* @since PHP 4.1
*/
class SitebuilderOutput
{
var $rvsUsrId;
//use $this->conf from Manager.php
function OnlineForm2($numField , $fieldData)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$title = $fieldData['title'];
$name = $fieldData['name'];
$type = $fieldData['type'];
$selopt = $fieldData['seloption'];
$aSelectType = array(
'textbox' => RvsLibs_String::translate('Text Box')
,"textarea" => RvsLibs_String::translate('Text Area')
,"checkbox" => RvsLibs_String::translate('Check Box')
,"radiobox" => RvsLibs_String::translate('Radio Button')
,"listbox" => RvsLibs_String::translate('List Box')
,"hidden" => RvsLibs_String::translate('Hidden Field')
);
$fieldTotal = '';
for ($i = 0; $i < $numField; $i++) {
$classId = ($i%2 == 0) ? 'odd' : 'even';
$disabled = ($type[$i] == 'radiobox' || $type[$i] == 'listbox') ? '' : 'disabled';
$numOpt[$i] = ($selopt[$i] == 0 ) ? '' : $selopt[$i];
$fieldTotal .= '<tr class="' . $classId . '">
<td><div align="center">
<input name="fieldtitle_' . $i . '" type="text" id="fieldtitle_' . $i . '" size="25" maxlength="100" class="width100px" value="' . $title[$i] . '">
</div></td>
<td><div align="center">
<input name="fieldname_' . $i . '" type="text" id="fieldname_' . $i . '" size="15" maxlength="30" class="width100px" onChange="textReplace(this.value,\'' . $i . '\');" value="' . $name[$i] . '">
</div></td>
<td><div align="center"> <font size="1" face="Tahoma">
<select name="fieldtype_' . $i . '" id="fieldtype_' . $i . '" style="width:100px;" onChange="chkListBox(this,\'' . $i . '\')">'
. SGL_Output::generateSelect($aSelectType, $type[$i]) .
'</select>
</font></div></td>
<td><div align="center"><font size="1" face="Tahoma">
<input name="seloption_' . $i . '" type="text" id="seloption_' . $i . '" size="10" maxlength="2" class="width30px" onChange="chkNum(this,\'' . $i . '\');" ' . $disabled . ' value = "' . $numOpt[$i] . '">
</font></div></td>
</tr>';
}
return $fieldTotal;
}
/**
* validate enable step v5
* @param $step
* @return unknown_type
*/
function isProjectSessionExists()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$projectSessId = SGL_Session::get('rvs_project_id');
//uikit เช็คแค่ $projectSessId
return ($projectSessId) ? true : false;
}
function makeScript($tagScript, $counter, $looper)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
switch ($tagScript)
{
case 'li' :
default:
$tagScript = 'li';
break;
}
if (!$looper) {
$looper = 0;
}
$returnVal = '';
if ($looper && ($looper % $counter == 0)) {
$returnVal = '</' . $tagScript . '><' . $tagScript . ' class="cloned">';
}
return $returnVal;
}
function isTemplateItemForderExists()
{
$projectId = SGL_Session::get('rvs_project_id');
$userId = RvsLibs_User::getUserId();
$res = DaoFactory::Project()->findProjectInfoDataByProjectId($projectId, 'getRow');
if (isset($res['template_item_id']) && !empty($res['template_item_id'])) {
return true;
}
return false;
}
function genhtmlEntityDecode($attrName, $attrValue)
{
$attrValue = html_entity_decode($attrValue);
return ''. $attrName .'= "' . $attrValue . '" ';
}
/**
* admin interface
* input aMenu name == $req->get(managerName)
*
* @param string $aMenu
* @return unknown
*/
function currentMenu($aMenu)
{
$req = SGL_Request::singleton();
$reqManagerName = $req->get('managerName');
$action = $req->get('action');
$current = ($reqManagerName == $aMenu) ? 'class="current"' : '';
if ($aMenu == 'admin' && $reqManagerName == 'admin') {
$current = ($action == '') ? 'class="current"': '';
} elseif ($aMenu == 'updatelicense' && $reqManagerName == 'admin') {
$current = ($action == 'licenseCycle') ? 'class="current"': '';
}
return $current;
}
function AdminMenu($aMenu)
{
$oSglMgr = SGL_Manager::singleton();
$this->conf = $oSglMgr->conf;
$usrStatus = RvsLibs_User::getUserStatus();
$aMenu = RvsLibs_String::strtolower($aMenu);
$current = $this->currentMenu($aMenu);
//@task (1) translate (2) getUsrStatus
$tranConfig = RvsLibs_String::translate('Configuration');
$tranResell = RvsLibs_String::translate('Reseller Control List');
$tranResellControl = RvsLibs_String::translate('Reseller Tran Control List');
if ($usrStatus == RVS_ROOT_USER_NAME && $aMenu == "adminconfig") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/adminconfig/" ' . $current . '>' . $tranConfig . '</a></li>';
} elseif ($usrStatus == RVS_ROOT_USER_NAME && $aMenu == "autoupdateconfig") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/autoupdateconfig" ' . $current . '>' . RvsLibs_String::translate('AutoUpdate Configuration') . '</a></li>';
} elseif ($usrStatus == RVS_ROOT_USER_NAME && $aMenu == "backupconfig") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/backupconfig" ' . $current . ' >' . RvsLibs_String::translate('Backup Configuration') . '</a></li>';
} elseif ((SGL_Output::isDirectAdminMode() === false) && $usrStatus == RVS_ROOT_USER_NAME && $aMenu == "rollbackversion") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/rollbackversion" ' . $current . ' >' . RvsLibs_String::translate('Rollback Version') . '</a></li>';
} elseif ($usrStatus == RVS_ROOT_USER_NAME && $aMenu == "updatelicense") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/admin/action/licenseCycle" ' . $current . ' >' . RvsLibs_String::translate('Upgrade License') . '</a></li>';
} elseif ((SGL_Output::isDirectAdminMode() === false) && $usrStatus == RVS_ROOT_USER_NAME && $aMenu == "adminupgradervs") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/adminupgradervs" ' . $current . ' >' . RvsLibs_String::translate('Upgrade RVSiteBuilder') . '</a></li>';
} elseif ($usrStatus == RVS_ROOT_USER_NAME && $aMenu == "adminrecoverprojectuserlist") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/adminrecoverprojectuserlist" ' . $current . ' >' . RvsLibs_String::translate('Recovering project user list') . '</a></li>';
} elseif ($usrStatus == RVS_ROOT_USER_NAME && $aMenu == "resellercontrollist") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/resellercontrollist/" ' . $current . '>' . $tranResell . '</a></li>';
} elseif ($usrStatus == RVS_ROOT_USER_NAME && $aMenu == "resellertrancontrol") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/resellertrancontrol/" ' . $current . '>' . $tranResellControl . '</a></li>';
} elseif ($usrStatus != RVS_ROOT_USER_NAME && $aMenu == "tryout") {
if (!( (RVS_USER_NAME == $this->conf['tryout']['tryoutRootAccount'] && !$this->conf['tryout']['enableTryoutModuleForRoot'])
|| (RVS_USER_NAME != $this->conf['tryout']['tryoutRootAccount'] && !$this->conf['tryout']['enableTryoutModuleForReseller'])
|| $this->isOldTryout() === false )) {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/tryout/" ' . $current . ' >' . RvsLibs_String::translate('Tryout Configuration') . '</a></li>';
}
} elseif ($usrStatus == RVS_ROOT_USER_NAME && $aMenu == "migrateserver") {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/migrationserver/" ' . $current . ' >' . RvsLibs_String::translate('Migrate Server') . '</a></li>';
} elseif ((SGL_Output::isDirectAdminMode() === false) && $usrStatus == RVS_ROOT_USER_NAME && $aMenu == "admincomponentusercontrol") {
$showMenu = ' <li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/admincomponentusercontrol/" ' . $current . ' >' . RvsLibs_String::translate('Manage Components') . '</a></li>';
} elseif ($aMenu == "admin") {
// default menu
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/admin/" ' . $current . ' >' . RvsLibs_String::translate('Home') . '</a></li>';
} elseif ($aMenu == "defaultsetting") {
//default menu
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/defaultsetting/" ' . $current . ' >' . RvsLibs_String::translate('Owner Configuration') . '</a></li>';
} elseif ($aMenu == "component") {
//default menu
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/component/" ' . $current . ' >' . RvsLibs_String::translate('Component') . '</a></li>';
} elseif ($aMenu == "usercontrollist") {
//default menu
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/usercontrollist/" ' . $current . ' >' . RvsLibs_String::translate('User Control List') . '</a></li>';
} elseif ($aMenu == "createbypowerbyicon") {
//default menu
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/createbypowerbyicon/" ' . $current . ' >' . RvsLibs_String::translate('Created by and Powered by icon') . '</a></li>';
} elseif ($aMenu == "translation") {
//default menu
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/translation/" ' . $current . ' >' . RvsLibs_String::translate('Translation') . '</a></li>';
} elseif ($aMenu == "adminactivityreport" && $usrStatus == RVS_ROOT_USER_NAME) {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/adminactivityreport/" ' . $current . ' >' . RvsLibs_String::translate('Activity Report') . '</a></li>';
} elseif ($usrStatus == RVS_ROOT_USER_NAME && $aMenu == "tryoutusercontrol") {
if (RvsLibs_License::isLicensePro() === true) {
$showMenu = '<li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilderpro/tryoutusercontrol/" ' . $current . ' >' . RvsLibs_String::translate('Tryout User Control List') . '</a></li>';
}
}
return $showMenu;
}
function isOldTryout()
{
// optimize :nipaporn
return (is_file(RvsLibs_File::buildPath(array(RVS_USER_HOME, '.rvsitebuilder', 'tryout_setting.ini.php'))))
? true
: false;
}
function englishValue($key , $currentModule)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$defaultLangFile = RvsLibs_File::buildPath(array(SGL_PATH, 'modules', $currentModule, 'lang', 'english-utf-8.php'));
require $defaultLangFile;
$aSourceLang = $words;
return $aSourceLang[$key];
}
// If click "HOME" Set INDEX_URL from my_constants.php link to user control panel
function getHomeUrl()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
// optimize :nipaporn
return INDEX_URL;
}
function getLogoutUrl()
{
//SGL::logMessage(null, PEAR_LOG_DEBUG);
// optimize :nipaporn
/*return (CPMODE == 'cpanel')
? '/logout'
: '/user/login/action/logout/';*/
/*
* CpHandle function getLogoutUrl:: nipaporn
*/
$oCp = CpHandle::factory();
if (SGL::isError($oCp) === true) {
SGL_Error::pop();
return false;
}
return $oCp->getLogoutUrl();
}
function translateJsMsg($key)
{
//SGL::logMessage(null, PEAR_LOG_DEBUG);
$traslated = RvsLibs_String::translate($key);
// optimize :nipaporn
return RvsLibs_String::jsAddSlashes($traslated);
}
function translateComponent($componentName,$isDialog = false)
{
if ($isDilog) {
$cName = RvsLibs_String::translate($componentName);
return $tran = RvsLibs_String::translate('Customize header and footer for') . ' ' . $cName;
} else {
$cName = RvsLibs_String::translate($componentName);
return $tran = RvsLibs_String::translate('Header and Footer for') . ' ' . $cName;
}
}
function jsAddSlashes($key)
{
return addslashes($key);
}
function jsStripslashes($key)
{
return stripslashes($key);
}
/**
* $option for validate unset button on WYSIWYG Editor in STEP 3 edit SideConfig
*/
function showWysiwygpro($textareaCode, $formName, $width = '100%', $height = '300', $option = '')
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
// return '<textarea cols="50" rows="4" name=" ' . $formName . '" id="' . $formName . '">' . $textareaCode . '</textarea><br><input name="Submit" value="Save" type="submit" class="bborder"/>';
/* include class Common */
include_once(SGL_MOD_DIR . '/sitebuilder/classes/Common.php');
include_once (WYSIWYG_ROOT_PATH . '/config.bridge.php');
include_once (WYSIWYG_ROOT_PATH . '/editor_class.php');
include_once (WYSIWYG_ROOT_PATH . '/editor_functions.php');
// New Object
$rvsUsrId = RvsLibs_User::getUserId();
$rvsOwnerUsrId = RvsLibs_User::getOwnerId();
// getProjectInfoData
$aProjectInfoData = RvsLibs_Project::getProjectInfo(PROJECT_ID, $rvsUsrId);
// get ComponentData
$aComponentData = RvsLibs_Component::getComponentData(null, $rvsOwnerUsrId);
$aCharsetData = RvsLibs_Charset::getCharsetData($aProjectInfoData->charset_id);
$projectPageId = PROJECT_PAGE_ID;
$projectId = PROJECT_ID;
// set rvurl for context menu edit count and online_form
$setRvUrl = '<script type="text/javascript"> <!--' . "\n" . "var rvurl = '" . SGL_BASE_URL . '/' . INDEX_PHPSU . "';" . "\n" . "//--> </script>" . "\n";
include_once(SGL_MOD_DIR . '/sitebuilder/classes/WysiwygEditorObject.php');
//----------------------------------------- START -------------------------------------
// select charset id step 1
// find chartset id in table rvs_charset
$aCharsetId = DaoFactory::Project()->findAllProjectsByProjectId($projectId, 'getrow');
$aCharsetData = DaoFactory::Charset()->findCharsetDataByCharsetId($aCharsetId['charset_id'], 'getrowobj');
$charset = $aCharsetData->charset_name . '-' . $aCharsetData->charset_value;
$editor->lang = RvsLibs_String::preg_replace('/[^a-z0-9\-_]/si', '', $charset);
//------------------------------------------ END --------------------------------------
$textareaCode = $setRvUrl . $editor->return_editor($width, $height);
return $textareaCode;
}
function TryoutAdminMenu()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$showMenu = '
<tr>
<td width="14"><img src="' . PUBLIC_IMG_URL . '/bullet01.jpg" alt="" width="14" height="20" /></td>
<td class="margin01"><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/tryout/" >' . RvsLibs_String::translate('Tryout Configuration') . '</a></td>
</tr>
<tr>
<td colspan="2" height="1" class="dot"></td>
</tr>
<tr>
<td colspan="2" height="1" class="linde04"></td>
</tr>
';
if (RvsLibs_License::isLicensePro()) {
return $showMenu;
}
}
/*
$aError['1']['wrongName ']
*/
function editCustomPageName($aError,$id)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$errorResult = '';
if ($aError)
foreach ($aError[$id] as $key=>$val) {
$errorResult .= '<div class="error" >' . $aError[$id][$key] . '</div>';
}
return $errorResult;
}
function importTemplateAdminMenu()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$req = SGL_Request::singleton();
$reqManagerName = $req->get('managerName');
$current = ($reqManagerName == "uploadtemplate") ? 'class="current"' : '';
$showMenu = ' <li><a href="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/uploadtemplate/parent/1" ' . $current . ' >' . SGL_Output::translate('Import Template') . '</a></li>';
// validate enable icon import template for admin
if ( RvsLibs_User::getUserStatus() != "user" ) {
return $showMenu;
}
}
function showHideAdminMenu()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
return (SGL_Session::get('RVS_STEPINFO_ADMIN') && SGL_Session::get('RVS_STEPINFO_ADMIN') == 1 ) ? 'display:none' : 'display:';
}
function showHideStepInfoBar()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$fileStepInfoStatus = RvsLibs_File::buildPath(array(RVS_USER_HOME, '.rvsitebuilder', 'hideTagWelcome.txt'));//hideStepInfo.txt';
if (file_exists($fileStepInfoStatus)) {
return 'display:none';
} else {
return;
}
}
//********************************************************************************
function showHelp($helpName,$subHelp)
{
$sitebuilderUrl = WEB_THEME_URL . '/' . INDEX_PHPSU . '/sitebuilder';
$tutorialsUrl = $sitebuilderUrl . '/help/category/' . $helpName;
return $tutorialsUrl;
}
function stepDescription($step, $type, $mode = null)
{
$req = SGL_Request::singleton();
$componentName = ($req->get('componentName')) ? $req->get('componentName') : 'Blog';
//modifiy stepname V5 $aStepName['step']['step_name'] = 'key lang step name';
//$aStepName['0']['Home'] = 'Home';
$aStepName['1']['Diy'] = 'STEP1: Template';
$aStepName['1']['Template'] = 'STEP1: Template';
$aStepName['1']['upload_template'] = 'STEP1: Template';
$aStepName['1']['Export Template'] = 'STEP1: Template';
$aStepName['2']['AdjustStyle'] = 'STEP2: Adjust Style';
$aStepName['3']['photo_album'] = 'Photo Album';
$aStepName['3']['guest_book'] = 'Guest Book';
$aStepName['3']['ComponentAndUserFramework'] = 'ComponentAndUserFramework';
$aStepName['3']['Blog'] = 'Blog';
$aStepName['3']['Newsletter'] = 'Newsletter';
$aStepName['3']['Faq'] = 'Faq';
$aStepName['3']['extras_pagetitle'] = 'STEP3: Content';
$aStepName['3']['extras_metatag'] = 'STEP3: Content';
$aStepName['3']['extras_pageeffect'] = 'STEP3: Content';
$aStepName['3']['extras_filename'] = 'STEP3: Content';
$aStepName['3']['wysiwyg'] = 'WYSIWYG';
$aStepName['3']['Content'] = 'STEP3: Content';
$aStepName['3']['Database Configuration'] = 'STEP3: Content';
$aStepName['3']['Create Tryout'] = 'Create Tryout';
$aStepName['3']['User Configuration'] = 'STEP3: Content';
$aStepName['3']['System Configuration'] = 'STEP3: Content';
$aStepName['3']['User'] = 'User';
return RvsLibs_String::translate($aStepName[$step][$mode]);
}
/**
* Generates a yes/no radio pair.
*
* @access public
* @param string $radioName name of radio element
* @param boolean $checked is checked
* @param string $noDisplay display no word
* @param string $yesDisplay display yes word
* @param boolean $returnType 0 = string html 1 = array html
* @return string html yes/no radio pair
*/
function generateRadioPair($radioName, $checked, $noDisplay = 'no', $yesDisplay = 'yes', $returnType = '0')
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
if ($returnType) {
$radioString = array();
} else {
$radioString = '';
}
if ($checked) {
$yesChecked = ' checked';
$noChecked = '';
} else {
$yesChecked = '';
$noChecked = ' checked';
}
if ($returnType) {
$radioString[0] = "<label for='$radioName" . "_label1'><input type='radio' id='$radioName" . "_label1' name='$radioName' value='0' $noChecked >" . SGL_String::translate($noDisplay) . "</label>";
$radioString[1] = "<label for='$radioName" . "_label2'><input type='radio' id='$radioName" . "_label2' name='$radioName' value='1' $yesChecked >" . SGL_String::translate($yesDisplay) . "</label>";
} else {
$radioString .= "<label for='$radioName" . "_label1'><input type='radio' id='$radioName" . "_label1' name='$radioName' value='0' $noChecked >" . SGL_String::translate($noDisplay) . "</label>";
$radioString .= "<label for='$radioName" . "_label2'><input type='radio' id='$radioName" . "_label2' name='$radioName' value='1' $yesChecked >" . SGL_String::translate($yesDisplay) . "</label>";
}
return $radioString;
}
function defaultRadioNavigatorName($navIdDefault, $navId)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
if ($navIdDefault == $navId) {
return 'checked';
} else {
return '';
}
}
public static function generateSelectedValues($aValues, $selected = null, $multiple = false, $options = null)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
if (!is_array($aValues) || (isset($options) && !is_array($options))) {
SGL::raiseError('Incorrect param passed to ' . __CLASS__ . '::' . __FUNCTION__, SGL_ERROR_INVALIDARGS);
}
if (is_numeric($selected)) {
$selected = (int) $selected;
}
$optionsString = '';
if (isset($options)) {
foreach ($options as $k => $v) {
$optionsString .= ' ' . $v . '="' . $v . '"';
}
}
$r = '';
if ($multiple && is_array($selected)) {
foreach ($aValues as $k => $v) {
$isSelected = in_array($v, $selected) ? ' selected="selected"' : '';
$r .= "\n<option value=\"$v\"" . $isSelected . $optionsString . ">$v</option>";
}
} else {
// ensure $selected is not the default null arg, allowing
// zeros to be selected array elements
$r = '';
foreach ($aValues as $k => $v) {
$isSelected = ($v === $selected && !is_null($selected)) ? ' selected="selected"' : '';
$r .= "\n<option value=\"$v\"" . $isSelected . $optionsString . ">$v</option>";
}
}
return $r;
}
function getLogoBrand()
{
$oSglMgr = SGL_Manager::singleton();
if (isset($oSglMgr->conf['Admin']['Owner']['enableLogoBrand']) && $oSglMgr->conf['Admin']['Owner']['enableLogoBrand'] != 1) {
return "";
}
$ownerLogoPath = $oSglMgr->conf['Admin']['Owner']['logo-path'];
$ownerLogoURL = $oSglMgr->conf['Admin']['Owner']['logo-url'];
$logoFileName = RvsLibs_String::trim($oSglMgr->conf['Admin']['Owner']['LogoBrand']);
$pathOwner = realPath(RvsLibs_File::buildPath(array($ownerLogoPath, $logoFileName)));
if (is_file($pathOwner)) {
$code = '<img src="' . $ownerLogoURL . "/" . $logoFileName . '" alt="" style="height:30px;" />';
} else {
$code = '<img src="' . PUBLIC_IMG_URL . "/" . $logoFileName . '" alt="" style="height:30px;" />';
}
if (RVS_OWNER_USER_NAME != "admin" && !$oSglMgr->conf['Admin']['Owner']['LogoBrand'] ) {
$code = SitebuilderOutput::getLogoBrandDefaultReseller();
}
return $code;
}
function getLogoBrandDefaultReseller()
{
$oSglMgr = SGL_Manager::singleton();
if (isset($oSglMgr->conf['Admin']['DefaultReseller']['enableLogoBrand']) && $oSglMgr->conf['Admin']['DefaultReseller']['enableLogoBrand'] != 1) {
return "";
}
$resellerLogoPath = $oSglMgr->conf['Admin']['DefaultReseller']['logo-path'];
$resellerLogoURL = $oSglMgr->conf['Admin']['DefaultReseller']['logo-url'];
$logoFileName = RvsLibs_String::trim($oSglMgr->conf['Admin']['DefaultReseller']['LogoBrand']);
$pathReseller = realPath(RvsLibs_File::buildPath(array($resellerLogoPath, $logoFileName)));
if (is_file($pathReseller)) {
$code = '<img src="' . $resellerLogoURL . "/" . $logoFileName . '" alt="" style="height:30px;" />';
} else {
$code = '<img src="' . PUBLIC_IMG_URL . "/" . $logoFileName . '" alt="" style="height:30px;" />';
}
return $code;
}
function getTextBrand()
{
$oSglMgr = SGL_Manager::singleton();
$this->conf = $oSglMgr->conf;
$text = $this->conf['Admin']['Owner']['TextBrand'];
if ( RVS_OWNER_USER_NAME != RVS_ROOT_USER_NAME && !$this->conf['Admin']['Owner']['TextBrand']) {
$text = $this->conf['Admin']['DefaultReseller']['TextBrand'];
}
return $text;
}
function charsetInfo($info)
{
$charset = $_SESSION['aPrefs']['language'];
$aDoubleByte = array("shift_jis", "euc-kr", "ucs-2", "zh-big5", "zh-gb2312" );
$charsetInfo['charset'] = $charset;
$charsetInfo['doble-byte'] = (in_array($charset, $aDoubleByte)) ? true: false;
return $charsetInfo[$info];
}
function jsOparator($opt = '')
{
switch (RvsLibs_String::strtolower($opt)) {
case 'and':
echo '&&';
break;
case 'or':
echo '||';
case '{':
echo '{';
break;
case '}':
echo '}';
break;
default:
break;
}
}
function openimagelibrary($name)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
/* use open File browser wysiwyg anywhere
1 call {this.plugin(#openimagelibrary#,#openBrowser#):h}
2 modelibrary = now wysiwyg have 4 library 'image' , 'document' , 'media' , 'link'
2 call function openBrowser.openImageLibrary('modelibrary','parent.replaceImageDiyBanner(url)') return url
*/
return '<iframe name="' . $name . '" src="' . SGL_BASE_URL . '/' . INDEX_PHPSU . '/sitebuilder/Wysiwyg/action/viewLibrary/" style="visibility:hidden;width:0px;height:0px; border:0;"></iframe>';
}
function getSitebuilderFooter()
{
// optimize :nipaporn
return '<!-- RVSiteBuilder ' . RvsLibs_String::strtoupper(RvsLibs_License::getSitebuilderLicense()) . ' Version ' . RvsLibs_String::trim(RvsLibs_License::getSitebuilderVersion()) . ' -->';
}
function getMoveDefault($aDefault, $layerId, $position)
{
return (isset($aDefault['Layer'. $layerId][$position]) && $aDefault['Layer'. $layerId][$position])
? $aDefault['Layer'. $layerId][$position] : 0 ;
}
function getPriorityDefault($priority, $p, $layeryId=null)
{
if ($layeryId == null) {
//case LOGO Company slogan
return (isset($priority) && $priority)? $priority : $p ;
} else {
//case custom
return (isset($priority['Layer'. $layeryId]['priority']) && $priority['Layer'. $layeryId]['priority'])
? $priority['Layer'. $layeryId]['priority'] : '0';
}
}
function getNavigatorTypeName($aNavType,$key)
{
return (isset($aNavType[$key]) && $aNavType[$key]) ? $aNavType[$key] : '';
}
function getRVSLicense()
{
$license = RvsLibs_String::strtoupper(RvsLibs_License::getSitebuilderLicense());
if (RvsLibs_String::strtolower($license) === 'unknown') {
$license = RvsLibs_String::ucfirst(RvsLibs_String::strtolower($license));
}
return $license;
}
function isLicensePro()
{
return (RvsLibs_License::isLicensePro()) ? true : false;
}
function getRVSVersion()
{
// Output Version
$version = RvsLibs_String::trim(RvsLibs_License::getSitebuilderVersion());
if ($version === 'unknown') {
$version = RvsLibs_String::ucfirst(RvsLibs_String::strtolower($version));
}
$version = ' ' . $version;
return $version;
}
/**
* drag mouse at footer to see
*
* @return unknown
*/
function getRVSProjectId()
{
//font color refer style.php class .footerversion
$projectId = SGL_Session::get('rvs_project_id');
$phpVersion = ' PHP: ' . @phpversion();
$text = RvsLibs_String::sprintf('<font color="#3b3e45"> PROJECT ID: %s %s %s</font>', $projectId, $phpVersion);
return ($projectId) ? $text : '';
}
/**
* isQuotaUser
* @param int $quota = Quota percent EX want validat this quota more than 90% show error
* @return string javascript
*/
function isQuotaUser($quota)
{
$pathCp = RvsLibs_Util::getPathQuotaUser();
$code = <<< EOF
<script type="text/javascript">
//<![CDATA[
jQuery.sitebuilder.sitebuilder.getQuotaUser('%s','rvDisplayError','%s' ,'%s');
//]]>
</script>
EOF;
$text = RvsLibs_String::jsAddSlashes(RvsLibs_String::translate('your space not enough'));
return ($pathCp != '')
? RvsLibs_String::sprintf($code, $pathCp, $text, $quota)
: '';
}
/**
* check for print </tr>
*
* /// comment /////////////////////////////////////////////////////////
* Is be relations function isCountTd
* /// comment /////////////////////////////////////////////////////////
* /// siwakorn //////////////////////////////////////////////////////////
*
* @param <number> $column
* @param <array> $all
* @param <string> $modCheck ------------- td / colspan
* @return true / false
*/
function isCountTd($column = 3,$all)
{
if ($GLOBALS['_SGL']['RVS']['countTd']['countTd'] == '') {
$GLOBALS['_SGL']['RVS']['countTd']['countTd'] = 1;
}
$countTd = $GLOBALS['_SGL']['RVS']['countTd']['countTd']++;
if ($column == $countTd) {
$GLOBALS['_SGL']['RVS']['countTd']['countTd'] = 1;
$GLOBALS['_SGL']['RVS']['countTd']['countAll'] = 0;
return true;
} else {
$GLOBALS['_SGL']['RVS']['countTd']['countAll']++;
return false;
}
}
function countProject($aProject)
{
// optimize :nipaporn
return (count($aProject)) ? true : false;
}
/**
* Check colspan and return num colspan or set default data globals
*
* /// comment //////////////////////////////////////////////////////
* Is be relations function isCountTd
* require function isCountTd for set count globals data
* /// comment //////////////////////////////////////////////////////
* /// siwakorn ///////////////////////////////////////////////////////
*
* @global <array> $GLOBALS[_SGL][RVS][countTd]
* @param <number> $column
* @param <string> $mode : unset / false
* @return false / $colspan number
*/
function isCheckColspan($column = 3, $mode = false)
{
$colspan = $GLOBALS['_SGL']['RVS']['countTd']['colspan'];
$countAll = $GLOBALS['_SGL']['RVS']['countTd']['countAll'];
if ($countAll != 0) {
$colspan = $column - $countAll;
} else {
$GLOBALS['_SGL']['RVS']['countTd']['colspan'] = '';
}
if ($mode == 'unset') {
$GLOBALS['_SGL']['RVS']['countTd']['colspan'] = '';
$GLOBALS['_SGL']['RVS']['countTd']['countTd'] = '';
$GLOBALS['_SGL']['RVS']['countTd']['countAll'] = '';
return false;
} else {
return $colspan;
}
}
function isUserEnableLog()
{
return (defined('RVS_VIEW_LOG_FLAG') && is_file(RVS_VIEW_LOG_FLAG))
? true
: false;
}
// ===== logmessage Last line 1500 =======
function getUserLogMessage()
{
$filename = (self::isUserEnableLog() === true)
? RVS_USER_HOME . '/.rvsitebuilder/' . SGL_Config::get('log.name')
: SGL_LOG_DIR . '/php_log.txt';
$line = (is_file($filename))
? RvsLibs_File::file($filename)
: '';
if ($line == '' || SGL::isError($line) === true) {
return '';
}
$logmess = '';
$numST = sizeof($line) - 1500;
//optimize:pharadol
for ($j = $numST, $max = sizeof($line); $j < $max; $j++) {
$logmess .= $line[$j];
}
return $logmess;
}
/**
* for debug nocp
* @return unknown_type
*/
function getReportSql()
{
if (defined('RVS_VIEW_LOG_FLAG') && is_file(RVS_VIEW_LOG_FLAG)
&& RvsLibs_Util::validateTrue(SGL_Config::get('debug.production')) === false
&& RvsLibs_Util::validateTrue(SGL_Output::isDirectAdminMode()) === false) {
echo "<b>log enable = " . SGL_Config::get('log.enabled') . "</b>";
echo "<br><b>debug production = " . SGL_Config::get('debug.production') . "</b>";
// report 1.
echo '<pre>Execution Time ' . SGL_Output::getExecutionTime() . " milliseconds \n"
. SGL_Output::getMemoryUsage() . ' memory usage</pre>';
echo "<pre><h2>ตามลำดับ:</h2>" . "\n";
print_r($GLOBALS['all_the_queries']);
echo '</pre>';
// report 2.
echo "<pre><h2>ตามเวลาจาก มาก ไป น้อย</h2>" . "\n";
arsort($GLOBALS['all_the_queries']);
print_r($GLOBALS['all_the_queries']);
echo '</pre>';
// report 3.
$sum = 0;
foreach ($GLOBALS['all_the_queries'] AS $t) {
$sum += $t;
}
echo '<pre>';
echo 'Total number of queries: ' . $GLOBALS['global_query_counter'] . "\n";
echo 'Total time spend querying: ' . $sum;
echo '</pre>';
// report 4.
$distinct = array();
foreach ($GLOBALS['all_the_queries'] AS $q => $t) {
$parts = explode(' - ', $q);
unset($parts[0]);
$sql = implode(' - ', $parts);
@$distinct[$sql]++;
}
echo "<pre>How many duplications:" . "\n";
arsort($distinct);
print_r($distinct);
echo '</pre>';
}
}
function countArray($aData)
{
return count($aData);
}
function CustomMetatag($aCustomMatatagProjectPage, $projectPageId)
{
return (isset($aCustomMatatagProjectPage[$projectPageId]))
? true
: false;
}
function chkMetaTypeAndMetaName($metaTypeInfo,$metaNameInfo,$aMetaPage)
{
foreach($aMetaPage as $k=>$v){
if (($v->metatag_type == $metaTypeInfo) && ($v->metatag_name==$metaNameInfo)) return false;
}
return true;
}
function generateEnableViewLogOption($name)
{
$isEnable = (defined('RVS_VIEW_LOG_FLAG') && is_file(RVS_VIEW_LOG_FLAG)) ? true : false;
return SGL_Output::generateRadioPair($name, $isEnable);
}
function generatePriorityViewlogSelect()
{
$aLogLevels = array();
require_once SGL_DAT_DIR . '/ary.logLevels.php';
return SGL_Output::generateSelect($aLogLevels, SGL_Config::get('log.priority'));
}
function checkStatusUserName($username)
{
$oCp = CpHandle::factory();
if(SGL::isError($oCp) === true) {
SGL_Error::pop();
return false;
}
// optimize :nipaporn
return (isset($username) && $oCp->isAdmin($username))
? true
: false;
}
function changProductId($productId)
{
$a = RvsLibs_String::dbeExplode('-',$productId);
if (isset($a[0]) && RvsLibs_String::strlen($a[0]) == 32) {
$a1 = RvsLibs_String::translate('custom_id');
} else {
$a1 = $a[0];
}
$final = $a1 . '-' . $a[1];
return $final;
}
function checkUserName($customCategoryUser, $userId, $customCategoryName)
{
// optimize :nipaporn
return ($customCategoryUser == $userId)
? $customCategoryName
: '';
}
function isSpecialCharater($str)
{
// optimize :nipaporn
return (@RvsLibs_String::preg_match('/(\/|\\\|[?&%#~:\^\<\>\[\]()\*\+\@\"\'\`\,\|!;{}$]+)/i', $str))
? true
: false;
}
function trTemplate($template)
{
if ($template == 'email_registration_activation' || $template == 'email_forgot' || $template == 'email_registration_admin'
|| $template == 'login' || $template == 'authPage' || $template == 'prefUserEdit') {
return '<tr>';
}
return '<tr>';
}
function isComponantAndUserFramework($component)
{
// optimize :nipaporn
return ($component == 'ComponentAndUserFramework')
? true
: false;
}
function getPageType($pageType)
{
// optimize :nipaporn
return ($pageType == 'Trydemoonline')
? true
: false;
}
function setDiySprite($start, $dest, $style)
{
$sprite = '';
$styleSprite = '';
$subFileConf = '';
$property = '';
$previewAs = '';
$class = '';
$attrTagId = '';
$attrTagIdBack = '';
$attrType = '';
$startIntSubFileConf = 0;
if ($style == 'navigator') {
$styleSprite = 'Sprite_navcolor_diy navcolor_diy';
$property = '';
$previewAs = 'navigator';
$subFileConf = 'navcolor';
$class = 'diy-navigator-sprite';
$attrTagId = 'id_navigator_diy_';
$attrTagIdBack = 'id_navigator_diy_';
$attrType = 'navColor';
} if ($style == 'navigatorCase1') {
$styleSprite = 'Sprite_navcolor_diy navcolor_diy';
$property = '';
$previewAs = 'navigator';
$subFileConf = 'navcolor';
$class = 'diy-navigator-sprite';
$attrTagId = 'id_navigator_diy_';
$attrTagIdBack = 'id_navigator_diy_';
$attrType = 'navColor';
$startIntSubFileConf = 436;
} if ($style == 'navigatorCase2') {
$styleSprite = 'Sprite_navcolor_diy navcolor_diy';
$property = '';
$previewAs = 'navigator';
$subFileConf = 'navcolor';
$class = 'diy-navigator-sprite';
$attrTagId = 'id_navigator_diy_';
$attrTagIdBack = 'id_navigator_diy_';
$attrType = 'navColor';
$startIntSubFileConf = -1;
} elseif ($style == 'navigatorStyle') {
$styleSprite = 'Sprite_navcolor_diy navcolor_diy';
$property = '';
$previewAs = 'navigator';
$subFileConf = 'navgradient';
$class = 'diy-navigator-style-sprite';
$attrTagId = 'id_navigator_style_diy_';
$attrTagIdBack = 'id_navigator_style_diy_';
$attrType = 'navStyle';
$startIntSubFileConf = -207;
} else if ($style == 'navigatorStyleCase1') {
$styleSprite = 'Sprite_navcolor_diy navcolor_diy';
$property = '';
$previewAs = 'navigator';
$subFileConf = 'navgradient';
$class = 'diy-navigator-style-sprite';
$attrTagId = 'id_navigator_style_diy_';
$attrTagIdBack = 'id_navigator_style_diy_';
//$attrType = 'navStyle';
$attrType = 'navImage';
$startIntSubFileConf = -207;
} else if ($style == 'navigatorStyleCase2') {
$styleSprite = 'Sprite_navcolor_diy navcolor_diy';
$property = '';
$previewAs = 'navigator';
$subFileConf = 'navgradient';
$class = 'diy-navigator-style-sprite';
$attrTagId = 'id_navigator_style_diy_';
$attrTagIdBack = 'id_navigator_style_diy_';
//$attrType = 'navStyle';
$attrType = 'navImage';
$startIntSubFileConf = -227;
} elseif ($style == 'websitebg') {
$styleSprite = 'Sprite_bg_diy_wb bg_wb_diy';
$property = '';
$previewAs = 'websitebg';
$subFileConf = 'bgColor';
$class = 'diy-websitebg-sprite';
$attrTagId = 'id_bg_wb_diy_';
$attrTagIdBack = 'id_bg_wb_diy_';
$attrType = 'bgColor';
$startIntSubFileConf = 110;
} elseif ($style == 'websitebgimggra') {
$styleSprite = 'Sprite_gd_background gd_background_diy';
$property = '';
$previewAs = 'websitebg';
$subFileConf = 'bgGDImages';
$class = 'diy-websitebgimg-gradient-sprite';
$attrTagId = 'id_websitebgimage_gradient_diy_';
$attrTagIdBack = 'id_websitebgimage_gradient_diy_';
$attrType = 'bgGradient';
} elseif ($style == 'websitebgimg') {
$styleSprite = 'Sprite_gd_background gd_background_diy';
$property = '';
$previewAs = 'websitebg';
$subFileConf = 'bgImages';
$class = 'diy-websitebgimg-sprite';
$attrTagId = 'id_websitebgimage_diy_';
$attrTagIdBack = 'id_websitebgimage_diy_';
$attrType = 'bgImg';
$startIntSubFileConf = -40;
}/*else if ($style == 'websitebgimg') {
$styleSprite = 'Sprite_gd_background gd_background_diy';
$property = '';
$previewAs = 'websitebg';
$subFileConf = 'bgImages';
$class = 'diy-websitebgimg-sprite';
$attrTagId = 'id_websitebgimage_diy_';
$attrTagIdBack = 'id_websitebgimage_diy_';
$attrType = 'bgImg';
} else if ($style == 'websitebgimggra') {
$styleSprite = 'Sprite_gd_background gd_background_diy';
$property = '';
$previewAs = 'websitebg';
$subFileConf = 'bgGDImages';
$class = 'diy-websitebgimg-gradient-sprite';
$attrTagId = 'id_websitebgimage_gradient_diy_';
$attrTagIdBack = 'id_websitebgimage_gradient_diy_';
$attrType = 'bgGradient';
$startIntSubFileConf = -49;
}*/ elseif ($style == 'headercolor') {
$styleSprite = 'SpriteDiy_header_color header_color_diy';
$property = '';
$previewAs = 'header';
$subFileConf = 'header';
$class = 'diy-headercolor-sprite';
$attrTagId = 'id_header_body_diy_';
$attrTagIdBack = 'id_header_body_diy_';
$attrType = 'hdColor';
} elseif ($style == 'headercolorCase1') {
$styleSprite = 'SpriteDiy_header_color header_color_diy';
$property = '';
$previewAs = 'header';
$subFileConf = 'header';
$class = 'diy-headercolor-sprite';
$attrTagId = 'id_header_body_diy_';
$attrTagIdBack = 'id_header_body_diy_';
$attrType = 'hdColor';
$startIntSubFileConf = 436;
} elseif ($style == 'headercolorCase2') {
$styleSprite = 'SpriteDiy_header_color header_color_diy';
$property = '';
$previewAs = 'header';
$subFileConf = 'header';
$class = 'diy-headercolor-sprite';
$attrTagId = 'id_header_body_diy_';
$attrTagIdBack = 'id_header_body_diy_';
$attrType = 'hdColor';
$startIntSubFileConf = -1;
} elseif ($style == 'headergradient') {
$styleSprite = 'SpriteDiyBgImage header_gradient_diy';
$property = '';
$previewAs = 'header';
$subFileConf = 'headerGradient';
$class = 'diy-headergradient-sprite';
$attrTagId = 'id_header_gradient_diy_';
$attrTagIdBack = 'id_header_gradient_diy_';
$attrType = 'hdImg';
} elseif ($style == 'bodycolorCase1') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 190;
} elseif ($style == 'bodycolorCase2') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 148;
} elseif ($style == 'bodycolorCase3') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 106;
} elseif ($style == 'bodycolorCase4') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 106;
} elseif ($style == 'bodycolorCase5') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 134;
} elseif ($style == 'bodycolorCase6') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 134;
} elseif ($style == 'bodycolorCase7') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 96;
} elseif ($style == 'bodycolorCase8') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 71;
} elseif ($style == 'bodycolorCase9') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 71;
} elseif ($style == 'bodycolorCase10') {
$styleSprite = 'SpriteDiyBodyColor body_color_diy';
$property = '';
$previewAs = 'bodycolor';
$subFileConf = 'bodyColor';
$class = 'diy-bodycolor-sprite';
$attrTagId = 'id_body_color_diy_';
$attrTagIdBack = 'id_body_color_diy_';
$attrType = 'bodyColor';
$startIntSubFileConf = 79;
}
for ($i = $start; $i <= $dest; $i++) {
if ($i < 10) {
$sprite .= '<div class="' . $class . '"
id="' . $attrTagId . '0' . $i . '"
attrTagId="' . $attrTagId . '0'. $i . '"
attrDiyNo="' . $i . '"
attrType="' . $attrType . '"
attrSubFileConf="' . $subFileConf . ($i + $startIntSubFileConf) . '.ini.php' . '"
attrProperty="' . $property . '"
attrPreViewAs="' . $previewAs . '">
<a href="javascript:void(0);">
<span class="' . $styleSprite . '_0' . $i . '" ></span>
</a>
</div>';
} else {
$attrTagId = (($i + $startIntSubFileConf) < 10) ? $attrTagIdBack . '0' : $attrTagIdBack;
$sprite .= '<div class="' . $class . '"
id="' . $attrTagId . ($i + $startIntSubFileConf) . '"
attrTagId="' . $attrTagId . ($i + $startIntSubFileConf) . '"
attrDiyNo="' . ($i + $startIntSubFileConf) . '"
attrType="' . $attrType . '"
attrSubFileConf="' . $subFileConf . ($i + $startIntSubFileConf) . '.ini.php' . '"
attrProperty="' . $property . '"
attrPreViewAs="' . $previewAs . '">
<a href="javascript:void(0);">
<span class="' . $styleSprite . '_' . $i . '" ></span>
</a>
</div>';
}
}
return $sprite;
}
function isopenLi($number = 25)
{
if ($GLOBALS['_SGL']['RVS']['open']['li'] == '') {
$GLOBALS['_SGL']['RVS']['open']['li'] = 1;
}
$countTd = $GLOBALS['_SGL']['RVS']['open']['li']++;
if ($countTd == 1) {
return true;
}
if ($number == $countTd) {
$GLOBALS['_SGL']['RVS']['open']['li'] = 1;
}
}
function iscloseLi($number = 25)
{
if ($GLOBALS['_SGL']['RVS']['close']['li'] == '') {
$GLOBALS['_SGL']['RVS']['close']['li'] = 1;
}
$countTd = $GLOBALS['_SGL']['RVS']['close']['li']++;
if ($number == $countTd) {
$GLOBALS['_SGL']['RVS']['close']['li'] = 1;
return true;
}
}
function isdivopen($number = 25)
{
if ($GLOBALS['_SGL']['RVS']['div']['div'] == '') {
$GLOBALS['_SGL']['RVS']['div']['div'] = 1;
}
$countTd = $GLOBALS['_SGL']['RVS']['div']['div']++;
if ($countTd == 1) {
return true;
}
if ($number == $countTd) {
$GLOBALS['_SGL']['RVS']['div']['div'] = 1;
}
}
function isdivClose($number = 25)
{
if ($GLOBALS['_SGL']['RVS']['divClose']['divClose'] == '') {
$GLOBALS['_SGL']['RVS']['divClose']['divClose'] = 1;
}
$countTd = $GLOBALS['_SGL']['RVS']['divClose']['divClose']++;
if ($number == $countTd) {
$GLOBALS['_SGL']['RVS']['divClose']['divClose'] = 1;
return true;
}
}
/**
* ถ้ามี form มากกว่า 1 ให้มีจำนวนเลขต่อท้าย
* @param $design
* @param $aData
* @return unknown_type
*/
function listFormOnline($design,$aData)
{
$listData = '';
$name = array();
$nameFrom = array(
'Blank Form'=>'Blank Form',
'Contact Us'=>'Contact Us',
'Satisfaction Survey'=>'Satisfaction Survey',
'Job Application'=>'Job Application',
'Suggest Website'=>'Suggest Website',
'Membership Registration'=>'Membership Registration',
'Party RSVP'=>'Party RSVP',
'Wedding Attendance'=>'Wedding Attendance',
'Reservation'=>'Reservation',
'Time Sheet'=>'Time Sheet',
'Submit Product'=>'Submit Product',
'Bug Tracker'=>'Bug Tracker',
);
foreach($aData as $k=>$v) {
$Id = str_replace('Form ', '', $v->title);
if (preg_match('/Form/',$v->title)) {
$nameForm1 = $nameFrom[$Id];
} else {
$nameForm1 = $v->title;
}
$name[$nameForm1][] = $nameForm1;
$id = ($v->rvs_onlineform_id) ? $v->rvs_onlineform_id:$v->id;
$pName = DaoFactory::OnlineForm()->findPageNameByPageData($id);
$title = ($v->title && $v->title != '') ? $nameForm1 : 'Form ID ' . $id;
$count = count($name[$nameForm1]);
$count = ($count != 1) ? $count : '';
$title = $title . ' ' . $count;
$height = ($v->height)? $v->height:600;
//ตัด form name ออก
$page = (count($pName)) ? "In Page: " . join(',',array_keys($pName)) : '';
$listData .= RvsLibs_String::sprintf($design, $id, $id, $height, $title) . $page;
}
return $listData;
}
function setJqueryEvent($formID, $project_page_id)
{
return 'jQuery.sitebuilder.extras_Pagetitle.editPageTitle("#' . $formID . '","' . $project_page_id .'");';
}
function getBuyAccountUrl()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$url = false;
$showUrl = false;
$username = (isset($_COOKIE['tryoutUsername']))? $_COOKIE['tryoutUsername'] : null;
/*CpHandle :: nipaporn*/
$oCp = CpHandle::factory();
if(SGL::isError($oCp) === true) {
SGL_Error::pop();
return false;
}
//if (CPMODE == 'tryout') {
if ($oCp->isValidBuyAccountUrl()=== true) {
$fileTryoutConfig = RvsLibs_File::buildPath(array(dirname(SGL_WEB_ROOT), 'tryout_config.ini.php'));
$aConfig = (is_file($fileTryoutConfig))? RvsLibs_Config::parse_ini_file($fileTryoutConfig, true) : array();
$aConfig['program_path'] = (isset($aConfig['program_path']))? $aConfig['program_path'] : null;
$a = $aConfig['program_path'] . '/../.rvsPublish.ini.php';
$b = (is_file($a))? RvsLibs_Config::parse_ini_file($a, true): array();
$projectId = (isset($b['project_id']))? $b['project_id'] : '';
$fileSettting = RvsLibs_File::buildPath(array($aConfig['home_user'], '.rvsitebuilder', 'projects', $projectId, 'scripts', 'Tryout', 'setting.ini.php'));
if (is_file($fileSettting) === false) {
$aConfigSetting['showBuyAccount'] = true;
} else {
$aConfigSetting = RvsLibs_Config::parse_ini_file($fileSettting, true);
}
//check billing_url
$showUrl = (count($aConfig) && isset($aConfig['billing_url']) && $aConfig['billing_url'] !='')? true : false;
//check ค่า config file setting.ini.php ค่า showBuyAccount
$showUrl = (isset($aConfigSetting['showBuyAccount']) && $aConfigSetting['showBuyAccount'])? true : false;
//ยังมีปัญหากับ tryout เก่า
$fileSgConf = RvsLibs_File::buildPath(
array($aConfig['home_user'], '.rvsitebuilder', 'websitepublish', $projectId, 'var',$projectId. '.conf.php')
);
if ($showUrl === true && is_file($fileSgConf)) {
$c = SGL_Config::singleton();
$aIpConfig = $c->load($fileSgConf);
require_once SGL_MOD_DIR . '/sitebuilder/classes/WebDao/ComponentAndUserFrameworkDao.php';
require_once SGL_MOD_DIR . '/sitebuilder/classes/DaoWebFactory.php';
//connect db seagull
//หา database seagull ที่ /public_html/.rvsitebuilder/websitepublish/653d395b4cecbadfd13541f59888ec5b/var/{preojectId}.conf.php
$dbh = &ComponentAndUserFrameworkDao::_getDb($fileSgConf);
$aUserData = DaoWebFactory::ComponentUserFramework()->findAllUserDataByUserName($username, $aIpConfig['table']['user'], $fileSgConf);
$url = $this->billingUrlTryoutByAccount($fileTryoutConfig, $aUserData);
$url = ($aUserData['usr_id'] == '999999999')? false : $url;
}
}
return $url;
}
function billingUrlTryoutByAccount($fileTryoutConfig, $aUserInfo)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$billingUrl = false;
$aMapField = array('billing_username' => 'username' ,
'billing_firstname' => 'first_name' ,
'billing_lastname' => 'last_name' ,
'billing_address1' => 'addr_1' ,
'billing_address2' => 'addr_2' ,
'billing_address3' => 'addr_3' ,
'billing_city' => 'city' ,
'billing_country_state_province' => 'region' ,
'billing_zipcode' => 'post_code' ,
'billing_country' => 'country' ,
'billing_contact' => 'email' ,
'billing_telephone' => 'telephone' ,
'billing_mobile' => 'mobile' ,
);
$aCountries = SGL::loadRegionList('countries');
$aStates = SGL::loadRegionList('states');
$aUserInfo['country'] = (isset($aUserInfo['country']) && isset($aCountries[$aUserInfo['country']]))
? $aCountries[$aUserInfo['country']] : '';
$aUserInfo['region'] = (isset($aUserInfo['region']) && isset($aStates[$aUserInfo['region']]))
? $aStates[$aUserInfo['region']] : '';
$aTryoutConfig = parse_ini_file($fileTryoutConfig, true);
// Generate Billing Url
if (!empty($aTryoutConfig['billing_url'])) {
$billingUrl = $aTryoutConfig['billing_url'];
$getData = '';
// generate $getData
foreach ($aTryoutConfig as $key=>$value) {
preg_match('/billing_/', $key, $matches, PREG_OFFSET_CAPTURE);
$infoKey = (isset($aMapField[$key])) ? $aMapField[$key] : false;
if ($infoKey) {
// invalid, because $aUserInfo[0]->$infoKey becomes $aUserInfo[0]->""
$info = (isset($aUserInfo[$infoKey])) ? $aUserInfo[$infoKey] : false;
}
if (isset($aTryoutConfig['field_' . $key]) && $aTryoutConfig['field_' . $key] == true && $aTryoutConfig[$key] != '' && $info != '') {
if ($getData != '') {
$getData .= '&';
}
$getData .= $aTryoutConfig[$key] . '=' . $info;
}
}
// return $billingUrl + $getData
if ($getData != '') {
$billingUrl = $billingUrl . '?' . $getData;
} else {
// remove end '/' (slash)
if (preg_match("/\/$/", $billingUrl, $match)) {
$billingUrl = substr($billingUrl , 0 , (strlen($billingUrl) - 1));
}
}
}
return $billingUrl;
}
//nocp = /user/login/action/backToTryout/
//tryout =/backToTryout
//cpanel = /user/login/action/backToTryout/
function getUrlBackToTryout()
{
/*if (CPMODE == 'tryout') {
// optimize :nipaporn
return (CPMODE == 'cpanel')
? '/backToTryout'
: '/user/login/action/backToTryout/';
} else {
return false;
}*/
/*
* CpHandle function getLogoutUrl:: nipaporn
* */
$oCp = CpHandle::factory();
if (SGL::isError($oCp) === true) {
SGL_Error::pop();
return false;
}
if (SGL_Output::isADmin() === false && $oCp->isTryout() === true) {
return $oCp->getUrlBackToTryout();
}
}
function showUserMenu($aGroupComponent)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$str ='';
include_once SGL_LIB_PEAR_DIR . '/HTML/Template/Flexy.php';
$fileFlexy = 'showUserMenu.html';
$output->flexyHandle = new HTML_Template_Flexy();
$output->flexyHandle->compile($fileFlexy);
foreach($aGroupComponent as $key => $value) {
$output->component_name = $value['component_name'];
$output->component_id = $value['component_id'];
$output->displayMenuName = $value['menu_name'];
$output->menu = $value['menu'];
$output->pageData = $value['pageData'];
$str .= $output->flexyHandle->bufferedOutputObject($output);
}
return $str;
}
function makeTreeView($aAlbumData, $galleryId, $albumId=null, $parentPath='')
{
SGL::logMessage('makeTreeView==1', PEAR_LOG_DEBUG);
include_once SGL_LIB_PEAR_DIR . '/HTML/Template/Flexy.php';
$fileFlexy = 'treeView.html';
$output = new SGL_Output();
$output->flexyHandle = new HTML_Template_Flexy();
$output->flexyHandle->compile($fileFlexy);
$output->galleryId = $galleryId;
$output->albumId = $albumId;
$codeHtml ='';
$this->_makeTree($output, $codeHtml, $aAlbumData, $parentPath);
return $codeHtml;
}
function _makeTree($output, &$codeHtml, $aAlbumData, &$parentPath, $folderId=null, $parentId=null)
{
SGL::logMessage('makeTreeView==4', PEAR_LOG_DEBUG);
$i = 1;
$maxOrder = count(array_keys($aAlbumData));
foreach ($aAlbumData as $key => $val) {
if (isset($val['folder-name'])) {
if (RvsLibs_String::preg_match('/album_/', $key)) {
$output->albumId = $key;
}
$output->isNotAlbumFolder = ($key == $output->albumId) ? false : true;
$output->folderName = $val['folder-name'];
$output->folderId = $key;
$output->totalImage = $val['total-img'];
$output->folderDesc = $val['folder-desc'];
$output->haveImage = ($val['total-img'] > 0) ? true : false;
$output->parentPath = $parentPath;
$output->maxOrder = $maxOrder;
$output->order = $i;//(array_search($key, $val['order'])) +1;
$output->disableMoveUpButton = $output->order == 1
? 'true'
: 'false';
$output->disableMoveDownButton = ($output->order == $output->maxOrder)? 'true':'false';
$output->parentId = $parentId;
$output->images = RvsLibs_String::translate('images');
$folderName = $output->isNotAlbumFolder ? $val['folder-name'] : $key;
$folderPath = RvsLibs_File::buildPath(array($parentPath, $folderName));
$output->folderPath = $folderPath;
$codeHtml .= '<ul id="folder_'. $key . '">';
if ($output->isNotAlbumFolder === false) {
$codeHtml .= '<li id="li_folder_' . $key . '" class="open">';
} else {
$codeHtml .= '<li id="li_folder_' . $key . '">';
}
$codeHtml .= $output->flexyHandle->bufferedOutputObject($output);
if (is_array($val['sub-folder']) && count($val['sub-folder']) > 0) {
$this->_makeTree($output, $codeHtml, $val['sub-folder'], $folderPath, $key, 'folder_'. $key);
}
$codeHtml .= '</li>';
$codeHtml .= '</ul>';
$i++;
}
}
}
/**
* make select tree
* @param $aAlbumData = array();
* @param $galleryId
* @param $albumId
* @param $current current folder name
* @param $className class for add event when select folder
* @return HTML code
*
* for edit css
* class 'pulgin-show-input-box'
* class 'pulgin-show-tree-view'
*/
function makeSelectionTreeView($name, $aAlbumData, $galleryId, $albumId=null, $current=null, $className='selectiontree')
{
SGL::logMessage('makeTreeView==1', PEAR_LOG_DEBUG);
include_once SGL_LIB_PEAR_DIR . '/HTML/Template/Flexy.php';
$fileFlexy = 'selectionTreeView.html';
$output->flexyHandle = new HTML_Template_Flexy();
$output->flexyHandle->compile($fileFlexy);
$output->galleryId = $galleryId;
$output->albumId = $albumId;
$output->name = $name;
$selectAlbum = RvsLibs_String::translate('Select album');
if (is_null($current) === true) {
$current = $selectAlbum;
}
$output->className = $className;
//$codeHtml = '<input type="text" style="width:200px" id="sinput-' . $name . '" name="input-' . $name . '" value="' . $current . '" onclick="jQuery(\'#show-tree-' . $name . '\').show();">';
$codeHtml = '<div><dl class="editdropdown">
<dt style="width:260px; margin:2px;">
<a href="javascript:void(0);"
id="input-' . $name . '"
class="compoLink"
onclick="this.focus();jQuery(\'#show-tree-' . $name . '\').show();"
onblur="setTimeout(function(){jQuery(\'#show-tree-' . $name . '\').hide()},250); "
>
<span>' . $current . '</span></a>
</dt>
</dl></div> ';
$codeHtml .= '<input type="hidden" name="cerrent-path" value="' . $current . '">';
$codeHtml .= '<div class="treeview" id="show-tree-' . $name . '" style="height:200px;overflow-y: scroll; overflow-x:hidden; z-index:1; position: absolute;display: none;background-color: #ffffff;width:260px; margin:0 2px;">';
SGL::logMessage('makeTreeView==2', PEAR_LOG_DEBUG);
$this->_makeTree($output, $codeHtml, $aAlbumData, $parentPath='');
SGL::logMessage('makeTreeView==3', PEAR_LOG_DEBUG);
$codeHtml .= '</div>';
return $codeHtml;
}
/**
* make MultipleSelectBox
* @param $setIdBox = string (set id for script js and add event onload Mgr ajax)
* @param $galleryId
* @param $aSortDirsList = array();
* @param $projectId
* @param $currentVal = default value
* @param $isShowList = bool(true : not show click slide up,down, false : show click slide up,down)
* @return HTML code
*/
function makeMultipleSelectBox($setIdBox, $galleryId, $aSortDirsList ,$projectId,$currentVal, $isShowList = false)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
include_once (SGL_MOD_DIR . '/sitebuilderpro/classes/AjaxClass/rvsPhotoGalleryAjaxMgr.php');
$oGalleryMgr = new rvsPhotoGalleryAjaxMgr();
$isShow = (isset($isShowList) && $isShowList === true) ? '' : ' display:none ; ';
$idSelectBox = (isset($setIdBox) && $setIdBox != '') ? $setIdBox : 'controlDropDown';
$idul = (isset($setIdBox) && $setIdBox != '') ? 'MultipleSelectBox_'.$idSelectBox : 'MultipleSelectBox_DropDown';
$currentVal = (isset($currentVal) && $currentVal != '') ? $currentVal : 'List Album.';
$codeHtml = <<<EOF
<input type="text" id="{$idSelectBox}"value="{$currentVal}" />
<div class='treeview'>
<ul id="{$idul}" style="position: absolute; background:#ffffff; {$isShow}">
EOF;
$nameList = '';
$classCurrent = true;
$setMax = -1;
$setMargin = 0;
$folderPath="";
$albumId="";
foreach ($aSortDirsList as $key => $dirName) {
$folderPath = RvsLibs_String::preg_replace('/(.*?)(album_(\w){32})/i',"",$dirName);
$aExplode = array();
$aExplode = RvsLibs_String::dbeExplode("/", $dirName);
$dirName = end($aExplode);
// === Level 1 Album ===
if (count($aExplode)>0) {
if (RvsLibs_String::preg_match('/(album_(\w){32})/i', $dirName,$aAlbumId)) {
$albumId = (isset($aAlbumId[0]) && $aAlbumId[0] != '') ? $aAlbumId[0] : '' ;
$fileGallery = RvsLibs_File::buildPath(array(REAL_PROJECT_PATH, $projectId, $galleryId, 'gallery.dat'));
$aGalleryData = $oGalleryMgr->_loadGalleryData($fileGallery);
if (isset($aGalleryData[$dirName]['album-name'])) {
$nameList = $aGalleryData[$dirName]['album-name'];
} else {
$nameList = $dirName;
}
if ($classCurrent) {
$codeHtml .= <<<EOF
<li class="selected setvalue" albumId="{$albumId}" folderPath="{$folderPath}">{$nameList}</li>
EOF;
$setMax = -1;
$setMargin = 0;
$classCurrent = false;
} else {
$codeHtml .= <<<EOF
<li class="setvalue" albumId="{$albumId}" folderPath="{$folderPath}">{$nameList}</li>
EOF;
$setMax = -1;
$setMargin = 0;
}
///TODO builder hidden
// === Level 2 Folder ====
} else {
///TODO builder hidden
$nameList = $dirName;
//$folderPath .= $dirName.'/';
if (count($aExplode)>$setMax) {
$setMargin += 30;
$setMax = count($aExplode);
} else if (count($aExplode)<$setMax) {
$setMargin -= 30;
$setMax = count($aExplode);
}
$codeHtml .= <<<EOF
<li class="setvalue" style="margin: 0 {$setMargin}px;" albumId="{$albumId}" folderPath="{$folderPath}">{$nameList}</li>
EOF;
}
}
}
$codeHtml .= '</ul><div>';
return $codeHtml;
}
/**
* make MultipleSelectBox2
* @param $setIdBox = string (set id for script js and add event onload Mgr ajax)
* @param $galleryId
* @param $aSortDirsList = array();
* @param $projectId
* @param $currentVal = default value
* @param $isShowList = bool(true : not show click slide up,down, false : show click slide up,down)
* @return HTML code
*/
function makeMultipleSelectBox2($setIdBox, $galleryId, $aSortDirsList ,$projectId,$currentVal, $isShowList = false)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
include_once (SGL_MOD_DIR . '/sitebuilderpro/classes/AjaxClass/rvsPhotoGalleryAjaxMgr.php');
$oGalleryMgr = new rvsPhotoGalleryAjaxMgr();
$setTagLi = false;
$setTagUi = false;
$max = -1;
$countDirs = count($aSortDirsList);
$countTagUi = 0;
$countLoop = 0;
$idSelectBox = (isset($setIdBox) && $setIdBox != '') ? $setIdBox : 'controlDropDown';
$idSideControl = (isset($setIdBox) && $setIdBox != '') ? 'sideControl_' . $idSelectBox : 'sidetreecontrol';
$idul = (isset($setIdBox) && $setIdBox != '') ? 'MultipleSelectBox_'.$idSelectBox : 'MultipleSelectBox_DropDown';
$isShow = (isset($isShowList) && $isShowList === true) ? '' : ' display:none ; ';
$collapse = RvsLibs_String::translate('Collapse All');
$expand = RvsLibs_String::translate('Expand All');
$current = RvsLibs_String::translate('Current folder');
$current = "<b>" . $current . "</b>";
$imgUrl = PUBLIC_IMG_URL;
//<input type="text" id="{$idSelectBox}" value="{$currentVal}" type="hidden" />
if ($isShowList === true) {
$classInput='';
$codeShowSelectBoxList = <<<EOF
{$current}: <span id="{$idSelectBox}"></span>
EOF;
} else {
$classInput='editdropdown';
$codeShowSelectBoxList = <<<EOF
<a href="javascript:void(0);" id="{$idSelectBox}">
<input type="text" id="{$idSelectBox}" value="{$currentVal}" type="hidden" />
</a>
EOF;
}
$codeHtml2 = <<<EOF
<div>
<dl class="{$classInput}">
<dt style="width:220px">
{$codeShowSelectBoxList}
</dt>
</dt>
</div>
<div id="{$idSideControl}">
<a href="?#"><img src="{$imgUrl}/Collapse-all.gif" alt="" width="11" height="11" border="0" align="absmiddle" /> {$collapse}</a> <a href="?#"><img src="{$imgUrl}/Expand.gif" alt="" width="11" height="11" border="0" align="absmiddle" /> {$expand}</a></div>
<ul id="{$idul}" style="position: absolute;background:#ffffff; z-index:100; {$isShow}">
EOF;
/*
<dl class="editdropdown" >
<dt>
<a href="javascript:void(0);" id="currentFont" ><span>{projectNameCurrent:h}</span></a>
</dt>
<dd>
<ul>
{foreach:aProject,projectId,projectName}
<li><a href="javascript:void(0);" class="Projectedit" id="{projectId}"><span>{projectName}</span></a></li>
{end:}
</ul>
</dd>
</dl> */
foreach ($aSortDirsList as $key => $dirName) {
$folderPath = RvsLibs_String::preg_replace('/(.*?)(album_(\w){32})/i',"",$dirName);
$aExplode = array();
$aExplode = RvsLibs_String::dbeExplode("/", $dirName);
$length = count($aExplode);
$dirName = end($aExplode);
if ($length > 0) {
$countLoop++;
if (RvsLibs_String::preg_match('/(album_(\w){32})/i', $dirName, $aAlbumId)){
$albumId = (isset($aAlbumId[0]) && $aAlbumId[0] != '') ? $aAlbumId[0] : '' ;
}
$fileGallery = RvsLibs_File::buildPath(array(REAL_PROJECT_PATH, $projectId, $galleryId, 'gallery.dat'));
$aGalleryData = $oGalleryMgr->_loadGalleryData($fileGallery);
if (isset($aGalleryData[$dirName]['album-name'])) {
$nameList = $aGalleryData[$dirName]['album-name'];
} else {
$nameList = $dirName;
}
if ($countLoop == 1) {
$setTagLi = true;
$max = $length;
$codeHtml2 .= '<li ><span class="setvaluef last" albumId="' . $albumId . '" folderPath="' . $folderPath . '">' . $nameList . '</span>';
} else {
if ($length > $max) {
$countTagUi++;
$max = $length;
$codeHtml2 .= '<ul><li ><span class="setvaluef last"albumId="' . $albumId . '" folderPath="' . $folderPath . '">' . $nameList. '</span>';
if ($countLoop == $length) {
$setTagUi = true;
}
} else if ($length == $max) {
$max = $length;
$codeHtml2 .= '</li><li ><span class="setvaluef last" albumId="' . $albumId . '" folderPath="' . $folderPath . '">' . $nameList. '</span>';
if ($countLoop == $length) {
$setTagUi = true;
}
} else if ($length < $max) {
$loop = $max - $length;
$max = $length;
for ($j = 0; $j < $loop; $j++) {
//echo ' loop ' . $j . '<br>';
$countTagUi--;
$codeHtml2 .= '</li></ul>';
}
$codeHtml2 .= '<li ><span class="setvaluef last" albumId="' . $albumId . '" folderPath="' . $folderPath . '">' . $nameList. '</span>';
if ($countLoop == $length) {
$setTagUi = true;
}
}
}
}
}
if ($setTagUi === true) {
for ($i = 0; $i < $countTagUi; $i++) {
echo '</li></ul>';
}
}
if ($setTagLi === true) {
$codeHtml2 .= '</li>';
}
$codeHtml2 .= '</ul>';
return $codeHtml2;
}
function isThumbsImage($galleryPath,$currentFolderPath,$imgName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$imagePathThumbs = RvsLibs_File::buildPath(array($galleryPath, $currentFolderPath, 'thumbs', $imgName));
// optimize :nipaporn
return (file_exists($imagePathThumbs) === true)
? true
: false;
}
function isImageOrg($galleryPath, $currentFolderPath, $imgName)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$imagePathOrg = RvsLibs_File::buildPath(array($galleryPath, $currentFolderPath, 'images_org', $imgName));
return (file_exists($imagePathOrg) === true)
? true
: false;
}
function isNotPhotoGallery($moduleName=null)
{
return (strtolower($moduleName) != 'photogallery') ? true : false;
}
function isPhotoAlbumDeprecated($component)
{
if (strtolower($component) == 'photo_album') {
echo '(' . RvsLibs_String::translate('deprecated') . ')';
}
}
function isUserAndSystem($componentName)
{
if(isset($componentName) && $componentName == 'ComponentAndUserFramework') {
return true;
}
return false;
}
function isTranslationCompo($componentName)
{
$url = SGL_Output::makeUrl("","ComponentUserAndSystem","sitebuilder");
$cName = strtolower($componentName);
if ($cName == 'newsletter' || $cName == 'photogallery'){
echo RvsLibs_String::translate('description db based component display example images'
, 'vprintf'
, array('UrlAdmin' => $url)
);
} else {
$projectId = SGL_Session::get('rvs_project_id');
$urllogin = RvsLibs_Publish::getUrlBlogLogin($projectId);
echo RvsLibs_String::translate('description db based component'
, 'vprintf'
, array('urllogin' => $urllogin
, 'UrlAdmin' => $url)
);
}
}
function getUsername()
{
return RVS_USER_NAME;
}
function chkUserAgent()
{
if (isset($_SERVER["HTTP_USER_AGENT"])) {
return false;
} elseif (SGL_Output::isDirectAdminMode() && SGL_Session::get('HTTP_USER_AGENT') == '') {
return true;
} else {
return false;
}
}
function getMsgReseller()
{
if (SGL_Output::isDirectAdminMode() === false) {
return RvsLibs_String::translate('reseller session warning');
}
}
function getEditMaxFileSizInfo()
{
if (SGL_Output::isDirectAdminMode() === true) {
return RvsLibs_String::translate('edit value post data directadmin');
} else {
return RvsLibs_String::translate('edit value post data');
}
}
/**
* check owner allow backup project
* @return boolean
*/
function isAllowExport()
{
return RvsLibs_Util::validateTrue(
RvsLibs_Config::getOwnerConf('AllowExportProject')
);
}
/**
* check owner allow Import project
* @return boolean
*/
function isAllowImport()
{
return RvsLibs_Util::validateTrue(
RvsLibs_Config::getOwnerConf('AllowImportProject')
);
}
/******list font family::: list font stadard + custom font by project ::: tag list dl dt li ***********
* $valDef : string(set value default)
* $nameClass : string('dropdown');// class used in style.php มีผล ว่าห้ามซ้ำกันใน page เดียวกัน
* $idTarget : string('customFLFontFamily') // id เป็น text box ที่ต้องการเก็บค่า
* : for set (id=> tag dl id="dl_{idTarget}")
* @author : darawan 27/09/54
***********************************************************/
function genFontList($valDef, $idTarget)
{
$aFont = DaoFactory::Font()->findAllFontOrderByFontName('getvalue');
$aFont = RvsLibs_String::str_replace("_", " ", $aFont);
// add default in listbox
$resListBox = '<li><div onclick="jQuery.sitebuilder.sitebuilder.selectListStyleFont(jQuery(this),\'' . $idTarget . '\')" attrStrFont="Default" attrKeyFont="0"><span style="font-family:Verdana;" ></span></div></li>' . "\n";
$fontNameDef = '';
foreach ($aFont as $k => $v) {
$aFont[$k] = RvsLibs_String::ucfirst($aFont[$k]);
if ($k == $valDef && $fontNameDef == '') $fontNameDef = $aFont[$k];
$resListBox .= '<li><div '
. 'attrStrFont="' . $aFont[$k] . '" '
. 'attrKeyFont="' . $k . '" '
. 'eTarget="' . $idTarget . '" '
. 'onclick="jQuery.sitebuilder.sitebuilder.selectListStyleFont(jQuery(this));">'
. '<span style="font-family:' . $aFont[$k] . ';" >' . $aFont[$k] . '</span>'
. '</div></li>' . "\n";
}
//=== font custom
$fileFontIni = RvsLibs_File::buildPath(
array(
RVS_USER_HOME
, '.rvsitebuilder'
, 'customfont'
,'fontname.ini.php'
)
);
if (is_file($fileFontIni)) {
//include file for load array
include $fileFontIni;
foreach ($aFontCustom as $k => $v) {
$aFontCustom[$k] = RvsLibs_String::ucfirst($aFontCustom[$k]);
if ($k == $valDef && $fontNameDef == '') $fontNameDef = $aFontCustom[$k];
$strFont = urlencode($aFontCustom[$k]);
$resListBox .= '<li><div '
. 'attrStrFont="' . $strFont . '" '
. 'attrKeyFont="' . $k . '" '
. 'eTarget="' . $idTarget . '" '
. 'onclick="jQuery.sitebuilder.sitebuilder.selectListStyleFont(jQuery(this));">'
. '<span style="font-family:' . RvsLibs_String::str_replace('"', '', $aFontCustom[$k]) . ';">' . $aFontCustom[$k] . '</span>'
. '</div></li>' . "\n";
}
}
$fontNameDef = ($fontNameDef != '') ? $fontNameDef : 'Verdana';
$startResListBox = '<dl id="dl_'.$idTarget.'" class="dropdown"><dt><div><span>' . $fontNameDef . '</span></div></dt><dd><ul>'. "\n";
return $startResListBox . $resListBox .= '</ul></dd></dl>';
}
/******list font family customroject
* @author : darawan 12/10/54
***********************************************************/
function genFontCustomList()
{
//=== font custom
$fileFontIni = RvsLibs_File::buildPath(array(RVS_USER_HOME, '.rvsitebuilder', 'customfont', 'fontname.ini.php'));
$listCustom = '';
if (is_file($fileFontIni)) {
//include file for load array
include $fileFontIni;
foreach ($aFontCustom as $k => $v) {
$fontName = RvsLibs_String::ucfirst($aFontCustom[$k]);
$listCustom .= <<<EOF
<span id="cutom_font_{$k}" keyDel="{$k}" class="delFont">
<table cellpadding="0" cellspacing="5" style="width:368px;float:left;">
<tr>
<td align="left" valign="top" width="50%" style="border-bottom:1px dashed #cccccc;"><span style="font-family:{$fontName};">{$fontName} </span></td>
<td align="left" valign="top" style="border-bottom:1px dashed #cccccc;"><span class="deleteFont" onclick="jQuery.sitebuilder.sitebuilder.deleteCustomFont(jQuery('#cutom_font_{$k}'))" title="delete"> </span></td>
</tr>
</table>
</span>
EOF;
}
}
return $listCustom;
}
/******list font size font ::: tag list dl dt li ***********
* $valDef : string(set value default)
* $aFontSize : array('10','12');
* $idTarget : string('customFLFontFamily') // id เป็น text box ที่ต้องการเก็บค่า
* : for set (id=> tag dl id="dl_{idTarget}")
* @author : darawan 27/09/54
***********************************************************/
function genFontSizeList($aFontSize, $valDef, $idTarget)
{
$valdef = '';
// add default in listbox
$resListBox = '<li><div onclick="jQuery.sitebuilder.sitebuilder.selectListStyleSize(jQuery(this));" val="0" eTarget="' . $idTarget . '">'
. '<span style="font-size:76%;" ></span></div></li>' . "\n";
foreach ($aFontSize as $v) {
if ($v == $valDef && $valDef == '') $valDef = $v;// find set default
$resListBox .= '<li><div onclick="jQuery.sitebuilder.sitebuilder.selectListStyleSize(jQuery(this));" val="'.$v.'px" eTarget="'.$idTarget.'">'
. '<span style="font-size:' . $v .'px;" >' . $v . 'px</span></div></li>' . "\n";
}
$valDef = ($valDef != '' && $valDef != '0') ? $valDef : '12px';
$startResListBox = '<dl id="dl_' . $idTarget . '" class="dropdown"><dt><div><span>' . $valDef . '</span></div></dt><dd><ul>'. "\n";;
return $startResListBox . $resListBox .= '</ul></dd></dl>';
}
function genBodyAttribute($aAttributeBody, $idTarget, $default = null)
{
foreach ($aAttributeBody as $v) {
$default = (isset($default) && $default) ? $default : $v;
$resListBox .='<li><div onclick="jQuery.sitebuilder.sitebuilder.selectListBodyAttribute(jQuery(this));" val="' . $v . '" eTarget="' . $idTarget . '">'
. '<span>' . $v . '</span></div></li>' . "\n";
}
$startResListBox = '<dl id="dl_' . $idTarget . '" class="dropdown"><dt><div>'
. '<span>' . $default . '</span></div></dt><dd><ul>' . "\n";
return $startResListBox . $resListBox .= '</ul></dd></dl>';
}
function getSelectPageOption($id)
{
$project_id = RvsLibs_Project::getProjectId();
$rvs_usr_id = RvsLibs_User::getUserId();
$aPagStructure = RvsLibs_Project::getPageStructureDataWithOutInternalPage($project_id, $rvs_usr_id);
$option = '<select id="' . $id . '" name="' . $id . '">';
foreach($aPagStructure as $val) {
$option .= '<option value="' . $val->project_page_id . '">' . htmlentities($val->page_name) . '</option>';
}
$option .= '</select>';
return $option;
//getAllPageStructureData
}
function checkLinkIdAndExterUrl($linkId, $projectPageId)
{
$exterUrl = DaoFactory::Link()->findLinkDataAndProjectPageData($linkId, $projectPageId, 'getassoc');
if ($linkId && $exterUrl[$projectPageId]->external_url) {
return true;
}
return false;
}
/**
* show external link
* @param $linkActive
* @param $rvsLinkId
* @param $projectPageId
* @param $urlWeb
* @param $thim
* @return unknown_type
* @other pharadol fix v5
*/
function showExternalLink($linkActive)
{
$display = 'display:';
if ($linkActive) {
$display="display:none";
}
return $display;
}
function isExternalLin($projectPageId, $aLink)
{
if (isset($aLink[$projectPageId])) {
if ($aLink[$projectPageId]->rvs_link_id
&& isset($aLink[$projectPageId]->external_url)
&& !empty($aLink[$projectPageId]->external_url))
{
return true;
}
}
return false;
}
function isComponentUseDb($iscompo)
{
if ($iscompo == true) {
return 'display:';
}
return "display:none";
}
function isInternalPage($aIsInternal)
{
if (count($aIsInternal)) {
return 'display:';
}
return "display:none";
}
function isNotComponentUseDb($iscompo)
{
if ($iscompo == true) {
return true;
}
return false;
}
/**
* show wysiwyg editor
* @param $showwysiwyg
* @param $linkActive
* @param $rvsLinkId
* @param $projectPageId
* @param $webThemeUrl
* @param $sglPathUrl
* @param $indexPhpsu
* @param $theme
* @return unknown_type
* @other pharadol fix v5
*/
function showwysiwyg($showwysiwyg, $linkActive, $rvsLinkId, $projectPageId, $webThemeUrl, $sglPathUrl, $indexPhpsu, $theme)
{
$data = '';
if ($showwysiwyg) {
if ($linkActive) {
$data = '<span id="wysiwyg_' . $projectPageId . '" style="display:none">';
} else {
if ($linkActive) {
$data .= '<span id="wysiwyg_' . $projectPageId . '">';
} else {
$data .= '<span id="wysiwyg_' . $projectPageId . '">';
}
}
$data .= '<a href="' . $sglPathUrl . '/' . $indexPhpsu .'/sitebuilder/wysiwyg/project_page_id/' . $projectPageId . '"
target ="windowsName' . $projectPageId . '"
onclick="return jQuery.sitebuilder.sitebuilder.switchNewWin(newwin' . $projectPageId . ');">
<img src="' . $webThemeUrl . '/themes/' . $theme . '/sitebuilder/images/i-edit.gif" width="52" height="20" alt="{translate(#Edit#)}" border="0">
</a></span>';
} else {
if ($linkActive) {
$data .= '<span id="wysiwyg_' . $projectPageId . '" style="display:none">';
} else {
if ($rvsLinkId) {
$data .= '<span id="wysiwyg_' . $projectPageId . '" style="display:none">';
} else {
$data .= '<span id="wysiwyg_' . $projectPageId . '">';
}
}
$data .= '<img src="' . $webThemeUrl . '/themes/' . $theme . '/sitebuilder/images/i-manage.gif" width="17" height="15" alt="{translate(#Manage#)}" border="0"></a></span>';
}
return $data;
}
/*
function test($showwysiwyg, $linkActive, $rvsLinkId, $projectPageId, $webThemeUrl, $sglPathUrl, $indexPhpsu, $theme,$home)
{
if ($rvsLinkId) {
$a = $this->showwysiwyg($showwysiwyg, $linkActive, $rvsLinkId, $projectPageId, $webThemeUrl, $sglPathUrl, $indexPhpsu, $theme);
} else {
$a = $this->showExternalLink($linkActive, $rvsLinkId, $projectPageId, $webThemeUrl, $theme, $home);
}
return $a;
}
*/
/**
* show month day year
* @param $lastModifier
* @return unknown_type
* @othor pharadol fix v5
*/
function getFormatTime($lastModifier)
{
$aMonth = array('1'=>'January'
,'2'=>'February'
,'3'=>'March'
,'4'=>'April'
,'5'=>'May'
,'6'=>'June'
,'7'=>'July'
,'8'=>'August'
,'9'=>'September'
,'10'=>'October'
,'11'=>'November'
,'12'=>'December'
);
if ($lastModifier) {
$date = strftime ("%b/%d/%Y",$lastModifier);
$aDate = explode('/',$date);
$dateM = $aDate[0] . ' ' . $aDate[1] . ' ' . $aDate[2];
} else {
$dateM = '....';
}
return $dateM;
}
function checkNewsleter($value)
{
if (preg_match('/@@Newsletter\^/', $value)) {
return true;
}
}
function mailSystemMenu($compoentName)
{
if ($compoentName == 'Newsletter') {
return true;
} else {
return false;
}
}
/**
* show page option
* @param $projectPageId
* @param $actLink
* @param $targetPic
* @param $pageName
* @return unknown_type
* @othor pharadol fix v5
*/
function pageOption($projectPageId, $actLink, $targetPic, $pageName, $isHomePage, $componentId='', $notShowClonePage=false, $value, $showwysiwyg, $lavel, $setDraft, $setMember = 0, $isShowHtmlEditor=true)
{
$isV5 = (SGL_Output::isV6Session() == false) ? true : false;
$page = ' ';
$htmlEditor = '';
$strClonePage = '';
$draft = '';
if (preg_match('/@@Newsletter\^/', $value)) {
return '';
}
if (!$isHomePage && count($lavel) <= 0) {
$disHome = '<option value="MoveToInternalPage">' . RvsLibs_String::translate('Move to internal page') . '</option>';
}
if ($showwysiwyg != '0' && $isShowHtmlEditor == true) {
$htmlEditor = '<option value="HtmlEditor">' . RvsLibs_String::translate('HTML Editor') . '</option>';
}
if ($notShowClonePage == false) {
$strClonePage = '<option value="clonePage">' . RvsLibs_String::translate('Clone Page') . '</option>';
}
if(!$isHomePage){
$disHome .= '<option value="setLinkTarget">' . RvsLibs_String::translate('Link and target') . '</option>';
}
//ถ้าเป็นหน้า home ไม่ให้ set draft
if (!$isHomePage && !$componentId) {
if ($setDraft == 1) {
$draft = '<option value="Draft" style="display:none">' . RvsLibs_String::translate('Set Draft') . '</option>';
$draft = '<option value="UnDraft">' . RvsLibs_String::translate('UnSet Draft') . '</option>';
} else {
$draft = '<option value="UnDraft" style="display:none">' . RvsLibs_String::translate('UnSet Draft') . '</option>';
$draft = '<option value="Draft">' . RvsLibs_String::translate('Set Draft') . '</option>';
}
} else {
$draft = '<option value="UnDraft" style="display:none">' . RvsLibs_String::translate('UnSet Draft') . '</option>';
$draft = '<option value="Draft" style="display:none">' . RvsLibs_String::translate('Set Draft') . '</option>';
}
$oCp = CpHandle::factory();
if (SGL::isError($oCp) === true) {
SGL_Error::pop();
return SGL::raiseError(RvsLibs_String::translate('CpWaring %MESSAGE', 'vprintf', array('MESSAGE' => $oCp->getMessage())));
}
$memberPage = '';
//isv5 show member page only
if ($oCp->isNotTryout() === true && $isV5 = true) {
if ($setMember == 1) {
$memberPage = '<option value="UnmemberPage">' . RvsLibs_String::translate('UnSet Member Page') . '</option>';
} else {
$memberPage = '<option value="memberPage">' . RvsLibs_String::translate('Set Member Page') . '</option>';
}
}
$page = '<form id="hid_' . $projectPageId . '" class="hid_select" name="jump_' . $projectPageId . '">
<select id ="pageOption_' . $projectPageId . '" rvsAct=" ' . $actLink . ' "class="pageOption widthoption" project_page_id ="' . $projectPageId . '" targetLink=" ' . $targetPic . ' " pagename ="' . $pageName . '" componentId="' . $componentId. '" isHomePage="' . $isHomePage . '" >
<option value="default">' . RvsLibs_String::translate('Select Page Option') . '</option>
' . $disHome . '
' . $strClonePage . '
' . $htmlEditor . '
<option value="setHomePage">' . RvsLibs_String::translate('Set Home Page') . '</option>
<option value="Rename">' . RvsLibs_String::translate('Rename') . '</option>
' . $draft . '
' . $memberPage . '
</select>
</form>';
return $page;
}
function pageOptionInternal($projectPageId, $actLink, $targetPic, $pageName, $rvsLinkId, $componentId='', $notShowClonePage=false, $showwysiwyg='',$setMember = 0, $isShowHtmlEditor=true)
{
$isV5 = (SGL_Output::isV6Session() == false) ? true : false;
$link = '';
$strClonePage = '';
$htmlEditor = '';
if ($notShowClonePage == false) {
$strClonePage = '<option value="clonePage">' . RvsLibs_String::translate('Clone Page') . '</option>';
}
if (!$componentId) {
$link = '<option value="setLinkTarget">' . RvsLibs_String::translate('Link and target') . '</option>';
}
if ($showwysiwyg != '0' && $isShowHtmlEditor == true) {
$htmlEditor = '<option value="HtmlEditor">' . RvsLibs_String::translate('HTML Editor') . '</option>';
}
$oCp = CpHandle::factory();
if (SGL::isError($oCp) === true) {
SGL_Error::pop();
return SGL::raiseError(RvsLibs_String::translate('CpWaring %MESSAGE', 'vprintf', array('MESSAGE' => $oCp->getMessage())));
}
$memberPage = '';
if ($oCp->isNotTryout() === true && $isV5 == true) {
if ($setMember == 1) {
$memberPage = '<option value="UnmemberPage">' . RvsLibs_String::translate('UnSet Member Page') . '</option>';
} else {
$memberPage = '<option value="memberPage">' . RvsLibs_String::translate('Set Member Page') . '</option>';
}
}
$page = '<select id ="pageOption_' . $projectPageId . '" rvsAct=" ' . $actLink . ' " class="pageOption widthoption" name="transfer_reason1" project_page_id ="' . $projectPageId . '" targetLink=" ' . $targetPic . ' " pagename ="' . $pageName . '" componentId="' . $componentId. '" isInternal="1" >
<option value="default">' . RvsLibs_String::translate('Select Page Option') . '</option>
<option value="MoveToMainPage">' . RvsLibs_String::translate('Move Main Page') . '</option>
' . $link . '
' . $strClonePage . '
' . $htmlEditor . '
' . $memberPage . '
<option value="Rename">' . RvsLibs_String::translate('Rename') . '</option>
</select>';
return $page;
}
function showLinkTarget($target, $linkActive, $projectPageId, $rvsLinkId, $pageName, $targetPic, $webThemeUrl, $theme)
{
$data = '';
if ($target) {
if ($linkActive) {
$data ='<span id="targetlink_' . $projectPageId . '" style="display:none">';
} else {
if ($rvsLinkId) {
$data .='<span id="targetlink_' . $projectPageId . '" style="display:none">';
} else {
$data .='<span id="targetlink_' . $projectPageId . '">';
}
}
$targetPic = ($targetPic != '') ? $targetPic : 'spacer.gif';
$data .='<a class = "jq_targetLink"
pagename = "' . $pageName . '"
project_page_id = "' . $projectPageId . '">
<img src="' . $webThemeUrl . '/themes/' . $theme . '/sitebuilder/images5/' . $targetPic . '" id="linkTarget_' . $projectPageId . '" width="1" height="1" style="cursor:pointer" border="0"></a>
</a>
</span>';
}
return $data;
}
function brToNewline($str, $newline = "<br />")
{
return RvsLibs_String::brToNewline($str, $newline);
}
function isShowDeletePage($link_active, $isHomePage, $projectPageId)
{
if (!$link_active && !$isHomePage) {
return '';
}
return 'display:none;';
}
function targetNewWindown($target)
{
if ($target == '_blank') {
return true;
}
return false;
}
function listUserDns()
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$aUserDnsAll = array();
$aUserDns = array();
$aUserDns = RvsLibs_User::getUserDNS(1);
if ($aUserDns) {
foreach ($aUserDns as $k=>$v) {
$www = 'www.' . $v;
$aUserDnsAll1[$www] = $www;
$aUserDnsAll2[$v] = $v;
}
asort($aUserDnsAll1);
asort($aUserDnsAll2);
return array_merge($aUserDnsAll1, $aUserDnsAll2);
}
}
/**
* make makeTreeViewPageStructure
* @param $aProjectPage = array list page
* @author darawan 01/11/11
* @return HTML code
*/
function makeTreeViewPageStructure($aProjectPage)
{
SGL::logMessage(null, PEAR_LOG_DEBUG);
$optMenu = '<img class="jq_mainpage" project_page_id="%s" rvs_link_id="%s" src="' . PUBLIC_IMG_URL . '/btnHideShortcut01.gif" width="10" height="10" title="' . RvsLibs_String::translate('Link active') .'" style="cursor:pointer" border="0" >';
$codeHtml = <<<EOF
<div class='treeview'>
<ul id="MultipleSelectBox_DropDown" style="background:#ffffff;">
EOF;
foreach ($aProjectPage as $k => $v) {
if ($this->checkNewsleter($v->value) === true) {
unset($v->page_name);
}
$iconMaster = ($v->subPage && $v->is_home != '1') ? sprintf($optMenu, $v->project_page_id, $v->link_active) : '';
$iconHome = ($v->is_home) ? ' <span class=" iconHome02" style="float:right;"></span>' : '';
$pageName = RvsLibs_String::brToNewline($v->page_name, "<br>") . $iconHome;
$codeHtml .= <<<EOF
<li class="selected setvalue" pageId="{$v->project_page_id}"parentId="0" isHome="{$v->is_home}"><span id="point_{$v->project_page_id}" class="mgrPage" style="float:left;">{$pageName}</span> <span class="iconMaster">{$iconMaster}</span>
EOF;
if(count($v->level1) > 0){
// level 1
$idx1 = 0;
$codeHtml.=<<<EOF
<ul style="background:#ffffff;">
EOF;
foreach ($v->level1 as $k1 => $v1) {
$iconMaster = ($v1->subPage && $v1->is_home != '1') ? sprintf($optMenu,$v1->project_page_id,$v1->link_active) : '';
$iconHome = ($v1->is_home) ? ' <span class=" iconHome02" style="float:right;"></span>' : '';
$pageName = RvsLibs_String::brToNewline($v1->page_name, "<br>") . $iconHome;
$codeHtml .= <<<EOF
<li class="last currentSelect"lv="1"idx="{$idx1}" pageId="{$v1->project_page_id}" parentId="{$v->project_page_id}"isHome="{$v1->is_home}"><span id="point_{$v1->project_page_id}" class="mgrPage" style="float:left;">{$pageName}</span> <span class="iconMaster">{$iconMaster}</span>
EOF;
$idx1++;
if(count($v1->level2) > 0){
$idx2 = 0;
$codeHtml.=<<<EOF
<ul style="background:#ffffff;">
EOF;
// level 2
foreach ($v1->level2 as $k2 => $v2) {
$iconMaster = ($v2->subPage && $v2->is_home != '1') ? sprintf($optMenu,$v2->project_page_id,$v2->link_active) : '';
$iconHome = ($v2->is_home) ? ' <span class=" iconHome02" style="float:right;"></span>' : '';
$pageName = RvsLibs_String::brToNewline($v2->page_name, "<br>") . $iconHome;
$codeHtml .= <<<EOF
<li class="last" idx="{$idx2}" pageId="{$v2->project_page_id}"parentId="{$v1->project_page_id}"isHome="{$v2->is_home}"><span id="point_{$v2->project_page_id}" class="mgrPage" style="float:left;">{$pageName}</span><span class="iconMaster">{$iconMaster}</span></li>
EOF;
$idx2++;
}
$codeHtml.=<<<EOF
</ul>
EOF;
}//close if
$codeHtml.=<<<EOF
</li>
EOF;
}
$codeHtml.=<<<EOF
</ul>
EOF;
}// cloise if
$codeHtml.=<<<EOF
</li>
EOF;
}
$codeHtml .= '</ul></div>';
return $codeHtml;
}
function isNonePageContent($aPage)
{
if (count($aPage) > 0) {
return true;
}
return false;
}
function currentStep($step,$stepNo)
{
if ($step == $stepNo) {
echo "navstep1_current";
} elseif ($step == $stepNo) {
echo "navstep1_current";
} elseif ($step == $stepNo) {
echo "navstep1_current";
} else {
echo "navstep1";
}
}
function currentStep2($step,$stepNo)
{
if ($step == $stepNo) {
echo "navstep2_current";
} elseif ($step == $stepNo) {
echo "navstep2_current";
} elseif ($step == $stepNo) {
echo "navstep2_current";
} else {
echo "navstep2";
}
}
function currentStep3($step,$stepNo)
{
if ($step == $stepNo) {
echo "navstep3_current";
} elseif ($step == $stepNo) {
echo "navstep3_current";
} elseif ($step == $stepNo) {
echo "navstep3_current";
} else {
echo "navstep3";
}
}
function currentStep0($step,$stepNo)
{
if ($step == $stepNo) {
echo "navstep0_current";
} elseif ($step == $stepNo) {
echo "navstep0_current";
} elseif ($step == $stepNo) {
echo "navste0_current";
} else {
echo "navste0";
}
}
/**
* validate current submenu by mode existing
* @param unknown_type $mode
* @param unknown_type $name
* @return unknown_type
*/
function currentSubStep($mode, $name)
{
//currentSubStep Step1 Template
$aMenu['Template'] = 'Template';
$aMenu['Export Template'] = 'exportandimport';
$aMenu['Diy'] = 'diytemplate';
$aMenu['upload_template'] = 'exportandimport';
//$input->mode = 'Export Template';
//currentSubStep Step3 Content
$aMenu['Content'] = 'pagecontent';
$aMenu['User Configuration'] = 'User Configuration';
$aMenu['System Configuration'] = 'System Configuration';
$aMenu['Database Configuration'] = 'System Configuration';
$aMenu['Faq'] = 'Faq';
$aMenu['Blog'] = 'Blog';
$aMenu['Newsletter'] = 'Newsletter';
$aMenu['photo_album'] = 'Photo Album';
$aMenu['guest_book'] = 'Guest Book';
$aMenu['extras_pagetitle'] = 'extra';
$aMenu['extras_filename'] = 'extra';
$aMenu['extras_pageeffect'] = 'extra';
$aMenu['extras_filename'] = 'extra';
$aMenu['extras_metatag'] = 'extra';
if (isset($aMenu[$mode]) && $aMenu[$mode] == $name) {
echo "tabheader_curr";
} else {
echo "";
}
}
function currentFontStyle($Fontstyle)
{
if (!empty($Fontstyle) && (strtoupper($Fontstyle) == 'B' || strtoupper($Fontstyle) == 'I' || strtoupper($Fontstyle) == 'U' || strtoupper($Fontstyle) == 'O')) {
return "border-left: #444444 solid 1px; border-top: #444444 solid 1px; border-right: #ffffff solid 1px; border-bottom: #ffffff solid 1px;";
}
return '';
}
function currentTranslation($currentComponentName)
{
if($currentComponentName == 'user'){
echo RvsLibs_String::translate('Translate user block login');
} else if ($currentComponentName == 'default'){
echo RvsLibs_String::translate('Translate website user and admin interface');
} else if ($currentComponentName == 'fckeditor'){
echo RvsLibs_String::translate('Translate login submission');
} else if ($currentComponentName == 'authweb'){
echo RvsLibs_String::translate('Translate reply email for registration user');
}else if ($currentComponentName == 'newsletter'){
echo RvsLibs_String::translate('Translate newsletter in your website');
}
}
function genNavigationList($aNav,$navigator_style,$aNavigator, $currentNav)
{
$res = "";
foreach ($aNavigator as $kAllNav => $vAllNav) {
$navList = '';
$current = '';
$navType = ($navigator_style != $kAllNav) ? "display:none;" : "display:;";
foreach ($vAllNav as $kNav => $vNav) {
$vNav = str_replace('Navigator', '', $vNav);
$getType = $this->getNavigatorTypeName($aNav,$kNav);
if ($currentNav == $kNav) {
$inputHidden = "<input name=\"AdjustStylNav\" id=\"nav_Adjust\" value=\"{$vNav}\" type=\"hidden\" navType=\"{$getType}\" navId=\"{$kNav}\">";
$showVal = (strlen($vNav) > 30) ? substr($vNav, 0, 30) : $vNav;
$current = "<div id=\"nav_{$kNav}\" navType=\"{$getType}\" navId=\"{$kNav}\">{$showVal}</div>";
}
$navList .= "<li><div class=\"AdjustStylNav\" id=\"nav_{$kNav}\" navType=\"{$getType}\" navId=\"{$kNav}\">{$vNav}</div></li>\n";
}
if (empty($current)) {
$showVal = (strlen($vNav) > 30) ? substr($vNav, 0, 30) : $vNav;
$current = "<dt><span><div>{$showVal}</div></span></dt>";
}
$current = "<dt><span>{$current}</span></dt>";
$res .= "<div id=\"navigatorStyle{$kAllNav}\" style=\" {$navType}\"><dl class=\"dropdown\">{$current}<dd class= \"diaplyoptionnav\"style=\"display:;\"><ul>{$navList}</ul></dd></dl></div>\n";
}
return $res."\n".$inputHidden;
}
/**
* Replace Navigator stylexx to navigator_stylexx
* @param unknown $name
*/
function getNavType($name)
{
echo preg_replace('/Navigator /', 'navigator_', $name);
}
/**
* Replace Navigator stylexx to stylexx
* @param unknown $name
*/
function getNavName($name)
{
echo preg_replace('/Navigator /', '', $name);
}
function validateLocalImg($isImg, $imgUrl)
{
if ($isImg && !preg_match('/rvs_library\//', $imgUrl)) {
return true;
}
return false;
}
/**
* case: admin disable all component STEP 3 hidden add page component
* case: isUikit disable add component
* @param unknown_type $normalCompo
* @param unknown_type $dbCompo
* @return unknown_type
*/
function allowAddPageComponent($normalCompo, $dbCompo, $isUikit = 0)
{
SGL::logMessage('isUikit::' . $isUikit, PEAR_LOG_DEBUG);
if (count($normalCompo) == 0
&& count($dbCompo) == 0
&& !SGL_Session::get('rvs_tryout')) {
return false;
} elseif ($isUikit == 1 || $isUikit == true) {
return false;
}
return true;
}
/**
* count validate more 8 project return display:none
*/
function countDisplayNone($count = 1, $max = 3)
{
if ($count >= $max) {
return 'display:none;';
}
}
function removetagGG($str){
return str_replace('{gg}','<', $str);
}
function genDisplayColorTone($aColorConf, $typeColorTone)
{
if ($typeColorTone == 'headercolor') {
$type = 'Head';
$fileName = 'header';
$headIni = 'header';
$keyIni = 'header';
$classColor = 'setColorHead';
} else if ($typeColorTone == 'navigatorcolor') {
$type = 'Nav';
$fileName = 'navColor';
$headIni = 'bgcolor';
$keyIni = 'color_bgn';
$classColor = 'setColorNav';
}
$option = '';
$aColorGroup = array('2-violet', '1-blue', '6-green', '5-yellow', '4-orange', '3-red', '7-black');
foreach ($aColorGroup as $ColorGroup) { //1-blue => Array
$genColor = '';
$buff = '';
foreach ($aColorConf[$ColorGroup] as $kNoFile => $vNoFile) { //(bodyColor)1(.ini.php) => Array
$genColor .= '<div class="' . $classColor . '" value="' . $fileName . $kNoFile . '" style="background-color:' . $vNoFile[$headIni][$keyIni] . '"></div>';
if ($kNoFile == 49 || $kNoFile == 25 || $kNoFile == 1) {
if ($ColorGroup == '3-red' || $ColorGroup == '5-yellow') {
$buff = '<div class="colorToneBox" value="' . $ColorGroup . '" >' . $genColor . '</div>' . $buff;
} else {
$buff = $buff . '<div class="colorToneBox" value="' . $ColorGroup . '" >' . $genColor . '</div>';
}
$genColor = '';
}
}
$option .= $buff;
}
echo $option . '<div class="colorToneLine"></div>';
}
function genBackgroundImage($aBackgroundImages, $customImageName, $urlProjectBGImg)
{
$urlImage = WEB_THEME_URL . '/rvs_library/background/';
$option = '<div id="listBackgroundImage" >
<img class="setBackgroundImage" src="' . $urlImage . 'no-image-01.jpg" bgimg="" bgpreview="" />';
if(!empty($customImageName)) {
$sBuff = '<img id="setCustomBackgroundImage" class="setBackgroundImage" src="%scustom_background/%s" bgimg="images/custom_background/%s" bgpreview="%scustom_background/%s" />';
$option .= sprintf($sBuff, $urlProjectBGImg, $customImageName, $customImageName, $urlProjectBGImg, $customImageName);
} else {
$option .= '<img id="setCustomBackgroundImage" class="setBackgroundImage" src="" bgimg="" bgpreview="" style="display:none;" />';
}
foreach ($aBackgroundImages as $kBackgroundImages => $vBackgroundImages) {
preg_match('/([\w-_]+).(\w+)$/', $vBackgroundImages, $matchBackgroundImages);
$sBuff = '<img class="setBackgroundImage" src="%spreview/%s_pre.%s" bgimg="images/background/%s" bgpreview="%s%s" />';
$option .= sprintf($sBuff, $urlImage, $matchBackgroundImages[1], $matchBackgroundImages[2], $vBackgroundImages, $urlImage, $vBackgroundImages);
}
echo $option . '</div>';
}
/**
* for build projectJsOn data to click more project
*
* @param unknown_type $projectJsOnUrl
* @return unknown_type
*/
function includeProjectJsOnUrl($projectJsOnUrl)
{
$code = <<< EOF
<script type="text/javascript" src="$projectJsOnUrl"></script>
EOF;
echo $code;
}
function isIncludeFileJson($fileName) {
$projectId = SGL_Session::get('rvs_project_id');
if ($fileName == 'freeImages.json'
&& is_file(WEB_THEME_PATH . '/js/rvsitebuilder/' . $fileName) == true) {
return true;
} elseif ( is_file(REAL_PROJECT_PATH .'/'. $projectId . '/json/' . $fileName) == true) {
return true;
}
return false;
}
function isDevMode()
{
$req = SGL_Request::singleton();
$mgr = strtolower($req->get('managerName'));
if ($mgr == 'rvwysiwyg') {
$path = RVWYSIWYG_ROOT_PATH;
$devpath = $path . '/live/devmode.txt';
} elseif ($mgr == 'rvwysiwyguikit') {
$path = RVWYSIWYG_UIKIT_ROOT_PATH;
$devpath = $path . '/live/devmode.txt';
}
if(isset($devpath) && is_file($devpath) == true){
SGL::logMessage('run isDevMode=1', PEAR_LOG_DEBUG);
self::_detectRvwysLivePerm($path);
return true;
} else {
SGL::logMessage('run normal mode', PEAR_LOG_DEBUG);
return false;
}
}
/**
* กรณี rvwys devmode
* จะ validate permission file live
*/
private static function _detectRvwysLivePerm($path = null)
{
$rvwysLive = $path . '/live';
$aFile = array(
$rvwysLive . '/rvwysiwyg.css',
$rvwysLive . '/rvwysiwyg-ui.css',
$rvwysLive . '/rvwysiwyg-editable.css',
$rvwysLive . '/rvwysiwyg.js',
$rvwysLive . '/rvwysiwyg-ui.js',
//uikit
$rvwysLive . '/rvwysiwyg-uikit.css',
$rvwysLive . '/rvwysiwyg-uikit-ui.css',
$rvwysLive . '/rvwysiwyg-editableuikit.css',
$rvwysLive . '/rvwysiwyg-uikit.js',
$rvwysLive . '/rvwysiwyg-uikit-ui.js',
);
$str = "";
foreach ($aFile as $path) {
if (is_file($path) == true && is_writable($path) == false ) {
$str .= "sudo chmod 777 " . $path . "<br>";
}
}
if ($str != "") {
echo "RVWYSIWYG is Develop mode, Please change permission to 777 <br>" . $str;
exit;
}
}
/**
*
* @return Ambigous <object, string>|boolean
*/
static function isCallCpanel54Api()
{
$oCp = CpHandle::factory();
if (SGL::isError($oCp) === true) {
SGL_Error::pop();
return SGL::raiseError(RvsLibs_String::translate('CpWaring %MESSAGE', 'vprintf', array('MESSAGE' => $oCp->getMessage())));
}
$res = $oCp->getServerSoftwareInfo();
if (isset($res['version']) && isset($res['software'])
&& $res['software'] == 'cpanel'
&& $res['version'] >= '11.54') {
SGL::logMessage('rvdebug:' . $res['version'], PEAR_LOG_DEBUG);
return true;
} else {
SGL::logMessage('rvdebug: 00000', PEAR_LOG_DEBUG);
return false;
}
}
/**
* if project long over 25 character to cut
*
* @param string $projectName
* @return Ambigous <unknown, string>
*/
static function shortProjectName($projectName = null)
{
//echo mb_strlen($projectName) . ' ';
$max = 25;
if (mb_strlen($projectName) > $max) {
mb_internal_encoding('UTF-8');
$projectName = mb_substr($projectName, 0, $max) . ' ...';
SGL::logMessage('rvdebug: project_name:' . $projectName, PEAR_LOG_DEBUG);
}
return $projectName;
}
static function checkRestorProject($projectId)
{
$path = REAL_PROJECT_PATH.'/'.$projectId.'/checkrestore.txt';
SGL::logMessage(' cmd ======'.$path, PEAR_LOG_DEBUG);
if(is_file($path)){
return true;
}else{
return false;
}
}
/**
* แสดงเปลี่ยนภาษา
* @return string
*/
static function listLangOptions()
{
SGL::logMessage('rvdebug:', PEAR_LOG_DEBUG);
$aLank = RvsLibs_Charset::getAllLangData();
$lang = $_SESSION['aPrefs']['language'];
$langSel = $GLOBALS['_SGL']['LANGUAGE'][$lang][4];
$charsetId = array_search(ucfirst(RvsLibs_String::strtolower($langSel)), $aLank);
$charsetId = ($charsetId) ? $charsetId : SGL_Session::get('charset_id');
$langOptions = SGL_Output::generateSelect($aLank, $charsetId);
return $langOptions;
}
static function LangNameById()
{
SGL::logMessage('rvdebug:', PEAR_LOG_DEBUG);
$aLank = RvsLibs_Charset::getAllLangData();
$lang = $_SESSION['aPrefs']['language'];
$langSel = $GLOBALS['_SGL']['LANGUAGE'][$lang][4];
$charsetId = array_search(ucfirst(RvsLibs_String::strtolower($langSel)), $aLank);
return $aLank[$charsetId];
}
static function LangId()
{
SGL::logMessage('rvdebug:', PEAR_LOG_DEBUG);
$aLank = RvsLibs_Charset::getAllLangData();
$lang = $_SESSION['aPrefs']['language'];
$langSel = $GLOBALS['_SGL']['LANGUAGE'][$lang][4];
return $charsetId = array_search(ucfirst(RvsLibs_String::strtolower($langSel)), $aLank);
}
static function listLangLI()
{
SGL::logMessage('rvdebug:', PEAR_LOG_DEBUG);
$aLank = RvsLibs_Charset::getAllLangData();
$lang = $_SESSION['aPrefs']['language'];
$langSel = $GLOBALS['_SGL']['LANGUAGE'][$lang][4];
$charsetId = array_search(ucfirst(RvsLibs_String::strtolower($langSel)), $aLank);
$charsetId = ($charsetId) ? $charsetId : SGL_Session::get('charset_id');
$langOptions = SGL_Output::generateSelect($aLank, $charsetId);
$data = '';
foreach ($aLank as $key=>$val) {
$data .= '<li><a href="javascript:void(0);" class="setFontSize" key="'. $key . '"><span>'. $val . '</span></a></li>';
}
return $data;
}
static function isMasterPage($id = null)
{
if (!$id) {
return false;
}
if ($id == '1') {
return false;
}
return true;
}
/**
* ถ้าไม่เคย set page value ไว้ แสดง project value
*
* @param unknown $pageValue
* @param unknown $projectValue
* @return boolean
*/
static function getPageValue($pageValue, $projectValue)
{
return ($pageValue) ? $pageValue : $projectValue;
}
static function listFonts()
{
$aFonts = RvsLibs_Util::getFonts();
$jsString = '[';
foreach ($aFonts as $val) {
$jsString .= '\''.$val.'\',';
}
$jsString = trim($jsString, ',') . ']';
return $jsString;
}
static function getEmailSystem()
{
$aData = array();
$projectId = RvsLibs_Project::getProjectId();
$fileSetting = RvsLibs_File::buildPath(array(RVS_USER_HOME,'.rvsitebuilder', 'websitepublish', $projectId, 'Setting.ini.php'));
if (is_file($fileSetting)) {
include $fileSetting;
$aData = $mailConf;
}
return json_encode($aData);
}
static function getMsgNewEditorUrl()
{
$action = (SGL_Output::isV6Session() == true) ? 'action/switchtoUIv5' : 'action/switchtoUIv6';
$url = SGL_Output::makeUrl("","sitebuilder","sitebuilder") . $action;
$aUrl = array('UrlNewEditor' => $url);
return RvsLibs_String::translate('Create project new editor of RVsitebuilder','vprintf', $aUrl);
}
static function getIndexData($aData, $file, $key)
{
return (isset($aData[$file][$key])) ? $aData[$file][$key] : '';
}
static function isCheckbokCategory($aData, $file, $key, $cateId)
{
$categoryText = (isset($aData[$file][$key])) ? $aData[$file][$key] : '';
$aData = explode(',', $categoryText);
if (count($aData) && in_array($cateId, $aData)) {
return true;
}
return false;
}
static function isShowImages($aData, $file)
{
$isShow = (isset($aData[$file])) ? true : false;
if ($isShow == true) {
return ' display:none; ';
}
}
static function countArrayByIndex($aImagesDB,$aFileByFolder)
{
$aData = array();
foreach ($aImagesDB as $file => $v) {
if (isset($aFileByFolder[$file])) {
$aData[] = $file;
}
}
return count($aData);
}
static function getFileName($file)
{
return str_replace('-dot-', '.', $file);
}
static function getImagesSource($aSourceImage,$folder)
{
$no = 1;
if (isset($aSourceImage[$folder])) {
foreach ($aSourceImage[$folder] as $path) {
$str .= sprintf('%s. <a href="%s" target="_blank">%s</a><br>' ,$no, $path, $path);
$no++;
}
}
echo $str;
}
}
?>