PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 2.5.2
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v2.5.2
4.9.2 4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 All 200 releases
betterdocs / includes / Admin / Customizer / Customizer.php

Customizer.php in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 2.5.2, at includes/Admin/Customizer/Customizer.php

125 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPDeveloper\BetterDocs\Admin\Customizer;
4
5 if ( ! defined( 'ABSPATH' ) ) {
6 exit;
7 }
8
9 use WPDeveloper\BetterDocs\Utils\Base;
10 use WPDeveloper\BetterDocs\Admin\Customizer\Sections\Sidebar;
11 use WPDeveloper\BetterDocs\Admin\Customizer\Sections\DocsPage;
12 use WPDeveloper\BetterDocs\Admin\Customizer\Sections\SingleDoc;
13 use WPDeveloper\BetterDocs\Admin\Customizer\Sections\FaqBuilder;
14 use WPDeveloper\BetterDocs\Admin\Customizer\Sections\LiveSearch;
15 use WPDeveloper\BetterDocs\Admin\Customizer\Sections\ArchivePage;
16
17 class Customizer extends Base {
18 /**
19 * Defaults
20 *
21 * @var Defaults
22 */
23 public $defaults;
24
25 /**
26 * Enqueue
27 *
28 * @var \WPDeveloper\BetterDocs\Utils\Enqueue
29 */
30 private $assets;
31
32 public function __construct( Defaults $defaults ) {
33 $this->defaults = $defaults;
34
35 add_action( 'customize_register', [$this, 'register'] );
36
37 add_action( 'customize_controls_enqueue_scripts', [$this, 'enqueue'] );
38 add_action( 'customize_preview_init', [$this, 'customize_preview_init'] );
39
40 add_action( 'customize_controls_print_styles', [$this, 'controls_print_styles'], 999 );
41 add_action( 'wp_head', [$this, 'dynamic_css'] );
42 }
43
44 /**
45 * Register all customizer options here.
46 * Devided into classes for better readability.
47 *
48 * This methods refers to old customizer.php in admin/customizer
49 * @param mixed $wp_customize
50 * @return void
51 */
52 public function register( $wp_customize ) {
53 $this->assets = betterdocs()->assets;
54 $defaults = $this->defaults->defaults();
55
56 // Create custom panels
57 $wp_customize->add_panel( 'betterdocs_customize_options', [
58 'priority' => 30,
59 'theme_supports' => '',
60 'title' => __( 'BetterDocs', 'betterdocs' ),
61 'description' => __( 'Controls the design settings for the theme.', 'betterdocs' )
62 ] );
63
64 $_settings_sections = apply_filters( 'betterdocs_customizer_settings', [
65 DocsPage::class,
66 SingleDoc::class,
67 Sidebar::class,
68 ArchivePage::class,
69 LiveSearch::class,
70 FaqBuilder::class
71 ] );
72
73 /**
74 * Register All Settings
75 */
76 foreach ( $_settings_sections as $settings ) {
77 betterdocs()->container->get( $settings )->register( $wp_customize, $defaults );
78 }
79 }
80
81 /**
82 * Enqueueing styles and scripts for controls and conditions.
83 *
84 * old functions :
85 * * betterdocs_customizer_styles
86 * * betterdocs_customizer_condition
87 *
88 * @return void
89 */
90 public function enqueue() {
91 betterdocs()->assets->enqueue( 'betterdocs-cutomizer-styles', 'customizer/css/customizer-controls.css' );
92 betterdocs()->assets->enqueue( 'betterdocs-customize-condition', 'customizer/js/customizer-condition.js' );
93 }
94
95 public function customize_preview_init() {
96 betterdocs()->assets->enqueue( 'betterdocs-customizer', 'customizer/js/customizer.js', ['customize-preview'] );
97 }
98
99 public function controls_print_styles() {
100 ob_start();
101 include_once __DIR__ . '/controls.css.php';
102 echo ob_get_clean();
103 }
104
105 /**
106 * Generates dynamic css from customizer options.
107 * @return void
108 */
109 public function dynamic_css() {
110 /**
111 * Don't remove this line, it's used in dynamic.css.php file.
112 */
113 $mods = $this->defaults->theme_mods();
114 require __DIR__ . '/dynamic.css.php';
115
116 ob_start();
117 // echo '<-- betterdocs customizer css -->';
118 echo '<style type="text/css">';
119 echo $css->get_output( true );
120 echo '</style>';
121 // echo '<-- betterdocs customizer css end -->';
122 echo ob_get_clean();
123 }
124 }
125