|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
用户打开注册页面或资料修改页面时,如果含有地区选择项目,将自动根据用户IP位置选择省市。修改方法如下:
打开 source/function/function_profile.php 文件, 查找: - function showdistrict($values, $elems=array(), $container='districtbox', $showlevel=null, $containertype = 'birth') {
复制代码 在其下方第一行新增:
查找:
- for($i=0;$i<$showlevel;$i++) {
- $level = $i+1;
- if(!empty($options[$level])) {
- $jscall = "showdistrict('$container', ['$elems[0]', '$elems[1]', '$elems[2]', '$elems[3]'], $showlevel, $level, '$containertype')";
- $html .= '<select name="'.$elems[$i].'" id="'.$elems[$i].'" class="ps" onchange="'.$jscall.'" tabindex="1">';
- $html .= '<option value="">'.lang('spacecp', 'district_level_'.$level).'</option>';
- foreach($options[$level] as $option) {
- $selected = $option[0] == $values[$i] ? ' selected="selected"' : '';
- $html .= '<option did="'.$option[0].'" value="'.$option[1].'"'.$selected.'>'.$option[1].'</option>';
- }
- $html .= '</select>';
- $html .= ' ';
- }
- }
复制代码 替换为(如果后台设置了自定义注册地址,请修改以下代码中的 mod=register):
- include_once libfile('function_misc', 'function');
- $diliweizhi = explode(" ", substr(convertip($_G['clientip']), 2));
- $diliweizhi = $diliweizhi[0];
- if(preg_match('/^(?P<sheng>北京|上海|天津|重庆)市/', $diliweizhi, $weizhifenchai)) {
- $sheng = $weizhifenchai[sheng];
- $shi = preg_match('/市(?P<shi>.{4,}?)(区|县)/', $diliweizhi, $weizhifenchai) ? $weizhifenchai[shi] : '';
- } elseif(preg_match('/^(?P<sheng>广西|内蒙古|宁夏|新疆|西藏)/', $diliweizhi, $weizhifenchai)) {
- $sheng = $weizhifenchai[sheng];
- $shi = preg_match('/^(广西|内蒙古|宁夏|新疆|西藏)(.*自治区)*(?P<shi>.{4,}?)(市|州|地区|盟)/', $diliweizhi, $weizhifenchai) ? $weizhifenchai[shi] : '';
- } elseif(preg_match('/^(?P<sheng>.*?)省/', $diliweizhi, $weizhifenchai)) {
- $sheng = $weizhifenchai[sheng];
- $shi = preg_match('/省(?P<shi>.{4,}?)(市|州|地区)/', $diliweizhi, $weizhifenchai) ? $weizhifenchai[shi] : '';
- } elseif(preg_match('/^(?P<sheng>香港|澳门|台湾)/', $diliweizhi, $weizhifenchai)) {
- $sheng = $weizhifenchai[sheng]; $shi = '';
- } elseif(preg_match('/^(?P<sheng>美国|加拿大|马来西亚|新加坡|越南|泰国|印度|日本|韩国|瑞典|挪威|希腊|瑞士|荷兰|捷克|德国|法国|意大利|奥地利|西班牙|英国|俄罗斯|乌克兰|新西兰|澳大利亚|丹麦|芬兰|爱尔兰|南非|阿根廷|巴西)/', $diliweizhi, $weizhifenchai)) {
- $sheng = '海外'; $shi = $weizhifenchai[sheng];
- }
- for($i=0;$i<$showlevel;$i++) {
- $level = $i+1;
- if(!empty($options[$level])) {
- $jscall = "showdistrict('$container', ['$elems[0]', '$elems[1]', '$elems[2]', '$elems[3]'], $showlevel, $level, '$containertype')";
- $display = $level == 4 ? ' style="display:none;"' : '';
- $html .= '<select name="'.$elems[$i].'" id="'.$elems[$i].'" class="ps" onchange="'.$jscall.'" tabindex="1"'.$display.'>';
- $html .= '<option value="">'.lang('spacecp', 'district_level_'.$level).'</option>';
- foreach($options[$level] as $option) {
- $autoselect = CURMODULE == 'register' || (CURMODULE == 'spacecp' && $_GET[ac] == 'profile') || ($_GET[pid] > '0' && $_GET[inajax] == '1' && preg_match("/zhuce|mod=register|ac=profile/", $_SERVER['HTTP_REFERER'])) ? 1 : 0; //仅在 注册页、个人资料页 输出和切换(依赖REFERER)时自动选择
- if($level == 4) {
- $html .= '<option did="'.$option[0].'" value="'.$option[1].'" selected="selected">'.$option[1].'</option>';
- break;
- } elseif($autoselect && $showlevel == 1 && substr($option[1], 0, 4) == substr($sheng, 0, 4)) {
- $selected = ' selected="selected"';
- $onchange = $elems[$i];
- } elseif($autoselect && $showlevel == 2 && substr($option[1], 0, 4) == substr($shi, 0, 4)) {
- $selected = ' selected="selected"';
- $onchange = $elems[$i];
- } else {
- $selected = $option[0] == $values[$i] ? ' selected="selected"' : '';
- }
- $html .= '<option did="'.$option[0].'" value="'.$option[1].'"'.$selected.'>'.$option[1].'</option>';
- }
- $html .= '</select>';
- if($onchange) $html .= '<script type="text/javascript">if('.$onchange.'.fireEvent){'.$onchange.'.fireEvent(\''.$onchange.'\');}else{'.$onchange.'.onchange();}</script>';
- $html .= ' ';
- }
- }
复制代码
|
|