forked from EC-CUBE/mail-magazine-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
MailMagazine.php
200 lines (179 loc) · 5.12 KB
/
MailMagazine.php
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
<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) 2000-2015 LOCKON CO.,LTD. All Rights Reserved.
* http://www.lockon.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Plugin\MailMagazine;
use Eccube\Event\EventArgs;
use Eccube\Event\TemplateEvent;
use Plugin\MailMagazine\Event\MailMagazineLegacy;
use Plugin\MailMagazine\Util\Version;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
class MailMagazine
{
private $app;
public function __construct($app)
{
$this->app = $app;
}
/**
* 3.0.9以降用のイベントハンドラ.
*
* @return \Plugin\MailMagazine\Event\MailMagazine
*/
private function getEventHandler()
{
return $this->app['eccube.plugin.mail_magazine.event.mail_magazine'];
}
/**
* 3.0.8以前用のイベントハンドラ.
*
* @return MailMagazineLegacy
*/
private function getLegacyEventHandler()
{
return $this->app['eccube.plugin.mail_magazine.event.mail_magazine_legacy'];
}
/**
* 新規会員登録画面のイベント処理.
*
* @param TemplateEvent $event
*/
public function onRenderEntryIndex(TemplateEvent $event)
{
$this->getEventHandler()->onRenderEntryIndex($event);
}
/**
* 新規会員登録確認画面のイベント処理.
*
* @param TemplateEvent $event
*/
public function onRenderEntryConfirm(TemplateEvent $event)
{
$this->getEventHandler()->onRenderEntryConfirm($event);
}
/**
* 新規会員登録完了時のイベント処理.
*
* @param EventArgs $event
*/
public function onFrontEntryIndexComplete(EventArgs $event)
{
$this->getEventHandler()->onFrontEntryIndexComplete($event);
}
/**
* 会員情報編集画面のイベント処理.
*
* @param TemplateEvent $event
*/
public function onRenderMypageChange(TemplateEvent $event)
{
$this->getEventHandler()->onRenderMypageChange($event);
}
/**
* 会員情報編集完了時のイベント処理.
*
* @param EventArgs $event
*/
public function onFrontMypageChangeIndexComplete(EventArgs $event)
{
$this->getEventHandler()->onFrontMypageChangeIndexComplete($event);
}
/**
* 管理用会員編集画面のイベント処理.
*
* @param TemplateEvent $event
*/
public function onRenderAdminCustomerEdit(TemplateEvent $event)
{
$this->getEventHandler()->onRenderAdminCustomerEdit($event);
}
/**
* 管理用会員編集完了時のイベント処理.
*
* @param EventArgs $event
*/
public function onAdminCustomerEditIndexComplete(EventArgs $event)
{
$this->getEventHandler()->onAdminCustomerEditIndexComplete($event);
}
// ===========================================================
// マイページ画面
// ===========================================================
/**
* マイページ会員情報編集のrender before
* メルマガ送付項目を表示する.
*
* @param FilterResponseEvent $event
*/
public function onRenderMypageChangeBefore(FilterResponseEvent $event)
{
if ($this->isSupportNewHookPoint()) {
return;
}
$this->getLegacyEventHandler()->onRenderMypageChangeBefore($event);
}
/**
* マイページ会員情報編集 controll after
* メルマガ送付情報を保存する.
*/
public function onControllMypageChangeAfter()
{
if ($this->isSupportNewHookPoint()) {
return;
}
$this->getLegacyEventHandler()->onControllMypageChangeAfter();
}
// ===========================================================
// 新規会員登録画面
// ===========================================================
/**
* 新規会員登録のBefore.
*
* @param FilterResponseEvent $event
*/
public function onRenderEntryBefore(FilterResponseEvent $event)
{
if ($this->isSupportNewHookPoint()) {
return;
}
$this->getLegacyEventHandler()->onRenderEntryBefore($event);
}
/**
* 新規会員登録確認画面の後処理.
* メールマガジン送付情報を保存する.
*/
public function onControllerEntryAfter()
{
if ($this->isSupportNewHookPoint()) {
return;
}
$this->getLegacyEventHandler()->onControllerEntryAfter();
}
/**
* 会員管理 会員登録・編集のbefore.
*
* @param FilterResponseEvent $event
*/
public function onRenderAdminCustomerBefore(FilterResponseEvent $event)
{
if ($this->isSupportNewHookPoint()) {
return;
}
$this->getLegacyEventHandler()->onRenderAdminCustomerBefore($event);
}
/**
* v3.0.9以降のフックポイントに対応しているのか.
*
* @return bool
*/
private function isSupportNewHookPoint()
{
return Version::isSupport();
}
}