1 | <?php |
||
23 | class ext extends \phpbb\extension\base |
||
24 | { |
||
25 | /** |
||
26 | * Check whether or not the extension can be enabled. |
||
27 | * The current phpBB version should meet or exceed |
||
28 | * the minimum version required by this extension: |
||
29 | * |
||
30 | * Requires phpBB 3.1.3 due to usage of container aware migrations. |
||
31 | * |
||
32 | * @return bool |
||
33 | * @access public |
||
34 | */ |
||
35 | public function is_enableable() |
||
41 | |||
42 | /** |
||
43 | * Overwrite enable_step to enable extension notifications before any included migrations are installed. |
||
44 | * |
||
45 | * @param mixed $old_state State returned by previous call of this method |
||
46 | * |
||
47 | * @return mixed Returns false after last step, otherwise temporary state |
||
48 | * @access public |
||
49 | */ |
||
50 | public function enable_step($old_state) |
||
1 ignored issue
–
show
|
|||
51 | { |
||
52 | switch ($old_state) |
||
53 | { |
||
54 | case '': // Empty means nothing has run yet |
||
55 | // Enable notifications |
||
56 | return $this->notification_handler('enable', array('skouat.ppde.notification.type.donation_received')); |
||
57 | |||
58 | break; |
||
59 | |||
60 | default: |
||
61 | // Run parent enable step method |
||
62 | return parent::enable_step($old_state); |
||
63 | |||
64 | break; |
||
65 | } |
||
66 | } |
||
67 | |||
68 | /** |
||
69 | * Overwrite disable_step to disable extension notifications before the extension is disabled. |
||
70 | * |
||
71 | * @param mixed $old_state State returned by previous call of this method |
||
72 | * |
||
73 | * @return mixed Returns false after last step, otherwise temporary state |
||
74 | * @access public |
||
75 | */ |
||
76 | public function disable_step($old_state) |
||
1 ignored issue
–
show
|
|||
77 | { |
||
78 | switch ($old_state) |
||
79 | { |
||
80 | case '': // Empty means nothing has run yet |
||
81 | // Disable notifications |
||
82 | return $this->notification_handler('enable', array('skouat.ppde.notification.type.donation_received')); |
||
83 | |||
84 | break; |
||
85 | |||
86 | default: |
||
87 | // Run parent disable step method |
||
88 | return parent::disable_step($old_state); |
||
89 | |||
90 | break; |
||
91 | } |
||
92 | } |
||
93 | |||
94 | /** |
||
95 | * Overwrite purge_step to purge extension notifications before any included and installed migrations are reverted. |
||
96 | * |
||
97 | * @param mixed $old_state State returned by previous call of this method |
||
98 | * |
||
99 | * @return mixed Returns false after last step, otherwise temporary state |
||
100 | * @access public |
||
101 | */ |
||
102 | public function purge_step($old_state) |
||
1 ignored issue
–
show
|
|||
103 | { |
||
104 | switch ($old_state) |
||
105 | { |
||
106 | case '': // Empty means nothing has run yet |
||
107 | |||
108 | // Purge notifications |
||
109 | return $this->notification_handler('enable', array('skouat.ppde.notification.type.donation_received')); |
||
110 | |||
111 | break; |
||
112 | |||
113 | default: |
||
114 | |||
115 | // Run parent purge step method |
||
116 | return parent::purge_step($old_state); |
||
117 | |||
118 | break; |
||
119 | } |
||
120 | } |
||
121 | |||
122 | /** |
||
123 | * Notification handler to call notification enable/disable/purge steps |
||
124 | * |
||
125 | * @author VSEphpbb (Matt Friedman) |
||
126 | * @copyright (c) 2014 phpBB Limited <https://www.phpbb.com> |
||
127 | * @license GNU General Public License, version 2 (GPL-2.0) |
||
128 | * |
||
129 | * @param string $step The step (enable, disable, purge) |
||
130 | * @param array $notification_types The notification type names |
||
131 | * |
||
132 | * @return string Return notifications as temporary state |
||
133 | * @access protected |
||
134 | */ |
||
135 | protected function notification_handler($step, $notification_types) |
||
147 | } |
||
148 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.