PluginProbe
Redirection / 4.6.2
Redirection v4.6.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 4.6.2, at models/module.php

92 lines 2.8 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
14 static function get( $id ) {
15 $id = intval( $id, 10 );
16 $options = red_get_options();
17
18 if ( $id === Apache_Module::MODULE_ID ) {
19 return new Apache_Module( isset( $options['modules'][ Apache_Module::MODULE_ID ] ) ? $options['modules'][ Apache_Module::MODULE_ID ] : array() );
20 } elseif ( $id === WordPress_Module::MODULE_ID ) {
21 return new WordPress_Module( isset( $options['modules'][ WordPress_Module::MODULE_ID ] ) ? $options['modules'][ WordPress_Module::MODULE_ID ] : array() );
22 } elseif ( $id === Nginx_Module::MODULE_ID ) {
23 return new Nginx_Module( isset( $options['modules'][ Nginx_Module::MODULE_ID ] ) ? $options['modules'][ Nginx_Module::MODULE_ID ] : array() );
24 }
25
26 return false;
27 }
28
29 public function get_total_redirects() {
30 global $wpdb;
31
32 return intval( $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() ) ), 10 );
33 }
34
35 static public function is_valid_id( $id ) {
36 if ( $id === Apache_Module::MODULE_ID || $id === WordPress_Module::MODULE_ID || $id === Nginx_Module::MODULE_ID ) {
37 return true;
38 }
39
40 return false;
41 }
42
43 static function get_all() {
44 return array(
45 WordPress_Module::MODULE_ID => Red_Module::get( WordPress_Module::MODULE_ID )->get_name(),
46 Apache_Module::MODULE_ID => Red_Module::get( Apache_Module::MODULE_ID )->get_name(),
47 Nginx_Module::MODULE_ID => Nginx_Module::get( Nginx_Module::MODULE_ID )->get_name(),
48 );
49 }
50
51 static function get_id_for_name( $name ) {
52 $names = array(
53 'wordpress' => WordPress_Module::MODULE_ID,
54 'apache' => Apache_Module::MODULE_ID,
55 'nginx' => Nginx_Module::MODULE_ID,
56 );
57
58 if ( isset( $names[ $name ] ) ) {
59 return $names[ $name ];
60 }
61
62 return false;
63 }
64
65 static function flush( $group_id ) {
66 $group = Red_Group::get( $group_id );
67
68 if ( $group ) {
69 $module = Red_Module::get( $group->get_module_id() );
70
71 if ( $module ) {
72 $module->flush_module();
73 }
74 }
75 }
76
77 static function flush_by_module( $module_id ) {
78 $module = Red_Module::get( $module_id );
79
80 if ( $module ) {
81 $module->flush_module();
82 }
83 }
84
85 abstract public function get_id();
86
87 abstract public function update( array $options );
88
89 abstract protected function load( $options );
90 abstract protected function flush_module();
91 }
92