Commit 214521895249744d6c99302eee7a7a4382ffd1f5
1 parent
a6795694
feedback calculator final
Showing
5 changed files
with
120 additions
and
56 deletions
Show diff stats
common/mail/calculator.php
@@ -27,9 +27,21 @@ | @@ -27,9 +27,21 @@ | ||
27 | <td><b><?= \Yii::t('app', 'Email: ') ?></b></td> | 27 | <td><b><?= \Yii::t('app', 'Email: ') ?></b></td> |
28 | <td><?= $model->email ?></td> | 28 | <td><?= $model->email ?></td> |
29 | </tr> | 29 | </tr> |
30 | - <tr> | ||
31 | - <td><b><?= \Yii::t('app', 'JSON string: ') ?></b></td> | ||
32 | - <td><?= $model->calc_json_info ?></td> | ||
33 | - </tr> | 30 | + <?php |
31 | + | ||
32 | + foreach ($model->getCalcJsonInfo() as $attr => $value) { | ||
33 | + | ||
34 | + ?> | ||
35 | + | ||
36 | + <tr> | ||
37 | + <td><b><?= \Yii::t('app', $attr) ?></b></td> | ||
38 | + <td><?= $value ?></td> | ||
39 | + </tr> | ||
40 | + | ||
41 | + <?php | ||
42 | + | ||
43 | + } | ||
44 | + | ||
45 | + ?> | ||
34 | </tbody> | 46 | </tbody> |
35 | </table> | 47 | </table> |
common/messages/ru/app.php
@@ -214,4 +214,22 @@ return [ | @@ -214,4 +214,22 @@ return [ | ||
214 | 'showcase_pr_text3' => 'утвержденных компаниями энергоснабжения наших СЭС', | 214 | 'showcase_pr_text3' => 'утвержденных компаниями энергоснабжения наших СЭС', |
215 | 'showcase_pr_text4' => 'введенная в эксплуатацию коммерческая СЭС на крыше офисного здания в Киеве', | 215 | 'showcase_pr_text4' => 'введенная в эксплуатацию коммерческая СЭС на крыше офисного здания в Киеве', |
216 | 'firsts' => '-ая', | 216 | 'firsts' => '-ая', |
217 | + | ||
218 | + // для отсылки на эмэйл | ||
219 | + | ||
220 | + 'adress' => "Адрес", | ||
221 | + 'module_install_angle' => "Угол установки фотомодулей", | ||
222 | + 'latitude' => "Широта", | ||
223 | + 'longitude' => "Долгота", | ||
224 | + 'power_station_type' => "Тип станции", | ||
225 | + 'area' => "Площадь", | ||
226 | + 'power' => "Мощность", | ||
227 | + 'budget' => "Бюджет", | ||
228 | + 'auth_day' => "Суточное потребление в кВт*ч", | ||
229 | + 'auth_month' => "Месячное потребление в кВт*ч", | ||
230 | + 'auth_pwr_all' => "Мощность всех потребителей потребление в кВт*ч", | ||
231 | + 'auth_pwr_days' => "Суток автономности", | ||
232 | + | ||
233 | + // для отсылки на эмэйл | ||
234 | + | ||
217 | ]; | 235 | ]; |
218 | \ No newline at end of file | 236 | \ No newline at end of file |
common/models/Feedback.php
1 | <?php | 1 | <?php |
2 | + | ||
2 | namespace common\models; | 3 | namespace common\models; |
4 | + | ||
3 | /** | 5 | /** |
4 | * User: timur | 6 | * User: timur |
5 | * Date: 31.01.18 | 7 | * Date: 31.01.18 |
@@ -7,14 +9,12 @@ | @@ -7,14 +9,12 @@ | ||
7 | */ | 9 | */ |
8 | 10 | ||
9 | use artbox\core\models\Feedback as ArtboxFeedback; | 11 | use artbox\core\models\Feedback as ArtboxFeedback; |
10 | - use yii\helpers\VarDumper; | ||
11 | 12 | ||
12 | /** | 13 | /** |
13 | * Class Feedback | 14 | * Class Feedback |
14 | * | 15 | * |
15 | * @property string $topic | 16 | * @property string $topic |
16 | * @property string $calc_json_info | 17 | * @property string $calc_json_info |
17 | - * | ||
18 | * @package common\models | 18 | * @package common\models |
19 | */ | 19 | */ |
20 | class Feedback extends ArtboxFeedback | 20 | class Feedback extends ArtboxFeedback |
@@ -22,40 +22,64 @@ | @@ -22,40 +22,64 @@ | ||
22 | 22 | ||
23 | const SCENARIO_CALCULATOR = 'calculator'; | 23 | const SCENARIO_CALCULATOR = 'calculator'; |
24 | const calculator_attributes = [ | 24 | const calculator_attributes = [ |
25 | - 'adress', 'module_install_angle', 'latitude', 'longitude', | ||
26 | - 'south_deviation', 'power_station_type', 'area', 'power', | ||
27 | - 'budget', 'auth_day', 'auth_month', 'auth_pwr_all', | ||
28 | - 'auth_pwr_days' | 25 | + 'adress', |
26 | + 'module_install_angle', | ||
27 | + 'latitude', | ||
28 | + 'longitude', | ||
29 | + 'south_deviation', | ||
30 | + 'power_station_type', | ||
31 | + 'area', | ||
32 | + 'power', | ||
33 | + 'budget', | ||
34 | + 'auth_day', | ||
35 | + 'auth_month', | ||
36 | + 'auth_pwr_all', | ||
37 | + 'auth_pwr_days', | ||
29 | ]; | 38 | ]; |
30 | - | 39 | + |
40 | + const translate_attributes = [ | ||
41 | + 'adress' => "Адрес", | ||
42 | + 'module_install_angle' => "Угол установки фотомодулей", | ||
43 | + 'latitude' => "Широта", | ||
44 | + 'longitude' => "Долгота", | ||
45 | + 'south_deviation' => "Отклонение от юга", | ||
46 | + 'power_station_type' => "Тип станции", | ||
47 | + 'area' => "Площадь", | ||
48 | + 'power' => "Мощность", | ||
49 | + 'budget' => "Бюджет", | ||
50 | + 'auth_day' => "Суточное потребление в кВт*ч", | ||
51 | + 'auth_month' => "Месячное потребление в кВт*ч", | ||
52 | + 'auth_pwr_all' => "Мощность всех потребителей потребление в кВт*ч", | ||
53 | + 'auth_pwr_days' => "Суток автономности", | ||
54 | + ]; | ||
55 | + | ||
31 | public $attributeValues = []; | 56 | public $attributeValues = []; |
32 | 57 | ||
33 | public function __set($name, $value) | 58 | public function __set($name, $value) |
34 | { | 59 | { |
35 | - if(in_array($name, self::calculator_attributes)){ | ||
36 | - if(isset($value) && !empty($value)){ | ||
37 | - $this->attributeValues[$name] = $value; | 60 | + if (in_array($name, self::calculator_attributes)) { |
61 | + if (isset($value) && !empty($value)) { | ||
62 | + $this->attributeValues[ $name ] = $value; | ||
38 | } | 63 | } |
39 | - } | ||
40 | - else{ | 64 | + } else { |
41 | parent::__set($name, $value); | 65 | parent::__set($name, $value); |
42 | } | 66 | } |
43 | } | 67 | } |
44 | 68 | ||
45 | public function __get($name) | 69 | public function __get($name) |
46 | { | 70 | { |
47 | - if(in_array($name, self::calculator_attributes)){ | ||
48 | - return $this->attributeValues[$name]??''; | ||
49 | - } | ||
50 | - else{ | 71 | + if (in_array($name, self::calculator_attributes)) { |
72 | + return $this->attributeValues[ $name ]??''; | ||
73 | + } else { | ||
51 | return parent::__get($name); | 74 | return parent::__get($name); |
52 | } | 75 | } |
53 | } | 76 | } |
54 | - | ||
55 | - public function getCalculatorAttributes(){ | 77 | + |
78 | + public function getCalculatorAttributes() | ||
79 | + { | ||
56 | return $this->attributeValues; | 80 | return $this->attributeValues; |
57 | } | 81 | } |
58 | - | 82 | + |
59 | public function scenarios() | 83 | public function scenarios() |
60 | { | 84 | { |
61 | return array_merge( | 85 | return array_merge( |
@@ -79,16 +103,17 @@ | @@ -79,16 +103,17 @@ | ||
79 | [ | 103 | [ |
80 | 'name', | 104 | 'name', |
81 | 'phone', | 105 | 'phone', |
106 | + 'email', | ||
82 | 'returnUrl', | 107 | 'returnUrl', |
83 | 'topic', | 108 | 'topic', |
84 | 'calc_json_info', | 109 | 'calc_json_info', |
85 | ], | 110 | ], |
86 | self::calculator_attributes | 111 | self::calculator_attributes |
87 | - ) | 112 | + ), |
88 | ] | 113 | ] |
89 | ); | 114 | ); |
90 | } | 115 | } |
91 | - | 116 | + |
92 | public function rules() | 117 | public function rules() |
93 | { | 118 | { |
94 | 119 | ||
@@ -113,15 +138,14 @@ | @@ -113,15 +138,14 @@ | ||
113 | 'name', | 138 | 'name', |
114 | 'phone', | 139 | 'phone', |
115 | 'email', | 140 | 'email', |
116 | - 'topic', | ||
117 | 'calc_json_info', | 141 | 'calc_json_info', |
118 | 142 | ||
119 | 'adress', | 143 | 'adress', |
120 | - 'module_install_angle' | 144 | + 'module_install_angle', |
121 | ], | 145 | ], |
122 | 'required', | 146 | 'required', |
123 | 'on' => self::SCENARIO_CALCULATOR, | 147 | 'on' => self::SCENARIO_CALCULATOR, |
124 | - ] | 148 | + ], |
125 | ] | 149 | ] |
126 | ); | 150 | ); |
127 | } | 151 | } |
@@ -131,7 +155,7 @@ | @@ -131,7 +155,7 @@ | ||
131 | $this->calc_json_info = json_encode($this->attributeValues); | 155 | $this->calc_json_info = json_encode($this->attributeValues); |
132 | } | 156 | } |
133 | 157 | ||
134 | - public function getCalcJsonInfo() : array | 158 | + public function getCalcJsonInfo() |
135 | { | 159 | { |
136 | return json_decode($this->calc_json_info); | 160 | return json_decode($this->calc_json_info); |
137 | } | 161 | } |
frontend/controllers/SiteController.php
@@ -55,21 +55,28 @@ | @@ -55,21 +55,28 @@ | ||
55 | 55 | ||
56 | $slider = Slider::find() | 56 | $slider = Slider::find() |
57 | ->with("slides.lang.image") | 57 | ->with("slides.lang.image") |
58 | - ->where(['on_home_page'=>true]) | 58 | + ->where([ 'on_home_page' => true ]) |
59 | ->one(); | 59 | ->one(); |
60 | - | 60 | + |
61 | $objects = Objectkb::find() | 61 | $objects = Objectkb::find() |
62 | - ->with('lang.alias') | ||
63 | - ->where([ | ||
64 | - 'id' => array(7,37,38,39) | ||
65 | - ]) | ||
66 | - ->orderBy('id') | ||
67 | - ->all(); | ||
68 | - | 62 | + ->with('lang.alias') |
63 | + ->where( | ||
64 | + [ | ||
65 | + 'id' => [ | ||
66 | + 7, | ||
67 | + 37, | ||
68 | + 38, | ||
69 | + 39, | ||
70 | + ], | ||
71 | + ] | ||
72 | + ) | ||
73 | + ->orderBy('id') | ||
74 | + ->all(); | ||
75 | + | ||
69 | return $this->render( | 76 | return $this->render( |
70 | 'index', | 77 | 'index', |
71 | [ | 78 | [ |
72 | - 'slider' => $slider, | 79 | + 'slider' => $slider, |
73 | 'objects' => $objects, | 80 | 'objects' => $objects, |
74 | ] | 81 | ] |
75 | ); | 82 | ); |
@@ -161,33 +168,32 @@ | @@ -161,33 +168,32 @@ | ||
161 | throw new BadRequestHttpException(); | 168 | throw new BadRequestHttpException(); |
162 | } else { | 169 | } else { |
163 | $post = Yii::$app->request->post('Feedback'); | 170 | $post = Yii::$app->request->post('Feedback'); |
164 | - switch ($post['topic']){ | 171 | + switch ($post[ 'topic' ]) { |
165 | case Feedback::SCENARIO_FEEDBACK : | 172 | case Feedback::SCENARIO_FEEDBACK : |
166 | - $model = new Feedback(['scenario' => Feedback::SCENARIO_FEEDBACK]); | 173 | + $model = new Feedback([ 'scenario' => Feedback::SCENARIO_FEEDBACK ]); |
167 | $view = 'feedback'; | 174 | $view = 'feedback'; |
168 | $isLoaded = $model->load(Yii::$app->request->post()); | 175 | $isLoaded = $model->load(Yii::$app->request->post()); |
169 | break; | 176 | break; |
170 | - | 177 | + |
171 | case Feedback::SCENARIO_CALLBACK : | 178 | case Feedback::SCENARIO_CALLBACK : |
172 | - $model = new Feedback(['scenario' => Feedback::SCENARIO_CALLBACK]); | 179 | + $model = new Feedback([ 'scenario' => Feedback::SCENARIO_CALLBACK ]); |
173 | $view = 'feedback'; | 180 | $view = 'feedback'; |
174 | $isLoaded = $model->load(Yii::$app->request->post()); | 181 | $isLoaded = $model->load(Yii::$app->request->post()); |
175 | break; | 182 | break; |
176 | - | 183 | + |
177 | case Feedback::SCENARIO_CALCULATOR: | 184 | case Feedback::SCENARIO_CALCULATOR: |
178 | - $model = new Feedback(['scenario' => Feedback::SCENARIO_CALCULATOR]); | 185 | + $model = new Feedback([ 'scenario' => Feedback::SCENARIO_CALCULATOR ]); |
179 | $view = 'calculator'; | 186 | $view = 'calculator'; |
180 | $isLoaded = $model->load(Yii::$app->request->post()); | 187 | $isLoaded = $model->load(Yii::$app->request->post()); |
181 | $model->setCalcJsonInfo(); | 188 | $model->setCalcJsonInfo(); |
182 | break; | 189 | break; |
183 | - | 190 | + |
184 | default: | 191 | default: |
185 | $model = new Feedback(); | 192 | $model = new Feedback(); |
186 | $view = 'feedback'; | 193 | $view = 'feedback'; |
187 | $isLoaded = $model->load(Yii::$app->request->post()); | 194 | $isLoaded = $model->load(Yii::$app->request->post()); |
188 | } | 195 | } |
189 | 196 | ||
190 | - | ||
191 | if ($isLoaded && $model->save()) { | 197 | if ($isLoaded && $model->save()) { |
192 | 198 | ||
193 | $mailer->compose( | 199 | $mailer->compose( |
@@ -198,19 +204,19 @@ | @@ -198,19 +204,19 @@ | ||
198 | ) | 204 | ) |
199 | ->setFrom('artbox@domain.com')// ->setTo($settings->email) | 205 | ->setFrom('artbox@domain.com')// ->setTo($settings->email) |
200 | ->setTo( | 206 | ->setTo( |
201 | - [ | ||
202 | - 'tamerlan8.05.92@gmail.com', | ||
203 | - 'mpav@artweb.ua', | ||
204 | - ] | ||
205 | - ) | 207 | + [ |
208 | + 'tamerlan8.05.92@gmail.com', | ||
209 | + 'mpav@artweb.ua', | ||
210 | + ] | ||
211 | + ) | ||
206 | ->setSubject(\Yii::t('app', 'Feedback')) | 212 | ->setSubject(\Yii::t('app', 'Feedback')) |
207 | ->send(); | 213 | ->send(); |
208 | 214 | ||
209 | return [ | 215 | return [ |
210 | 'success' => true, | 216 | 'success' => true, |
211 | 'message' => 'Success message', | 217 | 'message' => 'Success message', |
212 | - 'view' => $view, | ||
213 | - 'model' => $model->attributeValues, | 218 | + 'view' => $view, |
219 | + 'model' => $model->attributeValues, | ||
214 | 'alert' => $this->renderPartial('success_alert'), | 220 | 'alert' => $this->renderPartial('success_alert'), |
215 | ]; | 221 | ]; |
216 | } else { | 222 | } else { |
frontend/views/site/index.php
@@ -15,9 +15,13 @@ | @@ -15,9 +15,13 @@ | ||
15 | $settings = Settings::getInstance(); | 15 | $settings = Settings::getInstance(); |
16 | $this->title = 'KB Energy'; | 16 | $this->title = 'KB Energy'; |
17 | 17 | ||
18 | + $coordinates = []; | ||
19 | + $coordinates['lat'] = empty($settings->lat) ? 0 : $settings->lat; | ||
20 | + $coordinates['lon'] = empty($settings->lon) ? 0 : $settings->lon; | ||
21 | + | ||
18 | $js = <<< JS | 22 | $js = <<< JS |
19 | -window.lat = {$settings->lat}; | ||
20 | -window.lon = {$settings->lon}; | 23 | +window.lat = {$coordinates['lat']}; |
24 | +window.lon = {$coordinates['lon']}; | ||
21 | JS; | 25 | JS; |
22 | 26 | ||
23 | $this->registerJs($js, View::POS_END); | 27 | $this->registerJs($js, View::POS_END); |