| 1 |
<?php |
| 2 |
/** |
| 3 |
* This class responsible for database work |
| 4 |
* using wordpress functionality |
| 5 |
* get_option and update_option. |
| 6 |
*/ |
| 7 |
class BetterDocs_DB { |
| 8 |
/** |
| 9 |
* Get all default settings value. |
| 10 |
* |
| 11 |
* @param string $name |
| 12 |
* @return array |
| 13 |
*/ |
| 14 |
public static function default_settings(){ |
| 15 |
return apply_filters('betterdocs_option_default_settings', array( |
| 16 |
'builtin_doc_page' => 1, |
| 17 |
'docs_slug' => 'docs', |
| 18 |
'doc_page' => '', |
| 19 |
'category_slug' => 'docs-category', |
| 20 |
'tag_slug' => 'docs-tag', |
| 21 |
'disable_root_slug_mkb' => '', |
| 22 |
'live_search' => 1, |
| 23 |
'advance_search' => '', |
| 24 |
'popular_keyword_limit' => 5, |
| 25 |
'search_placeholder' => esc_html__('Search..', 'betterdocs'), |
| 26 |
'search_not_found_text' => esc_html__('Sorry, no docs were found.', 'betterdocs'), |
| 27 |
'search_result_image' => 1, |
| 28 |
'masonry_layout' => 1, |
| 29 |
'alphabetically_order_post' => '', |
| 30 |
'terms_orderby' => 'betterdocs_order', |
| 31 |
'alphabetically_order_term' => '', |
| 32 |
'nested_subcategory' => '', |
| 33 |
'column_number' => 3, |
| 34 |
'posts_number' => 10, |
| 35 |
'post_count' => 1, |
| 36 |
'count_text_singular' => esc_html__('article', 'betterdocs'), |
| 37 |
'count_text' => esc_html__('articles', 'betterdocs'), |
| 38 |
'exploremore_btn' => 1, |
| 39 |
'exploremore_btn_txt' => esc_html__('Explore More', 'betterdocs'), |
| 40 |
'doc_single' => 1, |
| 41 |
'enable_toc' => 1, |
| 42 |
'toc_title' => esc_html__('Table of Contents', 'betterdocs'), |
| 43 |
'toc_hierarchy' => 1, |
| 44 |
'toc_list_number' => 1, |
| 45 |
'toc_dynamic_title' => 0, |
| 46 |
'enable_sticky_toc' => 1, |
| 47 |
'sticky_toc_offset' => 100, |
| 48 |
'collapsible_toc_mobile' => '', |
| 49 |
'enable_post_title' => 1, |
| 50 |
'title_link_ctc' => 1, |
| 51 |
'enable_breadcrumb' => 1, |
| 52 |
'breadcrumb_doc_title' => esc_html__('Docs', 'betterdocs'), |
| 53 |
'breadcrumb_home_text' => esc_html__('Home', 'betterdocs'), |
| 54 |
'breadcrumb_home_url' => get_home_url(), |
| 55 |
'enable_breadcrumb_category' => 1, |
| 56 |
'enable_breadcrumb_title' => 1, |
| 57 |
'enable_sidebar_cat_list' => 1, |
| 58 |
'enable_print_icon' => 1, |
| 59 |
'enable_tags' => 1, |
| 60 |
'email_feedback' => 1, |
| 61 |
'feedback_link_text' => esc_html__('Still stuck? How can we help?', 'betterdocs'), |
| 62 |
'feedback_link' => '', |
| 63 |
'feedback_form_title' => esc_html__('How can we help?', 'betterdocs'), |
| 64 |
'email_address' => get_option('admin_email'), |
| 65 |
'enable_navigation' => 1, |
| 66 |
'show_last_update_time' => 1, |
| 67 |
'enable_comment' => 1, |
| 68 |
'enable_credit' => 1, |
| 69 |
'enable_archive_sidebar' => 1, |
| 70 |
'archive_nested_subcategory' => 1, |
| 71 |
'customizer_link' => '', |
| 72 |
'category_grid' => '[betterdocs_category_grid]', |
| 73 |
'category_box' => '[betterdocs_category_box]', |
| 74 |
'search_form' => '[betterdocs_search_form]', |
| 75 |
'feedback_form' => '[betterdocs_feedback_form]', |
| 76 |
'supported_heading_tag' => array( 1,2,3,4,5,6 ), |
| 77 |
'display_ia_pages' => array('all'), |
| 78 |
'display_ia_archives' => array('all'), |
| 79 |
'display_ia_texonomy' => array('all'), |
| 80 |
'display_ia_single' => array('all'), |
| 81 |
'article_roles' => array('administrator'), |
| 82 |
'settings_roles' => array('administrator'), |
| 83 |
'analytics_roles' => array('administrator'), |
| 84 |
'enable_content_restriction' => '', |
| 85 |
'restrict_template' => array('all'), |
| 86 |
'restrict_category' => array('all'), |
| 87 |
'restrict_kb' => array('all') |
| 88 |
)); |
| 89 |
} |
| 90 |
/** |
| 91 |
* Get all settings value from options table. |
| 92 |
* |
| 93 |
* @param string $name |
| 94 |
* @return array |
| 95 |
*/ |
| 96 |
public static function get_settings( $name = '' ){ |
| 97 |
$settings = get_option( 'betterdocs_settings', true ); |
| 98 |
$default = self::default_settings(); |
| 99 |
if( ! empty( $name ) && isset( $settings[ $name ] ) ) { |
| 100 |
return $settings[ $name ]; |
| 101 |
} |
| 102 |
|
| 103 |
if( ! empty( $name ) && ! isset( $settings[ $name ] ) && isset( $default[ $name ] ) ) { |
| 104 |
return $default[ $name ]; |
| 105 |
} |
| 106 |
|
| 107 |
if( ! empty( $name ) && ! isset( $settings[ $name ] ) && ! isset( $default[ $name ] ) ) { |
| 108 |
return ''; |
| 109 |
} |
| 110 |
|
| 111 |
return is_array( $settings ) ? $settings : []; |
| 112 |
} |
| 113 |
/** |
| 114 |
* Update settings |
| 115 |
* @param array $value |
| 116 |
* @return boolean |
| 117 |
*/ |
| 118 |
public static function update_settings( $value, $key = '' ){ |
| 119 |
if( ! empty( $key ) ) { |
| 120 |
return update_option( $key, $value ); |
| 121 |
} |
| 122 |
return update_option( 'betterdocs_settings', $value ); |
| 123 |
} |
| 124 |
} |