Beispiel #1
0
 public function run()
 {
     $tipsModel = ArrayHelper::map(RightLink::find()->where(['type' => RightLink::RIGHT_LINK_TYPE_TIPS])->all(), 'content', 'title');
     $tips = array_rand($tipsModel);
     $recommendResources = ArrayHelper::map(RightLink::find()->where(['type' => RightLink::RIGHT_LINK_TYPE_RSOURCES])->all(), 'title', 'url');
     $links = RightLink::find()->where(['type' => RightLink::RIGHT_LINK_TYPE_LINKS])->all();
     $sameTopics = [];
     if ($this->node) {
         $sameTopics = ArrayHelper::map(Topic::find()->where('status >= :status', [':status' => Topic::STATUS_ACTIVE])->andWhere(['post_meta_id' => $this->node->id, 'type' => 'topic'])->limit(200)->all(), 'title', function ($e) {
             return Url::to(['/topic/default/view', 'id' => $e->id]);
         });
         if (count($sameTopics) > 10) {
             $sameTopics = Arr::arrayRandomAssoc($sameTopics, 10);
         }
         if ($this->type == 'view' && (in_array($this->node->alias, params('donateNode')) || array_intersect(explode(',', $this->tags), params('donateTag')))) {
             $donate = Donate::findOne(['user_id' => Topic::findOne(['id' => request()->get('id')])->user_id, 'status' => Donate::STATUS_ACTIVE]);
         }
     }
     return $this->render('topicSidebar', ['category' => PostMeta::blogCategory(), 'config' => ['type' => $this->type, 'node' => $this->node], 'sameTopics' => $sameTopics, 'tips' => $tips, 'donate' => isset($donate) ? $donate : [], 'recommendResources' => $recommendResources, 'links' => $links]);
 }
Beispiel #2
0
 /**
  * 话题详细页
  * @param integer $id
  * @return mixed
  */
 public function actionView($id)
 {
     $model = Topic::findTopic($id);
     //登录才能访问的节点内容
     if (\Yii::$app->user->isGuest && in_array($model->category->alias, params('loginNode'))) {
         $this->flash('查看本主题需要登录!', 'warning');
         return $this->redirect(['/site/login']);
     }
     $dataProvider = new ActiveDataProvider(['query' => PostComment::findCommentList($id), 'pagination' => ['pageSize' => self::PAGE_SIZE], 'sort' => ['defaultOrder' => ['created_at' => SORT_ASC]]]);
     // 文章浏览次数
     Topic::updateAllCounters(['view_count' => 1], ['id' => $id]);
     //内容页面打赏
     if (in_array($model->category->alias, params('donateNode')) || array_intersect(explode(',', $model->tags), params('donateTag'))) {
         $donate = Donate::findOne(['user_id' => $model->user_id, 'status' => Donate::STATUS_ACTIVE]);
     }
     /** @var User $user */
     $user = Yii::$app->user->identity;
     $admin = $user && ($user->isAdmin($user->username) || $user->isSuperAdmin($user->username)) ? true : false;
     return $this->render('view', ['model' => $model, 'dataProvider' => $dataProvider, 'comment' => new PostComment(), 'admin' => $admin, 'donate' => isset($donate) ? $donate : []]);
 }
Beispiel #3
0
 /**
  *   打赏设置
  * @return mixed
  */
 public function actionDonate()
 {
     /** @var Donate $model */
     $model = Donate::findOne(['user_id' => Yii::$app->user->id]) ?: new Donate(['scenario' => 'create']);
     $oldQrCode = $model->qr_code;
     $model->description ?: ($model->description = '如果这篇文章对您有帮助,不妨微信小额赞助我一下,让我有动力继续写出高质量的教程。');
     if ($model->load(Yii::$app->request->post())) {
         if ($image = $model->uploadImage()) {
             \yii\helpers\FileHelper::createDirectory(\Yii::$app->basePath . \Yii::$app->params['qrCodePath']);
             $model->deleteImage();
             $image->saveAs(\Yii::$app->basePath . \Yii::$app->params['qrCodePath'] . $model->qr_code);
         }
         if ($image === false && !empty($oldQrCode)) {
             $model->qr_code = $oldQrCode;
         }
         $model->user_id = Yii::$app->user->id;
         if ($model->save()) {
             Yii::$app->session->setFlash('success', '您的打赏信息修改成功');
         } else {
             Yii::$app->session->setFlash('error', '您的打赏信息更新失败');
         }
         return $this->refresh();
     }
     return $this->render('donate', ['model' => $model]);
 }
Beispiel #4
0
                        <div class="col-lg-offset-3 col-lg-9">
                            <?php 
    echo Html::img(Yii::$app->params['qrCodeUrl'] . $model->qr_code, ['class' => 'img']);
    ?>
                        </div>
                    </div>
                <?php 
}
?>
                <?php 
echo $form->field($model, 'qr_code')->fileInput();
?>
<br>

                <?php 
echo $form->field($model, 'status')->dropDownList(\frontend\modules\user\models\Donate::getStatuses());
?>

                <?php 
echo $form->field($model, 'description')->textarea(['rows' => 2]);
?>

                <div class="form-group">
                    <div class="col-lg-offset-3 col-lg-9">
                        <?php 
echo Html::submitButton(Yii::t('app', 'Save'), ['class' => 'btn btn-success']);
?>
<br>
                    </div>
                </div>