You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
7.5 KiB
168 lines
7.5 KiB
<?php
|
|
/*
|
|
* @copyright Leyun internet Technology(Shanghai)Co.,Ltd
|
|
* @license http://www.dzzoffice.com/licenses/license.txt
|
|
* @package DzzOffice
|
|
* @link http://www.dzzoffice.com
|
|
* @author zyx(zyx@dzz.cc)
|
|
*/
|
|
if (!defined('IN_DZZ') || !defined('IN_ADMIN')) {
|
|
exit('Access Denied');
|
|
}
|
|
$navtitle = lang('data_set') . ' - ' . lang('appname');
|
|
$op = isset($_GET['op']) ? $_GET['op'] : '';
|
|
$profilevalidate = array(
|
|
'telephone' => '/^((\\(?\\d{3,4}\\)?)|(\\d{3,4}-)?)\\d{7,8}$/',
|
|
'mobile' => '/^(\+)?(86)?0?1\\d{10}$/',
|
|
'zipcode' => '/^\\d{5,6}$/',
|
|
'revenue' => '/^\\d+$/',
|
|
'height' => '/^\\d{1,3}$/',
|
|
'weight' => '/^\\d{1,3}$/',
|
|
'qq' => '/^[1-9]*[1-9][0-9]*$/'
|
|
);
|
|
$fieldid = $_GET['fieldid'] ? $_GET['fieldid'] : '';
|
|
$do = isset($_GET['do']) ? $_GET['do'] : '';
|
|
if ($do == 'delete') {
|
|
C::t('user_profile_setting')->delete_by_fieldid($fieldid);
|
|
require_once libfile('function/cache');
|
|
updatecache(array('profilesetting', 'fields_required', 'fields_optional', 'fields_register', 'setting'));
|
|
showmessage('data_del_success', dreferer(), array(), array('alert' => 'right'));
|
|
|
|
} elseif ($fieldid) {
|
|
$_G['setting']['privacy'] = !empty($_G['setting']['privacy']) ? $_G['setting']['privacy'] : array();
|
|
$_G['setting']['privacy'] = is_array($_G['setting']['privacy']) ? $_G['setting']['privacy'] : dunserialize($_G['setting']['privacy']);
|
|
$field = C::t('user_profile_setting')->fetch($fieldid);
|
|
$fixedfields1 = array('uid', 'constellation', 'zodiac');
|
|
$fixedfields2 = array('gender', 'birthday', 'department');
|
|
$field['isfixed1'] = in_array($fieldid, $fixedfields1);
|
|
$field['isfixed2'] = $field['isfixed1'] || in_array($fieldid, $fixedfields2);
|
|
//$field['customable'] = preg_match('/^field[1-8]$/i', $fieldid);
|
|
$field['validate'] = $field['validate'] ? $field['validate'] : ($profilevalidate[$fieldid] ? $profilevalidate[$fieldid] : '');
|
|
if (!submitcheck('editsubmit')) {
|
|
|
|
$checkLanguage = checkLanguage();
|
|
include template('profileset_edit');
|
|
exit();
|
|
} else {
|
|
|
|
$setarr = array(
|
|
'invisible' => intval($_POST['invisible']),
|
|
'showincard' => intval($_POST['showincard']),
|
|
'showinregister' => intval($_POST['showinregister']),
|
|
'allowsearch' => intval($_POST['allowsearch']),
|
|
'displayorder' => intval($_POST['displayorder'])
|
|
);
|
|
if (!$field['isfixed2']) {
|
|
$_POST['title'] = dhtmlspecialchars(trim($_POST['title']));
|
|
if (empty($_POST['title'])) {
|
|
showmessage('data_name_empty', ADMINSCRIPT . '?mod=member&op=profileset&fieldid=' . $fieldid, array(), array('alert' => 'error'));
|
|
}
|
|
$setarr['title'] = $_POST['title'];
|
|
$setarr['description'] = dhtmlspecialchars(trim($_POST['description']));
|
|
}
|
|
if (!$field['isfixed1']) {
|
|
$setarr['required'] = intval($_POST['required']);
|
|
$setarr['available'] = intval($_POST['available']);
|
|
$setarr['unchangeable'] = intval($_POST['unchangeable']);
|
|
$setarr['needverify'] = intval($_POST['needverify']);
|
|
}
|
|
if (!$field['isfixed2']) {
|
|
$setarr['formtype'] = $fieldid == 'realname' ? 'text' : strtolower(trim($_POST['formtype']));
|
|
$setarr['size'] = intval($_POST['size']);
|
|
if ($_POST['choices']) {
|
|
$_POST['choices'] = trim($_POST['choices']);
|
|
$ops = explode("\n", $_POST['choices']);
|
|
$parts = array();
|
|
foreach ($ops as $op) {
|
|
$parts[] = dhtmlspecialchars(trim($op));
|
|
}
|
|
$_POST['choices'] = implode("\n", $parts);
|
|
}
|
|
$setarr['choices'] = $_POST['choices'];
|
|
if ($_POST['validate'] && $_POST['validate'] != $profilevalidate[$fieldid]) {
|
|
$setarr['validate'] = $_POST['validate'];
|
|
} elseif (empty($_POST['validate'])) {
|
|
$setarr['validate'] = '';
|
|
}
|
|
}
|
|
//print_r($setarr);exit($fieldid);
|
|
C::t('user_profile_setting')->update($fieldid, $setarr);
|
|
if ($_GET['fieldid'] == 'birthday') {
|
|
C::t('user_profile_setting')->update('birthmonth', $setarr);
|
|
C::t('user_profile_setting')->update('birthyear', $setarr);
|
|
}
|
|
|
|
|
|
require_once libfile('function/cache');
|
|
if (!isset($_G['setting']['privacy']['profile']) || $_G['setting']['privacy']['profile'][$fieldid] != $_POST['privacy']) {
|
|
$_G['setting']['privacy']['profile'][$fieldid] = intval($_POST['privacy']);
|
|
C::t('setting')->update('privacy', $_G['setting']['privacy']);
|
|
}
|
|
updatecache(array('profilesetting', 'fields_required', 'fields_optional', 'fields_register', 'setting'));
|
|
|
|
showmessage('subscriber_data_edit_success', ADMINSCRIPT . '?mod=member&op=profileset', array(), array('alert' => 'right'));
|
|
}
|
|
} else {
|
|
|
|
if (!submitcheck('ordersubmit')) {
|
|
$list = array();
|
|
foreach (C::t('user_profile_setting')->range() as $fieldid => $value) {
|
|
$list[$fieldid] = array(
|
|
'title' => $value['title'],
|
|
'displayorder' => $value['displayorder'],
|
|
'available' => $value['available'],
|
|
'invisible' => $value['invisible'],
|
|
'showincard' => $value['showincard'],
|
|
'showinregister' => $value['showinregister'],
|
|
'customable' => $value['customable']);
|
|
}
|
|
|
|
unset($list['birthyear']);
|
|
unset($list['birthmonth']);
|
|
|
|
$fieldid = '';
|
|
|
|
} else {
|
|
foreach ($_GET['displayorder'] as $fieldid => $value) {
|
|
$setarr = array(
|
|
'displayorder' => intval($value),
|
|
'invisible' => intval($_GET['invisible'][$fieldid]) ? 0 : 1,
|
|
'available' => intval($_GET['available'][$fieldid]),
|
|
'showincard' => intval($_GET['showincard'][$fieldid]),
|
|
'showinregister' => intval($_GET['showinregister'][$fieldid]),
|
|
);
|
|
C::t('user_profile_setting')->update($fieldid, $setarr);
|
|
|
|
if ($fieldid == 'birthday') {
|
|
C::t('user_profile_setting')->update('birthmonth', $setarr);
|
|
C::t('user_profile_setting')->update('birthyear', $setarr);
|
|
|
|
}
|
|
}
|
|
foreach ($_GET['add']['displayorder'] as $key => $value) {
|
|
$setarr = array(
|
|
'displayorder' => intval($value),
|
|
'invisible' => intval($_GET['add']['invisible'][$key]) ? 0 : 1,
|
|
'available' => intval($_GET['add']['available'][$key]),
|
|
'showincard' => intval($_GET['add']['showincard'][$key]),
|
|
'showinregister' => intval($_GET['add']['showinregister'][$key]),
|
|
'title' => dhtmlspecialchars($_GET['add']['title'][$key]),
|
|
'fieldid' => dhtmlspecialchars($_GET['add']['fieldid'][$key])
|
|
);
|
|
if (empty($setarr['title']) || empty($setarr['fieldid'])) continue;
|
|
if (DB::result_first("select COUNT(*) from %t where fieldid=%s", array('user_profile_setting', $settarr['fieldid']))) {
|
|
continue;
|
|
}
|
|
C::t('user_profile_setting')->insert($setarr);
|
|
|
|
}
|
|
require_once libfile('function/cache');
|
|
updatecache(array('profilesetting', 'fields_required', 'fields_optional', 'fields_register', 'setting'));
|
|
showmessage('subscriber_data_item_edit_success', dreferer(), array(), array('alert' => 'right'));
|
|
}
|
|
}
|
|
|
|
|
|
include template('profileset');
|
|
|
|
?>
|