Commit eb8966763c04e26f6d0941068c6229b440046391

Authored by andryeyev
1 parent 8b201863

+ Термины и база full-backup

backend/controllers/MenuLocationController.php
... ... @@ -4,7 +4,7 @@ namespace backend\controllers;
4 4  
5 5 use Yii;
6 6 use backend\models\MenuLocation;
7   -use backend\models\MenuSearchLocation;
  7 +use backend\models\MenuLocationSearch;
8 8 use yii\web\Controller;
9 9 use yii\web\NotFoundHttpException;
10 10 use yii\filters\VerbFilter;
... ... @@ -32,7 +32,7 @@ class MenuLocationController extends Controller
32 32 */
33 33 public function actionIndex()
34 34 {
35   - $searchModel = new MenuSearchLocation();
  35 + $searchModel = new MenuLocationSearch();
36 36 $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
37 37  
38 38 return $this->render('index', [
... ...
backend/controllers/SiteController.php
... ... @@ -57,7 +57,19 @@ class SiteController extends Controller
57 57  
58 58 public function actionIndex()
59 59 {
60   - return $this->render('index');
  60 +/*
  61 + if (Yii::$app->user->can('site/index'))
  62 + {
  63 +
  64 + }
  65 + else
  66 + {
  67 + Yii::$app->getSession()->setFlash('error', 'Доступ закрыт..');
  68 +
  69 + return $this->redirect('/');
  70 + }
  71 +*/
  72 + return $this->render('index');
61 73 }
62 74  
63 75 public function actionLogin()
... ...
backend/controllers/TerminController.php
... ... @@ -5,23 +5,26 @@ namespace backend\controllers;
5 5 use Yii;
6 6 use backend\models\Termin;
7 7 use backend\models\TerminSearch;
  8 +use yii\filters\AccessControl;
8 9 use yii\web\Controller;
9 10 use yii\web\NotFoundHttpException;
10 11 use yii\filters\VerbFilter;
11 12 use backend\models\TerminLang;
12 13 use backend\models\TerminStructure;
  14 +use common\models\Language;
  15 +use backend\models\TerminRelation;
13 16  
14 17 /**
15 18 * TerminController implements the CRUD actions for Termin model.
16 19 */
17 20 class TerminController extends Controller
18 21 {
19   - public function behaviors()
  22 + public function behaviors()
20 23 {
21 24 return [
22 25 'access' => [
23 26 'class' => AccessControl::className(),
24   - 'except' => ['login', 'error', 'index', 'create', 'update'],
  27 + 'except' => ['login', 'error', 'index', 'create', 'update', 'view', 'form', 'delete'],
25 28 'rules' => [
26 29 [
27 30 'allow' => true,
... ... @@ -38,6 +41,20 @@ class TerminController extends Controller
38 41 ],
39 42 ];
40 43 }
  44 +
  45 + // ==== AJAX ====
  46 +
  47 + public function actionForm($lang_id, $widget_id)
  48 + {
  49 + if (! $model = Language::find()->where(['>=', 'language_id', 1])->andWhere(['active' => 1, 'language_id' => $lang_id])->one())
  50 + {
  51 + throw new NotFoundHttpException('Language not found');
  52 + }
  53 +
  54 + $article_lang = new TerminLang();
  55 +
  56 + return $this->renderAjax('_article_form', ['model' => $model, 'article_lang' => $article_lang, 'widget_id' => $widget_id]);
  57 + }
41 58  
42 59 /**
43 60 * Lists all Termin models.
... ... @@ -73,23 +90,48 @@ class TerminController extends Controller
73 90 */
74 91 public function actionCreate()
75 92 {
76   - $model = new Termin();
77   - $model_lang = new TerminLang();
  93 + $model = new Termin();
  94 + $model_pid = new TerminStructure();
78 95  
  96 + // проверяем общие таблицы
79 97 if ($model->load(Yii::$app->request->post())
80   - && $model_lang->load(Yii::$app->request->post()))
81   - {
82   - $model->save();
83   - $model_lang->termin_id = $model->termin_id;
84   - $model_lang->save();
  98 + && $model_pid->load(Yii::$app->request->post())
  99 + )
  100 + {
  101 + $model_lang = [];
  102 +
  103 + foreach (Yii::$app->request->post()['TerminLang'] as $index => $row)
  104 + {
  105 + $model_lang[$index] = new TerminLang();
  106 + }
  107 +
  108 + if (TerminLang::loadMultiple($model_lang, Yii::$app->request->post())
  109 + && TerminLang::validateMultiple($model_lang))
  110 + {
  111 + $model->save();
  112 + $model_pid->termin_id = $model->termin_id;
  113 + $model_pid->save();
  114 +
  115 + foreach ($model_lang as $post)
  116 + {
  117 + $post->termin_id = $model->termin_id;
  118 + $post->save(false);
  119 + }
  120 + }
85 121  
86 122 return $this->redirect(['view', 'id' => $model->termin_id]);
87 123 }
88 124 else
89   - {
  125 + {
  126 + $default_lang = Language::getDefaultLang();
  127 +
  128 + $LANG = [];
  129 + $LANG[$default_lang->language_id] = new TerminLang();
  130 +
90 131 return $this->render('create', [
91 132 'model' => $model,
92   - 'model_lang' => $model_lang,
  133 + 'model_lang' => $LANG,
  134 + 'model_pid' => $model_pid,
93 135 ]);
94 136 }
95 137 }
... ... @@ -103,22 +145,49 @@ class TerminController extends Controller
103 145 public function actionUpdate($id)
104 146 {
105 147 $model = $this->findModel($id);
106   - $model_lang = TerminLang::findOne($id);
107   - $model_pid = TerminStructure::findOne($id)->getRelation('terminPid')->one();
108   -
109   - //var_dump(Yii::$app->request->post());
110   - //var_dump($model_pid->termin->termin_id); die;
111   -
  148 + $model_lang = Termin::findOne($id)->getTerminLangs()->indexBy('lang_id')->all();
  149 + $model_pid = TerminStructure::findOne($id);
  150 +
  151 + // проверяем общие таблицы
112 152 if ($model->load(Yii::$app->request->post())
113   - && $model_lang->load(Yii::$app->request->post())
114 153 && $model_pid->load(Yii::$app->request->post())
115 154 )
116   - {
117   - $model->save();
118   - $model_lang->save();
119   - $model_pid->termin_pid = $model_pid->termin->termin_id;
120   -
121   - return $this->redirect(['view', 'id' => $model->termin_id]);
  155 + {
  156 +/*
  157 + // проверяем таблицы lang
  158 + $post_lang = Yii::$app->request->post('TerminLang');
  159 + if (! empty ($post_lang))
  160 + {
  161 + foreach ($post_lang as &$row)
  162 + {
  163 + $row += new TerminLang();
  164 + }
  165 + }
  166 +
  167 + var_dump($post_lang);
  168 +
  169 + die;
  170 +*/
  171 + // + появились
  172 +
  173 + // - удалились
  174 +
  175 + if (TerminLang::loadMultiple($model_lang, Yii::$app->request->post())
  176 + && TerminLang::validateMultiple($model_lang))
  177 + {
  178 + foreach ($model_lang as $post)
  179 + {
  180 + $post->termin_id = $model->termin_id;
  181 + $post->save(false);
  182 + }
  183 +
  184 + $model->save();
  185 + $model_pid->save();
  186 +
  187 + return $this->redirect(['view', 'id' => $model->termin_id]);
  188 + }
  189 +
  190 + return $this->redirect('index');
122 191 }
123 192 else
124 193 {
... ...
backend/models/Termin.php
... ... @@ -21,6 +21,7 @@ class Termin extends \yii\db\ActiveRecord
21 21 {
22 22 var $termin_title;
23 23 var $termin_pid;
  24 + var $termin_parent_title;
24 25  
25 26 /**
26 27 * @inheritdoc
... ... @@ -37,9 +38,9 @@ class Termin extends \yii\db\ActiveRecord
37 38 {
38 39 return [
39 40 [['is_book'], 'integer'],
40   - [['termin_pid'], 'safe'],
  41 + [['termin_pid', 'termin_parent_title'], 'safe'],
41 42 [['termin_title'], 'string', 'max' => 250],
42   - [['termin_name'], 'string', 'max' => 250]
  43 + [['termin_name','termin_parent_title'], 'string', 'max' => 250]
43 44 ];
44 45 }
45 46  
... ... @@ -51,6 +52,8 @@ class Termin extends \yii\db\ActiveRecord
51 52 return [
52 53 'termin_id' => Yii::t('app', 'termin'),
53 54 'termin_name' => Yii::t('app', 'name').' (SYSTEM NAME)',
  55 + 'termin_title' => Yii::t('app', 'termin'),
  56 + 'termin_parent_title' => Yii::t('app', 'termin').' Parent',
54 57 'is_book' => Yii::t('app', 'book'),
55 58 ];
56 59 }
... ... @@ -70,6 +73,7 @@ class Termin extends \yii\db\ActiveRecord
70 73 'return_field' => false,
71 74 'show_all' => false,
72 75 'to_array' => true,
  76 + 'sql_only' => false,
73 77 'pid_title' => false,
74 78 ));
75 79  
... ... @@ -134,7 +138,7 @@ class Termin extends \yii\db\ActiveRecord
134 138 {
135 139 $query = $query->asArray();
136 140 }
137   -
  141 +
138 142 if ($params['return_one'] || $params['return_field'])
139 143 {
140 144  
... ... @@ -161,16 +165,13 @@ class Termin extends \yii\db\ActiveRecord
161 165 */
162 166 public function getTerminLangs()
163 167 {
164   - return $this->hasMany(TerminLang::className(), ['termin_id' => 'termin_id']);
  168 + return $this->hasOne(TerminLang::className(), ['termin_id' => 'termin_id']);
165 169 }
166   -
167   - /**
168   - * @return \yii\db\ActiveQuery
169   - */
170   - public function getLangs()
  170 +
  171 + public function getParent()
171 172 {
172   - return $this->hasMany(Language::className(), ['language_id' => 'lang_id'])
173   - ->viaTable('termin_lang', ['termin_id' => 'termin_id']);
  173 + return $this->hasOne(Termin::className(),['termin_id'=>'termin_pid'])
  174 + ->viaTable(TerminStructure::tableName(), ['termin_id'=>'termin_id']);
174 175 }
175 176  
176 177 /**
... ...
backend/models/TerminSearch.php
... ... @@ -19,7 +19,7 @@ class TerminSearch extends Termin
19 19 {
20 20 return [
21 21 [['termin_id', 'is_book'], 'integer'],
22   - [['termin_name'], 'safe'],
  22 + [['termin_name', 'termin_title', 'termin_parent_title'], 'safe'],
23 23 ];
24 24 }
25 25  
... ... @@ -42,6 +42,7 @@ class TerminSearch extends Termin
42 42 public function search($params)
43 43 {
44 44 $query = Termin::find();
  45 + $query->select('*');
45 46  
46 47 $dataProvider = new ActiveDataProvider([
47 48 'query' => $query,
... ... @@ -53,7 +54,9 @@ class TerminSearch extends Termin
53 54 // uncomment the following line if you do not want to return any records when validation fails
54 55 // $query->where('0=1');
55 56 return $dataProvider;
56   - }
  57 + }
  58 +
  59 + $query->joinWith(['terminLangs', 'terminStructures']);
57 60  
58 61 $query->andFilterWhere([
59 62 'termin_id' => $this->termin_id,
... ... @@ -61,6 +64,8 @@ class TerminSearch extends Termin
61 64 ]);
62 65  
63 66 $query->andFilterWhere(['like', 'termin_name', $this->termin_name]);
  67 + $query->andFilterWhere(['like', TerminLang::tableName().'.termin_title', $this->termin_title]);
  68 + //$query->andFilterWhere(['like', 'termin_title', $this->termin_title]);
64 69  
65 70 return $dataProvider;
66 71 }
... ...
backend/models/TerminStructure.php
... ... @@ -51,7 +51,7 @@ class TerminStructure extends \yii\db\ActiveRecord
51 51 {
52 52 return $this->hasOne(Termin::className(), ['termin_id' => 'termin_id']);
53 53 }
54   -
  54 +
55 55 /**
56 56 * @return \yii\db\ActiveQuery
57 57 */
... ...
backend/views/menu/index.php
... ... @@ -25,13 +25,14 @@ $this->params['breadcrumbs'][] = $this->title;
25 25 'filterModel' => $searchModel,
26 26 'columns' => [
27 27 ['class' => 'yii\grid\SerialColumn'],
28   -
  28 +/*
29 29 [
30 30 'attribute' => Yii::t('app', 'termin'),
31 31 'value' => function ($model) {
32 32 return empty($model->termin_id) ? '-' : $model->termin_lang->termin_title;
33 33 },
34   - ],
  34 + ],
  35 + */
35 36 'menu_pid',
36 37 'level',
37 38 // 'sortorder',
... ...
backend/views/termin/_article_form.php 0 → 100644
  1 +<?php
  2 +
  3 +use yii\bootstrap\ActiveField;
  4 +use mihaildev\ckeditor\CKEditor;
  5 +
  6 +$form = \yii\bootstrap\ActiveForm::begin();
  7 +?>
  8 +<div role="" class="tab-pane active ajax-loaded" id="<?=$widget_id?>-<?=$model->language_id?>">
  9 +
  10 + <?= (new ActiveField(['model' => $article_lang, 'attribute' => "[$model->language_id]lang_id"]))->label(false)->hiddenInput(['value' => $model->language_id]) ?>
  11 +
  12 + <?= (new ActiveField(['model' => $article_lang, 'attribute' => "[$model->language_id]termin_title"]))->textInput() ?>
  13 +
  14 + <?= (new ActiveField(['model' => $article_lang, 'attribute' => "[$model->language_id]termin_alias"]))->textInput() ?>
  15 +
  16 +</div>
  17 +<?php
  18 +$form->end();
  19 +?>
... ...
backend/views/termin/_form.php
... ... @@ -5,21 +5,34 @@ use yii\widgets\ActiveForm;
5 5 use backend\models\Termin;
6 6 use kartik\select2\Select2;
7 7 use yii\helpers\ArrayHelper;
  8 +use common\widgets\Multilang;
  9 +use yii\helpers\Url;
8 10  
9 11 /* @var $this yii\web\View */
10 12 /* @var $model backend\models\Termin */
11 13 /* @var $form yii\widgets\ActiveForm */
12 14  
13   -?>
  15 +echo '<div class="termin-form">';
14 16  
15   -<div class="termin-form">
  17 +$form = ActiveForm::begin();
16 18  
17   - <?php $form = ActiveForm::begin(); ?>
18   -
19   - <?= $form->field($model_pid->termin, 'termin_pid')->widget(Select2::classname(),
  19 + // ================
  20 + // ==== COMMON ====
  21 + // ================
  22 +
  23 + echo $form->field($model_pid, 'termin_pid')->widget(
  24 + Select2::classname(),
20 25 [
21   - 'data' => ArrayHelper::map((new Termin)->finInfo([
  26 + 'data' => ArrayHelper::map(
  27 + [
  28 + [
  29 + 'termin_id' => 0,
  30 + 'termin_title' => 'NONE',
  31 + ]
  32 + ] +
  33 + (new Termin)->finInfo([
22 34 'show_all' => true,
  35 + 'to_array' => true,
23 36 ]),
24 37 'termin_id',
25 38 'termin_title'
... ... @@ -28,23 +41,53 @@ use yii\helpers\ArrayHelper;
28 41 'pluginOptions' => [
29 42 'allowClear' => true
30 43 ],
31   - ]);
32   - ?>
  44 + ]
  45 + );
33 46  
34   - <?= $form->field($model, 'termin_name')->textInput(['maxlength' => true]) ?>
35   -
36   - <?= $form->field($model_lang, 'termin_title')->textInput() ?>
37   -
38   - <?= $form->field($model_lang, 'termin_alias')->textInput() ?>
39   -
40   - <?= Html::activeHiddenInput ($model_lang, 'lang_id', [
  47 + echo $form->field($model, 'termin_name')->textInput(['maxlength' => true]);
  48 +
  49 + // ==============
  50 + // ==== LANG ====
  51 + // ==============
  52 +
  53 + $multilang = Multilang::begin(['ajaxpath' => Url::to(['termin/form']), 'form' => $form, 'data_langs' => $model_lang]);
  54 +
  55 + $first = 1;
  56 +
  57 + foreach ($model_lang as $index => $data)
  58 + {
  59 + echo '
  60 + <div role="" class="tab-pane '.($first ? 'active main-tab' : '') .'" id="'.$multilang->id.'-'.$index.'">
  61 +
  62 + '.$form->field($model_lang[$index], '['.$index.']lang_id')->label(false)->hiddenInput(['value' => $index]).'
  63 +
  64 + '.$form->field($model_lang[$index], '['.$index.']termin_title')->textInput().'
  65 +
  66 + '.$form->field($model_lang[$index], '['.$index.']termin_alias')->textInput().'
  67 +
  68 + </div>';
  69 +
  70 + $first = 0;
  71 + }
  72 +
  73 + $multilang->end();
  74 +/*
  75 + echo Html::activeHiddenInput ($model_lang, 'lang_id', [
41 76 'value' => ($model_lang->lang_id != 0 ? $model_lang->lang_id : Yii::$app->params['lang_id']),
42   - ]) ?>
  77 + ]);
  78 +*/
  79 + // ==== BUTTON ====
43 80  
  81 + echo '
44 82 <div class="form-group">
45   - <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
46   - </div>
  83 + '.Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']).'
  84 + </div>';
  85 +
  86 +ActiveForm::end();
47 87  
48   - <?php ActiveForm::end(); ?>
  88 +echo '</div>';
49 89  
50   -</div>
  90 +echo '
  91 +<script>
  92 + var confirm_message = "'.\Yii::t('app', 'Remove image?').'"
  93 +</script>';
... ...
backend/views/termin/create.php
... ... @@ -17,6 +17,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
17 17 <?= $this->render('_form', [
18 18 'model' => $model,
19 19 'model_lang' => $model_lang,
  20 + 'model_pid' => $model_pid,
20 21 ]) ?>
21 22  
22 23 </div>
... ...
backend/views/termin/index.php
... ... @@ -19,17 +19,20 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
19 19 <?= Html::a(Yii::t('app', 'Create'), ['create'], ['class' => 'btn btn-success']) ?>
20 20 </p>
21 21  
  22 +
22 23 <?= GridView::widget([
23 24 'dataProvider' => $dataProvider,
24 25 'filterModel' => $searchModel,
25 26 'columns' => [
26 27 ['class' => 'yii\grid\SerialColumn'],
27 28 [
28   - 'attribute' => Yii::t('app', 'termin'),
29   - 'value' => function ($model) {
30   - return $model->terminLangs[0]->termin_title;
31   - },
32   - ],
  29 + 'attribute' => 'termin_title',
  30 + 'value' => 'terminLangs.termin_title'
  31 + ],
  32 + [
  33 + 'attribute' => 'termin_parent_title',
  34 + 'value' => 'parent.terminLangs.termin_title'
  35 + ],
33 36 'termin_name',
34 37 'is_book',
35 38  
... ...
backend/web/js/option.js
... ... @@ -36,42 +36,6 @@ $(function() {
36 36 $(document).on('click', '.remove_lang', function() {
37 37 $(this).parents('.form-wrapper').remove();
38 38 });
39   - if($('#lang-tabs li').length > 1) {
40   - $('#lang-tabs li').append('<span class="glyphicon glyphicon-remove-circle remove-lang"></span>')
41   - }
42   - $(document).on('click', '#lang-dropdown li a[data-lang]', function() {
43   - var lang = $(this).data('lang');
44   - var flag = $(this).find('span').first().clone();
45   - var el = $(this);
46   - $.get('/blog/ajax/category-form', { lang_id: lang }, function(data) {
47   - $('#lang-tabs li').removeClass('active');
48   - $('#lang-tabs').append('<li role="lang_inputs" class="active" data-lang="'+lang+'"><a href="#lang-'+lang+'" aria-controls="lang-'+lang+'" role="tab" data-toggle="tab">'+$('<p>').append($(flag)).html()+'</a></li>');
49   - $('.lang-tab-content .tab-pane.active').removeClass('active');
50   - $('.lang-tab-content').append($(data).find('.ajax-loaded').first());
51   - $('body').append($(data).filter('script'));
52   - $(el).parent().remove();
53   - if(!$('#lang-dropdown li').length) {
54   - $('#dropdownLang').addClass('disabled');
55   - }
56   - if($('#lang-tabs li').length > 1) {
57   - $('#lang-tabs li').append('<span class="glyphicon glyphicon-remove-circle remove-lang"></span>')
58   - }
59   - });
60   - });
61   - $(document).on('click', '.remove-lang', function() {
62   - var lang = $(this).parent().data('lang');
63   - var flag = $(this).parent().find('span.flag').first().clone();
64   - $('#lang-'+lang).remove();
65   - $('#lang-dropdown').append('<li><a href="#lang-tabs" data-lang="'+lang+'">'+$('<p>').append($(flag)).html()+'</a></li>');
66   - $('#dropdownLang').removeClass('disabled');
67   - $(this).parent().remove();
68   - if($('#lang-tabs li').length <= 1) {
69   - $('#lang-tabs li').find('.remove-lang').remove();
70   - }
71   - if(!$('#lang-tabs>li.active').length) {
72   - $('#lang-tabs>li').first().find('a').tab('show');
73   - }
74   - });
75 39 $(document).on('change', '.image_inputs_field', function() {
76 40 readURL(this);
77 41 });
... ... @@ -89,4 +53,44 @@ $(function() {
89 53 }
90 54 return false;
91 55 });
  56 + $.each($('.nav-tabs.f32'), function(key, value) {
  57 + if($(value).find('li').length > 1) {
  58 + $(value).find('li').append('<span class="glyphicon glyphicon-remove-circle remove-lang"></span>');
  59 + }
  60 + });
  61 + $(document).on('click', '.dropdown-menu.f32 li a[data-lang]', function() {
  62 + var lang = $(this).data('lang');
  63 + var flag = $(this).find('span').first().clone();
  64 + var el = $(this);
  65 + var id = $(this).attr('href').substr(1);
  66 + $.get(form[id], { lang_id: lang, widget_id: id }, function(data) {
  67 + $('#'+id+'-tabs li').removeClass('active');
  68 + $('#'+id+'-tabs').append('<li role="lang_inputs" class="active" data-lang="'+lang+'"><a href="#'+id+'-'+lang+'" aria-controls="'+id+'-'+lang+'" role="tab" data-toggle="tab">'+$('<p>').append($(flag)).html()+'</a></li>');
  69 + $('#tab-content-'+id+' .tab-pane.active').removeClass('active');
  70 + $('#tab-content-'+id).append($(data).find('.ajax-loaded').first());
  71 + $('body').append($(data).filter('script'));
  72 + $(el).parent().remove();
  73 + if(!$('#lang-'+id+' li').length) {
  74 + $('#'+id+'Lang').addClass('disabled');
  75 + }
  76 + if($('#'+id+'-tabs li').length > 1) {
  77 + $('#'+id+'-tabs li').append('<span class="glyphicon glyphicon-remove-circle remove-lang"></span>')
  78 + }
  79 + });
  80 + });
  81 + $(document).on('click', '.remove-lang', function() {
  82 + var lang = $(this).parent().data('lang');
  83 + var flag = $(this).parent().find('span.flag').first().clone();
  84 + var id = $(this).parent().find('a[aria-controls]').first().attr('aria-controls').substr(0,8);
  85 + $('#'+id+'-'+lang).remove();
  86 + $('#lang-'+id).append('<li><a href="#'+id+'" data-lang="'+lang+'">'+$('<p>').append($(flag)).html()+'</a></li>');
  87 + $('#'+id+'Lang').removeClass('disabled');
  88 + $(this).parent().remove();
  89 + if($('#'+id+'-tabs li').length <= 1) {
  90 + $('#'+id+'-tabs li').find('.remove-lang').remove();
  91 + }
  92 + if(!$('#'+id+'-tabs>li.active').length) {
  93 + $('#'+id+'-tabs>li').first().find('a').tab('show');
  94 + }
  95 + });
92 96 });
93 97 \ No newline at end of file
... ...
composer.json
... ... @@ -12,7 +12,7 @@
12 12 "irc": "irc://irc.freenode.net/yii",
13 13 "source": "https://github.com/yiisoft/yii2"
14 14 },
15   - "minimum-stability": "stable",
  15 + "minimum-stability": "dev",
16 16 "require": {
17 17 "php": ">=5.4.0",
18 18 "yiisoft/yii2": ">=2.0.6",
... ...
db-migration/artbox_db.backup
No preview for this file type
db-migration/artbox_db3.backup deleted
No preview for this file type
db-migration/article_option_migration.backup deleted
No preview for this file type
db-migration/blog.zip deleted
No preview for this file type
db-migration/catalog.backup deleted
No preview for this file type
db-migration/yarik.sql deleted
1   --- --------------------------------------------------------
2   --- Хост: 127.0.0.1
3   --- Версия сервера: PostgreSQL 9.4.4, compiled by Visual C++ build 1800, 32-bit
4   --- ОС Сервера:
5   --- HeidiSQL Версия: 9.3.0.4984
6   --- --------------------------------------------------------
7   -
8   -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
9   -/*!40101 SET NAMES */;
10   -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
11   -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
12   -
13   --- Дамп структуры для таблица public.article
14   -CREATE TABLE IF NOT EXISTS "article" (
15   - "id" INTEGER NOT NULL DEFAULT nextval('article_id_seq'::regclass) COMMENT E'',
16   - "sort" INTEGER NOT NULL DEFAULT 100 COMMENT E'',
17   - "create_at" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT now() COMMENT E'',
18   - "update_at" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT now() COMMENT E'',
19   - "code" CHARACTER VARYING NOT NULL COMMENT E'',
20   - "category_id" INTEGER NOT NULL DEFAULT 1 COMMENT E'',
21   - "author" INTEGER NOT NULL COMMENT E'',
22   - "tags" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
23   - "parent_id" INTEGER NULL DEFAULT NULL COMMENT E'',
24   - "active" SMALLINT NOT NULL DEFAULT 0 COMMENT E'',
25   - "comments" SMALLINT NOT NULL DEFAULT 0::smallint COMMENT E'',
26   - "voting" SMALLINT NOT NULL DEFAULT 0::smallint COMMENT E'',
27   - KEY ("author"),
28   - PRIMARY KEY ("id"),
29   - KEY ("parent_id"),
30   - KEY ("category_id"),
31   - KEY ("id")
32   -);
33   -
34   --- Дамп данных таблицы public.article: 3 rows
35   -/*!40000 ALTER TABLE "article" DISABLE KEYS */;
36   -INSERT INTO "article" ("id", "sort", "create_at", "update_at", "code", "category_id", "author", "tags", "parent_id", "active", "comments", "voting") VALUES
37   - (5, 100, E'2015-12-04 14:52:39.54', E'2015-12-04 14:52:39.54', E'test_article', 1, 1, E'test, tag', NULL, 1, 0, 0),
38   - (6, 100, E'2015-12-04 14:52:52.403', E'2015-12-04 14:52:52.403', E'test_article2', 1, 1, E'test, tag', NULL, 1, 0, 0),
39   - (12, 100, E'2015-12-04 14:52:52.403', E'2015-12-04 14:52:52.403', E'test_article3', 1, 1, E'test, tag', 5, 1, 0, 0);
40   -/*!40000 ALTER TABLE "article" ENABLE KEYS */;
41   -
42   -
43   --- Дамп структуры для таблица public.article_category
44   -CREATE TABLE IF NOT EXISTS "article_category" (
45   - "id" INTEGER NOT NULL DEFAULT nextval('article_category_id_seq'::regclass) COMMENT E'',
46   - "sort" INTEGER NOT NULL DEFAULT 100 COMMENT E'',
47   - "code" CHARACTER VARYING NOT NULL COMMENT E'',
48   - "created_at" TIME WITHOUT TIME ZONE NOT NULL DEFAULT now() COMMENT E'',
49   - "updated_at" TIME WITHOUT TIME ZONE NOT NULL DEFAULT now() COMMENT E'',
50   - "tags" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
51   - "parent_id" INTEGER NULL DEFAULT NULL COMMENT E'',
52   - "active" SMALLINT NOT NULL DEFAULT 0 COMMENT E'',
53   - PRIMARY KEY ("id"),
54   - KEY ("parent_id"),
55   - KEY ("id")
56   -);
57   -
58   --- Дамп данных таблицы public.article_category: 2 rows
59   -/*!40000 ALTER TABLE "article_category" DISABLE KEYS */;
60   -INSERT INTO "article_category" ("id", "sort", "code", "created_at", "updated_at", "tags", "parent_id", "active") VALUES
61   - (1, 100, E'static_pages', E'14:08:02.74', E'14:08:02.74', NULL, NULL, 1),
62   - (2, 100, E'qwerty', E'11:00:35.954', E'11:00:35.954', E'qwerty', NULL, 0);
63   -/*!40000 ALTER TABLE "article_category" ENABLE KEYS */;
64   -
65   -
66   --- Дамп структуры для таблица public.article_category_lang
67   -CREATE TABLE IF NOT EXISTS "article_category_lang" (
68   - "id" INTEGER NOT NULL DEFAULT nextval('article_category_lang_id_seq'::regclass) COMMENT E'',
69   - "lang_id" INTEGER NOT NULL DEFAULT 0 COMMENT E'',
70   - "category_id" INTEGER NULL DEFAULT NULL COMMENT E'',
71   - "text" TEXT NOT NULL COMMENT E'',
72   - "preview" TEXT NULL DEFAULT NULL COMMENT E'',
73   - "seo_url" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
74   - "name" CHARACTER VARYING NOT NULL COMMENT E'',
75   - "meta_title" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
76   - "meta_descr" TEXT NULL DEFAULT NULL COMMENT E'',
77   - "meta_keywords" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
78   - "h1_tag" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
79   - "tags" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
80   - PRIMARY KEY ("id"),
81   - KEY ("category_id"),
82   - KEY ("lang_id"),
83   - KEY ("id")
84   -);
85   -
86   --- Дамп данных таблицы public.article_category_lang: 3 rows
87   -/*!40000 ALTER TABLE "article_category_lang" DISABLE KEYS */;
88   -INSERT INTO "article_category_lang" ("id", "lang_id", "category_id", "text", "preview", "seo_url", "name", "meta_title", "meta_descr", "meta_keywords", "h1_tag", "tags") VALUES
89   - (1, 0, 1, E'Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem ', E'Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem Lorem ', E'lorem', E'Lorem ipsum', E'Lorem title', E'Lorem description', E'lorem, keyword', E'Lorem h1 tag', E'lorem tag'),
90   - (2, 2, 2, E'qwerty', E'qwerty', E'qwerty', E'qwerty', E'qwerty', E'qwerty', E'qwerty', E'qwerty', E'qwerty'),
91   - (3, 1, 2, E'йцукен', E'йцукен', E'йцукен', E'йцукен', E'йцукен', E'йцукен', E'йцукен', E'йцукен', E'йцукен');
92   -/*!40000 ALTER TABLE "article_category_lang" ENABLE KEYS */;
93   -
94   -
95   --- Дамп структуры для таблица public.article_category_media
96   -CREATE TABLE IF NOT EXISTS "article_category_media" (
97   - "id" INTEGER NOT NULL DEFAULT nextval('article_category_media_id_seq'::regclass) COMMENT E'',
98   - "category_id" INTEGER NOT NULL COMMENT E'',
99   - "media_id" INTEGER NOT NULL COMMENT E'',
100   - "media_alt" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
101   - "media_title" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
102   - "media_caption" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
103   - "type" CHARACTER VARYING(10) NOT NULL DEFAULT 'additional'::character varying COMMENT E'',
104   - PRIMARY KEY ("id"),
105   - KEY ("media_id"),
106   - KEY ("category_id"),
107   - KEY ("id")
108   -);
109   -
110   --- Дамп данных таблицы public.article_category_media: 0 rows
111   -/*!40000 ALTER TABLE "article_category_media" DISABLE KEYS */;
112   -/*!40000 ALTER TABLE "article_category_media" ENABLE KEYS */;
113   -
114   -
115   --- Дамп структуры для таблица public.article_lang
116   -CREATE TABLE IF NOT EXISTS "article_lang" (
117   - "id" INTEGER NOT NULL DEFAULT nextval('article_lang_id_seq'::regclass) COMMENT E'',
118   - "lang_id" INTEGER NOT NULL COMMENT E'',
119   - "article_id" INTEGER NOT NULL COMMENT E'',
120   - "text" TEXT NOT NULL COMMENT E'',
121   - "seo_url" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
122   - "name" CHARACTER VARYING NOT NULL COMMENT E'',
123   - "preview" TEXT NULL DEFAULT NULL COMMENT E'',
124   - "meta_title" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
125   - "meta_descr" TEXT NULL DEFAULT NULL COMMENT E'',
126   - "meta_keywords" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
127   - "h1_tag" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
128   - "tags" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
129   - PRIMARY KEY ("id"),
130   - KEY ("article_id"),
131   - KEY ("lang_id"),
132   - KEY ("id")
133   -);
134   -
135   --- Дамп данных таблицы public.article_lang: 2 rows
136   -/*!40000 ALTER TABLE "article_lang" DISABLE KEYS */;
137   -INSERT INTO "article_lang" ("id", "lang_id", "article_id", "text", "seo_url", "name", "preview", "meta_title", "meta_descr", "meta_keywords", "h1_tag", "tags") VALUES
138   - (1, 0, 5, E'Lorem Lorem Lorem', E'article1', E'artivle1', E'Lorem preview', E'Lorem title', E'Lorem description', E'lorem, keyword', E'lorem h1 tag', E'tag, lorem'),
139   - (2, 0, 12, E'Lorem Lorem Lorem', E'article3', E'artivle3\r\n', E'Lorem preview', E'Lorem title', E'Lorem description', E'lorem, keyword', E'lorem h1 tag', E'tag, lorem');
140   -/*!40000 ALTER TABLE "article_lang" ENABLE KEYS */;
141   -
142   -
143   --- Дамп структуры для таблица public.article_media
144   -CREATE TABLE IF NOT EXISTS "article_media" (
145   - "id" INTEGER NOT NULL DEFAULT nextval('article_media_id_seq'::regclass) COMMENT E'',
146   - "article_id" INTEGER NOT NULL COMMENT E'',
147   - "media_id" INTEGER NOT NULL COMMENT E'',
148   - "type" CHARACTER VARYING(10) NOT NULL DEFAULT 'additional'::character varying COMMENT E'',
149   - "media_alt" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
150   - "media_title" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
151   - "media_caption" CHARACTER VARYING NULL DEFAULT NULL COMMENT E'',
152   - PRIMARY KEY ("id"),
153   - KEY ("media_id"),
154   - KEY ("article_id"),
155   - KEY ("id")
156   -);
157   -
158   --- Дамп данных таблицы public.article_media: 0 rows
159   -/*!40000 ALTER TABLE "article_media" DISABLE KEYS */;
160   -/*!40000 ALTER TABLE "article_media" ENABLE KEYS */;
161   -
162   -
163   --- Дамп структуры для таблица public.media
164   -CREATE TABLE IF NOT EXISTS "media" (
165   - "id" INTEGER NOT NULL DEFAULT nextval('media_id_seq'::regclass) COMMENT E'',
166   - "hash" CHARACTER VARYING NOT NULL COMMENT E'',
167   - PRIMARY KEY ("id"),
168   - KEY ("id")
169   -);
170   -
171   --- Дамп данных таблицы public.media: 0 rows
172   -/*!40000 ALTER TABLE "media" DISABLE KEYS */;
173   -/*!40000 ALTER TABLE "media" ENABLE KEYS */;
174   -
175   -
176   --- Дамп структуры для таблица public.option
177   -CREATE TABLE IF NOT EXISTS "option" (
178   - "model" CHARACTER VARYING(200) NULL DEFAULT NULL COMMENT E'',
179   - "option_id" INTEGER NOT NULL DEFAULT nextval('option_option_id_seq'::regclass) COMMENT E'',
180   - "model_id" INTEGER NULL DEFAULT NULL COMMENT E'',
181   - "name" CHARACTER VARYING(200) NULL DEFAULT NULL COMMENT E'',
182   - "template" CHARACTER VARYING(200) NULL DEFAULT NULL COMMENT E'',
183   - "parent_id" INTEGER NULL DEFAULT NULL COMMENT E'',
184   - "translate" BIT(1) NULL DEFAULT NULL COMMENT E'',
185   - "created_at" TIMESTAMP WITHOUT TIME ZONE NULL DEFAULT now() COMMENT E'',
186   - KEY ("option_id"),
187   - KEY ("parent_id"),
188   - PRIMARY KEY ("option_id")
189   -);
190   -
191   --- Дамп данных таблицы public.option: 0 rows
192   -/*!40000 ALTER TABLE "option" DISABLE KEYS */;
193   -/*!40000 ALTER TABLE "option" ENABLE KEYS */;
194   -
195   -
196   --- Дамп структуры для таблица public.option_lang
197   -CREATE TABLE IF NOT EXISTS "option_lang" (
198   - "primary" INTEGER NOT NULL DEFAULT nextval('option_lang_primary_seq'::regclass) COMMENT E'',
199   - "id" INTEGER NULL DEFAULT NULL COMMENT E'',
200   - "lang_id" INTEGER NULL DEFAULT NULL COMMENT E'',
201   - "value" TEXT NULL DEFAULT NULL COMMENT E'',
202   - KEY ("id"),
203   - PRIMARY KEY ("primary")
204   -);
205   -
206   --- Дамп данных таблицы public.option_lang: 0 rows
207   -/*!40000 ALTER TABLE "option_lang" DISABLE KEYS */;
208   -/*!40000 ALTER TABLE "option_lang" ENABLE KEYS */;
209   -/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
210   -/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
211   -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
db-migration/yarik.zip deleted
No preview for this file type