CompanyController.php 4.35 KB
<?php
namespace frontend\controllers;

use common\models\Fields;
use Yii;
use common\models\LoginForm;
use frontend\models\PasswordResetRequestForm;
use frontend\models\ResetPasswordForm;
use frontend\models\SignupForm;
use frontend\models\ContactForm;
use frontend\models\Options;
use frontend\models\OptionValues;
use yii\base\InvalidParamException;
use yii\data\ActiveDataProvider;
use yii\helpers\ArrayHelper;
use yii\web\BadRequestHttpException;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
use frontend\models\OptionsToValues;
use yii\validators\EmailValidator;
use common\models\User;
use yii\helpers\VarDumper;
use common\models\Page; 
use frontend\models\Option;
use common\models\Social;


/**
 * Site controller
 */
class CompanyController extends Controller
{
    public $layout = 'company';

    public $defaultAction = 'common';

    /**
     * @inheritdoc
     */
    public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            ],
        ];
    }

    public function actionIndex()
    {
        $this->redirect('site/index');
    }

    public function actionCommon($company_id)
    {
        $company = User::findOne($company_id);

        $educations = Fields::getData($company->id,$company->className(),'education');
        $phones = Fields::getData($company->id,$company->className(),'phone');
        $sites = Fields::getData($company->id,$company->className(),'site');
        $soft = implode(', ',ArrayHelper::getColumn(Fields::getData($company->id,$company->className(),'soft'), 'soft'));

        return $this->render('common',[
            'company' => $company,
            'educations' => $educations,
            'phones' => $phones,
            'sites' => $sites,
            'soft' => $soft
        ]);
    }

    public function actionPortfolio($company_id)
    {
        $company = User::findOne($company_id);

        return $this->render('portfolio',[
            'company' => $company
        ]);
    }

    public function actionPortfolioView($company_id /*, $portfolio_id*/)
    {
        $company = User::findOne($company_id);

        return $this->render('portfolio-view', ['company' => $company]);
    }

    public function actionTeam($company_id)
    {
        $company = User::findOne($company_id);

        return $this->render('team',[
            'company' => $company
        ]);
    }

    public function actionBlogList($company_id)
    {
        $company = User::findOne($company_id);

        return $this->render('blog-list',[
            'company' => $company
        ]);
    }

    public function actionBlogView($company_id, $article_id)
    {
        $company = User::findOne($company_id);

        return $this->render('blog-view',[
            'company' => $company
        ]);
    }

    public function actionReview($company_id)
    {
        $company = User::findOne($company_id);

        return $this->render('review',[
            'company' => $company
        ]);
    }

    public function actionVacancyList($company_id)
    {
        $company = User::findOne($company_id);
        $query = $company->getVacancies();
        $provider = new ActiveDataProvider([
            'query' => $query,
            'pagination' => [
                'pageSize' => 2,
            ],
            'sort' => [
                'defaultOrder' => [
                    'date_add' => SORT_DESC,
                    'name' => SORT_ASC,
                ]
            ],
        ]);

        return $this->render('vacancy-list',[
            'company' => $company,
            'provider' => $provider,
        ]);
    }

    public function actionVacancyView($company_id, $vacancy_id)
    {
        $company = User::findOne($company_id);
        $vacancy = $company->getVacancies()->where(['vacancy_id' => $vacancy_id])->with(['employments'])->one();

        return $this->render('vacancy-view',[
            'company' => $company,
            'vacancy' => $vacancy,
        ]);
    }

    public function actionGallery($company_id)
    {
        $company = User::findOne($company_id);

        $this->layout = 'gallery-company';
        return $this->render('gallery',[
            'company' => $company
        ]);
    }
}