Blame view

src/app/backend/controllers/StandardEmailController.php 10.1 KB
1ea3b987   Administrator   maby first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
  <?php

  

  namespace controllers;

  

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  

  class StandardEmailController extends \Phalcon\Mvc\Controller

  {

      function indexAction()

      {

  

          if( !$this->session->get('isAdminAuth') )

          {

              return $this->response->redirect([ 'for' => 'admin_login' ]);

          }

  

          $params = $this->dispatcher->getParams();

          $page   = !empty( $params['page']  ) ? $params['page'] : 1;

          $data   = $this->models->getEventEmail()->getAllEmailData($page, "standard");

          $total  = $this->models->getEventEmail()->countData("standard");

  

          if( $total['0']['total'] > \config::get( 'limits/items') )

          {

              $paginate = $this->common->paginate(

                  [

                      'page'           => $page,

                      'items_per_page' => \config::get( 'limits/admin_orders', 5),

                      'total_items'    => $total[0]['total'],

                      'url_for'        => [ 'for' => 'standard_email_index_paged', 'page' => $page ],

                      'index_page'     => 'standard_email_index'

                  ], true

              );

          }

          $this->view->setVars([

              'info'     => $data,

              'paginate' => !empty($paginate['output']) ? $paginate['output'] : '' ,

          ]);

      }

  

      function deleteAction($id)

      {

          if( !$this->session->get('isAdminAuth') )

          {

              return $this->response->redirect([ 'for' => 'admin_login' ]);

          }

  

          $this->models->getEventEmail()->deleteData($id);

  

          return $this->response->redirect([ 'for' => 'standard_email_index' ]);

      }

  

      function updateAction($id)

      {

  

          if( !$this->session->get('isAdminAuth') )

          {

              return $this->response->redirect([ 'for' => 'admin_login' ]);

          }

  

          if( $this->request->isPost() )

          {

              $data['id']          = $this->request->getPost('id', 'int', NULL );

              $data['send']        = $this->request->getPost('send');

              $data['name']        = $this->request->getPost('name', 'string', NULL );

              $data['utm_status']  = $this->request->getPost('utm_status', 'int', NULL );

              $data['utm_campaign']= $this->request->getPost('utm_campaign', 'string', NULL );

              $data['utm_medium']  = $this->request->getPost('utm_medium', 'string', NULL );

              $data['utm_source']  = $this->request->getPost('utm_source', 'string', NULL );

              $data['utm_term']    = $this->request->getPost('utm_term', 'string', NULL );

              $data['utm_content'] = $this->request->getPost('utm_content', 'string', NULL );

              $data['status']      = $this->request->getPost('status', 'string', NULL );

              $data['template_id'] = $template_id  = $this->request->getPost('template_id', 'int', NULL );

              $data['users_id']    = $this->request->getPost('user_id');

              $data['type']        = 'standard';

              $data['utm_status']  = empty( $data['utm_status'] ) ? 0 : 1;

              $data['status']      = empty( $data['status'] ) ? 0 : 1;

  

  

              $template['title']          = $this->request->getPost('template_title', 'string', NULL );

              $template['text']           = $this->request->getPost('template_text');

              $template['directory']      = $this->request->getPost('directory', 'string', NULL );

              $template['name']           = $this->request->getPost('template_name', 'string', NULL );

  

              $parse['picture_url'] = $this->storage->getEmailTemplateUrl( 'temp', $template['directory']);

              $template['text'] = str_replace('%!picture_url!%', $parse['picture_url'], $template['text']);

  

  

  

              if( !empty( $data['name'] ) && !empty( $data['name'] ) )

              {

                  if( $this->models->getEventEmail()->UpdateData( $data, $id ) )

                  {

  

  

                      $template['event_id'] = $id;

  

  

  

                      $this->models->getEmailTemplates()->UpdateData( $template, $template_id );

  

  

                      if(isset($data['send']) && !empty($data['send'])){

  

                          if($data['utm_status'] && !empty($data['utm_campaign']) && !empty($data['utm_medium']) && !empty($data['utm_source'])) {

  

                              $template['text'] = $this->UTMParser->parse($data, $template);

  

                          }

                          if(isset($data['users_id']) && !empty($data['users_id'])) {

                            $this->MyMailer->SendDelivery($template,$data);

                             // $this->MyMailer->SendForSelect($template,$data['users_id']);

  

                          } else {

                              $this->MyMailer->SendDeliveryForAll($template,$data);

  

  

                          }

                      } else {

                          $this->flash->success( 'Сохранение прошло успешно' );

                      }

                      return $this->response->redirect([ 'for' => 'standard_email_index' ]);

                  }

                  else

                  {

                      $this->flash->error( 'Произошла ошибка во время добавления.' );

                  }

              }

  

          }

  

  

          $data      = $this->models->getEventEmail()->getOneData($id);

          $templates =  $this->models->getEmailTemplates()->getAllData();

          $temp      =  $this->models->getEmailTemplates()->getOneData($data[0]['template_id']);

          $this->view->pick( 'standard_email/addEdit' );

  

          $this->view->setVars([

              'page' => $data,

              'templates' => $templates,

              'temp' => $temp

          ]);

  

      }

  

      function addAction()

      {

          if( !$this->session->get('isAdminAuth') )

          {

              return $this->response->redirect([ 'for' => 'admin_login' ]);

          }

  

          if( $this->request->isPost() )

          {

              $data['id']          = $this->request->getPost('id', 'int', NULL );

              $data['send']        = $this->request->getPost('send');

              $data['name']        = $this->request->getPost('name', 'string', NULL );

              $data['utm_status']  = $this->request->getPost('utm_status', 'int', NULL );

              $data['utm_campaign']= $this->request->getPost('utm_campaign', 'string', NULL );

              $data['utm_medium']  = $this->request->getPost('utm_medium', 'string', NULL );

              $data['utm_term']    = $this->request->getPost('utm_term', 'string', NULL );

              $data['utm_content'] = $this->request->getPost('utm_content', 'string', NULL );

              $data['utm_source']  = $this->request->getPost('utm_source', 'string', NULL );

              $data['users_id']    = $this->request->getPost('user_id');

              $data['status']      = $this->request->getPost('status', 'string', NULL );

              $data['type']        = 'standard';

  

              $data['utm_status']  = empty( $data['utm_status'] ) ? 0 : 1;

              $data['status']      = empty( $data['status'] ) ? 0 : 1;

  

  

              $template['title']          = $this->request->getPost('template_title', 'string', NULL );

              $template['text']           = $this->request->getPost('template_text');

              $template['directory']      = $this->request->getPost('directory', 'string', NULL );

              $template['name']           = $this->request->getPost('template_name', 'string', NULL );

  

              $parse['picture_url'] = $this->storage->getEmailTemplateUrl( 'temp', $template['directory']);

              $template['text']     = str_replace('%!picture_url!%', $parse['picture_url'], $template['text']);

  

              if( !empty( $data['name'] ) && !empty( $data['name'] ) )

              {

                  if( $template['event_id'] = $this->models->getEventEmail()->addData( $data ) )

                  {

  

                      if($data['utm_status'] && !empty($data['utm_campaign']) && !empty($data['utm_medium']) && !empty($data['utm_source'])) {

  

                          $template['text'] = $this->UTMParser->parse($data, $template);

  

                      }

  

                      $template['event_id'] = $template['event_id'][0]['id'];

                      $template_id          = $this->models->getEmailTemplates()->addData( $template );

                      $this->models->getEventEmail()->addTemplateId($template_id[0]['id'] , $template['event_id'] );

  

                      if(isset($data['send']) && !empty($data['send'])){

  

                          if($data['utm_status'] && !empty($data['utm_campaign']) && !empty($data['utm_medium']) && !empty($data['utm_source'])) {

  

                              $template['text'] = $this->UTMParser->parse($data, $template);

  

                          }

  

                          if(isset($data['users_id']) && !empty($data['users_id'])) {

  

                              $this->MyMailer->SendForSelect($template,$data['users_id']);

  

                          } else {

  

                              $this->MyMailer->SendForAll($template,$data);

                          }

                      } else {

                          $this->flash->success( 'Сохранение прошло успешно' );

                      }

                      return $this->response->redirect([ 'for' => 'standard_email_index' ]);

                  }

                  else

                  {

                      $this->flash->error( 'Произошла ошибка во время добавления.' );

                  }

              }

          }

  

  

          $templates =  $this->models->getEmailTemplates()->getAllData();

  

  

          $this->view->pick( 'standard_email/addEdit' );

  

          $this->view->setVars([

              'templates' => $templates,

          ]);

  

      }

  

      public function getUsersLikeAction()

      {

          $like = $this->request->getPost('like', 'string', NULL );

          $users = $this->models->getCustomers()->getActiveUsers($like);

          $result = json_encode($users);

          $this->view->disableLevel(\Phalcon\Mvc\View::LEVEL_MAIN_LAYOUT);

          echo $result;

      }

  }