Merge branch 'develop'

This commit is contained in:
Robin Cornett
2014-11-21 11:49:44 -05:00
8 changed files with 136 additions and 65 deletions
+6
View File
@@ -140,6 +140,12 @@ _Note:_ unless you check the option to __Move Excerpts/Archive Descriptions__, a
## Changelog
### 1.4.3
* better decision making process for firing up scripts/styles
* moved scripts to footer
* set plugin version to be used for scripts/style versions
* bugfix: now we play nice with silly Jetpack Photon
### 1.4.2
* bugfix: titles fixed for Genesis Blog Template
+1 -1
View File
@@ -12,7 +12,7 @@
* Plugin Name: Display Featured Image for Genesis
* Plugin URI: http://github.com/robincornett/display-featured-image-genesis/
* Description: This plugin requires the Genesis Framework. It varies the display of the post or page featured image, depending on size.
* Version: 1.4.2
* Version: 1.4.3
* Author: Robin Cornett
* Author URI: http://robincornett.com
* License: GPL-2.0+
@@ -8,6 +8,13 @@
*/
class Display_Featured_Image_Genesis_Common {
/**
* current plugin version
* @var string
* @since 1.4.3
*/
public static $version = '1.4.3';
/**
* set and retreive variables for the featured image.
* @return $item
@@ -15,6 +22,7 @@ class Display_Featured_Image_Genesis_Common {
* @since 1.1.0
*/
public static function get_image_variables() {
$item = new stdClass();
global $post;
@@ -25,29 +33,51 @@ class Display_Featured_Image_Genesis_Common {
$move_excerpts = $displaysetting['move_excerpts'];
$postspage_image = get_post_thumbnail_id( $postspage );
if ( is_singular() ) {
$image_id = get_post_thumbnail_id( $post->ID );
$post_thumbnail = wp_get_attachment_image_src( $image_id, 'original' );
if ( is_singular() ) { // just checking for handling conditional variables set by width
$thumb_metadata = wp_get_attachment_metadata( get_post_thumbnail_id( $post->ID ) ); // needed only for the next line
$width = '';
if ( $thumb_metadata ) {
$width = $thumb_metadata['width'];
}
}
// variables used outside this function
// sitewide variables used outside this function
$item->fallback = esc_attr( $displaysetting['default'] ); // url only
$item->fallback_id = self::get_image_id( $item->fallback ); // gets image id with attached metadata
$item->large = absint( get_option( 'large_size_w' ) );
$item->medium = absint( get_option( 'medium_size_w' ) );
$item->reduce = absint( $displaysetting['less_header'] );
// Set Featured Image Source
$image_id = $item->fallback_id; // set here with fallback preemptively
// Set Featured Image source ID
$image_id = ''; // blank if nothing else
if ( is_home() && 'page' === $frontpage && ! empty( $postspage_image ) ) { // if on the blog page and it has a post_thumbnail
$image_id = get_post_thumbnail_id( $postspage );
// set here with fallback preemptively, if it exists
if ( ! empty( $item->fallback ) ) {
$image_id = $item->fallback_id;
}
// if it's a home page with a static front page, and there is a featured image set on the home page
if ( is_home() && 'page' === $frontpage && ! empty( $postspage_image ) ) {
$image_id = $postspage_image;
}
// any singular post/page/CPT with either a post_thumbnail larger than medium size OR there is no $item->fallback
elseif ( is_singular() && ( $post_thumbnail[1] > $item->medium || empty( $item->fallback ) ) && ! in_array( get_post_type(), self::use_fallback_image() ) ) {
elseif ( is_singular() && ( $width > $item->medium || empty( $item->fallback ) ) && ! in_array( get_post_type(), self::use_fallback_image() ) ) {
$image_id = get_post_thumbnail_id( $post->ID );
}
//now actually set the backstretch image source, which includes some metadata
$metadata = wp_get_attachment_metadata( $image_id );
// turn Photon off so we can get the correct image
$photon_removed = '';
if ( class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'photon' ) ) {
$photon_removed = remove_filter( 'image_downsize', array( Jetpack_Photon::instance(), 'filter_image_downsize' ) );
}
$item->backstretch = wp_get_attachment_image_src( $image_id, 'displayfeaturedimage_backstretch' );
$item->width = '';
if ( ! empty( $item->backstretch ) ) {
$item->width = $metadata['width'];
}
// set a content variable so backstretch doesn't show if full size image exists in post.
$item->content = '';
@@ -56,12 +86,17 @@ class Display_Featured_Image_Genesis_Common {
$fullsize = wp_get_attachment_image_src( $image_id, 'original' );
$item->content = strpos( $post->post_content, 'src="' . $fullsize[0] );
// reset backstretch image source to fallback if it exists and the featured image is being used in content.
if ( ( ! empty( $item->fallback ) && false !== $item->content ) || empty( $post->post_content ) ) {
if ( ! empty( $item->fallback ) && false !== $item->content ) {
$item->backstretch = wp_get_attachment_image_src( $item->fallback_id, 'displayfeaturedimage_backstretch' );
$item->content = strpos( $post->post_content, 'src="' . $item->backstretch[0] );
}
}
// turn Photon back on
if ( $photon_removed ) {
add_filter( 'image_downsize', array( Jetpack_Photon::instance(), 'filter_image_downsize' ), 10, 3 );
}
// Set Post/Page Title
$item->title = $item->description = '';
@@ -1,4 +1,11 @@
<?php
/**
* @package DisplayFeaturedImageGenesis
* @author Robin Cornett <hello@robincornett.com>
* @license GPL-2.0+
* @link http://robincornett.com
* @copyright 2014 Robin Cornett Creative, LLC
*/
class Display_Featured_Image_Genesis_Description {
@@ -35,14 +35,22 @@ class Display_Featured_Image_Genesis_Output {
*/
public function load_scripts() {
$item = Display_Featured_Image_Genesis_Common::get_image_variables();
if ( ( ! empty( $item->backstretch ) && false === $item->content ) || ( ! is_singular() && ! empty( $item->backstretch ) ) ) {
$version = Display_Featured_Image_Genesis_Common::$version;
$item = Display_Featured_Image_Genesis_Common::get_image_variables();
wp_enqueue_style( 'displayfeaturedimage-style', plugins_url( 'includes/css/display-featured-image-genesis.css', dirname( __FILE__ ) ), array(), 1.0 );
// if there is no backstretch image set, or it is too small, die
if ( empty( $item->backstretch ) || $item->width <= $item->medium ) {
return;
}
// if the featured image is not part of the content, or we're not on a singular page, carry on
if ( false === $item->content || ! is_singular() ) {
if ( $item->backstretch[1] > $item->large ) {
wp_enqueue_script( 'displayfeaturedimage-backstretch', plugins_url( '/includes/js/backstretch.js', dirname( __FILE__ ) ), array( 'jquery' ), '1.0.0' );
wp_enqueue_script( 'displayfeaturedimage-backstretch-set', plugins_url( '/includes/js/backstretch-set.js', dirname( __FILE__ ) ), array( 'jquery', 'displayfeaturedimage-backstretch' ), '1.0.0' );
wp_enqueue_style( 'displayfeaturedimage-style', plugins_url( 'includes/css/display-featured-image-genesis.css', dirname( __FILE__ ) ), array(), $version );
//check if the image is large enough for backstretch
if ( $item->width > $item->large ) {
wp_enqueue_script( 'displayfeaturedimage-backstretch', plugins_url( '/includes/js/backstretch.js', dirname( __FILE__ ) ), array( 'jquery' ), $version, true );
wp_enqueue_script( 'displayfeaturedimage-backstretch-set', plugins_url( '/includes/js/backstretch-set.js', dirname( __FILE__ ) ), array( 'jquery', 'displayfeaturedimage-backstretch' ), $version, true );
wp_localize_script( 'displayfeaturedimage-backstretch-set', 'BackStretchVars', array(
'src' => esc_url( $item->backstretch[0] ),
@@ -53,9 +61,9 @@ class Display_Featured_Image_Genesis_Output {
}
elseif ( ( $item->backstretch[1] <= $item->large ) && ( $item->backstretch[1] > $item->medium ) ) {
add_action( 'genesis_before_entry', array( $this, 'do_large_image' ) ); // HTML5
add_action( 'genesis_before_post', array( $this, 'do_large_image' ) ); // XHTML
// otherwise it's a large image.
elseif ( $item->width <= $item->large ) {
add_action( 'genesis_before_loop', array( $this, 'do_large_image' ) ); // works for both HTML5 and XHTML
}
}
}
@@ -67,15 +75,18 @@ class Display_Featured_Image_Genesis_Output {
* @since 1.0.0
*/
public function add_body_class( $classes ) {
global $post;
$item = Display_Featured_Image_Genesis_Common::get_image_variables();
if ( ( ! empty( $item->backstretch ) && false === $item->content ) || ( ! is_singular() && ! empty( $item->backstretch ) ) ) {
if ( $item->backstretch[1] > $item->large ) {
if ( empty( $item->backstretch ) || $item->width <= $item->medium ) {
return $classes;
}
if ( false === $item->content || ! is_singular() ) {
if ( $item->width > $item->large ) {
$classes[] = 'has-leader';
}
elseif ( ( $item->backstretch[1] <= $item->large ) && ( $item->backstretch[1] > $item->medium ) ) {
elseif ( $item->width <= $item->large ) {
$classes[] = 'large-featured';
}
}
@@ -140,8 +151,11 @@ class Display_Featured_Image_Genesis_Output {
* @since 1.0.0
*/
public function do_large_image() {
global $post;
$image = get_the_post_thumbnail( $post->ID, 'large', array( 'class' => 'aligncenter featured', 'alt' => the_title_attribute( 'echo=0' ) ) );
$item = Display_Featured_Image_Genesis_Common::get_image_variables();
$image = sprintf( '<img src="%1$s" class="aligncenter featured" alt="%2$s" title="%2$s" />',
esc_url( $item->backstretch[0] ),
esc_attr( $item->title )
);
echo $image;
}
@@ -160,7 +160,7 @@ class Display_Featured_Image_Genesis_Settings {
echo '<input id="upload_default_image" type="button" class="upload_default_image button" value="' . __( 'Select Default Image', 'display-featured-image-genesis' ) . '" />';
echo '<p class="description">' . sprintf(
__( 'If you would like to use a default image for the featured image, upload it here. Must be at least %1$s pixels wide.', 'display-featured-image-genesis' ),
absint( $item->large+1 )
absint( $item->large + 1 )
) . '</p>';
}
@@ -217,7 +217,8 @@ class Display_Featured_Image_Genesis_Settings {
$valid = $this->is_valid_img_ext( $new_value );
$large = get_option( 'large_size_w' );
$id = Display_Featured_Image_Genesis_Common::get_image_id( $new_value );
$file = wp_get_attachment_image_src( $id, 'original' );
$metadata = wp_get_attachment_metadata( $id );
$width = $metadata['width'];
// ok for field to be empty
if ( $new_value ) {
@@ -234,7 +235,7 @@ class Display_Featured_Image_Genesis_Settings {
);
}
// if file is an image, but is too small, throw it back
elseif ( $file[1] <= $large ) {
elseif ( $width <= $large ) {
$message = __( 'Sorry, your image is too small. The Default Featured Image has been reset to the last valid setting.', 'display-featured-image-genesis' );
$new_value = $this->displaysetting['default'];
@@ -308,7 +309,7 @@ class Display_Featured_Image_Genesis_Settings {
'<p>' . __( 'You may set a large image to be used sitewide if a featured image is not available. This image will show on posts, pages, and archives.', 'display-featured-image-genesis' ) . '</p>' .
'<p>' . sprintf(
__( 'Supported file types are: jpg, jpeg, png, and gif. The image must be at least %1$s pixels wide.', 'display-featured-image-genesis' ),
absint( $large+1 )
absint( $large + 1 )
) . '</p>';
$skipfront_help =
@@ -357,7 +358,9 @@ class Display_Featured_Image_Genesis_Settings {
* @since 1.2.1
*/
public function enqueue_scripts() {
wp_register_script( 'displayfeaturedimage-upload', plugins_url( '/includes/js/settings-upload.js', dirname( __FILE__ ) ), array( 'jquery', 'media-upload', 'thickbox' ), '1.0.0' );
$version = Display_Featured_Image_Genesis_Common::$version;
wp_register_script( 'displayfeaturedimage-upload', plugins_url( '/includes/js/settings-upload.js', dirname( __FILE__ ) ), array( 'jquery', 'media-upload', 'thickbox' ), $version );
if ( 'appearance_page_displayfeaturedimagegenesis' === get_current_screen()->id ) {
wp_enqueue_media();
+31 -31
View File
@@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Display Featured Image for Genesis 1.4.1\n"
"Project-Id-Version: Display Featured Image for Genesis 1.4.3\n"
"POT-Creation-Date: 2014-09-17 21:11-0500\n"
"PO-Revision-Date: 2014-11-11 13:30-0500\n"
"PO-Revision-Date: 2014-11-18 21:07-0500\n"
"Last-Translator: Robin Cornett <hello@robincornett.com>\n"
"Language-Team: Robin Cornett <hello@robincornett.com>\n"
"Language: en_US\n"
@@ -33,80 +33,80 @@ msgstr ""
msgid "Display Featured Image Settings"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:81
#: ../includes/class-displayfeaturedimagegenesis-settings.php:77
msgid "Optional Sitewide Settings"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:88
#: ../includes/class-displayfeaturedimagegenesis-settings.php:307
#: ../includes/class-displayfeaturedimagegenesis-settings.php:333
#: ../includes/class-displayfeaturedimagegenesis-settings.php:84
#: ../includes/class-displayfeaturedimagegenesis-settings.php:304
#: ../includes/class-displayfeaturedimagegenesis-settings.php:330
msgid "Height"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:96
#: ../includes/class-displayfeaturedimagegenesis-settings.php:339
#: ../includes/class-displayfeaturedimagegenesis-settings.php:92
#: ../includes/class-displayfeaturedimagegenesis-settings.php:336
msgid "Default Featured Image"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:104
#: ../includes/class-displayfeaturedimagegenesis-settings.php:100
msgid "Skip Front Page"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:112
#: ../includes/class-displayfeaturedimagegenesis-settings.php:327
#: ../includes/class-displayfeaturedimagegenesis-settings.php:108
#: ../includes/class-displayfeaturedimagegenesis-settings.php:324
msgid "Move Excerpts/Archive Descriptions"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:129
#: ../includes/class-displayfeaturedimagegenesis-settings.php:125
msgid ""
"The Display Featured Image for Genesis plugin has just a few optional "
"settings. Check the Help tab for more information. "
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:140
#: ../includes/class-displayfeaturedimagegenesis-settings.php:136
msgid "Pixels to remove "
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:142
#: ../includes/class-displayfeaturedimagegenesis-settings.php:138
msgid ""
"Changing this number will reduce the backstretch image height by this number "
"of pixels. Default is zero."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:164
#: ../includes/class-displayfeaturedimagegenesis-settings.php:160
msgid "Select Default Image"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:166
#: ../includes/class-displayfeaturedimagegenesis-settings.php:162
#, php-format
msgid ""
"If you would like to use a default image for the featured image, upload it "
"here. Must be at least %1$s pixels wide."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:178
#: ../includes/class-displayfeaturedimagegenesis-settings.php:174
msgid "Do not show the Featured Image on the Front Page of the site."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:188
#: ../includes/class-displayfeaturedimagegenesis-settings.php:184
msgid ""
"Move excerpts (if used) on single pages and move archive/taxonomy "
"descriptions to overlay the Featured Image."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:230
#: ../includes/class-displayfeaturedimagegenesis-settings.php:227
msgid ""
"Sorry, that is an invalid file type. The Default Featured Image has been "
"reset to the last valid setting."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:242
#: ../includes/class-displayfeaturedimagegenesis-settings.php:239
msgid ""
"Sorry, your image is too small. The Default Featured Image has been reset to "
"the last valid setting."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:308
#: ../includes/class-displayfeaturedimagegenesis-settings.php:305
msgid ""
"Depending on how your header/nav are set up, or if you just do not want your "
"backstretch image to extend to the bottom of the user screen, you may want "
@@ -114,29 +114,29 @@ msgid ""
"image, making it shorter."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:311
#: ../includes/class-displayfeaturedimagegenesis-settings.php:308
msgid "Set a Default Featured Image"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:312
#: ../includes/class-displayfeaturedimagegenesis-settings.php:309
msgid ""
"You may set a large image to be used sitewide if a featured image is not "
"available. This image will show on posts, pages, and archives."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:314
#: ../includes/class-displayfeaturedimagegenesis-settings.php:311
#, php-format
msgid ""
"Supported file types are: jpg, jpeg, png, and gif. The image must be at "
"least %1$s pixels wide."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:319
#: ../includes/class-displayfeaturedimagegenesis-settings.php:345
#: ../includes/class-displayfeaturedimagegenesis-settings.php:316
#: ../includes/class-displayfeaturedimagegenesis-settings.php:342
msgid "Show on Front Page"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:320
#: ../includes/class-displayfeaturedimagegenesis-settings.php:317
msgid ""
"If you set a Default Featured Image, it will show on every post/page of your "
"site. This may not be desirable on child themes with a front page "
@@ -146,7 +146,7 @@ msgid ""
"image for that page individually."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:322
#: ../includes/class-displayfeaturedimagegenesis-settings.php:319
#, php-format
msgid ""
"If you want to prevent entire groups of posts from not using the Featured "
@@ -154,7 +154,7 @@ msgid ""
"your theme functions.php file."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:328
#: ../includes/class-displayfeaturedimagegenesis-settings.php:325
msgid ""
"By default, archive descriptions (set on the Genesis Archive Settings pages) "
"show below the Default Featured Image, while the archive title displays on "
@@ -162,11 +162,11 @@ msgid ""
"optional excerpts will display in a box overlaying the Featured Image."
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:351
#: ../includes/class-displayfeaturedimagegenesis-settings.php:348
msgid "Move Excerpts"
msgstr ""
#: ../includes/class-displayfeaturedimagegenesis-settings.php:370
#: ../includes/class-displayfeaturedimagegenesis-settings.php:369
msgid "Choose Image"
msgstr ""
+9 -3
View File
@@ -5,7 +5,7 @@ Donate link: https://robincornett.com/donate/
Tags: backstretch, featured image, featured images, genesis, studiopress, post thumbnails
Requires at least: 3.8
Tested up to: 4.0
Stable tag: 1.4.2
Stable tag: 1.4.3
License: GPL-2.0+
License URI: http://www.gnu.org/licenses/gpl-2.0.txt
@@ -106,11 +106,17 @@ _Note:_ unless you check the option to __Move Excerpts/Archive Descriptions__, a
2. Set a Default Featured Image on the Appearance > Display Featured Image Settings page.
== Upgrade Notice ==
= 1.4.1 =
bugfix: correctly added post type support for excerpts to pages
= 1.4.3 =
better decision making process, scripts moved to footer, photon support
== Changelog ==
= 1.4.3 =
* better decision making process for firing up scripts/styles
* moved scripts to footer
* set plugin version to be used for scripts/style versions
* bugfix: now we play nice with silly Jetpack Photon
= 1.4.2 =
* bugfix: titles fixed for Genesis Blog Template