wp/wp-content/plugins/portfolio/bws_menu/bws_include.php
changeset 19 3d72ae0968f4
parent 16 a86126ab1dd4
child 21 48c4eec2b7e6
equal deleted inserted replaced
18:be944660c56a 19:3d72ae0968f4
     1 <?php
     1 <?php
     2 /*
     2 /**
     3 * Get latest version
     3  * Get latest version
     4 */
     4  */
     5 
     5 
     6 if ( ! function_exists( 'bws_include_init' ) ) {
     6 if ( ! function_exists( 'bws_include_init' ) ) {
     7 	function bws_include_init( $base, $bws_menu_source = 'plugins' ) {
     7 	function bws_include_init( $base, $bws_menu_source = 'plugins' ) {
     8 		global $bstwbsftwppdtplgns_options, $bstwbsftwppdtplgns_added_menu, $bstwbsftwppdtplgns_active_plugins;
     8 		global $bstwbsftwppdtplgns_options, $bstwbsftwppdtplgns_added_menu, $bstwbsftwppdtplgns_active_plugins;
     9 		if ( ! function_exists( 'get_plugin_data' ) )
     9 		if ( ! function_exists( 'get_plugin_data' ) ) {
    10 			require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    10 			require_once ABSPATH . 'wp-admin/includes/plugin.php';
       
    11 		}
    11 
    12 
    12 		$wp_content_dir = defined( 'WP_CONTENT_DIR' ) ? WP_CONTENT_DIR : ABSPATH . 'wp-content';
    13 		$wp_content_dir = defined( 'WP_CONTENT_DIR' ) ? WP_CONTENT_DIR : ABSPATH . 'wp-content';
    13 		$wp_plugins_dir = defined( 'WP_PLUGIN_DIR' ) ? WP_PLUGIN_DIR : $wp_content_dir . '/plugins';
    14 		$wp_plugins_dir = defined( 'WP_PLUGIN_DIR' ) ? WP_PLUGIN_DIR : $wp_content_dir . '/plugins';
    14 
    15 
    15 		if ( $bws_menu_source == 'plugins' ) {
    16 		if ( 'plugins' === $bws_menu_source ) {
    16 			$bws_menu_dir = $wp_plugins_dir . '/' .  dirname( $base ) . '/bws_menu/bws_menu.php';
    17 			$bws_menu_dir                               = $wp_plugins_dir . '/' . dirname( $base ) . '/bws_menu/bws_menu.php';
    17 			$bstwbsftwppdtplgns_active_plugins[ $base ] = get_plugin_data( $wp_plugins_dir . '/' . $base );
    18 			$bstwbsftwppdtplgns_active_plugins[ $base ] = get_plugin_data( $wp_plugins_dir . '/' . $base );
    18 		} else {
    19 		} else {
    19 			$bws_menu_dir = $wp_content_dir . '/themes/' . $base . '/inc/bws_menu/bws_menu.php';
    20 			$bws_menu_dir = $wp_content_dir . '/themes/' . $base . '/inc/bws_menu/bws_menu.php';
    20 		}
    21 		}
    21 
    22 
    22 		$bws_menu_info = get_plugin_data( $bws_menu_dir );
    23 		$bws_menu_info = get_plugin_data( $bws_menu_dir );
    23 
    24 
    24 		$is_pro_bws_menu = ( strpos( $bws_menu_info["Version"], 'pro' ) !== false );
    25 		$is_pro_bws_menu  = ( strpos( $bws_menu_info['Version'], 'pro' ) !== false );
    25 		$bws_menu_version = str_replace( '-pro', '', $bws_menu_info["Version"] );		
    26 		$bws_menu_version = str_replace( '-pro', '', $bws_menu_info['Version'] );
    26 
    27 
    27 		if ( ! isset( $bstwbsftwppdtplgns_options ) ) {
    28 		if ( ! isset( $bstwbsftwppdtplgns_options ) ) {
    28 			if ( function_exists( 'is_multisite' ) && is_multisite() ) {
    29 			if ( function_exists( 'is_multisite' ) && is_multisite() ) {
    29 				if ( ! get_site_option( 'bstwbsftwppdtplgns_options' ) )
    30 				if ( ! get_site_option( 'bstwbsftwppdtplgns_options' ) ) {
    30 					add_site_option( 'bstwbsftwppdtplgns_options', array() );
    31 					add_site_option( 'bstwbsftwppdtplgns_options', array() );
       
    32 				}
    31 				$bstwbsftwppdtplgns_options = get_site_option( 'bstwbsftwppdtplgns_options' );
    33 				$bstwbsftwppdtplgns_options = get_site_option( 'bstwbsftwppdtplgns_options' );
    32 			} else {
    34 			} else {
    33 				if ( ! get_option( 'bstwbsftwppdtplgns_options' ) )
    35 				if ( ! get_option( 'bstwbsftwppdtplgns_options' ) ) {
    34 					add_option( 'bstwbsftwppdtplgns_options', array() );
    36 					add_option( 'bstwbsftwppdtplgns_options', array() );
       
    37 				}
    35 				$bstwbsftwppdtplgns_options = get_option( 'bstwbsftwppdtplgns_options' );
    38 				$bstwbsftwppdtplgns_options = get_option( 'bstwbsftwppdtplgns_options' );
    36 			}
    39 			}
    37 		}
    40 		}
    38 
    41 
    39 		if ( isset( $bstwbsftwppdtplgns_options['bws_menu_version'] ) ) {
    42 		if ( isset( $bstwbsftwppdtplgns_options['bws_menu_version'] ) ) {
    40 			$bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] = $bws_menu_version;
    43 			$bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] = $bws_menu_version;
    41 			unset( $bstwbsftwppdtplgns_options['bws_menu_version'] );
    44 			unset( $bstwbsftwppdtplgns_options['bws_menu_version'] );
    42 			if ( function_exists( 'is_multisite' ) && is_multisite() )
    45 			if ( function_exists( 'is_multisite' ) && is_multisite() ) {
    43 				update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    46 				update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    44 			else
    47 			} else {
    45 				update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    48 				update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    46 			require_once( dirname( __FILE__ ) . '/bws_menu.php' );
    49 			}
    47 			require_once( dirname( __FILE__ ) . '/bws_functions.php' );
    50 			require_once dirname( __FILE__ ) . '/bws_menu.php';
    48 			require_once( dirname( __FILE__ ) . '/class-bws-settings.php' );
    51 			require_once dirname( __FILE__ ) . '/bws_functions.php';
    49 		} else if ( ! $is_pro_bws_menu && ( ! isset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] ) || $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] != $bws_menu_version ) ) {
    52 			require_once dirname( __FILE__ ) . '/class-bws-settings.php';
       
    53 		} elseif ( ! $is_pro_bws_menu && ( ! isset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] ) || $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] !== $bws_menu_version ) ) {
    50 			$bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] = $bws_menu_version;
    54 			$bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] = $bws_menu_version;
    51 			if ( function_exists( 'is_multisite' ) && is_multisite() )
    55 			if ( function_exists( 'is_multisite' ) && is_multisite() ) {
    52 				update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    56 				update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    53 			else
    57 			} else {
    54 				update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    58 				update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    55 			require_once( dirname( __FILE__ ) . '/bws_menu.php' );
    59 			}
    56 			require_once( dirname( __FILE__ ) . '/bws_functions.php' );
    60 			require_once dirname( __FILE__ ) . '/bws_menu.php';
    57 			require_once( dirname( __FILE__ ) . '/class-bws-settings.php' );
    61 			require_once dirname( __FILE__ ) . '/bws_functions.php';
    58 		} else if ( $is_pro_bws_menu && ( ! isset( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $base ] ) || $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $base ] != $bws_menu_version ) ) {
    62 			require_once dirname( __FILE__ ) . '/class-bws-settings.php';
       
    63 		} elseif ( $is_pro_bws_menu && ( ! isset( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $base ] ) || $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $base ] !== $bws_menu_version ) ) {
    59 			$bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $base ] = $bws_menu_version;
    64 			$bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $base ] = $bws_menu_version;
    60 			
    65 
    61 			if ( isset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] ) )
    66 			if ( isset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] ) ) {
    62 				unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] );
    67 				unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] );
    63 			
    68 			}
    64 			if ( function_exists( 'is_multisite' ) && is_multisite() )
    69 
       
    70 			if ( function_exists( 'is_multisite' ) && is_multisite() ) {
    65 				update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    71 				update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    66 			else
    72 			} else {
    67 				update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    73 				update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    68 			require_once( dirname( __FILE__ ) . '/bws_menu.php' );
    74 			}
    69 			require_once( dirname( __FILE__ ) . '/bws_functions.php' );
    75 			require_once dirname( __FILE__ ) . '/bws_menu.php';
    70 			require_once( dirname( __FILE__ ) . '/class-bws-settings.php' );
    76 			require_once dirname( __FILE__ ) . '/bws_functions.php';
    71 		} else if ( ! isset( $bstwbsftwppdtplgns_added_menu ) ) {
    77 			require_once dirname( __FILE__ ) . '/class-bws-settings.php';
       
    78 		} elseif ( ! isset( $bstwbsftwppdtplgns_added_menu ) ) {
    72 
    79 
    73 			$all_plugins = get_plugins();
    80 			$all_plugins = get_plugins();
    74 			$all_themes = wp_get_themes();
    81 			$all_themes  = wp_get_themes();
    75 
    82 
    76 			if ( ! empty( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'] ) ) {
    83 			if ( ! empty( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'] ) ) {
    77 				foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'] as $key => $value ) {
    84 				foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'] as $key => $value ) {
    78 					if ( array_key_exists( $key, $all_plugins ) || array_key_exists( $key, $all_themes ) ) {
    85 					if ( array_key_exists( $key, $all_plugins ) || array_key_exists( $key, $all_themes ) ) {
    79 						if ( $bws_menu_version < $value && ( is_plugin_active( $key ) || preg_match( '|' . $key . '$|', get_template_directory() ) ) ) {
    86 						if ( $bws_menu_version <= $value && ( is_plugin_active( $key ) || preg_match( '|' . $key . '$|', get_template_directory() ) ) ) {
    80 							if ( ! isset( $product_with_newer_menu ) )
    87 							if ( ! isset( $product_with_newer_menu ) ) {
    81 								$product_with_newer_menu = $key;
    88 								$product_with_newer_menu = $key;
    82 							elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $product_with_newer_menu ] < $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $key ] )
    89 							} elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $product_with_newer_menu ] <= $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $key ] ) {
    83 								$product_with_newer_menu = $key;
    90 								$product_with_newer_menu = $key;
       
    91 							}
    84 						}
    92 						}
    85 					} else {
    93 					} else {
    86 						unset( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $key ] );
    94 						unset( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $key ] );
    87 						if ( function_exists( 'is_multisite' ) && is_multisite() )
    95 						if ( function_exists( 'is_multisite' ) && is_multisite() ) {
    88 							update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    96 							update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    89 						else
    97 						} else {
    90 							update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
    98 							update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
       
    99 						}
    91 					}
   100 					}
    92 				}
   101 				}
    93 			}
   102 			}
    94 
   103 
    95 			if ( ! isset( $product_with_newer_menu ) ) {
   104 			if ( ! isset( $product_with_newer_menu ) ) {
    96 				if ( $is_pro_bws_menu ) {
   105 				if ( $is_pro_bws_menu ) {
    97 					$product_with_newer_menu = $base;
   106 					$product_with_newer_menu = $base;
    98 				} else {
   107 				} else {
    99 					foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version'] as $key => $value ) {
   108 					foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version'] as $key => $value ) {
   100 						if ( array_key_exists( $key, $all_plugins ) || array_key_exists( $key, $all_themes ) ) {
   109 						if ( array_key_exists( $key, $all_plugins ) || array_key_exists( $key, $all_themes ) ) {
   101 							if ( $bws_menu_version < $value && ( is_plugin_active( $key ) || preg_match( '|' . $key . '$|', get_template_directory() ) ) ) {
   110 							if ( $bws_menu_version <= $value && ( is_plugin_active( $key ) || preg_match( '|' . $key . '$|', get_template_directory() ) ) ) {
   102 								if ( ! isset( $product_with_newer_menu ) )
   111 								if ( ! isset( $product_with_newer_menu ) ) {
   103 									$product_with_newer_menu = $key;
   112 									$product_with_newer_menu = $key;
   104 								elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $product_with_newer_menu ] < $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] )
   113 								} elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $product_with_newer_menu ] <= $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] ) {
   105 									$product_with_newer_menu = $key;
   114 									$product_with_newer_menu = $key;
       
   115 								}
   106 							}
   116 							}
   107 						} else {
   117 						} else {
   108 							unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] );
   118 							unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] );
   109 							if ( function_exists( 'is_multisite' ) && is_multisite() )
   119 							if ( function_exists( 'is_multisite' ) && is_multisite() ) {
   110 								update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
   120 								update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
   111 							else
   121 							} else {
   112 								update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
   122 								update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
       
   123 							}
   113 						}
   124 						}
   114 					}
   125 					}
   115 				}
   126 				}
   116 			}
   127 			}
   117 
   128 
   118 			if ( ! isset( $product_with_newer_menu ) )
   129 			if ( ! isset( $product_with_newer_menu ) ) {
   119 				$product_with_newer_menu = $base;
   130 				$product_with_newer_menu = $base;
       
   131 			}
   120 
   132 
   121 			$folder_with_newer_menu = explode( '/', $product_with_newer_menu );
   133 			$folder_with_newer_menu = explode( '/', $product_with_newer_menu );
   122 
   134 
   123 			if ( array_key_exists( $product_with_newer_menu, $all_plugins ) ) {
   135 			if ( array_key_exists( $product_with_newer_menu, $all_plugins ) ) {
   124 				$bws_menu_source = 'plugins';
   136 				$bws_menu_source  = 'plugins';
   125 				$bws_menu_new_dir = $wp_plugins_dir . '/' . $folder_with_newer_menu[0];
   137 				$bws_menu_new_dir = $wp_plugins_dir . '/' . $folder_with_newer_menu[0];
   126 			} else if ( array_key_exists( $product_with_newer_menu, $all_themes ) ) {
   138 			} elseif ( array_key_exists( $product_with_newer_menu, $all_themes ) ) {
   127 				$bws_menu_source = 'themes';
   139 				$bws_menu_source  = 'themes';
   128 				$bws_menu_new_dir = $wp_content_dir . '/themes/' . $folder_with_newer_menu[0] . '/inc';
   140 				$bws_menu_new_dir = $wp_content_dir . '/themes/' . $folder_with_newer_menu[0] . '/inc';
   129 			} else {
   141 			} else {
   130 				$bws_menu_new_dir = '';
   142 				$bws_menu_new_dir = '';
   131 			}
   143 			}
   132 
   144 
   133 			if ( file_exists( $bws_menu_new_dir . '/bws_menu/bws_functions.php' ) ) {
   145 			if ( file_exists( $bws_menu_new_dir . '/bws_menu/bws_functions.php' ) ) {
   134 				require_once( $bws_menu_new_dir . '/bws_menu/bws_functions.php' );
   146 				require_once $bws_menu_new_dir . '/bws_menu/bws_functions.php';
   135 				require_once( $bws_menu_new_dir . '/bws_menu/bws_menu.php' );
   147 				require_once $bws_menu_new_dir . '/bws_menu/bws_menu.php';
   136 				require_once( $bws_menu_new_dir . '/bws_menu/class-bws-settings.php' );
   148 				require_once $bws_menu_new_dir . '/bws_menu/class-bws-settings.php';
   137 			} else {
   149 			} else {
   138 				require_once( dirname( __FILE__ ) . '/bws_menu.php' );
   150 				require_once dirname( __FILE__ ) . '/bws_menu.php';
   139 				require_once( dirname( __FILE__ ) . '/bws_functions.php' );
   151 				require_once dirname( __FILE__ ) . '/bws_functions.php';
   140 				require_once( dirname( __FILE__ ) . '/class-bws-settings.php' );
   152 				require_once dirname( __FILE__ ) . '/class-bws-settings.php';
   141 			}
   153 			}
   142 
   154 
   143 			$bstwbsftwppdtplgns_added_menu = true;
   155 			$bstwbsftwppdtplgns_added_menu = true;
   144 		}
   156 		}
   145 	}
   157 	}