Commit 9af79e71c667ccdd4add84bec20ae5cc5186a0ac
1 parent
6fab04aa
Sitemap and slugbehavior fix
Showing
18 changed files
with
416 additions
and
60 deletions
Show diff stats
backend/config/main.php
1 | 1 | <?php |
2 | + use artbox\core\components\SeoUrlManager; | |
2 | 3 | use artbox\core\models\Page; |
3 | 4 | use common\components\Sitemap; |
4 | - use yii\web\UrlManager; | |
5 | 5 | |
6 | 6 | $params = array_merge( |
7 | 7 | require( __DIR__ . '/../../common/config/params.php' ), |
... | ... | @@ -97,7 +97,7 @@ |
97 | 97 | 'rules' => [], |
98 | 98 | ], |
99 | 99 | 'urlManagerFrontend' => [ |
100 | - 'class' => UrlManager::className(), | |
100 | + 'class' => SeoUrlManager::className(), | |
101 | 101 | 'baseUrl' => '/', |
102 | 102 | 'enablePrettyUrl' => true, |
103 | 103 | 'showScriptName' => false, |
... | ... | @@ -111,7 +111,7 @@ |
111 | 111 | 'conditions' => [ |
112 | 112 | [ 'in_menu' => 1 ], |
113 | 113 | ], |
114 | - 'url' => 'site/page', | |
114 | + 'url' => 'page/view', | |
115 | 115 | ], |
116 | 116 | ], |
117 | 117 | ], | ... | ... |
backend/controllers/SitemapController.php
... | ... | @@ -156,6 +156,7 @@ |
156 | 156 | if (isset( $old_entity_models[ $entity_model->entity ] )) { |
157 | 157 | $entity_model->status = $old_entity_models[ $entity_model->entity ]->status; |
158 | 158 | $entity_model->priority = $old_entity_models[ $entity_model->entity ]->priority; |
159 | + $entity_model->frequency = $old_entity_models[ $entity_model->entity ]->frequency; | |
159 | 160 | } |
160 | 161 | } |
161 | 162 | // ***** <<< End |
... | ... | @@ -190,7 +191,7 @@ |
190 | 191 | "[$count]url", |
191 | 192 | [ |
192 | 193 | 'options' => [ |
193 | - 'class' => 'form-group col-xs-8 col-sm-9', | |
194 | + 'class' => 'form-group col-xs-5 col-sm-6', | |
194 | 195 | ], |
195 | 196 | ] |
196 | 197 | ) |
... | ... | @@ -198,6 +199,27 @@ |
198 | 199 | ->render(); |
199 | 200 | $content .= $form->field( |
200 | 201 | $model, |
202 | + "[$count]frequency", | |
203 | + [ | |
204 | + 'options' => [ | |
205 | + 'class' => 'form-group col-xs-3 col-sm-3', | |
206 | + ], | |
207 | + ] | |
208 | + ) | |
209 | + ->dropDownList( | |
210 | + [ | |
211 | + 'always' => 'always', | |
212 | + 'hourly' => 'hourly', | |
213 | + 'daily' => 'daily', | |
214 | + 'weekly' => 'weekly', | |
215 | + 'monthly' => 'monthly', | |
216 | + 'yearly' => 'yearly', | |
217 | + 'never' => 'never', | |
218 | + ] | |
219 | + ) | |
220 | + ->render(); | |
221 | + $content .= $form->field( | |
222 | + $model, | |
201 | 223 | "[$count]priority", |
202 | 224 | [ |
203 | 225 | 'options' => [ | ... | ... |
1 | +<?php | |
2 | + use common\models\Settings; | |
3 | + use yii\bootstrap\ActiveForm; | |
4 | + use yii\web\View; | |
5 | + | |
6 | + /** | |
7 | + * @var View $this | |
8 | + * @var Settings $model | |
9 | + * @var ActiveForm $form | |
10 | + */ | |
11 | + echo $form->field($model, 'analytics_key') | |
12 | + ->textInput(); | |
0 | 13 | \ No newline at end of file | ... | ... |
1 | +<?php | |
2 | + use common\models\Settings; | |
3 | + use yii\bootstrap\ActiveForm; | |
4 | + use yii\web\View; | |
5 | + | |
6 | + /** | |
7 | + * @var View $this | |
8 | + * @var Settings $model | |
9 | + * @var ActiveForm $form | |
10 | + */ | |
11 | + echo $form->field($model, 'phone') | |
12 | + ->textInput() | |
13 | + ->hint(\Yii::t('core', 'Contact phone for website')); | |
14 | + echo $form->field($model, 'phone2') | |
15 | + ->textInput() | |
16 | + ->hint(\Yii::t('core', 'Contact phone for website')); | |
17 | + echo $form->field($model, 'email') | |
18 | + ->textInput() | |
19 | + ->hint(\Yii::t('core', 'Contact email for website')); | |
20 | + echo $form->field($model, 'skype') | |
21 | + ->textInput(); | |
22 | + echo $form->field($model, 'house') | |
23 | + ->textInput(); | |
24 | + echo $form->field($model, 'street') | |
25 | + ->textInput(); | |
26 | + echo $form->field($model, 'office') | |
27 | + ->textInput(); | |
28 | + echo $form->field($model, 'city') | |
29 | + ->textInput(); | |
30 | + echo $form->field($model, 'lat') | |
31 | + ->textInput(); | |
32 | + echo $form->field($model, 'lon') | |
33 | + ->textInput(); | |
34 | + | |
0 | 35 | \ No newline at end of file | ... | ... |
1 | +<?php | |
2 | + use common\models\Settings; | |
3 | + use yii\bootstrap\ActiveForm; | |
4 | + use yii\web\View; | |
5 | + | |
6 | + /** | |
7 | + * @var View $this | |
8 | + * @var Settings $model | |
9 | + * @var ActiveForm $form | |
10 | + */ | |
11 | + echo $form->field($model, 'name') | |
12 | + ->textInput(); | |
13 | + echo $form->field($model, 'logo') | |
14 | + ->widget( | |
15 | + \noam148\imagemanager\components\ImageManagerInputWidget::className(), | |
16 | + [ | |
17 | + 'showPreview' => true, | |
18 | + 'showDeletePickedImageConfirm' => false, | |
19 | + ] | |
20 | + ); | |
21 | + echo $form->field($model, 'about') | |
22 | + ->textarea(); | |
0 | 23 | \ No newline at end of file | ... | ... |
1 | +<?php | |
2 | + use common\models\Settings; | |
3 | + use yii\bootstrap\ActiveForm; | |
4 | + use yii\web\View; | |
5 | + | |
6 | + /** | |
7 | + * @var View $this | |
8 | + * @var Settings $model | |
9 | + * @var ActiveForm $form | |
10 | + */ | |
11 | + echo $form->field($model, 'facebook') | |
12 | + ->textInput(); | |
13 | + echo $form->field($model, 'vk') | |
14 | + ->textInput(); | |
15 | + echo $form->field($model, 'google') | |
16 | + ->textInput(); | |
17 | + echo $form->field($model, 'twitter') | |
18 | + ->textInput(); | |
19 | + echo $form->field($model, 'ok') | |
20 | + ->textInput(); | |
0 | 21 | \ No newline at end of file | ... | ... |
backend/views/settings/settings.php
... | ... | @@ -8,6 +8,7 @@ |
8 | 8 | use artbox\gentelella\widgets\XPanel; |
9 | 9 | use yii\bootstrap\ActiveForm; |
10 | 10 | use yii\bootstrap\Html; |
11 | + use yii\bootstrap\Tabs; | |
11 | 12 | use yii\web\View; |
12 | 13 | |
13 | 14 | $this->title = 'Settings'; |
... | ... | @@ -26,19 +27,57 @@ |
26 | 27 | |
27 | 28 | <?php |
28 | 29 | $form = ActiveForm::begin(); |
29 | - | |
30 | - echo $form->field($model, 'id') | |
31 | - ->textInput(); | |
32 | - | |
33 | - echo $form->field($model, 'name') | |
34 | - ->textInput(); | |
35 | - | |
36 | - echo $form->field($model, 'description') | |
37 | - ->textInput(); | |
38 | 30 | |
39 | - echo $form->field($model, 'analytics_key') | |
40 | - ->textInput(); | |
41 | - | |
31 | + echo Tabs::widget( | |
32 | + [ | |
33 | + 'options' => [ | |
34 | + 'class' => 'bar_tabs', | |
35 | + ], | |
36 | + 'items' => [ | |
37 | + [ | |
38 | + 'label' => \Yii::t('core', 'Main'), | |
39 | + 'content' => $this->render( | |
40 | + '_main_tab', | |
41 | + [ | |
42 | + 'model' => $model, | |
43 | + 'form' => $form, | |
44 | + ] | |
45 | + ), | |
46 | + ], | |
47 | + [ | |
48 | + 'label' => \Yii::t('core', 'Contact'), | |
49 | + 'content' => $this->render( | |
50 | + '_contact_tab', | |
51 | + [ | |
52 | + 'model' => $model, | |
53 | + 'form' => $form, | |
54 | + ] | |
55 | + ), | |
56 | + ], | |
57 | + [ | |
58 | + 'label' => \Yii::t('core', 'Social'), | |
59 | + 'content' => $this->render( | |
60 | + '_social_tab', | |
61 | + [ | |
62 | + 'model' => $model, | |
63 | + 'form' => $form, | |
64 | + ] | |
65 | + ), | |
66 | + ], | |
67 | + [ | |
68 | + 'label' => \Yii::t('core', 'Codes'), | |
69 | + 'content' => $this->render( | |
70 | + '_codes_tab', | |
71 | + [ | |
72 | + 'model' => $model, | |
73 | + 'form' => $form, | |
74 | + ] | |
75 | + ), | |
76 | + ], | |
77 | + ], | |
78 | + ] | |
79 | + ); | |
80 | + | |
42 | 81 | echo Html::submitButton( |
43 | 82 | 'Save', |
44 | 83 | [ | ... | ... |
backend/views/sitemap/index.php
1 | 1 | <?php |
2 | 2 | use artbox\gentelella\widgets\XPanel; |
3 | + use common\components\Sitemap; | |
3 | 4 | use yii\bootstrap\Html; |
4 | 5 | use yii\web\View; |
5 | 6 | |
... | ... | @@ -8,6 +9,10 @@ |
8 | 9 | */ |
9 | 10 | $this->title = \Yii::t('core', 'Sitemap'); |
10 | 11 | $this->params[ 'breadcrumbs' ][] = $this->title; |
12 | + /** | |
13 | + * @var Sitemap $sitemap | |
14 | + */ | |
15 | + $sitemap = \Yii::$app->get('sitemap'); | |
11 | 16 | ?> |
12 | 17 | <div class="sitemap-main"> |
13 | 18 | <?php |
... | ... | @@ -63,12 +68,32 @@ |
63 | 68 | [ 'generate' ], |
64 | 69 | [ |
65 | 70 | 'class' => 'btn btn-app ajax', |
71 | + 'data' => [ | |
72 | + 'need-reload' => !$sitemap->checkFileExist(), | |
73 | + ], | |
66 | 74 | ] |
67 | 75 | ); |
68 | 76 | ?> |
69 | 77 | </div> |
70 | 78 | </div> |
71 | 79 | <?php |
80 | + if ($sitemap->checkFileExist()) { | |
81 | + echo Html::tag( | |
82 | + 'div', | |
83 | + Html::a( | |
84 | + \Yii::t('core', 'View generated sitemap.xml'), | |
85 | + $sitemap->getUrl(), | |
86 | + [ | |
87 | + 'target' => '_blank', | |
88 | + ] | |
89 | + ), | |
90 | + [ | |
91 | + 'class' => 'row text-right', | |
92 | + ] | |
93 | + ); | |
94 | + } | |
95 | + ?> | |
96 | + <?php | |
72 | 97 | $xPanel::end(); |
73 | 98 | ?> |
74 | 99 | </div> | ... | ... |
backend/views/sitemap/update.php
... | ... | @@ -36,12 +36,31 @@ |
36 | 36 | "[$index]url", |
37 | 37 | [ |
38 | 38 | 'options' => [ |
39 | - 'class' => 'form-group col-xs-8 col-sm-9', | |
39 | + 'class' => 'form-group col-xs-5 col-sm-6', | |
40 | 40 | ], |
41 | 41 | ] |
42 | 42 | ) |
43 | 43 | ->textInput() . $form->field( |
44 | 44 | $model, |
45 | + "[$index]frequency", | |
46 | + [ | |
47 | + 'options' => [ | |
48 | + 'class' => 'form-group col-xs-3 col-sm-3', | |
49 | + ], | |
50 | + ] | |
51 | + ) | |
52 | + ->dropDownList( | |
53 | + [ | |
54 | + 'always' => 'always', | |
55 | + 'hourly' => 'hourly', | |
56 | + 'daily' => 'daily', | |
57 | + 'weekly' => 'weekly', | |
58 | + 'monthly' => 'monthly', | |
59 | + 'yearly' => 'yearly', | |
60 | + 'never' => 'never', | |
61 | + ] | |
62 | + ) . $form->field( | |
63 | + $model, | |
45 | 64 | "[$index]priority", |
46 | 65 | [ |
47 | 66 | 'options' => [ |
... | ... | @@ -49,7 +68,7 @@ |
49 | 68 | ], |
50 | 69 | ] |
51 | 70 | ) |
52 | - ->textInput() . Html::icon( | |
71 | + ->textInput() . Html::icon( | |
53 | 72 | 'minus', |
54 | 73 | [ |
55 | 74 | 'class' => 'col-xs-1 field-group-remove', |
... | ... | @@ -85,7 +104,7 @@ |
85 | 104 | <?php |
86 | 105 | foreach ($entity_models as $index => $entity_model) { |
87 | 106 | ?> |
88 | - <div class="form-group col-xs-9 col-sm-10"> | |
107 | + <div class="form-group col-xs-6 col-sm-8"> | |
89 | 108 | <?php |
90 | 109 | echo Html::tag( |
91 | 110 | 'div', |
... | ... | @@ -118,6 +137,23 @@ |
118 | 137 | </div> |
119 | 138 | <div class="form-group col-xs-3 col-sm-2"> |
120 | 139 | <?php |
140 | + echo $form->field($entity_model, "[$index]frequency") | |
141 | + ->label(false) | |
142 | + ->dropDownList( | |
143 | + [ | |
144 | + 'always' => 'always', | |
145 | + 'hourly' => 'hourly', | |
146 | + 'daily' => 'daily', | |
147 | + 'weekly' => 'weekly', | |
148 | + 'monthly' => 'monthly', | |
149 | + 'yearly' => 'yearly', | |
150 | + 'never' => 'never', | |
151 | + ] | |
152 | + ); | |
153 | + ?> | |
154 | + </div> | |
155 | + <div class="form-group col-xs-3 col-sm-2"> | |
156 | + <?php | |
121 | 157 | echo $form->field($entity_model, "[$index]priority") |
122 | 158 | ->label(false) |
123 | 159 | ->input( | ... | ... |
common/components/Sitemap.php
... | ... | @@ -6,14 +6,38 @@ |
6 | 6 | use yii\base\Object; |
7 | 7 | use yii\db\ActiveRecord; |
8 | 8 | use yii\helpers\Html; |
9 | - use yii\helpers\Url; | |
9 | + use yii\web\UrlManager; | |
10 | 10 | |
11 | 11 | class Sitemap extends Object |
12 | 12 | { |
13 | 13 | public $entities = []; |
14 | 14 | public $path = '@frontend/web/sitemap.xml'; |
15 | + public $url = 'sitemap.xml'; | |
15 | 16 | |
16 | 17 | /** |
18 | + * Get absolute url to sitemap.xml | |
19 | + * | |
20 | + * @return string | |
21 | + */ | |
22 | + public function getUrl(): string | |
23 | + { | |
24 | + /** | |
25 | + * @var UrlManager $urlManager | |
26 | + */ | |
27 | + $urlManager = \Yii::$app->get('urlManagerFrontend'); | |
28 | + return $urlManager->createAbsoluteUrl('/' . $this->url); | |
29 | + } | |
30 | + | |
31 | + /** | |
32 | + * Check whether sitemap.xml exist | |
33 | + * | |
34 | + * @return bool | |
35 | + */ | |
36 | + public function checkFileExist(): bool | |
37 | + { | |
38 | + return file_exists(\Yii::getAlias($this->path)); | |
39 | + } | |
40 | + /** | |
17 | 41 | * Generate sitemap XML in $path |
18 | 42 | * |
19 | 43 | * @return bool |
... | ... | @@ -47,6 +71,10 @@ |
47 | 71 | */ |
48 | 72 | public function generateOneShot(): string |
49 | 73 | { |
74 | + /** | |
75 | + * @var UrlManager $urlManager | |
76 | + */ | |
77 | + $urlManager = \Yii::$app->get('urlManagerFrontend'); | |
50 | 78 | $content = '<?xml version="1.0" encoding="UTF-8"?>'; |
51 | 79 | $content .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; |
52 | 80 | /** |
... | ... | @@ -60,7 +88,7 @@ |
60 | 88 | 'url', |
61 | 89 | Html::tag('loc', $item->url) . Html::tag('lastmod', date('Y-m-d')) . Html::tag( |
62 | 90 | 'changefreq', |
63 | - 'monthly' | |
91 | + $item->frequency | |
64 | 92 | ) . Html::tag('priority', $item->priority) |
65 | 93 | ); |
66 | 94 | } |
... | ... | @@ -100,16 +128,15 @@ |
100 | 128 | 'url', |
101 | 129 | Html::tag( |
102 | 130 | 'loc', |
103 | - Url::to( | |
131 | + $urlManager->createAbsoluteUrl( | |
104 | 132 | [ |
105 | 133 | $entity[ 'url' ], |
106 | 134 | 'id' => $record->getAttribute('id'), |
107 | - ], | |
108 | - true | |
135 | + ] | |
109 | 136 | ) |
110 | 137 | ) . Html::tag('lastmod', date('Y-m-d')) . Html::tag( |
111 | 138 | 'changefreq', |
112 | - 'monthly' | |
139 | + $model->frequency | |
113 | 140 | ) . Html::tag('priority', $model->priority) |
114 | 141 | ); |
115 | 142 | } | ... | ... |
common/config/SitemapDynamic.php
... | ... | @@ -2,9 +2,10 @@ |
2 | 2 | |
3 | 3 | return [ |
4 | 4 | 1 => [ |
5 | - 'entity' => 'artbox\\core\\models\\Page', | |
6 | - 'status' => '1', | |
7 | - 'priority' => '0.6', | |
8 | - 'id' => 1, | |
5 | + 'entity' => 'artbox\\core\\models\\Page', | |
6 | + 'status' => '1', | |
7 | + 'frequency' => 'hourly', | |
8 | + 'priority' => '0.7', | |
9 | + 'id' => 1, | |
9 | 10 | ], |
10 | 11 | ]; |
11 | 12 | \ No newline at end of file | ... | ... |
common/config/SitemapStatic.php
... | ... | @@ -2,8 +2,15 @@ |
2 | 2 | |
3 | 3 | return [ |
4 | 4 | 1 => [ |
5 | - 'url' => 'http://www.artbox.dev/', | |
6 | - 'priority' => '1', | |
7 | - 'id' => 1, | |
5 | + 'url' => 'http://www.artbox.dev/', | |
6 | + 'frequency' => 'monthly', | |
7 | + 'priority' => '1', | |
8 | + 'id' => 1, | |
9 | + ], | |
10 | + 2 => [ | |
11 | + 'url' => 'http://www.artbox.dev/site/contacts', | |
12 | + 'frequency' => 'monthly', | |
13 | + 'priority' => '0.7', | |
14 | + 'id' => 2, | |
8 | 15 | ], |
9 | 16 | ]; |
10 | 17 | \ No newline at end of file | ... | ... |
common/config/settings.php
... | ... | @@ -2,17 +2,32 @@ |
2 | 2 | |
3 | 3 | return [ |
4 | 4 | 1 => [ |
5 | - 'id' => '1', | |
6 | - 'name' => 'Admin321', | |
7 | - 'description' => 'Site administrator', | |
5 | + 'phone' => '+38 (044) 593-73-76', | |
6 | + 'phone2' => '+38 (098) 468-07-64', | |
7 | + 'skype' => 'artwebstudio', | |
8 | + 'email' => 'artweb.ua@gmail.com', | |
9 | + 'house' => '1-М', | |
10 | + 'street' => 'пр. М. Бажана', | |
11 | + 'office' => '25', | |
12 | + 'city' => 'Киев', | |
13 | + 'country' => '', | |
14 | + 'lat' => '50.409382', | |
15 | + 'lon' => '30.646391', | |
16 | + 'facebook' => 'https://www.facebook.com/ArtWeb.ua/', | |
17 | + 'vk' => 'https://vk.com/artwebua', | |
18 | + 'ok' => 'https://ok.ru/artwebua', | |
19 | + 'google' => 'https://plus.google.com/+ArtwebUaAgency', | |
20 | + 'twitter' => 'https://twitter.com/ArtWeb_ua', | |
21 | + 'name' => 'Artweb', | |
22 | + 'logo' => '2', | |
23 | + 'about' => 'Строим бизнес в онлайне', | |
8 | 24 | 'analytics_key' => '119240817', |
9 | 25 | 'robots' => 'User-agent: Google |
10 | 26 | Disallow: |
11 | - | |
12 | -User-agent: * | |
13 | -Disallow: /', | |
14 | - 'ga_code' => 'TEst', | |
15 | - 'ya_code' => 'TEst 2', | |
16 | - 'tag_manager' => 'TEst 3', | |
27 | +', | |
28 | + 'ga_code' => '796967', | |
29 | + 'ya_code' => '08908908', | |
30 | + 'tag_manager' => '', | |
31 | + 'id' => 1, | |
17 | 32 | ], |
18 | 33 | ]; |
19 | 34 | \ No newline at end of file | ... | ... |
common/models/Settings.php
1 | 1 | <?php |
2 | 2 | namespace common\models; |
3 | - | |
3 | + | |
4 | + use noam148\imagemanager\models\ImageManager; | |
4 | 5 | use yii2tech\filedb\ActiveRecord; |
5 | 6 | use Yii; |
6 | 7 | |
... | ... | @@ -8,14 +9,30 @@ |
8 | 9 | * Class Settings |
9 | 10 | * |
10 | 11 | * @package artbox\core\models |
11 | - * @property string $name | |
12 | - * @property string $id | |
13 | - * @property string $description | |
14 | 12 | * @property string $analytics_key |
15 | 13 | * @property string $robots |
16 | 14 | * @property string $ga_code |
17 | 15 | * @property string $ya_code |
18 | 16 | * @property string $tag_manager |
17 | + * @property string $phone | |
18 | + * @property string $phone2 | |
19 | + * @property string $skype | |
20 | + * @property string $email | |
21 | + * @property string $house | |
22 | + * @property string $street | |
23 | + * @property string $office | |
24 | + * @property string $city | |
25 | + * @property string $country | |
26 | + * @property float $lat | |
27 | + * @property float $lon | |
28 | + * @property string $facebook | |
29 | + * @property string $vk | |
30 | + * @property string $ok | |
31 | + * @property string $google | |
32 | + * @property string $twitter | |
33 | + * @property string name | |
34 | + * @property int $logo | |
35 | + * @property string $about | |
19 | 36 | */ |
20 | 37 | class Settings extends ActiveRecord |
21 | 38 | { |
... | ... | @@ -50,17 +67,70 @@ |
50 | 67 | return [ |
51 | 68 | [ |
52 | 69 | [ |
53 | - 'name', | |
54 | - 'description', | |
55 | - 'id', | |
56 | 70 | 'analytics_key', |
57 | 71 | 'robots', |
58 | 72 | 'ga_code', |
59 | 73 | 'ya_code', |
60 | 74 | 'tag_manager', |
75 | + 'phone', | |
76 | + 'phone2', | |
77 | + 'skype', | |
78 | + 'email', | |
79 | + 'house', | |
80 | + 'street', | |
81 | + 'office', | |
82 | + 'city', | |
83 | + 'country', | |
84 | + 'facebook', | |
85 | + 'vk', | |
86 | + 'google', | |
87 | + 'twitter', | |
88 | + 'name', | |
89 | + 'about', | |
90 | + 'ok', | |
61 | 91 | ], |
62 | 92 | 'string', |
63 | 93 | ], |
94 | + [ | |
95 | + [ | |
96 | + 'lat', | |
97 | + 'lon', | |
98 | + ], | |
99 | + 'double', | |
100 | + ], | |
101 | + [ | |
102 | + [ | |
103 | + 'email', | |
104 | + ], | |
105 | + 'email', | |
106 | + ], | |
107 | + [ | |
108 | + [ | |
109 | + 'logo', | |
110 | + ], | |
111 | + 'integer', | |
112 | + ], | |
113 | + [ | |
114 | + [ | |
115 | + 'logo', | |
116 | + ], | |
117 | + 'exist', | |
118 | + 'targetClass' => ImageManager::className(), | |
119 | + 'targetAttribute' => 'id', | |
120 | + ], | |
121 | + [ | |
122 | + [ | |
123 | + 'logo', | |
124 | + ], | |
125 | + 'filter', | |
126 | + 'filter' => function ($value) { | |
127 | + if (empty( $value )) { | |
128 | + return null; | |
129 | + } else { | |
130 | + return $value; | |
131 | + } | |
132 | + }, | |
133 | + ], | |
64 | 134 | ]; |
65 | 135 | } |
66 | 136 | |
... | ... | @@ -78,14 +148,30 @@ |
78 | 148 | public function attributeLabels() |
79 | 149 | { |
80 | 150 | return [ |
81 | - 'id' => Yii::t('core', 'ID'), | |
82 | - 'name' => Yii::t('core', 'Name'), | |
83 | - 'description' => Yii::t('core', 'Description'), | |
84 | 151 | 'analytics_key' => Yii::t('core', 'Google Analytics Key'), |
85 | 152 | 'robots' => Yii::t('core', 'Robots'), |
86 | 153 | 'ga_code' => Yii::t('core', 'Google analytics code'), |
87 | 154 | 'ya_code' => Yii::t('core', 'Yandex metrics code'), |
88 | 155 | 'tag_manager' => Yii::t('core', 'Tag Manager code'), |
156 | + 'phone' => Yii::t('core', 'Phone'), | |
157 | + 'phone2' => Yii::t('core', 'Additional phone'), | |
158 | + 'skype' => Yii::t('core', 'Skype'), | |
159 | + 'name' => Yii::t('core', 'Company name'), | |
160 | + 'email' => Yii::t('core', 'Email'), | |
161 | + 'house' => Yii::t('core', 'House'), | |
162 | + 'street' => Yii::t('core', 'Street'), | |
163 | + 'office' => Yii::t('core', 'Office'), | |
164 | + 'city' => Yii::t('core', 'City'), | |
165 | + 'country' => Yii::t('core', 'Country'), | |
166 | + 'lat' => Yii::t('core', 'Latitude'), | |
167 | + 'lon' => Yii::t('core', 'Longitude'), | |
168 | + 'facebook' => Yii::t('core', 'Facebook'), | |
169 | + 'vk' => Yii::t('core', 'VK'), | |
170 | + 'google' => Yii::t('core', 'Google'), | |
171 | + 'twitter' => Yii::t('core', 'Twitter'), | |
172 | + 'logo' => Yii::t('core', 'Company logo'), | |
173 | + 'about' => Yii::t('core', 'About us'), | |
174 | + 'ok' => Yii::t('core', 'Odnoklassniki'), | |
89 | 175 | ]; |
90 | 176 | } |
91 | 177 | ... | ... |
common/models/SitemapDynamic.php
... | ... | @@ -12,6 +12,7 @@ |
12 | 12 | * @property string $entity |
13 | 13 | * @property bool $status |
14 | 14 | * @property float $priority |
15 | + * @property string $frequency | |
15 | 16 | */ |
16 | 17 | class SitemapDynamic extends ActiveRecord |
17 | 18 | { |
... | ... | @@ -37,6 +38,7 @@ |
37 | 38 | 'entity', |
38 | 39 | 'status', |
39 | 40 | 'priority', |
41 | + 'frequency', | |
40 | 42 | ]; |
41 | 43 | } |
42 | 44 | |
... | ... | @@ -59,6 +61,7 @@ |
59 | 61 | 'entity', |
60 | 62 | 'status', |
61 | 63 | 'priority', |
64 | + 'frequency', | |
62 | 65 | ], |
63 | 66 | 'required', |
64 | 67 | ], |
... | ... | @@ -71,6 +74,7 @@ |
71 | 74 | [ |
72 | 75 | [ |
73 | 76 | 'entity', |
77 | + 'frequency', | |
74 | 78 | ], |
75 | 79 | 'string', |
76 | 80 | ], |
... | ... | @@ -91,10 +95,11 @@ |
91 | 95 | public function attributeLabels() |
92 | 96 | { |
93 | 97 | return [ |
94 | - 'id' => Yii::t('core', 'ID'), | |
95 | - 'entity' => Yii::t('core', 'Model'), | |
96 | - 'status' => Yii::t('core', 'Status'), | |
97 | - 'priority' => Yii::t('core', 'Priority'), | |
98 | + 'id' => Yii::t('core', 'ID'), | |
99 | + 'entity' => Yii::t('core', 'Model'), | |
100 | + 'status' => Yii::t('core', 'Status'), | |
101 | + 'priority' => Yii::t('core', 'Priority'), | |
102 | + 'frequency' => Yii::t('core', 'Frequency'), | |
98 | 103 | ]; |
99 | 104 | } |
100 | 105 | ... | ... |
common/models/SitemapStatic.php
... | ... | @@ -11,6 +11,7 @@ |
11 | 11 | * @property int $id |
12 | 12 | * @property string $url |
13 | 13 | * @property float $priority |
14 | + * @property string $frequency | |
14 | 15 | */ |
15 | 16 | class SitemapStatic extends ActiveRecord |
16 | 17 | { |
... | ... | @@ -31,6 +32,7 @@ |
31 | 32 | 'id', |
32 | 33 | 'url', |
33 | 34 | 'priority', |
35 | + 'frequency', | |
34 | 36 | ]; |
35 | 37 | } |
36 | 38 | |
... | ... | @@ -66,6 +68,7 @@ |
66 | 68 | [ |
67 | 69 | [ |
68 | 70 | 'url', |
71 | + 'frequency', | |
69 | 72 | ], |
70 | 73 | 'string', |
71 | 74 | ], |
... | ... | @@ -78,9 +81,10 @@ |
78 | 81 | public function attributeLabels() |
79 | 82 | { |
80 | 83 | return [ |
81 | - 'id' => Yii::t('core', 'ID'), | |
82 | - 'url' => Yii::t('core', 'Url'), | |
83 | - 'priority' => Yii::t('core', 'Priority'), | |
84 | + 'id' => Yii::t('core', 'ID'), | |
85 | + 'url' => Yii::t('core', 'Url'), | |
86 | + 'priority' => Yii::t('core', 'Priority'), | |
87 | + 'frequency' => Yii::t('core', 'Frequency'), | |
84 | 88 | ]; |
85 | 89 | } |
86 | 90 | ... | ... |
composer.lock
... | ... | @@ -4,8 +4,8 @@ |
4 | 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", |
5 | 5 | "This file is @generated automatically" |
6 | 6 | ], |
7 | - "hash": "36eb0ae581bcd3b79ac784abbb046108", | |
8 | - "content-hash": "51847bf92742211dfa7159261b54c33b", | |
7 | + "hash": "c2e977cd213cebff0ae0575975d20974", | |
8 | + "content-hash": "ca665ed7c0e1bd63947fab086b435a30", | |
9 | 9 | "packages": [ |
10 | 10 | { |
11 | 11 | "name": "2amigos/yii2-tinymce-widget", | ... | ... |
1 | +<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>http://www.artbox.dev/</loc><lastmod>2017-03-30</lastmod><changefreq>monthly</changefreq><priority>1</priority></url><url><loc>http://www.artbox.dev/site/contacts</loc><lastmod>2017-03-30</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url><url><loc>http://www.artbox.dev/en/text-en</loc><lastmod>2017-03-30</lastmod><changefreq>hourly</changefreq><priority>0.7</priority></url></urlset> | |
0 | 2 | \ No newline at end of file | ... | ... |