vk-all-in-one-expansion-unit
Last commit date
_scss
10 years ago
bootstrap
10 years ago
css
10 years ago
images
10 years ago
js
10 years ago
languages
10 years ago
plugins
10 years ago
plugins_admin
10 years ago
.gitignore
10 years ago
README.md
10 years ago
admin_wrapper.php
10 years ago
common_helpers.php
10 years ago
common_init.php
10 years ago
config.rb
10 years ago
gulpfile.js
10 years ago
package_manager.php
10 years ago
packages.php
10 years ago
readme.txt
10 years ago
screenshot-1.png
10 years ago
screenshot-2.png
10 years ago
uninstaller.php
10 years ago
vkExUnit.php
10 years ago
vkExUnit_admin.php
10 years ago
package_manager.php
82 lines
| 1 | <?php |
| 2 | /** |
| 3 | * VkExUnit package_manager.php |
| 4 | * |
| 5 | * @package VkExUnit |
| 6 | * @author shoji imamura<imamura@vektor-inc.co.jp> |
| 7 | * @since 6/Aug/2015 |
| 8 | */ |
| 9 | |
| 10 | vkExUnit_package_initilate(); |
| 11 | |
| 12 | |
| 13 | function vkExUnit_package_initilate() { |
| 14 | global $vkExUnit_packages; |
| 15 | if ( ! is_array( $vkExUnit_packages ) ) { $vkExUnit_packages = array(); } |
| 16 | } |
| 17 | |
| 18 | |
| 19 | function vkExUnit_package_is_enable( $package_name ) { |
| 20 | global $vkExUnit_packages; |
| 21 | if ( ! isset( $vkExUnit_packages[ $package_name ] ) ) { return null; } |
| 22 | $options = vkExUnit_get_common_options(); |
| 23 | if ( ! isset( $options[ 'active_'.$package_name ] ) ) { return $vkExUnit_packages[ $package_name ]['default']; } |
| 24 | return $options[ 'active_'.$package_name ]; |
| 25 | } |
| 26 | |
| 27 | |
| 28 | function vkExUnit_package_register( $args ) { |
| 29 | $defaults = vkExUnit_package_default(); |
| 30 | $args = wp_parse_args( $args, $defaults ); |
| 31 | |
| 32 | global $vkExUnit_packages; |
| 33 | $vkExUnit_packages[ $args['name'] ] = $args; |
| 34 | } |
| 35 | |
| 36 | |
| 37 | function vkExUnit_package_include() { |
| 38 | global $vkExUnit_packages; |
| 39 | if ( ! count( $vkExUnit_packages ) || ! is_array( $vkExUnit_packages ) ) { return $output; } |
| 40 | $options = vkExUnit_get_common_options(); |
| 41 | $include_base = vkExUnit_get_directory().'/plugins/'; |
| 42 | foreach ( $vkExUnit_packages as $package ) { |
| 43 | if ( |
| 44 | $package['include'] and |
| 45 | ( |
| 46 | ( isset( $options[ 'active_' . $package['name'] ] ) and $options[ 'active_' . $package['name'] ] ) or |
| 47 | ( ! isset( $options[ 'active_' . $package['name'] ] ) and $package['default'] ) |
| 48 | ) |
| 49 | ) { |
| 50 | require_once $include_base . $package['include']; |
| 51 | } |
| 52 | } |
| 53 | } |
| 54 | |
| 55 | |
| 56 | function vkExUnit_package_default() { |
| 57 | return array( |
| 58 | 'name' => null, |
| 59 | 'title' => 'noting', |
| 60 | 'description' => 'noting', |
| 61 | 'attr' => array(), |
| 62 | 'default' => null, |
| 63 | 'include' => false, |
| 64 | 'hidden' => false, |
| 65 | ); |
| 66 | } |
| 67 | |
| 68 | |
| 69 | add_filter( 'vkExUnit_common_options_validate' , 'vkExUnit_common_package_options_validate', 10, 2 ); |
| 70 | function vkExUnit_common_package_options_validate( $output, $input ) { |
| 71 | global $vkExUnit_packages; |
| 72 | if ( ! count( $vkExUnit_packages ) || ! is_array( $vkExUnit_packages ) ) { return $output; } |
| 73 | foreach ( $vkExUnit_packages as $package ) { |
| 74 | if ( |
| 75 | isset( $output[ 'active_'.$package['name'] ] ) && |
| 76 | $output[ 'active_'.$package['name'] ] == (isset( $input[ 'active_'.$package['name'] ] ) && $input[ 'active_'.$package['name'] ]) ? true : false |
| 77 | ) { continue; } |
| 78 | $output[ 'active_'.$package['name'] ] = (isset( $input[ 'active_'.$package['name'] ] )) ? true : false; |
| 79 | } |
| 80 | return $output; |
| 81 | } |
| 82 |