public function actionView($id) { $keyid = zmf::filterInput($id); $checkInfo = Posts::checkInfo($info, $keyid, 'posts'); if (!$checkInfo['status']) { $this->message(0, $checkInfo['msg']); } if ($info['redirect'] != '') { $this->redirect(zmf::config('domain') . $info['redirect'], true, 301); } if ($info['classify'] == Posts::CLASSIFY_BLOG) { $this->redirect(zmf::config('blog_domain') . '/post/' . $keyid . '.html', true, 301); } $groupInfo = array(); if ($info['groupid'] > 0) { $groupInfo = WeddingGroup::getOne($info['groupid']); if ($groupInfo['status'] != Posts::STATUS_PASSED) { $this->message(0, '该团队已不存在'); } $groupInfo['avatar'] = Users::getAvatar($groupInfo['avatar']); } $keyid = $info['id']; $this->currentColid = $info['colid']; $colinfo = Column::getSimpleInfo($info['colid']); $breads[] = CHtml::link('作品', array('posts/index')); if ($colinfo) { $breads[] = CHtml::link($colinfo['title'], array('posts/index', 'colid' => $colinfo['id'])); } //更新统计 Posts::updateCount($keyid, 'Posts'); //获取用户推荐文章 $sqlUser = "******" . Posts::CLASSIFY_WEDDING . " ORDER BY hits DESC LIMIT 5"; $userPosts = Yii::app()->db->createCommand($sqlUser)->queryAll(); //获取标签 $info['tagids'] = join(',', explode(',', $info['tagids'])); $relPosts = array(); if ($info['tagids'] != '') { //获取与本文类似文章 //计算方法为与本文提到的标签相关文章出现次数最多的 $relPosts = Posts::getTopPostsByTags($id, $info['tagids']); $_sql = "SELECT id,title FROM {{tags}} WHERE classify='posts' AND id IN({$info['tagids']})"; $info['tagids'] = Yii::app()->db->createCommand($_sql)->queryAll(); } if (!empty($userPosts)) { foreach ($userPosts as $k => $p) { if ($p['faceimg'] > 0) { $_attach = Attachments::getOne($p['faceimg']); $_url = Attachments::getUrl($_attach); $userPosts[$k]['faceimg'] = $_url; } else { $userPosts[$k]['faceimg'] = ''; } } } if (!empty($relPosts)) { foreach ($relPosts as $k => $p) { if ($p['faceimg'] > 0) { $_attach = Attachments::getOne($p['faceimg']); $_url = Attachments::getUrl($_attach); $relPosts[$k]['faceimg'] = $_url; } else { $relPosts[$k]['faceimg'] = ''; } } } //判断是否已收藏和赞过 if (!Yii::app()->user->isGuest) { if (Favorites::checkFavored($keyid, 'posts')) { $this->favorited = true; } if (UserAction::checkAction($keyid, 'favorPost')) { $this->favored = true; } } $breads[] = $info['title']; $data = array('colinfo' => $colinfo, 'data' => $info, 'breads' => $breads, 'userPosts' => $userPosts, 'relPosts' => $relPosts, 'groupInfo' => $groupInfo); $this->pageTitle = (!empty($colinfo) ? "【{$colinfo['title']}】" : '') . $info['title'] . ' - ' . zmf::config('sitename'); $this->render('view', $data); }
/** * 将文章置为某种状态,如置顶 */ public function actionSetStatus() { Users::checkPower('setstatus'); $keyid = zmf::filterInput($_POST['a']); $classify = zmf::filterInput($_POST['b'], 't', 1); $_status = zmf::filterInput($_POST['c'], 't', 1); if (!$keyid) { $this->jsonOutPut(0, '请选择对象'); } if (!in_array($classify, array('posts', 'attachments', 'comments', 'travel'))) { $this->jsonOutPut(0, '不允许的类型'); } if (!in_array($_status, array('top', 'canceltop', 'del'))) { $this->jsonOutPut(0, '不允许的类型'); } if ($_status == 'top') { if ($classify == 'travel') { $attr = array('toped' => 1, 'lastTime' => zmf::now()); } elseif ($classify == 'posts') { $attr = array('top' => 1, 'updateTime' => zmf::now()); } else { $attr = array('top' => 1); } } else { if ($_status == 'canceltop') { if ($classify == 'travel') { $attr = array('toped' => 0); } else { $attr = array('top' => 0); } } else { if ($_status == 'del') { $status = Posts::STATUS_DELED; $attr = array('status' => Posts::STATUS_DELED); } } } $ucClassify = ucfirst($classify); if (!class_exists($ucClassify)) { $this->jsonOutPut(0, '不存在的类型'); } $checkInfo = Posts::checkInfo($info, $keyid, $classify); if (!$checkInfo['status']) { $this->jsonOutPut(0, $checkInfo['msg']); } $model = new $ucClassify(); if ($model->updateByPk($keyid, $attr)) { if ($info['uid'] != zmf::uid()) { if ($_status == 'top' && $classify == 'posts') { $_noticedata = array('uid' => $info['uid'], 'authorid' => zmf::uid(), 'content' => '您的文章已被置顶,' . CHtml::link('查看详情', array('posts/index', 'id' => $keyid)), 'new' => 1, 'type' => $_status . $ucClassify, 'cTime' => zmf::now(), 'from_id' => $keyid, 'from_num' => 1); Notification::add($_noticedata); } } //记录管理员的操作 $attr = array('logid' => $keyid, 'classify' => 'top', 'actype' => 'post', 'acvalue' => $_status . $ucClassify, 'desc' => ''); AdminAction::add($attr); $this->jsonOutPut(1, '操作成功'); } else { $this->jsonOutPut(0, '操作失败'); } }