PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 3.8.9
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v3.8.9
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
← All changes | includes/Shortcodes/FaqList.php +79 -77 3.5.03.8.9 View file →
@@ -4,98 +4,100 @@
4 4
5 5 use WPDeveloper\BetterDocs\Core\Shortcode;
6 6
7 7 class FaqList extends Shortcode {
8 - protected $layout = 'modern';
9 - protected $icon_hook = 'betterdocs_faq_post_after';
8 + protected $layout = 'modern';
9 + protected $icon_hook = 'betterdocs_faq_post_after';
10 10
11 - public $icon_position = 'after';
11 + public $icon_position = 'after';
12 12
13 - public function get_name() {
14 - return 'betterdocs_faq_list_modern';
15 - }
13 + public function get_name() {
14 + return 'betterdocs_faq_list_modern';
15 + }
16 16
17 - public function get_style_depends() {
18 - return ['betterdocs-faq'];
19 - }
17 + public function get_style_depends() {
18 + return [ 'betterdocs-faq' ];
19 + }
20 20
21 - public function get_script_depends() {
22 - return ['betterdocs-faq'];
23 - }
21 + public function get_script_depends() {
22 + return [ 'betterdocs-faq' ];
23 + }
24 24
25 - protected $map_view_vars = [
26 - 'class' => 'faq_heading_class'
27 - ];
25 + protected $map_view_vars = [
26 + 'class' => 'faq_heading_class'
27 + ];
28 28
29 - /**
30 - * Summary of default_attributes
31 - * @return array
32 - */
33 - public function default_attributes() {
34 - return [
35 - 'groups' => '',
36 - 'class' => '',
37 - 'group_exclude' => '',
38 - 'faq_heading' => __( 'Frequently Asked Questions', 'betterdocs' ),
39 - 'faq_schema' => false,
40 - 'faq_layout' => 'layout-1',
41 - 'faq_section_title_color' => null,
42 - 'include_faq_group' => '',
43 - 'exclude_faq_group' => '',
44 - 'faq_group_title_color' => null,
45 - 'faq_group_title_hover_color' => null,
46 - 'faq_list_color' => null,
47 - 'faq_content_color' => null,
48 - 'faq_icon_color' => null,
49 - 'faq_group_title_typography' => null,
50 - 'faq_per_page' => 9,
51 - 'show_button_icon' => true,
52 - 'button_icon_position' => 'after',
53 - 'button_color' => '#528ffe',
54 - 'is_gutenberg' => false
55 - ];
56 - }
29 + /**
30 + * Summary of default_attributes
31 + * @return array
32 + */
33 + public function default_attributes() {
34 + return [
35 + 'groups' => '',
36 + 'class' => '',
37 + 'group_exclude' => '',
38 + 'faq_heading' => __( 'Frequently Asked Questions', 'betterdocs' ),
39 + 'faq_schema' => false,
40 + 'faq_layout' => 'layout-1',
41 + 'faq_section_title_color' => null,
42 + 'include_faq_group' => '',
43 + 'exclude_faq_group' => '',
44 + 'faq_group_title_color' => null,
45 + 'faq_group_title_hover_color' => null,
46 + 'faq_list_color' => null,
47 + 'faq_content_color' => null,
48 + 'faq_icon_color' => null,
49 + 'faq_group_title_typography' => null,
50 + 'faq_per_page' => 9,
51 + 'show_button_icon' => true,
52 + 'button_icon_position' => 'after',
53 + 'button_color' => '#528ffe',
54 + 'is_gutenberg' => false
55 + ];
56 + }
57 57
58 - public function icons() {
59 - $faq_markup = '<svg class="betterdocs-faq-iconminus" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2"><g fill="none" stroke="' . esc_attr( $this->attributes['button_color'] ) . '" stroke-linecap="round" stroke-miterlimit="10" stroke-linejoin="round"><path d="M17 12H7"></path><circle cx="12" cy="12" r="11"></circle></g></svg>';
60 - $faq_markup .= '<svg class="betterdocs-faq-iconplus" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g stroke-width="2" fill="none" stroke="' . esc_attr( $this->attributes['button_color'] ) . '" stroke-linecap="square" stroke-miterlimit="10"><path d="M12 7v10M17 12H7"></path><circle cx="12" cy="12" r="11"></circle></g></svg>';
58 + public function icons( $faq_toggle ) {
59 + $faq_markup = '<svg class="betterdocs-faq-iconminus" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"' .($faq_toggle ? " style='display:inline;'" : ""). 'stroke-width="2"><g fill="none" stroke="' . esc_attr( $this->attributes['button_color'] ) . '" stroke-linecap="round" stroke-miterlimit="10" stroke-linejoin="round"><path d="M17 12H7"></path><circle cx="12" cy="12" r="11"></circle></g></svg>';
60 + $faq_markup .= '<svg class="betterdocs-faq-iconplus" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"'.($faq_toggle ? " style='display:none;'" : "").'><g stroke-width="2" fill="none" stroke="' . esc_attr( $this->attributes['button_color'] ) . '" stroke-linecap="square" stroke-miterlimit="10"><path d="M12 7v10M17 12H7"></path><circle cx="12" cy="12" r="11"></circle></g></svg>';
61 61
62 - echo $faq_markup;
63 - }
62 + echo $faq_markup; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
63 + }
64 64
65 - public function render( $atts, $content = null ) {
65 + public function render( $atts, $content = null ) {
66 66
67 - $this->icon_position = isset( $this->atts['button_icon_position'] ) ? $this->atts['button_icon_position'] : '';
67 + $this->icon_position = isset( $this->atts['button_icon_position'] ) ? $this->atts['button_icon_position'] : '';
68 68
69 - if ( $this->attributes['is_gutenberg'] && $this->attributes['button_icon_position'] == 'before' && $this->attributes['show_button_icon'] ) {
70 - add_action( 'betterdocs_faq_post_before', [$this, 'icons'] );
71 - } else if ( $this->attributes['is_gutenberg'] && $this->attributes['button_icon_position'] == 'after' && $this->attributes['show_button_icon'] ) {
72 - add_action( 'betterdocs_faq_post_after', [$this, 'icons'] );
73 - } else {
74 - add_action( $this->icon_hook, [$this, 'icons'] );
75 - }
69 + if ( $this->attributes['is_gutenberg'] && $this->attributes['button_icon_position'] == 'before' && $this->attributes['show_button_icon'] ) {
70 + add_action( 'betterdocs_faq_post_before', [ $this, 'icons' ] );
71 + } elseif ( $this->attributes['is_gutenberg'] && $this->attributes['button_icon_position'] == 'after' && $this->attributes['show_button_icon'] ) {
72 + add_action( 'betterdocs_faq_post_after', [ $this, 'icons' ] );
73 + } else {
74 + add_action( $this->icon_hook, [ $this, 'icons' ] );
75 + }
76 76
77 - $this->views( 'shortcodes/faq' );
77 + $this->views( 'shortcodes/faq' );
78 78
79 - remove_action( $this->icon_hook, [$this, 'icons'] );
80 - }
79 + remove_action( $this->icon_hook, [ $this, 'icons' ] );
80 + }
81 81
82 - public function view_params() {
83 - $terms_query = $this->query->faq_terms_query_args( $this->attributes['groups'], $this->attributes['group_exclude'] );
82 + public function view_params() {
83 + $terms_query = $this->query->faq_terms_query_args( $this->attributes['groups'], $this->attributes['group_exclude'] );
84 84
85 - $wrapper_attr = [
86 - 'class' => [
87 - 'betterdocs-faq-wrapper',
88 - 'layout-' . $this->layout,
89 - 'icon-' . $this->attributes['button_icon_position'],
90 - $this->attributes['class']
91 - ]
92 - ];
85 + $wrapper_attr = [
86 + 'class' => [
87 + 'betterdocs-faq-wrapper',
88 + 'layout-' . $this->layout,
89 + 'icon-' . $this->attributes['button_icon_position'],
90 + $this->attributes['class']
91 + ]
92 + ];
93 93
94 - return wp_parse_args( [
95 - 'wrapper_attr' => $wrapper_attr,
96 - 'widget' => $this,
97 - 'layout' => 'list',
98 - 'terms_query_args' => $terms_query
99 - ] );
100 - }
94 + return wp_parse_args(
95 + [
96 + 'wrapper_attr' => $wrapper_attr,
97 + 'widget' => $this,
98 + 'layout' => 'list',
99 + 'terms_query_args' => $terms_query
100 + ]
101 + );
102 + }
101 103 }