public function actionIndex() { $this->poiType = zmf::filterInput($_GET['type']); $this->poiOrder = zmf::filterInput($_GET['order']); $areaid = zmf::filterInput($_GET['areaid']); if (!$this->poiOrder || !in_array($this->poiOrder, array('1', '2'))) { $this->poiOrder = '1'; } $where = $order = ''; if ($areaid) { $extra = Area::getAreaInfo($areaid); $areaIds = $extra['areaIds']; $areaInfo = $extra['areaInfo']; if ($areaIds) { $where .= " areaid IN({$areaIds}) AND "; } } $_typename = Position::exClassify($this->poiType); if ($this->poiType && $_typename && !is_array($_typename)) { $where .= " classify='{$this->poiType}' AND "; } else { $this->poiType = ''; $_typename = '的景点、酒店、餐厅及购物'; } if ($this->poiOrder == '1') { $order = ' ORDER BY score DESC'; } elseif ($this->poiOrder == '2') { $order = ' ORDER BY scorer DESC'; } //获取景点列表 $sql = "SELECT id,title_cn,title_en,title_local,address_cn,address_en,address_local,score,scorer,attach,lat,`long`,faceimg,classify FROM {{position}} WHERE {$where} forWedding=1 AND status=" . Posts::STATUS_PASSED . $order; Posts::getAll(array('sql' => $sql), $pages, $posts); //获取所有受推荐地区 $areas = Area::getTops(0); //面包屑 $breads[] = CHtml::link('目的地', array('position/index')); if ($areaInfo) { $breads[] = $areaInfo['title']; } //页面SEO $this->pageTitle = '目的地 - ' . zmf::config('sitename'); $this->render('index', array('posts' => $posts, 'pages' => $pages, 'areas' => $areas, 'breads' => $breads, 'areaId' => $areaid)); }
/** * 按地区显示的主页 */ public function actionShow() { $areaid = zmf::filterInput($_GET['areaid']); $where = $order = $areaInfo = ''; if ($areaid) { $extra = Area::getAreaInfo($areaid); $areaIds = $extra['areaIds']; $areaInfo = $extra['areaInfo']; if ($areaIds) { $where .= " areaid IN({$areaIds}) AND "; } } //获取热门游记 $_postsql = "SELECT * FROM {{posts}} WHERE {$where} classify='" . Posts::CLASSIFY_TRAVEL_LOG . "' AND status=" . Posts::STATUS_PASSED . " ORDER BY cTime DESC LIMIT 8"; $posts = Yii::app()->db->createCommand($_postsql)->queryAll(); if (!empty($posts)) { foreach ($posts as $k => $p) { $posts[$k]['coltitle'] = ''; if ($p['colid']) { $coltitle = Column::getOne($p['colid'], 'title'); if ($coltitle) { $posts[$k]['coltitle'] = $coltitle; } } } } //获取图片 // $_attsql = "SELECT * FROM {{attachments}} WHERE areaid IN(" . $this->areaIds . ") AND classify='poi' AND status=" . Posts::STATUS_PASSED . " ORDER BY cTime DESC LIMIT 8"; // $attaches = Yii::app()->db->createCommand($_attsql)->queryAll(); //获取点评 // $_postsql = "SELECT * FROM {{poi_post}} WHERE areaid IN(" . $this->areaIds . ") AND status=" . Posts::STATUS_PASSED . " ORDER BY cTime DESC LIMIT 5"; // $poiposts = Yii::app()->db->createCommand($_postsql)->queryAll(); // foreach ($poiposts as $k => $poipost) { // $_info = Posts::getSimpleInfo(array('keyid' => $poipost['logid'], 'origin' => 'position'), 'title'); // $poiposts[$k]['poiTitle'] = $_info; // } //将问题和回答混合到动态里 // $_qasql = "SELECT * FROM ((SELECT 'question' AS type,id,uid,'logid',title,content,cTime,answers,comments,favorite AS favor,'nouse' FROM {{question}} WHERE areaid IN(" . $this->areaIds . ") AND status=" . Posts::STATUS_PASSED . " ORDER BY cTime DESC LIMIT 5) UNION (SELECT 'answer' AS type,id,uid,logid,'title',content,cTime,'answers',comments,favor,nouse FROM {{answer}} WHERE areaid IN(" . $this->areaIds . ") AND status=" . Posts::STATUS_PASSED . " ORDER BY cTime DESC LIMIT 5)) as t ORDER BY t.cTime DESC"; // $questions = Yii::app()->db->createCommand($_qasql)->queryAll(); // foreach ($questions as $k => $v) { // if ($v['type'] == 'answer') { // $_info = Posts::getSimpleInfo(array('keyid' => $v['logid'], 'origin' => 'question'), 'title'); // $questions[$k]['qtitle'] = $_info; // } // } //热门坐标 $_poisql = "SELECT id,title_cn,title_en,title_local,address_cn,address_en,address_local,score,scorer,attach,lat,`long`,faceimg,classify FROM {{position}} WHERE {$where} status=" . Posts::STATUS_PASSED . " ORDER BY scorer DESC LIMIT 5"; $positions = Yii::app()->db->createCommand($_poisql)->queryAll(); //获取小提示 // $_poi_tips_sql = "SELECT 'PoiTips' AS type,id,uid,content,'score','cost',favor,comments,cTime,platform FROM {{poi_tips}} WHERE logid={$this->theAreaId} AND classify=" . Position::AREA . " AND status=" . Posts::STATUS_PASSED . " ORDER BY favor LIMIT 10"; // $poitips = Yii::app()->db->createCommand($_poi_tips_sql)->queryAll(); // //获取所有受推荐地区 $areas = Area::getTops(0); //面包屑 $breads[] = CHtml::link('目的地', array('position/index')); //页面SEO // $this->pageTitle = $this->areaInfo['title'] . '攻略,' . $this->areaInfo['title'] . '游记,' . $this->areaInfo['title'] . '行程推荐,' . $this->areaInfo['title'] . '问答 - ' . zmf::config('sitename'); // $this->keywords = zmf::time('', 'Y年') . $this->areaInfo['title'] . '游记,' . $this->areaInfo['title'] . '行程推荐,' . $this->areaInfo['title'] . '问答,' . $this->areaInfo['title'] . '景点'; // $this->pageDescription = '【' . $this->areaInfo['title'] . '】' . $this->areaInfo['title'] . '游记,' . $this->areaInfo['title'] . '照片,' . $this->areaInfo['title'] . '热门景点、酒店、餐厅、购物以及与' . $this->areaInfo['title'] . '有关的问与答'; $data = array('areaInfo' => $areaInfo, 'areaid' => $areaid, 'posts' => $posts, 'areas' => $areas, 'breads' => $breads, 'attaches' => $attaches, 'poiposts' => $poiposts, 'questions' => $questions, 'positions' => $positions, 'poitips' => $poitips, 'weather' => $weather); $this->render('show', $data); }
public function actionCreate() { $model = new WeddingGroup(); if (isset($_POST['WeddingGroup'])) { $model->attributes = $_POST['WeddingGroup']; if ($model->save()) { //谁创建谁默认属于本团队成员 $glinkAttr = array('groupid' => $model->id, 'uid' => $this->uid, 'isAdmin' => 1); $glModel = new GroupLink(); $glModel->attributes = $glinkAttr; $glModel->save(); //相关标签 $tags = $_POST['tagnames']; $tags = !empty($tags) ? array_unique(array_filter($tags)) : array(); $tagids = array(); if (!empty($tags)) { foreach ($tags as $str) { $_tmp = explode('-', $str); if ($_tmp[1] > 0) { //添加对应关系 if (Tags::addRelation($_tmp[1], $model->id, 'wgroup')) { $tagids[] = $_tmp[1]; } } else { //查找是否有对应话题 $_tagid = Tags::findAndAdd($_tmp[0], 'wgroup', $model->id); if ($_tagid) { $tagids[] = $_tagid; } } } $tagids = !empty($tagids) ? array_unique(array_filter($tagids)) : array(); } $tagStr = join(',', $tagids); WeddingGroup::model()->updateByPk($model->id, array('tagids' => $tagStr)); $this->redirect(array('group/view', 'id' => $model->id)); } } //未认证用户不能创建团队 if (!$this->userInfo['creditStatus']) { $this->message(0, '请完善资料并提交个人认证', Yii::app()->createurl('users/config', array('type' => 'info'))); } else { //todo,创建的团队数量限制 } //获取所有受推荐地区 $topAreas = Area::getTops(0); $areas = CHtml::listData($topAreas, 'id', 'title'); $suggestTags = Tags::getTops('posts'); $data = array('model' => $model, 'areas' => $areas, 'suggestTags' => $suggestTags); $this->render('create', $data); }
/** * 已取消其他文章类型,默认为游记 * @param type $classify,分类 */ public function actionCreate($id = '') { $id = zmf::filterInput($id); if (!zmf::uid()) { $this->redirect(array('site/login')); } if ($id) { $model = $this->loadModel($id); if ($model->uid != zmf::uid()) { if (!Users::checkPower('editpost', false, true)) { throw new CHttpException(403, '不被允许的操作.'); } } } else { $model = new Posts(); $model->classify = Posts::CLASSIFY_WEDDING; //文章分类 } if (isset($_POST['ajax']) && $_POST['ajax'] === 'posts-form') { echo CActiveForm::validate($model); Yii::app()->end(); } if (isset($_POST['Posts'])) { //判断是否应被禁止 //todo,应排除编辑 // $forbidInfo = Posts::isForbidden($_POST['Posts']['content'], 'post'); // if ($forbidInfo['status'] != Posts::STATUS_PASSED) { // //todo,增加用户非法操作次数 // $_POST['Posts']['status'] = Posts::STATUS_STAYCHECK; // } //处理文本 $filter = Posts::handleContent($_POST['Posts']['content']); $_POST['Posts']['content'] = $filter['content']; foreach ($_POST['Posts'] as $k => $val) { $_POST['Posts'][$k] = zmf::filterInput($val, 't'); } if (Yii::app()->session['checkHasBadword'] == 'yes') { $_POST['Posts']['status'] = Posts::STATUS_STAYCHECK; } if (!$model->isNewRecord) { $_POST['Posts']['updateTime'] = zmf::now(); $isNew = false; } else { $isNew = true; } unset(Yii::app()->session['checkHasBadword']); if (!empty($filter['attachids'])) { $attkeys = array_filter(array_unique($filter['attachids'])); if (!empty($attkeys)) { $_POST['Posts']['faceimg'] = $attkeys[0]; //默认将文章中的第一张图作为封面图 } } else { $_POST['Posts']['faceimg'] = ''; //否则将封面图置为空(有可能编辑后没有图片了) } //相关标签 $tags = $_POST['tagnames']; $tags = !empty($tags) ? array_unique(array_filter($tags)) : array(); $model->attributes = $_POST['Posts']; if ($model->save()) { //将上传的图片置为通过 Attachments::model()->updateAll(array('status' => Posts::STATUS_DELED), 'logid=:logid AND classify=:classify', array(':logid' => $model->id, ':classify' => 'posts')); if (!empty($attkeys)) { $attstr = join(',', $attkeys); if ($attstr != '') { Attachments::model()->updateAll(array('status' => Posts::STATUS_PASSED, 'logid' => $model->id), 'id IN(' . $attstr . ')'); } } //相关标签 $tagids = array(); if (!empty($tags)) { foreach ($tags as $str) { $_tmp = explode('-', $str); if ($_tmp[1] > 0) { //添加对应关系 if (Tags::addRelation($_tmp[1], $model->id, 'posts')) { $tagids[] = $_tmp[1]; } } else { //查找是否有对应话题 $_tagid = Tags::findAndAdd($_tmp[0], 'posts', $model->id); if ($_tagid) { $tagids[] = $_tagid; } } } $tagids = !empty($tagids) ? array_unique(array_filter($tagids)) : array(); $tagStr = join(',', $tagids); if ($tagStr != '') { Posts::model()->updateByPk($model->id, array('tagids' => $tagStr)); } } $this->redirect(array('view', 'id' => $model->id)); } } //未认证用户不能创建团队 if (!$this->userInfo['creditStatus']) { $this->message(0, '请完善资料并提交个人认证', Yii::app()->createurl('users/config', array('type' => 'info'))); } //文章分类 $cols = Column::allCols(1, 0, 1, Posts::CLASSIFY_WEDDING); if (!$model->isNewRecord) { $model->content = zmf::text(array('action' => 'edit'), $model->content, false, 600); } //获取所有受推荐地区 $topAreas = Area::getTops(0); $areas = CHtml::listData($topAreas, 'id', 'title'); //推荐的标签 $suggestTags = Tags::getTops('posts'); //我所加入的团队 $groups = WeddingGroup::getUserGroup($this->uid); $this->pageTitle = '新增作品 - ' . zmf::config('sitename'); $this->render('create', array('model' => $model, 'cols' => $cols, 'action' => $action, 'areas' => $areas, 'suggestTags' => $suggestTags, 'groups' => $groups)); }