File Editor
Directories:
.. (Back)
Files:
class-sinatra-db-updater.php
class-sinatra-enqueue-scripts.php
class-sinatra-fonts.php
class-sinatra-options.php
class-sinatra-theme-setup.php
Create New File
Create
Edit File: class-sinatra-options.php
<?php /** * Sinatra Options Class. * * @package Sinatra * @author Sinatra Team <hello@sinatrawp.com> * @since 1.0.0 */ /** * Do not allow direct script access. */ if ( ! defined( 'ABSPATH' ) ) { exit; } if ( ! class_exists( 'Sinatra_Options' ) ) : /** * Sinatra Options Class. */ class Sinatra_Options { /** * Singleton instance of the class. * * @since 1.0.0 * @var object */ private static $instance; /** * Options variable. * * @since 1.0.0 * @var mixed $options */ private static $options; /** * Main Sinatra_Options Instance. * * @since 1.0.0 * @return Sinatra_Options */ public static function instance() { if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Sinatra_Options ) ) { self::$instance = new self(); } return self::$instance; } /** * Primary class constructor. * * @since 1.0.0 */ public function __construct() { // Refresh options. add_action( 'after_setup_theme', array( $this, 'refresh' ) ); } /** * Set default option values. * * @since 1.0.0 * @return array Default values. */ public function get_defaults() { $defaults = array( /** * General Settings. */ // Layout. 'sinatra_site_layout' => 'fw-contained', 'sinatra_container_width' => 1200, // Base Colors. 'sinatra_accent_color' => '#3857F1', 'sinatra_content_text_color' => '#30373e', 'sinatra_headings_color' => '#23282d', 'sinatra_content_link_hover_color' => '#23282d', 'sinatra_body_background_heading' => true, 'sinatra_content_background_heading' => true, 'sinatra_boxed_content_background_color' => '#FFFFFF', 'sinatra_scroll_top_visibility' => 'all', // Base Typography. 'sinatra_html_base_font_size' => array( 'desktop' => 16, ), 'sinatra_font_smoothing' => true, 'sinatra_typography_body_heading' => false, 'sinatra_typography_headings_heading' => false, 'sinatra_body_font' => sinatra_typography_defaults( array( 'font-family' => 'default', 'font-weight' => 400, 'font-size-desktop' => '0.9375', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.733', ) ), 'sinatra_headings_font' => sinatra_typography_defaults( array( 'font-weight' => 500, 'font-style' => 'normal', 'text-transform' => 'none', 'text-decoration' => 'none', ) ), 'sinatra_h1_font' => sinatra_typography_defaults( array( 'font-weight' => 600, 'font-size-desktop' => '2.375', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.1', ) ), 'sinatra_h2_font' => sinatra_typography_defaults( array( 'font-weight' => 'inherit', 'font-size-desktop' => '1.875', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.25', ) ), 'sinatra_h3_font' => sinatra_typography_defaults( array( 'font-weight' => 'inherit', 'font-size-desktop' => '1.625', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.25', ) ), 'sinatra_h4_font' => sinatra_typography_defaults( array( 'font-weight' => 'inherit', 'font-size-desktop' => '1.25', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.5', ) ), 'sinatra_h5_font' => sinatra_typography_defaults( array( 'font-weight' => 'inherit', 'font-size-desktop' => '1', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.5', ) ), 'sinatra_h6_font' => sinatra_typography_defaults( array( 'font-weight' => 'inherit', 'font-size-desktop' => '0.6875', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.72', 'text-transform' => 'uppercase', 'letter-spacing' => '2', ) ), 'sinatra_heading_em_font' => sinatra_typography_defaults( array( 'font-weight' => 'inherit', 'font-style' => 'italic', ) ), 'sinatra_footer_widget_title_font_size' => array( 'desktop' => 1.125, 'unit' => 'em', ), // Primary Button. 'sinatra_primary_button_heading' => false, 'sinatra_primary_button_bg_color' => '', 'sinatra_primary_button_hover_bg_color' => '', 'sinatra_primary_button_text_color' => '#FFFFFF', 'sinatra_primary_button_hover_text_color' => '#FFFFFF', 'sinatra_primary_button_border_radius' => array( 'top-left' => 2, 'top-right' => 2, 'bottom-right' => 2, 'bottom-left' => 2, 'unit' => 'px', ), 'sinatra_primary_button_border_width' => 1, 'sinatra_primary_button_border_color' => 'rgba(0, 0, 0, 0.12)', 'sinatra_primary_button_hover_border_color' => 'rgba(0, 0, 0, 0.12)', 'sinatra_primary_button_typography' => sinatra_typography_defaults( array( 'font-family' => 'inherit', 'font-weight' => 500, 'font-size-desktop' => '0.9375', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.4', ) ), // Secondary Button. 'sinatra_secondary_button_heading' => false, 'sinatra_secondary_button_bg_color' => '#23282d', 'sinatra_secondary_button_hover_bg_color' => '#3e4750', 'sinatra_secondary_button_text_color' => '#FFFFFF', 'sinatra_secondary_button_hover_text_color' => '#FFFFFF', 'sinatra_secondary_button_border_radius' => array( 'top-left' => 2, 'top-right' => 2, 'bottom-right' => 2, 'bottom-left' => 2, 'unit' => 'px', ), 'sinatra_secondary_button_border_width' => 1, 'sinatra_secondary_button_border_color' => 'rgba(0, 0, 0, 0.12)', 'sinatra_secondary_button_hover_border_color' => 'rgba(0, 0, 0, 0.12)', 'sinatra_secondary_button_typography' => sinatra_typography_defaults( array( 'font-family' => 'inherit', 'font-weight' => 500, 'font-size-desktop' => '0.9375', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.4', ) ), // Text button. 'sinatra_text_button_heading' => false, 'sinatra_text_button_text_color' => '#23282d', 'sinatra_text_button_hover_text_color' => '', 'sinatra_text_button_typography' => sinatra_typography_defaults( array( 'font-family' => 'inherit', 'font-weight' => 500, 'font-size-desktop' => '0.9375', 'font-size-unit' => 'rem', 'line-height-desktop' => '1.4', ) ), // Misc Settings. 'sinatra_enable_schema' => true, 'sinatra_custom_input_style' => true, 'sinatra_preloader_heading' => false, 'sinatra_preloader' => false, 'sinatra_preloader_style' => '1', 'sinatra_preloader_visibility' => 'all', 'sinatra_scroll_top_heading' => false, 'sinatra_enable_scroll_top' => true, /** * Logos & Site Title. */ 'sinatra_logo_default_retina' => '', 'sinatra_logo_max_height' => array( 'desktop' => 30, ), 'sinatra_logo_margin' => array( 'desktop' => array( 'top' => 25, 'right' => 0, 'bottom' => 25, 'left' => 0, ), 'tablet' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'mobile' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'unit' => 'px', ), 'sinatra_display_tagline' => false, 'sinatra_logo_heading_site_identity' => true, 'sinatra_typography_logo_heading' => false, 'sinatra_logo_text_font_size' => array( 'desktop' => 1.875, 'unit' => 'rem', ), /** * Header. */ // Top Bar. 'sinatra_top_bar_enable' => false, 'sinatra_top_bar_container_width' => 'content-width', 'sinatra_top_bar_visibility' => 'hide-mobile-tablet', 'sinatra_top_bar_heading_widgets' => true, 'sinatra_top_bar_widgets' => array( array( 'classname' => 'sinatra_customizer_widget_text', 'type' => 'text', 'values' => array( 'content' => esc_html__( 'This is a placeholder text widget in Top Bar section.', 'sinatra' ), 'location' => 'left', 'visibility' => 'all', ), ), ), 'sinatra_top_bar_widgets_separator' => 'regular', 'sinatra_top_bar_heading_design_options' => false, 'sinatra_top_bar_background' => sinatra_design_options_defaults( array( 'background' => array( 'color' => array( 'background-color' => '#FFFFFF', ), 'gradient' => array(), ), ) ), 'sinatra_top_bar_text_color' => sinatra_design_options_defaults( array( 'color' => array(), ) ), 'sinatra_top_bar_border' => sinatra_design_options_defaults( array( 'border' => array( 'border-bottom-width' => '1', 'border-style' => 'solid', 'border-color' => 'rgba(0,0,0, .085)', 'separator-color' => '#cccccc', ), ) ), // Main Header. 'sinatra_header_layout' => 'layout-1', 'sinatra_header_container_width' => 'content-width', 'sinatra_header_heading_widgets' => true, 'sinatra_header_widgets' => array( array( 'classname' => 'sinatra_customizer_widget_search', 'type' => 'search', 'values' => array( 'location' => 'left', 'visibility' => 'hide-mobile-tablet', ), ), ), 'sinatra_header_widgets_separator' => 'none', 'sinatra_header_heading_design_options' => false, 'sinatra_header_background' => sinatra_design_options_defaults( array( 'background' => array( 'color' => array( 'background-color' => '#FFFFFF', ), 'gradient' => array(), 'image' => array(), ), ) ), 'sinatra_header_border' => sinatra_design_options_defaults( array( 'border' => array( 'border-bottom-width' => 1, 'border-color' => 'rgba(0,0,0, .085)', 'separator-color' => '#cccccc', ), ) ), 'sinatra_header_text_color' => sinatra_design_options_defaults( array( 'color' => array( 'text-color' => '#66717f', 'link-color' => '#23282d', ), ) ), // Transparent Header. 'sinatra_tsp_header' => false, 'sinatra_tsp_header_disable_on' => array( '404', 'posts_page', 'archive', 'search', ), 'sinatra_tsp_logo_heading' => false, 'sinatra_tsp_logo' => '', 'sinatra_tsp_logo_retina' => '', 'sinatra_tsp_logo_max_height' => array( 'desktop' => 30, ), 'sinatra_tsp_logo_margin' => array( 'desktop' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'tablet' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'mobile' => array( 'top' => '', 'right' => '', 'bottom' => '', 'left' => '', ), 'unit' => 'px', ), 'sinatra_tsp_colors_heading' => false, 'sinatra_tsp_header_background' => sinatra_design_options_defaults( array( 'background' => array( 'color' => array(), ), ) ), 'sinatra_tsp_header_font_color' => sinatra_design_options_defaults( array( 'color' => array(), ) ), 'sinatra_tsp_header_border' => sinatra_design_options_defaults( array( 'border' => array(), ) ), // Sticky Header. 'sinatra_sticky_header' => false, 'sinatra_sticky_header_hide_on' => array( '' ), // Main Navigation. 'sinatra_main_nav_heading_animation' => false, 'sinatra_main_nav_hover_animation' => 'underline', 'sinatra_main_nav_heading_sub_menus' => false, 'sinatra_main_nav_sub_indicators' => true, 'sinatra_main_nav_heading_mobile_menu' => false, 'sinatra_main_nav_mobile_breakpoint' => 960, 'sinatra_main_nav_mobile_label' => '', 'sinatra_nav_design_options' => false, 'sinatra_main_nav_background' => sinatra_design_options_defaults( array( 'background' => array( 'color' => array( 'background-color' => '#FFFFFF', ), 'gradient' => array(), ), ) ), 'sinatra_main_nav_border' => sinatra_design_options_defaults( array( 'border' => array( 'border-top-width' => 1, 'border-bottom-width' => 1, 'border-style' => 'solid', 'border-color' => 'rgba(0,0,0, .085)', ), ) ), 'sinatra_main_nav_font_color' => sinatra_design_options_defaults( array( 'color' => array(), ) ), 'sinatra_typography_main_nav_heading' => false, 'sinatra_main_nav_font_size' => array( 'value' => 0.9375, 'unit' => 'rem', ), // Page Header. 'sinatra_page_header_enable' => true, 'sinatra_page_header_alignment' => 'left', 'sinatra_page_header_spacing' => array( 'desktop' => array( 'top' => 30, 'bottom' => 30, ), 'tablet' => array( 'top' => '', 'bottom' => '', ), 'mobile' => array( 'top' => '', 'bottom' => '', ), 'unit' => 'px', ), 'sinatra_page_header_background' => sinatra_design_options_defaults( array( 'background' => array( 'color' => array( 'background-color' => 'rgba(0,0,0,.025)' ), 'gradient' => array(), 'image' => array(), ), ) ), 'sinatra_page_header_text_color' => sinatra_design_options_defaults( array( 'color' => array(), ) ), 'sinatra_page_header_border' => sinatra_design_options_defaults( array( 'border' => array( 'border-bottom-width' => 1, 'border-style' => 'solid', 'border-color' => 'rgba(0,0,0,.062)', ), ) ), 'sinatra_typography_page_header' => false, 'sinatra_page_header_font_size' => array( 'desktop' => 1.625, 'unit' => 'rem', ), // Breadcrumbs. 'sinatra_breadcrumbs_enable' => true, 'sinatra_breadcrumbs_hide_on' => array( 'home' ), 'sinatra_breadcrumbs_position' => 'in-page-header', 'sinatra_breadcrumbs_alignment' => 'left', 'sinatra_breadcrumbs_spacing' => array( 'desktop' => array( 'top' => 15, 'bottom' => 15, ), 'tablet' => array( 'top' => '', 'bottom' => '', ), 'mobile' => array( 'top' => '', 'bottom' => '', ), 'unit' => 'px', ), 'sinatra_breadcrumbs_heading_design' => false, 'sinatra_breadcrumbs_background' => sinatra_design_options_defaults( array( 'background' => array( 'color' => array(), 'gradient' => array(), 'image' => array(), ), ) ), 'sinatra_breadcrumbs_text_color' => sinatra_design_options_defaults( array( 'color' => array(), ) ), 'sinatra_breadcrumbs_border' => sinatra_design_options_defaults( array( 'border' => array( 'border-top-width' => 0, 'border-bottom-width' => 0, 'border-color' => '', 'border-style' => 'solid', ), ) ), /** * Hero. */ 'sinatra_enable_hero' => false, 'sinatra_hero_type' => 'hover-slider', 'sinatra_hero_visibility' => 'all', 'sinatra_hero_enable_on' => array( 'home' ), 'sinatra_hero_hover_slider' => false, 'sinatra_hero_hover_slider_container' => 'content-width', 'sinatra_hero_hover_slider_height' => 500, 'sinatra_hero_hover_slider_overlay' => '1', 'sinatra_hero_hover_slider_elements' => array( 'category' => true, 'meta' => true, 'read_more' => true, ), 'sinatra_hero_hover_slider_posts' => false, 'sinatra_hero_hover_slider_post_number' => 3, 'sinatra_hero_hover_slider_category' => array(), /** * Blog. */ // Blog Page / Archive. 'sinatra_blog_entry_elements' => array( 'thumbnail' => true, 'header' => true, 'meta' => true, 'summary' => true, 'summary-footer' => true, ), 'sinatra_blog_entry_meta_elements' => array( 'author' => true, 'date' => true, 'category' => true, 'tag' => false, 'comments' => true, ), 'sinatra_entry_meta_icons' => false, 'sinatra_excerpt_length' => 30, 'sinatra_excerpt_more' => '…', 'sinatra_blog_layout' => 'blog-layout-1', 'sinatra_blog_image_position' => 'left', 'sinatra_blog_image_size' => 'large', 'sinatra_blog_horizontal_post_categories' => true, 'sinatra_blog_horizontal_read_more' => false, // Single Post. 'sinatra_single_post_layout_heading' => false, 'sinatra_single_title_position' => 'in-content', 'sinatra_single_title_alignment' => 'left', 'sinatra_single_title_spacing' => array( 'desktop' => array( 'top' => 152, 'bottom' => 100, ), 'tablet' => array( 'top' => 90, 'bottom' => 55, ), 'mobile' => array( 'top' => '', 'bottom' => '', ), 'unit' => 'px', ), 'sinatra_single_content_width' => 'narrow', 'sinatra_single_narrow_container_width' => 700, 'sinatra_single_post_elements_heading' => false, 'sinatra_single_post_meta_elements' => array( 'author' => true, 'date' => true, 'comments' => true, 'category' => false, ), 'sinatra_single_post_thumb' => true, 'sinatra_single_post_categories' => true, 'sinatra_single_post_tags' => true, 'sinatra_single_last_updated' => true, 'sinatra_single_about_author' => true, 'sinatra_single_post_next_prev' => true, 'sinatra_single_post_elements' => array( 'thumb' => true, 'category' => true, 'tags' => true, 'last-updated' => true, 'about-author' => true, 'prev-next-post' => true, ), 'sinatra_single_toggle_comments' => false, 'sinatra_single_entry_meta_icons' => false, 'sinatra_typography_single_post_heading' => false, 'sinatra_single_content_font_size' => array( 'desktop' => '1', 'unit' => 'rem', ), /** * Sidebar. */ 'sinatra_sidebar_position' => 'right-sidebar', 'sinatra_single_post_sidebar_position' => 'no-sidebar', 'sinatra_single_page_sidebar_position' => 'default', 'sinatra_archive_sidebar_position' => 'default', 'sinatra_sidebar_options_heading' => false, 'sinatra_sidebar_style' => '1', 'sinatra_sidebar_width' => 25, 'sinatra_sidebar_sticky' => '', 'sinatra_sidebar_responsive_position' => 'after-content', 'sinatra_typography_sidebar_heading' => false, 'sinatra_sidebar_widget_title_font_size' => array( 'desktop' => 1, 'unit' => 'rem', ), /** * Footer. */ // Pre Footer. 'sinatra_pre_footer_cta' => true, 'sinatra_enable_pre_footer_cta' => false, 'sinatra_pre_footer_cta_visibility' => 'all', 'sinatra_pre_footer_cta_hide_on' => array(), 'sinatra_pre_footer_cta_style' => '1', 'sinatra_pre_footer_cta_text' => wp_kses_post( __( 'This is an example of <em>Pre Footer</em> section in Sinatra.', 'sinatra' ) ), 'sinatra_pre_footer_cta_btn_text' => wp_kses_post( __( 'Example Button', 'sinatra' ) ), 'sinatra_pre_footer_cta_btn_url' => '#', 'sinatra_pre_footer_cta_btn_new_tab' => false, 'sinatra_pre_footer_cta_design_options' => false, 'sinatra_pre_footer_cta_background' => sinatra_design_options_defaults( array( 'background' => array( 'color' => array(), 'gradient' => array(), 'image' => array(), ), ) ), 'sinatra_pre_footer_cta_border' => sinatra_design_options_defaults( array( 'border' => array(), ) ), 'sinatra_pre_footer_cta_text_color' => sinatra_design_options_defaults( array( 'color' => array( 'text-color' => '#FFFFFF', ), ) ), 'sinatra_pre_footer_cta_typography' => false, 'sinatra_pre_footer_cta_font_size' => array( 'desktop' => 1.75, 'unit' => 'rem', ), // Copyright. 'sinatra_enable_copyright' => true, 'sinatra_copyright_layout' => 'layout-1', 'sinatra_copyright_separator' => 'contained-separator', 'sinatra_copyright_visibility' => 'all', 'sinatra_copyright_heading_widgets' => true, 'sinatra_copyright_widgets' => array( array( 'classname' => 'sinatra_customizer_widget_text', 'type' => 'text', 'values' => array( 'content' => esc_html__( 'Copyright {{the_year}} — {{site_title}}. All rights reserved. {{theme_link}}', 'sinatra' ), 'location' => 'start', 'visibility' => 'all', ), ), ), 'sinatra_copyright_heading_design_options' => false, 'sinatra_copyright_background' => sinatra_design_options_defaults( array( 'background' => array( 'color' => array(), 'gradient' => array(), ), ) ), 'sinatra_copyright_text_color' => sinatra_design_options_defaults( array( 'color' => array( 'text-color' => '', 'link-color' => '', 'link-hover-color' => '#FFFFFF', ), ) ), // Main Footer. 'sinatra_enable_footer' => true, 'sinatra_footer_layout' => 'layout-1', 'sinatra_footer_widgets_align_center' => false, 'sinatra_footer_visibility' => 'all', 'sinatra_footer_heading_design_options' => false, 'sinatra_footer_background' => sinatra_design_options_defaults( array( 'background' => array( 'color' => array( 'background-color' => '#23282d', ), 'gradient' => array(), 'image' => array(), ), ) ), 'sinatra_footer_text_color' => sinatra_design_options_defaults( array( 'color' => array( 'text-color' => '#9BA1A7', 'link-color' => '', 'link-hover-color' => '#FFFFFF', 'widget-title-color' => '#FFFFFF', ), ) ), 'sinatra_footer_border' => sinatra_design_options_defaults( array( 'border' => array(), ) ), 'sinatra_typography_main_footer_heading' => false, ); $defaults = apply_filters( 'sinatra_default_option_values', $defaults ); return $defaults; } /** * Get the options from static array() * * @since 1.0.0 * @return array Return array of theme options. */ public function get_options() { return self::$options; } /** * Get the options from static array() * * @since 1.0.0 * @return array Return array of theme options. */ public function get( $id ) { $value = isset( self::$options[ $id ] ) ? self::$options[ $id ] : self::get_default( $id ); $value = apply_filters( "theme_mod_{$id}", $value ); // phpcs:ignore return $value; } /** * Set option. * * @since 1.0.0 */ public function set( $id, $value ) { set_theme_mod( $id, $value ); self::$options[ $id ] = $value; } /** * Refresh options. * * @since 1.0.0 * @return void */ public function refresh() { self::$options = wp_parse_args( get_theme_mods(), self::get_defaults() ); } /** * Returns the default value for option. * * @since 1.0.0 * @param string $id Option ID. * @return mixed Default option value. */ public function get_default( $id ) { $defaults = self::get_defaults(); return isset( $defaults[ $id ] ) ? $defaults[ $id ] : false; } } endif;
Save Changes
Rename File
Rename