PluginProbe ʕ •ᴥ•ʔ
GenerateBlocks / 1.7.1
GenerateBlocks v1.7.1
trunk 1.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 2.0.0 2.0.1 2.0.2 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.3.0
generateblocks / includes / class-settings.php
generateblocks / includes Last commit date
blocks 3 years ago class-do-css.php 3 years ago class-dynamic-content.php 3 years ago class-enqueue-css.php 3 years ago class-legacy-attributes.php 4 years ago class-plugin-update.php 5 years ago class-query-loop.php 3 years ago class-render-blocks.php 3 years ago class-rest.php 3 years ago class-settings.php 4 years ago dashboard.php 3 years ago defaults.php 3 years ago functions.php 3 years ago general.php 3 years ago
class-settings.php
124 lines
1 <?php
2 /**
3 * Our settings page.
4 *
5 * @package GenerateBlocks
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly.
10 }
11
12 /**
13 * Build our settings page.
14 */
15 class GenerateBlocks_Settings {
16 /**
17 * Instance.
18 *
19 * @access private
20 * @var object Instance
21 */
22 private static $instance;
23
24 /**
25 * Initiator.
26 *
27 * @return object initialized object of class.
28 */
29 public static function get_instance() {
30 if ( ! isset( self::$instance ) ) {
31 self::$instance = new self();
32 }
33
34 return self::$instance;
35 }
36
37 /**
38 * Constructor.
39 */
40 public function __construct() {
41 add_action( 'admin_menu', array( $this, 'add_menu' ) );
42 add_action( 'generateblocks_settings_area', array( $this, 'add_settings_container' ) );
43 }
44
45 /**
46 * Add our Dashboard menu item.
47 */
48 public function add_menu() {
49 $settings = add_submenu_page(
50 'generateblocks',
51 __( 'Settings', 'generateblocks' ),
52 __( 'Settings', 'generateblocks' ),
53 'manage_options',
54 'generateblocks-settings',
55 array( $this, 'settings_page' ),
56 1
57 );
58
59 add_action( "admin_print_scripts-$settings", array( $this, 'enqueue_scripts' ) );
60 }
61
62 /**
63 * Enqueue our scripts.
64 */
65 public function enqueue_scripts() {
66 wp_enqueue_script(
67 'generateblocks-settings',
68 GENERATEBLOCKS_DIR_URL . 'dist/dashboard.js',
69 array( 'wp-api', 'wp-i18n', 'wp-components', 'wp-element', 'wp-api-fetch' ),
70 GENERATEBLOCKS_VERSION,
71 true
72 );
73
74 if ( function_exists( 'wp_set_script_translations' ) ) {
75 wp_set_script_translations( 'generateblocks-settings', 'generateblocks' );
76 }
77
78 wp_localize_script(
79 'generateblocks-settings',
80 'generateBlocksSettings',
81 array(
82 'settings' => wp_parse_args(
83 get_option( 'generateblocks', array() ),
84 generateblocks_get_option_defaults()
85 ),
86 'gpContainerWidth' => function_exists( 'generate_get_option' ) ? generate_get_option( 'container_width' ) : false,
87 'gpContainerWidthLink' => function_exists( 'generate_get_option' ) ?
88 add_query_arg(
89 rawurlencode( 'autofocus[control]' ),
90 rawurlencode( 'generate_settings[container_width]' ),
91 wp_customize_url()
92 ) :
93 false,
94 )
95 );
96 }
97
98 /**
99 * Add settings container.
100 *
101 * @since 1.2.0
102 */
103 public function add_settings_container() {
104 echo '<div id="gblocks-block-default-settings"></div>';
105 }
106
107 /**
108 * Output our Dashboard HTML.
109 *
110 * @since 0.1
111 */
112 public function settings_page() {
113 ?>
114 <div class="wrap gblocks-dashboard-wrap">
115 <div class="generateblocks-settings-area">
116 <?php do_action( 'generateblocks_settings_area' ); ?>
117 </div>
118 </div>
119 <?php
120 }
121 }
122
123 GenerateBlocks_Settings::get_instance();
124