ucms1.4.3新增自定义字段功能
字段类型默认为varchar,如果需要修改成其他类型,请通过数据库工具手动修改
新增自定义字段后,配置该字段,在字段配置中填入函数名,函数代码可以参考以下代码
代码可以放在ucms/admin_config.php中
演示:
自定义输入框
function diy_text($action='',$name='',$value='') {
//output用在显示表单的时候
if($action=='output') {
echo('<input type="text" name="'.$name.'" value="'.$value.'" class="inputtext">');
}
//接收表单
if($action=='input') {
if(isset($_POST[$name])) {
Return $_POST[$name];
}
Return '';
}
//后台文章列表页显示,或者前台显示
if($action=='show') {
Return $value;
}
}
自定义列表框
function diy_select($action='',$name='',$value='') {
$option=array('红','橙','黄','绿','青','蓝','紫');
if($action=='output') {
echo('<select name="'.$name.'">');
echo('<option value="">未选择</option>');
foreach($option as $val) {
if($value==$val) {
echo('<option value="'.$val.'" selected>'.$val.'</option>');
}else {
echo('<option value="'.$val.'">'.$val.'</option>');
}
}
echo('</select>');
}
if($action=='input') {
if(isset($_POST[$name]) && in_array($_POST[$name],$option)) {
Return $_POST[$name];
}
Return '';
}
if($action=='show') {
Return $value;
}
}
自定义多选框
function diy_checkbox($action='',$name='',$value='') {
$option=array('红','橙','黄','绿','青','蓝','紫');
//将数据库中的json数据转换成数组
$values=json_decode($value,1);
if($action=='output') {
//需要插入一个隐藏的输入框,接收表单时删除第一个元素,否则程序无法获得勾选的值
echo('<input type="hidden" name="'.$name.'[]" value="">');
foreach($option as $val) {
if(is_array($values) && in_array($val,$values)) {
echo('<input type="checkbox" name="'.$name.'[]" value="'.$val.'" checked>'.$val.' ');
}else {
echo('<input type="checkbox" name="'.$name.'[]" value="'.$val.'">'.$val.' ');
}
}
Return '';
}
if($action=='input') {
$newarray=array();
if(isset($_POST[$name])) {
unset($_POST[$name][0]);//删除第一个隐藏的空值
foreach($_POST[$name] as $val) {
if(in_array($val,$option)) {
$newarray[]=$val;
}
}
//将数据以json形式存入数据库
Return json_encode($newarray);//php5.4+版本才支持此参数,防止中文被转义
}else {
Return json_encode(array());
}
}
if($action=='show') {
if(is_array($values) && count($values)>0) {
Return implode('|',$values);
}else {
Return '无';
}
}
}