public function dosave($datas = array()) { $fields = dict('', 'Setting'); //获取当前配置选项列表 $settingField = array_keys($fields); $this->where("`key` not in('" . implode("','", $settingField) . "')")->delete(); //删除多余属性 $where = "`key` in('" . implode("','", $settingField) . "')"; $list = $this->where($where)->getField('key', true); //从数据库中获取设置信息 if (!is_array($list)) { $list = array(); } $result = false; foreach ($datas as $data) { switch ($data['key']) { case 'SAVE_LOG_OPEN': //后台日志过滤 $data['value'] = $data['value'] == '开启' ? '1' : '0'; break; } if (in_array($data['key'], $list)) { $state = $this->where(array('key' => $data['key']))->save($data); } else { $state = $this->add($data); } if ($state) { $result = true; } } $this->clearCatche(); //有修改时清空缓存 return $result; }
/** * 保存设置 * @param array $info * @return bool */ public function set($info = array()) { $fields = dict('', 'Setting'); //获取当前配置选项列表 $names = array_keys($fields); $this->where(array('key' => array('not in', $names)))->delete(); //删除多余属性 $where = array('key' => array('in', $names)); $list = $this->where($where)->getField('name', true); //从数据库中获取设置信息 if (!is_array($list)) { $list = array(); } $result = false; foreach ($info as $data) { if (!empty($fields[$data['name']]['dict'])) { $dict = $fields[$data['name']]['dict']; $data['value'] = isset($dict[$data['value']]) ? $dict[$data['value']] : ''; } if (in_array($data['name'], $list)) { $state = $this->where(array('name' => $data['name']))->save($data); } else { $state = $this->add($data); } if ($state) { $result = true; } } $this->clearCatche(); //有修改时清空缓存 return $result; }
/** * 订单管理 */ public function orderList($page = 1, $rows = 10, $search = array(), $sort = 'memberid', $order = 'asc') { if (IS_POST) { $order_db = M('order'); $where = array(); foreach ($search as $k => $v) { if (!$v) { continue; } switch ($k) { case 'username': $where[] = "`{$k}` like '%{$v}%'"; break; case 'begin': if (!preg_match("/^\\d{4}(-\\d{2}){2}\$/", $v)) { unset($search[$k]); continue; } if ($search['end'] && $search['end'] < $v) { $v = $search['end']; } $v = strtotime($v); $where[] = "`createdate` >= '{$v}'"; break; case 'end': if (!preg_match("/^\\d{4}(-\\d{2}){2}\$/", $v)) { unset($search[$k]); continue; } if ($search['begin'] && $search['begin'] > $v) { $v = $search['begin']; } $v = strtotime($v); $where[] = "`createdate` <= '{$v}'"; break; } } $where = implode(' and ', $where); $total = $order_db->where($where)->count(); $order = $sort . ' ' . $order; $limit = ($page - 1) * $rows . "," . $rows; $list = $total ? $order_db->field('memberid,orderid,servicename,price,remark,createdate,status')->where($where)->order($order)->limit($limit)->select() : array(); foreach ($list as &$info) { $info['createdate'] = $info['createdate'] ? date('Y-m-d H:i:s', $info['lastlogintime']) : '-'; } $data = array('total' => $total, 'rows' => $list); $this->ajaxReturn($data); } else { $menu_db = D('Menu'); $currentpos = $menu_db->currentPos(I('get.menuid')); //栏目位置 $datagrid = array('options' => array('title' => $currentpos, 'url' => U('Order/orderList', array('grid' => 'datagrid')), 'toolbar' => '#order-order-datagrid-toolbar'), 'fields' => array('服务名称' => array('field' => 'servicename', 'width' => 10, 'sortable' => true), '会员编号' => array('field' => 'memberid', 'width' => 10), '订单编号' => array('field' => 'orderid', 'width' => 10, 'sortable' => true), '价格' => array('field' => 'price', 'width' => 10), '创建时间' => array('field' => 'createdate', 'width' => 10, 'sortable' => true, 'formatter' => 'orderOrderModule.time'), '状态' => array('field' => 'status', 'width' => 10, 'sortable' => true), '备注' => array('field' => 'remark', 'width' => 20), '管理操作' => array('field' => 'memberid', 'width' => 30, 'formatter' => 'orderOrderModule.operate'))); $dict = dict('', 'Order'); $this->assign('dict', $dict); $this->assign('datagrid', $datagrid); $this->display('order_list'); } }
/** * 编辑栏目 */ public function categoryEdit($id) { $category_db = D('Category'); if (IS_POST) { $data = I('post.info'); if (!$category_db->checkParentId($id, $data['parentid'])) { $this->error('上级栏目设置失败'); } $data['ismenu'] = $data['ismenu'] ? '1' : '0'; $res = $category_db->where(array('catid' => $id))->save($data); if ($res) { $category_db->clearCatche(); $this->success('操作成功'); } else { $this->error('操作失败'); } } else { $info = $category_db->where(array('catid' => $id))->find(); $this->assign('info', $info); $this->assign('typeList', dict('type', 'Category')); $this->assign('modelList', dict('model', 'Category')); $this->display('category_edit'); } }
public function fetch_field($name) { $values = array(); foreach ($this->fetch_all() as $row) { $values[] = $row->count() && $name ? $row->{$name} : ($row->count() ? array_shift($row->values()) : null); } return dict($values); }
/** * 查看会员 */ public function memberView($id) { if (IS_POST) { $data = array(); //基本信息 $member_db = M('member'); $field = array('username' => '用户名', 'regip' => '注册IP', 'regtime' => '注册时间', 'lastloginip' => '上次登录IP', 'lastlogintime' => '上次登录时间'); $info = $member_db->field('memberid,password', true)->where(array('memberid' => $id))->find(); $dict = dict('', 'Member'); foreach ($info as $key => $value) { switch ($key) { case 'regtime': case 'lastlogintime': $value = $value ? date('Y-m-d H:i:s', $value) : '-'; break; case 'regip': case 'lastloginip': $value = $value ? $value : '-'; break; } $data[] = array('name' => $field[$key], 'group' => '基本信息', 'value' => $value); } $this->ajaxReturn($data); } else { $propertygrid = array('options' => array('url' => U('Member/memberView', array('id' => $id, 'grid' => 'propertygrid')))); $this->assign('propertygrid', $propertygrid); $this->display('member_view'); } }
/** * 栏目编辑 */ public function categoryEdit() { $category_db = D('Category'); if (IS_POST) { $data = I('post.info'); //菜单级别 if ($data['parentid'] > 0) { $level = $category_db->where(array('catid' => $data['parentid']))->getField('level'); $data['level'] = $level + 1; } else { $data['level'] = 1; } if (C('CATEGORY_LEVEL') < $data['level']) { $this->error('超过级数限制'); } //上级菜单验证 if (!$category_db->checkParentId($data['catid'], $data['parentid'])) { $this->error('上级栏目设置失败'); } $status = $category_db->save($data); if ($status) { $category_db->setSonLevel($data['level'], $data['catid']); } $status ? $this->success('修改成功') : $this->error('修改失败'); } else { $id = I('get.id'); $info = $category_db->where(array('catid' => $id))->find(); $this->assign('info', $info); $type = dict('type', 'Category'); $this->assign('typeList', $type); $this->display('category_edit'); } }
function buildGalleryPage($skel, $galleryname, $galleryitems, $item) { $item = $item - 1; /* Arrays are 0-based */ $base = $skel['base_server'] . $skel['base_uri']; $body = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; $body .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"; $body .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"; $body .= "<head>\n"; $body .= '<title>' . dict($skel, 'picture') . ': ' . $galleryitems[$item]['title'] . ' | ' . $skel['sitetitle'] . "</title>\n"; $body .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"" . $skel['base_uri'] . "css/style.css\"/>\n"; $body .= "<table class=\"gallerynav\" width=\"100%\">\n"; $previtem = max(0, $item - 1); $nextitem = min(count($galleryitems) - 1, $item + 1); $body .= '<tr><td height="' . ($skel['thumbsize'] + 5) . '" width="' . ($skel['thumbsize'] + 5) . '" style="background-image: url(' . $base . $galleryitems[0]['filename'] . ');"><a href="' . $galleryitems[0]['galleryitem'] . '">|<</a></td><td width="' . ($skel['thumbsize'] + 5) . '" style="background-image: url(' . $base . $galleryitems[$previtem]['filename'] . ');"><a href="' . $galleryitems[$previtem]['galleryitem'] . '"><<</a></td>'; $body .= '<td>' . $galleryitems[$item]['title'] . '</td>'; $body .= '<td width="' . ($skel['thumbsize'] + 5) . '" style="background-image: url(' . $base . $galleryitems[$nextitem]['filename'] . ');"><a href="' . $galleryitems[$nextitem]['galleryitem'] . '">>></a></td><td width="' . ($skel['thumbsize'] + 5) . '" style="background-image: url(' . $base . $galleryitems[count($galleryitems) - 1]['filename'] . ');"><a href="' . $galleryitems[count($galleryitems) - 1]['galleryitem'] . '">>|</a></td></tr>'; $body .= "\n<tr><td colspan=\"5\">"; $body .= '<img src="' . $galleryitems[$item]['targetfilename'] . '" />'; $body .= "</td></tr>\n</table>\n"; $body .= "</body></html>\n"; return $body; }
/** * 获取当前页面可用的工具栏列表 * @param int $catid * @param int $type * @return array */ public function getToolbars($catid, $type) { if (!$type) { $type = $this->where(array('catid' => $catid))->getField('type'); } $dict = dict('type', 'Category'); $roleid = user_info('roleid'); $field = $dict[substr($type, 0, 1)]; if ($type > 9) { $field = $field['son'][$type]; } $toolbars = $field['toolbar']; if ($roleid == 1) { return $toolbars; } //管理员不需要设置权限 //根据权限显示可用的工具栏 $category_priv_db = M('category_priv'); $list = $category_priv_db->field('action')->where(array('catid' => $catid, 'roleid' => $roleid, 'action' => array('in', array_keys($toolbars))))->select(); $result = array(); foreach ($list as $info) { $result[$info['action']] = $toolbars[$info['action']]; } return $result; }
/** * 编辑文章 */ public function edit_news($catid, $id) { $news_db = M('news'); if (IS_POST) { if (I('get.dosubmit')) { $data = I('post.info', array(), 'trim'); if (!$data['title'] || !$data['content']) { $this->error('请填写必填字段'); } //编辑时间 $data['updatetime'] = time(); //转向链接判断 if (isset($data['islink']) && $data['islink'] == '开启') { $data['islink'] = '1'; } else { $data['islink'] = '0'; unset($data['url']); } //状态 $data['status'] = isset($data['status']) && $data['status'] == '发布' ? '1' : '0'; //自动提取描述 $data['description'] = $data['description'] ? strip_tags($data['description']) : strip_tags($data['content']); if ($data['description']) { $data['description'] = msubstr(str_replace(array("\n", "\r\n", ' ', ' '), '', strip_tags($data['description'])), 0, 100); } //自动提取缩略图 if (!$data['thumb']) { if (preg_match_all("/(src)=([\"|']?)([^ \"'>]+\\.(gif|jpg|jpeg|bmp|png))\\2/i", $data['content'], $matches)) { $data['thumb'] = $matches[3][0]; } } $news_db = M('news'); $res = $news_db->where(array('catid' => $catid, 'id' => $id))->save($data); $res ? $this->success('操作成功') : $this->error('操作失败'); } else { $data = array(); $info = $news_db->where(array('catid' => $catid, 'id' => $id))->find(); $fieldList = dict('news', 'Category'); //获取当前配置选项列表 foreach ($fieldList as $key => $fieldInfo) { $fieldInfo['name'] = $fieldInfo['required'] ? "*{$fieldInfo['name']}" : $fieldInfo['name']; $fieldInfo['value'] = isset($info[$key]) ? $info[$key] : $fieldInfo['default']; $fieldInfo['key'] = $key; switch ($key) { //缩略图需要单独处理 case 'thumb': if (!$fieldInfo['value']) { $fieldInfo['value'] = $fieldInfo['default']; } $fieldInfo['value'] = '<input id="content_edit_news_thumb_value" style="width:112px;height:88px" type="image" src="' . $fieldInfo['value'] . '" title="点击上传缩略图" onclick="return contentEditNewsThumbClick(this)" />'; break; case 'islink': $fieldInfo['value'] = $fieldInfo['value'] ? '开启' : '关闭'; break; case 'status': $fieldInfo['value'] = $fieldInfo['value'] ? '发布' : '不发布'; break; } array_push($data, $fieldInfo); } $this->ajaxReturn($data); } } else { $info = $news_db->field(array('id', 'content'))->where(array('catid' => $catid, 'id' => $id))->find(); $info['content'] = htmlspecialchars_decode($info['content']); $this->assign('info', $info); $this->assign('catid', $catid); $this->display('news_edit'); } }
private function ueCacheImage() { @set_time_limit(600); $dict = dict('', 'Ueditor'); $field = $dict['catcherFieldName']; $source = I("param.{$field}"); $exts = '(' . implode('|', C('FILE_UPLOAD_IMG_CONFIG.exts')) . ')'; $list = array(); foreach ($source as $imgUrl) { $info = array("state" => 'ERROR', "url" => '', "size" => 0, "title" => '', "original" => ''); $check = true; //http开头验证 if ($check && strpos($imgUrl, "http") !== 0) { $info['state'] = "链接不是http链接"; $check = false; } if ($check && !file_exist_remote($imgUrl)) { $info['state'] = "链接不可用"; $check = false; } if ($check) { //格式验证(扩展名验证和Content-Type验证) $fileType = file_ext($imgUrl); preg_match("/\\.{$exts}\$/i", $imgUrl, $ext); if ($ext) { $ext = $ext[1]; //打开输出缓冲区并获取远程图片 ob_start(); $context = stream_context_create(array('http' => array('follow_location' => false))); readfile($imgUrl, false, $context); $img = ob_get_contents(); ob_end_clean(); $filename = date('Y/m/d/') . uniqid() . '.' . strtolower($ext); file_write(UPLOAD_PATH . $filename, $img); $info = array_merge($info, array('state' => 'SUCCESS', 'url' => $filename, 'title' => basename($filename), 'size' => strlen($img), 'original' => basename($imgUrl))); } } array_push($list, array("state" => $info["state"], "url" => $info["url"], 'title' => '', "size" => $info["size"], "title" => htmlspecialchars($info["title"]), "original" => htmlspecialchars($info["original"]), "source" => htmlspecialchars($imgUrl))); } /* 返回抓取数据 */ return array('state' => count($list) ? 'SUCCESS' : 'ERROR', 'list' => $list); }
/** * 用户编辑 */ public function userEdit() { $member_db = M('member'); if (IS_POST) { $data = I('post.info'); if (isset($data['password'])) { unset($data['password']); } $res = $member_db->save($data); $res ? $this->success('修改成功') : $this->error('修改失败'); } else { $id = I('get.id'); $info = $member_db->where(array('memberid' => $id))->find(); $this->assign('info', $info); $member_type_db = M('member_type'); $typelist = $member_type_db->where(array('status' => '1'))->order('listorder asc')->getField('typeid,typename', true); $this->assign('typelist', $typelist); $dict = dict('', 'Member'); $this->assign('dict', $dict); $this->display('user_edit'); } }
/** * 删除文章 */ public function delete_article($catid) { if (IS_POST) { $model = D('Category')->where(array('catid' => $catid))->getField('model'); $mapList = dict('map', 'Category'); //模型映射 $db = M($mapList[$model]); $ids = I('post.ids', array()); foreach ($ids as $id) { $db->where(array('id' => $id))->delete(); } $this->success('操作成功'); } else { $this->error('操作失败'); } }
/** * 添加客户 */ public function memberAdd() { if (IS_POST) { $member_db = M('member'); $data = I('post.info'); if (!$data['user']) { $data['user'] = session('userid'); } $data['create_time'] = date("Y-m-d", time()); $admin_db = D('Admin'); $charger = $admin_db->where(array('userid' => session('userid')))->find(); $data['department'] = $charger['area']; $id = $member_db->add($data); if ($id) { $this->success('添加成功'); } else { $this->error('添加失败'); } } else { $admin_db = D('admin'); $currentAdmin = $admin_db->where(array('userid' => session('userid')))->find(); $member_type_db = M('member_type'); $typelist = $member_type_db->where(array('disabled' => '0'))->getField('typeid,typename', true); $dict = dict('', 'Member'); $this->assign('currentAdmin', $currentAdmin); $this->assign('dict', $dict); $this->assign('typelist', $typelist); $this->display('member_add'); } }
private function db($param) { if (!is_array($param)) { $param = array('catid' => is_numeric($param) ? $param : I('param.catid'), 'field' => I('param.field'), 'type' => I('param.type')); } $catid = I('data.catid', 0, 'intVal', $param); $field = I('data.field', 0, 'intVal', $param); $type = I('data.type', 0, 'intVal', $param); $result = array(); $dict = dict('', 'Category'); if (!$field) { if (!$type) { $category_db = D('Category'); $type = $category_db->where(array('catid' => $catid))->getField('type'); } $field = $dict['type'][substr($type, 0, 1)]; if ($type > 9) { $field = $field['son'][$type]; } $field = $field['field']; } $model = isset($dict['map'][$field]) ? $dict['map'][$field] : $field; return M($model); }
/** * 更新缓存 */ public function public_clearCatche() { $list = dict('', 'Cache'); if (is_array($list) && !empty($list)) { foreach ($list as $modelName => $funcName) { D($modelName)->{$funcName}(); $this->show("更新模块:{$modelName} ...... 成功 <br/>"); } } $this->show("缓存更新完毕"); }
/** * 角色栏目权限 */ public function roleCat($id = 0) { if (IS_POST) { if (I('get.grid') == 'treegrid') { $category_db = M('category'); $where = array('parentid' => $id); $order = array('listorder' => 'asc', 'catid' => 'desc'); $total = $category_db->where($where)->count(); $roleid = I('get.roleid'); //获取已设置的权限列表 $category_priv_db = M('category_priv'); $privList = $category_priv_db->where(array('roleid' => $roleid))->select(); $privs = array(); foreach ($privList as $priv) { $privs[$priv['action'] . '_' . $priv['catid']] = true; } //获取栏目数据 $list = $total ? $category_db->where($where)->order($order)->select() : array(); $dict = dict('', 'Category'); foreach ($list as &$info) { $type = $dict['type'][substr($info['type'], 0, 1)]; if ($info['type'] > 9) { $type = $type['son'][$info['type']]; } $info['iconCls'] = $info['icon'] ?: $type['icon']; $info['type'] = $type['name']; if ($category_db->where(array('parentid' => $info['catid']))->count()) { $info['state'] = 'closed'; } $info[auths] = $type['auth']; $info['auth'] = array(); foreach ($type['auth'] as $auth) { $key = $auth . '_' . $info['catid']; $checked = isset($privs[$key]) ? ' checked' : ''; array_push($info['auth'], "<label><input type=\"checkbox\" data-catid=\"{$info['catid']}\" value=\"{$auth}\" {$checked}>{$dict['auth'][$auth]}</label>"); } $info['auth'] = implode(' | ', $info['auth']); } $this->ajaxReturn($list); } else { $category_priv_db = M('category_priv'); $info = I('post.info', '[]', 'json_decode'); $data = array(); $category_priv_db->where(array('roleid' => $id))->delete(); foreach ($info as $catid => $auths) { foreach ($auths as $auth) { array_push($data, array('roleid' => $id, 'catid' => $catid, 'action' => $auth)); } } $res = $category_priv_db->addAll($data); $res ? $this->success('操作成功') : $this->error('操作失败'); } } else { $this->display('role_cat'); } }
/** * 查看会员 */ public function memberView($id) { if (IS_POST) { $data = array(); //基本信息 $member_db = M('member'); $field = array('username' => '用户名', 'head' => '头像', 'nick' => '昵称', 'gender' => '性别', 'status' => '状态', 'regip' => '注册IP', 'regtime' => '注册时间', 'lastloginip' => '上次登录IP', 'lastlogintime' => '上次登录时间', 'remark' => '备注', 'typeid' => '会员类型'); $info = $member_db->field('memberid,password,encrypt,head', true)->where(array('memberid' => $id))->find(); $dict = dict('', 'Member'); foreach ($info as $key => $value) { switch ($key) { case 'typeid': $member_type_db = M('member_type'); $typeInfo = $member_type_db->where(array('typeid' => $value))->getField('typeid,typename', true); $value = $typeInfo ? $typeInfo[$value] : '-'; break; case 'regtime': case 'lastlogintime': $value = $value ? date('Y-m-d H:i:s', $value) : '-'; break; case 'regip': case 'lastloginip': $value = $value ? $value : '-'; break; case 'gender': $value = isset($dict['gender'][$value]) ? $dict['gender'][$value] : '-'; break; case 'status': $dict = array(0 => '<font color="red">未认证</font>', 1 => '已认证'); $value = isset($dict[$value]) ? $dict[$value] : '-'; break; } $data[] = array('name' => $field[$key], 'group' => '基本信息', 'value' => $value); } //授权信息 $member_oauth_db = M('member_oauth'); $oauthField = array('nick' => '昵称', 'head' => '头像', 'gender' => '性别', 'type' => '来源', 'addtime' => '首次授权时间'); $list = $member_oauth_db->field(array('nick', 'head', 'gender', 'type', 'addtime'))->where(array('memberid' => $id))->select(); foreach ($list as $info) { foreach ($info as $key => $value) { switch ($key) { case 'head': $value = '<img src="' . $value . '" height="50" />'; break; case 'addtime': $value = date('Y-m-d H:i:s', $value); break; } $data[] = array('name' => $oauthField[$key], 'group' => strtoupper($info['type']) . '授权信息', 'value' => $value); } } $this->ajaxReturn($data); } else { $propertygrid = array('options' => array('url' => U('Member/memberView', array('id' => $id, 'grid' => 'propertygrid')))); $this->assign('propertygrid', $propertygrid); $this->display('member_view'); } }
/** * 更新后台缓存 */ public function public_clearCatche() { $list = dict('', 'Cache'); if (is_array($list) && !empty($list)) { foreach ($list as $modelName => $funcName) { D($modelName)->{$funcName}(); } } $this->success('缓存更新成功'); }
function main($arr) { $d = dict($arr); return $d; }