public function run()
 {
     $criteria = new CdbCriteria();
     $criteria->limit = $this->data('limit');
     $criteria->offset = $this->data('offset');
     $criteria->condition = "post_status='publish' AND (post_modified <= '" . date('Y-m-d H:i:s') . "' AND post_modified >= '" . $this->data('time') . "')";
     $criteria->order = 'post_hits DESC';
     if ($this->data('autoByTerm')) {
         if (isset($_GET['id'])) {
             $category = Category::model()->findByPK((int) $_GET['id']);
             $label = Label::model()->findByPK((int) $_GET['id']);
             $topic = Topic::model()->findByPK((int) $_GET['id']);
             $tag = Tag::model()->findByPK((int) $_GET['id']);
             if ($category != null) {
                 $criteria = $this->getCriteriaTerm('categories', $criteria);
             } elseif ($label != null) {
                 $criteria = $this->getCriteriaTerm('labels', $criteria);
             } elseif ($topic != null) {
                 $criteria = $this->getCriteriaTerm('topics', $criteria);
             } elseif ($tag != null) {
                 $criteria = $this->getCriteriaTerm('tags', $criteria);
             }
         }
     }
     $model = Post::model()->findAll($criteria);
     if ($model != null) {
         $this->layout($model);
     }
 }
Beispiel #2
0
 public function actionList()
 {
     $criteria = new CDbCriteria();
     $criteria->order = 'id asc';
     $topics = Topic::model()->findAll($criteria);
     $this->render('list', array('topics' => $topics));
 }
 private function loadModel($id, $slug)
 {
     $models = Topic::model()->findByAttributes(array('term_id' => (int) $id, 'slug' => $slug));
     if ($models === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $models;
 }
Beispiel #4
0
 public function actionList()
 {
     $this->channel = 'topic';
     $criteria = new CDbCriteria();
     $criteria->order = 'orderid desc, post_nums desc, id asc';
     $topics = Topic::model()->findAll($criteria);
     $this->setSiteTitle(t('all_topic_list'));
     $this->setPageKeyWords(null);
     $this->setPageDescription(t('all_topics_description'));
     cs()->registerMetaTag('all', 'robots');
     $this->render('list', array('topics' => $topics));
 }
 public function loadTag($data = '', $operation = 'OR')
 {
     $criteria = new CdbCriteria();
     $cond = '';
     $criteria = new CDbCriteria();
     if (!empty($data)) {
         foreach ($data as $key => $val) {
             $cond .= " term_id='{$val}' ";
             if (end($data) !== $val) {
                 $cond .= $operation;
             }
         }
     }
     $criteria->condition = $cond;
     $criteria->order = "name DESC";
     $model = Topic::model()->findAll($criteria);
     return $model;
 }
Beispiel #6
0
 /**
  * Creates a new posts.
  * If creation is successful, the browser will be redirected to the 'show' page.
  */
 public function actionCreate()
 {
     if (isset($_POST['Post'])) {
         $user = User::model()->find('username = :username', array('username' => Yii::app()->user->name));
         $session = Yii::app()->session;
         $topic = Topic::model()->findByPk($session['topic_id']);
         $forum = Forum::model()->findByPk($session['forum_id']);
         /*$transaction = Post::model()->dbConnection->beginTransaction();
         		try {
         		*/
         $now = date('Y-m-d H:i:s');
         $post = new Post();
         $post->user_id = $user->id;
         $post->topic_id = $session['topic_id'];
         $post->forum_id = $session['forum_id'];
         $post->body = $_POST['Post']['body'];
         // TODO: fix me
         $post->body_html = $post->body;
         $post->created_at = $now;
         $post->updated_at = $now;
         if (!$post->save()) {
             var_dump('<pre>', $post->getErrors());
         }
         if (!$user->save()) {
             var_dump('<pre>', $user->getErrors());
         }
         $topic->updated_at = $now;
         /*$topic->replied_at = $now;
         		$topic->replied_by = $user->id;
         		$topic->last_post_id = $post->id;*/
         if (!$topic->save()) {
             var_dump('<pre>', $topic->getErrors());
         }
         /*$transaction->commit();
         
         			} catch(Exception $e) {
         				$transaction->rollBack();
         				throw new CHttpException(500, 'Failed to save post');
         			}*/
         $url = $this->createUrl('topic/view', array('id' => $session['topic_id'], '#' => "post-{$post->id}"));
         $this->redirect($url);
     }
 }
Beispiel #7
0
 /**
  * 显示主页
  * @param String $order
  */
 public function actionIndex($order = "new")
 {
     //根据不同的order 选择不同的sql语句
     switch ($order) {
         case 'new':
             $sql = "select `{{question}}`.`id` as `question_id`,`{{question}}`.`question_content`,`{{question}}`.`add_time`,`{{question}}`.`answer_count`,`{{question}}`.`view_count`,`{{question}}`.`lock`,`{{question}}`.`best_answer`,`{{users}}`.`avatar_file`,`{{users}}`.`uid`\n\t\t\t\tfrom `{{question}}`\n\t\t\t\tleft join `{{users}}` on (`{{question}}`.`published_uid`=`{{users}}`.`uid`) order by `{{question}}`.`add_time` desc\n\t\t\t\t";
             break;
             //热门查看人数排序
         //热门查看人数排序
         case 'hot':
             $sql = "select `{{question}}`.`id` as `question_id`,`{{question}}`.`question_content`,`{{question}}`.`add_time`,`{{question}}`.`answer_count`,`{{question}}`.`view_count`,`{{question}}`.`lock`\n\t\t\t\t,`{{users}}`.`avatar_file`,`{{users}}`.`uid`\n\t\t\t\tfrom `{{question}}`\n\t\t\t\tleft join `{{users}}` on (`{{question}}`.`published_uid`=`{{users}}`.`uid`) order by `{{question}}`.`view_count` desc\n\t\t\t\t";
             break;
             //未回复数排序
         //未回复数排序
         case 'unresponsive':
             $sql = "select `{{question}}`.`id` as `question_id`,`{{question}}`.`question_content`,`{{question}}`.`add_time`,`{{question}}`.`answer_count`,`{{question}}`.`view_count`,`{{question}}`.`lock`\n\t\t\t\t,`{{users}}`.`avatar_file`,`{{users}}`.`uid`\n\t\t\t\tfrom `{{question}}`\n\t\t\t\tleft join `{{users}}` on (`{{question}}`.`published_uid`=`{{users}}`.`uid`) where `{{question}}`.`answer_count` = 0\n\t\t\t\t";
             break;
             //默认根据时间排序
         //默认根据时间排序
         default:
             $sql = "select `{{question}}`.`id` as `question_id`,`{{question}}`.`question_content`,`{{question}}`.`add_time`,`{{question}}`.`answer_count`,`{{question}}`.`view_count`,`{{question}}`.`lock`\n\t\t\t\t,`{{users}}`.`avatar_file`,`{{users}}`.`uid`\n\t\t\t\tfrom `{{question}}`\n\t\t\t\tleft join `{{users}}` on (`{{question}}`.`published_uid`=`{{users}}`.`uid`) order by `{{question}}`.`add_time` desc\n\t\t\t\t";
             break;
     }
     $connection = Yii::app()->db;
     $criteria = new CDbCriteria();
     $models = $connection->createCommand($sql)->queryAll();
     $count = count($models);
     $pages = new CPagination($count);
     $pages->pageSize = 10;
     $pages->applylimit($criteria);
     $models = $connection->createCommand($sql . " LIMIT :offset,:limit");
     $models->bindValue(':offset', $pages->currentPage * $pages->pageSize);
     $models->bindValue(':limit', $pages->pageSize);
     $models = $models->queryAll();
     //获取话题
     $topic_models = Topic::model()->findAll(array('select' => 'id,topic_title', 'order' => 'discuss_count desc', 'limit' => '25'));
     $this->pageTitle = "首页";
     $this->render('index', array('models' => $models, 'pages' => $pages, 'topic_models' => $topic_models));
 }
Beispiel #8
0
 /**
  * 删除信息
  * 多表删除  事物处理
  * 删除 question 中信息
  * 删除 answer 表中信息
  * 删除 question 
  * 更新topic中次数
  */
 public function actionDelete($id)
 {
     $transaction = Yii::app()->db->beginTransaction();
     try {
         //删除question 表信息
         if (!Question::model()->deleteByPk($id)) {
             throw new Exception("删除question表失败");
         }
         //删除 topic_question 表 首先把 topic  id 查找出来
         //获取topic id
         $topic_ids = TopicQuestion::model()->findAll(array('select' => 'topic_id', 'condition' => 'question_id=:question_id', 'params' => array(':question_id' => $id)));
         //更新 topic次数
         foreach ($topic_ids as $model) {
             //更新topic 次数
             if (!Topic::model()->updateByPk($model->topic_id, array('discuss_count' => new CDbExpression('discuss_count-1')))) {
                 throw new ErrorException('更新失败');
             }
         }
         //删除topic_question 表中信息
         if (false === TopicQuestion::model()->deleteAll('question_id=:question_id', array('question_id' => $id))) {
             throw new ErrorException('删除topic_question中信息失败');
         }
         //删除question_comment 中信息
         if (false === QuestionComments::model()->deleteAll('question_id=:question_id', array('question_id' => $id))) {
             throw new ErrorException('删除question_comment中信息失败');
         }
         //获取answer_comment 中id
         $answer_comment_models = Answer::model()->findAll(array('select' => 'id', 'condition' => 'question_id=:question_id', 'params' => array(':question_id' => $id)));
         //删除answer_comment 中信息
         foreach ($answer_comment_models as $answer_comment_model) {
             if (false === AnswerComments::model()->deleteAll('answer_id=:answer_id', array(':answer_id' => $answer_comment_model->id))) {
                 throw new ErrorException('删除answer_comment中信息失败');
             }
         }
         //删除answer 表中信息
         if (false === Answer::model()->deleteAll('question_id=:question_id', array('question_id' => $id))) {
             throw new ErrorException('删除answer中信息失败');
         }
         //删除question_focus 中信息
         if (false === QuestionFocus::model()->deleteAll('question_id=:question_id', array('question_id' => $id))) {
             throw new ErrorException('删除question_focus 中信息失败');
         }
         $transaction->commit();
         $this->success('删除成功');
     } catch (Exception $e) {
         $transaction->rollBack();
         exit($e->getMessage());
         $this->error($e->getMessage());
     }
 }
Beispiel #9
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Topic the loaded model
  * @throws CHttpException
  */
 public function loadModel($name)
 {
     //$model=Topic::model()->findByPk($id);
     $model = Topic::model()->findByAttributes(array('name' => $name));
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
Beispiel #10
0
if ($lenght != 0) {
    echo $form->select2Row($userModel, 'topic_ids', array('asDropDownList' => false, 'options' => array('multiple' => true, 'maximumSelectionSize' => $lenght, 'placeholder' => '请输入删除话题', 'width' => '70%', 'tokenSeparators' => array(',', ' '), 'ajax' => array('url' => $this->createUrl('searchtopic'), 'dataType' => 'json', 'data' => 'js: function (term,page) {  return {  name: term , };}', 'results' => 'js: function (data,page) {return {results: data};}'))));
} else {
    echo $form->hiddenField($userModel, 'topic_ids');
}
if ($userModel->topic_ids != "") {
    ?>
        <div class="control-group ">
            <label class="control-label" for="s2id_autogen1">已添加的擅长的话题</label>
            <div class="controls">
                <?php 
    $topicArrays = explode(",", trim($userModel->topic_ids, ","));
    ?>
                <?php 
    foreach ($topicArrays as $topicArray) {
        $topicModel = Topic::model()->findByPk($topicArray);
        ?>
                    <span class="label"><?php 
        echo $topicModel->name;
        ?>
<a href="javascript:;" title="删除" data-type="removetopic" onclick="removeTopic(<?php 
        echo $topicModel->id;
        ?>
)" data-value="<?php 
        echo $topicModel->id;
        ?>
" style="color:#fff;">×</a></span>
                <?php 
    }
    ?>
            </div>
Beispiel #11
0
<style>
    #toModal .control-label{width: 70px;}
    #groupModal .controls{margin-left: 80px;}
</style>
<?php 
$form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array('id' => 'topic-form', 'type' => 'horizontal', 'action' => $action, 'htmlOptions' => array('enctype' => 'multipart/form-data')));
$score = Sys::model()->getvaluesByType("topic_score");
if (Sys::model()->getvaluesByType("topic_type") == "0") {
    $hint = "新建话题奖励你" . $score . "个财富值";
} else {
    $hint = "新建话题会花掉你" . $score . "个财富值";
}
echo $form->textFieldRow($topicModel, 'name', array("hint" => $hint));
echo $form->textAreaRow($topicModel, 'desc');
echo $form->dropDownListRow($topicModel, 'parent_id', Topic::model()->listTopics(0, '', '', '默认话题'), array('encode' => false));
echo $form->fileFieldRow($topicModel, 'logo', array('hint' => '上传图片格式为:gif、jpg、jpeg、png'));
$this->endwidget();
 public function actionViewRecommend()
 {
     header('Content-type: application/json');
     if (!IjoyPlusServiceUtils::validateAPPKey()) {
         IjoyPlusServiceUtils::exportServiceError(Constants::APP_KEY_INVALID);
         return;
     }
     if (IjoyPlusServiceUtils::validateUserID()) {
         IjoyPlusServiceUtils::exportServiceError(Constants::USER_ID_INVALID);
         return;
     }
     $prod_id = Yii::app()->request->getParam("prod_id");
     if (!isset($prod_id) || is_null($prod_id)) {
         IjoyPlusServiceUtils::exportServiceError(Constants::PARAM_IS_INVALID);
         return;
     }
     $program = Program::model()->findByPk($prod_id);
     if ($program === null) {
         IjoyPlusServiceUtils::exportServiceError(Constants::OBJECT_NOT_FOUND);
         return;
     }
     $userid = Yii::app()->request->getParam("user_id");
     if (!isset($userid) || is_null($userid)) {
         $userid = Yii::app()->user->id;
     }
     $prod = ProgramUtil::exportProgramEntity($program);
     $reCom = Dynamic::model()->getDynamicByProd($userid, $prod_id, Constants::DYNAMIC_TYPE_RECOMMEND);
     if (isset($reCom) && !is_null($reCom)) {
         $prod['reason'] = $reCom->content_desc;
     }
     $comments = Comment::model()->getCommentsByProgram($prod_id, 10, 0);
     if (isset($comments) && is_array($comments)) {
         $commentTemps = array();
         foreach ($comments as $comment) {
             $commentTemps[] = IjoyPlusServiceUtils::transferComments($comment);
         }
         $prod['comments'] = $commentTemps;
     } else {
         $prod['comments'] = array();
     }
     $dynamic = Dynamic::model()->friendDynamicForProgram(Yii::app()->user->id, $prod_id, 10, 0);
     if (isset($dynamic) && is_array($dynamic)) {
         $prod['dynamics'] = $this->transferDynamics($dynamic);
     } else {
         $prod['dynamics'] = array();
     }
     $topics = Topic::model()->getRelatedTops($prod_id);
     if (isset($topics) && is_array($topics)) {
         $prod['topics'] = $topics;
     } else {
         $prod['topics'] = array();
     }
     IjoyPlusServiceUtils::exportEntity($prod);
 }
Beispiel #13
0
echo $form->textField($model, 'img_id', array('size' => 10, 'maxlength' => 10));
?>
	</div>

	<div class="row">
		<?php 
echo $form->label($model, 'usr_id');
echo $form->dropDownList($model, 'usr_id', CHtml::listData(User::model()->findAll(), 'usr_id', 'name'));
?>
    
	</div>

	<div class="row">
		<?php 
echo $form->label($model, 'topic_id');
echo $form->dropDownList($model, 'topic_id', CHtml::listData(Topic::model()->findAll(), 'topic_id', 'topic'));
?>
    
	</div>

	<div class="row">
		<?php 
echo $form->label($model, 'cmt');
?>
		<?php 
echo $form->textField($model, 'cmt', array('size' => 60, 'maxlength' => 255));
?>
	</div>

	<div class="row">
		<?php 
Beispiel #14
0
        ?>
个问题)</span></div>
                        <?php 
    }
} else {
    echo "<div class='alert alert-info'>暂无最新话题</div>";
}
?>
            </fieldset>
            <fieldset>
                <legend style="margin-bottom: 10px;">最新话题</legend> 
                <?php 
$criteria = new CDbCriteria();
$criteria->order = "create_time  desc";
$criteria->limit = 10;
$newTopicModel = Topic::model()->findAll($criteria);
$count = array();
if (!empty($newTopicModel)) {
    foreach ($newTopicModel as $newTopic) {
        ?>
                        <div class="clearfix" style="padding:4px 0;"><a class="topic-label" style="margin-right:4px;" data-id="<?php 
        echo $newTopic->id;
        ?>
" href="javascript:;" style="margin-right:4px;"><span class="badge"><?php 
        echo $newTopic->name;
        ?>
</span></a><span style="color:#ccc;margin-left:0;">(共<?php 
        echo Question::model()->count("topic_ids like '%," . $newTopic->id . ",%'");
        ?>
个问题)</span></div>
                                <?php 
Beispiel #15
0
 /**
  * Loads the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  */
 protected function loadTopic()
 {
     if (isset($_GET['id'])) {
         $topic = Topic::model()->with('posts')->findbyPk($_GET['id']);
     }
     //die(var_dump($topic));
     if (isset($topic)) {
         return $topic;
     } else {
         throw new CHttpException(500, 'The requested topic does not exist.');
     }
 }
Beispiel #16
0
<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
$criteria = new CDbCriteria();
$criteria->order = "create_time";
$criteria->limit = $limit;
$models = Topic::model()->findAll($criteria);
if (empty($models)) {
    echo "暂无话题";
} else {
    foreach ($models as $key => $value) {
        ?>
 
        <a class="topic-label" data-id="<?php 
        echo $value->id;
        ?>
" href="javascript:;" title="<?php 
        echo $value->name;
        ?>
"><span class="label"><?php 
        echo $value->name;
        ?>
</span></a>
        <?php 
    }
}
Beispiel #17
0
?>
" height="40p" width="40"></a>
    <span class="side-topic-item ellipsis">       
        <a href="<?php 
echo $this->createUrl("topic", array("id" => $model->id));
?>
" class="topic-link side-topic-title" title="<?php 
echo $model->name;
?>
"><?php 
echo $model->name;
?>
</a>        
        <span class="side-topic-meta clearfix">
            <?php 
$count = Topic::model()->count("parent_id=" . $data->topic_id);
?>
            <?php 
if ($count > 0) {
    ?>
                <span class="zg-gray"><?php 
    echo $count;
    ?>
 个子话题 •</span>
            <?php 
}
?>
            <span class="zg-gray"><?php 
echo $model->join_user == "" ? 0 : count(explode(",", trim($model->join_user, ",")));
?>
 人关注</span>
Beispiel #18
0
        height: 15px;
    }
    .topic-item .delete{right: 30px;}
</style>  

<?php 
$this->pageTitle = "我关注的话题 - " . Yii::app()->name;
?>
<div class="content clearfix">
    <div class="content-left">
        <fieldset>
            <legend>话题动态<span class="pull-right" style="font-size: 14px;"><a href="<?php 
echo $this->createUrl("personal", array("type" => "jointopic", "user_id" => Yii::app()->user->id));
?>
">共关注了<?php 
echo Topic::model()->getAttendtionCount(Yii::app()->user->id);
?>
个话题</a></span></legend>
        </fieldset>
        <?php 
$this->widget('bootstrap.widgets.TbListView', array('dataProvider' => $dataProvider, 'itemView' => '../_topiclist', 'emptyText' => '<div class="alert alert-info">暂无关注的话题</div>', 'template' => '{items}{pager}', 'id' => 'topic-list', 'htmlOptions' => array('style' => 'padding-top:0px')));
?>
    </div>
    <div class="content-right">
        <div class="alert alert-info">将话题固定在边栏,拖动改变他们的位置,以便快速进入</div>
        <fieldset>
            <legend>常去话题<span class="badge badge-info pull-right" style="font-size: 14px;margin-top: 10px;" id="topic-count"><?php 
echo $topicDataProvider->itemCount;
?>
</span></legend>
        </fieldset>
Beispiel #19
0
 protected function loadtopics()
 {
     if (isset($_GET['id'])) {
         $topics = Topic::model()->with('author')->findAll('forum_id = :forum_id', array(':forum_id' => $_GET['id']));
         //$topics = Topic::model()->findAllBySql('SELECT * FROM topics WHERE forum_id = :forum_id', array(':forum_id' => (int)$_GET['id']));
     }
     return $topics;
 }
Beispiel #20
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Topic the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Topic::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
Beispiel #21
0
    echo Topic::model()->findByPk($topicModel->parent_id)->name;
    ?>
</span> </a>
                        </div>
                    </div>
                <?php 
}
?>
                <?php 
if (Topic::model()->count("parent_id=:parent_id", array(":parent_id" => $topicModel->id)) > 0) {
    ?>
                    <div class="sidebar-center">
                        <h3 class="topic-title">子话题</h3>
                        <div class="topic-desc">
                            <?php 
    $childrenModel = Topic::model()->findAll("parent_id=:parent_id", array(":parent_id" => $topicModel->id));
    ?>
                            <?php 
    foreach ($childrenModel as $key => $value) {
        ?>
                                <a class="topic-label"  href="javascript:;" data-id="<?php 
        echo $value->id;
        ?>
"><span class="badge"><?php 
        echo $value->name;
        ?>
</span></a> 
                            <?php 
    }
    ?>
 public function listTopic()
 {
     return CHtml::listData(Topic::model()->findAll(array('order' => 'name ASC')), 'term_id', 'name');
 }
Beispiel #23
0
    .vote-list .accepted-flag i{font-size: 50px;padding: 0;margin: 0;line-height: 60px;}
    .vote-list .accepted-flag span{position: absolute;top:0;left: 0;display: inline-block;width: 100%;line-height: 50px;}
    .vote-list .accepted-checked i{color:#075fb6 !important;}
    .vote-list .accepted-selectecd i{color:#000 !important;}
</style>
<?php $this->pageTitle = $model->subject." - " . Yii::app()->name;
$this->widget('bootstrap.widgets.TbBreadcrumbs', array('links' =>  array("文章" => array("allarticle"),$model->subject)));?>
<div class="content clearfix">
    <div class="content-left">
        <div class="question-body clearfix">
            <div class="pull-left vote-number clearfix">
                <div class="pull-left opt-list" style="width: 50px;"> <a  rel="tooltip" data-original-title="<?php echo Vote::model()->count("opinion=0 and model=:model and pk_id=:pk_id and create_user=:create_user", array(":create_user" => Yii::app()->user->id, ":pk_id" => $model->id, ":model" => "article")) > 0 ? '取消赞同' : '赞同'; ?>"  class="btn btn-mini <?php echo Vote::model()->count("opinion=0  and pk_id=:pk_id and create_user=:create_user and model=:model", array(":model" => "article", ":create_user" => Yii::app()->user->id, ":pk_id" => $model->id)) > 0 ? 'active' : ''; ?>" name="<?php echo (Yii::app()->user->isGuest) ? 'noLogin' : 'agreeeAnswer'; ?>" data-model="article" data-pk="<?php echo $model->id; ?>"><i class="icon icon-arrow-up"></i><br/><span class="count"><?php echo Vote::model()->count("opinion=0 and model=:model and pk_id=:pk_id", array(":model" => "article", ":pk_id" => $model->id)); ?></span></a> <br/><a class="btn btn-mini <?php echo Vote::model()->count("opinion=1 and model=:model and pk_id=:pk_id and create_user=:create_user", array(":model" => "article", ":create_user" => Yii::app()->user->id, ":pk_id" => $model->id)) > 0 ? 'active' : ''; ?>" rel="tooltip" data-original-title="<?php echo Vote::model()->count("opinion=1 and pk_id=:pk_id and model=:model and create_user=:create_user", array(":create_user" => Yii::app()->user->id, ":pk_id" => $model->id, ":model" => "article")) > 0 ? '取消反对' : '反对,不会显示你的姓名'; ?>"  data-placement="bottom" name="<?php echo (Yii::app()->user->isGuest) ? 'noLogin' : 'disagreeeAnswer'; ?>"   data-model="article" data-pk="<?php echo $model->id; ?>"><i style="font-size:14px;" class="icon icon-arrow-down"></i></a></div>
            </div>
            <div class="question-content" style="margin-left:50px;">
                        <p><?php $topicArray = explode(",",trim($model->topic_ids,","));?><?php for($i=0;$i<count($topicArray);$i++){?>
                 <?php  $topicModel = Topic::model()->findByPk($topicArray[$i]);?>
                    <?php if($topicModel){?>
                <a href="javascropt:;" data-id="<?php echo $topicArray[$i];?>" class="topic-label"><span class="label"><?php echo $topicModel->name;?><span></a>
                    <?php }?>
                <?php }?>                 <a  href="javascript:;" onclick="report(<?php echo $model->id;?>, 'article')" title="举报" class="pull-right"><i class="icon-flag" style="margin-right: 4px;"></i> 举报</a></p>
                <h3><?php echo $model->subject; ?></h3>
                <p class="clearfix " style="font-size: 12px;height: 24px;line-height: 24px;"><span class="pull-left"><a href='<?php echo $this->createUrl("userinfo", array("user_id" => $model->create_user)); ?>' class="user-label" data-id="<?php echo $model->create_user; ?>" title="<?php echo User::getNameById($model->create_user); ?>"><?php echo User::getNameById($model->create_user); ?></a><span style="color:#ccc;margin-left: 10px;"><?php echo Comment::timeintval($model->create_time); ?> 发表</span></span><span class="pull-right"><a class="user-label" href="javascript:;" data-id="<?php echo $model->create_user; ?>"><img style="height: 24px;width: 24px;vertical-align:top;border-radius: 2px;" height="24" width="24" src="<?php echo $this->createUrl("getimage", array("id" => $model->create_user, "type" => "avatar")); ?>"></a></span></p>
                <div class="vote-info">
                    <?php $voteOpinion = Vote::model()->findAll("pk_id = :pk_id and model=:model and opinion=0 order by create_time desc", array(":pk_id" => $model->id, ":model" => "article")); ?>
                    <?php if (count($voteOpinion) > 0) { ?>
                        <span class="voters vote-some">
                            <?php
                            $i = 0;
                            foreach ($voteOpinion as $key => $value) {
                                $i++;
                                if ($i == 4)
 function actionDel()
 {
     header('Content-type: application/json');
     if (!Yii::app()->request->isPostRequest) {
         IjoyPlusServiceUtils::exportServiceError(Constants::METHOD_NOT_SUPPORT);
         return;
     }
     if (!IjoyPlusServiceUtils::validateAPPKey()) {
         IjoyPlusServiceUtils::exportServiceError(Constants::APP_KEY_INVALID);
         return;
     }
     if (IjoyPlusServiceUtils::validateUserID()) {
         IjoyPlusServiceUtils::exportServiceError(Constants::USER_ID_INVALID);
         return;
     }
     $topic_id = Yii::app()->request->getParam("topic_id");
     if (!isset($topic_id) || is_null($topic_id)) {
         IjoyPlusServiceUtils::exportServiceError(Constants::PARAM_IS_INVALID);
         return;
     }
     $owner_id = Yii::app()->user->id;
     $topic = Topic::model()->findByPk($topic_id);
     if ($topic !== null) {
         if (isset($topic->t_userid) && !is_null($topic->t_userid) && $topic->t_userid === $owner_id) {
             if (Topic::model()->deleteTopic($topic_id)) {
                 User::model()->updateTopBDCount($owner_id, -1);
                 IjoyPlusServiceUtils::exportServiceError(Constants::SUCC);
             } else {
                 IjoyPlusServiceUtils::exportServiceError(Constants::SYSTEM_ERROR);
             }
         } else {
             IjoyPlusServiceUtils::exportServiceError(Constants::NO_RIGHT);
         }
     } else {
         IjoyPlusServiceUtils::exportServiceError(Constants::OBJECT_NOT_FOUND);
     }
 }
Beispiel #25
0
 protected function afterDelete()
 {
     $counters = array('post_nums' => -1);
     Category::model()->updateCounters($counters, 'id = :cid', array(':cid' => $this->category_id));
     Topic::model()->updateCounters($counters, 'id = :tid', array(':tid' => $this->topic_id));
     $comments = Comment::model()->findAllByAttributes(array('post_id' => $this->id));
     foreach ($comments as $c) {
         $c->delete();
     }
     app()->db->createCommand()->delete(TABLE_POST_TAG, 'post_id = :pid', array(':pid' => $this->id));
     app()->db->createCommand()->delete(TABLE_SPECIAL_POST, 'post_id = :pid', array(':pid' => $this->id));
     $files = Upload::model()->findAllByAttributes(array('post_id' => $this->id));
     foreach ($files as $file) {
         $file->delete();
     }
 }
Beispiel #26
0
 public function getLastCommentTime($id, $model)
 {
     $criteria = new CDbCriteria();
     $criteria->order = "create_time desc";
     $criteria->addCondition("model=:model");
     $criteria->addCondition("pk_id=:pk_id");
     $criteria->params = array(":model" => $model, ":pk_id" => $id);
     $commentModel = self::model()->find($criteria);
     if ($commentModel == null) {
         if ($model == "article") {
             return date("m-d H:i", Article::model()->findByPk($id)->create_time);
         } else {
             return date("m-d H:i", Topic::model()->findByPk($id)->create_time);
         }
     } else {
         return date("m-d H:i", $model->create_time);
     }
 }
Beispiel #27
0
 public function actionCreateattention()
 {
     $id = $_POST["topic_id"];
     $model = Topic::model()->findByPk($id);
     $agree = $model->join_user;
     $agreeArray = explode(",", trim($agree, ","));
     if (in_array(Yii::app()->user->id, $agreeArray)) {
         $agreeString = ",";
         for ($i = 0; $i < count($agreeArray); $i++) {
             if ($agreeArray[$i] != Yii::app()->user->id) {
                 $agreeString .= $agreeArray[$i] . ",";
             }
         }
         $model->join_user = $agreeString == "," ? "" : $agreeString;
         if ($model->save()) {
             echo "ERROR";
         }
     } else {
         $join_user = $model->join_user == "" ? "," : $model->join_user;
         $model->join_user = $join_user . Yii::app()->user->id . ",";
         if ($model->save()) {
             echo "OK";
         }
     }
 }
Beispiel #28
0
 protected function afterDelete()
 {
     $counters = array('post_nums' => -1);
     Category::model()->updateCounters($counters, 'id = :cid', array(':cid' => $this->category_id));
     Topic::model()->updateCounters($counters, 'id = :tid', array(':tid' => $this->topic_id));
     $comments = Comment::model()->findAll('post_id = :pid', array(':pid' => $this->id));
     foreach ($comments as $c) {
         $c->delete();
     }
     app()->db->createCommand()->delete('{{post2tag}}', 'post_id = :pid', array(':pid' => $this->id));
     // @todo 此处删除文章后对应的图片也应该删除
 }
Beispiel #29
0
 public static function getStatusLabel($model, $type)
 {
     $createUser = Yii::app()->user->id;
     $time = strtotime(date("Y-m-d", time()));
     if ($model == "topic") {
         $count = Topic::model()->count("create_user = "******" and create_time > " . $time);
     } else {
         if ($model == "article") {
             $count = Article::model()->count("publish = 1 and create_user = "******" and create_time > " . $time);
         } else {
             if ($model == "question") {
                 $count = Question::model()->count("create_user = "******" and create_time > " . $time);
             } else {
                 if ($model == "answer") {
                     $count = Answer::model()->count("create_user = "******" and create_time > " . $time);
                 }
             }
         }
     }
     if ($count == 0) {
         $label = "<span class='label label-important'><b>待完成</b></span>";
         if ($type == "label") {
             return $label;
         } else {
             return false;
         }
     } else {
         $label = "<span class='label label-success'><b>已完成</b></span>";
         if ($type == "label") {
             return $label;
         } else {
             return true;
         }
     }
 }
 </div>
   <div class='row-fluid'>
  
     <div class='span6'>
      <?php 
$this->beginWidget('bootstrap.widgets.TbBox', array('title' => 'Tag'));
$terms = Tag::model()->findAll();
$data = array(array('Task', 'From Tags'));
foreach ($terms as $term) {
    $data[] = array($term->name, count($term->postAll));
}
$this->widget('ext.Hzl.google.HzlVisualizationChart', array('visualization' => 'PieChart', 'data' => $data, 'options' => array('style' => array('width' => '100%', 'height' => '100%'), 'is3D' => true, 'title' => 'From Tags')));
$this->endWidget();
?>
   </div>
   <div class='span6'>
      <?php 
$this->beginWidget('bootstrap.widgets.TbBox', array('title' => 'Topik'));
$terms = Topic::model()->findAll();
$data = array(array('Task', 'From Topics'));
foreach ($terms as $term) {
    $data[] = array($term->name, count($term->postAll));
}
$this->widget('ext.Hzl.google.HzlVisualizationChart', array('visualization' => 'PieChart', 'data' => $data, 'options' => array('style' => array('width' => '100%', 'height' => '100%'), 'is3D' => true, 'title' => 'From Topics')));
$this->endWidget();
?>
   </div>
 </div>