Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
A
addcpm-json
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Александр Чаплыгин
addcpm-json
Commits
64b85017
Commit
64b85017
authored
Mar 20, 2020
by
Александр Чаплыгин
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
стр. одной кампании, рендер по исходным данным
parent
3a1b1a93
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
3773 additions
and
13 deletions
+3773
-13
acl.global.php
src/config/autoload/acl.global.php
+1
-0
amsystem.global.php
src/config/autoload/amsystem.global.php
+3219
-0
dependencies.global.php
src/config/autoload/dependencies.global.php
+13
-0
routes.global.php
src/config/autoload/routes.global.php
+16
-0
styles-amsystem.css
src/public/css/styles-amsystem.css
+5
-2
amsystem-campaign.js
src/public/js/adm/amsystem-campaign.js
+68
-0
CabinetAmSystem.php
src/src/App/Action/User/CabinetAmSystem.php
+83
-0
banner-preview.phtml
src/templates/app/popup/banner-preview.phtml
+5
-0
campaign_item.phtml
src/templates/app/user/campaign_item.phtml
+345
-0
campaigns_list.phtml
src/templates/app/user/campaigns_list.phtml
+7
-3
profile.phtml
src/templates/app/user/profile.phtml
+2
-2
layout-main.phtml
src/templates/layout/layout-main.phtml
+9
-6
No files found.
src/config/autoload/acl.global.php
View file @
64b85017
...
@@ -38,6 +38,7 @@ return [
...
@@ -38,6 +38,7 @@ return [
->
allow
(
Roles
::
ROLE_USER
,
'user.cabinet.viewid'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'user.cabinet.viewid'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'user.cabinet.orderid'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'user.cabinet.orderid'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'user.cabinet.amsystem'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'user.cabinet.amsystem'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'user.cabinet.campaign'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'install.counter'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'install.counter'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'download.counter'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_USER
,
'download.counter'
,
null
,
new
\App\Acl\Assertion\UserActive
())
->
allow
(
Roles
::
ROLE_GUEST
,
'email.counter'
)
->
allow
(
Roles
::
ROLE_GUEST
,
'email.counter'
)
...
...
src/config/autoload/amsystem.global.php
0 → 100644
View file @
64b85017
<?php
return
[
'amsystem_conf'
=>
[
'country'
=>
[
'UA'
=>
'Украина'
,
'RU'
=>
'Россия'
],
'special'
=>
[
'ATO'
=>
'Неподконтрольные территории'
,
],
'city'
=>
array
(
1
=>
array
(
'name'
=>
'Алупка'
,
'codes'
=>
array
(
0
=>
713514
,
),
),
2
=>
array
(
'name'
=>
'Алушта'
,
'codes'
=>
array
(
0
=>
713513
,
),
),
3
=>
array
(
'name'
=>
'Армянск'
,
'codes'
=>
array
(
0
=>
713203
,
),
),
4
=>
array
(
'name'
=>
'Бахчисарай'
,
'codes'
=>
array
(
0
=>
712969
,
),
),
5
=>
array
(
'name'
=>
'Белогорск'
,
'codes'
=>
array
(
0
=>
712587
,
),
),
6
=>
array
(
'name'
=>
'Джанкой'
,
'codes'
=>
array
(
0
=>
709334
,
1
=>
696960
,
2
=>
7020994
,
),
),
7
=>
array
(
'name'
=>
'Евпатория'
,
'codes'
=>
array
(
0
=>
688105
,
),
),
8
=>
array
(
'name'
=>
'Керчь'
,
'codes'
=>
array
(
0
=>
706524
,
),
),
9
=>
array
(
'name'
=>
'Красноперекопск'
,
'codes'
=>
array
(
0
=>
704362
,
),
),
10
=>
array
(
'name'
=>
'Саки'
,
'codes'
=>
array
(
0
=>
694910
,
1
=>
7035393
,
),
),
11
=>
array
(
'name'
=>
'Севастополь'
,
'codes'
=>
array
(
0
=>
694423
,
),
),
12
=>
array
(
'name'
=>
'Симферополь'
,
'codes'
=>
array
(
0
=>
693805
,
),
),
13
=>
array
(
'name'
=>
'Старый Крым'
,
'codes'
=>
array
(
0
=>
692713
,
1
=>
692714
,
),
),
14
=>
array
(
'name'
=>
'Судак'
,
'codes'
=>
array
(
0
=>
692315
,
),
),
15
=>
array
(
'name'
=>
'Феодосия'
,
'codes'
=>
array
(
0
=>
709161
,
),
),
16
=>
array
(
'name'
=>
'Щёлкино'
,
'codes'
=>
array
(
0
=>
700551
,
),
),
17
=>
array
(
'name'
=>
'Ялта'
,
'codes'
=>
array
(
0
=>
688533
,
1
=>
688531
,
2
=>
688532
,
),
),
18
=>
array
(
'name'
=>
'Бар'
,
'codes'
=>
array
(
0
=>
712861
,
1
=>
11233992
,
),
),
19
=>
array
(
'name'
=>
'Бершадь'
,
'codes'
=>
array
(
0
=>
712250
,
),
),
20
=>
array
(
'name'
=>
'Винница'
,
'codes'
=>
array
(
0
=>
689558
,
),
),
21
=>
array
(
'name'
=>
'Гайсин'
,
'codes'
=>
array
(
0
=>
708901
,
),
),
22
=>
array
(
'name'
=>
'Жмеринка'
,
'codes'
=>
array
(
0
=>
687116
,
),
),
23
=>
array
(
'name'
=>
'Казатин'
,
'codes'
=>
array
(
0
=>
706571
,
),
),
24
=>
array
(
'name'
=>
'Калиновка'
,
'codes'
=>
array
(
0
=>
707148
,
1
=>
707155
,
2
=>
7413875
,
3
=>
707157
,
4
=>
707172
,
5
=>
707177
,
6
=>
707180
,
7
=>
707182
,
8
=>
707183
,
9
=>
707397
,
10
=>
7020990
,
11
=>
9113818
,
12
=>
10266836
,
13
=>
10267020
,
14
=>
11078167
,
15
=>
11413050
,
16
=>
11978693
,
),
),
25
=>
array
(
'name'
=>
'Ладыжин'
,
'codes'
=>
array
(
0
=>
703428
,
),
),
26
=>
array
(
'name'
=>
'Могилёв-Подольский'
,
'codes'
=>
array
(
0
=>
700918
,
),
),
27
=>
array
(
'name'
=>
'Тульчин'
,
'codes'
=>
array
(
0
=>
691016
,
),
),
28
=>
array
(
'name'
=>
'Хмельник'
,
'codes'
=>
array
(
0
=>
706380
,
),
),
29
=>
array
(
'name'
=>
'Шаргород'
,
'codes'
=>
array
(
0
=>
694350
,
),
),
30
=>
array
(
'name'
=>
'Владимир-Волынский'
,
'codes'
=>
array
(
0
=>
689378
,
),
),
31
=>
array
(
'name'
=>
'Горохов'
,
'codes'
=>
array
(
0
=>
708296
,
),
),
32
=>
array
(
'name'
=>
'Камень-Каширский'
,
'codes'
=>
array
(
0
=>
707025
,
),
),
33
=>
array
(
'name'
=>
'Киверцы'
,
'codes'
=>
array
(
0
=>
705730
,
),
),
34
=>
array
(
'name'
=>
'Ковель'
,
'codes'
=>
array
(
0
=>
704617
,
),
),
35
=>
array
(
'name'
=>
'Луцк'
,
'codes'
=>
array
(
0
=>
702569
,
),
),
36
=>
array
(
'name'
=>
'Любомль'
,
'codes'
=>
array
(
0
=>
702421
,
),
),
37
=>
array
(
'name'
=>
'Нововолынск'
,
'codes'
=>
array
(
0
=>
699035
,
),
),
38
=>
array
(
'name'
=>
'Рожище'
,
'codes'
=>
array
(
0
=>
695326
,
),
),
39
=>
array
(
'name'
=>
'Апостолово'
,
'codes'
=>
array
(
0
=>
713245
,
),
),
40
=>
array
(
'name'
=>
'Верхнеднепровск'
,
'codes'
=>
array
(
0
=>
689916
,
),
),
41
=>
array
(
'name'
=>
'Днепродзержинск'
,
'codes'
=>
array
(
0
=>
709932
,
),
),
42
=>
array
(
'name'
=>
'Днепропетровск'
,
'codes'
=>
array
(
0
=>
709930
,
1
=>
9533239
,
),
),
43
=>
array
(
'name'
=>
'Жёлтые Воды'
,
'codes'
=>
array
(
0
=>
687196
,
1
=>
11076584
,
),
),
44
=>
array
(
'name'
=>
'Кривой Рог'
,
'codes'
=>
array
(
0
=>
703845
,
1
=>
704009
,
),
),
45
=>
array
(
'name'
=>
'Марганец'
,
'codes'
=>
array
(
0
=>
701855
,
),
),
46
=>
array
(
'name'
=>
'Никополь'
,
'codes'
=>
array
(
0
=>
700051
,
),
),
47
=>
array
(
'name'
=>
'Новомосковск'
,
'codes'
=>
array
(
0
=>
699445
,
),
),
48
=>
array
(
'name'
=>
'Павлоград'
,
'codes'
=>
array
(
0
=>
697889
,
1
=>
811724
,
),
),
49
=>
array
(
'name'
=>
'Першотравенск'
,
'codes'
=>
array
(
0
=>
697616
,
),
),
50
=>
array
(
'name'
=>
'Пятихатки'
,
'codes'
=>
array
(
0
=>
695965
,
),
),
51
=>
array
(
'name'
=>
'Синельниково'
,
'codes'
=>
array
(
0
=>
693796
,
),
),
52
=>
array
(
'name'
=>
'Терновка'
,
'codes'
=>
array
(
0
=>
691623
,
1
=>
691628
,
2
=>
691620
,
3
=>
691626
,
4
=>
691627
,
5
=>
691629
,
6
=>
691634
,
),
),
53
=>
array
(
'name'
=>
'Авдеевка'
,
'codes'
=>
array
(
0
=>
713122
,
1
=>
713120
,
),
),
54
=>
array
(
'name'
=>
'Бахмут'
,
'codes'
=>
array
(
0
=>
713174
,
1
=>
712958
,
),
),
55
=>
array
(
'name'
=>
'Волноваха'
,
'codes'
=>
array
(
0
=>
689198
,
1
=>
9532817
,
),
),
56
=>
array
(
'name'
=>
'Горловка'
,
'codes'
=>
array
(
0
=>
707753
,
),
),
57
=>
array
(
'name'
=>
'Дебальцево'
,
'codes'
=>
array
(
0
=>
710229
,
),
),
58
=>
array
(
'name'
=>
'Димитров'
,
'codes'
=>
array
(
0
=>
710035
,
),
),
59
=>
array
(
'name'
=>
'Доброполье'
,
'codes'
=>
array
(
0
=>
709900
,
),
),
60
=>
array
(
'name'
=>
'Докучаевск'
,
'codes'
=>
array
(
0
=>
709835
,
),
),
61
=>
array
(
'name'
=>
'Донецк'
,
'codes'
=>
array
(
0
=>
709717
,
),
),
62
=>
array
(
'name'
=>
'Дружковка'
,
'codes'
=>
array
(
0
=>
616743
,
),
),
63
=>
array
(
'name'
=>
'Енакиево'
,
'codes'
=>
array
(
0
=>
688148
,
),
),
64
=>
array
(
'name'
=>
'Ждановка'
,
'codes'
=>
array
(
0
=>
687237
,
1
=>
687235
,
2
=>
687236
,
),
),
65
=>
array
(
'name'
=>
'Зугрэс'
,
'codes'
=>
array
(
0
=>
686818
,
),
),
66
=>
array
(
'name'
=>
'Краматорск'
,
'codes'
=>
array
(
0
=>
704508
,
),
),
67
=>
array
(
'name'
=>
'Красноармейск'
,
'codes'
=>
array
(
0
=>
704422
,
),
),
68
=>
array
(
'name'
=>
'Константиновка'
,
'codes'
=>
array
(
0
=>
705102
,
1
=>
705098
,
2
=>
705100
,
3
=>
705104
,
4
=>
704724
,
5
=>
705097
,
6
=>
705101
,
7
=>
705106
,
8
=>
705114
,
9
=>
705115
,
10
=>
6620523
,
11
=>
6982946
,
12
=>
7020274
,
13
=>
11524346
,
),
),
69
=>
array
(
'name'
=>
'Мариуполь'
,
'codes'
=>
array
(
0
=>
701822
,
),
),
70
=>
array
(
'name'
=>
'Макеевка'
,
'codes'
=>
array
(
0
=>
702320
,
1
=>
702314
,
2
=>
702317
,
3
=>
702318
,
4
=>
702319
,
),
),
71
=>
array
(
'name'
=>
'Селидово'
,
'codes'
=>
array
(
0
=>
694677
,
),
),
72
=>
array
(
'name'
=>
'Славянск'
,
'codes'
=>
array
(
0
=>
693468
,
),
),
73
=>
array
(
'name'
=>
'Снежное'
,
'codes'
=>
array
(
0
=>
693381
,
1
=>
704728
,
),
),
74
=>
array
(
'name'
=>
'Соледар'
,
'codes'
=>
array
(
0
=>
706757
,
),
),
75
=>
array
(
'name'
=>
'Торез'
,
'codes'
=>
array
(
0
=>
691374
,
1
=>
9291736
,
),
),
76
=>
array
(
'name'
=>
'Угледар'
,
'codes'
=>
array
(
0
=>
690823
,
),
),
77
=>
array
(
'name'
=>
'Харцызск'
,
'codes'
=>
array
(
0
=>
706466
,
),
),
78
=>
array
(
'name'
=>
'Шахтёрск'
,
'codes'
=>
array
(
0
=>
694382
,
),
),
79
=>
array
(
'name'
=>
'Ясиноватая'
,
'codes'
=>
array
(
0
=>
688373
,
),
),
80
=>
array
(
'name'
=>
'Андрушёвка'
,
'codes'
=>
array
(
0
=>
713389
,
),
),
81
=>
array
(
'name'
=>
'Бердичев'
,
'codes'
=>
array
(
0
=>
712441
,
),
),
82
=>
array
(
'name'
=>
'Житомир'
,
'codes'
=>
array
(
0
=>
686967
,
),
),
83
=>
array
(
'name'
=>
'Коростень'
,
'codes'
=>
array
(
0
=>
704901
,
1
=>
8400118
,
),
),
84
=>
array
(
'name'
=>
'Коростышев'
,
'codes'
=>
array
(
0
=>
704885
,
),
),
85
=>
array
(
'name'
=>
'Малин'
,
'codes'
=>
array
(
0
=>
702116
,
1
=>
702117
,
),
),
86
=>
array
(
'name'
=>
'Новоград-Волынский'
,
'codes'
=>
array
(
0
=>
699553
,
),
),
87
=>
array
(
'name'
=>
'Овруч'
,
'codes'
=>
array
(
0
=>
698131
,
),
),
88
=>
array
(
'name'
=>
'Радомышль'
,
'codes'
=>
array
(
0
=>
695912
,
),
),
89
=>
array
(
'name'
=>
'Берегово'
,
'codes'
=>
array
(
0
=>
712423
,
1
=>
712428
,
),
),
90
=>
array
(
'name'
=>
'Виноградов'
,
'codes'
=>
array
(
0
=>
688746
,
),
),
91
=>
array
(
'name'
=>
'Иршава'
,
'codes'
=>
array
(
0
=>
707559
,
),
),
92
=>
array
(
'name'
=>
'Мукачево'
,
'codes'
=>
array
(
0
=>
700646
,
),
),
93
=>
array
(
'name'
=>
'Перечин'
,
'codes'
=>
array
(
0
=>
697750
,
1
=>
8246581
,
),
),
94
=>
array
(
'name'
=>
'Рахов'
,
'codes'
=>
array
(
0
=>
695859
,
),
),
95
=>
array
(
'name'
=>
'Свалява'
,
'codes'
=>
array
(
0
=>
692129
,
),
),
96
=>
array
(
'name'
=>
'Тячев'
,
'codes'
=>
array
(
0
=>
690906
,
),
),
97
=>
array
(
'name'
=>
'Ужгород'
,
'codes'
=>
array
(
0
=>
690548
,
),
),
98
=>
array
(
'name'
=>
'Хуст'
,
'codes'
=>
array
(
0
=>
706165
,
),
),
99
=>
array
(
'name'
=>
'Чоп'
,
'codes'
=>
array
(
0
=>
710409
,
),
),
100
=>
array
(
'name'
=>
'Бердянск'
,
'codes'
=>
array
(
0
=>
712451
,
),
),
101
=>
array
(
'name'
=>
'Васильевка'
,
'codes'
=>
array
(
0
=>
686729
,
1
=>
690364
,
2
=>
690397
,
3
=>
10201840
,
),
),
102
=>
array
(
'name'
=>
'Гуляйполе'
,
'codes'
=>
array
(
0
=>
707898
,
1
=>
707895
,
2
=>
707896
,
3
=>
707897
,
),
),
103
=>
array
(
'name'
=>
'Днепрорудное'
,
'codes'
=>
array
(
0
=>
709960
,
),
),
104
=>
array
(
'name'
=>
'Запорожье'
,
'codes'
=>
array
(
0
=>
687700
,
1
=>
7047166
,
),
),
105
=>
array
(
'name'
=>
'Мелитополь'
,
'codes'
=>
array
(
0
=>
701404
,
),
),
106
=>
array
(
'name'
=>
'Молочанск'
,
'codes'
=>
array
(
0
=>
700848
,
),
),
107
=>
array
(
'name'
=>
'Пологи'
,
'codes'
=>
array
(
0
=>
696677
,
1
=>
696674
,
2
=>
713082
,
3
=>
807994
,
4
=>
8530925
,
5
=>
9532953
,
6
=>
11115770
,
7
=>
11149599
,
),
),
108
=>
array
(
'name'
=>
'Приморск'
,
'codes'
=>
array
(
0
=>
696292
,
),
),
109
=>
array
(
'name'
=>
'Токмак'
,
'codes'
=>
array
(
0
=>
691469
,
1
=>
691468
,
2
=>
9185233
,
),
),
110
=>
array
(
'name'
=>
'Энергодар'
,
'codes'
=>
array
(
0
=>
709276
,
),
),
111
=>
array
(
'name'
=>
'Болехов'
,
'codes'
=>
array
(
0
=>
711850
,
),
),
112
=>
array
(
'name'
=>
'Бурштын'
,
'codes'
=>
array
(
0
=>
711134
,
),
),
113
=>
array
(
'name'
=>
'Галич'
,
'codes'
=>
array
(
0
=>
709034
,
),
),
114
=>
array
(
'name'
=>
'Городенка'
,
'codes'
=>
array
(
0
=>
708380
,
1
=>
8477361
,
),
),
115
=>
array
(
'name'
=>
'Долина'
,
'codes'
=>
array
(
0
=>
709755
,
1
=>
709793
,
2
=>
709795
,
3
=>
709800
,
4
=>
8063875
,
5
=>
8219943
,
6
=>
8419752
,
7
=>
8725210
,
8
=>
11069125
,
9
=>
11140164
,
10
=>
11183676
,
),
),
116
=>
array
(
'name'
=>
'Ивано-Франковск'
,
'codes'
=>
array
(
0
=>
707471
,
1
=>
6300962
,
),
),
117
=>
array
(
'name'
=>
'Калуш'
,
'codes'
=>
array
(
0
=>
707099
,
),
),
118
=>
array
(
'name'
=>
'Коломыя'
,
'codes'
=>
array
(
0
=>
705392
,
),
),
119
=>
array
(
'name'
=>
'Косов'
,
'codes'
=>
array
(
0
=>
704764
,
1
=>
704763
,
),
),
120
=>
array
(
'name'
=>
'Надворная'
,
'codes'
=>
array
(
0
=>
700507
,
),
),
121
=>
array
(
'name'
=>
'Рогатин'
,
'codes'
=>
array
(
0
=>
695559
,
),
),
122
=>
array
(
'name'
=>
'Снятын'
,
'codes'
=>
array
(
0
=>
693365
,
),
),
123
=>
array
(
'name'
=>
'Тысменица'
,
'codes'
=>
array
(
0
=>
690873
,
),
),
124
=>
array
(
'name'
=>
'Тлумач'
,
'codes'
=>
array
(
0
=>
691497
,
),
),
125
=>
array
(
'name'
=>
'Яремче'
,
'codes'
=>
array
(
0
=>
688455
,
),
),
126
=>
array
(
'name'
=>
'Белая Церковь'
,
'codes'
=>
array
(
0
=>
712165
,
),
),
127
=>
array
(
'name'
=>
'Березань'
,
'codes'
=>
array
(
0
=>
712389
,
1
=>
712390
,
2
=>
11749182
,
),
),
128
=>
array
(
'name'
=>
'Богуслав'
,
'codes'
=>
array
(
0
=>
711867
,
1
=>
711868
,
),
),
129
=>
array
(
'name'
=>
'Борисполь'
,
'codes'
=>
array
(
0
=>
711660
,
),
),
130
=>
array
(
'name'
=>
'Боярка'
,
'codes'
=>
array
(
0
=>
711515
,
1
=>
711516
,
2
=>
8442498
,
3
=>
12128425
,
),
),
131
=>
array
(
'name'
=>
'Бровары'
,
'codes'
=>
array
(
0
=>
711390
,
1
=>
711391
,
),
),
132
=>
array
(
'name'
=>
'Буча'
,
'codes'
=>
array
(
0
=>
711350
,
1
=>
711349
,
2
=>
8516248
,
3
=>
8520023
,
),
),
133
=>
array
(
'name'
=>
'Васильков'
,
'codes'
=>
array
(
0
=>
690412
,
1
=>
690413
,
),
),
134
=>
array
(
'name'
=>
'Вишнёвое'
,
'codes'
=>
array
(
0
=>
689488
,
1
=>
689487
,
2
=>
709268
,
3
=>
6988065
,
4
=>
7021087
,
),
),
135
=>
array
(
'name'
=>
'Вышгород'
,
'codes'
=>
array
(
0
=>
688723
,
),
),
136
=>
array
(
'name'
=>
'Ирпень'
,
'codes'
=>
array
(
0
=>
707565
,
1
=>
707564
,
),
),
137
=>
array
(
'name'
=>
'Киев'
,
'codes'
=>
array
(
0
=>
703448
,
1
=>
703447
,
),
),
138
=>
array
(
'name'
=>
'Мироновка'
,
'codes'
=>
array
(
0
=>
701031
,
1
=>
692833
,
2
=>
701028
,
3
=>
701029
,
4
=>
701030
,
5
=>
701032
,
6
=>
701033
,
7
=>
706850
,
8
=>
11077899
,
9
=>
11978641
,
),
),
139
=>
array
(
'name'
=>
'Обухов'
,
'codes'
=>
array
(
0
=>
698782
,
),
),
140
=>
array
(
'name'
=>
'Переяслав-Хмельницкий'
,
'codes'
=>
array
(
0
=>
697637
,
),
),
141
=>
array
(
'name'
=>
'Ржищев'
,
'codes'
=>
array
(
0
=>
694992
,
),
),
142
=>
array
(
'name'
=>
'Сквира'
,
'codes'
=>
array
(
0
=>
693615
,
1
=>
11212183
,
),
),
143
=>
array
(
'name'
=>
'Славутич'
,
'codes'
=>
array
(
0
=>
6930327
,
1
=>
565896
,
2
=>
700298
,
),
),
144
=>
array
(
'name'
=>
'Тараща'
,
'codes'
=>
array
(
0
=>
691905
,
1
=>
691904
,
),
),
145
=>
array
(
'name'
=>
'Тетиев'
,
'codes'
=>
array
(
0
=>
691578
,
),
),
146
=>
array
(
'name'
=>
'Узин'
,
'codes'
=>
array
(
0
=>
690545
,
),
),
147
=>
array
(
'name'
=>
'Украинка'
,
'codes'
=>
array
(
0
=>
690773
,
1
=>
690784
,
2
=>
690768
,
3
=>
690789
,
4
=>
8468750
,
),
),
148
=>
array
(
'name'
=>
'Фастов'
,
'codes'
=>
array
(
0
=>
709248
,
),
),
149
=>
array
(
'name'
=>
'Яготин'
,
'codes'
=>
array
(
0
=>
688587
,
),
),
150
=>
array
(
'name'
=>
'Александрия'
,
'codes'
=>
array
(
0
=>
698625
,
1
=>
805846
,
2
=>
713705
,
),
),
151
=>
array
(
'name'
=>
'Бобринец'
,
'codes'
=>
array
(
0
=>
711989
,
),
),
152
=>
array
(
'name'
=>
'Долинская'
,
'codes'
=>
array
(
0
=>
709782
,
),
),
153
=>
array
(
'name'
=>
'Знаменка'
,
'codes'
=>
array
(
0
=>
686919
,
),
),
154
=>
array
(
'name'
=>
'Кировоград'
,
'codes'
=>
array
(
0
=>
705812
,
),
),
155
=>
array
(
'name'
=>
'Малая Виска'
,
'codes'
=>
array
(
0
=>
702147
,
),
),
156
=>
array
(
'name'
=>
'Новоукраинка'
,
'codes'
=>
array
(
0
=>
699078
,
1
=>
699081
,
2
=>
699083
,
3
=>
699086
,
4
=>
699784
,
5
=>
11078052
,
6
=>
11138125
,
7
=>
11145068
,
),
),
157
=>
array
(
'name'
=>
'Светловодск'
,
'codes'
=>
array
(
0
=>
692087
,
),
),
158
=>
array
(
'name'
=>
'Александровск'
,
'codes'
=>
array
(
0
=>
687700
,
1
=>
7047166
,
2
=>
713588
,
),
),
159
=>
array
(
'name'
=>
'Алчевск'
,
'codes'
=>
array
(
0
=>
713716
,
),
),
160
=>
array
(
'name'
=>
'Антрацит'
,
'codes'
=>
array
(
0
=>
713259
,
1
=>
713258
,
),
),
161
=>
array
(
'name'
=>
'Брянка'
,
'codes'
=>
array
(
0
=>
711369
,
),
),
162
=>
array
(
'name'
=>
'Зоринск'
,
'codes'
=>
array
(
0
=>
686852
,
),
),
163
=>
array
(
'name'
=>
'Краснодон'
,
'codes'
=>
array
(
0
=>
704403
,
1
=>
689912
,
2
=>
704402
,
),
),
164
=>
array
(
'name'
=>
'Красный Луч'
,
'codes'
=>
array
(
0
=>
704202
,
),
),
165
=>
array
(
'name'
=>
'Лисичанск'
,
'codes'
=>
array
(
0
=>
702972
,
),
),
166
=>
array
(
'name'
=>
'Луганск'
,
'codes'
=>
array
(
0
=>
702658
,
),
),
167
=>
array
(
'name'
=>
'Лутугино'
,
'codes'
=>
array
(
0
=>
702563
,
),
),
168
=>
array
(
'name'
=>
'Молодогвардейск'
,
'codes'
=>
array
(
0
=>
700829
,
),
),
169
=>
array
(
'name'
=>
'Новодружеск'
,
'codes'
=>
array
(
0
=>
699615
,
),
),
170
=>
array
(
'name'
=>
'Новопсков'
,
'codes'
=>
array
(
0
=>
699311
,
),
),
171
=>
array
(
'name'
=>
'Первомайск'
,
'codes'
=>
array
(
0
=>
697593
,
1
=>
697590
,
2
=>
697592
,
),
),
172
=>
array
(
'name'
=>
'Попасная'
,
'codes'
=>
array
(
0
=>
696566
,
1
=>
707133
,
),
),
173
=>
array
(
'name'
=>
'Ровеньки'
,
'codes'
=>
array
(
0
=>
695379
,
1
=>
692973
,
2
=>
11077483
,
),
),
174
=>
array
(
'name'
=>
'Рубежное'
,
'codes'
=>
array
(
0
=>
695274
,
1
=>
695273
,
2
=>
811858
,
),
),
175
=>
array
(
'name'
=>
'Сватово'
,
'codes'
=>
array
(
0
=>
692118
,
1
=>
7026858
,
),
),
176
=>
array
(
'name'
=>
'Свердловск'
,
'codes'
=>
array
(
0
=>
692105
,
),
),
177
=>
array
(
'name'
=>
'Северодонецк'
,
'codes'
=>
array
(
0
=>
691999
,
),
),
178
=>
array
(
'name'
=>
'Старобельск'
,
'codes'
=>
array
(
0
=>
692832
,
),
),
179
=>
array
(
'name'
=>
'Стаханов'
,
'codes'
=>
array
(
0
=>
692975
,
),
),
180
=>
array
(
'name'
=>
'Теплогорск'
,
'codes'
=>
array
(
0
=>
691705
,
),
),
181
=>
array
(
'name'
=>
'Борислав'
,
'codes'
=>
array
(
0
=>
711669
,
1
=>
11232588
,
),
),
182
=>
array
(
'name'
=>
'Броды'
,
'codes'
=>
array
(
0
=>
711416
,
1
=>
8063894
,
),
),
183
=>
array
(
'name'
=>
'Буск'
,
'codes'
=>
array
(
0
=>
711103
,
),
),
184
=>
array
(
'name'
=>
'Городок'
,
'codes'
=>
array
(
0
=>
708314
,
1
=>
707752
,
2
=>
8056718
,
3
=>
708312
,
4
=>
708313
,
5
=>
687756
,
6
=>
708311
,
7
=>
11125798
,
8
=>
11876529
,
),
),
185
=>
array
(
'name'
=>
'Дрогобыч'
,
'codes'
=>
array
(
0
=>
709611
,
),
),
186
=>
array
(
'name'
=>
'Жидачов'
,
'codes'
=>
array
(
0
=>
618835
,
),
),
187
=>
array
(
'name'
=>
'Жолква'
,
'codes'
=>
array
(
0
=>
687093
,
),
),
188
=>
array
(
'name'
=>
'Золочев'
,
'codes'
=>
array
(
0
=>
686895
,
1
=>
686896
,
),
),
189
=>
array
(
'name'
=>
'Львов'
,
'codes'
=>
array
(
0
=>
702550
,
),
),
190
=>
array
(
'name'
=>
'Мостиска'
,
'codes'
=>
array
(
0
=>
700696
,
),
),
191
=>
array
(
'name'
=>
'Перемышляны'
,
'codes'
=>
array
(
0
=>
697692
,
),
),
192
=>
array
(
'name'
=>
'Самбор'
,
'codes'
=>
array
(
0
=>
694864
,
),
),
193
=>
array
(
'name'
=>
'Сколе'
,
'codes'
=>
array
(
0
=>
693658
,
1
=>
11221002
,
),
),
194
=>
array
(
'name'
=>
'Сокаль'
,
'codes'
=>
array
(
0
=>
693301
,
),
),
195
=>
array
(
'name'
=>
'Стрый'
,
'codes'
=>
array
(
0
=>
692372
,
),
),
196
=>
array
(
'name'
=>
'Трускавец'
,
'codes'
=>
array
(
0
=>
691179
,
),
),
197
=>
array
(
'name'
=>
'Хыров'
,
'codes'
=>
array
(
0
=>
705914
,
),
),
198
=>
array
(
'name'
=>
'Червоноград'
,
'codes'
=>
array
(
0
=>
710554
,
),
),
199
=>
array
(
'name'
=>
'Яворов'
,
'codes'
=>
array
(
0
=>
688288
,
1
=>
688279
,
),
),
200
=>
array
(
'name'
=>
'Баштанка'
,
'codes'
=>
array
(
0
=>
712775
,
),
),
201
=>
array
(
'name'
=>
'Вознесенск'
,
'codes'
=>
array
(
0
=>
688860
,
),
),
202
=>
array
(
'name'
=>
'Николаев'
,
'codes'
=>
array
(
0
=>
700568
,
1
=>
700186
,
2
=>
700569
,
),
),
203
=>
array
(
'name'
=>
'Новый Буг'
,
'codes'
=>
array
(
0
=>
698953
,
),
),
204
=>
array
(
'name'
=>
'Очаков'
,
'codes'
=>
array
(
0
=>
698770
,
),
),
205
=>
array
(
'name'
=>
'Первомайск'
,
'codes'
=>
array
(
0
=>
697593
,
1
=>
697590
,
2
=>
697592
,
),
),
206
=>
array
(
'name'
=>
'Южноукраинск'
,
'codes'
=>
array
(
0
=>
7525990
,
),
),
207
=>
array
(
'name'
=>
'Ананьев'
,
'codes'
=>
array
(
0
=>
713500
,
),
),
208
=>
array
(
'name'
=>
'Арциз'
,
'codes'
=>
array
(
0
=>
713163
,
1
=>
713165
,
),
),
209
=>
array
(
'name'
=>
'Балта'
,
'codes'
=>
array
(
0
=>
712886
,
1
=>
712885
,
),
),
210
=>
array
(
'name'
=>
'Белгород-Днестровский'
,
'codes'
=>
array
(
0
=>
712160
,
),
),
211
=>
array
(
'name'
=>
'Измаил'
,
'codes'
=>
array
(
0
=>
707308
,
),
),
212
=>
array
(
'name'
=>
'Килия'
,
'codes'
=>
array
(
0
=>
705883
,
),
),
213
=>
array
(
'name'
=>
'Кодыма'
,
'codes'
=>
array
(
0
=>
705493
,
1
=>
705492
,
),
),
214
=>
array
(
'name'
=>
'Котовск'
,
'codes'
=>
array
(
0
=>
704679
,
),
),
215
=>
array
(
'name'
=>
'Одесса'
,
'codes'
=>
array
(
0
=>
698740
,
),
),
216
=>
array
(
'name'
=>
'Татарбунары'
,
'codes'
=>
array
(
0
=>
691803
,
),
),
217
=>
array
(
'name'
=>
'Теплодар'
,
'codes'
=>
array
(
0
=>
865087
,
),
),
218
=>
array
(
'name'
=>
'Гадяч'
,
'codes'
=>
array
(
0
=>
709054
,
1
=>
10266852
,
),
),
219
=>
array
(
'name'
=>
'Глобино'
,
'codes'
=>
array
(
0
=>
708753
,
),
),
220
=>
array
(
'name'
=>
'Гребёнка'
,
'codes'
=>
array
(
0
=>
708181
,
),
),
221
=>
array
(
'name'
=>
'Зеньков'
,
'codes'
=>
array
(
0
=>
687292
,
),
),
222
=>
array
(
'name'
=>
'Карловка'
,
'codes'
=>
array
(
0
=>
706749
,
),
),
223
=>
array
(
'name'
=>
'Кременчуг'
,
'codes'
=>
array
(
0
=>
704147
,
1
=>
704148
,
),
),
224
=>
array
(
'name'
=>
'Кобеляки'
,
'codes'
=>
array
(
0
=>
705544
,
1
=>
705543
,
),
),
225
=>
array
(
'name'
=>
'Комсомольск'
,
'codes'
=>
array
(
0
=>
6559559
,
),
),
226
=>
array
(
'name'
=>
'Лохвица'
,
'codes'
=>
array
(
0
=>
702874
,
),
),
227
=>
array
(
'name'
=>
'Лубны'
,
'codes'
=>
array
(
0
=>
702723
,
),
),
228
=>
array
(
'name'
=>
'Миргород'
,
'codes'
=>
array
(
0
=>
701075
,
),
),
229
=>
array
(
'name'
=>
'Пирятин'
,
'codes'
=>
array
(
0
=>
697183
,
1
=>
697200
,
2
=>
9291168
,
),
),
230
=>
array
(
'name'
=>
'Полтава'
,
'codes'
=>
array
(
0
=>
696642
,
1
=>
696643
,
2
=>
696644
,
),
),
231
=>
array
(
'name'
=>
'Хорол'
,
'codes'
=>
array
(
0
=>
706289
,
1
=>
706287
,
2
=>
806559
,
3
=>
8631361
,
),
),
232
=>
array
(
'name'
=>
'Березне'
,
'codes'
=>
array
(
0
=>
712332
,
1
=>
712330
,
2
=>
712342
,
),
),
233
=>
array
(
'name'
=>
'Дубно'
,
'codes'
=>
array
(
0
=>
709540
,
1
=>
709539
,
),
),
234
=>
array
(
'name'
=>
'Здолбунов'
,
'codes'
=>
array
(
0
=>
687432
,
),
),
235
=>
array
(
'name'
=>
'Корец'
,
'codes'
=>
array
(
0
=>
704968
,
),
),
236
=>
array
(
'name'
=>
'Костополь'
,
'codes'
=>
array
(
0
=>
704737
,
),
),
237
=>
array
(
'name'
=>
'Кузнецовск'
,
'codes'
=>
array
(
0
=>
8341919
,
),
),
238
=>
array
(
'name'
=>
'Острог'
,
'codes'
=>
array
(
0
=>
698232
,
),
),
239
=>
array
(
'name'
=>
'Радивилов'
,
'codes'
=>
array
(
0
=>
710565
,
),
),
240
=>
array
(
'name'
=>
'Ровно'
,
'codes'
=>
array
(
0
=>
695594
,
1
=>
7046809
,
2
=>
695370
,
3
=>
695593
,
4
=>
695365
,
),
),
241
=>
array
(
'name'
=>
'Сарны'
,
'codes'
=>
array
(
0
=>
694793
,
1
=>
694792
,
),
),
242
=>
array
(
'name'
=>
'Ахтырка'
,
'codes'
=>
array
(
0
=>
713749
,
),
),
243
=>
array
(
'name'
=>
'Белополье'
,
'codes'
=>
array
(
0
=>
712559
,
1
=>
712560
,
),
),
244
=>
array
(
'name'
=>
'Бурынь'
,
'codes'
=>
array
(
0
=>
711116
,
),
),
245
=>
array
(
'name'
=>
'Глухов'
,
'codes'
=>
array
(
0
=>
707758
,
),
),
246
=>
array
(
'name'
=>
'Кролевец'
,
'codes'
=>
array
(
0
=>
704000
,
),
),
247
=>
array
(
'name'
=>
'Конотоп'
,
'codes'
=>
array
(
0
=>
705135
,
1
=>
705134
,
2
=>
705136
,
),
),
248
=>
array
(
'name'
=>
'Лебедин'
,
'codes'
=>
array
(
0
=>
613273
,
1
=>
697165
,
2
=>
703311
,
3
=>
8526751
,
),
),
249
=>
array
(
'name'
=>
'Путивль'
,
'codes'
=>
array
(
0
=>
696008
,
),
),
250
=>
array
(
'name'
=>
'Ромны'
,
'codes'
=>
array
(
0
=>
695464
,
),
),
251
=>
array
(
'name'
=>
'Сумы'
,
'codes'
=>
array
(
0
=>
692194
,
),
),
252
=>
array
(
'name'
=>
'Тростянец'
,
'codes'
=>
array
(
0
=>
691254
,
1
=>
8559721
,
2
=>
691255
,
3
=>
691258
,
),
),
253
=>
array
(
'name'
=>
'Шостка'
,
'codes'
=>
array
(
0
=>
693942
,
1
=>
693941
,
),
),
254
=>
array
(
'name'
=>
'Бережаны'
,
'codes'
=>
array
(
0
=>
712374
,
),
),
255
=>
array
(
'name'
=>
'Бучач'
,
'codes'
=>
array
(
0
=>
711348
,
),
),
256
=>
array
(
'name'
=>
'Залещики'
,
'codes'
=>
array
(
0
=>
687826
,
),
),
257
=>
array
(
'name'
=>
'Збараж'
,
'codes'
=>
array
(
0
=>
687455
,
1
=>
11747359
,
),
),
258
=>
array
(
'name'
=>
'Зборов'
,
'codes'
=>
array
(
0
=>
687449
,
),
),
259
=>
array
(
'name'
=>
'Кременец'
,
'codes'
=>
array
(
0
=>
704143
,
),
),
260
=>
array
(
'name'
=>
'Лановцы'
,
'codes'
=>
array
(
0
=>
703397
,
),
),
261
=>
array
(
'name'
=>
'Подволочиск'
,
'codes'
=>
array
(
0
=>
696823
,
),
),
262
=>
array
(
'name'
=>
'Почаев'
,
'codes'
=>
array
(
0
=>
697006
,
),
),
263
=>
array
(
'name'
=>
'Скалат'
,
'codes'
=>
array
(
0
=>
693700
,
),
),
264
=>
array
(
'name'
=>
'Тернополь'
,
'codes'
=>
array
(
0
=>
691650
,
),
),
265
=>
array
(
'name'
=>
'Теребовля'
,
'codes'
=>
array
(
0
=>
691693
,
),
),
266
=>
array
(
'name'
=>
'Чортков'
,
'codes'
=>
array
(
0
=>
710400
,
),
),
267
=>
array
(
'name'
=>
'Шумск'
,
'codes'
=>
array
(
0
=>
693870
,
1
=>
693872
,
),
),
268
=>
array
(
'name'
=>
'Балаклея'
,
'codes'
=>
array
(
0
=>
712926
,
1
=>
712925
,
2
=>
11747170
,
),
),
269
=>
array
(
'name'
=>
'Барвенково'
,
'codes'
=>
array
(
0
=>
712794
,
),
),
270
=>
array
(
'name'
=>
'Валки'
,
'codes'
=>
array
(
0
=>
690509
,
1
=>
690508
,
2
=>
807464
,
3
=>
8465673
,
),
),
271
=>
array
(
'name'
=>
'Великий Бурлук'
,
'codes'
=>
array
(
0
=>
690193
,
1
=>
690192
,
),
),
272
=>
array
(
'name'
=>
'Волчанск'
,
'codes'
=>
array
(
0
=>
689304
,
),
),
273
=>
array
(
'name'
=>
'Дергачи'
,
'codes'
=>
array
(
0
=>
710098
,
),
),
274
=>
array
(
'name'
=>
'Змиев'
,
'codes'
=>
array
(
0
=>
686928
,
),
),
275
=>
array
(
'name'
=>
'Изюм'
,
'codes'
=>
array
(
0
=>
707292
,
),
),
276
=>
array
(
'name'
=>
'Красноград'
,
'codes'
=>
array
(
0
=>
704388
,
1
=>
705123
,
),
),
277
=>
array
(
'name'
=>
'Купянск'
,
'codes'
=>
array
(
0
=>
703656
,
),
),
278
=>
array
(
'name'
=>
'Лозовая'
,
'codes'
=>
array
(
0
=>
702760
,
1
=>
702757
,
2
=>
702758
,
),
),
279
=>
array
(
'name'
=>
'Люботин'
,
'codes'
=>
array
(
0
=>
702417
,
1
=>
8056325
,
2
=>
8685929
,
),
),
280
=>
array
(
'name'
=>
'Мерефа'
,
'codes'
=>
array
(
0
=>
701347
,
1
=>
812892
,
2
=>
8685932
,
),
),
281
=>
array
(
'name'
=>
'Первомайский'
,
'codes'
=>
array
(
0
=>
697576
,
),
),
282
=>
array
(
'name'
=>
'Харьков'
,
'codes'
=>
array
(
0
=>
706483
,
),
),
283
=>
array
(
'name'
=>
'Чугуев'
,
'codes'
=>
array
(
0
=>
710374
,
),
),
284
=>
array
(
'name'
=>
'Берислав'
,
'codes'
=>
array
(
0
=>
712260
,
),
),
285
=>
array
(
'name'
=>
'Геническ'
,
'codes'
=>
array
(
0
=>
708878
,
),
),
286
=>
array
(
'name'
=>
'Голая Пристань'
,
'codes'
=>
array
(
0
=>
708632
,
),
),
287
=>
array
(
'name'
=>
'Каховка'
,
'codes'
=>
array
(
0
=>
707244
,
1
=>
707243
,
2
=>
9986930
,
),
),
288
=>
array
(
'name'
=>
'Новая Каховка'
,
'codes'
=>
array
(
0
=>
699839
,
),
),
289
=>
array
(
'name'
=>
'Скадовск'
,
'codes'
=>
array
(
0
=>
693709
,
),
),
290
=>
array
(
'name'
=>
'Херсон'
,
'codes'
=>
array
(
0
=>
706448
,
1
=>
9875400
,
),
),
291
=>
array
(
'name'
=>
'Цюрупинск'
,
'codes'
=>
array
(
0
=>
691037
,
1
=>
7522122
,
),
),
292
=>
array
(
'name'
=>
'Волочиск'
,
'codes'
=>
array
(
0
=>
689159
,
),
),
293
=>
array
(
'name'
=>
'Городок'
,
'codes'
=>
array
(
0
=>
708314
,
1
=>
707752
,
2
=>
8056718
,
3
=>
708312
,
4
=>
708313
,
5
=>
687756
,
6
=>
708311
,
7
=>
11125798
,
8
=>
11876529
,
),
),
294
=>
array
(
'name'
=>
'Деражня'
,
'codes'
=>
array
(
0
=>
710129
,
1
=>
815773
,
),
),
295
=>
array
(
'name'
=>
'Дунаевцы'
,
'codes'
=>
array
(
0
=>
709429
,
),
),
296
=>
array
(
'name'
=>
'Изяслав'
,
'codes'
=>
array
(
0
=>
707296
,
),
),
297
=>
array
(
'name'
=>
'Каменец-Подольский'
,
'codes'
=>
array
(
0
=>
706950
,
),
),
298
=>
array
(
'name'
=>
'Красилов'
,
'codes'
=>
array
(
0
=>
704492
,
),
),
299
=>
array
(
'name'
=>
'Нетешин'
,
'codes'
=>
array
(
0
=>
700261
,
),
),
300
=>
array
(
'name'
=>
'Полонное'
,
'codes'
=>
array
(
0
=>
696661
,
1
=>
696660
,
),
),
301
=>
array
(
'name'
=>
'Славута'
,
'codes'
=>
array
(
0
=>
693581
,
),
),
302
=>
array
(
'name'
=>
'Староконстантинов'
,
'codes'
=>
array
(
0
=>
692818
,
),
),
303
=>
array
(
'name'
=>
'Хмельницкий'
,
'codes'
=>
array
(
0
=>
706369
,
),
),
304
=>
array
(
'name'
=>
'Шепетовка'
,
'codes'
=>
array
(
0
=>
694216
,
),
),
305
=>
array
(
'name'
=>
'Ватутино'
,
'codes'
=>
array
(
0
=>
690312
,
),
),
306
=>
array
(
'name'
=>
'Городище'
,
'codes'
=>
array
(
0
=>
708358
,
1
=>
708302
,
2
=>
708303
,
3
=>
708304
,
4
=>
708340
,
5
=>
708341
,
6
=>
708342
,
7
=>
708343
,
8
=>
708344
,
9
=>
708345
,
10
=>
708346
,
11
=>
708348
,
12
=>
708349
,
13
=>
708351
,
14
=>
708352
,
15
=>
708353
,
16
=>
708354
,
17
=>
708355
,
18
=>
708357
,
19
=>
708363
,
20
=>
708366
,
21
=>
708368
,
22
=>
708369
,
23
=>
809807
,
24
=>
809904
,
25
=>
816784
,
26
=>
8342723
,
27
=>
8431406
,
28
=>
8456629
,
29
=>
8463946
,
30
=>
8526754
,
31
=>
11403510
,
32
=>
11776990
,
),
),
307
=>
array
(
'name'
=>
'Жашков'
,
'codes'
=>
array
(
0
=>
687245
,
),
),
308
=>
array
(
'name'
=>
'Звенигородка'
,
'codes'
=>
array
(
0
=>
686803
,
1
=>
7627450
,
),
),
309
=>
array
(
'name'
=>
'Золотоноша'
,
'codes'
=>
array
(
0
=>
686875
,
),
),
310
=>
array
(
'name'
=>
'Каменка'
,
'codes'
=>
array
(
0
=>
707047
,
1
=>
707052
,
2
=>
553602
,
3
=>
707029
,
4
=>
707030
,
5
=>
707033
,
6
=>
707041
,
7
=>
707048
,
8
=>
707051
,
9
=>
707053
,
10
=>
707063
,
11
=>
707068
,
12
=>
8063860
,
13
=>
8389103
,
14
=>
8392115
,
15
=>
11594222
,
16
=>
11961684
,
),
),
311
=>
array
(
'name'
=>
'Канев'
,
'codes'
=>
array
(
0
=>
706900
,
),
),
312
=>
array
(
'name'
=>
'Корсунь-Шевченковский'
,
'codes'
=>
array
(
0
=>
704858
,
),
),
313
=>
array
(
'name'
=>
'Смела'
,
'codes'
=>
array
(
0
=>
693457
,
),
),
314
=>
array
(
'name'
=>
'Тальное'
,
'codes'
=>
array
(
0
=>
691936
,
),
),
315
=>
array
(
'name'
=>
'Умань'
,
'codes'
=>
array
(
0
=>
690688
,
),
),
316
=>
array
(
'name'
=>
'Христиновка'
,
'codes'
=>
array
(
0
=>
706200
,
),
),
317
=>
array
(
'name'
=>
'Черкассы'
,
'codes'
=>
array
(
0
=>
710790
,
1
=>
710791
,
),
),
318
=>
array
(
'name'
=>
'Чигирин'
,
'codes'
=>
array
(
0
=>
710473
,
1
=>
710470
,
),
),
319
=>
array
(
'name'
=>
'Шпола'
,
'codes'
=>
array
(
0
=>
693920
,
),
),
320
=>
array
(
'name'
=>
'Бобровица'
,
'codes'
=>
array
(
0
=>
711999
,
),
),
321
=>
array
(
'name'
=>
'Борзна'
,
'codes'
=>
array
(
0
=>
711536
,
1
=>
711541
,
),
),
322
=>
array
(
'name'
=>
'Городня'
,
'codes'
=>
array
(
0
=>
708321
,
1
=>
708320
,
),
),
323
=>
array
(
'name'
=>
'Десна'
,
'codes'
=>
array
(
0
=>
710071
,
1
=>
566389
,
2
=>
710070
,
3
=>
815848
,
),
),
324
=>
array
(
'name'
=>
'Ичня'
,
'codes'
=>
array
(
0
=>
707744
,
),
),
325
=>
array
(
'name'
=>
'Корюковка'
,
'codes'
=>
array
(
0
=>
704839
,
),
),
326
=>
array
(
'name'
=>
'Мена'
,
'codes'
=>
array
(
0
=>
701372
,
1
=>
701371
,
),
),
327
=>
array
(
'name'
=>
'Нежин'
,
'codes'
=>
array
(
0
=>
699942
,
),
),
328
=>
array
(
'name'
=>
'Носовка'
,
'codes'
=>
array
(
0
=>
699917
,
),
),
329
=>
array
(
'name'
=>
'Прилуки'
,
'codes'
=>
array
(
0
=>
696108
,
1
=>
696109
,
2
=>
696295
,
3
=>
696296
,
),
),
330
=>
array
(
'name'
=>
'Чернигов'
,
'codes'
=>
array
(
0
=>
710735
,
),
),
331
=>
array
(
'name'
=>
'Щорс'
,
'codes'
=>
array
(
0
=>
694273
,
),
),
332
=>
array
(
'name'
=>
'Вашковцы'
,
'codes'
=>
array
(
0
=>
690428
,
),
),
333
=>
array
(
'name'
=>
'Заставна'
,
'codes'
=>
array
(
0
=>
687578
,
),
),
334
=>
array
(
'name'
=>
'Кицмань'
,
'codes'
=>
array
(
0
=>
705735
,
),
),
335
=>
array
(
'name'
=>
'Новоднестровск'
,
'codes'
=>
array
(
0
=>
699620
,
),
),
336
=>
array
(
'name'
=>
'Сторожинец'
,
'codes'
=>
array
(
0
=>
692487
,
),
),
337
=>
array
(
'name'
=>
'Хотин'
,
'codes'
=>
array
(
0
=>
706243
,
1
=>
706244
,
2
=>
706241
,
3
=>
706242
,
),
),
338
=>
array
(
'name'
=>
'Черновцы'
,
'codes'
=>
array
(
0
=>
710719
,
1
=>
710741
,
),
),
),
'region'
=>
array
(
339
=>
array
(
'name'
=>
'Автономная Республика Крым'
,
'codes'
=>
array
(
0
=>
703883
,
),
),
340
=>
array
(
'name'
=>
'Винницкая область'
,
'codes'
=>
array
(
0
=>
689559
,
),
),
341
=>
array
(
'name'
=>
'Волынская область'
,
'codes'
=>
array
(
0
=>
689064
,
),
),
342
=>
array
(
'name'
=>
'Днепропетровская область'
,
'codes'
=>
array
(
0
=>
709929
,
),
),
343
=>
array
(
'name'
=>
'Донецкая область'
,
'codes'
=>
array
(
0
=>
709716
,
),
),
344
=>
array
(
'name'
=>
'Житомирская область'
,
'codes'
=>
array
(
0
=>
686966
,
),
),
345
=>
array
(
'name'
=>
'Закарпатская область'
,
'codes'
=>
array
(
0
=>
687869
,
),
),
346
=>
array
(
'name'
=>
'Запорожская область'
,
'codes'
=>
array
(
0
=>
687699
,
),
),
347
=>
array
(
'name'
=>
'Ивано-Франковская область'
,
'codes'
=>
array
(
0
=>
707470
,
),
),
348
=>
array
(
'name'
=>
'Киевская область'
,
'codes'
=>
array
(
0
=>
703446
,
),
),
349
=>
array
(
'name'
=>
'Кировоградская область'
,
'codes'
=>
array
(
0
=>
705811
,
),
),
350
=>
array
(
'name'
=>
'Луганская область'
,
'codes'
=>
array
(
0
=>
702657
,
),
),
351
=>
array
(
'name'
=>
'Львовская область'
,
'codes'
=>
array
(
0
=>
702549
,
),
),
352
=>
array
(
'name'
=>
'Николаевская область'
,
'codes'
=>
array
(
0
=>
700567
,
),
),
353
=>
array
(
'name'
=>
'Одесская область'
,
'codes'
=>
array
(
0
=>
698738
,
),
),
354
=>
array
(
'name'
=>
'Полтавская область'
,
'codes'
=>
array
(
0
=>
696634
,
),
),
355
=>
array
(
'name'
=>
'Ровенская область'
,
'codes'
=>
array
(
0
=>
240241
,
),
),
356
=>
array
(
'name'
=>
'Сумская область'
,
'codes'
=>
array
(
0
=>
692196
,
),
),
357
=>
array
(
'name'
=>
'Тернопольская область'
,
'codes'
=>
array
(
0
=>
691649
,
),
),
358
=>
array
(
'name'
=>
'Харьковская область'
,
'codes'
=>
array
(
0
=>
706482
,
),
),
359
=>
array
(
'name'
=>
'Херсонская область'
,
'codes'
=>
array
(
0
=>
706442
,
),
),
360
=>
array
(
'name'
=>
'Хмельницкая область'
,
'codes'
=>
array
(
0
=>
706370
,
),
),
361
=>
array
(
'name'
=>
'Черкасская область'
,
'codes'
=>
array
(
0
=>
710802
,
),
),
362
=>
array
(
'name'
=>
'Черниговская область'
,
'codes'
=>
array
(
0
=>
710734
,
),
),
363
=>
array
(
'name'
=>
'Черновицкая область'
,
'codes'
=>
array
(
0
=>
710720
,
),
),
364
=>
array
(
'name'
=>
'город Киев'
,
'codes'
=>
array
(
0
=>
703447
,
),
),
)
]
];
src/config/autoload/dependencies.global.php
View file @
64b85017
...
@@ -63,6 +63,7 @@ return [
...
@@ -63,6 +63,7 @@ return [
$hpm
->
setService
(
\App\Entity\Feeds\OrderStatus
::
class
,
new
\Zend\Hydrator\ClassMethods
());
$hpm
->
setService
(
\App\Entity\Feeds\OrderStatus
::
class
,
new
\Zend\Hydrator\ClassMethods
());
$hpm
->
setService
(
\App\Entity\AmSystem\Campaign
::
class
,
new
\Zend\Hydrator\ClassMethods
());
$hpm
->
setService
(
\App\Entity\AmSystem\Campaign
::
class
,
new
\Zend\Hydrator\ClassMethods
());
$hpm
->
setService
(
\App\Entity\AmSystem\Banner
::
class
,
new
\Zend\Hydrator\ClassMethods
());
$hpm
->
setService
(
\App\Entity\Contacts
::
class
,
new
\Zend\Hydrator\ClassMethods
());
$hpm
->
setService
(
\App\Entity\Contacts
::
class
,
new
\Zend\Hydrator\ClassMethods
());
...
@@ -238,6 +239,18 @@ return [
...
@@ -238,6 +239,18 @@ return [
$container
->
get
(
\Monolog\Logger
::
class
)
$container
->
get
(
\Monolog\Logger
::
class
)
);
);
},
},
\App\Model\AmSystem\Banners
::
class
=>
function
(
ContainerInterface
$container
)
{
return
new
\App\Model\AmSystem\Banners
(
new
Zend\Db\TableGateway\TableGateway
(
'am_banners'
,
$container
->
get
(
Zend\Db\Adapter\Adapter
::
class
),
new
\Zend\Db\TableGateway\Feature\MetadataFeature
(),
new
\Zend\Db\ResultSet\HydratingResultSet
(
$container
->
get
(
\Zend\Hydrator\DelegatingHydrator
::
class
),
new
\App\Entity\AmSystem\Banner
())
),
$container
->
get
(
\Zend\Hydrator\DelegatingHydrator
::
class
),
$container
->
get
(
\Monolog\Logger
::
class
)
);
},
\App\Model\FAQ\Categories
::
class
=>
function
(
ContainerInterface
$container
)
{
\App\Model\FAQ\Categories
::
class
=>
function
(
ContainerInterface
$container
)
{
return
new
\App\Model\FAQ\Categories
(
return
new
\App\Model\FAQ\Categories
(
new
Zend\Db\TableGateway\TableGateway
(
new
Zend\Db\TableGateway\TableGateway
(
...
...
src/config/autoload/routes.global.php
View file @
64b85017
...
@@ -398,6 +398,22 @@ return [
...
@@ -398,6 +398,22 @@ return [
]
]
],
],
],
],
[
'name'
=>
'user.cabinet.campaign'
,
'path'
=>
'/[:lang/]campaign/:id'
,
'middleware'
=>
App\Action\User\CabinetAmSystem
::
class
,
'allowed_methods'
=>
[
'GET'
,
'POST'
],
'options'
=>
[
'constraints'
=>
[
'lang'
=>
'[a-z]{2,3}'
,
'id'
=>
'\w+'
,
],
'defaults'
=>
[
'lang'
=>
\App\Model\Locales
::
DEFAULT_LANG
,
'action'
=>
App\Action\User\CabinetAmSystem
::
ACTION_ITEM
,
]
],
],
[
[
'name'
=>
'contacts'
,
'name'
=>
'contacts'
,
'path'
=>
'/[:lang/]contacts/'
,
'path'
=>
'/[:lang/]contacts/'
,
...
...
src/public/css/styles-amsystem.css
View file @
64b85017
...
@@ -14,6 +14,11 @@
...
@@ -14,6 +14,11 @@
text-align
:
center
;
text-align
:
center
;
}
}
.form-group
.form-control
{
font-family
:
monospace
;
}
input
[
type
=
"checkbox"
],
input
[
type
=
"checkbox"
],
input
[
type
=
"radio"
]
input
[
type
=
"radio"
]
{
{
...
@@ -23,8 +28,6 @@ input[type="radio"]
...
@@ -23,8 +28,6 @@ input[type="radio"]
.edited
{
.edited
{
min-width
:
100px
;
min-width
:
100px
;
min-height
:
20px
;
min-height
:
20px
;
/*border-bottom: 1px dotted #ccc;*/
cursor
:
pointer
;
}
}
input
.editing
{
input
.editing
{
...
...
src/public/js/adm/amsystem-campaign.js
0 → 100644
View file @
64b85017
$
(
document
).
ready
(
function
()
{
"use strict"
;
/* Стр. кампании пользователя */
// Превьюшки:
(
function
(){
var
$popupBg
=
$
(
'.l-popup'
),
$popup
=
$
(
'.b-popup__window.preview'
,
$popupBg
),
$popupClose
=
$
(
'.button-close'
,
$popup
),
$popupInner
=
$
(
'.b-popup-content'
,
$popup
),
$popupMessage
=
$
(
'.b-popup-message'
,
$popup
),
$banners
=
$
(
'.form-group.banners'
),
$tableBanners
=
$
(
'table.campaign-banners'
,
$banners
);
// Открываем попап:
$tableBanners
.
on
(
'click'
,
'.banner-preview'
,
function
(){
var
$this
=
$
(
this
),
size
=
$
.
trim
(
$
(
'.banner-size'
,
$this
.
parents
(
'tr'
)).
text
()),
data
=
{
id
:
$this
.
parents
(
'tr'
).
data
(
'id'
),
size
:
size
.
split
(
'x'
),
img
:
$this
.
attr
(
'src'
)
};
ShowPopup
(
data
);
});
// Закрыввем попап по клику на Х:
$popupClose
.
on
(
'click'
,
function
(){
ClosePopup
();
});
// Закрыввем попап по клику извне:
$popup
.
on
(
'click'
,
function
(
event
){
event
.
stopPropagation
();
});
$popupBg
.
on
(
'click'
,
function
(){
ClosePopup
();
});
function
ShowPopup
(
data
)
{
var
$content
=
$
(
document
.
createElement
(
'div'
));
$content
.
append
(
'<h2>id: <b>'
+
data
.
id
+
'</b> <span>('
+
data
.
size
[
0
]
+
'х'
+
data
.
size
[
1
]
+
')</span></h2>'
);
$content
.
append
(
'<div class="banner-img"><img width="'
+
data
.
size
[
0
]
+
'" height="'
+
data
.
size
[
1
]
+
'" src="'
+
data
.
img
+
'" /></div>'
);
$popupInner
.
append
(
$content
)
$popupBg
.
addClass
(
'open-popup'
);
$popup
.
show
();
}
function
ClosePopup
()
{
$popupBg
.
removeClass
(
'open-popup'
);
$popupMessage
.
hide
();
$popup
.
hide
();
$popupInner
.
empty
();
}
})();
});
src/src/App/Action/User/CabinetAmSystem.php
View file @
64b85017
...
@@ -53,6 +53,7 @@ use App\Model\Statistics;
...
@@ -53,6 +53,7 @@ use App\Model\Statistics;
class
CabinetAmSystem
extends
Common
class
CabinetAmSystem
extends
Common
{
{
const
ACTION_LIST
=
'list'
;
const
ACTION_LIST
=
'list'
;
const
ACTION_ITEM
=
'item'
;
/**
/**
* @param ServerRequestInterface $request
* @param ServerRequestInterface $request
...
@@ -141,6 +142,88 @@ class CabinetAmSystem extends Common
...
@@ -141,6 +142,88 @@ class CabinetAmSystem extends Common
return
new
HtmlResponse
(
$this
->
template
->
render
(
'app::user/campaigns_list'
,
$data
));
return
new
HtmlResponse
(
$this
->
template
->
render
(
'app::user/campaigns_list'
,
$data
));
}
}
elseif
(
$request
->
getAttribute
(
'action'
)
==
self
::
ACTION_ITEM
)
{
$campaign_id
=
$request
->
getAttribute
(
'id'
);
/** @var UserService $auth */
$auth
=
$this
->
container
->
get
(
UserService
::
class
);
$userId
=
$auth
->
getIdentity
()
->
getId
();
/** @var \App\Model\AmSystem\Campaigns $campaignsModel */
$campaignsModel
=
$this
->
container
->
get
(
\App\Model\AmSystem\Campaigns
::
class
);
$campaign_item
=
$campaignsModel
->
findById
(
$campaign_id
);
if
(
$campaign_item
)
{
if
(
$campaign_item
->
getUserId
()
==
$userId
){
$countries
=
$this
->
container
->
get
(
'config'
)[
'amsystem_conf'
][
'country'
];
$regions
=
$this
->
container
->
get
(
'config'
)[
'amsystem_conf'
][
'region'
];
$cities
=
$this
->
container
->
get
(
'config'
)[
'amsystem_conf'
][
'city'
];
/** @var \App\Model\AmSystem\Campaigns $campaignsModel */
$campaignsModel
=
$this
->
container
->
get
(
\App\Model\AmSystem\Campaigns
::
class
);
$campaign
=
$campaignsModel
->
findOne
([
'id'
=>
$campaign_id
]);
$campaign_banners_id
=
$campaign
->
getBanners
();
if
(
$campaign_banners_id
)
{
$banners_id
=
json_decode
(
$campaign_banners_id
);
/** @var \App\Model\AmSystem\Banners $bannersModel */
$bannersModel
=
$this
->
container
->
get
(
\App\Model\AmSystem\Banners
::
class
);
$banners
=
$bannersModel
->
findAll
([
'id'
=>
$banners_id
])
->
toArray
();
/** @var \App\Model\Statistics $stats */
$stats
=
$this
->
container
->
get
(
\App\Model\Statistics
::
class
);
$banners_stats
=
[];
foreach
(
$banners
as
$banner_item
)
{
$banner_id
=
$banner_item
[
'id'
];
$banners_stats
[
$banner_id
]
=
$stats
->
getBannersStat
([
$banner_id
],
null
);
if
(
$campaign
->
getTargetAction
()
==
'load'
)
{
$banners_stats
[
$banner_id
][
'views'
]
=
$banners_stats
[
$banner_id
][
'loads'
];
}
else
{
}
$views
=
$banners_stats
[
$banner_id
][
'views'
];
$money
=
$banners_stats
[
$banner_id
][
'money'
];
$clicks
=
$banners_stats
[
$banner_id
][
'clicks'
];
$banners_stats
[
$banner_id
][
'ctr'
]
=
(
$views
!=
0
)
?
round
((
$clicks
/
$views
)
*
100
,
2
)
:
0
;
$banners_stats
[
$banner_id
][
'cpm'
]
=
(
$views
!=
0
)
?
round
((
$money
/
$views
)
*
1000
,
3
)
:
0
;
$banners_stats
[
$banner_id
][
'cpc'
]
=
(
$clicks
!=
0
)
?
round
((
$money
/
$clicks
)
*
100
,
1
)
:
0
;
$banners_stats
[
$banner_id
][
'money'
]
=
round
(
$banners_stats
[
$banner_id
][
'money'
],
2
);
}
}
$data
[
'campaign'
]
=
$campaign
;
$data
[
'countries'
]
=
$countries
;
$data
[
'regions'
]
=
$regions
;
$data
[
'cities'
]
=
$cities
;
$data
[
'banners'
]
=
$banners
;
$data
[
'banners_stats'
]
=
$banners_stats
;
}
else
{
$data
[
'error'
]
=
_t
(
'Извините, данная кампания закреплена за другим пользователем'
);
}
}
else
{
$data
[
'error'
]
=
_t
(
'Извините, кампания не найдена'
);
}
$data
=
array_merge
(
$data
,
[
'lang'
=>
$request
->
getAttribute
(
'layoutInfo'
)
->
getLang
(),
'layoutInfo'
=>
$request
->
getAttribute
(
'layoutInfo'
),
]);
return
new
HtmlResponse
(
$this
->
template
->
render
(
'app::user/campaign_item'
,
$data
));
}
}
}
...
...
src/templates/app/popup/banner-preview.phtml
0 → 100644
View file @
64b85017
<div
class=
"preview b-popup__window"
>
<p
class=
"button-close"
></p>
<div
class=
"b-popup-message"
></div>
<div
class=
"b-popup-content"
></div>
</div>
src/templates/app/user/campaign_item.phtml
0 → 100644
View file @
64b85017
<?php
/**
* Copyright (c) 2016 Serhii Borodai <clarifying@gmail.com>.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*
*/
/** @var $this \Zend\View\Renderer\PhpRenderer */
$this
->
headScript
()
->
appendFile
(
'/js/adm/amsystem-campaign.js'
)
;
$this
->
headLink
()
->
appendStylesheet
(
'/css/styles-amsystem.css'
)
;
$lang
=
$this
->
lang
;
$campaign
=
$this
->
campaign
;
$countries
=
$this
->
countries
;
$regions
=
$this
->
regions
;
$cities
=
$this
->
cities
;
$error
=
$this
->
error
;
if
(
!
$error
)
{
$campaign_active
=
(
bool
)
$campaign
->
getActive
();
$campaign_id
=
$campaign
->
getId
();
$campaign_title
=
$campaign
->
getTitle
();
$campaign_user_id
=
$campaign
->
getUserId
();
$campaign_url
=
$campaign
->
getUrl
();
$campaign_date_begin
=
$campaign
->
getDateBegin
();
$campaign_date_end
=
$campaign
->
getDateEnd
();
$campaign_url
=
$campaign
->
getUrl
();
$campaign_buy_type
=
$campaign
->
getBuyType
();
$campaign_target_action
=
$campaign
->
getTargetAction
();
$campaign_price
=
$campaign
->
getPrice
()
/
10
;
$campaign_visitor_limit
=
json_decode
(
$campaign
->
getVisitorLimit
(),
true
);
$campaign_money_limit
=
json_decode
(
$campaign
->
getMoneyLimit
(),
true
);
$campaign_max_speed
=
(
bool
)
$campaign
->
getMaxSpeed
();
$campaign_tracking_pixels
=
json_decode
(
$campaign
->
getTrackingPixels
(),
true
);
$campaign_geo
=
json_decode
(
$campaign
->
getTargeting
(),
true
)[
'geo'
];
$banners
=
$this
->
banners
;
$target_class
=
(
$campaign_target_action
==
'load'
)
?
'load-target'
:
''
;
$link_campaigns_list
=
$this
->
url
(
'user.cabinet.amsystem'
,
[
'lang'
=>
$lang
]);
}
?>
<?php
if
(
$error
)
:
?>
<section
class=
"b-content__work error"
>
<div
class=
"wrapp"
>
<h1>
<?=
$error
?>
</h1>
</div>
</section>
<?php
else
:
?>
<section
class=
"b-content__work inner"
>
<form
id=
"campaign-create-form"
method=
"post"
action=
""
>
<fieldset
disabled=
"disabled"
>
<div
class=
"panel panel-info"
>
<!-- Header -->
<div
class=
"panel-heading"
>
<h1>
<a
href=
"
<?=
$link_campaigns_list
?>
"
>
Кампании
</a>
</h1>
</div>
<div
class=
"panel-body"
>
<!-- Активность и Название -->
<div
class=
"form-group title"
>
<input
type=
"checkbox"
id=
"campaign-active"
name=
"campaign-active"
<?php
if
(
$campaign_active
)
:
?>
checked
<?php
endif
;
?>
>
<span
class=
"campaign-title edited"
data-field=
"campaign-title"
title=
"Название кампании"
>
<?=
$campaign_title
?>
</span>
</div>
<!-- Даты проведения -->
<div
class=
"form-group"
>
<label
for=
"campaign-date-begin"
>
<?=
_t
(
'Даты проведения'
)
?>
</label>
c:
<input
type=
'text'
id=
"campaign-date-begin"
class=
"form-control date-value"
name=
"date_begin"
value=
"
<?=
$campaign_date_begin
?>
"
/>
по:
<input
type=
'text'
id=
"campaign-date-end"
class=
"form-control date-value"
name=
"date_end"
value=
"
<?=
$campaign_date_end
?>
"
/>
</div>
<!-- Ссылка -->
<div
class=
"form-group url"
>
<label
for=
"campaign-url"
>
<?=
_t
(
'Ссылка'
)
?>
</label>
<div
class=
"value-show"
>
<?=
$campaign_url
?>
</div>
</div>
<div
class=
"b-left"
>
<!-- Тип кампании -->
<div
class=
"form-group"
>
<label>
<?=
_t
(
'Тип кампании'
)
?>
</label>
<input
type=
"radio"
id=
"campaign-buy-type-auction"
name=
"buy_type"
value=
"auction"
<?php
if
(
$campaign_buy_type
==
'auction'
)
:
?>
checked
<?php
endif
;
?>
>
<label
class=
"select-item"
for=
"campaign-buy-type-auction"
>
Аукцион
</label>
<input
type=
"radio"
id=
"campaign-buy-type-garantee"
name=
"buy_type"
value=
"garantee"
<?php
if
(
$campaign_buy_type
==
'garantee'
)
:
?>
checked
<?php
endif
;
?>
disabled
>
<label
class=
"select-item disabled"
for=
"campaign-buy-type-garantee"
>
Гарантия
</label>
</div>
<!-- Целевое действие -->
<div
class=
"form-group"
>
<label>
<?=
_t
(
'Целевое действие'
)
?>
</label>
<input
type=
"radio"
id=
"campaign-view-load"
name=
"target_action"
value=
"load"
<?php
if
(
$campaign_target_action
==
'load'
)
:
?>
checked
<?php
endif
;
?>
>
<label
class=
"select-item"
for=
"campaign-view-load"
>
Показ
</label>
<input
type=
"radio"
id=
"campaign-view-view"
name=
"target_action"
value=
"view"
<?php
if
(
$campaign_target_action
==
'view'
)
:
?>
checked
<?php
endif
;
?>
>
<label
class=
"select-item"
for=
"campaign-view-view"
>
Реальный показ
</label>
<input
type=
"radio"
id=
"campaign-view-click"
name=
"target_action"
value=
"click"
<?php
if
(
$campaign_target_action
==
'click'
)
:
?>
checked
<?php
endif
;
?>
>
<label
class=
"select-item"
for=
"campaign-view-click"
>
Клик
</label>
</div>
<!-- Стоимость -->
<div
class=
"form-group"
>
<?php
switch
(
$campaign_target_action
)
{
case
'load'
:
$title_mark
=
'1000 показов'
;
break
;
case
'view'
:
$title_mark
=
'1000 реальных показов'
;
break
;
case
'click'
:
$title_mark
=
'клик'
;
break
;
}
?>
<label
for=
"campaign-price"
>
<?=
_t
(
'Стоимость'
)
?>
</label>
<input
type=
"number"
min=
"0"
step=
"0.1"
id=
"campaign-price"
class=
"form-control price"
name=
"price"
value=
"
<?=
$campaign_price
?>
"
/>
грн. за
<span
class=
"price-title-mark"
>
<?=
$title_mark
?>
</span>
</div>
<!-- Ограничения на посетителя -->
<div
class=
"form-group campaign-visitor-limit__wrap"
data-type=
"visitor-limit"
>
<label>
<?=
_t
(
'Ограничения на посетителя'
)
?>
</label><br
/>
<div
class=
"value-show"
>
<?php
function
declOfNum
(
$number
,
$titles
)
{
$cases
=
array
(
2
,
0
,
1
,
1
,
1
,
2
);
$format
=
$titles
[
(
$number
%
100
>
4
&&
$number
%
100
<
20
)
?
2
:
$cases
[
min
(
$number
%
10
,
5
)]
];
return
sprintf
(
$format
,
$number
);
}
foreach
(
$campaign_visitor_limit
as
$action
=>
$data
)
{
if
(
$action
==
'view'
)
$titles
=
[
'показ'
,
'показа'
,
'показов'
];
if
(
$action
==
'click'
)
$titles
=
[
'клик'
,
'клика'
,
'кликов'
];
foreach
(
$data
as
$period
=>
$value
)
{
switch
(
$period
)
{
case
'page'
:
$title_mark
=
'на странице'
;
break
;
case
'hour'
:
$title_mark
=
'в час'
;
break
;
case
'day'
:
$title_mark
=
'в сутки'
;
break
;
case
'week'
:
$title_mark
=
'в неделю'
;
break
;
case
'month'
:
$title_mark
=
'в месяц'
;
break
;
}
if
(
$value
)
{
?>
<span><b>
<?=
$value
?>
</b>
<i>
<?=
declOfNum
(
$value
,
$titles
)
?>
</i>
<?=
$title_mark
?>
</span><br
/>
<?php
}
}
}
?>
</div>
</div>
<!-- Бюджет -->
<div
class=
"form-group campaign-money-limit"
data-type=
"money-limit"
>
<label>
<?=
_t
(
'Бюджет'
)
?>
</label><br
/>
<div
class=
"value-show"
>
<?php
foreach
(
$campaign_money_limit
as
$period
=>
$value
)
{
switch
(
$period
)
{
case
'total'
:
$title_mark
=
'грн. всего'
;
break
;
case
'day'
:
$title_mark
=
'грн. в сутки'
;
break
;
case
'week'
:
$title_mark
=
'грн. в неделю'
;
break
;
case
'month'
:
$title_mark
=
'грн. в месяц'
;
break
;
}
if
(
$value
)
{
?>
<span><b>
<?=
$value
?>
</b>
<?=
$title_mark
?>
</span><br
/>
<?php
}
}
?>
</div>
</div>
<!-- Скорость открута -->
<div
class=
"form-group"
>
<label>
<?=
_t
(
'Скорость открута'
)
?>
</label>
<input
type=
"radio"
id=
"campaign-max-speed-true"
name=
"max_speed"
value=
"1"
<?php
if
(
$campaign_max_speed
)
:
?>
checked
<?php
endif
;
?>
>
<label
class=
"select-item"
for=
"campaign-max-speed-true"
>
Максимальная
</label>
<input
type=
"radio"
id=
"campaign-max-speed-false"
name=
"max_speed"
value=
"0"
<?php
if
(
!
$campaign_max_speed
)
:
?>
checked
<?php
endif
;
?>
>
<label
class=
"select-item"
for=
"campaign-max-speed-false"
>
Равномерная
</label>
</div>
<!-- Гео -->
<div
class=
"form-group geo"
data-type=
"geo"
>
<label>
<?=
_t
(
'Гео (таргетинг)'
)
?>
</label>
<div
class=
"value-show"
>
<?php
if
(
$campaign_geo
)
:
?>
<?php
if
(
$campaign_geo
[
'country'
])
:
?>
<?php
$title_values
=
$countries
[
$campaign_geo
[
'country'
][
'values'
][
0
]];
if
(
$campaign_geo
[
'special'
])
{
$title_special
=
'<b>(исключить неподконтрольные территории)</b>'
;
}
?>
<span>
<?=
'Страна'
?>
:
<b>
<?=
$title_values
?>
</b>
<?=
$title_special
?>
</span><br
/>
<?php
endif
;
?>
<?php
if
(
$campaign_geo
[
'region'
][
'values'
])
:
?>
<?php
$title_mark
=
(
$campaign_geo
[
'region'
][
'exclude'
])
?
'кроме'
:
'только'
;
$title_values
=
[];
foreach
(
$campaign_geo
[
'region'
][
'values'
]
as
$code
)
{
$title_values
[]
=
str_replace
(
' область'
,
''
,
$regions
[
$code
][
'name'
]);
}
$title_values
=
implode
(
", "
,
$title_values
);
?>
<span>
<?=
'Области'
?>
<i>
<?=
$title_mark
?>
</i>
:
<b>
<?=
$title_values
?>
</b></span><br
/>
<?php
endif
;
?>
<?php
if
(
$campaign_geo
[
'city'
][
'values'
])
:
?>
<?php
$title_mark
=
(
$campaign_geo
[
'city'
][
'exclude'
])
?
'кроме'
:
'только'
;
$title_values
=
[];
foreach
(
$campaign_geo
[
'city'
][
'values'
]
as
$code
)
{
$title_values
[]
=
$cities
[
$code
][
'name'
];
}
$title_values
=
implode
(
", "
,
$title_values
);
?>
<span>
<?=
'Города'
?>
<i>
<?=
$title_mark
?>
</i>
:
<b>
<?=
$title_values
?>
</b></span><br
/>
<?php
endif
;
?>
<?php
endif
;
?>
</div>
</div>
<!-- Трекинг -->
<div
class=
"form-group tracking_pixels"
data-type=
"tracking-pixels"
data-value=
""
>
<label>
<?=
_t
(
'Трекинг'
)
?>
</label>
<div
class=
"value-show"
>
<?php
foreach
(
$campaign_tracking_pixels
as
$item
=>
$values
)
{
switch
(
$item
)
{
case
'load'
:
$title_mark
=
'Показ'
;
break
;
case
'view'
:
$title_mark
=
'Реальный показ'
;
break
;
case
'click'
:
$title_mark
=
'Клик'
;
break
;
}
if
(
$values
)
{
?>
<div>
<?=
$title_mark
?>
</div>
<?php
foreach
(
$values
as
$value_item
)
{
?>
<div
class=
"url"
>
<?=
$value_item
?>
</div>
<?php
}
}
}
?>
</div>
</div>
</div>
<div
class=
"b-right"
>
<!-- Баннеры -->
<div
class=
"form-group banners"
>
<label>
<?=
_t
(
'Баннеры'
)
?>
</label>
<div>
<table
class=
"table table-striped campaign-banners"
>
<thead>
<tr>
<th></th>
<th><span
class=
"sort"
>
Размер
</span></th>
<th><span
class=
"sort"
>
Превью
</span></th>
<th><span
class=
"sort"
>
Показы
</span></th>
<th><span
class=
"sort"
>
Клики
</span></th>
<th><span
class=
"sort"
>
CTR
</span></th>
<th><span
class=
"sort"
>
Расход, грн.
</span></th>
<th><span
class=
"sort"
>
eCPM
</span></th>
<th><span
class=
"sort"
>
eCPC
</span></th>
</tr>
</thead>
<tbody>
<?php
if
(
$banners
)
:
?>
<?php
foreach
(
$banners
as
$banner
)
:
?>
<?php
$stat
=
$banners_stats
[
$banner
[
'id'
]];
?>
<tr
data-id=
"
<?=
$banner
[
'id'
]
?>
"
>
<td
class=
"check"
><input
type=
"checkbox"
<?php
if
((
bool
)
$banner
[
'active'
])
:
?>
checked
<?php
endif
;
?>
></td>
<td
class=
"stat"
><span
class=
"banner-size"
>
<?=
$banner
[
'width'
]
?>
x
<?=
$banner
[
'height'
]
?>
</span></td>
<td
class=
"stat"
><span
class=
"banner-preview"
src=
"
<?=
$banner
[
'img'
]
?>
"
style=
"background-image: url(
<?=
$banner
[
'img'
]
?>
)"
></span></td>
<td
class=
"stat
<?=
$target_class
?>
"
>
<?=
$stat
[
'views'
]
?>
</td>
<td
class=
"stat"
>
<?=
$stat
[
'clicks'
]
?>
</td>
<td
class=
"stat"
>
<?=
$stat
[
'ctr'
]
?>
</td>
<td
class=
"stat
<?=
$target_class
?>
"
>
<?=
$stat
[
'money'
]
?>
</td>
<td
class=
"stat"
>
<?=
$stat
[
'cpm'
]
?>
</td>
<td
class=
"stat"
>
<?=
$stat
[
'cpc'
]
?>
</td>
</tr>
<?php
endforeach
?>
<?php
endif
?>
</tbody>
</table>
</div>
</div>
</div>
<div
class=
"b-clear"
></div>
</div>
</div>
</fieldset>
</form>
</section>
<?php
endif
;
?>
\ No newline at end of file
src/templates/app/user/campaigns_list.phtml
View file @
64b85017
...
@@ -37,6 +37,7 @@ $this->headLink()
...
@@ -37,6 +37,7 @@ $this->headLink()
$lang
=
$this
->
lang
;
$lang
=
$this
->
lang
;
$campaigns
=
$this
->
campaigns
;
$campaigns
=
$this
->
campaigns
;
$error
=
$this
->
error
;
?>
?>
...
@@ -61,7 +62,9 @@ $campaigns = $this->campaigns;
...
@@ -61,7 +62,9 @@ $campaigns = $this->campaigns;
<table
class=
"table table-striped campaigns"
data-content=
"campaigns"
data-action=
"/amsystem/campaigns/id/edit/"
>
<table
class=
"table table-striped campaigns"
data-content=
"campaigns"
data-action=
"/amsystem/campaigns/id/edit/"
>
<thead>
<thead>
<tr>
<tr>
<?php
/* ?>
<th width="1px"></th>
<th width="1px"></th>
<?php */
?>
<th
width=
"1px"
>
#ID
</th>
<th
width=
"1px"
>
#ID
</th>
<th>
Название кампании
</th>
<th>
Название кампании
</th>
<th
width=
"1px"
>
Показы
</th>
<th
width=
"1px"
>
Показы
</th>
...
@@ -82,19 +85,20 @@ $campaigns = $this->campaigns;
...
@@ -82,19 +85,20 @@ $campaigns = $this->campaigns;
$stat
=
$stats
[
$campaign_id
];
$stat
=
$stats
[
$campaign_id
];
$target_class
=
(
$campaign
[
'target_action'
]
==
'load'
)
?
'load-target'
:
''
;
$target_class
=
(
$campaign
[
'target_action'
]
==
'load'
)
?
'load-target'
:
''
;
?>
?>
<?php
/* ?>
<td>
<td>
<input class="is-active" type="checkbox" data-id="<?= $campaign_id ?>" <?php if ($campaign['active']): ?>checked<?php endif; ?>>
<input class="is-active" type="checkbox" data-id="<?= $campaign_id ?>" <?php if ($campaign['active']): ?>checked<?php endif; ?>>
</td>
</td>
<?php */
?>
<td>
<td>
<span
class=
"item-id"
>
<?=
$campaign_id
?>
</span>
<span
class=
"item-id"
>
<?=
$campaign_id
?>
</span>
</td>
</td>
<td>
<td>
<?php
<?php
/*
$btn_link
=
$this
->
url
(
'user.cabinet.campaign'
,
[
$btn_link = $this->url('adm.amsystem.campaigns.edit', [
'lang'
=>
$this
->
lang
,
'lang'
=>
$this
->
lang
,
'id'
=>
$campaign_id
,
'id'
=>
$campaign_id
,
]);
*/
]);
?>
?>
<span
class=
"item-title"
><a
href=
"
<?=
$btn_link
?>
"
>
<?=
$campaign
[
'title'
]
?>
</a></span>
<span
class=
"item-title"
><a
href=
"
<?=
$btn_link
?>
"
>
<?=
$campaign
[
'title'
]
?>
</a></span>
</td>
</td>
...
...
src/templates/app/user/profile.phtml
View file @
64b85017
...
@@ -55,7 +55,7 @@ $src = $sxml['src'];
...
@@ -55,7 +55,7 @@ $src = $sxml['src'];
<section
class=
"b-content__form"
>
<section
class=
"b-content__form"
>
<div
class=
"wrapp"
>
<div
class=
"wrapp"
>
<form
action=
""
class=
"b-content__form-set"
name=
"setting"
data-url=
"
<?=
$this
->
url
(
'user.cabinet.profile'
,
[
'lang'
=>
$this
->
lang
])
?>
"
data-url-success=
"
<?=
$this
->
url
(
'
user.cabinet
'
,
[
'lang'
=>
$this
->
lang
])
?>
"
>
<form
action=
""
class=
"b-content__form-set"
name=
"setting"
data-url=
"
<?=
$this
->
url
(
'user.cabinet.profile'
,
[
'lang'
=>
$this
->
lang
])
?>
"
data-url-success=
"
<?=
$this
->
url
(
'
home
'
,
[
'lang'
=>
$this
->
lang
])
?>
"
>
<div>
<div>
<label
for=
"setting-password"
class=
"b-content__form-set-item-label"
>
<label
for=
"setting-password"
class=
"b-content__form-set-item-label"
>
<p
class=
"text"
>
<?=
_t
(
"Старый пароль:"
)
?>
</p>
<p
class=
"text"
>
<?=
_t
(
"Старый пароль:"
)
?>
</p>
...
@@ -75,7 +75,7 @@ $src = $sxml['src'];
...
@@ -75,7 +75,7 @@ $src = $sxml['src'];
<div
class=
'wrapp-button submit'
data-action=
"
<?=
_t
(
'Ваши данные обновлены'
)
?>
"
>
<div
class=
'wrapp-button submit'
data-action=
"
<?=
_t
(
'Ваши данные обновлены'
)
?>
"
>
<input
type=
"submit"
name=
"submit"
value=
"
<?=
_t
(
'Сохранить'
)
?>
"
>
<input
type=
"submit"
name=
"submit"
value=
"
<?=
_t
(
'Сохранить'
)
?>
"
>
</div>
</div>
<div
class=
"wrapp-button reset"
data-url=
"
<?=
$this
->
url
(
'
user.cabinet
'
,
[
'lang'
=>
$this
->
lang
])
?>
"
>
<div
class=
"wrapp-button reset"
data-url=
"
<?=
$this
->
url
(
'
home
'
,
[
'lang'
=>
$this
->
lang
])
?>
"
>
<input
type=
"reset"
name=
"reset"
value=
"
<?=
_t
(
'Отмена'
)
?>
"
class=
"text bold"
>
<input
type=
"reset"
name=
"reset"
value=
"
<?=
_t
(
'Отмена'
)
?>
"
class=
"text bold"
>
</div>
</div>
</form>
</form>
...
...
src/templates/layout/layout-main.phtml
View file @
64b85017
...
@@ -122,13 +122,16 @@ $urlHome = $this->url('home',['lang' => $lang]);
...
@@ -122,13 +122,16 @@ $urlHome = $this->url('home',['lang' => $lang]);
</header>
</header>
<div
class=
"l-popup"
>
<div
class=
"l-popup"
>
<?php
/* ?>
<?= $this->partial('app::popup/login', ['lang' => $lang]) ?>
<?= $this->partial('app::popup/to-action', ['lang' => $lang]) ?>
<?= $this->partial('app::popup/connection', ['lang' => $lang]) ?>
<?= $this->partial('app::popup/password-reset', ['lang' => $lang]) ?>
<?= $this->partial('app::popup/confirm', ['lang' => $lang]) ?>
<?= $this->partial('app::popup/order-regected-comment', ['lang' => $lang]) ?>
<?php */
?>
<?php
//= $this->partial('app::popup/login', ['lang' => $lang]) ?>
<?=
$this
->
partial
(
'app::popup/banner-preview'
,
[
'lang'
=>
$layoutInfo
->
getLang
()])
?>
<?=
$this
->
partial
(
'app::popup/to-action'
,
[
'lang'
=>
$lang
])
?>
<?=
$this
->
partial
(
'app::popup/connection'
,
[
'lang'
=>
$lang
])
?>
<?=
$this
->
partial
(
'app::popup/password-reset'
,
[
'lang'
=>
$lang
])
?>
<?=
$this
->
partial
(
'app::popup/confirm'
,
[
'lang'
=>
$lang
])
?>
<?=
$this
->
partial
(
'app::popup/order-regected-comment'
,
[
'lang'
=>
$lang
])
?>
</div>
</div>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment