protected function _initialize() { /* 读取站点配置 */ $config = api('Config/lists'); C($config); //添加配置 if (!C('WEB_SITE_CLOSE') && $_SESSION[C('USER_AUTH_KEY')] != 1) { $this->error('站点已经关闭,请稍后访问~', '', 1000); } $a = D('Member')->need_login(); $field = array('uid', 'username', 'nickname', 'name', 'email', 'space_url', 'reg_time', 'last_login_time', 'signature', 'avatar32', 'avatar64', 'avatar128', 'avatar256'); $userinfo = query_user($field, $_SESSION['cs_home']['user_auth']['uid']); $roleauth = getmroleauth(); checkscore($_SESSION['cs_home']['user_auth']['uid']); $mymail['status'] = 1; $mymail['is_read'] = 0; $mymail['to_uid'] = $_SESSION['cs_home']['user_auth']['uid']; $mymailcount = M('Message')->where($mymail)->count(); $userinfo['mymailcount'] = empty($mymailcount) ? '' : $mymailcount; $isadmin = is_admin($_SESSION['cs_home']['user_auth']['uid']); $this->assign('isadmin', $isadmin); $this->assign('user_auth', session('user_auth')); $this->assign('uid', getnowUid()); $this->assign('userinfo', $userinfo); $this->assign('roleauth', $roleauth); //得到会员组权限 $cname = strtolower(CONTROLLER_NAME); $aname = strtolower(ACTION_NAME); $this->assign('aname', $aname); $this->assign('cname', $cname); $cate = new CategoryApi(); $clist = $cate->get_catelist(0); $clistnum = $cate->get_editcnum(); $this->assign('clist', $clist); $nosigncate = M('Cate')->where(array('status' => 1, 'type' => 1))->select(); $m = D('cate'); $catelist = $m->field('*,CONCAT(spid,id) as path2')->where(array('type' => 1, 'status' => 1))->order('path2')->select(); $t = new tree(); $catelistarr = $t->unlimitCategoryFormat($catelist); $catehtml = $t->treeFormat($catelistarr); $this->assign('catehtml', $catehtml); $this->assign('nosigncate', $nosigncate); $this->assign('clistnum', $clistnum); $nav = D('nav')->where(array('status' => 1))->order('sort desc')->select(); foreach ($nav as $key => $vo) { $nav[$key]['url'] = navurl($vo['id'], $vo['type']); $nav[$key]['active'] = navactive($vo['id'], $vo['type']); if ($vo['win']) { $nav[$key]['target'] = '_blank'; } else { $nav[$key]['target'] = '_self'; } } $this->assign('nav', $nav); }
/** * 文件上传 * @param array $files 要上传的文件列表(通常是$_FILES数组) * @param array $setting 文件上传配置 * @param string $driver 上传驱动名称 * @param array $config 上传驱动配置 * @return array 文件上传成功后的信息 */ public function upload($files, $setting, $driver = 'Local', $config = null) { /* 上传文件 */ $setting['callback'] = array($this, 'isFile'); $setting['removeTrash'] = array($this, 'removeTrash'); $uid = is_login(); if (!is_admin($uid)) { $roleauth = getmroleauth($uid); $setting['maxSize'] = $roleauth['filesize'] * 1024; $setting['exts'] = $roleauth['fileext']; } $Upload = new \Think\Upload($setting, $driver, $config); $info = $Upload->upload($files); /* 设置文件保存位置 */ $this->_auto[] = array('location', 'Ftp' === $driver ? 1 : 0, self::MODEL_INSERT); if ($info) { //文件上传成功,记录文件信息 foreach ($info as $key => &$value) { /* 已经存在文件记录 */ if (isset($value['id']) && is_numeric($value['id'])) { continue; } /* 记录文件信息 */ if ($this->create($value) && ($id = $this->add())) { $value['id'] = $id; } else { //TODO: 文件上传成功,但是记录文件信息失败,需记录日志 unset($info[$key]); } } return $info; //文件上传成功 } else { $this->error = $Upload->getError(); return false; } }
/** * 文件上传 * @param array $files 要上传的文件列表(通常是$_FILES数组) * @param array $setting 文件上传配置 * @param string $driver 上传驱动名称 * @param array $config 上传驱动配置 * @return array 文件上传成功后的信息 */ public function upload($files, $setting, $driver = 'Local', $config = null) { /* 上传文件 */ $setting['callback'] = array($this, 'isFile'); $setting['removeTrash'] = array($this, 'removeTrash'); $uid = is_login(); if (!is_admin($uid)) { $roleauth = getmroleauth($uid); $setting['maxSize'] = $roleauth['filesize'] * 1024; $setting['exts'] = $roleauth['fileext']; } $Upload = new Upload($setting, $driver, $config); $info = $Upload->upload($files); if ($info) { //文件上传成功,记录文件信息 foreach ($info as $key => &$value) { /* 已经存在文件记录 */ if (isset($value['id']) && is_numeric($value['id'])) { continue; } /* 记录文件信息 */ $value['path'] = substr($setting['rootPath'], 1) . $value['savepath'] . $value['savename']; //在模板里的url路径 if ($this->create($value) && ($id = $this->add())) { $value['id'] = $id; } else { //TODO: 文件上传成功,但是记录文件信息失败,需记录日志 unset($info[$key]); } } return $info; //文件上传成功 } else { $this->error = $Upload->getError(); return false; } }
function getarteditauth($id, $uid) { //获得是否有编辑文章的权利 $uid = $uid ? $uid : is_login(); if ($uid == 1) { return true; } $map['id'] = $id; $info = D('Article')->where($map)->find(); if ($info['uid'] == $uid) { if ($info['status'] == 5 || $info['status'] == 2) { return true; } else { $auth = getmroleauth($uid); if ($auth['yesartedit']) { if ($info['create_time'] + $auth['artedittime'] * 60 < time()) { return false; } else { return true; } } else { return true; } } } else { return false; } }
public function artedit() { if (IS_POST) { $input = new \OT\Input(); $input->noGPC(); $uid = $_SESSION['cs_home']['user_auth']['uid']; if (!$uid > 0) { $this->error('请先登录'); } if (false === ($data = D('Article')->create())) { $this->error(0, D('Article')->getError()); } $data['description'] = op_h(I('description')); if ($data['cid'] == null) { $this->error('分类为空'); } if (mb_strlen(op_h($data['description']), 'utf-8') < 30) { $this->error('文章内容必须大于30字'); } if (mb_strlen($data['title'], 'utf-8') > 80) { $this->error('文章标题必须小于80字'); } //$data['tag']=op_t($data['tag']); foreach ($data['tag'] as $key => $vo) { $data['tag'][$key] = mb_substr($vo, 0, 15, 'utf-8'); } D('Tags')->InsertTags($data['tag'], 1, $data['id']); $data['tag'] = implode(',', $data['tag']); //$data['description']=$data['description']; $data['title'] = op_t($data['title']); $data['uid'] = $uid; $status = $data['status']; $ystatus = D('Article')->where(array('id' => $data['id']))->getField('status'); //保存当前数据对象 $list = D('Article')->save($data); if ($list !== false) { if ($status == 1 && $ystatus != 1) { setuserscore($uid, C('ARTSCORE')); } $this->success('编辑文章成功!', U('Ucenter/userart')); } else { $this->error('编辑文章失败!'); } } else { $uid = is_login(); $id = I('id'); if (!is_admin($uid)) { $roleauth = getmroleauth($uid); // $setting['exts'] =$roleauth['fileext']; $extsarr = explode(',', $roleauth['fileext']); if (!empty($extsarr)) { $extstr = ''; foreach ($extsarr as $key1 => $vo1) { $extstr .= '*.' . $vo1 . ';'; } $this->assign('extstr', $extstr); } if (!getarteditauth($id, $uid)) { $this->error('无权编辑该文章或编辑时间已过', '', false, true); } } $info = callApi('Art/getArtInfo', array($id)); $info['data']['description'] = stripcslashes($info['data']['description']); $this->assign('info', $info['data']); $this->display(); } }