mirror of
https://github.com/10h30/trestle.git
synced 2026-07-11 18:56:07 +09:00
Merge dev-test branch.
This commit is contained in:
+5
-3
@@ -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 );
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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 */
|
||||
+19
-284
@@ -14,26 +14,22 @@ 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',
|
||||
@@ -41,303 +37,35 @@ function trestle_custom_defaults( $defaults ) {
|
||||
'trestle_logo_url_mobile' => '',
|
||||
'trestle_favicon_url' => '',
|
||||
'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,
|
||||
'trestle_equal_height_cols' => 1,
|
||||
'trestle_equal_cols_breakpoint' => 768,
|
||||
'trestle_external_link_icons' => 1,
|
||||
'trestle_email_link_icons' => 1,
|
||||
'trestle_pdf_link_icons' => 1,
|
||||
'trestle_doc_link_icons' => 1,
|
||||
);
|
||||
|
||||
// Populate Trestle settings with default values if they don't yet exist
|
||||
$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',
|
||||
'trestle_equal_cols_breakpoint',
|
||||
)
|
||||
);
|
||||
|
||||
// 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_favicon_url',
|
||||
'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 <small>by</small>', 'trestle' ) . ' <a href="http://mightyminnow.com" target="_blank">MIGHTYminnow</a>';
|
||||
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/';
|
||||
|
||||
?>
|
||||
<h4><?php _e( 'Layout', 'trestle' ) ?></h4>
|
||||
<p class="trestle-layout">
|
||||
<img src="<?php echo $img_path; ?>icon-solid.gif" width="200" height="160" <?php echo 'solid' == genesis_get_option( 'trestle_layout' ) ? 'class="checked"' : '' ?> />
|
||||
<input type="radio" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_layout]" value="solid" <?php checked( esc_attr( genesis_get_option( 'trestle_layout' ) ), 'solid' ); ?> />
|
||||
<img src="<?php echo $img_path; ?>icon-bubble.gif" width="200" height="160" <?php echo 'bubble' == genesis_get_option( 'trestle_layout' ) ? 'class="checked"' : '' ?> />
|
||||
<input type="radio" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_layout]" value="bubble" <?php checked( esc_attr( genesis_get_option( 'trestle_layout' ) ), 'bubble' ); ?> />
|
||||
</p>
|
||||
|
||||
<h4><?php _e( 'Logos & Favicon', 'trestle' ) ?></h4>
|
||||
<p>
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_logo_url]"><?php _e( 'Logo URL', 'trestle' ); ?></label><br />
|
||||
<input class="widefat" type="text" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_logo_url]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_logo_url]" value="<?php echo esc_attr( genesis_get_option( 'trestle_logo_url' ) ); ?>" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_logo_url_mobile]"><?php _e( 'Mobile Logo URL', 'trestle' ); ?></label><br />
|
||||
<input class="widefat" type="text" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_logo_url_mobile]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_logo_url_mobile]" value="<?php echo esc_attr( genesis_get_option( 'trestle_logo_url_mobile' ) ); ?>" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_favicon_url]"><?php _e( 'Favicon URL', 'trestle' ); ?></label><br />
|
||||
<input class="widefat" type="text" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_favicon_url]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_favicon_url]" value="<?php echo esc_attr( genesis_get_option( 'trestle_favicon_url' ) ); ?>" />
|
||||
<span class="description"><?php _e( 'Defaults to <i>/wp-content/themes/trestle/images/favicon.ico</i> if not specified.', 'trestle' ); ?></span>
|
||||
</p>
|
||||
|
||||
<h4><?php _e( 'Primary Navigation', 'trestle' ) ?></h4>
|
||||
<p>
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_nav_primary_location]"><?php _e( 'Menu style:', 'trestle' ); ?> </label><br/>
|
||||
<select name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_nav_primary_location]" />
|
||||
<option value="full" <?php selected( esc_attr( genesis_get_option( 'trestle_nav_primary_location' ) ), 'full' ); ?> ><?php _e( 'Full width', 'trestle' ); ?></option>
|
||||
<option value="header" <?php selected( esc_attr( genesis_get_option( 'trestle_nav_primary_location' ) ), 'header' ); ?> ><?php _e( 'Header right', 'trestle' ); ?></option>
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_auto_nav]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_auto_nav]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_auto_nav' ) ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_auto_nav]"><?php _e( 'Auto-generate primary navigation menu with published pages, to a depth of:', 'trestle' ); ?> </label>
|
||||
<select name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_auto_nav_depth]" />
|
||||
<option value="0" <?php selected( esc_attr( genesis_get_option( 'trestle_auto_nav_depth' ) ), '0' ); ?> ><?php _e( 'Unlimited', 'trestle' ); ?></option>
|
||||
<?php
|
||||
for( $i=1; $i<=10; $i++ ) {
|
||||
echo '<option value="' . $i . '" ' . selected( esc_attr( genesis_get_option( 'trestle_auto_nav_depth' ) ), $i, false ) . '>' . $i . '</option>' . "\n";
|
||||
}
|
||||
?>
|
||||
</select><br />
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_include_home_link]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_include_home_link]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_include_home_link' ) ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_include_home_link]"><?php _e( 'Include home link', 'trestle' ); ?></label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_home_link_text]"><?php _e( 'Home link text (shortcodes can be included):', 'trestle' ); ?></label><br />
|
||||
<input class="widefat" type="text" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_home_link_text]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_home_link_text]" value="<?php echo esc_attr( genesis_get_option( 'trestle_home_link_text' ) ); ?>" />
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_nav_button_text]"><?php _e( 'Text for mobile navigation button (shortcodes can be included):', 'trestle' ); ?></label><br />
|
||||
<input class="widefat" type="text" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_nav_button_text]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_nav_button_text]" value="<?php echo esc_attr( genesis_get_option( 'trestle_nav_button_text' ) ); ?>" />
|
||||
</p>
|
||||
|
||||
<h4><?php _e( 'Primary Navigation Extras', 'trestle' ) ?></h4>
|
||||
<p>
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_custom_nav_extras]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_custom_nav_extras]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_custom_nav_extras' ) ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_custom_nav_extras]"><?php _e( 'Display custom navigation extras content (overrides standard Genesis navigation extras)', 'trestle' ); ?></label>
|
||||
</p>
|
||||
<p>
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_custom_nav_extras_text]"><?php _e( 'Custom navigation extras text:', 'trestle' ); ?></label><br />
|
||||
<input class="widefat" type="text" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_custom_nav_extras_text]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_custom_nav_extras_text]" value="<?php echo esc_attr( genesis_get_option( 'trestle_custom_nav_extras_text' ) ); ?>" />
|
||||
</p>
|
||||
|
||||
<h4><?php _e( 'Blog/Posts', 'trestle' ) ?></h4>
|
||||
<p>
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_read_more_text]"><?php _e( 'Custom read more link text', 'trestle' ); ?></label>: <input type="text" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_read_more_text]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_read_more_text]" value="<?php echo esc_attr( genesis_get_option( 'trestle_read_more_text' ) ); ?>" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_revisions_number]"><?php _e( 'Number of post revisions', 'trestle' ) ?>: </label>
|
||||
<select name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_revisions_number]" />
|
||||
<option value="-1" <?php selected( esc_attr( genesis_get_option( 'trestle_revisions_number' ) ), '-1' ); ?> >Unlimited</option>
|
||||
<?php
|
||||
for( $i=0; $i<=10; $i++ ) {
|
||||
echo '<option value="' . $i . '" ' . selected( esc_attr( genesis_get_option( 'trestle_revisions_number' ) ), $i, false ) . '>' . $i . '</option>' . "\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</p>
|
||||
|
||||
<h4><?php _e( 'Post Info & Meta', 'trestle' ) ?></h4>
|
||||
<p>
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_manual_post_info_meta]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_manual_post_info_meta]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_manual_post_info_meta' ) ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_manual_post_info_meta]"><?php _e( 'Manually select where to show Post Info & Meta', 'trestle' ); ?></label>
|
||||
</p>
|
||||
<div class="trestle-post-info-meta">
|
||||
<div class="one-half first">
|
||||
<b><?php _e( 'Show Post Info on:', 'trestle' ) ?></b>
|
||||
<?php
|
||||
$post_types = get_post_types();
|
||||
foreach ( $post_types as $post_type ) {
|
||||
// Don't show this option for pages, since genesis_post_info/meta won't work for pages
|
||||
if ( 'page' == $post_type ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Otherwise generate post info settings
|
||||
$post_type_object = get_post_type_object( $post_type );
|
||||
$name = $post_type_object->labels->name;
|
||||
$slug = $post_type_object->name;
|
||||
?>
|
||||
<hr />
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_info_<?php echo $slug ?>_single]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_info_<?php echo $slug ?>_single]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_post_info_' . $slug . '_single' ) ), 1); ?> />
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_info_<?php echo $slug ?>_single]"><?php printf( __( '%s (single)', 'trestle' ), $name ); ?></label><br />
|
||||
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_info_<?php echo $slug ?>_archive]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_info_<?php echo $slug ?>_archive]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_post_info_' . $slug . '_archive' ) ), 1); ?> />
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_info_<?php echo $slug ?>_archive]"><?php printf( __( '%s (archive)', 'trestle' ), $name ); ?></label>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<br /><br />
|
||||
</div>
|
||||
<div class="one-half">
|
||||
<b><?php _e( 'Show Post Meta on:', 'trestle' ) ?></b>
|
||||
<?php
|
||||
$post_types = get_post_types();
|
||||
foreach ( $post_types as $post_type ) {
|
||||
// Don't show this option for pages, since genesis_post_info/meta won't work for pages
|
||||
if ( 'page' == $post_type ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Otherwise generate post meta settings
|
||||
$post_type_object = get_post_type_object( $post_type );
|
||||
$name = $post_type_object->labels->name;
|
||||
$slug = $post_type_object->name;
|
||||
?>
|
||||
<hr />
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_meta_<?php echo $slug ?>_single]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_meta_<?php echo $slug ?>_single]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_post_meta_' . $slug . '_single' ) ), 1); ?> />
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_meta_<?php echo $slug ?>_single]"><?php printf( __( '%s (single)', 'trestle' ), $name ); ?></label><br />
|
||||
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_meta_<?php echo $slug ?>_archive]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_meta_<?php echo $slug ?>_archive]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_post_meta_' . $slug . '_archive' ) ), 1); ?> />
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_post_meta_<?php echo $slug ?>_archive]"><?php printf( __( '%s (archive)', 'trestle' ), $name ); ?></label>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<br /><br />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4><?php _e( 'Footer Widgets', 'trestle' ) ?></h4>
|
||||
<p class="trestle-layout">
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_footer_widgets_number]"><?php _e( 'Number', 'trestle' ); ?>: </label>
|
||||
<select name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_footer_widgets_number]" />
|
||||
<?php
|
||||
for( $i=0; $i<=6; $i++ ) {
|
||||
echo '<option value="' . $i . '" ' . selected( esc_attr( genesis_get_option( 'trestle_footer_widgets_number' ) ), $i, false ) . '>' . $i . '</option>' . "\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</p>
|
||||
|
||||
<h4><?php _e( 'Genesis Extender Plugin', 'trestle' ) ?></h4>
|
||||
<p>
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_equal_height_cols]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_equal_height_cols]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_equal_height_cols' ) ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_equal_height_cols]"><?php _e( 'Automatically equalize height of Genesis Extender homepage columns', 'trestle' ); ?></label>
|
||||
</p>
|
||||
<p class="trestle-equal-columns-breakpoint">
|
||||
<label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_equal_cols_breakpoint]"><?php _e( 'Implement at', 'trestle' ); ?><input type="text" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_equal_cols_breakpoint]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_equal_cols_breakpoint]" value="<?php echo esc_attr( genesis_get_option( 'trestle_equal_cols_breakpoint' ) ); ?>" size="4"/>px <?php _e( 'and wider (should match main CSS breakpoint)', 'trestle' ); ?></label>
|
||||
</p>
|
||||
|
||||
<h4><?php _e( 'Link Icons', 'trestle' ) ?></h4>
|
||||
<p>
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_external_link_icons]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_external_link_icons]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_external_link_icons' ) ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_external_link_icons]"><?php _e( 'Add icons to external links', 'trestle' ); ?></label><br />
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_email_link_icons]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_email_link_icons]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_email_link_icons' ) ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_email_link_icons]"><?php _e( 'Add icons to email links', 'trestle' ); ?></label><br />
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_pdf_link_icons]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_pdf_link_icons]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_pdf_link_icons' ) ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_pdf_link_icons]"><?php _e( 'Add icons to .pdf links', 'trestle' ); ?></label><br />
|
||||
<input type="checkbox" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_document_link_icons]" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_doc_link_icons]" value="1" <?php checked( esc_attr( genesis_get_option( 'trestle_doc_link_icons' ) ), 1); ?> /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[trestle_document_link_icons]"><?php _e( 'Add icons to .doc links', 'trestle' ); ?></label>
|
||||
</p>
|
||||
<?php
|
||||
}
|
||||
|
||||
add_action( 'tgmpa_register', 'trestle_register_required_plugins' );
|
||||
/**
|
||||
* Loads required & recommended plugins.
|
||||
*
|
||||
* Utilizes TGM Plugin Activation class:
|
||||
* Utilizes TGM Plugin Activation class:
|
||||
* https://github.com/thomasgriffin/TGM-Plugin-Activation
|
||||
*
|
||||
* @since 1.0.0
|
||||
@@ -345,8 +73,15 @@ add_action( 'tgmpa_register', 'trestle_register_required_plugins' );
|
||||
* @see tgmpa() in /includes/classes/class-tgm-plugin-activation.php
|
||||
*/
|
||||
function trestle_register_required_plugins() {
|
||||
|
||||
$plugins = array(
|
||||
// Required plugins
|
||||
array(
|
||||
'name' => 'Better Font Awesome',
|
||||
'slug' => 'better-font-awesome',
|
||||
'required' => true,
|
||||
),
|
||||
|
||||
array(
|
||||
'name' => 'Respond.js',
|
||||
'slug' => 'respondjs',
|
||||
@@ -379,8 +114,8 @@ function trestle_register_required_plugins() {
|
||||
),
|
||||
|
||||
array(
|
||||
'name' => 'Easy Fancybox',
|
||||
'slug' => 'easy-fancybox',
|
||||
'name' => 'FancyBox for WordPress',
|
||||
'slug' => 'fancybox-for-wordpress',
|
||||
'required' => false,
|
||||
),
|
||||
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
/**
|
||||
* JavaScript for the Customizer Preview
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
|
||||
( function( $ ) {
|
||||
|
||||
// Layout
|
||||
wp.customize( 'genesis-settings[trestle_layout]', function( value ) {
|
||||
value.bind( function( value ) {
|
||||
|
||||
var $body = $( 'body' );
|
||||
|
||||
switch ( value ) {
|
||||
case 'solid':
|
||||
$body.removeClass( 'bubble' );
|
||||
break;
|
||||
case 'bubble':
|
||||
$body.addClass( 'bubble' );
|
||||
break;
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
// Custom logo
|
||||
wp.customize( 'genesis-settings[trestle_logo_url]', function( value ) {
|
||||
value.bind( function( url ) {
|
||||
|
||||
var $body = $( 'body' );
|
||||
|
||||
if ( 0 === $.trim( url ).length ) {
|
||||
$body.removeClass( 'has-logo' );
|
||||
$( '.site-title a.image-link' ).remove();
|
||||
} else {
|
||||
$body.addClass( 'has-logo' );
|
||||
$( '.site-title a.image-link' ).remove();
|
||||
$( '.site-title' ).append( '<a href="/" class="image-link"><img class="logo logo-full show" src="' + url + '" /></a>' );
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
// Favicon
|
||||
wp.customize( 'genesis-settings[trestle_favicon_url]', function( value ) {
|
||||
value.bind( function( url ) {
|
||||
|
||||
var $faviconElem = $( 'link[rel="Shortcut Icon"]' );
|
||||
$faviconElem.attr( 'href', url );
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
// 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' ).html( 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 );
|
||||
@@ -0,0 +1,366 @@
|
||||
<?php
|
||||
/**
|
||||
* Trestle Customizer Controls
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @package Trestle
|
||||
*/
|
||||
|
||||
add_action( 'customize_preview_init', 'trestle_customizer_preview_js' );
|
||||
/**
|
||||
* Enqueue scripts for the site preview iframe on the customizer screen
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
function trestle_customizer_preview_js() {
|
||||
|
||||
wp_enqueue_script(
|
||||
'trestle_customizer',
|
||||
get_stylesheet_directory_uri() . '/includes/admin/customizer.js',
|
||||
array( 'jquery', 'customize-preview' ), // Dependencies
|
||||
null, // Version
|
||||
true // Load in Footer
|
||||
);
|
||||
}
|
||||
|
||||
add_action( 'customize_register', 'trestle_customizer_controls' );
|
||||
/**
|
||||
* Register Trestle's controls
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @param $wp_customize The Customizer Object
|
||||
*/
|
||||
function trestle_customizer_controls( $wp_customize ) {
|
||||
|
||||
/**
|
||||
* Trestle Settings Section
|
||||
*/
|
||||
|
||||
// Add the section
|
||||
$wp_customize->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 mobile logo', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'genesis-settings[trestle_logo_url_mobile]',
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Upload a mobile logo
|
||||
$wp_customize->add_setting(
|
||||
'genesis-settings[trestle_favicon_url]',
|
||||
array(
|
||||
'default' => genesis_get_option( 'trestle_favicon_url' ),
|
||||
'type' => 'option',
|
||||
'transport' => 'postMessage',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
new WP_Customize_Image_Control(
|
||||
$wp_customize,
|
||||
'trestle_favicon_control',
|
||||
array(
|
||||
'label' => __( 'Upload a favicon', 'trestle' ),
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'genesis-settings[trestle_favicon_url]',
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// 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' ),
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Primary nav extras
|
||||
$wp_customize->add_setting(
|
||||
'genesis-settings[trestle_custom_nav_extras_text]',
|
||||
array(
|
||||
'default' => genesis_get_option( 'trestle_custom_nav_extras_text' ),
|
||||
'type' => 'option',
|
||||
'transport' => 'postMessage',
|
||||
'capability' => 'edit_theme_options',
|
||||
)
|
||||
);
|
||||
$wp_customize->add_control(
|
||||
'trestle_custom_nav_extras_text_control',
|
||||
array(
|
||||
'section' => 'trestle_settings_section',
|
||||
'settings' => 'genesis-settings[trestle_custom_nav_extras_text]',
|
||||
'label' => __( 'Add search to mobile navigation', 'trestle' ),
|
||||
'type' => 'checkbox',
|
||||
)
|
||||
);
|
||||
|
||||
// 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',
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -14,13 +14,13 @@
|
||||
===========================================*/
|
||||
|
||||
add_action( 'init', 'trestle_load_bfa' );
|
||||
/**
|
||||
/**
|
||||
* Initialize the Better Font Awesome Library.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function trestle_load_bfa() {
|
||||
|
||||
|
||||
// Set the library initialization args
|
||||
$args = array(
|
||||
'version' => 'latest',
|
||||
@@ -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,18 +64,12 @@ 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 ) )
|
||||
wp_enqueue_script( 'trestle-custom-jquery', $upload_url . $custom_js_file, array( 'jquery' ), CHILD_THEME_VERSION, true );
|
||||
|
||||
// Pass PHP variables to theme jQuery
|
||||
$php_vars = array (
|
||||
'trestle_equal_cols_breakpoint' => genesis_get_option( 'trestle_equal_cols_breakpoint' ),
|
||||
);
|
||||
wp_localize_script( 'theme-jquery', 'trestle_vars', $php_vars );
|
||||
|
||||
}
|
||||
|
||||
add_filter( 'genesis_pre_load_favicon', 'trestle_do_custom_favicon' );
|
||||
@@ -106,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';
|
||||
|
||||
@@ -127,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;
|
||||
|
||||
}
|
||||
@@ -156,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 = '';
|
||||
@@ -173,7 +164,7 @@ function trestle_do_logos( $title, $inside, $wrap ) {
|
||||
$logo_html .= sprintf( '<img class="logo %s" alt="%s" src="%s" />',
|
||||
implode(' ', $classes),
|
||||
esc_attr( get_bloginfo( 'name' ) ),
|
||||
$logo_url
|
||||
$logo_url
|
||||
);
|
||||
}
|
||||
|
||||
@@ -190,8 +181,8 @@ function trestle_do_logos( $title, $inside, $wrap ) {
|
||||
$logo_html .= sprintf( '<img class="logo %s" alt="%s" src="%s" />',
|
||||
implode(' ', $classes),
|
||||
esc_attr( get_bloginfo( 'name' ) ),
|
||||
$logo_url_mobile
|
||||
);
|
||||
$logo_url_mobile
|
||||
);
|
||||
}
|
||||
|
||||
if ( $logo_html ) {
|
||||
@@ -202,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</%s>', $wrap, $inside, $wrap );
|
||||
$title .= genesis_html5() ? "{$inside}</{$wrap}>" : '';
|
||||
|
||||
//* Echo (filtered)
|
||||
// Echo (filtered)
|
||||
return $title;
|
||||
}
|
||||
|
||||
@@ -215,41 +206,6 @@ function trestle_do_logos( $title, $inside, $wrap ) {
|
||||
* Navigation
|
||||
===========================================*/
|
||||
|
||||
add_action( 'init', 'trestle_nav_modifications' );
|
||||
/**
|
||||
* Performs modifications to the primary navigation menu
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @see trestle_add_mobile_nav()
|
||||
* @see trestle_auto_nav_items()
|
||||
* @see trestle_custom_nav_extras()
|
||||
* @see trestle_nav_placeholder()
|
||||
*/
|
||||
function trestle_nav_modifications() {
|
||||
global $trestle_nav_title;
|
||||
|
||||
// Set title for Trestle placeholder navigation menu
|
||||
$trestle_nav_title = __( 'Trestle Auto Nav Placeholder', 'trestle' );
|
||||
|
||||
// Auto-generate nav if Genesis theme setting is checked
|
||||
if ( 1 == genesis_get_option( 'trestle_auto_nav' ) ) {
|
||||
add_filter( 'wp_nav_menu_items', 'trestle_auto_nav_items', 9, 2 );
|
||||
}
|
||||
|
||||
// Do custom nav extras
|
||||
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 );
|
||||
}
|
||||
|
||||
// Create placeholder navigation menu object if needed
|
||||
trestle_nav_placeholder();
|
||||
}
|
||||
|
||||
add_action( 'init', 'trestle_nav_primary_location' );
|
||||
/**
|
||||
* Move primary navigation into the header if need be.
|
||||
@@ -265,91 +221,25 @@ function trestle_nav_primary_location() {
|
||||
|
||||
}
|
||||
|
||||
add_filter( 'wp_nav_menu_items', 'trestle_custom_nav_extras', 10, 2 );
|
||||
/**
|
||||
* Auto-generates list of pages for use in the primary navigation menu.
|
||||
* Add custom nav extras.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @param string $nav_items <li> list of navigation menu items.
|
||||
* @param stdClass $menu_args Arguments for the menu.
|
||||
* @return string <li> 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,
|
||||
'echo' => false,
|
||||
'show_home' => ( genesis_get_option( 'trestle_include_home_link' ) && genesis_get_option( 'trestle_home_link_text' ) ) ? do_shortcode( genesis_get_option( 'trestle_home_link_text' ) ): genesis_get_option( 'trestle_include_home_link' ),
|
||||
'menu_class' => 'auto-menu'
|
||||
);
|
||||
|
||||
$ul_class = 'menu genesis-nav-menu menu-primary';
|
||||
|
||||
$menu_args = new stdClass();
|
||||
|
||||
$menu_args->theme_location = 'primary';
|
||||
|
||||
$nav_items = wp_page_menu( $args );
|
||||
|
||||
// Remove opening <div class="auto-nav"><ul>
|
||||
$nav_items = preg_replace( '/<div\s*.*auto-menu[^>]*>\s*<ul>/', '', $nav_items );
|
||||
|
||||
// Remove closing </ul></div>
|
||||
$nav_items = preg_replace( '/<\/ul>\s*<\/div>/', '', $nav_items );
|
||||
}
|
||||
|
||||
return $nav_items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces standard Genesis navigation extras with custom input navigation extras.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @param string $nav_items <li> list of menu items.
|
||||
* @param stdClass $menu_args Arguments for the menu.
|
||||
* @param string $nav_items <li> list of menu items.
|
||||
* @param stdClass $menu_args Arguments for the menu.
|
||||
* @return string <li> list of menu items with custom navigation extras <li> 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 . '<li class="right custom">' . do_shortcode( genesis_get_option( 'trestle_custom_nav_extras_text' ) ) . '</li>';
|
||||
|
||||
if ( 'primary' == $menu_args->theme_location && genesis_get_option( 'trestle_custom_nav_extras_text' ) ) {
|
||||
return $nav_items . '<li class="right custom">' . get_search_form( false ) . '</li>';
|
||||
}
|
||||
|
||||
return $nav_items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a placeholder navigation menu object.
|
||||
*
|
||||
* When using Trestle's auto-generated navigation feature,
|
||||
* it is necessary to ensure that some nav menu object is
|
||||
* selected as primary otherwise no navigation will be generated.
|
||||
*
|
||||
* @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
|
||||
if ( 1 == genesis_get_option( 'trestle_auto_nav' ) && ! wp_get_nav_menu_object( $trestle_nav_title ) ) {
|
||||
wp_create_nav_menu( $trestle_nav_title );
|
||||
}
|
||||
|
||||
// Assign placeholder menu to 'primary' if auto-nav is selected and there is no current primary menu
|
||||
if ( 1 == genesis_get_option( 'trestle_auto_nav' ) && ! wp_get_nav_menu_object( $trestle_nav_title ) && ! has_nav_menu( 'primary' ) ) {
|
||||
$menu_locations = get_theme_mod( 'nav_menu_locations' );
|
||||
$menu_locations['primary'] = wp_get_nav_menu_object( $trestle_nav_title )->term_id;
|
||||
set_theme_mod( 'nav_menu_locations', $menu_locations );
|
||||
}
|
||||
|
||||
// Remove placeholder menu if auto-nav is disabled
|
||||
$menus = get_registered_nav_menus();
|
||||
|
||||
if ( 1 != genesis_get_option( 'trestle_auto_nav' ) && wp_get_nav_menu_object( $trestle_nav_title ) && $trestle_nav_title != $menus['primary'] )
|
||||
wp_delete_nav_menu( $trestle_nav_title );
|
||||
}
|
||||
|
||||
|
||||
/*===========================================
|
||||
* Posts & Pages
|
||||
@@ -357,7 +247,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
|
||||
*
|
||||
@@ -365,6 +255,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 ) )
|
||||
@@ -383,13 +274,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' );
|
||||
@@ -398,7 +290,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 );
|
||||
@@ -412,7 +304,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 );
|
||||
@@ -438,7 +330,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;
|
||||
}
|
||||
|
||||
@@ -459,10 +353,11 @@ 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' ) );
|
||||
|
||||
if ( $custom_text ) {
|
||||
if ( $custom_text ) {
|
||||
return '… <a class="more-link" title="' . $custom_text . '" href="' . get_permalink() . '">' . $custom_text . '</a>';
|
||||
} else {
|
||||
return $default_text;
|
||||
|
||||
+85
-137
@@ -7,75 +7,83 @@
|
||||
*/
|
||||
|
||||
// Executes when the document is ready
|
||||
jQuery(document).ready(function( $ ) {
|
||||
jQuery( document ).ready( function( $ ) {
|
||||
|
||||
// Get PHP vars passed via wp_localize_script()
|
||||
trestleEqualColsBreakpoint = trestle_vars.trestle_equal_cols_breakpoint;
|
||||
trestleEqualHeightCols = trestle_vars.trestle_equal_height_cols;
|
||||
// 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('<div class="toggle-buttons" />');
|
||||
$('.site-header .widget-area, .nav-primary').each(function(i) {
|
||||
var target = $(this);
|
||||
// Create mobile header toggle buttons
|
||||
$( '.site-header .title-area' ).after( '<div class="toggle-buttons" />' );
|
||||
$( '.site-header .widget-area, .nav-primary' ).each( function( i ) {
|
||||
|
||||
var buttonClass = 'toggle-button';
|
||||
// Store target
|
||||
$target = $( this );
|
||||
|
||||
// Add classes of target element
|
||||
var targetClass = target.attr('class').split(/\s+/);
|
||||
$.each(targetClass, function(index,value) {
|
||||
buttonClass += ' targets-' + value;
|
||||
// Scope variables
|
||||
var $target, buttonClass, targetClass;
|
||||
|
||||
// Setup classes
|
||||
buttonClass = 'toggle-button';
|
||||
targetClass = $target.attr( 'class' ).split( /\s+/ );
|
||||
|
||||
// Add targets-[] class to buttonClass
|
||||
$.each( targetClass, function( index, value ) {
|
||||
buttonClass += ' targets-' + value;
|
||||
});
|
||||
|
||||
if ( $(this).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('<a id="toggle-button-' + i + '" class="' + buttonClass + '" href="#">Toggle</a>');
|
||||
$( '.toggle-buttons' ).prepend( '<a id="toggle-button-' + i + '" class="' + buttonClass + '" href="#">Toggle</a>' );
|
||||
|
||||
// Add target class to nav and widget areas
|
||||
target.addClass('toggle-target-' + i );
|
||||
$target.addClass( 'toggle-target-' + i );
|
||||
});
|
||||
|
||||
// Toggle widget areas and primary nav
|
||||
$('.site-header .toggle-button').click( function( event ) {
|
||||
|
||||
|
||||
// A widget areas and primary nav mobile toggle functionality
|
||||
$( '.site-header .toggle-button' ).click( function( event ) {
|
||||
|
||||
// Prevent default behavior
|
||||
event.preventDefault();
|
||||
|
||||
// Scope our variables
|
||||
var $button, $target;
|
||||
|
||||
// Get toggle button that was clicked
|
||||
var button = $(this);
|
||||
$button = $( this );
|
||||
|
||||
// Remove focus
|
||||
button.blur();
|
||||
|
||||
var target = $( '.toggle-target-' + button.attr('id').match(/\d+/) );
|
||||
// Match the button to the right target
|
||||
$target = $( '.toggle-target-' + $button.attr( 'id' ).match( /\d+/ ) );
|
||||
console.log( 'Target: ' + $target.attr('class'));
|
||||
|
||||
// Toggle buttons
|
||||
button.toggleClass('open');
|
||||
$('.site-header .toggle-button').not(button).removeClass('open');
|
||||
$button.toggleClass( 'open' );
|
||||
$( '.site-header .toggle-button' ).not( $button ).removeClass( 'open' );
|
||||
|
||||
// Toggle targets
|
||||
target.toggleClass('open');
|
||||
$('[class*="toggle-target"]').not(target).removeClass('open');
|
||||
$target.toggleClass( 'open' );
|
||||
$( '[class*="toggle-target"]' ).not( $target ).removeClass( 'open' );
|
||||
|
||||
// Remove focus
|
||||
$button.blur();
|
||||
|
||||
});
|
||||
|
||||
@@ -83,112 +91,52 @@ jQuery(document).ready(function( $ ) {
|
||||
var closedIcon = '+';
|
||||
var openIcon = '-';
|
||||
|
||||
$('.nav-primary').find('.genesis-nav-menu .parent:not(.current-menu-item, .current_page_item, .current_page_parent, .current_page_ancestor) > a').after('<a class="sub-icon" href="#">' + closedIcon + '</a>');
|
||||
$('.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('<a class="sub-icon" href="#">' + openIcon + '</a>');
|
||||
|
||||
// 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( '<a class="sub-icon" href="#">' + closedIcon + '</a>' );
|
||||
$( '.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( '<a class="sub-icon" href="#">' + openIcon + '</a>' );
|
||||
|
||||
// Mobile navigation expand/contract functionality
|
||||
$('.sub-icon').click(function(event) {
|
||||
|
||||
$( '.sub-icon' ).click( function( event ) {
|
||||
|
||||
// Prevent default behavior
|
||||
event.preventDefault();
|
||||
|
||||
// Get icon clicked
|
||||
var icon = $(this);
|
||||
|
||||
// Get icon click
|
||||
var $icon = $( this );
|
||||
|
||||
// Remove focus
|
||||
icon.blur();
|
||||
$icon.blur();
|
||||
|
||||
icon.next('ul').slideToggle().toggleClass('open');
|
||||
if ( icon.text().indexOf( closedIcon ) !== -1 )
|
||||
icon.text(openIcon);
|
||||
else if ( icon.text().indexOf( openIcon ) !== -1 )
|
||||
icon.text(closedIcon);
|
||||
// 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 );
|
||||
}
|
||||
});
|
||||
|
||||
$('.widget-area-toggle').click(function(event) {
|
||||
|
||||
|
||||
// Header widget area expand/contract functionality
|
||||
$( '.widget-area-toggle' ).click( function( event ) {
|
||||
|
||||
// Prevent default behavior
|
||||
event.preventDefault();
|
||||
|
||||
// Get button clicked
|
||||
var button = $(this);
|
||||
var $button = $( this );
|
||||
|
||||
// Remove focus
|
||||
button.blur();
|
||||
$button.blur();
|
||||
|
||||
button.toggleClass('open');
|
||||
button.next('.widget-area').slideToggle();
|
||||
// Expand/contract
|
||||
$button.toggleClass( 'open' ).next( '.widget-area' ).slideToggle();
|
||||
});
|
||||
|
||||
// Equal height homepage cols
|
||||
$('.equal-height-genesis-extender-cols .ez-home-container-area').each(function() {
|
||||
$(this).children('.widget-area').equalHeights(null,null,trestleEqualColsBreakpoint);
|
||||
});
|
||||
// Executes when complete page is fully loaded, including all frames, objects, and images
|
||||
$( window ).on( 'load', function() {
|
||||
|
||||
|
||||
}); /* end of as page load scripts */
|
||||
});
|
||||
|
||||
|
||||
// Executes when complete page is fully loaded, including all frames, objects, and images
|
||||
jQuery(window).load(function( $ ) {
|
||||
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Equal Heights Plugin
|
||||
*
|
||||
* Equalize the heights of elements. Great for columns or any elements
|
||||
* that need to be the same size (floats, etc).
|
||||
*
|
||||
* Based on Rob Glazebrook's (cssnewbie.com) script
|
||||
*
|
||||
* Additions
|
||||
* - ability to include a break point (the minimum viewport width at which the script does anything)
|
||||
* - binds the script to run on load, orientation change (for mobile), and when resizing the window
|
||||
*
|
||||
* Usage: jQuery(object).equalHeights([minHeight], [maxHeight], [breakPoint]);
|
||||
*
|
||||
* Example 1: jQuery(".cols").equalHeights(); Sets all columns to the same height.
|
||||
* Example 2: jQuery(".cols").equalHeights(400); Sets all cols to at least 400px tall.
|
||||
* Example 3: jQuery(".cols").equalHeights(100,300); Cols are at least 100 but no more
|
||||
* than 300 pixels tall. Elements with too much content will gain a scrollbar.
|
||||
* Example 4: jQuery(".cols").equalHeights(null, null,768); Only resize columns above 768px viewport
|
||||
*
|
||||
*/
|
||||
(function( $ ) {
|
||||
$.fn.equalHeights = function(minHeight, maxHeight, breakPoint) {
|
||||
var items = this;
|
||||
breakPoint = breakPoint || 0;
|
||||
|
||||
// Bind functionality to appropriate events
|
||||
$(window).on('load orientationchange resize equalheights', function() {
|
||||
tallest = (minHeight) ? minHeight : 0;
|
||||
items.each(function() {
|
||||
$(this).height('auto');
|
||||
if($(this).outerHeight() > tallest) {
|
||||
tallest = $(this).outerHeight();
|
||||
}
|
||||
});
|
||||
|
||||
// Get viewport width (taking scrollbars into account)
|
||||
var e = window;
|
||||
a = 'inner';
|
||||
if (!('innerWidth' in window )) {
|
||||
a = 'client';
|
||||
e = document.documentElement || document.body;
|
||||
}
|
||||
width = e[ a+'Width' ];
|
||||
|
||||
// Equalize column heights if above the specified breakpoint
|
||||
if ( width >= breakPoint ) {
|
||||
if((maxHeight) && tallest > maxHeight) tallest = maxHeight;
|
||||
console.log(tallest);
|
||||
return items.each(function() {
|
||||
$(this).height(tallest);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
})(jQuery);
|
||||
}); /* end of page load scripts */
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -1364,6 +1372,7 @@ Site Header
|
||||
background-color: #eee;
|
||||
border: 1px solid #ddd;
|
||||
border-width: 1px 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.site-header .search-form {
|
||||
@@ -1401,23 +1410,21 @@ Site Header
|
||||
content: "\f0c9";
|
||||
}
|
||||
|
||||
|
||||
.nav-primary,
|
||||
.site-header .nav-primary,
|
||||
.site-header .widget-area {
|
||||
position: absolute;
|
||||
z-index: -999;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
max-height: 0;
|
||||
opacity: 0;
|
||||
filter: alpha(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: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
-moz-transition: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
-ms-transition: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
-o-transition: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
transition: opacity 0.25s ease, z-index 0s 0.25s;
|
||||
}
|
||||
|
||||
.site-container > .nav-primary {
|
||||
@@ -1427,9 +1434,13 @@ Site Header
|
||||
.nav-primary.open,
|
||||
.widget-area.open {
|
||||
z-index: 50;
|
||||
max-height: 9999px;
|
||||
opacity: 1;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
||||
filter: alpha(opacity=100);
|
||||
-webkit-transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
-moz-transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
-ms-transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
-o-transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
transition: z-index 0s ease, opacity 0.25s 0s;
|
||||
}
|
||||
|
||||
|
||||
@@ -1605,7 +1616,7 @@ Site Navigation
|
||||
|
||||
.genesis-nav-menu > .right .search-form {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.genesis-nav-menu > .right input[type="submit"] {
|
||||
@@ -1664,12 +1675,6 @@ Site Navigation
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.site-header .nav-primary a:hover,
|
||||
.site-header .nav-primary [class*="current-"] > a,
|
||||
.site-header .nav-primary [class*="current_"] > a {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.site-header .right {
|
||||
padding-right: 0;
|
||||
}
|
||||
@@ -2463,7 +2468,7 @@ Media Queries
|
||||
--------------------------------------------- */
|
||||
|
||||
.genesis-nav-menu > .right {
|
||||
display: inline-block;
|
||||
display: none;
|
||||
float: right;
|
||||
border-top: none;
|
||||
}
|
||||
@@ -2473,10 +2478,6 @@ Media Queries
|
||||
margin: 0 0 0 2rem;
|
||||
}
|
||||
|
||||
.genesis-nav-menu > .search form {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.genesis-nav-menu > .right input[type="submit"] {
|
||||
display: inline-block;
|
||||
}
|
||||
@@ -2552,6 +2553,16 @@ Media Queries
|
||||
padding: 0.6em 1.2em;
|
||||
}
|
||||
|
||||
.site-header .nav-primary .menu > li:last-of-type:not(.right) {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.site-header .nav-primary a:hover,
|
||||
.site-header .nav-primary [class*="current-"] > a,
|
||||
.site-header .nav-primary [class*="current_"] > a {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
|
||||
/* Plugins
|
||||
--------------------------------------------- */
|
||||
|
||||
Reference in New Issue
Block a user