phpcms v9之所以如此受欢迎就是因为它强大的字段功能,后台模型内容任由自己改,是目前最好的二次开发的开源cms,今日有朋友在论坛上提问:在后台添加了多选字段,前台调用的时候显示的是后面的1或者2,不显示前面的值
找到文件 /phpcms/libs/function/extention.func.php,打开文件添加以下代码:
- * 根据box类型字段获取显示名称
- * @param $field 字段名称
- * @param $value 字段值
- * @param $modelid 字段所在模型id
- function box($field, $value, $modelid='') {
- $fields = getcache('model_field_'.$modelid,'model');
- extract(string2array($fields[$field]['setting']));
- $options = explode("/n",$fields[$field]['options']);
- foreach($options as $_k) {
- $v = explode("|",$_k);
- $k = trim($v[1]);
- $option[$k] = $v[0];
- }
- $string = '';
- switch($fields[$field]['boxtype']) {
- case 'radio':
- $string = $option[$value];
- break;
- case 'checkbox':
- $value_arr = explode(',',$value);
- foreach($value_arr as $_v) {
- if($_v) $string .= $option[$_v].' 、';
- }
- break;
- case 'select':
- $string = $option[$value];
- break; //Vevb.com
- case 'multiple':
- $value_arr = explode(',',$value);
- foreach($value_arr as $_v) {
- if($_v) $string .= $option[$_v].' 、';
- }
- break;
- }
- return $string;
- }
这样就可以了,前台调用该字段的时候使用{box('fenlei',$r[fenlei],$modelid)}.
新闻热点
疑难解答