phpcms列表页选项名称调用
2018-09-08 23:12:03   来源:   浏览: 次

导读:我今天遇到了跟楼主一样的问题。 我有个解决的办法,在phpcms libs functions extention func php(自定义函数文件)中定义一个方法代码如下
我今天遇到了跟楼主一样的问题。 我有个解决的办法,在phpcms\libs\functions\extention.func.php(自定义函数文件)中定义一个方法
代码如下
  1. /**
  2. * 获取选项的格式化输出
  3. * @param str $field 字段名称 必须
  4. * @param int $value 字段值 必须
  5. * @param int $modelid 模型ID 必须
  6. * 2014-09-28 by awen
  7. */
  8. function get_box($field, $value,$modelid) {
  9.         $fields = getcache('model_field_'.$modelid,'model');
  10.         extract(string2array($fields[$field]['setting']));
  11.         if($outputtype) {
  12.                 return $value;
  13.         } else {
  14.                 $options = explode("\n",$fields[$field]['options']);
  15.                 foreach($options as $_k) {
  16.                         $v = explode("|",$_k);
  17.                         $k = trim($v[1]);
  18.                         $option[$k] = $v[0];
  19.                 }
  20.                 $string = '';
  21.                 switch($fields[$field]['boxtype']) {
  22.                         case 'radio':
  23.                                 $string = $option[$value];
  24.                         break;
  25.  
  26.                         case 'checkbox':
  27.                                 $value_arr = explode(',',$value);
  28.                                 foreach($value_arr as $_v) {
  29.                                         if($_v) $string .= $option[$_v].' ';
  30.                                 }
  31.                         break;
  32.  
  33.                         case 'select':
  34.                                 $string = $option[$value];
  35.                         break;
  36.  
  37.                         case 'multiple':
  38.                                 $value_arr = explode(',',$value);
  39.                                 foreach($value_arr as $_v) {
  40.                                         if($_v) $string .= $option[$_v].' ';
  41.                                 }
  42.                         break;
  43.                 }
  44.                 return $string;
  45.         }
  46. }
复制代码

这个是照内容输出页面的原理弄出来的,是系统的实现方式,安全可靠,只是把原来的、号分隔改成了空格,也可以加一个标签之类的,可以自己改。
前台使用
第一个是你的字段名称,第二个是你字段的值,就是输出的1、2、3,第三个是你所使用的模型iD
如楼盘特色字段名为‘lpts’,字段值为$r[lpts]这是loop循环得到的变量也可以是一个指定的你定义的值,第三个15是楼盘模型的ID
{get_box('lpts',$r[lpts],15)}