Пример #1
0
 /**
  * Публичное отображение документа
  * @param $alias - Url-адрес документа
  * @return string
  * @throws NotFoundHttpException
  */
 public function actionShow($alias)
 {
     // Отображаем только опубликованные документы
     $model = Document::find()->where(['alias' => $alias, 'status' => Document::STATUS_ACTIVE])->one();
     if ($model == null) {
         throw new NotFoundHttpException(Yii::t('document', 'Запрашиваемая страница не найдена.'));
     }
     Visit::check($model->id);
     // Фиксируем просмотр
     $views = Visit::getAll($model->id);
     // Считаем просмотры
     $likes = Like::getAll($model->id);
     // Считаем лайки
     // Если задан шаблон отображения, то отображаем согласно нему, иначе стандартное отображение статьи
     $template = isset($model->template) && $model->template->path ? $model->template->path : '@vendor/lowbase/yii2-document/views/document/template/default';
     return $this->render($template, ['model' => $model, 'views' => $views ? $views[0]->count : 0, 'likes' => $likes ? $likes[0]->count : 0]);
 }