Ejemplo n.º 1
0
/**
 *取表单模型数据数组
 *@param $model_id 模型id或标识
 *@param $field   模型的字段值
 *@param $attr 字段的属性值 如  title   note  name field  extra type......等  常用的有extra文章属性标记返回的是一个数组
 *
 **/
function get_model_attr($model_id = null, $field = null, $attr = null)
{
    $skey = $model_id . '_' . $field . '_' . $attr;
    $relist = F('_modelform/' . $skey);
    if (empty($relist) || APP_DEBUG) {
        $list = array();
        if (empty($model_id)) {
            return null;
        }
        $data = get_model($model_id);
        if (empty($data)) {
            return null;
        }
        $model_id = $data['model_id'];
        $list = M('ModelAttr')->where("model_id={$model_id}")->order('sort asc')->select();
        $refield = null;
        foreach ($list as $key => $val) {
            if (!empty($val['extra'])) {
                $redata = parse_string_function($val['extra']);
                if ($redata === false) {
                    //如果是数组格式就转化成数组
                    $list[$key]['extra'] = extra_to_array($val['extra']);
                } else {
                    $list[$key]['extra'] = $redata;
                }
            }
            if (!empty($field) and $val['field'] === $field) {
                if (empty($attr)) {
                    $relist = $list[$key];
                    F('_modelform/' . $skey, $relist);
                    return $list[$key];
                } else {
                    $relist = $list[$key][$attr];
                    F('_modelform/' . $skey, $relist);
                    return $list[$key][$attr];
                }
            }
        }
        $relist = $list;
        F('_modelform/' . $skey, $list);
    }
    return $relist;
}
Ejemplo n.º 2
0
 /**
  * 配置分组
  * @author 枫叶 <*****@*****.**>
  */
 function group($id = null)
 {
     $this->meta_title = '网站配置';
     $id = $id ? $id : 1;
     $grouplist = extra_to_array(C('CONFIG_GROUP'));
     $this->assign('group', $grouplist);
     $this->assign('id', $id);
     //循环每个分组的模型
     $data = null;
     if (APP_DEBUG) {
         $data = M('Config')->where("`group`={$id}")->order('sort asc,config_id desc')->select();
     } else {
         $data = M('Config')->where("`group`={$id} and no_del=1")->order('sort asc,config_id desc')->select();
     }
     //处理extra数据
     //进入单个分组中后对每个进行处理
     foreach ($data as $k => $v) {
         $nme = isset($v['name']) ? $v['name'] : '';
         $data[$k]['data'] = $v['value'];
         $data[$k]['field'] = 'config__' . $nme . '';
         $data[$k]['name'] = 'config__' . $nme . '';
         $data[$k]['note'] = $v['note'] . '。标识:' . $nme;
         $data[$k]['is_show'] = 3;
         $redata = parse_string_function($v['extra']);
         if ($redata === false) {
             if (!empty($v['extra']) && $v['type'] != 'custom') {
                 $data[$k]['extra'] = extra_to_array($v['extra']);
             }
         } else {
             $data[$k]['extra'] = $redata;
         }
     }
     // dump($data);
     // die();
     $this->assign('data', $data);
     $this->display();
 }