стр. одной кампании, рендер по исходным данным

parent 3a1b1a93
...@@ -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')
......
<?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,
),
),
)
]
];
...@@ -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(
......
...@@ -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/',
......
...@@ -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 {
......
$(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();
}
})();
});
...@@ -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));
}
} }
......
<div class="preview b-popup__window">
<p class="button-close"></p>
<div class="b-popup-message"></div>
<div class="b-popup-content"></div>
</div>
<?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
...@@ -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>
......
...@@ -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>
......
...@@ -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>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment