50 $this->_sActionUrl = !
empty($sActionUrl) ? $sActionUrl :
ch_html_attribute($_SERVER[
'PHP_SELF']) . (!
empty($_SERVER[
'QUERY_STRING']) ?
'?' . $_SERVER[
'QUERY_STRING'] :
'');
53 $this->_iCategoryActive = 0;
55 $this->_iResultTimer = 3;
56 $this->_aCustomCategories = array(
58 'title' =>
'_getCatTitleAdminPassword',
59 'content' =>
'_getCatContentAdminPassword',
60 'save' =>
'_saveCatAdminPassword'
63 'save' =>
'_saveCatWatermark'
66 'on_save' =>
'_onSavePermalinks'
74 $this->_iCategoryActive = $mixed;
76 $this->_iCategoryActive = (int)$this->_oDb->getOne(
"SELECT `ID` FROM `sys_options_cats` WHERE `name`= ?", [$mixed]);
80 $aCategories = explode(
',', strip_tags($aData[
'cat']));
83 $mixedResult = $this->{$this->_aCustomCategories[
$mixedCategory][
'save']}($aData);
84 if($mixedResult !==
true)
87 $aItems = $this->_oDb->getAll(
"SELECT `Name` AS `name`, `desc` AS `title`, `Type` AS `type`, `AvailableValues` AS `extra`, `check` AS `check`, `err_text` AS `check_error` FROM `sys_options` WHERE `kateg`= ?", [
$mixedCategory]);
89 $aItemsData = array();
90 foreach($aItems
as $aItem) {
91 if(is_array($aData[$aItem[
'name']]))
92 foreach($aData[$aItem[
'name']]
as $sKey => $sValue)
93 $aItemsData[$aItem[
'name']][$sKey] = strip_tags($sValue);
95 $aItemsData[$aItem[
'name']] = strip_tags($aData[$aItem[
'name']]);
97 if(!
empty($aItem[
'check'])) {
98 $oFunction =
function($arg0)
use ($aItem) {
99 return eval($aItem[
'check']);
102 if(!$oFunction($aItemsData[$aItem[
'name']])) {
104 return MsgBox(
"'" . $aItem[
'title'] .
"' " . $aItem[
'check_error'], $this->_iResultTimer);
108 $bIsset = isset($aItemsData[$aItem[
'name']]);
109 if($bIsset && is_array($aItemsData[$aItem[
'name']]))
110 $aItemsData[$aItem[
'name']] = implode(
',', $aItemsData[$aItem[
'name']]);
112 $aItemsData[$aItem[
'name']] = $this->
_empty($aItem);
114 if($aItem[
'name'] ==
'sys_php_block_enabled') {
115 if($aItemsData[$aItem[
'name']] ==
'on') {
116 if(
getParam(
'sys_php_block_enabled') ==
'') {
117 $GLOBALS[
'MySQL']->query(
"INSERT INTO `sys_page_compose` (`Page`, `PageWidth`, `Desc`, `Caption`, `Column`, `Order`, `Func`, `Content`, `DesignBox`, `ColWidth`, `Visible`, `MinWidth`, `Cache`) VALUES ('', '1140px', 'Simple PHP Block', '_Code Block', 0, 0, 'Sample', 'Code', 11, 0, 'non,memb', 0, 0)");
120 $GLOBALS[
'MySQL']->query(
"DELETE FROM `sys_page_compose` WHERE `Func` = 'Sample' AND `Content` = 'Code'");
124 setParam ($aItem[
'name'], $aItemsData[$aItem[
'name']]);
130 return MsgBox(
_t(
'_adm_txt_settings_success'), $this->_iResultTimer);
136 if(!is_numeric($this->_mixedCategory) || isset($this->_aCustomCategories[$this->_mixedCategory][
'title']))
138 else if(is_numeric($this->_mixedCategory))
139 $sResult = $this->_oDb->getOne(
"SELECT `name` AS `name` FROM `sys_options_cats` WHERE `ID`='" . $this->_mixedCategory .
"' LIMIT 1");
145 if(
empty($aCategories))
148 $bWrap = count($aCategories) > 1;
151 'form_attrs' => array(
152 'id' =>
'adm-settings-form',
153 'name' =>
'adm-settings-form',
154 'action' => $this->_sActionUrl,
156 'enctype' =>
'multipart/form-data'
160 'table' =>
'sys_options',
164 'submit_name' =>
'save'
175 $aCategory = $this->_oDb->getRow(
"SELECT `ID` AS `id`, `name` AS `name` FROM `sys_options_cats` WHERE `ID`= ?", [
$mixedCategory]);
176 $aItems = $this->_oDb->getAll(
"SELECT `Name` AS `name`, `VALUE` AS `value`, `Type` AS `type`, `desc` AS `description`, `AvailableValues` AS `extra`, `check` AS `check`, `err_text` AS `check_error`
177 FROM `sys_options` WHERE `kateg`= ? ORDER BY `order_in_kateg`", [
$mixedCategory]);
179 foreach($aItems
as $aItem)
192 'value' => implode(
',', $aCategories)
197 'value' =>
_t(
"_adm_btn_settings_save"),
215 'category_' . $aCategory[
'id'] .
'_beg' => array(
216 'type' =>
'block_header',
217 'caption' => $aCategory[
'name'],
218 'collapsable' =>
true,
219 'collapsed' => $aCategory[
'id'] != $this->_iCategoryActive
223 $aFields[
'category_' . $aCategory[
'id'] .
'_end'] = array(
224 'type' =>
'block_end'
231 switch($aItem[
'type']) {
235 'name' => $aItem[
'name'],
236 'caption' => $aItem[
'description'],
237 'value' => $aItem[
'value'],
246 'type' =>
'textarea',
247 'name' => $aItem[
'name'],
248 'caption' => $aItem[
'description'],
249 'value' => $aItem[
'value'],
258 'type' =>
'checkbox',
259 'name' => $aItem[
'name'],
260 'caption' => $aItem[
'description'],
262 'checked' => $aItem[
'value'] ==
'on',
271 'type' =>
'checkbox_set',
272 'name' => $aItem[
'name'],
273 'caption' => $aItem[
'description'],
274 'value' => explode(
',', $aItem[
'value']),
280 if(substr($aItem[
'extra'], 0, 4) ==
'PHP:')
281 $aField[
'values'] = eval(substr($aItem[
'extra'], 4));
283 foreach(explode(
',', $aItem[
'extra'])
as $sValue)
284 $aField[
'values'][$sValue] = $sValue;
290 'name' => $aItem[
'name'],
291 'caption' => $aItem[
'description'],
292 'value' => $aItem[
'value'],
299 if(substr($aItem[
'extra'], 0, 4) ==
'PHP:')
300 $aField[
'values'] = eval(substr($aItem[
'extra'], 4));
302 foreach(explode(
',', $aItem[
'extra'])
as $sValue)
303 $aField[
'values'][] = array(
'key' => $sValue,
'value' => $sValue);
306 case 'select_multiple':
308 'type' =>
'select_multiple',
309 'name' => $aItem[
'name'],
310 'caption' => $aItem[
'description'],
311 'value' => explode(
',', $aItem[
'value']),
317 if(substr($aItem[
'extra'], 0, 4) ==
'PHP:')
318 $aField[
'values'] = eval(substr($aItem[
'extra'], 4));
320 foreach(explode(
',', $aItem[
'extra'])
as $sValue)
321 $aField[
'values'][$sValue] = $sValue;
327 'name' => $aItem[
'name'],
328 'caption' => $aItem[
'description'],
329 'value' => $aItem[
'value'],
338 switch($aItem[
'type']) {
343 $aValues = explode(
",", $aItem[
'extra']);
344 $mixedValue = $aValues[0];
362 return _t(
'_adm_box_cpt_admin_password');
368 'type' =>
'password',
370 'caption' =>
_t(
'_adm_txt_settings_old_password'),
374 'type' =>
'password',
376 'caption' =>
_t(
'_adm_txt_settings_new_password'),
380 'type' =>
'password',
381 'name' =>
'pwd_conf',
382 'caption' =>
_t(
'_adm_txt_settings_conf_password'),
389 $iId = (int)$_COOKIE[
'memberID'];
391 $aAdmin = $this->_oDb->getRow(
"SELECT `Password`, `Salt` FROM `Profiles` WHERE `ID`= ?", [
$iId]);
393 if(
encryptUserPwd($aData[
'pwd_old'], $aAdmin[
'Salt']) != $aAdmin[
'Password'])
396 $iLength = strlen($aData[
'pwd_new']);
398 return MsgBox(
_t(
'_adm_txt_settings_wrong_new_pasword'), $this->_iResultTimer);
400 if($aData[
'pwd_new'] != $aData[
'pwd_conf'])
401 return MsgBox(
_t(
'_adm_txt_settings_wrong_conf_pasword'), $this->_iResultTimer);
403 $this->_oDb->query(
"UPDATE `Profiles` SET `Password`='" .
encryptUserPwd($aData[
'pwd_new'], $aAdmin[
'Salt']) .
"' WHERE `ID`='$iId'");
413 $iImgWidth = (int)
getParam(
'ch_photos_file_width');
414 if(
empty($iImgWidth))
416 $iImgHeight = (int)
getParam(
'ch_photos_file_height');
417 if(
empty($iImgHeight))
420 if(!
empty($aData[
'transparent1']))
421 $bResult =
$GLOBALS[
'MySQL']->query(
"UPDATE `sys_options` SET `VALUE`='" . (
int)$aData[
'transparent1'] .
"' WHERE `Name`='transparent1'") !==
false;
423 if(!
empty($aData[
'enable_watermark']))
427 $bResult =
$GLOBALS[
'MySQL']->query(
"UPDATE `sys_options` SET `VALUE`='$sValue' WHERE `Name`='enable_watermark'") !==
false;
429 if($_FILES[
'Water_Mark'] && $_FILES[
'Water_Mark'][
'error'] == UPLOAD_ERR_OK) {
430 $aImage = getimagesize($_FILES[
'Water_Mark'][
'tmp_name']);
432 if(!
empty($aImage) && in_array($aImage[2], array(1, 2, 3, 6))) {
433 $sPath =
$dir[
'profileImage'] . $_FILES[
'Water_Mark'][
'name'];
434 if(move_uploaded_file($_FILES[
'Water_Mark'][
'tmp_name'], $sPath)) {
435 $sOldImage =
getParam(
'Water_Mark');
436 if(!
empty($sOldImage) && (
$dir[
'profileImage'] . $sOldImage) != $sPath)
437 @unlink(
$dir[
'profileImage'] . $sOldImage);
439 imageResize($sPath, $sPath, $iImgWidth, $iImgHeight);
440 @chmod($sPath, 0644);
442 $bResult =
$GLOBALS[
'MySQL']->query(
"UPDATE `sys_options` SET `VALUE` ='". addslashes($_FILES[
'Water_Mark'][
'name']) .
"' WHERE `Name`='Water_Mark'") !==
false;
447 $GLOBALS[
'MySQL']->oParams->clearCache();
455 $oPermalinks->cache();
460 $GLOBALS[
'MySQL']->cleanCache (
'sys_menu_member');