PluginProbe
Redirection / 5.3.7
Redirection v5.3.7
5.10.0 5.9.0 5.8.1 5.8.0 3.7.2 3.7.3 4.0 4.0.1 4.1 4.1.1 4.2 4.2.1 4.2.2 4.2.3 4.3 4.3.1 4.3.2 4.3.3 4.4 4.4.1 4.4.2 4.5 4.5.1 4.6.2 4.7.1 All 130 releases
redirection / models / module.php

module.php in Redirection 5.3.7, at models/module.php

147 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 require_once dirname( dirname( __FILE__ ) ) . '/modules/wordpress.php';
4 require_once dirname( dirname( __FILE__ ) ) . '/modules/apache.php';
5 require_once dirname( dirname( __FILE__ ) ) . '/modules/nginx.php';
6
7 /**
8 * Base class for redirect module.
9 */
10 abstract class Red_Module {
11 /**
12 * Constructor. Loads options
13 *
14 * @param array $options Any module options.
15 */
16 public function __construct( $options = [] ) {
17 if ( ! empty( $options ) ) {
18 $this->load( $options );
19 }
20 }
21
22 /**
23 * Get a module based on the supplied ID, and loads it with appropriate options.
24 *
25 * @param integer $id Module ID.
26 * @return Red_Module|false
27 */
28 public static function get( $id ) {
29 $id = intval( $id, 10 );
30 $options = red_get_options();
31
32 if ( $id === Apache_Module::MODULE_ID ) {
33 return new Apache_Module( isset( $options['modules'][ Apache_Module::MODULE_ID ] ) ? $options['modules'][ Apache_Module::MODULE_ID ] : array() );
34 }
35
36 if ( $id === WordPress_Module::MODULE_ID ) {
37 return new WordPress_Module( isset( $options['modules'][ WordPress_Module::MODULE_ID ] ) ? $options['modules'][ WordPress_Module::MODULE_ID ] : array() );
38 }
39
40 if ( $id === Nginx_Module::MODULE_ID ) {
41 return new Nginx_Module( isset( $options['modules'][ Nginx_Module::MODULE_ID ] ) ? $options['modules'][ Nginx_Module::MODULE_ID ] : array() );
42 }
43
44 return false;
45 }
46
47 /**
48 * Check that an ID is valid.
49 *
50 * @param integer $id Module ID.
51 * @return boolean
52 */
53 public static function is_valid_id( $id ) {
54 if ( $id === Apache_Module::MODULE_ID || $id === WordPress_Module::MODULE_ID || $id === Nginx_Module::MODULE_ID ) {
55 return true;
56 }
57
58 return false;
59 }
60
61 /**
62 * Return a module ID given the module name
63 *
64 * @param String $name Module name.
65 * @return integer|false
66 */
67 public static function get_id_for_name( $name ) {
68 $names = array(
69 'wordpress' => WordPress_Module::MODULE_ID,
70 'apache' => Apache_Module::MODULE_ID,
71 'nginx' => Nginx_Module::MODULE_ID,
72 );
73
74 if ( isset( $names[ $name ] ) ) {
75 return $names[ $name ];
76 }
77
78 return false;
79 }
80
81 /**
82 * Flush the module that a group belongs to
83 *
84 * @param integer $group_id Module group ID.
85 * @return void
86 */
87 public static function flush( $group_id ) {
88 $group = Red_Group::get( $group_id );
89
90 if ( is_object( $group ) ) {
91 $module = self::get( $group->get_module_id() );
92
93 if ( $module ) {
94 $module->flush_module();
95 }
96 }
97 }
98
99 /**
100 * Flush the module
101 *
102 * @param integer $module_id Module ID.
103 * @return void
104 */
105 public static function flush_by_module( $module_id ) {
106 $module = self::get( $module_id );
107
108 if ( $module ) {
109 $module->flush_module();
110 }
111 }
112
113 /**
114 * Get the module ID
115 *
116 * @return integer
117 */
118 abstract public function get_id();
119
120 /**
121 * Update
122 *
123 * @param array $data Data.
124 * @return false
125 */
126 public function update( array $data ) {
127 return false;
128 }
129
130 /**
131 * Load
132 *
133 * @param array $options Options.
134 * @return void
135 */
136 protected function load( $options ) {
137 }
138
139 /**
140 * Flush
141 *
142 * @return void
143 */
144 protected function flush_module() {
145 }
146 }
147