summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/infinite-scroll.php')
-rw-r--r--plugins/jetpack/modules/infinite-scroll.php270
1 files changed, 0 insertions, 270 deletions
diff --git a/plugins/jetpack/modules/infinite-scroll.php b/plugins/jetpack/modules/infinite-scroll.php
deleted file mode 100644
index a736ef00..00000000
--- a/plugins/jetpack/modules/infinite-scroll.php
+++ /dev/null
@@ -1,270 +0,0 @@
-<?php
-/**
- * Module Name: Infinite Scroll
- * Module Description: Automatically load new content when a visitor scrolls
- * Sort Order: 26
- * First Introduced: 2.0
- * Requires Connection: No
- * Auto Activate: No
- * Module Tags: Appearance
- * Feature: Appearance
- * Additional Search Queries: scroll, infinite, infinite scroll
- */
-
-/**
- * Jetpack-specific elements of Infinite Scroll
- */
-class Jetpack_Infinite_Scroll_Extras {
- /**
- * Class variables
- */
- // Oh look, a singleton
- private static $__instance = null;
-
- // Option names
- private $option_name_google_analytics = 'infinite_scroll_google_analytics';
-
- /**
- * Singleton implementation
- *
- * @return object
- */
- public static function instance() {
- if ( ! is_a( self::$__instance, 'Jetpack_Infinite_Scroll_Extras' ) )
- self::$__instance = new Jetpack_Infinite_Scroll_Extras;
-
- return self::$__instance;
- }
-
- /**
- * Register actions and filters
- *
- * @uses add_action, add_filter
- * @return null
- */
- private function __construct() {
- add_action( 'jetpack_modules_loaded', array( $this, 'action_jetpack_modules_loaded' ) );
-
- add_action( 'admin_init', array( $this, 'action_admin_init' ), 11 );
-
- add_action( 'after_setup_theme', array( $this, 'action_after_setup_theme' ), 5 );
-
- add_filter( 'infinite_scroll_js_settings', array( $this, 'filter_infinite_scroll_js_settings' ) );
-
- add_action( 'wp_enqueue_scripts', array( $this, 'action_wp_enqueue_scripts' ) );
- }
-
- /**
- * Enable "Configure" button on module card
- *
- * @uses Jetpack::enable_module_configurable, Jetpack::module_configuration_load
- * @action jetpack_modules_loaded
- * @return null
- */
- public function action_jetpack_modules_loaded() {
- Jetpack::enable_module_configurable( __FILE__ );
- Jetpack::module_configuration_load( __FILE__, array( $this, 'module_configuration_load' ) );
- add_filter( 'jetpack_module_configuration_url_infinite-scroll', array( $this, 'infinite_scroll_configuration_url' ) );
- }
-
- /**
- * Redirect configure button to Settings > Reading
- *
- * @uses wp_safe_redirect, admin_url
- * @return null
- */
- public function module_configuration_load() {
- wp_safe_redirect( admin_url( 'options-reading.php#infinite-scroll-options' ) );
- exit;
- }
-
- /**
- * Overrides default configuration url
- *
- * @uses admin_url
- * @return string module settings URL
- */
- public function infinite_scroll_configuration_url() {
- return admin_url( 'options-reading.php#infinite-scroll-options' );
- }
-
- /**
- * Register Google Analytics setting
- *
- * @uses add_settings_field, __, register_setting
- * @action admin_init
- * @return null
- */
- public function action_admin_init() {
- add_settings_field( $this->option_name_google_analytics, '<span id="infinite-scroll-google-analytics">' . __( 'Use Google Analytics with Infinite Scroll', 'jetpack' ) . '</span>', array( $this, 'setting_google_analytics' ), 'reading' );
- register_setting( 'reading', $this->option_name_google_analytics, array( $this, 'sanitize_boolean_value' ) );
- }
-
- /**
- * Render Google Analytics option
- *
- * @uses checked, get_option, __
- * @return html
- */
- public function setting_google_analytics() {
- echo '<label><input name="infinite_scroll_google_analytics" type="checkbox" value="1" ' . checked( true, (bool) get_option( $this->option_name_google_analytics, false ), false ) . ' /> ' . esc_html__( 'Track each scroll load (7 posts by default) as a page view in Google Analytics', 'jetpack' ) . '</label>';
- echo '<p class="description">' . esc_html__( 'Check the box above to record each new set of posts loaded via Infinite Scroll as a page view in Google Analytics.', 'jetpack' ) . '</p>';
- }
-
- /**
- * Sanitize value as a boolean
- *
- * @param mixed $value
- * @return bool
- */
- public function sanitize_boolean_value( $value ) {
- return (bool) $value;
- }
-
- /**
- * Load theme's infinite scroll annotation file, if present in the IS plugin.
- * The `setup_theme` action is used because the annotation files should be using `after_setup_theme` to register support for IS.
- *
- * As released in Jetpack 2.0, a child theme's parent wasn't checked for in the plugin's bundled support, hence the convoluted way the parent is checked for now.
- *
- * @uses is_admin, wp_get_theme, apply_filters
- * @action setup_theme
- * @return null
- */
- function action_after_setup_theme() {
- $theme = wp_get_theme();
-
- if ( ! is_a( $theme, 'WP_Theme' ) && ! is_array( $theme ) )
- return;
-
- /** This filter is already documented in modules/infinite-scroll/infinity.php */
- $customization_file = apply_filters( 'infinite_scroll_customization_file', dirname( __FILE__ ) . "/infinite-scroll/themes/{$theme['Stylesheet']}.php", $theme['Stylesheet'] );
-
- if ( is_readable( $customization_file ) ) {
- require_once( $customization_file );
- }
- elseif ( ! empty( $theme['Template'] ) ) {
- $customization_file = dirname( __FILE__ ) . "/infinite-scroll/themes/{$theme['Template']}.php";
-
- if ( is_readable( $customization_file ) )
- require_once( $customization_file );
- }
- }
-
- /**
- * Modify Infinite Scroll configuration information
- *
- * @uses Jetpack::get_active_modules, is_user_logged_in, stats_get_options, Jetpack_Options::get_option, get_option, JETPACK__API_VERSION, JETPACK__VERSION
- * @filter infinite_scroll_js_settings
- * @return array
- */
- public function filter_infinite_scroll_js_settings( $settings ) {
- // Provide WP Stats info for tracking Infinite Scroll loads
- // Abort if Stats module isn't active
- if ( in_array( 'stats', Jetpack::get_active_modules() ) ) {
- // Abort if user is logged in but logged-in users shouldn't be tracked.
- if ( is_user_logged_in() && function_exists( 'stats_get_options' ) ) {
- $stats_options = stats_get_options();
- $track_loggedin_users = isset( $stats_options['reg_users'] ) ? (bool) $stats_options['reg_users'] : false;
-
- if ( ! $track_loggedin_users )
- return $settings;
- }
-
- // We made it this far, so gather the data needed to track IS views
- $settings['stats'] = 'blog=' . Jetpack_Options::get_option( 'id' ) . '&host=' . parse_url( get_option( 'home' ), PHP_URL_HOST ) . '&v=ext&j=' . JETPACK__API_VERSION . ':' . JETPACK__VERSION;
-
- // Pagetype parameter
- $settings['stats'] .= '&x_pagetype=infinite';
- if ( 'click' == $settings['type'] )
- $settings['stats'] .= '-click';
-
- $settings['stats'] .= '-jetpack';
- }
-
- // Check if Google Analytics tracking is requested
- $settings['google_analytics'] = (bool) Jetpack_Options::get_option_and_ensure_autoload( $this->option_name_google_analytics, 0 );
-
- return $settings;
- }
-
- /**
- * Always load certain scripts when IS is enabled, as they can't be loaded after `document.ready` fires, meaning they can't leverage IS's script loader.
- *
- * @global $videopress
- * @uses do_action()
- * @uses apply_filters()
- * @uses wp_enqueue_style()
- * @uses wp_enqueue_script()
- * @action wp_enqueue_scripts
- * @return null
- */
- public function action_wp_enqueue_scripts() {
- // Do not load scripts and styles on singular pages and static pages
- $load_scripts_and_styles = ! ( is_singular() || is_page() );
- if (
- /**
- * Allow plugins to enqueue all Infinite Scroll scripts and styles on singular pages as well.
- *
- * @module infinite-scroll
- *
- * @since 3.1.0
- *
- * @param bool $load_scripts_and_styles Should scripts and styles be loaded on singular pahes and static pages. Default to false.
- */
- ! apply_filters( 'jetpack_infinite_scroll_load_scripts_and_styles', $load_scripts_and_styles )
- ) {
- return;
- }
-
- // VideoPress stand-alone plugin
- global $videopress;
- if ( ! empty( $videopress ) && The_Neverending_Home_Page::archive_supports_infinity() && is_a( $videopress, 'VideoPress' ) && method_exists( $videopress, 'enqueue_scripts' ) ) {
- $videopress->enqueue_scripts();
- }
-
- // VideoPress Jetpack module
- if ( Jetpack::is_module_active( 'videopress' ) ) {
- wp_enqueue_script( 'videopress' );
- }
-
- // Fire the post_gallery action early so Carousel scripts are present.
- if ( Jetpack::is_module_active( 'carousel' ) ) {
- /** This filter is already documented in core/wp-includes/media.php */
- do_action( 'post_gallery', '', '', 0 );
- }
-
- // Always enqueue Tiled Gallery scripts when both IS and Tiled Galleries are enabled
- if ( Jetpack::is_module_active( 'tiled-gallery' ) ) {
- Jetpack_Tiled_Gallery::default_scripts_and_styles();
- }
-
- // Core's Audio and Video Shortcodes
- if (
- /** This filter is already documented in core/wp-includes/media.php */
- 'mediaelement' === apply_filters( 'wp_audio_shortcode_library', 'mediaelement' )
- ) {
- wp_enqueue_style( 'wp-mediaelement' );
- wp_enqueue_script( 'wp-mediaelement' );
- }
-
- if (
- /** This filter is already documented in core/wp-includes/media.php */
- 'mediaelement' === apply_filters( 'wp_video_shortcode_library', 'mediaelement' )
- ) {
- wp_enqueue_style( 'wp-mediaelement' );
- wp_enqueue_script( 'wp-mediaelement' );
- }
- }
-}
-Jetpack_Infinite_Scroll_Extras::instance();
-
-/**
- * Load main IS file
- */
-require_once( dirname( __FILE__ ) . "/infinite-scroll/infinity.php" );
-
-/**
- * Remove the IS annotation loading function bundled with the IS plugin in favor of the Jetpack-specific version in Jetpack_Infinite_Scroll_Extras::action_after_setup_theme();
- */
-remove_action( 'after_setup_theme', 'the_neverending_home_page_theme_support', 5 );