AjaxController.php 2.62 KB
<?php
namespace common\modules\blog\controllers;

use common\models\Language;
use common\modules\blog\models\ArticleCategory;
use common\modules\blog\models\ArticleCategoryLang;
use common\modules\blog\models\ArticleCategoryMedia;
use common\modules\blog\models\ArticleLang;
use common\modules\blog\models\ArticleMedia;
use yii\web\Controller;
use yii\web\ForbiddenHttpException;
use yii\web\NotFoundHttpException;

class AjaxController extends Controller
{
    public function beforeAction($action)
    {
        if(!\Yii::$app->request->getIsAjax()) {
            //throw new ForbiddenHttpException('Permission denied');
        }

        if(!parent::beforeAction($action)) {
            return false;
        }

        return true;
    }

    public function actionCategoryForm($lang_id)
    {
        $model = Language::find()->where(['>=', 'language_id', 1])->andWhere(['active' => 1, 'language_id' => $lang_id])->one();
        if(!$model) {
            throw new NotFoundHttpException('Language not found');
        }
        $category_lang = new ArticleCategoryLang();
        return $this->renderAjax('_category_form', ['model' => $model, 'category_lang' => $category_lang]);
    }

    public function actionArticleForm($lang_id)
    {
        $model = Language::find()->where(['>=', 'language_id', 1])->andWhere(['active' => 1, 'language_id' => $lang_id])->one();
        if(!$model) {
            throw new NotFoundHttpException('Language not found');
        }
        $article_lang = new ArticleLang();
        return $this->renderAjax('_article_form', ['model' => $model, 'article_lang' => $article_lang]);
    }

    public function actionRemoveImage()
    {
        $post = \Yii::$app->request->post();
        if(!empty($post['article_media_id'])) {
            $article_media = ArticleMedia::findOne($post['article_media_id']);
            if($post['remove_media']) {
                $media = $article_media->media->delete();
            }
            if(!empty($article_media)) {
                $article_media->delete();
            }
            return true;
        } else {
            return false;
        }
    }

    public function actionRemoveImageCategory()
    {
        $post = \Yii::$app->request->post();
        if(!empty($post['category_media_id'])) {
            $category_media = ArticleCategoryMedia::findOne($post['category_media_id']);
            if($post['remove_media']) {
                $media = $category_media->media->delete();
            }
            if(!empty($category_media)) {
                $category_media->delete();
            }
            return true;
        } else {
            return false;
        }
    }
}