function jetpack_get_site_icon($blog_id = null, $size = '512', $default = '', $alt = false)
 {
     if (!is_int($blog_id)) {
         $blog_id = get_current_blog_id();
     }
     $size = esc_attr($size);
     $class = "avatar avatar-{$size}";
     $alt = $alt ? esc_attr($alt) : __('Site Icon', 'jetpack');
     $src = esc_url(jetpack_site_icon_url($blog_id, $size, $default));
     $avatar = "<img alt='{$alt}' src='{$src}' class='{$class}' height='{$size}' width='{$size}' />";
     /**
      * Filters the display options for the Site Icon.
      *
      * @module site-icon
      *
      * @since 3.2.0
      *
      * @param string $avatar The Site Icon in an html image tag.
      * @param int    $blog_id The local site Blog ID.
      * @param string $size The size of the Site Icon, default is 512.
      * @param string $default The default URL for the Site Icon.
      * @param string $alt The alt tag for the avatar.
      */
     return apply_filters('jetpack-get_site_icon', $avatar, $blog_id, $size, $default, $alt);
 }
예제 #2
0
 function jetpack_get_site_icon($blog_id = null, $size = '96', $default = '', $alt = false)
 {
     if (!is_int($blog_id)) {
         $blog_id = get_current_blog_id();
     }
     $size = esc_attr($size);
     $class = "avatar avatar-{$size}";
     $alt = $alt ? esc_attr($alt) : __('Site Icon', 'jetpack');
     $src = esc_url(jetpack_site_icon_url($blog_id, $size, $default));
     $avatar = "<img alt='{$alt}' src='{$src}' class='{$class}' height='{$size}' width='{$size}' />";
     return apply_filters('jetpack-get_site_icon', $avatar, $blog_id, $size, $default, $alt);
 }
예제 #3
0
 /**
  * Add meta elements to a blog header to light up Blavatar icons recognized by user agents.
  * @link http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#rel-icon HTML5 specification link icon
  * @todo change Blavatar ico sizes once all Blavatars have been backfilled to new code
  * @todo update apple-touch-icon to support retina display 114px and iPad 72px
  */
 public function site_icon_add_meta()
 {
     if (apply_filters('site_icon_has_favicon', false)) {
         return;
     }
     $url_114 = jetpack_site_icon_url(null, 114);
     $url_72 = jetpack_site_icon_url(null, 72);
     $url_32 = jetpack_site_icon_url(null, 32);
     if ($url_32) {
         echo '<link rel="icon" href="' . esc_url($url_32) . '" sizes="32x32" />' . "\n";
         echo '<link rel="apple-touch-icon-precomposed" href="' . esc_url($url_114) . '">' . "\n";
         // windows tiles
         echo '<meta name="msapplication-TileImage" content="' . esc_url($url_114) . '"/>' . "\n";
     }
 }
function jetpack_og_get_image($width = 200, $height = 200, $max_images = 4)
{
    // Facebook requires thumbnails to be a minimum of 200x200
    $image = '';
    if (is_singular() && !is_home()) {
        global $post;
        $image = '';
        // Grab obvious image if $post is an attachment page for an image
        if (is_attachment($post->ID) && 'image' == substr($post->post_mime_type, 0, 5)) {
            $image = wp_get_attachment_url($post->ID);
        }
        // Attempt to find something good for this post using our generalized PostImages code
        if (!$image && class_exists('Jetpack_PostImages')) {
            $post_images = Jetpack_PostImages::get_images($post->ID, array('width' => $width, 'height' => $height));
            if ($post_images && !is_wp_error($post_images)) {
                $image = array();
                foreach ((array) $post_images as $post_image) {
                    $image['src'] = $post_image['src'];
                    if (isset($post_image['src_width'], $post_image['src_height'])) {
                        $image['width'] = $post_image['src_width'];
                        $image['height'] = $post_image['src_height'];
                    }
                }
            }
        }
    } else {
        if (is_author()) {
            $author = get_queried_object();
            if (function_exists('get_avatar_url')) {
                // Prefer the core function get_avatar_url() if available, WP 4.2+
                $image['src'] = get_avatar_url($author->user_email, array('size' => $width));
            } else {
                $has_filter = has_filter('pre_option_show_avatars', '__return_true');
                if (!$has_filter) {
                    add_filter('pre_option_show_avatars', '__return_true');
                }
                $avatar = get_avatar($author->user_email, $width);
                if (!$has_filter) {
                    remove_filter('pre_option_show_avatars', '__return_true');
                }
                if (!empty($avatar) && !is_wp_error($avatar)) {
                    if (preg_match('/src=["\']([^"\']+)["\']/', $avatar, $matches)) {
                    }
                    $image['src'] = wp_specialchars_decode($matches[1], ENT_QUOTES);
                }
            }
        }
    }
    if (empty($image)) {
        $image = array();
    } else {
        if (!is_array($image)) {
            $image = array('src' => $image);
        }
    }
    // First fall back, blavatar
    if (empty($image) && function_exists('blavatar_domain')) {
        $blavatar_domain = blavatar_domain(site_url());
        if (blavatar_exists($blavatar_domain)) {
            $image['src'] = blavatar_url($blavatar_domain, 'img', $width, false, true);
            $image['width'] = $width;
            $image['height'] = $height;
        }
    }
    // Second fall back, Site Logo
    if (empty($image) && (function_exists('jetpack_has_site_logo') && jetpack_has_site_logo())) {
        $image['src'] = jetpack_get_site_logo('url');
        $image_dimensions = jetpack_get_site_logo_dimensions();
        if (!empty($image_dimensions)) {
            $image['width'] = $image_dimensions['width'];
            $image['height'] = $image_dimensions['height'];
        }
    }
    // Third fall back, Site Icon
    if (empty($image) && (function_exists('jetpack_has_site_icon') && jetpack_has_site_icon())) {
        $image['src'] = jetpack_site_icon_url(null, '512');
        $image['width'] = '512';
        $image['height'] = '512';
    }
    // Fourth fall back, Core Site Icon. Added in WP 4.3.
    if (empty($image) && (function_exists('has_site_icon') && has_site_icon())) {
        $image['src'] = get_site_icon_url(null, '512');
    }
    // Finally fall back, blank image
    if (empty($image)) {
        /**
         * Filter the default Open Graph Image tag, used when no Image can be found in a post.
         *
         * @since 3.0.0
         *
         * @param string $str Default Image URL.
         */
        $image['src'] = apply_filters('jetpack_open_graph_image_default', 'https://s0.wp.com/i/blank.jpg');
    }
    return $image;
}
예제 #5
0
<?php

$site_logo = function_exists('jetpack_site_icon_url') ? jetpack_site_icon_url(null, 150) : get_stylesheet_directory_uri() . '/assets/images/logo.png';
$show_360 = false;
?>
<header class="w-section cabe-alho banner" role="banner">
  <div class="w-container">
    <div class="w-row">
      <div class="w-col w-col-3 logo-container">
        <a class="w-inline-block" href="#home" title="<?php 
bloginfo('name');
?>
">
          <img alt="<?php 
bloginfo('name');
?>
" class="logo" src="<?php 
echo esc_url($site_logo);
?>
" />
        </a>
      </div>
      <div class="w-col w-col-2 redes-sociais">
        <ul class="w-list-unstyled links-sociais">
          <li class="social-item"><a class="social-link facebook imagem" href="http://facebook.com/www.dreamville.com.br" rel="external" title="Facebook">Facebook</a>
          </li>
          <li class="social-item"><a class="social-link twitter imagem" href="https://twitter.com/DreamvilleBuffe" rel="external" title="Twitter">Twitter</a>
          </li>
          <li class="social-item"><a class="social-link instagram imagem" href="https://instagram.com/dreamvillesalaodefestas" rel="external" title="Twitter">Instagram</a>
          </li>
        </ul>
 function jetpack_sync_core_icon()
 {
     if (function_exists('get_site_icon_url')) {
         $url = get_site_icon_url();
     } else {
         return;
     }
     require_once JETPACK__PLUGIN_DIR . 'modules/site-icon/site-icon-functions.php';
     // If there's a core icon, maybe update the option.  If not, fall back to Jetpack's.
     if (!empty($url) && $url !== jetpack_site_icon_url()) {
         // This is the option that is synced with dotcom
         Jetpack_Options::update_option('site_icon_url', $url);
     } else {
         if (empty($url) && did_action('delete_option_site_icon')) {
             Jetpack_Options::delete_option('site_icon_url');
         }
     }
 }
 static function twitter_cards_define_type_based_on_image_count($og_tags, $extract)
 {
     $card_type = 'summary';
     $img_count = $extract['count']['image'];
     if (empty($img_count)) {
         // No images, use Blavatar as a thumbnail for the summary type.
         if (function_exists('blavatar_domain')) {
             $blavatar_domain = blavatar_domain(site_url());
             if (blavatar_exists($blavatar_domain)) {
                 $og_tags['twitter:image'] = blavatar_url($blavatar_domain, 'img', 240);
             }
         }
         // Second fall back, Site Logo
         if (empty($og_tags['twitter:image']) && (function_exists('jetpack_has_site_logo') && jetpack_has_site_logo())) {
             $og_tags['twitter:image'] = jetpack_get_site_logo('url');
         }
         // Third fall back, Site Icon
         if (empty($og_tags['twitter:image']) && (function_exists('jetpack_has_site_icon') && jetpack_has_site_icon())) {
             $og_tags['twitter:image'] = jetpack_site_icon_url(null, '240');
         }
         // Not falling back on Gravatar, because there's no way to know if we end up with an auto-generated one.
     } elseif (1 == $img_count && ('image' == $extract['type'] || 'gallery' == $extract['type'])) {
         // 1 image = photo
         // Test for $extract['type'] to limit to image and gallery, so we don't send a potential fallback image like a Gravatar as a photo post.
         $card_type = 'photo';
         $og_tags['twitter:image'] = add_query_arg('w', 1400, empty($extract['images']) ? $extract['image'] : $extract['images'][0]['url']);
     } elseif ($img_count <= 3) {
         // 2-3 images = summary with small thumbnail
         $og_tags['twitter:image'] = add_query_arg('w', 240, empty($extract['images']) ? $extract['image'] : $extract['images'][0]['url']);
     } elseif ($img_count >= 4) {
         // >= 4 images = gallery
         $card_type = 'gallery';
         $og_tags = self::twitter_cards_gallery($extract, $og_tags);
     }
     return array($og_tags, $card_type);
 }
 /**
  * @param    int $post_id The post ID to check
  * @param    int $size
  * @return Array containing details of the image, or empty array if none.
  */
 static function from_blavatar($post_id, $size = 96)
 {
     $permalink = get_permalink($post_id);
     if (function_exists('blavatar_domain') && function_exists('blavatar_exists') && function_exists('blavatar_url')) {
         $domain = blavatar_domain($permalink);
         if (!blavatar_exists($domain)) {
             return array();
         }
         $url = blavatar_url($domain, 'img', $size);
     } elseif (function_exists('jetpack_has_site_icon') && jetpack_has_site_icon()) {
         $url = jetpack_site_icon_url(null, $size, $default = false);
     } else {
         return array();
     }
     return array(array('type' => 'image', 'from' => 'blavatar', 'src' => $url, 'src_width' => $size, 'src_height' => $size, 'href' => $permalink));
 }
 /**
  * Remove 'validate_callback' item from options available for module.
  * Fetch current option value and add to array of module options.
  * Prepare values of module options that need special handling, like those saved in wpcom.
  *
  * @since 4.3.0
  *
  * @param string $module Module slug.
  * @return array
  */
 public static function prepare_options_for_response($module = '')
 {
     $options = self::get_module_available_options($module);
     if (!is_array($options) || empty($options)) {
         return $options;
     }
     foreach ($options as $key => $value) {
         if (isset($options[$key]['validate_callback'])) {
             unset($options[$key]['validate_callback']);
         }
         $default_value = isset($options[$key]['default']) ? $options[$key]['default'] : '';
         $current_value = get_option($key, $default_value);
         $options[$key]['current_value'] = self::cast_value($current_value, $options[$key]);
     }
     // Some modules need special treatment.
     switch ($module) {
         case 'monitor':
             // Status of user notifications
             $options['monitor_receive_notifications']['current_value'] = self::cast_value(self::get_remote_value('monitor', 'monitor_receive_notifications'), $options['monitor_receive_notifications']);
             break;
         case 'post-by-email':
             // Email address
             $options['post_by_email_address']['current_value'] = self::cast_value(self::get_remote_value('post-by-email', 'post_by_email_address'), $options['post_by_email_address']);
             break;
         case 'protect':
             // Protect
             $options['jetpack_protect_key']['current_value'] = get_site_option('jetpack_protect_key', false);
             if (!function_exists('jetpack_protect_format_whitelist')) {
                 @(include JETPACK__PLUGIN_DIR . 'modules/protect/shared-functions.php');
             }
             $options['jetpack_protect_global_whitelist']['current_value'] = jetpack_protect_format_whitelist();
             break;
         case 'related-posts':
             // It's local, but it must be broken apart since it's saved as an array.
             $options = self::split_options($options, Jetpack_Options::get_option('relatedposts'));
             break;
         case 'verification-tools':
             // It's local, but it must be broken apart since it's saved as an array.
             $options = self::split_options($options, get_option('verification_services_codes'));
             break;
         case 'sharedaddy':
             // It's local, but it must be broken apart since it's saved as an array.
             if (!class_exists('Sharing_Service') && !@(include JETPACK__PLUGIN_DIR . 'modules/sharedaddy/sharing-service.php')) {
                 break;
             }
             $sharer = new Sharing_Service();
             $options = self::split_options($options, $sharer->get_global_options());
             $options['sharing_services']['current_value'] = $sharer->get_blog_services();
             break;
         case 'site-icon':
             // Return site icon ID and URL to make it more complete.
             $options['site_icon_id']['current_value'] = Jetpack_Options::get_option('site_icon_id');
             if (!function_exists('jetpack_site_icon_url')) {
                 @(include JETPACK__PLUGIN_DIR . 'modules/site-icon/site-icon-functions.php');
             }
             $options['site_icon_url']['current_value'] = jetpack_site_icon_url();
             break;
         case 'after-the-deadline':
             if (!function_exists('AtD_get_options')) {
                 @(include JETPACK__PLUGIN_DIR . 'modules/after-the-deadline.php');
             }
             $atd_options = array_merge(AtD_get_options(get_current_user_id(), 'AtD_options'), AtD_get_options(get_current_user_id(), 'AtD_check_when'));
             unset($atd_options['name']);
             foreach ($atd_options as $key => $value) {
                 $options[$key]['current_value'] = self::cast_value($value, $options[$key]);
             }
             $atd_options = AtD_get_options(get_current_user_id(), 'AtD_guess_lang');
             $options['guess_lang']['current_value'] = self::cast_value(isset($atd_options['true']), $options['guess_lang']);
             $options['ignored_phrases']['current_value'] = AtD_get_setting(get_current_user_id(), 'AtD_ignored_phrases');
             unset($options['unignore_phrase']);
             break;
         case 'minileven':
             $options['wp_mobile_excerpt']['current_value'] = 1 === intval($options['wp_mobile_excerpt']['current_value']) ? 'enabled' : 'disabled';
             $options['wp_mobile_featured_images']['current_value'] = 1 === intval($options['wp_mobile_featured_images']['current_value']) ? 'enabled' : 'disabled';
             break;
         case 'stats':
             // It's local, but it must be broken apart since it's saved as an array.
             if (!function_exists('stats_get_options')) {
                 @(include JETPACK__PLUGIN_DIR . 'modules/stats.php');
             }
             $options = self::split_options($options, stats_get_options());
             break;
     }
     return $options;
 }
 /**
  * Collects the necessary information to return for a site's response.
  *
  * @return (array)
  */
 public function build_current_site_response()
 {
     global $wpdb, $wp_version;
     $response_format = self::$site_format;
     $is_user_logged_in = is_user_logged_in();
     $visible = array();
     if ($is_user_logged_in) {
         $current_user = wp_get_current_user();
         $visible = get_user_meta($current_user->ID, 'blog_visibility', true);
         if (!is_array($visible)) {
             $visible = array();
         }
     }
     $blog_id = (int) $this->api->get_blog_id_for_output();
     /** This filter is documented in class.json-api-endpoints.php */
     $is_jetpack = true === apply_filters('is_jetpack_site', false, $blog_id);
     $site_url = get_option('siteurl');
     if ($is_jetpack) {
         remove_filter('option_stylesheet', 'fix_theme_location');
         if ('https' !== parse_url($site_url, PHP_URL_SCHEME)) {
             add_filter('set_url_scheme', array($this, 'force_http'), 10, 3);
         }
     }
     foreach (array_keys($response_format) as $key) {
         switch ($key) {
             case 'ID':
                 $response[$key] = $blog_id;
                 break;
             case 'name':
                 $response[$key] = (string) htmlspecialchars_decode(get_bloginfo('name'), ENT_QUOTES);
                 break;
             case 'description':
                 $response[$key] = (string) htmlspecialchars_decode(get_bloginfo('description'), ENT_QUOTES);
                 break;
             case 'URL':
                 $response[$key] = (string) home_url();
                 break;
             case 'jetpack':
                 $response[$key] = $is_jetpack;
                 // jetpack magic affects this value
                 break;
             case 'is_private':
                 if (defined('IS_WPCOM') && IS_WPCOM) {
                     $public_setting = get_option('blog_public');
                     if (-1 == $public_setting) {
                         $response[$key] = true;
                     } else {
                         $response[$key] = false;
                     }
                 } else {
                     $response[$key] = false;
                     // magic
                 }
                 break;
             case 'visible':
                 if ($is_user_logged_in) {
                     $is_visible = true;
                     if (isset($visible[$blog_id])) {
                         $is_visible = (bool) $visible[$blog_id];
                     }
                     // null and true are visible
                     $response[$key] = $is_visible;
                 }
                 break;
             case 'post_count':
                 if ($is_user_logged_in) {
                     $response[$key] = (int) $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_status = 'publish'");
                 }
                 break;
             case 'lang':
                 if ($is_user_logged_in) {
                     $response[$key] = (string) get_bloginfo('language');
                 }
                 break;
             case 'icon':
                 if (function_exists('blavatar_domain') && function_exists('blavatar_exists') && function_exists('blavatar_url')) {
                     $domain = blavatar_domain(home_url());
                     if (blavatar_exists($domain)) {
                         $response[$key] = array('img' => (string) remove_query_arg('s', blavatar_url($domain, 'img')), 'ico' => (string) remove_query_arg('s', blavatar_url($domain, 'ico')));
                     } else {
                         // This is done so that we can access the updated blavatar on .com via the /me/sites endpoint
                         if (is_jetpack_site()) {
                             $site_icon_url = get_option('jetpack_site_icon_url');
                             if ($site_icon_url) {
                                 $response[$key] = array('img' => (string) jetpack_photon_url($site_icon_url, array(), 'https'), 'ico' => (string) jetpack_photon_url($site_icon_url, array('w' => 16), 'https'));
                             }
                         }
                     }
                 } elseif (function_exists('jetpack_site_icon_url') && function_exists('jetpack_photon_url')) {
                     $response[$key] = array('img' => (string) jetpack_photon_url(jetpack_site_icon_url(get_current_blog_id(), 80), array('w' => 80), 'https'), 'ico' => (string) jetpack_photon_url(jetpack_site_icon_url(get_current_blog_id(), 16), array('w' => 16), 'https'));
                 }
                 break;
             case 'logo':
                 // Set an empty response array.
                 $response[$key] = array('id' => (int) 0, 'sizes' => array(), 'url' => '');
                 // Get current site logo values.
                 $logo = get_option('site_logo');
                 // Update the response array if there's a site logo currenty active.
                 if ($logo && 0 != $logo['id']) {
                     $response[$key]['id'] = $logo['id'];
                     $response[$key]['url'] = $logo['url'];
                     foreach ($logo['sizes'] as $size => $properties) {
                         $response[$key]['sizes'][$size] = $properties;
                     }
                 }
                 break;
             case 'subscribers_count':
                 if (function_exists('wpcom_subs_total_wpcom_subscribers')) {
                     $total_wpcom_subs = wpcom_subs_total_wpcom_subscribers(array('blog_id' => $blog_id));
                     $response[$key] = $total_wpcom_subs;
                 } else {
                     $response[$key] = 0;
                     // magic
                 }
                 break;
             case 'is_following':
                 $response[$key] = (bool) $this->api->is_following($blog_id);
                 break;
             case 'options':
                 // Figure out if the blog supports VideoPress, have to do some extra checking for JP blogs
                 $has_videopress = false;
                 if (get_option('video_upgrade') == '1') {
                     $has_videopress = true;
                 } else {
                     if (class_exists('Jetpack_Options')) {
                         $videopress = Jetpack_Options::get_option('videopress', array());
                         if (isset($videopress['blog_id']) && $videopress['blog_id'] > 0) {
                             $has_videopress = true;
                         }
                     }
                 }
                 // deprecated - see separate endpoint. get a list of supported post formats
                 $all_formats = get_post_format_strings();
                 $supported = get_theme_support('post-formats');
                 $supported_formats = array();
                 if (isset($supported[0])) {
                     foreach ($supported[0] as $format) {
                         $supported_formats[$format] = $all_formats[$format];
                     }
                 }
                 // determine if sharing buttons should be visible by default
                 $default_sharing_status = false;
                 if (class_exists('Sharing_Service')) {
                     $ss = new Sharing_Service();
                     $blog_services = $ss->get_blog_services();
                     $default_sharing_status = !empty($blog_services['visible']);
                 }
                 $is_mapped_domain = false;
                 if (function_exists('get_primary_redirect')) {
                     $primary_redirect = strtolower(get_primary_redirect());
                     if (false === strpos($primary_redirect, '.wordpress.com')) {
                         $is_mapped_domain = true;
                     }
                 }
                 $is_redirect = false;
                 if (function_exists('get_primary_domain_mapping_record')) {
                     if (get_primary_domain_mapping_record()->type == 1) {
                         $is_redirect = true;
                     }
                 }
                 if (function_exists('get_mime_types')) {
                     $allowed_file_types = get_mime_types();
                 } else {
                     // http://codex.wordpress.org/Uploading_Files
                     $mime_types = get_allowed_mime_types();
                     foreach ($mime_types as $type => $mime_type) {
                         $extras = explode('|', $type);
                         foreach ($extras as $extra) {
                             $allowed_file_types[] = $extra;
                         }
                     }
                 }
                 if (function_exists('get_blog_details')) {
                     $blog_details = get_blog_details();
                     if (!empty($blog_details->registered)) {
                         $registered_date = $blog_details->registered;
                     }
                 }
                 $upgraded_filetypes_enabled = false;
                 if ($is_jetpack || get_option('use_upgraded_upload_filetypes')) {
                     $upgraded_filetypes_enabled = true;
                 }
                 $wordads = false;
                 if (function_exists('has_any_blog_stickers')) {
                     $wordads = has_any_blog_stickers(array('wordads-approved', 'wordads-approved-misfits'), $blog_id);
                 }
                 $response[$key] = array('timezone' => (string) get_option('timezone_string'), 'gmt_offset' => (double) get_option('gmt_offset'), 'videopress_enabled' => $has_videopress, 'upgraded_filetypes_enabled' => $upgraded_filetypes_enabled, 'login_url' => wp_login_url(), 'admin_url' => get_admin_url(), 'is_mapped_domain' => $is_mapped_domain, 'is_redirect' => $is_redirect, 'unmapped_url' => get_site_url($blog_id), 'featured_images_enabled' => current_theme_supports('post-thumbnails'), 'theme_slug' => get_option('stylesheet'), 'header_image' => get_theme_mod('header_image_data'), 'background_color' => get_theme_mod('background_color'), 'image_default_link_type' => get_option('image_default_link_type'), 'image_thumbnail_width' => (int) get_option('thumbnail_size_w'), 'image_thumbnail_height' => (int) get_option('thumbnail_size_h'), 'image_thumbnail_crop' => get_option('thumbnail_crop'), 'image_medium_width' => (int) get_option('medium_size_w'), 'image_medium_height' => (int) get_option('medium_size_h'), 'image_large_width' => (int) get_option('large_size_w'), 'image_large_height' => (int) get_option('large_size_h'), 'permalink_structure' => get_option('permalink_structure'), 'post_formats' => $supported_formats, 'default_post_format' => get_option('default_post_format'), 'default_category' => (int) get_option('default_category'), 'allowed_file_types' => $allowed_file_types, 'show_on_front' => get_option('show_on_front'), 'default_likes_enabled' => (bool) apply_filters('wpl_is_enabled_sitewide', !get_option('disabled_likes')), 'default_sharing_status' => (bool) $default_sharing_status, 'default_comment_status' => 'closed' == get_option('default_comment_status') ? false : true, 'default_ping_status' => 'closed' == get_option('default_ping_status') ? false : true, 'software_version' => $wp_version, 'created_at' => !empty($registered_date) ? $this->format_date($registered_date) : '0000-00-00T00:00:00+00:00', 'wordads' => $wordads);
                 if ('page' === get_option('show_on_front')) {
                     $response['options']['page_on_front'] = (int) get_option('page_on_front');
                     $response['options']['page_for_posts'] = (int) get_option('page_for_posts');
                 }
                 if ($is_jetpack) {
                     $response['options']['jetpack_version'] = get_option('jetpack_version');
                     if (get_option('jetpack_main_network_site')) {
                         $response['options']['main_network_site'] = (string) rtrim(get_option('jetpack_main_network_site'), '/');
                     }
                     if (is_array(Jetpack_Options::get_option('active_modules'))) {
                         $response['options']['active_modules'] = (array) array_values(Jetpack_Options::get_option('active_modules'));
                     }
                     if ($jetpack_wp_version = get_option('jetpack_wp_version')) {
                         $response['options']['software_version'] = (string) $jetpack_wp_version;
                     } else {
                         if ($jetpack_update = get_option('jetpack_updates')) {
                             if (is_array($jetpack_update) && isset($jetpack_update['wp_version'])) {
                                 $response['options']['software_version'] = (string) $jetpack_update['wp_version'];
                             } else {
                                 $response['options']['software_version'] = null;
                             }
                         } else {
                             $response['options']['software_version'] = null;
                         }
                     }
                     $response['options']['max_upload_size'] = get_option('jetpack_max_upload_size', false);
                     // Sites have to prove that they are not main_network site.
                     // If the sync happends right then we should be able to see that we are not dealing with a network site
                     $response['options']['is_multi_network'] = (bool) get_option('jetpack_is_main_network', true);
                     $response['options']['is_multi_site'] = (bool) get_option('jetpack_is_multi_site', true);
                 }
                 if (!current_user_can('edit_posts')) {
                     unset($response[$key]);
                 }
                 break;
             case 'meta':
                 /**
                  * Filters the URL scheme used when querying your site's REST API endpoint.
                  *
                  * @module json-api
                  *
                  * @since 3.2.0
                  *
                  * @param string parse_url( get_option( 'home' ), PHP_URL_SCHEME ) URL scheme parsed from home URL.
                  */
                 $xmlrpc_scheme = apply_filters('wpcom_json_api_xmlrpc_scheme', parse_url(get_option('home'), PHP_URL_SCHEME));
                 $xmlrpc_url = site_url('xmlrpc.php', $xmlrpc_scheme);
                 $response[$key] = (object) array('links' => (object) array('self' => (string) $this->get_site_link($blog_id), 'help' => (string) $this->get_site_link($blog_id, 'help'), 'posts' => (string) $this->get_site_link($blog_id, 'posts/'), 'comments' => (string) $this->get_site_link($blog_id, 'comments/'), 'xmlrpc' => (string) $xmlrpc_url));
                 break;
         }
     }
     if ($is_jetpack) {
         // Add the updates only make them visible if the user has manage options permission.
         $jetpack_update = (array) get_option('jetpack_updates');
         if (!empty($jetpack_update) && current_user_can('manage_options')) {
             if (isset($jetpack_update['wp_version'])) {
                 // In previous version of Jetpack 3.4, 3.5, 3.6 we synced the wp_version into to jetpack_updates
                 unset($jetpack_update['wp_version']);
             }
             if (isset($jetpack_update['site_is_version_controlled'])) {
                 // In previous version of Jetpack 3.4, 3.5, 3.6 we synced the site_is_version_controlled into to jetpack_updates
                 unset($jetpack_update['site_is_version_controlled']);
             }
             $response['updates'] = (array) $jetpack_update;
         }
         add_filter('option_stylesheet', 'fix_theme_location');
         if ('https' !== parse_url($site_url, PHP_URL_SCHEME)) {
             remove_filter('set_url_scheme', array($this, 'force_http'), 10, 3);
         }
     }
     return $response;
 }
예제 #11
0
    /**
     * All done page admin view
     *
     */
    public static function all_done_page()
    {
        $temp_image_data = get_option('site_icon_temp_data');
        if (!$temp_image_data) {
            // start again
            self::select_page();
            return;
        }
        $crop_ration = $temp_image_data['large_image_data'][0] / $temp_image_data['resized_image_data'][0];
        // always bigger then 1
        $crop_data = self::convert_coodiantes_from_resized_to_full($_POST['crop-x'], $_POST['crop-y'], $_POST['crop-w'], $_POST['crop-h'], $crop_ration);
        $image_edit = wp_get_image_editor(_load_image_to_edit_path($temp_image_data['large_image_attachment_id']));
        if (is_wp_error($image_edit)) {
            return $image_edit;
        }
        // Delete the previous site_icon
        $previous_site_icon_id = Jetpack_Options::get_option('site_icon_id');
        self::delete_site_icon($previous_site_icon_id);
        // crop the image
        $image_edit->crop($crop_data['crop_x'], $crop_data['crop_y'], $crop_data['crop_width'], $crop_data['crop_height'], self::$min_size, self::$min_size);
        $dir = wp_upload_dir();
        $site_icon_filename = $image_edit->generate_filename(dechex(time()) . 'v' . self::$version . '_site_icon', null, 'png');
        $image_edit->save($site_icon_filename);
        add_filter('intermediate_image_sizes_advanced', array('Jetpack_Site_Icon', 'additional_sizes'));
        $site_icon_id = self::save_attachment(__('Large Blog Image', 'jetpack'), $site_icon_filename, 'image/png');
        remove_filter('intermediate_image_sizes_advanced', array('Jetpack_Site_Icon', 'additional_sizes'));
        // Save the site_icon data into option
        Jetpack_Options::update_option('site_icon_id', $site_icon_id);
        //Get the site icon URL ready to sync
        Jetpack_Options::update_option('site_icon_url', jetpack_site_icon_url(get_current_blog_id(), 512));
        ?>
		<h2 class="site-icon-title"><?php 
        esc_html_e('Site Icon', 'jetpack');
        ?>
 <span class="small"><?php 
        esc_html_e('All Done', 'jetpack');
        ?>
</span></h2>
		<div id="message" class="updated below-h2"><p><?php 
        esc_html_e('Your site icon has been uploaded!', 'jetpack');
        ?>
 <a href="<?php 
        echo esc_url(admin_url('options-general.php'));
        ?>
" ><?php 
        esc_html_e('Back to General Settings', 'jetpack');
        ?>
</a></p></div>
		<?php 
        echo jetpack_get_site_icon(null, $size = '128');
        ?>
		<?php 
        echo jetpack_get_site_icon(null, $size = '48');
        ?>
		<?php 
        echo jetpack_get_site_icon(null, $size = '16');
        ?>

		<?php 
    }
 /**
  * Collects the necessary information to return for a site's response.
  *
  * @return (array)
  */
 public function build_current_site_response()
 {
     global $wpdb, $wp_version;
     $response_format = self::$site_format;
     $is_user_logged_in = is_user_logged_in();
     $visible = array();
     if ($is_user_logged_in) {
         $current_user = wp_get_current_user();
         $visible = get_user_meta($current_user->ID, 'blog_visibility', true);
         if (!is_array($visible)) {
             $visible = array();
         }
     }
     $blog_id = (int) $this->api->get_blog_id_for_output();
     $is_jetpack = true === apply_filters('is_jetpack_site', false, $blog_id);
     $site_url = get_option('siteurl');
     if ($is_jetpack) {
         remove_filter('option_stylesheet', 'fix_theme_location');
         if ('https' !== parse_url($site_url, PHP_URL_SCHEME)) {
             add_filter('set_url_scheme', array($this, 'force_http'), 10, 3);
         }
     }
     foreach (array_keys($response_format) as $key) {
         switch ($key) {
             case 'ID':
                 $response[$key] = $blog_id;
                 break;
             case 'name':
                 $response[$key] = (string) htmlspecialchars_decode(get_bloginfo('name'), ENT_QUOTES);
                 break;
             case 'description':
                 $response[$key] = (string) htmlspecialchars_decode(get_bloginfo('description'), ENT_QUOTES);
                 break;
             case 'URL':
                 $response[$key] = (string) home_url();
                 break;
             case 'jetpack':
                 $response[$key] = $is_jetpack;
                 // jetpack magic affects this value
                 break;
             case 'is_private':
                 if (defined('IS_WPCOM') && IS_WPCOM) {
                     $public_setting = get_option('blog_public');
                     if (-1 == $public_setting) {
                         $response[$key] = true;
                     } else {
                         $response[$key] = false;
                     }
                 } else {
                     $response[$key] = false;
                     // magic
                 }
                 break;
             case 'visible':
                 if ($is_user_logged_in) {
                     $is_visible = true;
                     if (isset($visible[$blog_id])) {
                         $is_visible = $visible[$blog_id];
                     }
                     // null and true are visible
                     $response[$key] = $is_visible;
                 }
                 break;
             case 'post_count':
                 if ($is_user_logged_in) {
                     $response[$key] = (int) $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_status = 'publish'");
                 }
                 break;
             case 'lang':
                 if ($is_user_logged_in) {
                     $response[$key] = (string) get_bloginfo('language');
                 }
                 break;
             case 'icon':
                 if (function_exists('blavatar_domain') && function_exists('blavatar_exists') && function_exists('blavatar_url')) {
                     $domain = blavatar_domain(home_url());
                     if (blavatar_exists($domain)) {
                         $response[$key] = array('img' => (string) remove_query_arg('s', blavatar_url($domain, 'img')), 'ico' => (string) remove_query_arg('s', blavatar_url($domain, 'ico')));
                     }
                 } elseif (function_exists('jetpack_site_icon_url') && function_exists('jetpack_photon_url')) {
                     $response[$key] = array('img' => (string) jetpack_photon_url(jetpack_site_icon_url(get_current_blog_id(), 80), array('w' => 80), 'https'), 'ico' => (string) jetpack_photon_url(jetpack_site_icon_url(get_current_blog_id(), 16), array('w' => 16), 'https'));
                 }
                 break;
             case 'logo':
                 // Set an empty response array.
                 $response[$key] = array('id' => (int) 0, 'sizes' => array(), 'url' => '');
                 // Get current site logo values.
                 $logo = get_option('site_logo');
                 // Update the response array if there's a site logo currenty active.
                 if ($logo && 0 != $logo['id']) {
                     $response[$key]['id'] = $logo['id'];
                     $response[$key]['url'] = $logo['url'];
                     foreach ($logo['sizes'] as $size => $properties) {
                         $response[$key]['sizes'][$size] = $properties;
                     }
                 }
                 break;
             case 'subscribers_count':
                 if (function_exists('wpcom_subs_total_wpcom_subscribers')) {
                     $total_wpcom_subs = wpcom_subs_total_wpcom_subscribers(array('blog_id' => $blog_id));
                     $response[$key] = $total_wpcom_subs;
                 } else {
                     $response[$key] = 0;
                     // magic
                 }
                 break;
             case 'is_following':
                 $response[$key] = (bool) $this->api->is_following($blog_id);
                 break;
             case 'options':
                 // Figure out if the blog supports VideoPress, have to do some extra checking for JP blogs
                 $has_videopress = false;
                 if (get_option('video_upgrade') == '1') {
                     $has_videopress = true;
                 } else {
                     if (class_exists('Jetpack_Options')) {
                         $videopress = Jetpack_Options::get_option('videopress', array());
                         if ($videopress['blog_id'] > 0) {
                             $has_videopress = true;
                         }
                     }
                 }
                 // deprecated - see separate endpoint. get a list of supported post formats
                 $all_formats = get_post_format_strings();
                 $supported = get_theme_support('post-formats');
                 $supported_formats = array();
                 if (isset($supported[0])) {
                     foreach ($supported[0] as $format) {
                         $supported_formats[$format] = $all_formats[$format];
                     }
                 }
                 // determine if sharing buttons should be visible by default
                 $default_sharing_status = false;
                 if (class_exists('Sharing_Service')) {
                     $ss = new Sharing_Service();
                     $blog_services = $ss->get_blog_services();
                     $default_sharing_status = !empty($blog_services['visible']);
                 }
                 $is_mapped_domain = false;
                 if (function_exists('get_primary_redirect')) {
                     $primary_redirect = strtolower(get_primary_redirect());
                     if (false === strpos($primary_redirect, '.wordpress.com')) {
                         $is_mapped_domain = true;
                     }
                 }
                 if (function_exists('get_mime_types')) {
                     $allowed_file_types = get_mime_types();
                 } else {
                     // http://codex.wordpress.org/Uploading_Files
                     $mime_types = get_allowed_mime_types();
                     foreach ($mime_types as $type => $mime_type) {
                         $extras = explode('|', $type);
                         foreach ($extras as $extra) {
                             $allowed_file_types[] = $extra;
                         }
                     }
                 }
                 $response[$key] = array('timezone' => (string) get_option('timezone_string'), 'gmt_offset' => (double) get_option('gmt_offset'), 'videopress_enabled' => $has_videopress, 'login_url' => wp_login_url(), 'admin_url' => get_admin_url(), 'is_mapped_domain' => $is_mapped_domain, 'unmapped_url' => get_site_url($blog_id), 'featured_images_enabled' => current_theme_supports('post-thumbnails'), 'header_image' => get_theme_mod('header_image_data'), 'background_color' => get_theme_mod('background_color'), 'image_default_link_type' => get_option('image_default_link_type'), 'image_thumbnail_width' => (int) get_option('thumbnail_size_w'), 'image_thumbnail_height' => (int) get_option('thumbnail_size_h'), 'image_thumbnail_crop' => get_option('thumbnail_crop'), 'image_medium_width' => (int) get_option('medium_size_w'), 'image_medium_height' => (int) get_option('medium_size_h'), 'image_large_width' => (int) get_option('large_size_w'), 'image_large_height' => (int) get_option('large_size_h'), 'post_formats' => $supported_formats, 'allowed_file_types' => $allowed_file_types, 'default_likes_enabled' => (bool) apply_filters('wpl_is_enabled_sitewide', !get_option('disabled_likes')), 'default_sharing_status' => (bool) $default_sharing_status, 'default_comment_status' => 'closed' == get_option('default_comment_status') ? false : true, 'default_ping_status' => 'closed' == get_option('default_ping_status') ? false : true, 'software_version' => $wp_version);
                 if (!current_user_can('edit_posts')) {
                     unset($response[$key]);
                 }
                 break;
             case 'meta':
                 $xmlrpc_scheme = apply_filters('wpcom_json_api_xmlrpc_scheme', parse_url(get_option('home'), PHP_URL_SCHEME));
                 $xmlrpc_url = site_url('xmlrpc.php', $xmlrpc_scheme);
                 $response[$key] = (object) array('links' => (object) array('self' => (string) $this->get_site_link($blog_id), 'help' => (string) $this->get_site_link($blog_id, 'help'), 'posts' => (string) $this->get_site_link($blog_id, 'posts/'), 'comments' => (string) $this->get_site_link($blog_id, 'comments/'), 'xmlrpc' => (string) $xmlrpc_url));
                 break;
         }
     }
     if ($is_jetpack) {
         add_filter('option_stylesheet', 'fix_theme_location');
         if ('https' !== parse_url($site_url, PHP_URL_SCHEME)) {
             remove_filter('set_url_scheme', array($this, 'force_http'), 10, 3);
         }
     }
     return $response;
 }
function jetpack_og_get_image($width = 200, $height = 200, $max_images = 4)
{
    // Facebook requires thumbnails to be a minimum of 200x200
    $image = '';
    if (is_singular() && !is_home()) {
        global $post;
        $image = '';
        // Attempt to find something good for this post using our generalized PostImages code
        if (class_exists('Jetpack_PostImages')) {
            $post_images = Jetpack_PostImages::get_images($post->ID, array('width' => $width, 'height' => $height));
            if ($post_images && !is_wp_error($post_images)) {
                $image = array();
                foreach ((array) $post_images as $post_image) {
                    $image[] = $post_image['src'];
                }
            }
        }
    } else {
        if (is_author()) {
            $author = get_queried_object();
            if (function_exists('get_avatar_url')) {
                // Prefer the core function get_avatar_url() if available, WP 4.2+
                $image = get_avatar_url($author->user_email, array('size' => $width));
            } else {
                $has_filter = has_filter('pre_option_show_avatars', '__return_true');
                if (!$has_filter) {
                    add_filter('pre_option_show_avatars', '__return_true');
                }
                $avatar = get_avatar($author->user_email, $width);
                if (!$has_filter) {
                    remove_filter('pre_option_show_avatars', '__return_true');
                }
                if (!empty($avatar) && !is_wp_error($avatar)) {
                    if (preg_match('/src=["\']([^"\']+)["\']/', $avatar, $matches)) {
                    }
                    $image = wp_specialchars_decode($matches[1], ENT_QUOTES);
                }
            }
        }
    }
    if (empty($image)) {
        $image = array();
    } else {
        if (!is_array($image)) {
            $image = array($image);
        }
    }
    // First fall back, blavatar
    if (empty($image) && function_exists('blavatar_domain')) {
        $blavatar_domain = blavatar_domain(site_url());
        if (blavatar_exists($blavatar_domain)) {
            $image[] = blavatar_url($blavatar_domain, 'img', $width);
        }
    }
    // Second fall back, Site Logo
    if (empty($image) && (function_exists('jetpack_has_site_logo') && jetpack_has_site_logo())) {
        $image[] = jetpack_get_site_logo('url');
    }
    // Third fall back, Site Icon
    if (empty($image) && (function_exists('jetpack_has_site_icon') && jetpack_has_site_icon())) {
        $image[] = jetpack_site_icon_url(null, '512');
    }
    // Fourth fall back, blank image
    if (empty($image)) {
        $image[] = apply_filters('jetpack_open_graph_image_default', 'https://s0.wp.com/i/blank.jpg');
    }
    return $image;
}
 function get_icon()
 {
     if (function_exists('jetpack_site_icon_url') && function_exists('jetpack_photon_url')) {
         return array('img' => (string) jetpack_photon_url(jetpack_site_icon_url(get_current_blog_id(), 80), array('w' => 80), 'https'), 'ico' => (string) jetpack_photon_url(jetpack_site_icon_url(get_current_blog_id(), 16), array('w' => 16), 'https'));
     }
     return null;
 }