TzOption.php 1.47 KB
<?php
namespace Tz\WordPress\Tools\TzOption;
use Tz\WordPress\Tools;

require_once('wp-admin-menu-classes.php');

const CAPABILITY        = "manage_cbv_options";


    call_user_func(function() {
        $role = get_role('administrator');
        $role->add_cap(CAPABILITY);
        
        Tools\add_actions(__NAMESPACE__ . '\Actions');
        Tools\add_shortcodes(__NAMESPACE__ . '\ShortCodes');
    });
    

function GetOption($key) {
    if ( isset( Vars::$options[$key] ) ) {
        return Vars::$options[$key];
    } else {
        return '';
    }
}

function display_options() {
    require_once(__DIR__ . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'index.php');
}

class Actions {
    public static function init() {
        global $wpdb;
        $results = $wpdb->get_results("SELECT * FROM wp_cbv_options", ARRAY_A);
        foreach($results as $rs) {
            Vars::$options[$rs['option_name']] = $rs['option_value'];
        }
    }
    
    public static function admin_menu() {
        add_menu_page('CBV Options','CBV Options',CAPABILITY,'cbv_options',__NAMESPACE__ . '\display_options',null,6);
        rename_admin_menu_section('Posts','Publications');
        swap_admin_menu_sections('CBV Options','Publications');
    }
}

class ShortCodes {

    public static function TzOption($args, $content, $tag) {
        if (isset($args['key'])) {
            return TzOption\GetOption($args['key']);
        }
    }
    
}

class Vars {
    public static $options = array();
}
?>