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
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
11 years ago
gulpfile.js
10 years ago
readme.txt
10 years ago
screenshot-1.png
10 years ago
screenshot-2.png
10 years ago
vkExUnit.php
10 years ago
vkExUnit_admin.php
10 years ago
admin_wrapper.php
126 lines
| 1 | <?php |
| 2 | |
| 3 | function vkExUnit_add_main_setting() { |
| 4 | $capability_required = add_filter( 'vkExUnit_ga_page_capability', vkExUnit_get_capability_required() ); |
| 5 | $custom_page = add_submenu_page( |
| 6 | 'vkExUnit_setting_page', // parent |
| 7 | __('Main setting','vkExUnit'), // Name of page |
| 8 | __('Main setting','vkExUnit'), // Label in menu |
| 9 | // $capability_required, |
| 10 | 'activate_plugins', // Capability |
| 11 | 'vkExUnit_main_setting', // ユニークなこのサブメニューページの識別子 |
| 12 | 'vkExUnit_render_main_config' // メニューページのコンテンツを出力する関数 |
| 13 | ); |
| 14 | if ( ! $custom_page ) return; |
| 15 | } |
| 16 | add_action( 'admin_menu', 'vkExUnit_add_main_setting' ); |
| 17 | |
| 18 | |
| 19 | |
| 20 | function vkExUnit_render_main_config(){ |
| 21 | |
| 22 | vkExUnit_save_main_config(); |
| 23 | ?> |
| 24 | <div class="wrap vkExUnit_admin_page"> |
| 25 | <div class="adminMain"> |
| 26 | <form method="post" action=""> |
| 27 | |
| 28 | <?php |
| 29 | wp_nonce_field( 'standing_on_the_shoulder_of_giants', '_nonce_vkExUnit' ); |
| 30 | |
| 31 | global $vkExUnit_options; |
| 32 | if( is_array($vkExUnit_options) ): |
| 33 | foreach($vkExUnit_options as $vkoption){ |
| 34 | if(!isset($vkoption['render_page'])){ continue; } |
| 35 | |
| 36 | echo '<section id="'. $vkoption['option_name'] .'" class="sectionBox">'; |
| 37 | |
| 38 | vkExUnit_render_menu($vkExUnit_options, $vkoption['tab_label']); |
| 39 | |
| 40 | if( is_array($vkoption['render_page'])){ |
| 41 | $vkoption['render_page'][0]->$vkoption['render_page'][1](); |
| 42 | }else{ |
| 43 | $vkoption['render_page'](); |
| 44 | } |
| 45 | echo '</section>'; |
| 46 | } |
| 47 | ?> |
| 48 | |
| 49 | <?php submit_button(); ?> |
| 50 | <?php else: |
| 51 | |
| 52 | _e('Activated Packages is noting. please activate some package.', 'vkExUnit'); |
| 53 | |
| 54 | endif; ?> |
| 55 | </form> |
| 56 | </div><!-- [ /.adminMain ] --> |
| 57 | <div class="adminSub"> |
| 58 | <div class="exUnit_infoBox"><?php vkExUnit_news_body(); ?></div> |
| 59 | </div><!-- [ /.adminSub ] --> |
| 60 | </div> |
| 61 | <?php |
| 62 | } |
| 63 | |
| 64 | |
| 65 | |
| 66 | function vkExUnit_register_setting( $tab_label="tab_label", $option_name, $sanitize_callback, $render_page ){ |
| 67 | global $vkExUnit_options; |
| 68 | $vkExUnit_options[] = |
| 69 | array( |
| 70 | 'option_name'=>$option_name, |
| 71 | 'callback'=>$sanitize_callback, |
| 72 | 'tab_label'=>$tab_label, |
| 73 | 'render_page'=>$render_page |
| 74 | ); |
| 75 | } |
| 76 | |
| 77 | |
| 78 | function vkExUnit_main_config_sanitaize($post){ |
| 79 | global $vkExUnit_options; |
| 80 | |
| 81 | if(!empty($vkExUnit_options)){ |
| 82 | foreach($vkExUnit_options as $opt){ |
| 83 | |
| 84 | if( is_array( $opt['callback'] ) ){ |
| 85 | |
| 86 | $before = (isset($post[$opt['option_name']])? $post[$opt['option_name']]: null); |
| 87 | $option = $opt['callback'][0]->$opt['callback'][1]($before); |
| 88 | |
| 89 | }elseif( function_exists( $opt['callback'] ) ){ |
| 90 | |
| 91 | $before = (isset($post[$opt['option_name']])? $post[$opt['option_name']]: null); |
| 92 | $option = $opt['callback']($before); |
| 93 | |
| 94 | }else { continue; } |
| 95 | |
| 96 | update_option($opt['option_name'], $option); |
| 97 | } |
| 98 | } |
| 99 | } |
| 100 | |
| 101 | |
| 102 | function vkExUnit_save_main_config(){ |
| 103 | |
| 104 | // nonce |
| 105 | if(!isset($_POST['_nonce_vkExUnit'])){ |
| 106 | return ; |
| 107 | } |
| 108 | if(!wp_verify_nonce($_POST['_nonce_vkExUnit'], 'standing_on_the_shoulder_of_giants')){ |
| 109 | return ; |
| 110 | } |
| 111 | |
| 112 | vkExUnit_main_config_sanitaize($_POST); |
| 113 | } |
| 114 | |
| 115 | function vkExUnit_render_menu( $sections, $current_tab=null ){ |
| 116 | echo '<div class="optionNav"><ul>'; |
| 117 | foreach($sections as $section){ |
| 118 | $tab_class = ( $section['tab_label'] == $current_tab )? 'current' : ''; |
| 119 | |
| 120 | echo '<li id="btn_"'. $section['option_name']. '" class="'.$tab_class.'"><a href="#'. $section['option_name'] .'">'; |
| 121 | echo $section['tab_label']; |
| 122 | echo '</a></li>'; |
| 123 | } |
| 124 | echo "</ul></div>"; |
| 125 | } |
| 126 |