OptionHelper.php 4.97 KB
<?php

namespace common\models;

use frontend\models\Options;
use Yii;
use yii\base\InvalidParamException;
use yii\base\Model;

class OptionHelper extends Model
{
    const OPTION_OBJECT = 1;

    const OPTION_ARRAY = 2;

    const OPTION_VALUE = 3;

    public function getRule($return = 3)
    {
        $result = Option::find()->where(['name' => 'rules'])->with('value');
        if($return == self::OPTION_OBJECT) {
            return $result->one();
        } elseif($return == self::OPTION_ARRAY) {
            return $result->asArray()->one();
        } elseif($return == self::OPTION_VALUE) {
            return $result->one()->value->value;
        } else {
            throw new InvalidParamException(Yii::t('app', 'Must be 1-3'));
        }
    }
    /*
    public function createOptions($user_id)
    {
        if($rows_delete = \Yii::$app->db->createCommand()->delete('option', ['model' => 'common\models\User', 'model_id' => $user_id])->execute()) {
            Yii::trace( $rows_delete . " rows has been deleted.");
        } else {
            Yii::trace( "No rows has been deleted" );
        }
        $rows_insert = Yii::$app->db->createCommand()->batchInsert(
            'option',
            ['model', 'model_id', 'name', 'template'],
            [
                ['common\models\User', $user_id, 'education', '{"template":"empty","params":{"multiple":true}}'],
                ['common\models\User', $user_id, 'development', '{"template":"empty","params":{"multiple":true}}'],
                ['common\models\User', $user_id, 'courses', '{"template":"empty","params":{"multiple":true}}'],
                ['common\models\User', $user_id, 'jobs', '{"template":"empty","params":{"multiple":true}}'],
                ['common\models\User', $user_id, 'social', '{"template":"empty","params":{"multiple":true}}'],
            ]
        )->execute();
        Yii::trace( $rows_insert . " rows has been inserted" );
        $parent_rows = Option::find()->where(['model' => 'common\models\User', 'model_id' => $user_id, 'option_pid' => NULL])->indexBy('name')->all();
        $rows_insert = Yii::$app->db->createCommand()->batchInsert(
            'option',
            ['model', 'model_id', 'name', 'template', 'option_pid'],
            [
                ['common\models\User', $user_id, 'year_from', '{"template":"input","params":{"type":"number"}}', $parent_rows['education']->option_id],
                ['common\models\User', $user_id, 'year_to', '{"template":"input","params":{"type":"number"}}', $parent_rows['education']->option_id],
                ['common\models\User', $user_id, 'place', '{"template":"textInput","params":[]}', $parent_rows['education']->option_id],
                ['common\models\User', $user_id, 'year', '{"template":"input","params":{"type":"number"}}', $parent_rows['development']->option_id],
                ['common\models\User', $user_id, 'name', '{"template":"textInput","params":[]}', $parent_rows['development']->option_id],
                ['common\models\User', $user_id, 'year', '{"template":"input","params":{"type":"number"}}', $parent_rows['courses']->option_id],
                ['common\models\User', $user_id, 'name', '{"template":"textInput","params":[]}', $parent_rows['courses']->option_id],
                ['common\models\User', $user_id, 'country', '{"template":"textInput","params":[]}', $parent_rows['jobs']->option_id],
                ['common\models\User', $user_id, 'date_from', '{"template":"datePicker","params":{"dateFormat":"dd-MM-yyyy"}}', $parent_rows['jobs']->option_id],
                ['common\models\User', $user_id, 'date_to', '{"template":"datePicker","params":{"dateFormat":"dd-MM-yyyy"}}', $parent_rows['jobs']->option_id],
                ['common\models\User', $user_id, 'type', '{"template":"textInput","params":[]}', $parent_rows['jobs']->option_id],
                ['common\models\User', $user_id, 'team', '{"template":"input","params":{"type":"number"}}', $parent_rows['jobs']->option_id],
                ['common\models\User', $user_id, 'time', '{"template":"input","params":{"type":"number"}}', $parent_rows['jobs']->option_id],
                ['common\models\User', $user_id, 'percent', '{"template":"input","params":{"type":"number"}}', $parent_rows['jobs']->option_id],
                ['common\models\User', $user_id, 'position', '{"template":"textInput","params":[]}', $parent_rows['jobs']->option_id],
                ['common\models\User', $user_id, 'facebook', '{"template":"textInput","params":[]}', $parent_rows['social']->option_id],
                ['common\models\User', $user_id, 'twitter', '{"template":"textInput","params":[]}', $parent_rows['social']->option_id],
                ['common\models\User', $user_id, 'linkedin', '{"template":"textInput","params":[]}', $parent_rows['social']->option_id],
                ['common\models\User', $user_id, 'vk', '{"template":"textInput","params":[]}', $parent_rows['social']->option_id],
            ]
        )->execute();
    }

    */

}