PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 3.1.0
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v3.1.0
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 3.5.2 All 199 releases
betterdocs / includes / Admin / Customizer / Customizer.php

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

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