diff --git a/functions.php b/functions.php index e143591..b8512c1 100644 --- a/functions.php +++ b/functions.php @@ -2,9 +2,9 @@ /** * Theme functionality - * + * * @since 1.0.0 - * + * * @package Trestle */ @@ -18,6 +18,9 @@ require_once dirname( __FILE__ ) . '/includes/functions/theme-functions.php'; // Admin functionality require_once dirname( __FILE__ ) . '/includes/admin/admin.php'; +// Customizer controls +require_once dirname( __FILE__ ) . '/includes/admin/customizer.php'; + // Shortcodes require_once dirname( __FILE__ ) . '/includes/shortcodes/shortcodes.php'; @@ -60,5 +63,4 @@ function trestle_theme_setup() { // Add support for footer widgets if specified in Trestle settings $trestle_footer_widgets_number = esc_attr( genesis_get_option( 'trestle_footer_widgets_number' ) ); add_theme_support( 'genesis-footer-widgets', $trestle_footer_widgets_number ); - } diff --git a/includes/admin/admin.css b/includes/admin/admin.css deleted file mode 100644 index 8a9bf26..0000000 --- a/includes/admin/admin.css +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Trestle admin styles - * - * @since 1.0.0 - * - * @package Trestle - */ - -.trestle-layout img { - margin-right: 10px; - border: 4px solid transparent; - cursor: pointer; -} - -.trestle-layout img:hover { - border-color: #EEE; -} - -.trestle-layout img.checked { - border-color: #CCC; -} - -/* Columns ---------------------------------------------- */ -.five-sixths, -.four-sixths, -.one-fourth, -.one-half, -.one-sixth, -.one-third, -.three-fourths, -.three-sixths, -.two-fourths, -.two-sixths, -.two-thirds, -.footer-widgets .widget-area { - float: left; - margin: 0; - width: 100%; -} - - -/* Media Queries ---------------------------------------------- */ -@media (min-width: 768px) { - - /* Columns - --------------------------------------------- */ - - .five-sixths, - .four-sixths, - .one-fourth, - .one-half, - .one-sixth, - .one-third, - .three-fourths, - .three-sixths, - .two-fourths, - .two-sixths, - .two-thirds, - .footer-widgets .widget-area { - margin-left: 2.564102564102564%; - } - - .one-half, - .three-sixths, - .two-fourths, - .footer-widgets-number-2 .footer-widgets .widget-area { - width: 48.717948717948715%; - } - - .one-third, - .two-sixths, - .sidebar-primary, - .title-area, - .footer-widgets-number-3 .footer-widgets .widget-area { - width: 31.623931623931625%; - } - - .four-sixths, - .two-thirds, - .content { - width: 65.81196581196582%; - } - - .one-fourth, - .footer-widgets-number-4 .footer-widgets .widget-area { - width: 23.076923076923077%; - } - - .three-fourths { - width: 74.35897435897436%; - } - - .one-fifth, - .footer-widgets-number-5 .footer-widgets .widget-area { - width: 17.948717949%; - } - - .one-sixth, - .footer-widgets-number-6 .footer-widgets .widget-area { - width: 14.52991452991453%; - } - - .five-sixths { - width: 82.90598290598291%; - } - - .first, - .footer-widgets .footer-widgets-1 { - clear: both; - margin-left: 0; - } - - /* Lists inside columns (to remove bottom margin as needed at mobile sizes */ - .no-list-margin ul, - .no-list-margin ol { - margin-bottom: 26px; - margin-bottom: 2.6rem; - } - -} \ No newline at end of file diff --git a/includes/admin/admin.js b/includes/admin/admin.js deleted file mode 100644 index c580186..0000000 --- a/includes/admin/admin.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * jQuery that runs in the WordPress admin - * - * @since 1.0.0 - * - * @package Trestle - */ - -// Executes when the document is ready -jQuery(document).ready(function() { - - // Hide Trestle layout radio buttons - jQuery('.trestle-layout img').next('input[type="radio"]').hide(); - - // Add radio button functionality to layout icons - jQuery('.trestle-layout img').click(function() { - jQuery(this).next('input[type="radio"]').attr('checked', true); - jQuery('.trestle-layout img').removeClass('checked'); - jQuery(this).addClass('checked'); - }); - - // Add drop-down functionality for Post Info & Meta options - if( ! jQuery('#genesis-settings\\[trestle_manual_post_info_meta\\]').is(':checked') ) { - jQuery('.trestle-post-info-meta').hide(); - } - - jQuery('#genesis-settings\\[trestle_manual_post_info_meta\\]').change(function() { - jQuery('.trestle-post-info-meta').slideToggle(); - }); - - // Add drop-down functionality for equal height breakpoint - if( ! jQuery('#genesis-settings\\[trestle_equal_height_cols\\]').is(':checked') ) { - jQuery('.trestle-equal-columns-breakpoint').hide(); - } - - jQuery('#genesis-settings\\[trestle_equal_height_cols\\]').change(function() { - jQuery('.trestle-equal-columns-breakpoint').slideToggle(); - }); - -}); /* end of as page load scripts */ diff --git a/includes/admin/admin.php b/includes/admin/admin.php index ae6b9f3..a4a4f76 100644 --- a/includes/admin/admin.php +++ b/includes/admin/admin.php @@ -14,37 +14,28 @@ add_action( 'admin_enqueue_scripts', 'trestle_admin_actions' ); * @since 1.0.0 */ function trestle_admin_actions() { - // Add admin jQuery - wp_enqueue_script( 'trestle-admin-jquery', get_stylesheet_directory_uri() . '/includes/admin/admin.js', array( 'jquery' ), '1.0.0', true ); - // Add admin jQuery - wp_enqueue_style( 'trestle-admin', get_stylesheet_directory_uri() . '/includes/admin/admin.css' ); - - // Add admin CSS - add_editor_style( get_stylesheet_directory_uri() . '/includes/admin/editor-style.css' ); + // Include the main stylesheet in the editor + add_editor_style( get_stylesheet_uri() ); } add_filter( 'genesis_theme_settings_defaults', 'trestle_custom_defaults' ); /** * Sets up Trestle default settings. * - * @since 1.0.0 + * @since 1.0.0 * - * @param array $defaults Genesis default settings. - * @return array Genesis settings updated to include Trestle defaults. + * @param array $defaults Genesis default settings. + * @return array Genesis settings updated to include Trestle defaults. */ function trestle_custom_defaults( $defaults ) { + // Trestle default key/value pairs $trestle_defaults = array( 'trestle_layout' => 'solid', 'trestle_logo_url' => '', 'trestle_logo_url_mobile' => '', 'trestle_nav_primary_location' => 'full', - 'trestle_auto_nav' => 0, - 'trestle_auto_nav_depth' => 0, - 'trestle_include_home_link' => 0, - 'trestle_home_link_text' => __( 'Home', 'trestle' ), - 'trestle_nav_button_text' => '[icon name="icon-list-ul"] ' . __( 'Navigation', 'trestle' ), 'trestle_read_more_text' => __( 'Read More »', 'trestle' ), 'trestle_revisions_number' => 3, 'trestle_footer_widgets_number' => 3, @@ -54,267 +45,26 @@ function trestle_custom_defaults( $defaults ) { $options = get_option( GENESIS_SETTINGS_FIELD ); foreach ( $trestle_defaults as $k => $v ) { + // Add defaults to Genesis default settings array $defaults[$k] = $v; // Update actual options if they don't yet exist - if ( $options && ! array_key_exists( $k, $options ) ) + if ( $options && ! array_key_exists( $k, $options ) ) $options[$k] = $v; } // Update options with defaults update_option( GENESIS_SETTINGS_FIELD, $options ); - + return $defaults; } -add_action( 'genesis_settings_sanitizer_init', 'trestle_register_social_sanitization_filters' ); -/** - * Adds sanitization for various Trestle admin settings. - * - * @since 1.0.0 - */ -function trestle_register_social_sanitization_filters() { - // 1 or 0 - genesis_add_option_filter( - 'one_zero', - GENESIS_SETTINGS_FIELD, - array( - 'trestle_auto_nav', - 'trestle_include_home_link', - 'trestle_custom_nav_extras', - 'trestle_manual_post_info_meta', - 'trestle_equal_height_cols', - 'trestle_external_link_icons', - 'trestle_email_link_icons', - 'trestle_pdf_link_icons', - 'trestle_doc_link_icons', - ) - ); - - // Integer - genesis_add_option_filter( - 'absint', - GENESIS_SETTINGS_FIELD, - array( - 'trestle_auto_nav_depth', - 'trestle_revisions_number', - 'trestle_footer_widgets_number', - ) - ); - - // No HTML - genesis_add_option_filter( - 'no_html', - GENESIS_SETTINGS_FIELD, - array( - 'trestle_layout', - 'trestle_nav_primary_location' - ) - ); - - // Safe HTML - genesis_add_option_filter( - 'safe_html', - GENESIS_SETTINGS_FIELD, - array( - 'trestle_logo_url', - 'trestle_logo_url_mobile', - 'trestle_home_link_text', - 'trestle_nav_button_text', - 'trestle_custom_nav_extras_text', - 'trestle_read_more_text' - ) - ); -} - -add_action( 'genesis_theme_settings_metaboxes', 'trestle_register_settings_box' ); -/** - * Registers Trestle admin settings box. - * - * @since 1.0.0 - * - * @global array $_genesis_admin_settings Genesis admin settings. - * - * @param string $_genesis_theme_settings_pagehook Hook for main Genesis settings page in admin. - */ -function trestle_register_settings_box( $_genesis_theme_settings_pagehook ) { - global $_genesis_admin_settings; - - // Create Trestle settings metabox - $settings_box_title = __( 'Trestle Settings by', 'trestle' ) . ' MIGHTYminnow'; - add_meta_box( 'trestle-settings', $settings_box_title, 'trestle_settings_box', $_genesis_theme_settings_pagehook, 'main', 'high' ); -} - -/** - * Outputs contents of Trestle admin settings box on Genesis settings page. - * - * @since 1.0.0 - */ -function trestle_settings_box() { - // Set path for image radio inputs - $img_path = get_stylesheet_directory_uri() . '/images/admin/'; - - ?> -

-

- /> - /> - /> - /> -

- -

-

-
- -

-

-
- -

- -

-

-
- -

-

- /> -
- /> -

- -

-
- -

- -

-
- -

- -

-

- /> -

-

-
- -

- -

-

- : -

-

- - -

- -

-

- /> -

-
-
- - labels->name; - $slug = $post_type_object->name; - ?> -
- /> -
- - /> - - -

-
-
- - labels->name; - $slug = $post_type_object->name; - ?> -
- /> -
- - /> - - -

-
-
- -

-

- - -

-

-

- />
- />
- />
- /> -

- ' ); + } + + }); + }); + + // Primary Nav Location + wp.customize( 'genesis-settings[trestle_nav_primary_location]', function( value ) { + value.bind( function( value ) { + + var $body = $( 'body' ); + var $nav = $( '.nav-primary' ); + + switch ( value ) { + case 'full': + $body.removeClass( 'nav-primary-location-header' ) + .addClass( 'nav-primary-location-full' ); + $nav.remove().insertAfter( '.site-header' ); + break; + case 'header': + $body.removeClass( 'nav-primary-location-full' ) + .addClass( 'nav-primary-location-header' ); + $nav.remove().appendTo( '.site-header .wrap' ); + break; + } + + }); + }); + + // Custom Read More Link Text + wp.customize( 'genesis-settings[trestle_read_more_text]', function( value ) { + value.bind( function( value ) { + + $( 'a.more-link' ).text( value ); + + }); + }); + + // External Links + wp.customize( 'genesis-settings[trestle_external_link_icons]', function( value ) { + value.bind( function( value ) { + + var $body = $( 'body' ); + + if ( value ) { + $body.addClass( 'external-link-icons' ); + } else { + $body.removeClass( 'external-link-icons' ); + } + + }); + }); + + // Email Links + wp.customize( 'genesis-settings[trestle_email_link_icons]', function( value ) { + value.bind( function( value ) { + + var $body = $( 'body' ); + + if ( value ) { + $body.addClass( 'email-link-icons' ); + } else { + $body.removeClass( 'email-link-icons' ); + } + + }); + }); + + // PDF Links + wp.customize( 'genesis-settings[trestle_pdf_link_icons]', function( value ) { + value.bind( function( value ) { + + var $body = $( 'body' ); + + if ( value ) { + $body.addClass( 'pdf-link-icons' ); + } else { + $body.removeClass( 'pdf-link-icons' ); + } + + }); + }); + + // Doc Links + wp.customize( 'genesis-settings[trestle_doc_link_icons]', function( value ) { + value.bind( function( value ) { + + var $body = $( 'body' ); + + if ( value ) { + $body.addClass( 'doc-link-icons' ); + } else { + $body.removeClass( 'doc-link-icons' ); + } + + }); + }); + +})( jQuery ); diff --git a/includes/admin/customizer.php b/includes/admin/customizer.php new file mode 100644 index 0000000..39e7526 --- /dev/null +++ b/includes/admin/customizer.php @@ -0,0 +1,324 @@ +add_section( + 'trestle_settings_section', + array( + 'title' => __( 'Trestle Settings', 'trestle' ), + 'priority' => 160, + ) + ); + + // Layout + $wp_customize->add_setting( + 'genesis-settings[trestle_layout]', + array( + 'default' => '', + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + 'trestle_layout_control', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_layout]', + 'label' => __( 'Layout', 'trestle' ), + 'type' => 'radio', + 'choices' => array( + 'bubble' => __( 'Bubble', 'trestle' ), + 'solid' => __( 'Solid', 'trestle' ), + ) + ) + ); + + // Upload a logo + $wp_customize->add_setting( + 'genesis-settings[trestle_logo_url]', + array( + 'default' => genesis_get_option( 'trestle_logo_url' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + new WP_Customize_Image_Control( + $wp_customize, + 'trestle_logo_control', + array( + 'label' => __( 'Upload a logo', 'trestle' ), + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_logo_url]', + ) + ) + ); + + // Upload a mobile logo + $wp_customize->add_setting( + 'genesis-settings[trestle_logo_url_mobile]', + array( + 'default' => genesis_get_option( 'trestle_logo_url_mobile' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + new WP_Customize_Image_Control( + $wp_customize, + 'trestle_mobile_logo_control', + array( + 'label' => __( 'Upload a logo for mobile', 'trestle' ), + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_logo_url_mobile]', + ) + ) + ); + + // Primary nav style + $wp_customize->add_setting( + 'genesis-settings[trestle_nav_primary_location]', + array( + 'default' => genesis_get_option( 'trestle_nav_primary_location' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + 'trestle_nav_primary_location_control', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_nav_primary_location]', + 'label' => __( 'Menu style', 'trestle' ), + 'type' => 'select', + 'choices' => array( + 'full' => __( 'Full Width', 'trestle' ), + 'header' => __( 'Header Right', 'trestle' ), + ) + ) + ); + + // Blog post custom read more link text + $wp_customize->add_setting( + 'genesis-settings[trestle_read_more_text]', + array( + 'default' => genesis_get_option( 'trestle_read_more_text' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'wp_kses_post', + ) + ); + $wp_customize->add_control( + 'trestle_read_more_text_control', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_read_more_text]', + 'label' => __( 'Custom read more link text', 'trestle' ), + ) + ); + + // Post revisions number + $wp_customize->add_setting( + 'genesis-settings[trestle_revisions_number]', + array( + 'default' => genesis_get_option( 'trestle_revisions_number' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + 'trestle_revisions_number_control', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_revisions_number]', + 'label' => __( 'Number of post revisions', 'trestle' ), + 'type' => 'select', + 'choices' => array( + '-1' => __( 'Unlimited', 'trestle' ), + '0' => '0', + '1' => '1', + '2' => '2', + '3' => '3', + '4' => '4', + '5' => '5', + '6' => '6', + '7' => '7', + '8' => '8', + '9' => '9', + '10' => '10', + ) + ) + ); + + // Footer Widget Areas + $wp_customize->add_setting( + 'genesis-settings[trestle_footer_widgets_number]', + array( + 'default' => genesis_get_option( 'trestle_footer_widgets_number' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + 'trestle_footer_widgets_number_control', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_footer_widgets_number]', + 'label' => __( 'Number of footer widgets', 'trestle' ), + 'type' => 'select', + 'choices' => array( + '0' => '0', + '1' => '1', + '2' => '2', + '3' => '3', + '4' => '4', + '5' => '5', + '6' => '6', + ) + ) + ); + + // Add a label for the link icons + $wp_customize->add_setting( + 'genesis-settings[trestle_link_icons_title]', + array( + 'default' => '', + 'type' => 'option', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + 'trestle_link_icons_title', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_link_icons_title]', + 'label' => __( 'Icon links', 'trestle' ), + 'type' => 'hidden', + ) + ); + + // External Link Icons + $wp_customize->add_setting( + 'genesis-settings[trestle_external_link_icons]', + array( + 'default' => genesis_get_option( 'trestle_external_link_icons' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + 'trestle_external_link_icons', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_external_link_icons]', + 'label' => __( 'Add icons to external links', 'trestle' ), + 'type' => 'checkbox', + ) + ); + + // E-mail Link Icons + $wp_customize->add_setting( + 'genesis-settings[trestle_email_link_icons]', + array( + 'default' => genesis_get_option( 'trestle_email_link_icons' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + 'trestle_email_link_icons', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_email_link_icons]', + 'label' => __( 'Add icons to email links', 'trestle' ), + 'type' => 'checkbox', + ) + ); + + // PDF Link Icons + $wp_customize->add_setting( + 'genesis-settings[trestle_pdf_link_icons]', + array( + 'default' => genesis_get_option( 'trestle_pdf_link_icons' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + 'trestle_pdf_link_icons', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_pdf_link_icons]', + 'label' => __( 'Add icons to .pdf links', 'trestle' ), + 'type' => 'checkbox', + ) + ); + + // Doc Link Icons + $wp_customize->add_setting( + 'genesis-settings[trestle_doc_link_icons]', + array( + 'default' => genesis_get_option( 'trestle_doc_link_icons' ), + 'type' => 'option', + 'transport' => 'postMessage', + 'capability' => 'edit_theme_options', + ) + ); + $wp_customize->add_control( + 'trestle_doc_link_icons', + array( + 'section' => 'trestle_settings_section', + 'settings' => 'genesis-settings[trestle_doc_link_icons]', + 'label' => __( 'Add icons to .doc links', 'trestle' ), + 'type' => 'checkbox', + ) + ); + +} diff --git a/includes/admin/editor-style.css b/includes/admin/editor-style.css deleted file mode 100644 index 4d17d21..0000000 --- a/includes/admin/editor-style.css +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Trestle editor styles - * - * @since 1.0.0 - * - * @package Trestle - */ - -@import url( '../../style.css' ); - -/* Overrides ---------------------------------------------- */ -body { - padding: 8px 16px; - background-color: #FFF; - background-image: none; -} - -.content { - width: 100%; - font-size: 1.6rem; -} - -.content a { - color: #f15123; -} - -.content a:hover { - color: #333; -} - -.content ul, -.content ol { - margin: 0 0 26px 40px; - margin: 0 0 2.6rem 4rem; -} \ No newline at end of file diff --git a/includes/functions/theme-functions.php b/includes/functions/theme-functions.php index 3965264..b79732d 100644 --- a/includes/functions/theme-functions.php +++ b/includes/functions/theme-functions.php @@ -48,7 +48,7 @@ add_action( 'wp_enqueue_scripts', 'trestle_header_actions' ); * @since 1.0.0 */ function trestle_header_actions() { - + // Google fonts wp_enqueue_style( 'theme-google-fonts', '//fonts.googleapis.com/css?family=Lato:300,400,700' ); @@ -64,7 +64,7 @@ function trestle_header_actions() { $custom_css_file = '/trestle/custom.css'; if ( is_readable( $upload_path . $custom_css_file ) ) wp_enqueue_style( 'trestle-custom-css', $upload_url . $custom_css_file ); - + // Custom jQuery (if it exists) $custom_js_file = '/trestle/custom.js'; if ( is_readable( $upload_path . $custom_js_file ) ) @@ -100,7 +100,7 @@ add_filter( 'body_class', 'trestle_body_classes' ); * @return array Updated body classes. */ function trestle_body_classes( $classes ) { - + // Add 'no-jquery' class to be removed by jQuery if enabled $classes[] = 'no-jquery'; @@ -121,19 +121,15 @@ function trestle_body_classes( $classes ) { // Add menu style class if ( genesis_get_option( 'trestle_nav_primary_location' ) ) $classes[] = 'nav-primary-location-' . esc_attr( genesis_get_option( 'trestle_nav_primary_location' ) ); - + // Add footer widget number class if ( genesis_get_option( 'trestle_footer_widgets_number' ) ) $classes[] = 'footer-widgets-number-' . esc_attr( genesis_get_option( 'trestle_footer_widgets_number' ) ); - // Add class for equal height Genesis Extender columns - if ( 1 == genesis_get_option( 'trestle_equal_height_cols' ) ) - $classes[] = 'equal-height-genesis-extender-cols'; - // Add logo class if ( genesis_get_option( 'trestle_logo_url' ) || genesis_get_option( 'trestle_logo_url_mobile' ) ) $classes[] = 'has-logo'; - + return $classes; } @@ -150,6 +146,7 @@ add_filter( 'genesis_seo_title', 'trestle_do_logos', 10, 3 ); * @since 1.0.0 */ function trestle_do_logos( $title, $inside, $wrap ) { + $logo_url = genesis_get_option( 'trestle_logo_url' ); $logo_url_mobile = genesis_get_option( 'trestle_logo_url_mobile' ); $logo_html = ''; @@ -167,7 +164,7 @@ function trestle_do_logos( $title, $inside, $wrap ) { $logo_html .= sprintf( '', implode(' ', $classes), esc_attr( get_bloginfo( 'name' ) ), - $logo_url + $logo_url ); } @@ -184,8 +181,8 @@ function trestle_do_logos( $title, $inside, $wrap ) { $logo_html .= sprintf( '', implode(' ', $classes), esc_attr( get_bloginfo( 'name' ) ), - $logo_url_mobile - ); + $logo_url_mobile + ); } if ( $logo_html ) { @@ -196,11 +193,11 @@ function trestle_do_logos( $title, $inside, $wrap ) { ); } - //* Build the title + // Build the title $title = genesis_html5() ? sprintf( "<{$wrap} %s>", genesis_attr( 'site-title' ) ) : sprintf( '<%s id="title">%s', $wrap, $inside, $wrap ); $title .= genesis_html5() ? "{$inside}" : ''; - //* Echo (filtered) + // Echo (filtered) return $title; } @@ -221,6 +218,7 @@ add_action( 'init', 'trestle_nav_modifications' ); * @see trestle_nav_placeholder() */ function trestle_nav_modifications() { + global $trestle_nav_title; // Set title for Trestle placeholder navigation menu @@ -235,7 +233,7 @@ function trestle_nav_modifications() { if ( 1 == genesis_get_option( 'trestle_custom_nav_extras' ) ) { // Remove default nav extras remove_filter( 'wp_nav_menu_items', 'genesis_nav_right' ); - + // Add custom nav extras add_filter( 'wp_nav_menu_items', 'trestle_custom_nav_extras', 10, 2 ); } @@ -269,6 +267,7 @@ function trestle_nav_primary_location() { * @return string
  • list of (modified) navigation menu items. */ function trestle_auto_nav_items( $nav_items, stdClass $menu_args ) { + if ( 'primary' == $menu_args->theme_location ) { $args = array( 'depth' => genesis_get_option( 'trestle_auto_nav_depth' ) ? genesis_get_option( 'trestle_auto_nav_depth' ) : 0, @@ -291,7 +290,7 @@ function trestle_auto_nav_items( $nav_items, stdClass $menu_args ) { // Remove closing $nav_items = preg_replace( '/<\/ul>\s*<\/div>/', '', $nav_items ); } - + return $nav_items; } @@ -305,6 +304,7 @@ function trestle_auto_nav_items( $nav_items, stdClass $menu_args ) { * @return string
  • list of menu items with custom navigation extras
  • appended. */ function trestle_custom_nav_extras( $nav_items, stdClass $menu_args ) { + if ( 'primary' == $menu_args->theme_location ) { $custom_text = esc_attr( genesis_get_option( 'trestle_custom_nav_extras_text' ) ); return $nav_items . '
  • ' . do_shortcode( genesis_get_option( 'trestle_custom_nav_extras_text' ) ) . '
  • '; @@ -323,6 +323,7 @@ function trestle_custom_nav_extras( $nav_items, stdClass $menu_args ) { * @since 1.0.0 */ function trestle_nav_placeholder() { + global $trestle_nav_title; // Create placeholder menu for 'primary' spot if auto-nav is selected - this ensures that nav extras can be used even when no custom menu is formally set to primary @@ -351,7 +352,7 @@ function trestle_nav_placeholder() { add_filter( 'wp_revisions_to_keep', 'trestle_update_revisions_number', 10, 2 ); /** - * Sets the number of post revisions. + * Sets the number of post revisions. * * @since 1.0.0 * @@ -359,6 +360,7 @@ add_filter( 'wp_revisions_to_keep', 'trestle_update_revisions_number', 10, 2 ); * @return int Number of post revisions specified in Trestle admin panel. */ function trestle_update_revisions_number( $num ) { + $trestle_revisions_number = esc_attr( genesis_get_option( 'trestle_revisions_number' ) ); if ( isset( $trestle_revisions_number ) ) @@ -377,13 +379,14 @@ add_action( 'the_post', 'trestle_post_info_meta', 5 ); * @global object $post The current $post object. */ function trestle_post_info_meta() { + if ( ! is_admin() && in_the_loop() && genesis_get_option( 'trestle_manual_post_info_meta' ) ) { global $post; // Get post type $post_type = get_post_type( $post->ID ); - + // Remove all Post Info & Meta remove_action( 'genesis_entry_header', 'genesis_post_info', 12 ); remove_action( 'genesis_entry_footer', 'genesis_post_meta' ); @@ -392,7 +395,7 @@ function trestle_post_info_meta() { if ( is_singular() ) { $single_info_option = 'trestle_post_info_' . $post_type . '_single'; $single_meta_option = 'trestle_post_meta_' . $post_type . '_single'; - + // Post Info if ( genesis_get_option( $single_info_option ) ) add_action( 'genesis_entry_header', 'genesis_post_info', 12 ); @@ -406,7 +409,7 @@ function trestle_post_info_meta() { if ( ! is_singular() ) { $archive_info_option = 'trestle_post_info_' . $post_type . '_archive'; $archive_meta_option = 'trestle_post_meta_' . $post_type . '_archive'; - + // Post Info if ( genesis_get_option( $archive_info_option ) ) add_action( 'genesis_entry_header', 'genesis_post_info', 12 ); @@ -432,7 +435,9 @@ add_filter( 'genesis_get_image_default_args', 'trestle_featured_image_fallback' * @return array Updated image args */ function trestle_featured_image_fallback( $args ) { + $args['fallback'] = false; + return $args; } @@ -453,10 +458,15 @@ add_filter( 'the_content_more_link', 'trestle_read_more_link' ); * @return string (Updated) "read more" text. */ function trestle_read_more_link( $default_text ) { + // Get Trestle custom "read more" link text $custom_text = esc_attr( genesis_get_option( 'trestle_read_more_text' ) ); +<<<<<<< HEAD if ( $custom_text ) { +======= + if ( $custom_text ) +>>>>>>> 9de3310f116bb4f7dd5323ca40b16f2fe4160dcd return '… ' . $custom_text . ''; } else { return $default_text; diff --git a/includes/js/theme-jquery.js b/includes/js/theme-jquery.js index 6072145..aacf0df 100644 --- a/includes/js/theme-jquery.js +++ b/includes/js/theme-jquery.js @@ -9,132 +9,132 @@ // Executes when the document is ready jQuery( document ).ready( function( $ ) { - // Remove .no-jquery body class - $( 'body' ).removeClass( 'no-jquery' ); + // Remove .no-jquery body class + $( 'body' ).removeClass( 'no-jquery' ); - // External Links - var h = window.location.host.toLowerCase(); - $( '[href^="http"]' ).not( '[href*="' + h + '"]' ).addClass( 'external-link' ).attr( "target", "_blank" ); + // External Links + var h = window.location.host.toLowerCase(); + $( '[href^="http"]' ).not( '[href*="' + h + '"]' ).addClass( 'external-link' ).attr( "target", "_blank" ); - // Add classes to different types of links - $( 'a[href^="mailto:"]' ).addClass( 'email-link' ); - $( 'a[href$=".pdf"]' ).attr({ "target":"_blank" }).addClass( 'pdf-link' ); - $( 'a[href$=".doc"]' ).attr({ "target":"_blank" }).addClass( 'doc-link' ); - $( 'a' ).has( 'img' ).addClass( 'image-link' ); + // Add classes to different types of links + $( 'a[href^="mailto:"]' ).addClass( 'email-link' ); + $( 'a[href$=".pdf"]' ).attr({ "target":"_blank" }).addClass( 'pdf-link' ); + $( 'a[href$=".doc"]' ).attr({ "target":"_blank" }).addClass( 'doc-link' ); + $( 'a' ).has( 'img' ).addClass( 'image-link' ); - // Add classes to parts of lists - $( 'li:last-child' ).addClass( 'last' ); - $( 'li:first-child' ).addClass( 'first' ); - $( 'ul, ol' ).parent( 'li' ).addClass( 'parent' ); + // Add classes to parts of lists + $( 'li:last-child' ).addClass( 'last' ); + $( 'li:first-child' ).addClass( 'first' ); + $( 'ul, ol' ).parent( 'li' ).addClass( 'parent' ); - // Mobile header toggle buttons - $( '.site-header .title-area' ).after( '
    ' ); - $( '.site-header .widget-area, .nav-primary' ).each( function( i ) { + // Mobile header toggle buttons + $( '.site-header .title-area' ).after( '
    ' ); + $( '.site-header .widget-area, .nav-primary' ).each( function( i ) { - // Store target - $target = $( this ); + // Store target + $target = $( this ); - // Scope variables - var $target, buttonClass, targetClass; + // Scope variables + var $target, buttonClass, targetClass; - // Setup classes - buttonClass = 'toggle-button'; - targetClass = $target.attr( 'class' ).split( /\s+/ ); + // Setup classes + buttonClass = 'toggle-button'; + targetClass = $target.attr( 'class' ).split( /\s+/ ); - // Add targets-[] class to buttonClass - $.each( targetClass, function( index, value ) { - buttonClass += ' targets-' + value; - }); + // Add targets-[] class to buttonClass + $.each( targetClass, function( index, value ) { + buttonClass += ' targets-' + value; + }); - // Add nav-toggle class to buttonClass if the button is for the nav - if ( $target.is( 'nav' ) ) { - buttonClass += ' nav-toggle'; - } + // Add nav-toggle class to buttonClass if the button is for the nav + if ( $target.is( 'nav' ) ) { + buttonClass += ' nav-toggle'; + } - // Add toggle buttons to header - $( '.toggle-buttons' ).prepend( 'Toggle' ); + // Add toggle buttons to header + $( '.toggle-buttons' ).prepend( 'Toggle' ); - // Add target class to nav and widget areas - $target.addClass( 'toggle-target-' + i ); - }); + // Add target class to nav and widget areas + $target.addClass( 'toggle-target-' + i ); + }); - // Toggle widget areas and primary nav - $( '.site-header .toggle-button' ).click( function( event ) { + // Toggle widget areas and primary nav + $( '.site-header .toggle-button' ).click( function( event ) { - // Prevent default behavior - event.preventDefault(); + // Prevent default behavior + event.preventDefault(); - // Scope our variables - var $button, $target; + // Scope our variables + var $button, $target; - // Get toggle button that was clicked - $button = $( this ); + // Get toggle button that was clicked + $button = $( this ); - //Remove focus - $button.blur(); + //Remove focus + $button.blur(); - // Match the button to the right target - $target = $( '.toggle-target-' + $button.attr( 'id' ).match( /\d+/ ) ); + // Match the button to the right target + $target = $( '.toggle-target-' + $button.attr( 'id' ).match( /\d+/ ) ); - // Toggle buttons - $button.toggleClass( 'open' ); - $( '.site-header .toggle-button' ).not( $button ).removeClass( 'open' ); + // Toggle buttons + $button.toggleClass( 'open' ); + $( '.site-header .toggle-button' ).not( $button ).removeClass( 'open' ); - // Toggle targets - $target.toggleClass( 'open' ); - $( '[class^="toggle-target"]' ).not( $target ).removeClass( 'open' ); - }); + // Toggle targets + $target.toggleClass( 'open' ); + $( '[class^="toggle-target"]' ).not( $target ).removeClass( 'open' ); + }); - // Mobile navigation icons - var closedIcon = '+'; - var openIcon = '-'; + // Mobile navigation icons + var closedIcon = '+'; + var openIcon = '-'; - // Insert the icons into the nav where appropriate - $( '.nav-primary' ).find( '.genesis-nav-menu .parent:not( .current-menu-item, .current_page_item, .current_page_parent, .current_page_ancestor) > a' ).after( '' + closedIcon + '' ); - $( '.nav-primary' ).find( '.genesis-nav-menu .parent.current-menu-item > a, .genesis-nav-menu .parent.current_page_item > a, .genesis-nav-menu .parent.current_page_parent > a, .genesis-nav-menu .parent.current_page_ancestor > a' ).after( '' + openIcon + '' ); + // Insert the icons into the nav where appropriate + $( '.nav-primary' ).find( '.genesis-nav-menu .parent:not( .current-menu-item, .current_page_item, .current_page_parent, .current_page_ancestor) > a' ).after( '' + closedIcon + '' ); + $( '.nav-primary' ).find( '.genesis-nav-menu .parent.current-menu-item > a, .genesis-nav-menu .parent.current_page_item > a, .genesis-nav-menu .parent.current_page_parent > a, .genesis-nav-menu .parent.current_page_ancestor > a' ).after( '' + openIcon + '' ); - // Mobile navigation expand/contract functionality - $( '.sub-icon' ).click( function( event ) { + // Mobile navigation expand/contract functionality + $( '.sub-icon' ).click( function( event ) { - // Prevent default behavior - event.preventDefault(); + // Prevent default behavior + event.preventDefault(); - // Get icon click - var $icon = $( this ); + // Get icon click + var $icon = $( this ); - // Remove focus - $icon.blur(); + // Remove focus + $icon.blur(); - // Expand/contract - $icon.next( 'ul' ).slideToggle().toggleClass( 'open' ); + // Expand/contract + $icon.next( 'ul' ).slideToggle().toggleClass( 'open' ); - // Change the icon to indicate open/closed - if ( $icon.text().indexOf( closedIcon ) !== -1 ) { - $icon.text( openIcon ); - } else if ( $icon.text().indexOf( openIcon ) !== -1 ) { - $icon.text( closedIcon ); - } - }); + // Change the icon to indicate open/closed + if ( $icon.text().indexOf( closedIcon ) !== -1 ) { + $icon.text( openIcon ); + } else if ( $icon.text().indexOf( openIcon ) !== -1 ) { + $icon.text( closedIcon ); + } + }); - // Header widget area expand/contract functionality - $( '.widget-area-toggle' ).click( function( event ) { + // Header widget area expand/contract functionality + $( '.widget-area-toggle' ).click( function( event ) { - // Prevent default behavior - event.preventDefault(); + // Prevent default behavior + event.preventDefault(); - // Get button clicked - var $button = $( this ); + // Get button clicked + var $button = $( this ); - // Remove focus - $button.blur(); + // Remove focus + $button.blur(); - // Expand/contract - $button.toggleClass( 'open' ).next( '.widget-area' ).slideToggle(); - }); + // Expand/contract + $button.toggleClass( 'open' ).next( '.widget-area' ).slideToggle(); + }); - // Executes when complete page is fully loaded, including all frames, objects, and images - $( window ).on( 'load', function() { + // Executes when complete page is fully loaded, including all frames, objects, and images + $( window ).on( 'load', function() { - }); + }); }); /* end of page load scripts */ \ No newline at end of file diff --git a/style.css b/style.css index 7e07657..3aaf97d 100644 --- a/style.css +++ b/style.css @@ -151,6 +151,10 @@ body { line-height: 1.625; } +body.mce-content-body { + width: 100%; /* Used in the editor */ +} + body.bubble { background-color: #f5f5f5; } @@ -213,7 +217,9 @@ ul { } .site-inner ol, -.site-inner ul { +.site-inner ul, +.mce-content-body ol, /* Used in the editor */ +.mce-content-body ul { /* used in the editor */ margin-left: 40px; margin-left: 4rem; margin-bottom: 26px; @@ -296,12 +302,14 @@ a:hover { color: #333; } -.site-inner a { +.site-inner a, +.mce-content-body a { /* Used in the Editor */ border-bottom: 1px solid #ddd; color: #f15123; } -.site-inner a:hover { +.site-inner a:hover, +.mce-content-body a:hover { /* Used in the Editor */ color: #333; } @@ -467,8 +475,8 @@ textarea { } input[type="radio"], -input[type="radio"], -input[type="checkbox"] { +input[type="checkbox"], +input[type="image"] { width: auto; } @@ -1360,9 +1368,14 @@ Site Header .site-header .widget-area { width: 100%; - padding: 20px; background-color: #eee; border: 1px solid #ddd; + border-width: 0; + overflow: hidden; +} + +.site-header .widget-area.open { + padding: 20px; border-width: 1px 0; } @@ -1403,7 +1416,7 @@ Site Header .nav-primary, -.site-header .nav-primary, +/*.site-header .nav-primary,*/ .site-header .widget-area { position: absolute; top: 100%; @@ -1413,11 +1426,11 @@ Site Header opacity: 0; box-shadow: 0 4px 8px 1px rgba(0,0,0,0.4); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - -webkit-transition: all .5s ease; - -moz-transition: all .5s ease; - -ms-transition: all .5s ease; - -o-transition: all .5s ease; - transition: all .5s ease; + -webkit-transition: all .5s ease, padding 0s .5s; + -moz-transition: all .5s ease, padding 0s .5s; + -ms-transition: all .5s ease, padding 0s .5s; + -o-transition: all .5s ease, padding 0s .5s; + transition: all .5s ease, padding 0s .5s; } .site-container > .nav-primary { @@ -1429,7 +1442,12 @@ Site Header z-index: 50; max-height: 9999px; opacity: 1; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity .5s ease, padding 0s 0s; + -moz-transition: opacity .5s ease, padding 0s 0s; + -ms-transition: opacity .5s ease, padding 0s 0s; + -o-transition: opacity .5s ease, padding 0s 0s; + transition: opacity .5s ease, padding 0s 0s; }