PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 2.0.5
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v2.0.5
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 / elementor / widgets / betterdocs-elementor-breadcrumbs.php

betterdocs-elementor-breadcrumbs.php in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 2.0.5, at includes/elementor/widgets/betterdocs-elementor-breadcrumbs.php

174 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 use Elementor\Controls_Manager;
4 use Elementor\Group_Control_Typography;
5 use Elementor\Widget_Base;
6
7 if (!defined('ABSPATH')) {
8 exit; // Exit if accessed directly
9 }
10
11 class BetterDocs_Elementor_Breadcrumbs extends Widget_Base
12 {
13
14 public function get_name()
15 {
16 return 'betterdocs-breadcrumb';
17 }
18
19 public function get_title()
20 {
21 return __('Doc Breadcrumbs', 'betterdocs');
22 }
23
24 public function get_icon()
25 {
26 return 'betterdocs-icon-Breadcrumbs';
27 }
28
29 public function get_keywords()
30 {
31 return ['betterdocs-elements', 'breadcrumbs', 'internal links', 'docs', 'betterdocs'];
32 }
33
34 public function get_custom_help_url()
35 {
36 return 'https://betterdocs.co/docs/single-doc-in-elementor';
37 }
38
39 public function get_categories()
40 {
41 return ['betterdocs-elements', 'betterdocs-elements-single', 'docs-archive'];
42 }
43
44 protected function _register_controls()
45 {
46
47 $this->start_controls_section(
48 'section_betterdocs_breadcrumbs_style',
49 [
50 'label' => __('Style', 'betterdocs'),
51 'tab' => Controls_Manager::TAB_STYLE,
52 ]
53 );
54
55 $this->add_control(
56 'link_color',
57 [
58 'label' => __('Text Color', 'betterdocs'),
59 'type' => Controls_Manager::COLOR,
60 'selectors' => [
61 '{{WRAPPER}} .betterdocs-breadcrumb .betterdocs-breadcrumb-item > a' => 'color: {{VALUE}}',
62 ],
63 ]
64 );
65
66 $this->add_group_control(
67 Group_Control_Typography::get_type(),
68 [
69 'name' => 'text_typography',
70 'selector' => '{{WRAPPER}} .betterdocs-breadcrumb .betterdocs-breadcrumb-item a,{{WRAPPER}} .betterdocs-breadcrumb .betterdocs-breadcrumb-item span',
71 ]
72 );
73
74 $this->add_responsive_control(
75 'alignment',
76 [
77 'label' => __('Alignment', 'betterdocs'),
78 'type' => Controls_Manager::CHOOSE,
79 'options' => [
80 'flex-start' => [
81 'title' => __('Left', 'betterdocs'),
82 'icon' => 'eicon-text-align-left',
83 ],
84 'center' => [
85 'title' => __('Center', 'betterdocs'),
86 'icon' => 'eicon-text-align-center',
87 ],
88 'flex-end' => [
89 'title' => __('Right', 'betterdocs'),
90 'icon' => 'eicon-text-align-right',
91 ],
92 ],
93 'selectors' => [
94 '{{WRAPPER}} .betterdocs-breadcrumb .betterdocs-breadcrumb-list' => 'justify-content: {{VALUE}}',
95 ],
96 ]
97 );
98
99 $this->end_controls_section();
100
101
102 $this->icon_style();
103 }
104
105 public function icon_style()
106 {
107 /**
108 * ----------------------------------------------------------
109 * Section: Icon Style
110 * ----------------------------------------------------------
111 */
112 $this->start_controls_section(
113 'section_article_settings',
114 [
115 'label' => __('Icon', 'betterdocs'),
116 'tab' => Controls_Manager::TAB_STYLE
117 ]
118 );
119
120
121 $this->add_control(
122 'breadcrumbs_icon_color',
123 [
124 'label' => esc_html__('Color', 'betterdocs'),
125 'type' => Controls_Manager::COLOR,
126 'selectors' => [
127 '{{WRAPPER}} .betterdocs-breadcrumb .breadcrumb-delimiter' => 'color: {{VALUE}};',
128 ],
129 ]
130 );
131
132
133 $this->add_responsive_control(
134 'breadcrumbs_icon_size',
135 [
136 'label' => __('Size', 'betterdocs'),
137 'type' => Controls_Manager::SLIDER,
138 'size_units' => ['px', '%', 'em'],
139 'range' => [
140 '%' => [
141 'max' => 100,
142 'step' => 1,
143 ],
144 ],
145 'selectors' => [
146 '{{WRAPPER}} .betterdocs-breadcrumb .breadcrumb-delimiter .breadcrumb-delimiter-icon' => 'width: {{SIZE}}{{UNIT}};height: {{SIZE}}{{UNIT}};'
147 ],
148 ]
149 );
150
151 $this->end_controls_section(); # end of 'Column Settings'
152 }
153
154 protected function render()
155 {
156 global $wp_query;
157 if ($wp_query->query === NULL || (isset($wp_query->query['post_type']) && $wp_query->query['post_type'] === 'post')) {
158 $delimiter = '<span class="icon-container"><svg class="breadcrumb-delimiter-icon svg-inline--fa fa-angle-right fa-w-8" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-right" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span>';
159 echo '<nav class="betterdocs-breadcrumb">
160 <ul class="betterdocs-breadcrumb-list">
161 <li class="betterdocs-breadcrumb-item item-home"><a class="bread-link bread-home" href="#">Home</a></li>
162 <li class="betterdocs-breadcrumb-item breadcrumb-delimiter">' . $delimiter . '</li>
163 <li class="betterdocs-breadcrumb-item item-home"><a class="bread-link bread-home" href="#">Docs</a></li>
164 </ul>
165 </nav>';
166 } else {
167 betterdocs_breadcrumbs();
168 }
169 }
170
171 public function render_plain_content()
172 { }
173 }
174