您的位置:首页 > 其它

discuz解决栏目时间类型问题

2014-03-03 12:26 253 查看
if($fieldid == 'birthday') {
if($field['unchangeable'] && !empty($space[$fieldid])) {
return '<span>'.$space['birthyear'].'-'.$space['birthmonth'].'-'.$space['birthday'].'</span>';
}
$birthyeayhtml = '';
$nowy = dgmdate($_G['timestamp'], 'Y');
for ($i=0; $i<100; $i++) {
$they = $nowy - $i;
$selectstr = $they == $space['birthyear']?' selected':'';
$birthyeayhtml .= "<option value=\"$they\"$selectstr>$they</option>";
}
$birthmonthhtml = '';
for ($i=1; $i<13; $i++) {
$selectstr = $i == $space['birthmonth']?' selected':'';
$birthmonthhtml .= "<option value=\"$i\"$selectstr>$i</option>";
}
$birthdayhtml = '';
if(empty($space['birthmonth']) || in_array($space['birthmonth'], array(1, 3, 5, 7, 8, 10, 12))) {
$days = 31;
} elseif(in_array($space['birthmonth'], array(4, 6, 9, 11))) {
$days = 30;
} elseif($space['birthyear'] && (($space['birthyear'] % 400 == 0) || ($space['birthyear'] % 4 == 0 && $space['birthyear'] % 400 != 0))) {
$days = 29;
} else {
$days = 28;
}
for ($i=1; $i<=$days; $i++) {
$selectstr = $i == $space['birthday']?' selected':'';
$birthdayhtml .= "<option value=\"$i\"$selectstr>$i</option>";
}
$html = '<select name="birthyear" id="birthyear" class="ps" onchange="showbirthday();" tabindex="1">'
.'<option value="">'.lang('space', 'year').'</option>'
.$birthyeayhtml
.'</select>'
.' '
.'<select name="birthmonth" id="birthmonth" class="ps" onchange="showbirthday();" tabindex="1">'
.'<option value="">'.lang('space', 'month').'</option>'
.$birthmonthhtml
.'</select>'
.' '
.'<select name="birthday" id="birthday" class="ps" tabindex="1">'
.'<option value="">'.lang('space', 'day').'</option>'
.$birthdayhtml
.'</select>';

}


discuz用户给我们提供了三十多项选择还有八个自定义的栏目类型,但是我们平常需要设置某项栏目为时间类型,类似于生日的填写方式,但是discuz没有给我们提供这样的类型,生日在数据表pre_common_member_profile数据表里面保存着,



我们可以看到生日是保存在三个不同的字段里面的

而source/function/function_profile文件里面包含着日期类型的实现(上面的代码)

只需要把字段名给换了,那么这个字段就是和生日类型一样了

但是下面需要解决三个问题

1.给每个时间栏目添加成三个字段

2.并且在插入数据时是分开插入的

3.或者是插入数据的时候组合成一个字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐