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 '无'; } } }