PluginProbe
Redirection / 2.4.2
Redirection v2.4.2
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 2.4.2, at models/module.php

79 lines 2.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 include_once dirname( dirname( __FILE__ ) ).'/modules/wordpress.php';
4 include_once dirname( dirname( __FILE__ ) ).'/modules/apache.php';
5 include_once dirname( dirname( __FILE__ ) ).'/modules/nginx.php';
6
7 abstract class Red_Module {
8 public function __construct( $options ) {
9 if ( is_array( $options ) )
10 $this->load( $options );
11 }
12
13 static function get( $id ) {
14 $id = intval( $id );
15 $options = red_get_options();
16
17 if ( $id === Apache_Module::MODULE_ID )
18 return new Apache_Module( isset( $options['modules'][Apache_Module::MODULE_ID] ) ? $options['modules'][Apache_Module::MODULE_ID] : array() );
19 else if ( $id === WordPress_Module::MODULE_ID )
20 return new WordPress_Module( isset( $options['modules'][WordPress_Module::MODULE_ID] ) ? $options['modules'][WordPress_Module::MODULE_ID] : array() );
21 else if ( $id === Nginx_Module::MODULE_ID )
22 return new Nginx_Module( isset( $options['modules'][Nginx_Module::MODULE_ID] ) ? $options['modules'][Nginx_Module::MODULE_ID] : array() );
23
24 return false;
25 }
26
27 public function get_total_redirects() {
28 global $wpdb;
29
30 return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}redirection_items INNER JOIN {$wpdb->prefix}redirection_groups ON {$wpdb->prefix}redirection_items.group_id={$wpdb->prefix}redirection_groups.id WHERE {$wpdb->prefix}redirection_groups.module_id=%d", $this->get_id() ) );
31 }
32
33 static public function is_valid_id( $id ) {
34 if ( $id === Apache_Module::MODULE_ID || $id === WordPress_Module::MODULE_ID )
35 return true;
36 return false;
37 }
38
39 static function get_for_select() {
40 $options = red_get_options();
41
42 return array(
43 WordPress_Module::MODULE_ID => Red_Module::get( WordPress_Module::MODULE_ID ),
44 Apache_Module::MODULE_ID => Red_Module::get( Apache_Module::MODULE_ID ),
45 Nginx_Module::MODULE_ID => Nginx_Module::get( Nginx_Module::MODULE_ID ),
46 );
47 }
48
49 static function flush( $group_id ) {
50 $group = Red_Group::get( $group_id );
51
52 if ( $group ) {
53 $module = Red_Module::get( $group->get_module_id() );
54
55 if ( $module )
56 $module->flush_module();
57 }
58 }
59
60 static function flush_by_module( $module_id ) {
61 $module = Red_Module::get( $module_id );
62
63 if ( $module )
64 $module->flush_module();
65 }
66
67 abstract public function get_id();
68 abstract public function get_name();
69 abstract public function get_description();
70
71 abstract public function render_config();
72 abstract public function get_config();
73 abstract public function can_edit_config();
74 abstract public function update( $options );
75
76 abstract protected function load( $options );
77 abstract protected function flush_module();
78 }
79