diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/CONTRIBUTING.md b/wordpress/wp-content/plugins/google-analytics-for-wordpress/CONTRIBUTING.md deleted file mode 100644 index f5ef2372a67069554c7046f2a9f9d905402fcc62..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/CONTRIBUTING.md +++ /dev/null @@ -1,44 +0,0 @@ -#Contribute To Google Analytics for WordPress - -Community made patches, localisations, bug reports and contributions are very welcome and help make Google Analytics for WordPress the #1 GA plugin for WordPress. - -When contributing please ensure you follow the guidelines below so that we can keep on top of things. - -__Please Note:__ GitHub is for bug reports and contributions only - if you have a support question or a request for a customisation don't post here, go to our [Support Forum](http://wordpress.org/support/plugin/google-analytics-for-wordpress) instead. - -For localization, please refer to [translate.yoast.com](http://translate.yoast.com/projects/google-analytics-for-wordpress), though bugs with strings that can't be translated are welcome here. - -## Getting Started - -* Submit a ticket for your issue, assuming one does not already exist. - * Raise it on our [Issue Tracker](https://github.com/Yoast/google-analytics-for-wordpress/issues) - * Clearly describe the issue including steps to reproduce the bug. - * Make sure you fill in the earliest version that you know has the issue as well as the version of WordPress you're using. - -_Note:_ do **not** report security issues here. Email them to security at yoast dot com so we can deal with them swiftly and securely. - -## Making Changes - -* Fork the repository on GitHub -* Make the changes to your forked repository - * Ensure you stick to the [WordPress Coding Standards](http://codex.wordpress.org/WordPress_Coding_Standards) and have properly documented any new functions. -* When committing, reference your issue (if present) and include a note about the fix. -* Push the changes to your fork and submit a pull request to the 'master' branch of the Google Analytics for WordPress repository. - -## Code Documentation - -* We ensure that every Google Analytics for WordPress function is documented well and follows the standards set by phpDoc. -* An example function can be found [here](https://gist.github.com/jdevalk/5574677) -* Please make sure that every function is documented so that when we update our API Documentation things don't go awry! -* Finally, please use tabs and not spaces. The tab indent size should be 8 for all Google Analytics for WordPress code. - -At this point you're waiting on us to merge your pull request. We'll review all pull requests, and make suggestions and changes if necessary. - - -## "Patch welcome" issues - -Some issues are [labeled "Patch-welcome"](https://github.com/Yoast/google-analytics-for-wordpress/issues?q=is%3Aopen+is%3Aissue+label%3APatch-Welcome). This means we see the value in the particular enhancement being suggested but have decided for now not to prioritize it. If you however decide to write a patch for it we'll gladly include it after some code review. - -# Additional Resources -* [General GitHub Documentation](http://help.github.com/) -* [GitHub Pull Request documentation](http://help.github.com/send-pull-requests/) diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/README.md b/wordpress/wp-content/plugins/google-analytics-for-wordpress/README.md deleted file mode 100644 index f1bac58bbb9a2bb1f03a612937ebb92f38a235ec..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/README.md +++ /dev/null @@ -1,57 +0,0 @@ -Google Analytics for WordPress -============================== - -[![Build Status](https://api.travis-ci.org/Yoast/google-analytics-for-wordpress.png?branch=master)](https://travis-ci.org/Yoast/google-analytics-for-wordpress) [![Code Climate](https://codeclimate.com/repos/54523bb669568068b8093b43/badges/04d59b3dc67a0c7ff8ab/gpa.svg)](https://codeclimate.com/repos/54523bb669568068b8093b43/feed) - -Add Google Analytics to WordPress and be able to use all the powerful functions Google Analytics offers! - - -Welcome to the Google Analytics for WordPress Github repository ----------------------------------------------- - -While the documentation for the [Google Analytics for WordPress plugin](http://yoast.com/wordpress/google-analytics/) can be found on yoast.com, here -you can browse the source of the project, find and discuss open issues and even -[contribute yourself](https://github.com/Yoast/google-analytics-for-wordpress/blob/master/CONTRIBUTING.md). - -Installation ------------- - -Here's a [guide on how to install Google Analytics for WordPress in your WordPress site](http://yoast.com/wordpress/google-analytics/installation/). - -If you want to run the Git version for development though, you can set it up with [Composer](https://getcomposer.org/): - -```bash -composer create-project yoast/google-analytics:dev-trunk --prefer-source --keep-vcs -``` - -This will download the latest development version of Google Analytics for WordPress by Yoast. While this version is usually stable, -it is not recommended for use in a production environment. - -Bugs ----- -If you find an issue, [let us know here](https://github.com/Yoast/google-analytics-for-wordpress/issues/new)! - -Please report security issues privately to **security@yoast.com**. - -Support -------- -This is a developer's portal for Google Analytics for WordPress by Yoast and should not be used for support. Please visit the -[support forums](http://wordpress.org/support/plugin/google-analytics-for-wordpress). - -Contributions -------------- -Anyone is welcome to contribute to Google Analytics for WordPress. Please -[read the guidelines](https://github.com/Yoast/google-analytics-for-wordpress/blob/master/CONTRIBUTING.md) for contributing to this -repository. - -There are various ways you can contribute: - -* [Raise an issue](https://github.com/Yoast/google-analytics-for-wordpress/issues) on GitHub. -* Send us a Pull Request with your bug fixes and/or new features. -* [Translate Google Analytics for WordPress by Yoast into different languages](http://translate.yoast.com/projects/google-analytics-for-wordpress). -* Provide feedback and [suggestions on enhancements](https://github.com/Yoast/google-analytics-for-wordpress/issues?direction=desc&labels=Enhancement&page=1&sort=created&state=open). - -Changelog -========= - -Please see readme.txt for the changelog. diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin-assets.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin-assets.php deleted file mode 100644 index 6260ae7c0cb27648120506de51aa1a33c243cee8..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin-assets.php +++ /dev/null @@ -1,101 +0,0 @@ -add_dashboard_js_translations(); - } - - /** - * Getting the full path to given $asset - * - * @param string $asset - * - * @return string - */ - public static function get_asset_path( $asset ) { - static $plugin_directory; - - if ( $plugin_directory == null ) { - $plugin_directory = plugin_dir_url( GAWP_FILE ); - } - - $return = $plugin_directory . $asset; - - return $return; - } - - /** - * Check whether we can include the minified version or not - * - * @param string $ext - * - * @return string - */ - private static function file_ext( $ext ) { - if ( ! defined( 'SCRIPT_DEBUG' ) || ! SCRIPT_DEBUG ) { - $ext = '.min' . $ext; - } - - return $ext; - } - -} \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin-form.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin-form.php deleted file mode 100644 index 952fb35fdee27cf3660cb17946a81b1d0bed82f2..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin-form.php +++ /dev/null @@ -1,338 +0,0 @@ -' . wp_nonce_field( 'save_settings', 'yoast_ga_nonce', null, false ); - } - - - /** - * Return the form end tag and the submit button - * - * @param string $button_label - * @param string $name - * @param string $onclick - * - * @return null|string - */ - public static function end_form( $button_label = null, $name = 'submit', $onclick = null ) { - if ( $button_label === null ) { - $button_label = __( 'Save changes', 'google-analytics-for-wordpress' ); - } - - $output = null; - $output .= '
'; - $output .= ' $type, - 'id' => 'yoast-ga-form-' . $type . '-' . self::$form_namespace . '-' . $id . '', - 'name' => $name, - 'class' => 'ga-form ga-form-' . $type . ' ', - ); - - if ( $type == 'checkbox' ) { - $attributes['value'] = '1'; - - if ( $input_value == 1 ) { - $attributes['checked'] = 'checked'; - } - } - else { - $attributes['value'] = esc_attr( stripslashes( $input_value ) ); - } - - $input .= ''; - - // If we get a description, append it to this select field in a new row - if ( ! is_null( $description ) ) { - $input .= self::show_help( $id, $description ); - } - - if ( ! is_null( $text_label ) ) { - $input .= ''; - } - - $input .= '
'; - - return $input; - } - - /** - * Generate a select box - * - * @param string $title - * @param string $name - * @param array $values - * @param null|string $description - * @param bool $multiple - * @param string $empty_text - * - * @return null|string - */ - public static function select( $title, $name, $values, $description = null, $multiple = false, $empty_text = null ) { - $select = null; - $id = str_replace( '[', '-', $name ); - $id = str_replace( ']', '', $id ); - - $select .= '
'; - if ( ! is_null( $title ) ) { - $select .= self::label( $id, $title, 'select' ); // ''; - } - - if ( $multiple ) { - $select .= ''; - if ( ! is_null( $empty_text ) ) { - $select .= ''; - } - } - if ( count( $values ) >= 1 ) { - $select_value = self::get_formfield_from_options( $name ); - - foreach ( $values as $optgroup => $value ) { - if ( ! empty( $value['items'] ) ) { - $select .= self::create_optgroup( $optgroup, $value, $select_value ); - } - else { - $select .= self::option( $select_value, $value ); - } - } - } - $select .= ''; - - if ( ! is_null( $description ) ) { - $select .= self::show_help( $id, $description ); - } - - $select .= '
'; - - return $select; - } - - - /** - * Generate a textarea field - * - * @param string $title - * @param string $name - * @param null|string $description - * - * @return null|string - */ - public static function textarea( $title, $name, $description = null ) { - $text = null; - $id = Yoast_GA_Options::instance()->option_prefix . '_' . $name; - - $textarea_value = self::get_formfield_from_options( $name ); - - $text .= '
'; - - if ( ! is_null( $title ) ) { - $text .= ''; - } - - $text .= ''; - - if ( ! is_null( $description ) ) { - $text .= self::show_help( $id, $description ); - } - - $text .= '
'; - - return $text; - } - - /** - * Parsing a option string for select - * - * @param string $select_value - * @param string $value - * - * @return string - */ - private static function option( $select_value, $value ) { - - if ( is_array( $select_value ) ) { - if ( in_array( esc_attr( $value['id'] ), $select_value ) ) { - return ''; - } - else { - return ''; - } - } - else { - return ''; - } - } - - - /** - * Show a question mark with help - * - * @param string $id - * @param string $description - * - * @return string - */ - public static function show_help( $id, $description ) { - $help = '' . esc_attr( $description ) . ''; - - return $help; - } - - - /** - * Will parse the optgroups. - * - * @param array $values - * - * @return array - */ - public static function parse_optgroups( $values ) { - $optgroups = array(); - foreach ( $values as $key => $value ) { - foreach ( $value['items'] as $subitem ) { - $optgroups[ $subitem['name'] ]['items'] = $subitem['items']; - } - } - - return $optgroups; - } - - /** - * Creates a label - * - * @param string $id - * @param string $title - * @param string $type - * - * @return string - */ - private static function label( $id, $title, $type ) { - return ''; - } - - /** - * Creates a optgroup with the items. If items contain items it will create a nested optgroup - * - * @param string $optgroup - * @param array $value - * @param array $select_value - * - * @return string - */ - private static function create_optgroup( $optgroup, $value, $select_value ) { - $optgroup = ''; - - foreach ( $value['items'] as $option ) { - if ( ! empty( $option['items'] ) ) { - - $optgroup .= self::create_optgroup( esc_attr( $option['name'] ), $option, $select_value ); - } - else { - $optgroup .= self::option( $select_value, $option ); - } - } - - $optgroup .= ''; - - return $optgroup; - } - - - /** - * Getting the value from the option, if it doesn't exist return empty string - * - * @param string $name - * - * @return string - */ - private static function get_formfield_from_options( $name ) { - static $options; - - if ( $options === null ) { - $options = Yoast_GA_Options::instance()->get_options(); - } - - // Catch a notice if the option doesn't exist, yet - return ( isset( $options[ $name ] ) ) ? $options[ $name ] : ''; - } - - /** - * Parsing given array with attributes as an attribute string - * - * @param array $attributes_to_parse - * - * @return string - */ - private static function parse_attributes( $attributes_to_parse ) { - $parsed_attributes = ''; - foreach ( $attributes_to_parse as $attribute_name => $attribute_value ) { - $parsed_attributes .= $attribute_name . '="' . $attribute_value . '" '; - } - - return trim( $parsed_attributes ); - } - -} \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin-menu.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin-menu.php deleted file mode 100644 index d1a6e14361a905ce66fbe181bda39112a260c6c5..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin-menu.php +++ /dev/null @@ -1,255 +0,0 @@ -target_object = $target_object; - - add_action( 'admin_menu', array( $this, 'create_admin_menu' ), 10 ); - - if ( ! function_exists( 'is_plugin_active_for_network' ) ) { - require_once( ABSPATH . '/wp-admin/includes/plugin.php' ); - } - - if ( is_plugin_active_for_network( GAWP_PATH ) ) { - add_action( 'network_admin_menu', array( $this, 'create_admin_menu' ), 5 ); - } - - $this->dashboards_disabled = Yoast_GA_Settings::get_instance()->dashboards_disabled(); - $this->parent_slug = ( ( $this->dashboards_disabled ) ? 'yst_ga_settings' : 'yst_ga_dashboard' ); - } - - /** - * Create the admin menu - */ - public function create_admin_menu() { - /** - * Filter: 'wpga_menu_on_top' - Allows filtering of menu location of the GA plugin, if false is returned, it moves to bottom. - * - * @api book unsigned - */ - - // Base 64 encoded SVG image - $icon_svg = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgWw0KCTwhRU5USVRZIG5zX2Zsb3dzICJodHRwOi8vbnMuYWRvYmUuY29tL0Zsb3dzLzEuMC8iPg0KCTwhRU5USVRZIG5zX2V4dGVuZCAiaHR0cDovL25zLmFkb2JlLmNvbS9FeHRlbnNpYmlsaXR5LzEuMC8iPg0KCTwhRU5USVRZIG5zX2FpICJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iPg0KCTwhRU5USVRZIG5zX2dyYXBocyAiaHR0cDovL25zLmFkb2JlLmNvbS9HcmFwaHMvMS4wLyI+DQpdPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYWFnXzEiIHhtbG5zOng9IiZuc19leHRlbmQ7IiB4bWxuczppPSImbnNfYWk7IiB4bWxuczpncmFwaD0iJm5zX2dyYXBoczsiDQoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOmE9Imh0dHA6Ly9ucy5hZG9iZS5jb20vQWRvYmVTVkdWaWV3ZXJFeHRlbnNpb25zLzMuMC8iDQoJIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDAgMzEuODkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDMxLjg5IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQwLDEyLjUyNEM0MCw1LjYwOCwzMS40NjksMCwyMCwwQzguNTMsMCwwLDUuNjA4LDAsMTIuNTI0YzAsNS41Niw1LjI0MywxMC4yNzIsMTMuNTU3LDExLjkwN3YtNC4wNjUNCgljMCwwLDAuMDQtMS0wLjI4LTEuOTJjLTAuMzItMC45MjEtMS43Ni0zLjAwMS0xLjc2LTUuMTIxYzAtMi4xMjEsMi41NjEtOS41NjMsNS4xMjItMTAuNDQ0Yy0wLjQsMS4yMDEtMC4zMiw3LjY4My0wLjMyLDcuNjgzDQoJczEuNCwyLjcyLDQuNjQxLDIuNzJjMy4yNDIsMCw0LjUxMS0xLjc2LDQuNzE1LTIuMmMwLjIwNi0wLjQ0LDAuODQ2LTguNzIzLDAuODQ2LTguNzIzczQuMDgyLDQuNDAyLDMuNjgyLDkuMzYzDQoJYy0wLjQwMSw0Ljk2Mi00LjQ4Miw3LjIwMy02LjEyMiw5LjEyM2MtMS4yODYsMS41MDUtMi4yMjQsMy4xMy0yLjYyOSw0LjE2OGMwLjgwMS0wLjAzNCwxLjU4Ny0wLjA5OCwyLjM2MS0wLjE4NGw5LjE1MSw3LjA1OQ0KCWwtNC44ODQtNy44M0MzNS41MzUsMjIuMTYxLDQwLDE3LjcxMyw0MCwxMi41MjR6Ii8+DQo8L2c+DQo8L3N2Zz4='; - - $menu_name = is_network_admin() ? 'extensions' : 'dashboard'; - - if ( $this->dashboards_disabled ) { - $menu_name = 'settings'; - } - - // Add main page - add_menu_page( - __( 'Yoast Google Analytics:', 'google-analytics-for-wordpress' ) . ' ' . __( 'General settings', 'google-analytics-for-wordpress' ), __( 'Analytics', 'google-analytics-for-wordpress' ), 'manage_options', 'yst_ga_' . $menu_name, - array( - $this->target_object, - 'load_page', - ), - $icon_svg, - $this->get_menu_position() - ); - - $this->add_submenu_pages(); - } - - /** - * Get the menu position of the Analytics item - * - * @return string - */ - private function get_menu_position() { - $on_top = apply_filters( 'wpga_menu_on_top', true ); - - if ( $on_top ) { - $position = $this->get_menu_position_value( 'top' ); - - } - else { - $position = $this->get_menu_position_value( 'bottom' ); - } - - // If the dashboards are disabled, force the menu item to stay at the bottom of the menu - if ( $this->dashboards_disabled ) { - $position = $this->get_menu_position_value( 'bottom' ); - } - - return $position; - } - - /** - * Get the top or bottom menu location number - * - * @param string $location - * - * @return string - */ - private function get_menu_position_value( $location ) { - if ( $location == 'top' ) { - return '2.00013467543'; - } - - return '100.00013467543'; - } - - /** - * Prepares an array that can be used to add a submenu page to the Google Analytics for Wordpress menu - * - * @param string $submenu_name - * @param string $submenu_slug - * @param string $font_color - * - * @return array - */ - private function prepare_submenu_page( $submenu_name, $submenu_slug, $font_color = '' ) { - return array( - 'parent_slug' => $this->parent_slug, - 'page_title' => __( 'Yoast Google Analytics:', 'google-analytics-for-wordpress' ) . ' ' . $submenu_name, - 'menu_title' => $this->parse_menu_title( $submenu_name, $font_color ), - 'capability' => 'manage_options', - 'menu_slug' => 'yst_ga_' . $submenu_slug, - 'submenu_function' => array( $this->target_object, 'load_page' ), - ); - } - - /** - * Parsing the menutitle - * - * @param string $menu_title - * @param string $font_color - * - * @return string - */ - private function parse_menu_title( $menu_title, $font_color ) { - if ( ! empty( $font_color ) ) { - $menu_title = '' . $menu_title . ''; - } - - return $menu_title; - } - - /** - * Adds a submenu page to the Google Analytics for WordPress menu - * - * @param array $submenu_page - */ - private function add_submenu_page( $submenu_page ) { - $page = add_submenu_page( $submenu_page['parent_slug'], $submenu_page['page_title'], $submenu_page['menu_title'], $submenu_page['capability'], $submenu_page['menu_slug'], $submenu_page['submenu_function'] ); - $is_dashboard = ( 'yst_ga_dashboard' === $submenu_page['menu_slug'] ); - $this->add_assets( $page, $is_dashboard ); - } - - /** - * Adding stylesheets and based on $is_not_dashboard maybe some more styles and scripts. - * - * @param string $page - * @param boolean $is_dashboard - */ - private function add_assets( $page, $is_dashboard ) { - add_action( 'admin_print_styles-' . $page, array( 'Yoast_GA_Admin_Assets', 'enqueue_styles' ) ); - add_action( 'admin_print_styles-' . $page, array( 'Yoast_GA_Admin_Assets', 'enqueue_settings_styles' ) ); - add_action( 'admin_print_scripts-' . $page, array( 'Yoast_GA_Admin_Assets', 'enqueue_scripts' ) ); - if ( ! $is_dashboard && filter_input( INPUT_GET, 'page' ) === 'yst_ga_dashboard' ) { - Yoast_GA_Admin_Assets::enqueue_dashboard_assets(); - } - } - - /** - * Prepares and adds submenu pages to the Google Analytics for Wordpress menu: - * - Dashboard - * - Settings - * - Extensions - * - * @return void - */ - private function add_submenu_pages() { - foreach ( $this->get_submenu_types() as $submenu ) { - if ( isset( $submenu['color'] ) ) { - $submenu_page = $this->prepare_submenu_page( $submenu['label'], $submenu['slug'], $submenu['color'] ); - } - else { - $submenu_page = $this->prepare_submenu_page( $submenu['label'], $submenu['slug'] ); - } - $this->add_submenu_page( $submenu_page ); - } - } - - /** - * Determine which submenu types should be added as a submenu page. - * - * Dashboard can be disables by user - * - * Dashboard and settings are disables in network admin - * - * @return array - */ - private function get_submenu_types() { - /** - * Array structure: - * - * array( - * $submenu_name => array( - * 'color' => $font_color, - * 'label' => __( 'text-label', 'google-analytics-for-wordpress' ), - * 'slug' => $menu_slug, - * ), - * .., - * ) - * - * $font_color can be left empty. - * - */ - $submenu_types = array(); - - if ( ! is_network_admin() ) { - - if ( ! $this->dashboards_disabled ) { - $submenu_types['dashboard'] = array( - 'label' => __( 'Dashboard', 'google-analytics-for-wordpress' ), - 'slug' => 'dashboard', - ); - } - - $submenu_types['settings'] = array( - 'label' => __( 'Settings', 'google-analytics-for-wordpress' ), - 'slug' => 'settings', - ); - } - - $submenu_types['extensions'] = array( - 'color' => '#f18500', - 'label' => __( 'Extensions', 'google-analytics-for-wordpress' ), - 'slug' => 'extensions', - ); - - return $submenu_types; - } -} \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin.php deleted file mode 100644 index 8fd5ec52b83aa01953cd955faf9f1c62c3eb85d9..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-admin.php +++ /dev/null @@ -1,633 +0,0 @@ -is_running_cron() || $this->is_running_ajax() ) || strpos( $current_page, 'yst_ga' ) === 0 ) { - add_action( 'admin_init', array( $this, 'init_settings' ) ); - } - } - - } - - /** - * Init function when the plugin is loaded - */ - public function init_ga() { - - new Yoast_GA_Admin_Menu( $this ); - - add_filter( 'plugin_action_links_' . plugin_basename( GAWP_FILE ), array( $this, 'add_action_links' ) ); - - } - - /** - * Init function for the settings of GA - */ - public function init_settings() { - $this->options = $this->get_options(); - - try { - // Loading Google Api Libs with minimal version 2.0. - new Yoast_Api_Libs( '2.0' ); - } - catch( Exception $exception ) { - if ( $exception->getMessage() === 'required_version' ) { - add_action( 'admin_notices', array( $this, 'set_api_libs_error' ) ); - } - } - - $dashboards = Yoast_GA_Dashboards::get_instance(); - - // Listener for reconnecting with google analytics - $this->google_analytics_listener(); - - if ( is_null( $this->get_tracking_code() ) && $this->show_admin_warning() ) { - add_action( 'admin_notices', array( 'Yoast_Google_Analytics_Notice', 'config_warning' ) ); - } - - // Check if something has went wrong with GA-api calls - $has_tracking_code = ( ! is_null( $this->get_tracking_code() ) && empty( $this->options['manual_ua_code_field'] ) ); - if ( $has_tracking_code && $this->show_admin_dashboard_warning() ) { - Yoast_Google_Analytics::get_instance()->check_for_ga_issues(); - } - - - if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) { - $this->handle_ga_post_request( $dashboards ); - } - - /** - * Show the notifications if we have one - */ - $this->show_notification( 'ga_notifications' ); - - // Load the Google Analytics Dashboards functionality - $dashboards->init_dashboards( $this->get_current_profile() ); - } - - /** - * There is an error with the API libs. So show a notice. - */ - public function set_api_libs_error() { - echo '

' . __( 'Yoast plugins share some code between them to make your site faster. As a result of that, we need all Yoast plugins to be up to date. We\'ve detected this isn\'t the case, so please update the Yoast plugins that aren\'t up to date yet.', 'google-analytics-for-wordpress' ) . '

'; - } - - /** - * This function saves the settings in the option field and returns a wp success message on success - * - * @param array $data - */ - public function save_settings( $data ) { - - unset( $data['google_auth_code'] ); - - foreach ( $data as $key => $value ) { - if ( $key != 'return_tab' ) { - if ( is_string( $value ) ) { - if ( $key === 'custom_code' && ! current_user_can( 'unfiltered_html' ) ) { - continue; - } - else { - $value = strip_tags( $value ); - } - } - - $this->options[ $key ] = $value; - } - } - - // Check checkboxes, on a uncheck they won't be posted to this function - $defaults = $this->default_ga_values(); - foreach ( $defaults[ $this->option_prefix ] as $option_name => $value ) { - $this->handle_default_setting( $data, $option_name, $value ); - } - - if ( ! empty( $this->options['analytics_profile'] ) ) { - $this->options['analytics_profile_code'] = $this->get_ua_code_from_profile( $this->options['analytics_profile'] ); - } - - $this->do_validation( $data['return_tab'] ); - - if ( $this->update_option( $this->options ) ) { - // Success, add a new notification - $this->add_notification( 'ga_notifications', array( - 'type' => 'success', - 'description' => __( 'Settings saved.', 'google-analytics-for-wordpress' ), - ) ); - } - else { - // Fail, add a new notification - $this->add_notification( 'ga_notifications', array( - 'type' => 'error', - 'description' => __( 'There were no changes to save, please try again.', 'google-analytics-for-wordpress' ), - ) ); - } - - // redirect - wp_redirect( admin_url( 'admin.php' ) . '?page=yst_ga_settings#top#' . $data['return_tab'], 301 ); - exit; - } - - /** - * Redirect to settings with a validation error if there are validation errors - * - * @param string $return_tab The tab to return to when there is a validation error. - */ - protected function do_validation( $return_tab ) { - $validation = $this->validate_settings(); - if ( is_wp_error( $validation ) ) { - $this->add_notification( 'ga_notifications', array( - 'type' => 'error', - 'description' => $validation->get_error_message(), - ) ); - - wp_redirect( admin_url( 'admin.php' ) . '?page=yst_ga_settings#top#' . $return_tab, 301 ); - exit; - } - } - - /** - * Validates the settings in the `options` attribute, returns an WP_Error object on error - * - * @return true|WP_Error true or an error object. - */ - protected function validate_settings() { - - if ( ! empty( $this->options['manual_ua_code_field'] ) ) { - $this->options['manual_ua_code_field'] = trim( $this->options['manual_ua_code_field'] ); - // en dash to minus, prevents issue with code copied from web with "fancy" dash - $this->options['manual_ua_code_field'] = str_replace( '–', '-', $this->options['manual_ua_code_field'] ); - - // Regex to tests if a valid UA code has been set. Valid codes follow: "UA-[4 digits]-[at least 1 digit]". - if ( ! preg_match( '|^UA-\d{4,}-\d+$|', $this->options['manual_ua_code_field'] ) ) { - - return new WP_Error( - 'ua-code-format', - __( 'The UA code needs to follow UA-XXXXXXXX-X format.', 'google-analytics-for-wordpress' ) - ); - } - } - - /** - * Filters the validation for the admin options - * - * @param true|WP_Error true if the validation is successful, WP_Error on error. - * @param array $this->options The options that are being saved. - */ - return apply_filters( 'yst_ga_admin_validate_settings', true, $this->options ); - } - - /** - * Run a this deactivation hook on deactivation of GA. When this happens we'll - * remove the options for the profiles and the refresh token. - */ - public static function ga_deactivation_hook() { - // Remove the refresh token and other API settings - self::analytics_api_clean_up(); - } - - /** - * Handle a default setting in GA - * - * @param array $data - * @param string $option_name - * @param mixed $value - */ - private function handle_default_setting( $data, $option_name, $value ) { - if ( ! isset( $data[ $option_name ] ) ) { - // If no data was passed in, set it to the default. - if ( $value === 1 ) { - // Disable the checkbox for now, use value 0 - $this->options[ $option_name ] = 0; - } - else { - $this->options[ $option_name ] = $value; - } - } - } - - /** - * Handle the post requests in the admin form of the GA plugin - * - * @param Yoast_GA_Dashboards $dashboards - */ - private function handle_ga_post_request( $dashboards ) { - if ( ! function_exists( 'wp_verify_nonce' ) ) { - require_once( ABSPATH . 'wp-includes/pluggable.php' ); - } - - if ( isset( $_POST['ga-form-settings'] ) && wp_verify_nonce( $_POST['yoast_ga_nonce'], 'save_settings' ) ) { - if ( ! isset ( $_POST['ignore_users'] ) ) { - $_POST['ignore_users'] = array(); - } - - $dashboards_disabled = Yoast_GA_Settings::get_instance()->dashboards_disabled(); - - if ( ( $dashboards_disabled == false && isset( $_POST['dashboards_disabled'] ) ) || $this->ga_profile_changed( $_POST ) ) { - $dashboards->reset_dashboards_data(); - } - - // Post submitted and verified with our nonce - $this->save_settings( $_POST ); - } - } - - /** - * Is there selected an other property in the settings post? Returns true or false. - * - * @param array $post - * - * @return bool - */ - private function ga_profile_changed( $post ) { - if ( isset( $post['analytics_profile'] ) && isset( $this->options['analytics_profile'] ) ) { - if ( $post['analytics_profile'] != $this->options['analytics_profile'] ) { - return true; - } - } - - return false; - } - - /** - * Are we allowed to show a warning message? returns true if it's allowed - * - * @return bool - */ - private function show_admin_warning() { - return ( current_user_can( 'manage_options' ) && ( ! isset( $_GET['page'] ) || ( isset( $_GET['page'] ) && $_GET['page'] !== 'yst_ga_settings' ) ) ); - } - - /** - * Are we allowed to show a warning message? returns true if it's allowed ( this is meant to be only for dashboard ) - * - * @return bool - */ - private function show_admin_dashboard_warning() { - return ( current_user_can( 'manage_options' ) && isset( $_GET['page'] ) && $_GET['page'] === 'yst_ga_dashboard' ); - } - - /** - * Transform the Profile ID into an helpful UA code - * - * @param integer $profile_id - * - * @return null - */ - private function get_ua_code_from_profile( $profile_id ) { - $profiles = $this->get_profiles(); - $ua_code = null; - - foreach ( $profiles as $account ) { - foreach ( $account['items'] as $profile ) { - foreach ( $profile['items'] as $subprofile ) { - if ( isset( $subprofile['id'] ) && $subprofile['id'] === $profile_id ) { - return $subprofile['ua_code']; - } - } - } - } - - return $ua_code; - } - - /** - * Add a link to the settings page to the plugins list - * - * @param array $links array of links for the plugins, adapted when the current plugin is found. - * - * @return array $links - */ - public function add_action_links( $links ) { - // add link to knowledgebase - // @todo UTM link fix - $faq_link = '' . __( 'FAQ', 'google-analytics-for-wordpress' ) . ''; - array_unshift( $links, $faq_link ); - - $settings_link = '' . __( 'Settings', 'google-analytics-for-wordpress' ) . ''; - array_unshift( $links, $settings_link ); - - return $links; - } - - /** - * Adds some promo text for the premium plugin on the custom dimensions tab. - */ - public function premium_promo() { - echo '
'; - echo '

'; - printf( __( 'If you want to track custom dimensions like page views per author or post type, you should upgrade to the %1$spremium version of Google Analytics by Yoast%2$s.', 'google-analytics-for-wordpress' ), '', '' ); - echo ' '; - _e( 'This will also give you email access to the support team at Yoast, who will provide support on the plugin 24/7.', 'google-analytics-for-wordpress' ); - echo '

'; - echo '
'; - } - - /** - * Initialize the promo class for our translate site - * - * @return yoast_i18n - */ - public function translate_promo() { - $yoast_ga_i18n = new yoast_i18n( - array( - 'textdomain' => 'google-analytics-for-wordpress', - 'project_slug' => 'google-analytics-for-wordpress', - 'plugin_name' => 'Google Analytics by Yoast', - 'hook' => 'yoast_ga_admin_footer', - 'glotpress_url' => 'https://translate.yoast.com', - 'glotpress_name' => 'Yoast Translate', - 'glotpress_logo' => 'https://cdn.yoast.com/wp-content/uploads/i18n-images/Yoast_Translate.svg', - 'register_url ' => 'https://translate.yoast.com/projects#utm_source=plugin&utm_medium=promo-box&utm_campaign=yoast-ga-i18n-promo', - ) - ); - - return $yoast_ga_i18n; - } - - /** - * Load the page of a menu item in the GA plugin - */ - public function load_page() { - - $this->translate_promo(); - - if ( ! has_action( 'yst_ga_custom_dimensions_tab-content' ) ) { - add_action( 'yst_ga_custom_dimensions_tab-content', array( $this, 'premium_promo' ) ); - } - - if ( ! has_action( 'yst_ga_custom_dimension_add-dashboards-tab' ) ) { - add_action( 'yst_ga_custom_dimension_add-dashboards-tab', array( $this, 'premium_promo' ) ); - } - - switch ( filter_input( INPUT_GET, 'page' ) ) { - case 'yst_ga_settings': - require_once( $this->plugin_path . 'admin/pages/settings.php' ); - break; - case 'yst_ga_extensions': - require_once( $this->plugin_path . 'admin/pages/extensions.php' ); - break; - case 'yst_ga_dashboard': - default: - require_once( $this->plugin_path . 'admin/pages/dashboard.php' ); - break; - } - } - - - /** - * Get the Google Analytics profiles which are in this google account - * - * @return array - */ - public function get_profiles() { - $return = Yoast_Google_Analytics::get_instance()->get_profiles(); - - return $return; - } - - /** - * Checks if there is a callback to get token from Google Analytics API - */ - private function google_analytics_listener() { - $google_auth_code = filter_input( INPUT_POST, 'google_auth_code' ); - if ( $google_auth_code && current_user_can( 'manage_options' ) && wp_verify_nonce( filter_input( INPUT_POST, 'yoast_ga_nonce' ), 'save_settings' ) ) { - self::analytics_api_clean_up(); - - Yoast_Google_Analytics::get_instance()->authenticate( trim( $google_auth_code ) ); - } - } - - /** - * Clean up the Analytics API settings - */ - public static function analytics_api_clean_up() { - delete_option( 'yoast-ga-refresh_token' ); - delete_option( 'yst_ga_api_call_fail' ); - delete_option( 'yst_ga_last_wp_run' ); - delete_option( 'yst_ga_api' ); - } - - /** - * Get the current GA profile - * - * @return null - */ - private function get_current_profile() { - if ( ! empty( $this->options['analytics_profile'] ) ) { - return $this->options['analytics_profile']; - } - - return null; - } - - /** - * Get the user roles of this WordPress blog - * - * @return array - */ - public function get_userroles() { - global $wp_roles; - - $all_roles = $wp_roles->roles; - $roles = array(); - - /** - * Filter: 'editable_roles' - Allows filtering of the roles shown within the plugin (and elsewhere in WP as it's a WP filter) - * - * @api array $all_roles - */ - $editable_roles = apply_filters( 'editable_roles', $all_roles ); - - foreach ( $editable_roles as $id => $name ) { - $roles[] = array( - 'id' => $id, - 'name' => translate_user_role( $name['name'] ), - ); - } - - return $roles; - } - - /** - * Get types of how we can track downloads - * - * @return array - */ - public function track_download_types() { - return array( - 0 => array( 'id' => 'event', 'name' => __( 'Event', 'google-analytics-for-wordpress' ) ), - 1 => array( 'id' => 'pageview', 'name' => __( 'Pageview', 'google-analytics-for-wordpress' ) ), - ); - } - - /** - * Get options for the track full url or links setting - * - * @return array - */ - public function get_track_full_url() { - return array( - 0 => array( 'id' => 'domain', 'name' => __( 'Just the domain', 'google-analytics-for-wordpress' ) ), - 1 => array( 'id' => 'full_links', 'name' => __( 'Full links', 'google-analytics-for-wordpress' ) ), - ); - } - - /** - * Render the admin page head for the GA Plugin - */ - public function content_head() { - require 'views/content_head.php'; - } - - /** - * Render the admin page footer with sidebar for the GA Plugin - */ - public function content_footer() { - - do_action( 'yoast_ga_admin_footer' ); - - if ( true == WP_DEBUG ) { - // Show the debug information if debug is enabled in the wp_config file - echo '

' . __( 'Debug information', 'google-analytics-for-wordpress' ) . '

';
-			var_dump( $this->options );
-			echo '
'; - } - - if ( class_exists( 'Yoast_Product_GA_Premium' ) ) { - $license_manager = new Yoast_Plugin_License_Manager( new Yoast_Product_GA_Premium() ); - if ( $license_manager->license_is_valid() ) { - return; - } - } - - $banners = array(); - $banners[] = array( - 'url' => 'https://yoast.com/hire-us/website-review/#utm_medium=banner&utm_source=gawp-config&utm_campaign=wpgaplugin', - 'banner' => $this->plugin_url . 'assets/img/banner-website-review.png', - 'title' => 'Get a website review by Yoast', - ); - $banners[] = array( - 'url' => 'https://yoast.com/wordpress/plugins/google-analytics/#utm_medium=banner&utm_source=gawp-config&utm_campaign=wpgaplugin', - 'banner' => $this->plugin_url . 'assets/img/banner-premium-ga.png', - 'title' => 'Get the premium version of Google Analytics by Yoast!', - ); - $banners[] = array( - 'url' => 'https://yoast.com/ebook-optimize-wordpress-site/#utm_medium=banner&utm_source=gawp-config&utm_campaign=wpgaplugin', - 'banner' => $this->plugin_url . 'assets/img/eBook_261x130.png', - 'title' => 'Get the Yoast ebook!', - ); - $banners[] = array( - 'url' => 'https://yoast.com/wordpress/plugins/ga-ecommerce/#utm_medium=banner&utm_source=gawp-config&utm_campaign=wpgaplugin', - 'banner' => $this->plugin_url . 'assets/img/banner-ga-ecommerce.png', - 'title' => 'Get advanced eCommerce tracking for WooCommerce and Easy Digital Downloads!', - ); - - shuffle( $banners ); - - require 'views/content-footer.php'; - - } - - /** - * Returns a list of all available extensions - * - * @return array - */ - public function get_extensions() { - $extensions = array( - 'ga_premium' => (object) array( - 'url' => 'https://yoast.com/wordpress/plugins/google-analytics/', - 'title' => __( 'Google Analytics by Yoast Premium', 'google-analytics-for-wordpress' ), - 'desc' => __( 'The premium version of Google Analytics by Yoast with more features and support.', 'google-analytics-for-wordpress' ), - 'status' => 'uninstalled', - ), - 'ecommerce' => (object) array( - 'url' => 'https://yoast.com/wordpress/plugins/ga-ecommerce/', - 'title' => __( 'Google Analytics by Yoast', 'google-analytics-for-wordpress' ) . '
' . __( 'eCommerce tracking', 'google-analytics-for-wordpress' ), - 'desc' => __( 'Track your eCommerce data and transactions with this eCommerce extension for Google Analytics.', 'google-analytics-for-wordpress' ), - 'status' => 'uninstalled', - ), - ); - - $extensions = apply_filters( 'yst_ga_extension_status', $extensions ); - - return $extensions; - } - - /** - * Add a notification to the notification transient - * - * @param string $transient_name - * @param array $settings - */ - private function add_notification( $transient_name, $settings ) { - set_transient( $transient_name, $settings, MINUTE_IN_SECONDS ); - } - - /** - * Show the notification that should be set, after showing the notification this function unset the transient - * - * @param string $transient_name The name of the transient which contains the notification - */ - public function show_notification( $transient_name ) { - $transient = get_transient( $transient_name ); - - if ( isset( $transient['type'] ) && isset( $transient['description'] ) ) { - if ( $transient['type'] == 'success' ) { - add_settings_error( - 'yoast_google_analytics', - 'yoast_google_analytics', - $transient['description'], - 'updated' - ); - } - else { - add_settings_error( - 'yoast_google_analytics', - 'yoast_google_analytics', - $transient['description'], - 'error' - ); - } - - delete_transient( $transient_name ); - } - } - - /** - * Check if there the aggregate data cron is executed - * @return bool - */ - private function is_running_cron() { - return doing_action( 'yst_ga_aggregate_data' ) && defined( 'DOING_CRON' ) && DOING_CRON; - } - - /** - * Check if there the aggregate data cron is executed - * @return bool - */ - private function is_running_ajax() { - return defined( 'DOING_AJAX' ) && DOING_AJAX && strpos( filter_input( INPUT_GET, 'action' ), 'yoast_dashboard' ) === 0; - } - -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-google-analytics.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-google-analytics.php deleted file mode 100644 index 8b79ca5f56fa8fcba7e20637cfe34e0f6d0f8f1a..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-google-analytics.php +++ /dev/null @@ -1,365 +0,0 @@ -options = $this->get_options(); - - // Setting the client - $this->set_client(); - } - - /** - * Getting the instance object - * - * This method will return the instance of itself, if instance not exists, becauses of it's called for the first - * time, the instance will be created. - * - * @return null|Yoast_Google_Analytics - */ - public static function get_instance() { - if ( is_null( self::$instance ) ) { - self::$instance = new self(); - } - - return self::$instance; - } - - - /** - * Check if something went wrong with API calls to Google Analytics - */ - public function check_for_ga_issues() { - - $last_run = get_option( 'yst_ga_last_wp_run' ); - $has_failed = get_option( 'yst_ga_api_call_fail', false ); - - // Show error, something went wrong - if ( $has_failed && ( $last_run === false || Yoast_GA_Utils::hours_between( strtotime( $last_run ), time() ) >= 48 ) ) { - $notice_type = 'warning_fetching_data'; - - // Authentication has been successful, so there will be an access token - if ( ! $this->client->getAccessToken() ) { - $notice_type .= '_authenticate'; - } - - add_action( 'admin_notices', array( 'Yoast_Google_Analytics_Notice', $notice_type ) ); - } - - } - - /** - * Wrapper for authenticate the client. If authentication code is send it will get and check an access token. - * - * @param mixed $authentication_code - * - * @return boolean - */ - public function authenticate( $authentication_code = null ) { - // When authentication again we should clean up some stuff - $this->api_cleanup(); - - return $this->client->authenticate_client( $authentication_code ); - } - - /** - * Getting the analytics profiles - * - * Doing the request to the Google analytics API and if there is a response, parses this response and return its - * array - * - * @return array - */ - public function get_profiles() { - $accounts = $this->format_profile_call( - $this->do_request( 'https://www.googleapis.com/analytics/v3/management/accountSummaries' ) - ); - - if ( is_array( $accounts ) ) { - $this->save_profile_response( $accounts ); - - return $accounts; - } - - return array(); - } - - /** - * Doing request to Google Analytics - * - * This method will do a request to google and get the response code and body from content - * - * @param string $target_request_url - * - * @return array|null - */ - public function do_request( $target_request_url ) { - - $response = $this->client->do_request( $target_request_url ); - - if ( ! empty( $response ) ) { - return array( - 'response' => array( 'code' => $this->client->get_http_response_code() ), - 'body' => json_decode( $response->getResponseBody(), true ), - ); - } - - } - - - /** - * Check if client has a refresh token - * @return bool - */ - public function has_refresh_token() { - return $this->client->is_authenticated(); - } - - /** - * Getting the options bases on $this->option_name from the database - * - * @return mixed - */ - public function get_options() { - return get_option( $this->option_name ); - } - - /** - * Checks whether we'll ever be able to reach Google. - * - * @return bool - */ - public function check_google_access_from_wp() { - $can_access_google = true; - if ( defined( 'WP_HTTP_BLOCK_EXTERNAL' ) && WP_HTTP_BLOCK_EXTERNAL ) { - $can_access_google = false; - if ( defined( 'WP_ACCESSIBLE_HOSTS' ) ) { - // Better to use the internal WP logic from this point forward. - $can_access_google = $this->test_connection_to_google(); - } - } - - return $can_access_google; - } - - /** - * Check if we can access Google Apis from this server by making a dummy connection - */ - public function check_google_access() { - return $this->test_connection_to_google(); - } - - /** - * Updating the options based on $this->option_name and the internal property $this->options - */ - protected function update_options() { - update_option( $this->option_name, $this->options ); - } - - /** - * Setting the client - * - * The filter is a hook to override the configuration/ - */ - protected function set_client() { - // See https://developers.google.com/identity/protocols/OAuth2InstalledApp#formingtheurl for more details about these fields. - $config = array( - 'application_name' => 'Google Analytics by Yoast', - 'client_id' => '346753076522-21smrc6aq0hq8oij8001s57dfoo8igf5.apps.googleusercontent.com', - 'client_secret' => '5oWaEGFgp-bSrY6vWBmdPfIF', - 'redirect_uri' => 'urn:ietf:wg:oauth:2.0:oob', - 'scopes' => array( 'https://www.googleapis.com/auth/analytics.readonly' ), - ); - - $config = apply_filters( 'yst-ga-filter-ga-config', $config ); - - $this->client = new Yoast_Api_Google_Client( $config, 'yoast-ga', '' ); - } - - /** - * Gets an authentication URL - * - * @return mixed - */ - public function create_auth_url() { - return $this->client->createAuthUrl(); - } - - /** - * Saving profile response in options - * - * @param array $accounts - */ - protected function save_profile_response( $accounts ) { - $this->options['ga_api_response_accounts'] = $accounts; - - $this->update_options(); - } - - /** - * Test a connection to Google - * - * @return bool - */ - private function test_connection_to_google() { - $wp_http = new WP_Http(); - if ( $wp_http->block_request( 'https://www.googleapis.com/analytics/v3/management/accountSummaries' ) === false ) { - return true; - } - - return false; - } - - /** - * Format the accounts request - * - * @param array $response - * - * @return mixed - */ - private function format_profile_call( $response ) { - - if ( isset( $response['response']['code'] ) && $response['response']['code'] == 200 ) { - if ( ! empty( $response['body']['items'] ) && is_array( $response['body']['items'] ) ) { - $accounts = array(); - - foreach ( $response['body']['items'] as $item ) { - // Check if webProperties is set - if ( isset( $item['webProperties'] ) ) { - $profiles = array(); - - foreach ( $item['webProperties'] as $property_key => $property ) { - $profiles[ $property_key ] = array( - 'id' => $property['id'], - 'name' => $property['name'], - 'items' => array(), - ); - - // Check if profiles is set - if ( isset( $property['profiles'] ) ) { - foreach ( $property['profiles'] as $key => $profile ) { - $profiles[ $property_key ]['items'][ $key ] = array_merge( - $profile, - array( - 'name' => $profile['name'] . ' (' . $property['id'] . ')', - 'ua_code' => $property['id'], - ) - ); - } - } - } - - $accounts[ $item['id'] ] = array( - 'id' => $item['id'], - 'ua_code' => $property['id'], - 'parent_name' => $item['name'], - 'items' => $profiles, - ); - - } - } - - return $accounts; - } - } - - return false; - } - - /** - * Doing some clean up when this method is called - */ - private function api_cleanup() { - delete_option( 'yst_ga_api_call_fail' ); - } - -} - -/** - * Notice class. - */ -class Yoast_Google_Analytics_Notice { - - /** - * Throw a warning if no UA code is set. - */ - public static function config_warning() { - self::show_error( - sprintf( __( 'Please configure your %sGoogle Analytics settings%s!', 'google-analytics-for-wordpress' ), - '', - '' - ) - ); - } - - /** - * Throw a warning when the fetching failed - */ - public static function warning_fetching_data_authenticate() { - self::show_error( - sprintf( - __( 'It seems the authentication for the plugin has expired, please %sre-authenticate%s with Google Analytics to allow the plugin to fetch data.', 'google-analytics-for-wordpress' ), - '', - '' - ) - ); - } - - /** - * Throw a warning when the fetching failed - */ - public static function warning_fetching_data() { - self::show_error( - sprintf( - __( 'Data is not up-to-date, there was an error in retrieving the data from Google Analytics. This error could be caused by several issues. If the error persists, please see %sthis page%s.', 'google-analytics-for-wordpress' ), - '', - '' - ) - ); - } - - /** - * Showing the given error as an error div - * - * @param string $error_message - */ - private static function show_error( $error_message ) { - echo '

' . $error_message . '

'; - } - -} \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-googleanalytics-reporting.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-googleanalytics-reporting.php deleted file mode 100644 index 06dbb9a605ac27a1d1ea2d2cae4a8e10d6fdc62d..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/class-googleanalytics-reporting.php +++ /dev/null @@ -1,156 +0,0 @@ -date_range( strtotime( $start_date ), strtotime( $end_date ) ); - $data = array_keys( $data_tmp ); - } - - if ( isset( $raw_data['body']['rows'] ) && is_array( $raw_data['body']['rows'] ) ) { - foreach ( $raw_data['body']['rows'] as $key => $item ) { - if ( $store_as == 'datelist' ) { - $data[ (int) $this->format_ga_date( $item[0] ) ] = $this->parse_row( $item ); - } - else { - $data[] = $this->parse_data_row( $item ); - } - } - } - - if ( $store_as == 'datelist' ) { - $data = $this->check_validity_data( $data ); - } - - return $data; - } - - /** - * Check the key on valid unix timestamps and remove invalid keys - * - * @param array $data - * - * @return array - */ - private function check_validity_data( $data = array() ) { - foreach ( $data as $key => $value ) { - if ( strlen( $key ) <= 5 ) { - unset( $data[ $key ] ); - } - } - - return $data; - } - - /** - * Format the GA date value - * - * @param string $date - * - * @return int - */ - private function format_ga_date( $date ) { - $year = substr( $date, 0, 4 ); - $month = substr( $date, 4, 2 ); - $day = substr( $date, 6, 2 ); - - return strtotime( $year . '-' . $month . '-' . $day ); - } - - /** - * Parse a row and return an array with the correct data rows - * - * @param array $item - * - * @return array - */ - private function parse_row( $item ) { - if ( isset( $item[2] ) ) { - return array( - 'date' => (int) $this->format_ga_date( $item[0] ), - 'value' => (string) $item[1], - 'total' => (int) $item[2], - ); - } - - return (int) $item[1]; - } - - /** - * Parse a row for the list storage type - * - * @param array $item - * - * @return array - */ - private function parse_data_row( $item ) { - return array( - 'name' => (string) $item[0], - 'value' => (int) $item[1], - ); - } - - /** - * Calculate the date range between 2 dates - * - * @param string $current - * @param string $last - * @param string $step - * @param string $format - * - * @return array - */ - private function date_range( $current, $last, $step = '+1 day', $format = 'Y-m-d' ) { - $dates = array(); - - while ( $current <= $last ) { - $dates[] = date( $format, $current ); - $current = strtotime( $step, $current ); - } - - return $dates; - } - -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-api-options.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-api-options.php deleted file mode 100644 index 6816d646d85918c90af9f5ec385a8771ce4ba12a..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-api-options.php +++ /dev/null @@ -1,89 +0,0 @@ -set_options(); - } - - /** - * Get the instance - * - * @return Yoast_GA_Dashboards - */ - public static function get_instance() { - if ( is_null( self::$instance ) ) { - self::$instance = new self(); - } - - return self::$instance; - } - - /** - * Set the API options - */ - public function set_options() { - $this->options = Yoast_Google_Analytics::get_instance()->get_options(); - - $this->set_access_token(); - } - - /** - * Set the access token if we have one - */ - private function set_access_token() { - if ( isset( $this->options['ga_oauth']['access_token']['oauth_token'] ) && isset( $this->options['ga_oauth']['access_token']['oauth_token_secret'] ) ) { - $this->access_token = $this->options['ga_oauth']['access_token']; - } - } - - /** - * Get the API options - * - * @return mixed - */ - public function get_options() { - return $this->options; - } - - /** - * Get the access token from the options API, false on fail - * - * @return bool - */ - public function get_access_token() { - if ( ! empty( $this->access_token ) ) { - return $this->access_token; - } - else { - return false; - } - } - -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-collector.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-collector.php deleted file mode 100644 index 8d26aeea658e311f68b36382978898615da69338..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-collector.php +++ /dev/null @@ -1,464 +0,0 @@ -ga_profile_id = $ga_profile_id; - - $active_metrics = $this->filter_metrics_to_dimensions( $active_metrics ); - $this->active_metrics = $active_metrics; - - add_filter( 'ga_dashboards_dimensions', array( $this, 'filter_dimensions' ), 10, 1 ); - - $this->options = Yoast_GA_Dashboards_Api_Options::get_instance(); - - $this->init_shutdown_hook(); - } - - /** - * Fetch the data from Google Analytics and store it - */ - public function aggregate_data() { - if ( is_numeric( $this->ga_profile_id ) ) { - // ProfileID is set - - /** - * Implement the metric data first - */ - if ( is_array( $this->active_metrics ) && count( $this->active_metrics ) >= 1 ) { - $this->aggregate_metrics( $this->active_metrics ); - } - - /** - * Now implement the dimensions that are set - */ - if ( is_array( $this->dimensions ) && count( $this->dimensions ) >= 1 ) { - $this->aggregate_dimensions( $this->dimensions ); - } - } - else { - // Failure on authenticating, please reauthenticate - } - } - - /** - * This hook runs on the shutdown to fetch data from GA - */ - private function init_shutdown_hook() { - // Hook the WP cron event - add_action( 'wp', array( $this, 'setup_wp_cron_aggregate' ) ); - - // Hook our function to the WP cron event the fetch data daily - add_action( 'yst_ga_aggregate_data', array( $this, 'aggregate_data' ) ); - - // Check if the WP cron did run on time - if ( filter_input( INPUT_GET, 'page' ) === 'yst_ga_dashboard' ) { - add_action( 'shutdown', array( $this, 'check_api_call_hook' ) ); - } - } - - /** - * Check if we scheduled the WP cron event, if not, do so. - */ - public function setup_wp_cron_aggregate() { - if ( ! wp_next_scheduled( 'yst_ga_aggregate_data' ) ) { - // Set the next event of fetching data - wp_schedule_event( strtotime( date( 'Y-m-d', strtotime( 'tomorrow' ) ) . ' 00:05:00 ' ), 'daily', 'yst_ga_aggregate_data' ); - } - } - - /** - * Check if the WP cron did run yesterday. If not, we need to run it form here - */ - public function check_api_call_hook() { - $last_run = $this->get_last_aggregate_run(); - - - /** - * Transient doesn't exists, so we need to run the - * hook (This function runs already on Shutdown so - * we can call it directly from now on) or the last run has ben more than 24 hours - */ - if ( $last_run === false || Yoast_GA_Utils::hours_between( strtotime( $last_run ), time() ) >= 24 ) { - $this->aggregate_data(); - } - } - - - /** - * Get the datetime when the aggregate data function was succesful - * - * @return mixed - */ - private function get_last_aggregate_run() { - return get_option( 'yst_ga_last_wp_run' ); - } - - /** - * Remove metrics and set them as a dimension if needed - * - * @param array $metrics - * - * @return mixed - */ - private function filter_metrics_to_dimensions( $metrics ) { - $filter_metrics = $this->get_filter_metrics(); - - foreach ( $metrics as $key => $metric_name ) { - if ( isset( $filter_metrics[ $metric_name ] ) ) { - // Add and set the dimension - $dimension = array( $filter_metrics[ $metric_name ] ); - $this->dimensions = array_merge( $this->dimensions, $dimension ); - - // Remove it from the metrics after we've added it into dimensions - unset( $metrics[ $key ] ); - } - } - - return $metrics; - } - - /** - * Get array with metrics which we need to filter as a dimension - * - * @return array - */ - private function get_filter_metrics() { - return array( - 'source' => array( - 'metric' => 'sessions', - 'dimension' => 'source', - 'storage_name' => 'source', - ), - 'top_pageviews' => array( - 'metric' => 'pageViews', - 'dimension' => 'pagePath', - 'storage_name' => 'top_pageviews', - ), - 'top_countries' => array( - 'metric' => 'sessions', - 'dimension' => 'country', - 'storage_name' => 'top_countries', - ), - ); - } - - /** - * Filter function for adding dimensions - * - * @filter ga_dashboards_dimensions - * - * @param array $dimensions - * - * @return array - */ - public function filter_dimensions( $dimensions = array() ) { - if ( is_array( $dimensions ) && count( $dimensions ) >= 1 ) { - $dimensions = array_merge( $this->dimensions, $dimensions ); - $this->dimensions = $dimensions; - } - - return $this->dimensions; - } - - /** - * Get the start and and date for aggregation functionality - * - * @return array - */ - private function get_date_range() { - /** - * Filter: 'yst-ga-filter-api-end-date' - Allow people to change the end date for the dashboard - * data. Default: yesterday. - * - * @api string Date (Y-m-d) - */ - return array( - 'start' => date( 'Y-m-d', strtotime( '-1 month' ) ), - 'end' => apply_filters( 'yst-ga-filter-api-end-date', date( 'Y-m-d', strtotime( 'yesterday' ) ) ), - ); - } - - /** - * Aggregate metrics from GA. This function should be called in the shutdown function. - * - * @param array $metrics - */ - private function aggregate_metrics( $metrics ) { - $dates = $this->get_date_range(); - - foreach ( $metrics as $metric ) { - $this->execute_call( $metric, $dates['start'], $dates['end'] ); - } - } - - /** - * Aggregate dimensions from GA. This function should be called in the shutdown function. - * - * @param array $dimensions - */ - private function aggregate_dimensions( $dimensions ) { - $dates = $this->get_date_range(); - - foreach ( $dimensions as $dimension ) { - if ( isset( $dimension['metric'] ) ) { - if ( isset( $dimension['id'] ) ) { - $this->execute_call( $dimension['metric'], $dates['start'], $dates['end'], 'ga:dimension' . $dimension['id'] ); - } - elseif ( isset( $dimension['dimension'] ) ) { - if ( isset( $dimension['storage_name'] ) ) { - $this->execute_call( $dimension['metric'], $dates['start'], $dates['end'], 'ga:' . $dimension['dimension'], $dimension['storage_name'] ); - } - else { - $this->execute_call( $dimension['metric'], $dates['start'], $dates['end'], 'ga:' . $dimension['dimension'] ); - } - } - } - } - } - - /** - * Execute an API call to Google Analytics and store the data in the dashboards data class - * - * @param string $metric - * @param string $start_date 2014-10-16 - * @param string $end_date 2014-11-20 - * @param string $dimensions ga:date - * @param string $storage_name auto - * - * @return bool - */ - private function execute_call( $metric, $start_date, $end_date, $dimensions = 'ga:date', $storage_name = 'auto' ) { - $dimensions = $this->prepare_dimensions( $dimensions, $metric ); - $params = $this->build_params_for_call( $start_date, $end_date, $dimensions, $metric ); - $storage_type = $this->get_storage_type( $dimensions ); - - $response = Yoast_Google_Analytics::get_instance()->do_request( 'https://www.googleapis.com/analytics/v3/data/ga?' . $params ); - - if ( isset( $response['response']['code'] ) && $response['response']['code'] == 200 ) { - - // Delete option api_fail because there it's successful now - delete_option( 'yst_ga_api_call_fail' ); - - // Success, set a transient which stores the latest runtime - update_option( 'yst_ga_last_wp_run', date( 'Y-m-d' ) ); - - $response = Yoast_Googleanalytics_Reporting::get_instance()->parse_response( $response, $storage_type, $start_date, $end_date ); - } - else { - // When response is failing, we should count the number of - $this->save_api_failure(); - - return false; - } - - if ( strpos( 'ga:date', $dimensions ) !== false ) { - return $this->handle_response( $response, $metric, $dimensions, $start_date, $end_date, 'datelist', $storage_name ); - } - else { - return $this->handle_response( $response, $metric, $dimensions, $start_date, $end_date, 'table', $storage_name ); - } - } - - /** - * When the API isn't able to get a successful response (code 200), we have to save that the call has failed - */ - private function save_api_failure() { - update_option( 'yst_ga_api_call_fail', true ); - } - - /** - * Get the storage type from dimensions - * - * @param string $dimensions - * - * @return string - */ - private function get_storage_type( $dimensions ) { - if ( strpos( 'ga:date', $dimensions ) !== false ) { - return 'datelist'; - } - else { - return 'table'; - } - } - - /** - * Prepare dimensions before adding them as a parameter in a call - * - * @param array $dimensions - * @param array $metric - * - * @return array - */ - private function prepare_dimensions( $dimensions, $metric ) { - $filter_metrics = $this->get_filter_metrics(); - - // Check if the dimensions param is an array, if so, glue it with implode to a comma separated string. - if ( is_array( $dimensions ) ) { - $dimensions = implode( ',', $dimensions ); - } - - if ( in_array( $metric, $this->valid_metrics ) ) { - $dimensions = 'ga:date,' . $dimensions; - } - elseif ( isset( $filter_metrics[ str_replace( 'ga:', '', $dimensions ) ] ) ) { - // Make sure we don't have a ga:date property here - $dimensions = str_replace( 'ga:date', '', $dimensions ); - } - - return $dimensions; - } - - /** - * Build the params for a call to Google Analytics, return them prepared for a http query - * - * @param string $start_date - * @param string $end_date - * @param string $dimensions - * @param string $metric - * - * @return string - */ - private function build_params_for_call( $start_date, $end_date, $dimensions, $metric ) { - /** - * Filter: 'yst-ga-filter-api-limit' - Allow people to change the max results value in the API - * calls. Default value is 1000 results per call. - * - * @api int 1000 - */ - $api_call_limit = apply_filters( 'yst-ga-filter-api-limit', 1000 ); - - $params = array( - 'ids' => 'ga:' . $this->ga_profile_id, - 'start-date' => $start_date, - 'end-date' => $end_date, - 'dimensions' => $dimensions, - 'metrics' => 'ga:' . $metric, - 'max-results' => $api_call_limit, - ); - - $params = $this->add_sort_direction( $params, $dimensions, $metric ); - $params = http_build_query( $params ); - - return $params; - } - - /** - * Add a sort direction if we need to (Especially on dimensions which are - * listed in $this->get_filter_metrics()) - * - * @param array $params - * @param string $dimensions - * @param string $metric - * - * @return array - */ - private function add_sort_direction( $params, $dimensions, $metric ) { - $filter_dimensions = $this->get_filter_metrics(); - - foreach ( $filter_dimensions as $dimension ) { - if ( str_replace( 'ga:', '', $dimensions ) == $dimension['dimension'] && str_replace( 'ga:', '', $metric ) == $dimension['metric'] ) { - $params['sort'] = '-ga:' . $dimension['metric']; - } - } - - return $params; - } - - /** - * Handle the response from the Google Analytics api. - * - * @param array|boolean $response - * @param string $metric - * @param array $dimensions - * @param string $start_date - * @param string $end_date - * @param string $store_as - * @param string $storage_name - * - * @return bool - */ - private function handle_response( $response, $metric, $dimensions, $start_date, $end_date, $store_as = 'table', $storage_name = 'auto' ) { - if ( is_array( $response ) ) { - // Success, store this data - $filter_metrics = $this->get_filter_metrics(); - $extracted = str_replace( 'ga:', '', str_replace( 'ga:date,', '', $dimensions ) ); - - if ( isset( $filter_metrics[ $extracted ] ) ) { - $name = $extracted; - } - else { - $name = $metric; - } - - if ( $dimensions !== 'ga:date' && ! isset( $filter_metrics[ $extracted ] ) ) { - $name = str_replace( 'ga:date,', '', $dimensions ); - } - - // Overwrite the name if we have a defined one - if ( $storage_name != 'auto' ) { - $name = $storage_name; - } - - return Yoast_GA_Dashboards_Data::set( $name, $response, strtotime( $start_date ), strtotime( $end_date ), $store_as ); - } - else { - // Failure on API call try to log it - $this->log_error( print_r( $response, true ) ); - - return false; - } - } - - /** - * Log an error while calling the Google Analytics API - * - * @param string $error - */ - private function log_error( $error ) { - if ( true == WP_DEBUG ) { - if ( function_exists( 'error_log' ) ) { - error_log( 'Google Analytics by Yoast (Dashboard API): ' . $error ); - } - } - } - -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-data.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-data.php deleted file mode 100644 index 2409240aa78f0f7dda2619ae09b0a5420d65349f..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-data.php +++ /dev/null @@ -1,68 +0,0 @@ - $store_as, - 'type' => $type, - 'start_date' => $start_date, - 'end_date' => $end_date, - 'value' => $value, - ); - - return update_option( 'yst_ga_' . $type, $store ); - } - - /** - * Reset an option of the GA dashboards storage engine - * - * @param string $type - * - * @return bool - */ - public static function reset( $type ) { - return update_option( 'yst_ga_' . $type, array() ); - } -} \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-display.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-display.php deleted file mode 100644 index cdfa5b5cbe86f8845f156f502265b6741b10017d..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards-display.php +++ /dev/null @@ -1,142 +0,0 @@ -dashboard_types as $dashboard_type ) { - if ( ! $this->driver_exists( $dashboard_type ) ) { - $this->create_driver( $dashboard_type ); - } - } - } - - /** - * Get the driver from property, this->drivers - * - * If driver doesn't exist, it will be created first - * - * @param string $dashboard_type - The name of the driver that will be returned - * - * @return object - */ - private function driver( $dashboard_type ) { - - if ( ! $this->driver_exists( $dashboard_type ) ) { - $this->create_driver( $dashboard_type ); - } - - return $this->drivers[ $dashboard_type ]; - } - - /** - * Adding dashboards to $this->dashboard en register them to the driver by $this->register - * - * @param array $dashboards - */ - public function add_dashboards( $dashboards ) { - // Save all dashboards to property - for future use - $this->dashboards = array_merge( $this->dashboards, $dashboards ); - - $this->register( $dashboards ); - } - - /** - * Register dashboards to the drivers - * - * @param array $dashboards - */ - private function register( $dashboards ) { - foreach ( $dashboards as $dashboard_name => $dashboard_settings ) { - if ( ! empty( $dashboard_settings['type'] ) ) { - $this->driver( $dashboard_settings['type'] )->register( $dashboard_name, $dashboard_settings ); - } - } - } - - /** - * Displaying the $dashboards on the screen. If $dashboards isn't given it will display all registered - * dashboards - * - * @param string $tab_to_show - */ - public function display( $tab_to_show ) { - - $dashboards_to_show = $this->dashboards; - - foreach ( $dashboards_to_show as $dashboard_name => $dashboard_settings ) { - if ( ! empty( $dashboard_settings['tab'] ) && $dashboard_settings['tab'] === $tab_to_show ) { - $this->driver( $dashboard_settings['type'] )->display( $dashboard_name ); - } - } - } - - /** - * Check if given $dashboard_type exists and if it's an object - * - * @param string $dashboard_type - * - * @return bool - */ - protected function driver_exists( $dashboard_type ) { - return array_key_exists( $dashboard_type, $this->drivers ) && is_object( $this->drivers[ $dashboard_type ] ); - } - - /** - * Creates a driver based on given $dashboard_type - * - * @param string $dashboard_type - */ - protected function create_driver( $dashboard_type ) { - $driver_class = 'Yoast_GA_Dashboards_' . ucfirst( $dashboard_type ); - $this->drivers[ $dashboard_type ] = new $driver_class(); - } - -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards.php deleted file mode 100644 index 19a2cd7223340b27a878f9705659358c9f7579f3..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/class-admin-dashboards.php +++ /dev/null @@ -1,253 +0,0 @@ -dashboards_disabled = Yoast_GA_Settings::get_instance()->dashboards_disabled(); - } - - /** - * Init the dashboards - * - * @param integer $ga_profile_id - */ - public function init_dashboards( $ga_profile_id ) { - if ( ! $this->dashboards_disabled ) { - $dashboards = $this->get_default_dashboards(); - - $this->extend_dashboards( $dashboards ); - - // Register the active metrics - $register = array_keys( $dashboards ); - - $this->aggregator = new Yoast_GA_Dashboards_Collector( $ga_profile_id, $register, $this->valid_metrics ); - - $this->register( $register ); - } - } - - /** - * Adding dashboards for front-end - * - * By hook as filter: $dashboards = apply_filters( 'ga_extend_dashboards', $dashboards); - * - * @param array $dashboards - * - * @return mixed - */ - public function extend_dashboards( $dashboards ) { - // Initialize the dashboard graphs - Yoast_GA_Dashboards_Display::get_instance()->add_dashboards( $dashboards ); - - return $dashboards; - } - - /** - * Get the instance - * - * @return Yoast_GA_Dashboards - */ - public static function get_instance() { - if ( is_null( self::$instance ) ) { - self::$instance = new self(); - } - - return self::$instance; - } - - /** - * Register the dashboard types - * - * @param array|string $types - * - * @return bool - */ - public function register( $types ) { - if ( is_array( $types ) == false ) { - $types = array( $types ); - } - - if ( is_array( $types ) && count( $types ) >= 1 ) { - if ( $this->validate_dashboard_types( $types ) ) { - $this->active_metrics = $types; - - return true; - } - } - - return false; - } - - /** - * Adding translations to ga-admin-dashboard - */ - public function add_dashboard_js_translations() { - // Now we can localize the script with our data. - $translation_array = array( - // For datatables - 'sort_ascending' => __( ': activate to sort column ascending', 'google-analytics-for-wordpress' ), - 'sort_descending' => __( ': activate to sort column descending', 'google-analytics-for-wordpress' ), - 'empty_table' => __( 'No data available', 'google-analytics-for-wordpress' ), - 'info' => _x( 'Showing _START_ to _END_ of _TOTAL_ rows', '_START_, _END_ and _TOTAL_ will be replaced by JS (See: http://datatables.net/reference/option/language.info)', 'google-analytics-for-wordpress' ), - 'info_empty' => __( 'No rows to show', 'google-analytics-for-wordpress' ), - 'info_filtered' => _x( '(filtered from _MAX_ total rows)', '_MAX_ will be replaced by JS (See: http://datatables.net/reference/option/language.infoFiltered)', 'google-analytics-for-wordpress' ), - 'length_menu' => _x( 'Show _MENU_ rows', '_MAX_ will be replaced by JS', 'google-analytics-for-wordpress' ), - 'loading_records' => __( 'Loading...', 'google-analytics-for-wordpress' ), - 'pagination_first' => __( 'First', 'google-analytics-for-wordpress' ), - 'pagination_last' => __( 'Last', 'google-analytics-for-wordpress' ), - 'pagination_next' => __( 'Next', 'google-analytics-for-wordpress' ), - 'pagination_previous' => __( 'Previous', 'google-analytics-for-wordpress' ), - 'processing' => __( 'Processing...', 'google-analytics-for-wordpress' ), - 'search_placeholder' => __( 'Search', 'google-analytics-for-wordpress' ), - 'zero_records' => __( 'No matching records found', 'google-analytics-for-wordpress' ), - - // For dimensions - 'dimensions' => __( 'Reports', 'google-analytics-for-wordpress' ), - 'custom_dimensions' => __( 'Custom dimension reports', 'google-analytics-for-wordpress' ), - ); - - wp_localize_script( 'ga-admin-dashboard', 'dashboard_translate', $translation_array ); - } - - /** - * Reset all dashboards data by removing the options of the registered dashboards - * - * @return bool - */ - public function reset_dashboards_data() { - if ( ! $this->dashboards_disabled ) { - $dashboards = $this->get_default_dashboards(); - - if ( is_array( $dashboards ) && count( $dashboards ) >= 1 ) { - foreach ( $dashboards as $name => $board ) { - Yoast_GA_Dashboards_Data::reset( $name ); - } - - // Make sure we fetch new data if we enable the dashboards by updating the last_run option - update_option( 'yst_ga_last_wp_run', date( 'Y-m-d', strtotime( '-2 days' ) ) ); - - return true; - } - } - - return false; - } - - /** - * Get the defaults dashboard array to register - * - * @return array - */ - private function get_default_dashboards() { - return array( - 'sessions' => array( - 'title' => __( 'Sessions', 'google-analytics-for-wordpress' ), - 'help' => __( 'A session is a group of interactions that take place on your website within a given time frame. For example a single session can contain multiple screen or page views, events, social interactions, and ecommerce transactions. [Learn more]', 'google-analytics-for-wordpress' ), - 'type' => 'graph', - 'tab' => 'general', - ), - 'bounceRate' => array( - 'title' => __( 'Bounce rate', 'google-analytics-for-wordpress' ), - 'help' => __( 'Bounce Rate is the percentage of single-page sessions (i.e. sessions in which the person left your site from the entrance page without interacting with the page). [Learn more]', 'google-analytics-for-wordpress' ), - 'data-percent' => true, - 'type' => 'graph', - 'tab' => 'general', - ), - 'source' => array( - 'title' => __( 'Traffic sources', 'google-analytics-for-wordpress' ), - 'help' => __( 'Every referral to a web site has an origin, or (traffic) source. Possible sources include: “google” (the name of a search engine), “facebook.com” (the name of a referring site), “spring_newsletter” (the name of one of your newsletters), and “direct” (users that typed your URL directly into their browser, or who had bookmarked your site). [Learn more]', 'google-analytics-for-wordpress' ), - 'type' => 'table', - 'columns' => array( - __( 'Sessions', 'google-analytics-for-wordpress' ) - ), - 'tab' => 'dimensions', - ), - 'top_pageviews' => array( - 'title' => __( 'Popular pages', 'google-analytics-for-wordpress' ), - 'help' => __( 'Pages by url.', 'google-analytics-for-wordpress' ), - 'type' => 'table', - 'columns' => array( - __( 'Sessions', 'google-analytics-for-wordpress' ) - ), - 'tab' => 'dimensions', - ), - 'top_countries' => array( - 'title' => __( 'Countries', 'google-analytics-for-wordpress' ), - 'help' => __( 'The country or territory from which visits originated. [Learn more]', 'google-analytics-for-wordpress' ), - 'type' => 'table', - 'columns' => array( - __( 'Sessions', 'google-analytics-for-wordpress' ) - ), - 'tab' => 'dimensions', - ), - ); - } - - /** - * Validate the registered types of dashboards - * - * @param array $types - * - * @return bool - */ - private function validate_dashboard_types( $types ) { - $valid = true; - - if ( is_array( $types ) ) { - foreach ( $types as $check_type ) { - if ( ! in_array( $check_type, $this->valid_metrics ) ) { - $valid = false; - } - } - } - - return $valid; - } -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-driver-generate.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-driver-generate.php deleted file mode 100644 index daa85c4b4ccac576dab53ba414634195382e9052..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-driver-generate.php +++ /dev/null @@ -1,150 +0,0 @@ -set_graph_type(); - $this->set_period(); - $this->set_end_date(); - $this->set_start_date(); - } - - /** - * Getting graph_id from post and strip HTML-prefix graph- to get the type - */ - protected function set_graph_type() { - $graph_id = filter_input( INPUT_GET, 'graph_id' ); - $graph_type = str_replace( array( 'graph-', 'table-' ), '', $graph_id ); - $this->graph_type = $graph_type; - } - - /** - * Getting the period from post - */ - protected function set_period() { - $this->period = filter_input( INPUT_GET, 'period' ); - } - - /** - * Setting the end date - */ - protected function set_end_date() { - $this->end_date = time(); - } - - /** - * This method will set a start_date based on $this->period - * - * The values in dropdown, that will be mapped in strtotime - * See: http://php.net/manual/en/datetime.formats.relative.php - */ - protected function set_start_date() { - - switch ( $this->period ) { - case 'lastweek' : - $time = '-6 days'; - break; - default: - case 'lastmonth' : - $time = '-1 month'; - break; - } - - $start_date = strtotime( $time, $this->end_date ); - - $this->start_date = $start_date; - } - - /** - * Getting the saved Google data - * - * @return array - */ - protected function get_google_data() { - - $response = Yoast_GA_Dashboards_Data::get( $this->graph_type ); - - if ( $response != array() && array_key_exists( 'body', $response['value'] ) ) { - $return = $response['value']['body']; - } - else { - $return = $response; - } - - return $this->filter_google_data( $return ); - } - - /** - * Check if given timestamp is in given period - * - * @param integer $timestamp - * - * @return bool - */ - protected function is_date_in_period( $timestamp ) { - return ( $timestamp >= $this->start_date && $timestamp <= $this->end_date ); - } - - /** - * Escape the data array before output - * - * @param array $data The data array that we need to check - * - * @return array|boolean The data array which is escaped - */ - protected function escape_strings_array( $data ) { - if ( is_array( $data ) ) { - foreach ( $data as $key => $value ) { - if ( is_array( $value ) ) { - foreach ( $value as $subkey => $subvar ) { - $data[ $key ][ $subkey ] = esc_html( $subvar ); - } - } - else { - $data[ $key ] = esc_html( (string) $value ); - } - } - - return $data; - } - - return false; - } - - /** - * Should always be available - * - * @return mixed - */ - abstract public function get_json(); - -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-driver.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-driver.php deleted file mode 100644 index 303271cb2a7f1bbbd143840b3762022f8c13dfba..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-driver.php +++ /dev/null @@ -1,83 +0,0 @@ -initialize_ajax(); - } - - /** - * Method which will be called by AJAX - * - * Will echo json for graph - */ - public function get_ajax_data() { - check_ajax_referer( 'yoast-ga-dashboard-nonce', '_ajax_nonce' ); - - $generator = $this->get_dashboard_generate_object(); - $json = $generator->get_json(); - - echo $json; - die(); - } - - /** - * Register a dashboard with settings. - * - * Dashboard can contain multiple dashboard-types. If so, $values shouldn't be passed and $dashboard argument - * should be key->value, key = dashboard and value should contain the values - * - * Given arguments will be marge with objects property dashboards - * - * @param mixed $dashboard - * @param mixed $values - */ - public function register( $dashboard, $values = false ) { - - if ( ! is_array( $dashboard ) ) { - $dashboard = array( $dashboard => $values ); - } - - $this->dashboards = array_merge( $this->dashboards, $dashboard ); - } - - /** - * Giving the dashboardname to show - * - * @param string $dashboard - */ - public function display( $dashboard ) { - $settings = $this->dashboards[ $dashboard ]; - require dirname( GAWP_FILE ) . '/admin/dashboards/views/' . $this->dashboard_type . '.php'; - } - - /** - * Setting hook for doing ajax request - */ - protected function initialize_ajax() { - add_action( $this->ajax_hook, array( $this, 'get_ajax_data' ) ); - } - - /** - * This method should always be available - * @return mixed - */ - abstract protected function get_dashboard_generate_object(); - -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-graph-generate.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-graph-generate.php deleted file mode 100644 index c827ff3854951677a17270f596c64143f1316d16..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-graph-generate.php +++ /dev/null @@ -1,154 +0,0 @@ - array(), - 'hover' => array(), - ); - - /** - * Construct will set all values and generate the date for response - */ - public function __construct() { - parent::__construct(); - - $this->set_date_field(); - - $this->generate(); - } - - /** - * Putting $this->data and $this->mapping and give them back as a json encoded string - * - * @return string - */ - public function get_json() { - $return = array( - 'data' => $this->data, - 'mapping' => $this->mapping, - ); - - return json_encode( $return ); - } - - /** - * Filtering the current data to eliminate all values which are not in given period - * - * @param integer $google_data - * - * @return integer - */ - protected function filter_google_data( $google_data ) { - - foreach ( $google_data['value'] as $unix_timestamp => $value ) { - if ( $this->is_date_in_period( $unix_timestamp ) ) { - $return[ $unix_timestamp ] = $value; - } - } - - return $return; - } - - /** - * Which field should be taken from timestamp. Most cases J will be good - */ - private function set_date_field() { - switch ( $this->period ) { - default: - case 'lastweek' : - case 'lastmonth' : - $date_field = 'j'; - break; - } - - $this->date_field = $date_field; - } - - /** - * Generate the data for the frontend based on the $google_data - */ - private function generate() { - $google_data = $this->get_google_data(); - - foreach ( $google_data as $timestamp => $value ) { - $timestamp = esc_html( $timestamp ); - - $this->add_data( $value ); - $this->add_x_mapping( $timestamp ); - $this->add_hover_mapping( $timestamp, $value ); - } - - $this->mapping['x'] = array_filter( $this->mapping['x'] ); - } - - /** - * Adding value to data property - * - * x is position on x-axis, always starting from 0 - * y is the value of that point. - * - * @param integer $value - */ - private function add_data( $value ) { - static $current_x = 0; - - $this->data[] = array( - 'x' => $current_x, - 'y' => $value, - ); - - $current_x ++; - } - - /** - * Add date field to the x-mapping - * - * Key will be auto numbered by PHP, starting with 0, the key will always point to the the x in x-axis - * The value will be always the value that should be displayed. - * - * @param integer $timestamp - */ - private function add_x_mapping( $timestamp ) { - - $is_monday = ( 'Mon' === date( 'D', $timestamp ) ); - $this->mapping['x'][] = ( $is_monday ) ? date( $this->date_field . ' M', $timestamp ) : null; - } - - /** - * Add date field to the hover-mapping - * - * @param integer $timestamp - * @param integer $value - */ - private function add_hover_mapping( $timestamp, $value ) { - $this->mapping['hover'][] = esc_html( date_i18n( 'l ' . $this->date_field . ' M', $timestamp ) . ': ' . number_format_i18n( $value, 0 ) ); - } - -} - diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-graph.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-graph.php deleted file mode 100644 index 48e42782a672f34e1f3fd7e600b84e9ab9389a4c..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-graph.php +++ /dev/null @@ -1,30 +0,0 @@ -set_dimension_id(); - - $this->generate(); - } - - /** - * Putting $this->data and $this->mapping and give them back as a json encoded string - * - * @return string - */ - public function get_json() { - $return = array( - 'data' => $this->escape_strings_array( $this->data ), - ); - - return json_encode( $return ); - } - - /** - * Filtering the current data to eliminate all values which are not in given period - * - * @param integer $google_data - * - * @return integer - */ - protected function filter_google_data( $google_data ) { - return $google_data['value']; - } - - /** - * Setting the dimension_id for current request. Based on dimension_id the graph_type will be set, this to - * handle the request correctly - */ - private function set_dimension_id() { - $this->dimension_id = filter_input( INPUT_GET, 'dimension_id' ); - - if ( ! empty( $this->dimension_id ) ) { - $this->graph_type = 'ga:dimension' . $this->dimension_id; - } - else { - $this->graph_type = $this->graph_type; - } - } - - /** - * Generate the data for the frontend based on the $google_data - */ - private function generate() { - $google_data = $this->get_google_data(); - $this->data = is_array( $google_data ) ? array_values( $google_data ) : array(); - } - -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-table.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-table.php deleted file mode 100644 index c1f6e31346717fcf0815fc912fe39434b2cca0c4..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/drivers/class-admin-dashboards-table.php +++ /dev/null @@ -1,30 +0,0 @@ - -
-

- - - -

- -
"; - } ?> -
- - "; - } ?> - \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/views/table.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/views/table.php deleted file mode 100644 index 03a0aa34f1761822d27882b23fc03eec51524975..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/dashboards/views/table.php +++ /dev/null @@ -1,28 +0,0 @@ - -
-

- - - -

- -
- - - - - - - -
-
-
\ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/index.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/index.php deleted file mode 100644 index 9a84da03ee466badb983c57fde0cf466934b2e1c..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/index.php +++ /dev/null @@ -1,4 +0,0 @@ -get_options(); -$tracking_code = $options_class->get_tracking_code(); - -echo $yoast_ga_admin->content_head(); -?> -

- - - - - -
-
-
-

'; - echo sprintf( - __( 'We need you to authenticate with Google Analytics to use this functionality. If you set your UA-code manually, this won\'t work. You can %sauthenticate your Google Analytics profile here%s to enable dashboards.', 'google-analytics-for-wordpress' ), - '', - '' - ); - echo '

'; - } - else if ( ! Yoast_Google_Analytics::get_instance()->has_refresh_token() ) { - echo '

'; - echo sprintf( - __( 'Because we\'ve switched to a newer version of the Google Analytics API, you\'ll need to re-authenticate with Google Analytics. We\'re sorry for the inconvenience. You can %sre-authenticate your Google Analytics profile here%s.', 'google-analytics-for-wordpress' ), - '', - '' - ); - echo '

'; - } - else { - Yoast_GA_Dashboards_Display::get_instance()->display( 'general' ); - } - } - else { - echo '

'; - echo sprintf( - __( 'You have not yet finished setting up Google Analytics for Wordpress by Yoast. Please %sadd your Analytics profile here%s to enable tracking.', 'google-analytics-for-wordpress' ), - '', - '' - ); - echo '

'; - } - ?> -
-
- -
-

'; - echo sprintf( - __( 'We need you to authenticate with Google Analytics to use this functionality. If you set your UA-code manually, this won\'t work. You can %sauthenticate your Google Analytics profile here%s to enable dashboards.', 'google-analytics-for-wordpress' ), - '', - '' - ); - echo '

'; - } - else if ( ! Yoast_Google_Analytics::get_instance()->has_refresh_token() ) { - echo '

'; - echo sprintf( - __( 'Because we\'ve switched to a newer version of the Google Analytics API, you\'ll need to re-authenticate with Google Analytics. We\'re sorry for the inconvenience. You can %sre-authenticate your Google Analytics profile here%s.', 'google-analytics-for-wordpress' ), - '', - '' - ); - echo '

'; - } - else { - ?> -
- -
- - - display( 'dimensions' ); - } - } - else { - echo '

'; - echo sprintf( - __( 'You have not yet finished setting up Google Analytics for Wordpress by Yoast. Please %sadd your Analytics profile here%s to enable tracking.', 'google-analytics-for-wordpress' ), - '', - '' - ); - echo '

'; - } - ?> - - -
- -
- - - -content_footer(); -?> \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/pages/extensions.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/pages/extensions.php deleted file mode 100644 index 0c5f46740a434141c746dc33de0da84a7ed0a6cb..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/pages/extensions.php +++ /dev/null @@ -1,63 +0,0 @@ -content_head(); - -$has_extensions = false; - -$extensions = $yoast_ga_admin->get_extensions(); -?> -

- - -
-
- $extension ) : - if ( 'uninstalled' !== $extension->status ) { - $has_extensions = true; - } - ?> -
- -

title; ?>

-
- -

desc; ?>

-

- status ) : ?> - - - status ) : ?> - - - - - -

-
- -
-
- ' . __( 'You have not installed any extensions for Google Analytics by Yoast, so there are no licenses to activate.', 'google-analytics-for-wordpress' ) . '

'; - } - else { - do_action( 'yst_ga_show_license_form' ); - } - ?> -
-
-
- -content_footer(); -?> \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/pages/settings.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/pages/settings.php deleted file mode 100644 index 9f90bf57ca26ab1dc9987b67f267d35a52cf0d0b..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/pages/settings.php +++ /dev/null @@ -1,188 +0,0 @@ -content_head(); -?> -

- - - - - - - -
-
- ' . __( 'General settings', 'google-analytics-for-wordpress' ) . ''; - - echo '
'; - - $ga_class = Yoast_Google_Analytics::get_instance(); - $wp_block_google = $ga_class->check_google_access_from_wp(); - $check_google_access = $ga_class->check_google_access(); - - if ( $wp_block_google && $check_google_access ) { - - $profiles = Yoast_GA_Admin_Form::parse_optgroups( $yoast_ga_admin->get_profiles() ); - - $auth_url = Yoast_Google_Analytics::get_instance()->create_auth_url(); - add_thickbox(); - echo ''; - - echo "
"; - if ( count( $profiles ) == 0 ) { - echo '
'; - echo ''; - echo '' . __( 'Authenticate with your Google account', 'google-analytics-for-wordpress' ) . ''; - echo '
'; - echo '
'; - echo ''; - echo esc_html( $yoast_ga_admin->get_tracking_code() ); - echo '
'; - } - else { - echo Yoast_GA_Admin_Form::select( __( 'Analytics profile', 'google-analytics-for-wordpress' ), 'analytics_profile', $profiles, null, false, __( 'Select a profile', 'google-analytics-for-wordpress' ) ); - - echo ''; - } - echo '
'; - - echo '
'; - echo ''; - echo Yoast_GA_Admin_Form::input( 'text', null, 'google_auth_code', null, null ); - - echo ''; - echo '
'; - echo '
'; - } - else { - echo '

' . __( 'Cannot connect to Google', 'google-analytics-for-wordpress' ) . '

'; - if ( $wp_block_google == false && $check_google_access == false ) { - echo '

' . __( 'Your server is blocking requests to Google, to fix this, add *.googleapis.com to the WP_ACCESSIBLE_HOSTS constant in your wp-config.php or ask your webhost to do this.', 'google-analytics-for-wordpress' ) . '

'; - } - else { - echo '

' . __( 'Your firewall or webhost is blocking requests to Google, please ask your webhost company to fix this.', 'google-analytics-for-wordpress' ) . '

'; - } - echo '

' . __( 'Until this is fixed, you can only use the manual authentication method and cannot use the dashboards feature.', 'google-analytics-for-wordpress' ) . '

'; - } - - echo ''; - echo '
'; - echo Yoast_GA_Admin_Form::input( 'text', null, 'manual_ua_code_field' ); - echo '

' . __( 'Warning: If you use a manual UA code, you won\'t be able to use the dashboards.', 'google-analytics-for-wordpress' ) . '

'; - echo '
'; - echo '
'; - ?> -

- _anonymizeIp' ) ); - echo Yoast_GA_Admin_Form::select( __( 'Ignore users', 'google-analytics-for-wordpress' ), 'ignore_users', $yoast_ga_admin->get_userroles(), __( 'Users of the role you select will be ignored, so if you select Editor, all Editors will be ignored.', 'google-analytics-for-wordpress' ), true ); - echo Yoast_GA_Admin_Form::input( 'checkbox', __( 'Disable analytics dashboard', 'google-analytics-for-wordpress' ), 'dashboards_disabled', null, __( 'This will completely disable the dashboard and stop the plugin from fetching the latest analytics data.', 'google-analytics-for-wordpress' ) ); - - ?> -
-
- ' . __( 'Universal settings', 'google-analytics-for-wordpress' ) . ''; - echo Yoast_GA_Admin_Form::input( 'checkbox', __( 'Enable Universal tracking', 'google-analytics-for-wordpress' ), 'enable_universal', null, sprintf( __( 'First enable Universal tracking in your Google Analytics account. Please read %1$sthis guide%2$s to learn how to do that.', 'google-analytics-for-wordpress' ), '', '' ) ); - echo Yoast_GA_Admin_Form::input( - 'checkbox', - __( 'Enable Demographics and Interests Reports for Remarketing and Advertising', 'google-analytics-for-wordpress' ), - 'demographics', - '' . __( 'Note that usage of this function is affected by privacy and cookie laws around the world. Be sure to follow the laws that affect your target audience.', 'google-analytics-for-wordpress' ) . '', - /* Transators: %1$s contains the link to a knowledge base article, %2$s contains the the closing tag for both links, %3$s contains a link to Google documentation about remarketing. */ - sprintf( - __( 'Check this setting to add the Demographics and Remarketing features to your Google Analytics tracking code. We\'ve written an article in our %1$sknowledge base%2$s about Demographics and Interest reports. For more information about Remarketing, we refer you to %3$sGoogle\'s documentation%2$s.', 'google-analytics-for-wordpress' ), - '', - '', - '' - ) - ); - echo Yoast_GA_Admin_Form::input( 'checkbox', __( 'Enhanced Link Attribution', 'google-analytics-for-wordpress' ), 'enhanced_link_attribution', null, sprintf( __( 'Add %1$sEnhanced Link Attribution%2$s to your tracking code.', 'google-analytics-for-wordpress' ), '', ' ' ) ); - - /** - * Action: 'yst_ga_universal_tab' - Allow adding to the universal tab of the settings - */ - do_action( 'yst_ga_universal_tab' ); - ?> -
-
- ' . __( 'Advanced settings', 'google-analytics-for-wordpress' ) . ''; - echo Yoast_GA_Admin_Form::select( __( 'Track downloads as', 'google-analytics-for-wordpress' ), 'track_download_as', $yoast_ga_admin->track_download_types(), __( 'Not recommended, as this would skew your statistics, but it does make it possible to track downloads as goals.', 'google-analytics-for-wordpress' ) ); - echo Yoast_GA_Admin_Form::input( 'text', __( 'Extensions of files to track as downloads', 'google-analytics-for-wordpress' ), 'extensions_of_files', null, 'Please separate extensions using commas' ); - echo Yoast_GA_Admin_Form::select( __( 'Track full URL of outbound clicks or just the domain', 'google-analytics-for-wordpress' ), 'track_full_url', $yoast_ga_admin->get_track_full_url() ); - echo Yoast_GA_Admin_Form::input( 'text', __( 'Subdomain tracking', 'google-analytics-for-wordpress' ), 'subdomain_tracking', null, sprintf( __( 'This allows you to set the domain that\'s set by %1$s for tracking subdomains.
If empty, this will not be set.', 'google-analytics-for-wordpress' ), '_setDomainName' ) ); - - echo Yoast_GA_Admin_Form::input( 'text', __( 'Set path for internal links to track as outbound links', 'google-analytics-for-wordpress' ), 'track_internal_as_outbound', null, sprintf( __( 'If you want to track all internal links that begin with %1$s, enter %1$s in the box above. If you have multiple prefixes you can separate them with comma\'s: %2$s', 'google-analytics-for-wordpress' ), '/out/', '/out/,/recommends/' ) ); - echo Yoast_GA_Admin_Form::input( 'text', __( 'Label for those links', 'google-analytics-for-wordpress' ), 'track_internal_as_label', null, 'The label to use for these links, this will be added to where the click came from, so if the label is "aff", the label for a click from the content of an article becomes "outbound-article-aff".' ); - - echo Yoast_GA_Admin_Form::input( 'checkbox', __( 'Tag links in RSS feed with campaign variables', 'google-analytics-for-wordpress' ), 'tag_links_in_rss', null, __( 'Do not use this feature if you use FeedBurner, as FeedBurner can do this automatically and better than this plugin can. Check this help page for info on how to enable this feature in FeedBurner.', 'google-analytics-for-wordpress' ) ); - echo Yoast_GA_Admin_Form::input( 'checkbox', __( 'Allow anchor', 'google-analytics-for-wordpress' ), 'allow_anchor', null, sprintf( __( 'This adds a %1$s call to your tracking code, and makes RSS link tagging use a %2$s as well.', 'google-analytics-for-wordpress' ), '_setAllowAnchor', '#' ) ); - echo Yoast_GA_Admin_Form::input( 'checkbox', __( 'Add _setAllowLinker', 'google-analytics-for-wordpress' ), 'add_allow_linker', null, sprintf( __( 'This adds a %1$s call to your tracking code, allowing you to use %2$s and related functions.', 'google-analytics-for-wordpress' ), '_setAllowLinker', ' _link' ) ); - if ( current_user_can( 'unfiltered_html' ) ) { - echo Yoast_GA_Admin_Form::textarea( __( 'Custom code', 'google-analytics-for-wordpress' ), 'custom_code', sprintf( __( 'Not for the average user: this allows you to add a line of code, to be added before the %1$s call.', 'google-analytics-for-wordpress' ), '_trackPageview' ) ); - } - - /** - * Action: 'yst_ga_advanced-tab' - Allow adding to the advanced tab of the settings - */ - do_action( 'yst_ga_advanced-tab' ); - ?> -
-
- ' . __( 'Custom dimensions', 'google-analytics-for-wordpress' ) . ''; - do_action( 'yst_ga_custom_dimensions_tab-content' ); - ?> -
- -
- ' . __( 'Debug', 'google-analytics-for-wordpress' ) . ''; - - echo '
'; - echo '

' . __( 'If you want to confirm that tracking on your blog is working as it should, enable this option and check the console of your browser. Be absolutely sure to disable debugging afterwards, as it is slower than normal tracking.', 'google-analytics-for-wordpress' ) . '

'; - echo '

' . __( 'Note the debugging is only loaded for administrators.', 'google-analytics-for-wordpress' ) . '

'; - echo '
'; - echo Yoast_GA_Admin_Form::input( 'checkbox', __( 'Enable debug mode', 'google-analytics-for-wordpress' ), 'debug_mode' ); - ?> -
-
-content_footer(); -?> - diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/views/content-footer.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/views/content-footer.php deleted file mode 100644 index 1cd5240d8888ead71696facd66fbd045c2cb063a..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/views/content-footer.php +++ /dev/null @@ -1,17 +0,0 @@ - - -
- -

- <?php echo $item['title']; ?> -

- -
- -
- \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/views/content_head.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/views/content_head.php deleted file mode 100644 index 6dfdc2dce8fd628b1d831a9eca624ce97ef91163..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/admin/views/content_head.php +++ /dev/null @@ -1,2 +0,0 @@ -
-
\ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/css/index.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/css/index.php deleted file mode 100644 index 9a84da03ee466badb983c57fde0cf466934b2e1c..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/css/index.php +++ /dev/null @@ -1,4 +0,0 @@ -d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"<",">":">",'"':""","'":"'","`":"`"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers())}return AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null!=this.options.enable_split_word_search?this.options.enable_split_word_search:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null!=this.options.display_selected_options?this.options.display_selected_options:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0},AbstractChosen.prototype.set_default_text=function(){return this.default_text=this.form_field.getAttribute("data-placeholder")?this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(){var a=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return a.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(){var a=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return a.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f;for(b="",f=this.results_data,d=0,e=f.length;e>d;d++)c=f[d],b+=c.group?this.result_add_group(c):this.result_add_option(c),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(c.text));return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match?this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,this.outerHTML(c)):"":""},AbstractChosen.prototype.result_add_group=function(a){var b;return a.search_match||a.group_match?a.active_options>0?(b=document.createElement("li"),b.className="group-result",b.innerHTML=a.search_text,this.outerHTML(b)):"":""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l;for(this.no_results_clear(),d=0,f=this.get_search_text(),a=f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i=new RegExp(a,"i"),c=this.get_search_regex(a),l=this.results_data,j=0,k=l.length;k>j;j++)b=l[j],b.search_match=!1,e=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(e=this.results_data[b.group_array_index],0===e.active_options&&e.search_match&&(d+=1),e.active_options+=1),(!b.group||this.group_search)&&(b.search_text=b.group?b.label:b.text,b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(d+=1),b.search_match?(f.length&&(g=b.search_text.search(i),h=b.search_text.substr(0,g+f.length)+""+b.search_text.substr(g+f.length),b.search_text=h.substr(0,g)+""+h.substr(g)),null!=e&&(e.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>d&&f.length?(this.update_results_content(""),this.no_results(f)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(a){var b;return b=this.search_contains?"":"^",new RegExp(b+a,"i")},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(){var a=this;return setTimeout(function(){return a.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:/iP(od|hone)/i.test(window.navigator.userAgent)?!1:/Android/i.test(window.navigator.userAgent)&&/Mobile/i.test(window.navigator.userAgent)?!1:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(){var c,d;c=a(this),d=c.data("chosen"),"destroy"===b&&d instanceof Chosen?d.destroy():d instanceof Chosen||c.data("chosen",new Chosen(this,b))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("
",c),this.is_multiple?this.container.html('
    '):this.container.html(''+this.default_text+'
      '),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior(),this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("touchstart.chosen",function(b){a.container_mousedown(b)}),this.container.bind("touchend.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=a.originalEvent.deltaY||-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(){var a;return this.form_field.tabIndex?(a=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=a):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("
    • ",{"class":"search-choice"}).html(""+b.html+""),b.disabled?c.addClass("search-choice-disabled"):(d=a("",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClass("active-result"):this.reset_single_select_options(),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(c.text),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.search_field.val(""),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").text(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.find("abbr").length||this.selected_item.find("span").first().after(''),this.selected_item.addClass("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return this.search_field.val()===this.default_text?"":a("
      ").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a('
    • '+this.results_none_found+' ""
    • '),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:this.results_showing&&a.preventDefault();break;case 32:this.disable_search&&a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("
      ",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}.call(this); \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/chosen/chosen.min.css b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/chosen/chosen.min.css deleted file mode 100644 index ebcb7f0de2b653d58421d1bf6e12e2bb931e68bf..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/chosen/chosen.min.css +++ /dev/null @@ -1,3 +0,0 @@ -/* Chosen v1.2.0 | (c) 2011-2014 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */ - -.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;zoom:1;*display:inline;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:#fff url(chosen-sprite.png) no-repeat 100% -20px;background:url(chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto!important;height:1%;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:transparent!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:0;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:#fff url(chosen-sprite.png) no-repeat -30px -20px;background:url(chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:144dpi){.chosen-rtl .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type=text],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}} \ No newline at end of file diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/chosen/index.php b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/chosen/index.php deleted file mode 100644 index 9a84da03ee466badb983c57fde0cf466934b2e1c..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/chosen/index.php +++ /dev/null @@ -1,4 +0,0 @@ - .sorting_1, -table.dataTable.order-column tbody tr > .sorting_2, -table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1, -table.dataTable.display tbody tr > .sorting_2, -table.dataTable.display tbody tr > .sorting_3 { - background-color: #fafafa; -} -table.dataTable.order-column tbody tr.selected > .sorting_1, -table.dataTable.order-column tbody tr.selected > .sorting_2, -table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1, -table.dataTable.display tbody tr.selected > .sorting_2, -table.dataTable.display tbody tr.selected > .sorting_3 { - background-color: #acbad5; -} -table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 { - background-color: #f1f1f1; -} -table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 { - background-color: #f3f3f3; -} -table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 { - background-color: whitesmoke; -} -table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 { - background-color: #a6b4cd; -} -table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 { - background-color: #a8b5cf; -} -table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 { - background-color: #a9b7d1; -} -table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 { - background-color: #fafafa; -} -table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 { - background-color: #fcfcfc; -} -table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 { - background-color: #fefefe; -} -table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 { - background-color: #acbad5; -} -table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 { - background-color: #aebcd6; -} -table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 { - background-color: #afbdd8; -} -table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 { - background-color: #eaeaea; -} -table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 { - background-color: #ececec; -} -table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 { - background-color: #efefef; -} -table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 { - background-color: #a2aec7; -} -table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 { - background-color: #a3b0c9; -} -table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 { - background-color: #a5b2cb; -} -table.dataTable.no-footer { - border-bottom: 1px solid #111; -} -table.dataTable.nowrap th, table.dataTable.nowrap td { - white-space: nowrap; -} -table.dataTable.compact thead th, -table.dataTable.compact thead td { - padding: 4px 17px 4px 4px; -} -table.dataTable.compact tfoot th, -table.dataTable.compact tfoot td { - padding: 4px; -} -table.dataTable.compact tbody th, -table.dataTable.compact tbody td { - padding: 4px; -} -table.dataTable th.dt-left, -table.dataTable td.dt-left { - text-align: left; -} -table.dataTable th.dt-center, -table.dataTable td.dt-center, -table.dataTable td.dataTables_empty { - text-align: center; -} -table.dataTable th.dt-right, -table.dataTable td.dt-right { - text-align: right; -} -table.dataTable th.dt-justify, -table.dataTable td.dt-justify { - text-align: justify; -} -table.dataTable th.dt-nowrap, -table.dataTable td.dt-nowrap { - white-space: nowrap; -} -table.dataTable thead th.dt-head-left, -table.dataTable thead td.dt-head-left, -table.dataTable tfoot th.dt-head-left, -table.dataTable tfoot td.dt-head-left { - text-align: left; -} -table.dataTable thead th.dt-head-center, -table.dataTable thead td.dt-head-center, -table.dataTable tfoot th.dt-head-center, -table.dataTable tfoot td.dt-head-center { - text-align: center; -} -table.dataTable thead th.dt-head-right, -table.dataTable thead td.dt-head-right, -table.dataTable tfoot th.dt-head-right, -table.dataTable tfoot td.dt-head-right { - text-align: right; -} -table.dataTable thead th.dt-head-justify, -table.dataTable thead td.dt-head-justify, -table.dataTable tfoot th.dt-head-justify, -table.dataTable tfoot td.dt-head-justify { - text-align: justify; -} -table.dataTable thead th.dt-head-nowrap, -table.dataTable thead td.dt-head-nowrap, -table.dataTable tfoot th.dt-head-nowrap, -table.dataTable tfoot td.dt-head-nowrap { - white-space: nowrap; -} -table.dataTable tbody th.dt-body-left, -table.dataTable tbody td.dt-body-left { - text-align: left; -} -table.dataTable tbody th.dt-body-center, -table.dataTable tbody td.dt-body-center { - text-align: center; -} -table.dataTable tbody th.dt-body-right, -table.dataTable tbody td.dt-body-right { - text-align: right; -} -table.dataTable tbody th.dt-body-justify, -table.dataTable tbody td.dt-body-justify { - text-align: justify; -} -table.dataTable tbody th.dt-body-nowrap, -table.dataTable tbody td.dt-body-nowrap { - white-space: nowrap; -} - -table.dataTable, -table.dataTable th, -table.dataTable td { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -/* - * Control feature layout - */ -.dataTables_wrapper { - position: relative; - clear: both; - *zoom: 1; - zoom: 1; -} -.dataTables_wrapper .dataTables_length { - float: left; -} -.dataTables_wrapper .dataTables_filter { - float: right; - text-align: right; -} -.dataTables_wrapper .dataTables_filter input { - margin-left: 0.5em; -} -.dataTables_wrapper .dataTables_info { - clear: both; - float: left; - padding-top: 0.755em; -} -.dataTables_wrapper .dataTables_paginate { - float: right; - text-align: right; - padding-top: 0.25em; -} -.dataTables_wrapper .dataTables_paginate .paginate_button { - box-sizing: border-box; - display: inline-block; - min-width: 1.5em; - padding: 0.5em 1em; - margin-left: 2px; - text-align: center; - text-decoration: none !important; - cursor: pointer; - *cursor: hand; - color: #333 !important; - border: 1px solid transparent; - border-radius: 2px; -} -.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { - color: #333 !important; - border: 1px solid #979797; - background-color: white; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc)); - /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, white 0%, #dcdcdc 100%); - /* Chrome10+,Safari5.1+ */ - background: -moz-linear-gradient(top, white 0%, #dcdcdc 100%); - /* FF3.6+ */ - background: -ms-linear-gradient(top, white 0%, #dcdcdc 100%); - /* IE10+ */ - background: -o-linear-gradient(top, white 0%, #dcdcdc 100%); - /* Opera 11.10+ */ - background: linear-gradient(to bottom, white 0%, #dcdcdc 100%); - /* W3C */ -} -.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active { - cursor: default; - color: #666 !important; - border: 1px solid transparent; - background: transparent; - box-shadow: none; -} -.dataTables_wrapper .dataTables_paginate .paginate_button:hover { - color: white !important; - border: 1px solid #111; - background-color: #585858; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111)); - /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #585858 0%, #111 100%); - /* Chrome10+,Safari5.1+ */ - background: -moz-linear-gradient(top, #585858 0%, #111 100%); - /* FF3.6+ */ - background: -ms-linear-gradient(top, #585858 0%, #111 100%); - /* IE10+ */ - background: -o-linear-gradient(top, #585858 0%, #111 100%); - /* Opera 11.10+ */ - background: linear-gradient(to bottom, #585858 0%, #111 100%); - /* W3C */ -} -.dataTables_wrapper .dataTables_paginate .paginate_button:active { - outline: none; - background-color: #2b2b2b; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c)); - /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); - /* Chrome10+,Safari5.1+ */ - background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); - /* FF3.6+ */ - background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); - /* IE10+ */ - background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); - /* Opera 11.10+ */ - background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%); - /* W3C */ - box-shadow: inset 0 0 3px #111; -} -.dataTables_wrapper .dataTables_paginate .ellipsis { - padding: 0 1em; -} -.dataTables_wrapper .dataTables_processing { - position: absolute; - top: 50%; - left: 50%; - width: 100%; - height: 40px; - margin-left: -50%; - margin-top: -25px; - padding-top: 20px; - text-align: center; - font-size: 1.2em; - background-color: white; - background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0))); - background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); - background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); - background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); - background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); - background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); -} -.dataTables_wrapper .dataTables_length, -.dataTables_wrapper .dataTables_filter, -.dataTables_wrapper .dataTables_info, -.dataTables_wrapper .dataTables_processing, -.dataTables_wrapper .dataTables_paginate { - color: #333; -} -.dataTables_wrapper .dataTables_scroll { - clear: both; -} -.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody { - *margin-top: -1px; - -webkit-overflow-scrolling: touch; -} -.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th > div.dataTables_sizing, -.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td > div.dataTables_sizing { - height: 0; - overflow: hidden; - margin: 0 !important; - padding: 0 !important; -} -.dataTables_wrapper.no-footer .dataTables_scrollBody { - border-bottom: 1px solid #111; -} -.dataTables_wrapper.no-footer div.dataTables_scrollHead table, -.dataTables_wrapper.no-footer div.dataTables_scrollBody table { - border-bottom: none; -} -.dataTables_wrapper:after { - visibility: hidden; - display: block; - content: ""; - clear: both; - height: 0; -} - -@media screen and (max-width: 767px) { - .dataTables_wrapper .dataTables_info, - .dataTables_wrapper .dataTables_paginate { - float: none; - text-align: center; - } - .dataTables_wrapper .dataTables_paginate { - margin-top: 0.5em; - } -} -@media screen and (max-width: 640px) { - .dataTables_wrapper .dataTables_length, - .dataTables_wrapper .dataTables_filter { - float: none; - text-align: center; - } - .dataTables_wrapper .dataTables_filter { - margin-top: 0.5em; - } -} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/css/jquery.dataTables.min.css b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/css/jquery.dataTables.min.css deleted file mode 100644 index e6b36807d83a387c1eb98d3c8afc8e1bd6b7d6b2..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/css/jquery.dataTables.min.css +++ /dev/null @@ -1 +0,0 @@ -table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;*cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#ffffff}table.dataTable tbody tr.selected{background-color:#B0BED9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}} diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/Sorting icons.psd b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/Sorting icons.psd deleted file mode 100644 index 53b2e06850767cb57c52b316f0b845b1a8e0ca0e..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/Sorting icons.psd and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/back_disabled.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/back_disabled.png deleted file mode 100644 index 881de7976ff98955e2a5487dca66e618a0655f3d..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/back_disabled.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/back_enabled.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/back_enabled.png deleted file mode 100644 index c608682b04a6d9b8002602450c8ef7e80ebba099..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/back_enabled.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/back_enabled_hover.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/back_enabled_hover.png deleted file mode 100644 index d300f1064b3beac1d7d5274e294494d3143e53a2..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/back_enabled_hover.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/favicon.ico b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/favicon.ico deleted file mode 100644 index 6eeaa2a0d393190ce748107222d9a026f992e4a7..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/favicon.ico and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/forward_disabled.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/forward_disabled.png deleted file mode 100644 index 6a6ded7de821619aedc71d1738c0b73463a4452e..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/forward_disabled.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/forward_enabled.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/forward_enabled.png deleted file mode 100644 index a4e6b5384b8454ee7f44a8f7c75b0321b7eeb9b1..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/forward_enabled.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/forward_enabled_hover.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/forward_enabled_hover.png deleted file mode 100644 index fc46c5ebf0524b72a509fe2d7c1bc74995cb8a9d..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/forward_enabled_hover.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_asc.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_asc.png deleted file mode 100644 index a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_asc.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_asc_disabled.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_asc_disabled.png deleted file mode 100644 index dcd7b7b8cab2304b374e6e4b9dc8c05faa2e1130..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_asc_disabled.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_both.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_both.png deleted file mode 100644 index 18670406bc01ab2721781822dd6478917745ff54..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_both.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_desc.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_desc.png deleted file mode 100644 index def071ed5afd264a036f6d9e75856366fd6ad153..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_desc.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_desc_disabled.png b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_desc_disabled.png deleted file mode 100644 index 7824973cc60fc1841b16f2cb39323cefcdc3f942..0000000000000000000000000000000000000000 Binary files a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/images/sort_desc_disabled.png and /dev/null differ diff --git a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/js/jquery.dataTables.js b/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/js/jquery.dataTables.js deleted file mode 100644 index 0bb30091f447a92e50dee2f1102f1d3fab56bd3c..0000000000000000000000000000000000000000 --- a/wordpress/wp-content/plugins/google-analytics-for-wordpress/assets/dependencies/datatables/js/jquery.dataTables.js +++ /dev/null @@ -1,15095 +0,0 @@ -/*! DataTables 1.10.8 - * ©2008-2014 SpryMedia Ltd - datatables.net/license - */ - -/** - * @summary DataTables - * @description Paginate, search and order HTML tables - * @version 1.10.8 - * @file jquery.dataTables.js - * @author SpryMedia Ltd (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * @copyright Copyright 2008-2014 SpryMedia Ltd. - * - * This source file is free software, available under the following license: - * MIT license - http://datatables.net/license - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ - -/*jslint evil: true, undef: true, browser: true */ -/*globals $,require,jQuery,define,_selector_run,_selector_opts,_selector_first,_selector_row_indexes,_ext,_Api,_api_register,_api_registerPlural,_re_new_lines,_re_html,_re_formatted_numeric,_re_escape_regex,_empty,_intVal,_numToDecimal,_isNumber,_isHtml,_htmlNumeric,_pluck,_pluck_order,_range,_stripHtml,_unique,_fnBuildAjax,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnAjaxDataSrc,_fnAddColumn,_fnColumnOptions,_fnAdjustColumnSizing,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnVisbleColumns,_fnGetColumns,_fnColumnTypes,_fnApplyColumnDefs,_fnHungarianMap,_fnCamelToHungarian,_fnLanguageCompat,_fnBrowserDetect,_fnAddData,_fnAddTr,_fnNodeToDataIndex,_fnNodeToColumnIndex,_fnGetCellData,_fnSetCellData,_fnSplitObjNotation,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnGetDataMaster,_fnClearTable,_fnDeleteIndex,_fnInvalidate,_fnGetRowElements,_fnCreateTr,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAddOptionsHtml,_fnDetectHeader,_fnGetUniqueThs,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnFilterCreateSearch,_fnEscapeRegex,_fnFilterData,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnInfoMacros,_fnInitialise,_fnInitComplete,_fnLengthChange,_fnFeatureHtmlLength,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnFeatureHtmlTable,_fnScrollDraw,_fnApplyToChildren,_fnCalculateColumnWidths,_fnThrottle,_fnConvertToWidth,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnScrollBarWidth,_fnSortFlatten,_fnSort,_fnSortAria,_fnSortListener,_fnSortAttachListener,_fnSortingClasses,_fnSortData,_fnSaveState,_fnLoadState,_fnSettingsFromNode,_fnLog,_fnMap,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnLengthOverflow,_fnRenderer,_fnDataSource,_fnRowAttributes*/ - -(/** @lends */function( window, document, undefined ) { - -(function( factory ) { - "use strict"; - - if ( typeof define === 'function' && define.amd ) { - // Define as an AMD module if possible - define( 'datatables', ['jquery'], factory ); - } - else if ( typeof exports === 'object' ) { - // Node/CommonJS - module.exports = factory( require( 'jquery' ) ); - } - else if ( jQuery && !jQuery.fn.dataTable ) { - // Define using browser globals otherwise - // Prevent multiple instantiations if the script is loaded twice - factory( jQuery ); - } -} -(/** @lends */function( $ ) { - "use strict"; - - /** - * DataTables is a plug-in for the jQuery Javascript library. It is a highly - * flexible tool, based upon the foundations of progressive enhancement, - * which will add advanced interaction controls to any HTML table. For a - * full list of features please refer to - * [DataTables.net](href="http://datatables.net). - * - * Note that the `DataTable` object is not a global variable but is aliased - * to `jQuery.fn.DataTable` and `jQuery.fn.dataTable` through which it may - * be accessed. - * - * @class - * @param {object} [init={}] Configuration object for DataTables. Options - * are defined by {@link DataTable.defaults} - * @requires jQuery 1.7+ - * - * @example - * // Basic initialisation - * $(document).ready( function { - * $('#example').dataTable(); - * } ); - * - * @example - * // Initialisation with configuration options - in this case, disable - * // pagination and sorting. - * $(document).ready( function { - * $('#example').dataTable( { - * "paginate": false, - * "sort": false - * } ); - * } ); - */ - var DataTable; - - - /* - * It is useful to have variables which are scoped locally so only the - * DataTables functions can access them and they don't leak into global space. - * At the same time these functions are often useful over multiple files in the - * core and API, so we list, or at least document, all variables which are used - * by DataTables as private variables here. This also ensures that there is no - * clashing of variable names and that they can easily referenced for reuse. - */ - - - // Defined else where - // _selector_run - // _selector_opts - // _selector_first - // _selector_row_indexes - - var _ext; // DataTable.ext - var _Api; // DataTable.Api - var _api_register; // DataTable.Api.register - var _api_registerPlural; // DataTable.Api.registerPlural - - var _re_dic = {}; - var _re_new_lines = /[\r\n]/g; - var _re_html = /<.*?>/g; - var _re_date_start = /^[\w\+\-]/; - var _re_date_end = /[\w\+\-]$/; - - // Escape regular expression special characters - var _re_escape_regex = new RegExp( '(\\' + [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ].join('|\\') + ')', 'g' ); - - // http://en.wikipedia.org/wiki/Foreign_exchange_market - // - \u20BD - Russian ruble. - // - \u20a9 - South Korean Won - // - \u20BA - Turkish Lira - // - \u20B9 - Indian Rupee - // - R - Brazil (R$) and South Africa - // - fr - Swiss Franc - // - kr - Swedish krona, Norwegian krone and Danish krone - // - \u2009 is thin space and \u202F is narrow no-break space, both used in many - // standards as thousands separators. - var _re_formatted_numeric = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi; - - - var _empty = function ( d ) { - return !d || d === true || d === '-' ? true : false; - }; - - - var _intVal = function ( s ) { - var integer = parseInt( s, 10 ); - return !isNaN(integer) && isFinite(s) ? integer : null; - }; - - // Convert from a formatted number with characters other than `.` as the - // decimal place, to a Javascript number - var _numToDecimal = function ( num, decimalPoint ) { - // Cache created regular expressions for speed as this function is called often - if ( ! _re_dic[ decimalPoint ] ) { - _re_dic[ decimalPoint ] = new RegExp( _fnEscapeRegex( decimalPoint ), 'g' ); - } - return typeof num === 'string' && decimalPoint !== '.' ? - num.replace( /\./g, '' ).replace( _re_dic[ decimalPoint ], '.' ) : - num; - }; - - - var _isNumber = function ( d, decimalPoint, formatted ) { - var strType = typeof d === 'string'; - - // If empty return immediately so there must be a number if it is a - // formatted string (this stops the string "k", or "kr", etc being detected - // as a formatted number for currency - if ( _empty( d ) ) { - return true; - } - - if ( decimalPoint && strType ) { - d = _numToDecimal( d, decimalPoint ); - } - - if ( formatted && strType ) { - d = d.replace( _re_formatted_numeric, '' ); - } - - return !isNaN( parseFloat(d) ) && isFinite( d ); - }; - - - // A string without HTML in it can be considered to be HTML still - var _isHtml = function ( d ) { - return _empty( d ) || typeof d === 'string'; - }; - - - var _htmlNumeric = function ( d, decimalPoint, formatted ) { - if ( _empty( d ) ) { - return true; - } - - var html = _isHtml( d ); - return ! html ? - null : - _isNumber( _stripHtml( d ), decimalPoint, formatted ) ? - true : - null; - }; - - - var _pluck = function ( a, prop, prop2 ) { - var out = []; - var i=0, ien=a.length; - - // Could have the test in the loop for slightly smaller code, but speed - // is essential here - if ( prop2 !== undefined ) { - for ( ; i') - .css( { - position: 'fixed', - top: 0, - left: 0, - height: 1, - width: 1, - overflow: 'hidden' - } ) - .append( - $('
      ') - .css( { - position: 'absolute', - top: 1, - left: 1, - width: 100, - overflow: 'scroll' - } ) - .append( - $('
      ') - .css( { - width: '100%', - height: 10 - } ) - ) - ) - .appendTo( 'body' ); - - var test = n.find('.test'); - - // IE6/7 will oversize a width 100% element inside a scrolling element, to - // include the width of the scrollbar, while other browsers ensure the inner - // element is contained without forcing scrolling - browser.bScrollOversize = test[0].offsetWidth === 100; - - // In rtl text layout, some browsers (most, but not all) will place the - // scrollbar on the left, rather than the right. - browser.bScrollbarLeft = Math.round( test.offset().left ) !== 1; - - // IE8- don't provide height and width for getBoundingClientRect - browser.bBounding = n[0].getBoundingClientRect().width ? true : false; - - n.remove(); - } - - - /** - * Array.prototype reduce[Right] method, used for browsers which don't support - * JS 1.6. Done this way to reduce code size, since we iterate either way - * @param {object} settings dataTables settings object - * @memberof DataTable#oApi - */ - function _fnReduce ( that, fn, init, start, end, inc ) - { - var - i = start, - value, - isSet = false; - - if ( init !== undefined ) { - value = init; - isSet = true; - } - - while ( i !== end ) { - if ( ! that.hasOwnProperty(i) ) { - continue; - } - - value = isSet ? - fn( value, that[i], i, that ) : - that[i]; - - isSet = true; - i += inc; - } - - return value; - } - - /** - * Add a column to the list used for the table with default values - * @param {object} oSettings dataTables settings object - * @param {node} nTh The th element for this column - * @memberof DataTable#oApi - */ - function _fnAddColumn( oSettings, nTh ) - { - // Add column to aoColumns array - var oDefaults = DataTable.defaults.column; - var iCol = oSettings.aoColumns.length; - var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { - "nTh": nTh ? nTh : document.createElement('th'), - "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', - "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], - "mData": oDefaults.mData ? oDefaults.mData : iCol, - idx: iCol - } ); - oSettings.aoColumns.push( oCol ); - - // Add search object for column specific search. Note that the `searchCols[ iCol ]` - // passed into extend can be undefined. This allows the user to give a default - // with only some of the parameters defined, and also not give a default - var searchCols = oSettings.aoPreSearchCols; - searchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch, searchCols[ iCol ] ); - - // Use the default column options function to initialise classes etc - _fnColumnOptions( oSettings, iCol, $(nTh).data() ); - } - - - /** - * Apply options for a column - * @param {object} oSettings dataTables settings object - * @param {int} iCol column index to consider - * @param {object} oOptions object with sType, bVisible and bSearchable etc - * @memberof DataTable#oApi - */ - function _fnColumnOptions( oSettings, iCol, oOptions ) - { - var oCol = oSettings.aoColumns[ iCol ]; - var oClasses = oSettings.oClasses; - var th = $(oCol.nTh); - - // Try to get width information from the DOM. We can't get it from CSS - // as we'd need to parse the CSS stylesheet. `width` option can override - if ( ! oCol.sWidthOrig ) { - // Width attribute - oCol.sWidthOrig = th.attr('width') || null; - - // Style attribute - var t = (th.attr('style') || '').match(/width:\s*(\d+[pxem%]+)/); - if ( t ) { - oCol.sWidthOrig = t[1]; - } - } - - /* User specified column options */ - if ( oOptions !== undefined && oOptions !== null ) - { - // Backwards compatibility - _fnCompatCols( oOptions ); - - // Map camel case parameters to their Hungarian counterparts - _fnCamelToHungarian( DataTable.defaults.column, oOptions ); - - /* Backwards compatibility for mDataProp */ - if ( oOptions.mDataProp !== undefined && !oOptions.mData ) - { - oOptions.mData = oOptions.mDataProp; - } - - if ( oOptions.sType ) - { - oCol._sManualType = oOptions.sType; - } - - // `class` is a reserved word in Javascript, so we need to provide - // the ability to use a valid name for the camel case input - if ( oOptions.className && ! oOptions.sClass ) - { - oOptions.sClass = oOptions.className; - } - - $.extend( oCol, oOptions ); - _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); - - /* iDataSort to be applied (backwards compatibility), but aDataSort will take - * priority if defined - */ - if ( oOptions.iDataSort !== undefined ) - { - oCol.aDataSort = [ oOptions.iDataSort ]; - } - _fnMap( oCol, oOptions, "aDataSort" ); - } - - /* Cache the data get and set functions for speed */ - var mDataSrc = oCol.mData; - var mData = _fnGetObjectDataFn( mDataSrc ); - var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; - - var attrTest = function( src ) { - return typeof src === 'string' && src.indexOf('@') !== -1; - }; - oCol._bAttrSrc = $.isPlainObject( mDataSrc ) && ( - attrTest(mDataSrc.sort) || attrTest(mDataSrc.type) || attrTest(mDataSrc.filter) - ); - - oCol.fnGetData = function (rowData, type, meta) { - var innerData = mData( rowData, type, undefined, meta ); - - return mRender && type ? - mRender( innerData, type, rowData, meta ) : - innerData; - }; - oCol.fnSetData = function ( rowData, val, meta ) { - return _fnSetObjectDataFn( mDataSrc )( rowData, val, meta ); - }; - - // Indicate if DataTables should read DOM data as an object or array - // Used in _fnGetRowElements - if ( typeof mDataSrc !== 'number' ) { - oSettings._rowReadObject = true; - } - - /* Feature sorting overrides column specific when off */ - if ( !oSettings.oFeatures.bSort ) - { - oCol.bSortable = false; - th.addClass( oClasses.sSortableNone ); // Have to add class here as order event isn't called - } - - /* Check that the class assignment is correct for sorting */ - var bAsc = $.inArray('asc', oCol.asSorting) !== -1; - var bDesc = $.inArray('desc', oCol.asSorting) !== -1; - if ( !oCol.bSortable || (!bAsc && !bDesc) ) - { - oCol.sSortingClass = oClasses.sSortableNone; - oCol.sSortingClassJUI = ""; - } - else if ( bAsc && !bDesc ) - { - oCol.sSortingClass = oClasses.sSortableAsc; - oCol.sSortingClassJUI = oClasses.sSortJUIAscAllowed; - } - else if ( !bAsc && bDesc ) - { - oCol.sSortingClass = oClasses.sSortableDesc; - oCol.sSortingClassJUI = oClasses.sSortJUIDescAllowed; - } - else - { - oCol.sSortingClass = oClasses.sSortable; - oCol.sSortingClassJUI = oClasses.sSortJUI; - } - } - - - /** - * Adjust the table column widths for new data. Note: you would probably want to - * do a redraw after calling this function! - * @param {object} settings dataTables settings object - * @memberof DataTable#oApi - */ - function _fnAdjustColumnSizing ( settings ) - { - /* Not interested in doing column width calculation if auto-width is disabled */ - if ( settings.oFeatures.bAutoWidth !== false ) - { - var columns = settings.aoColumns; - - _fnCalculateColumnWidths( settings ); - for ( var i=0 , iLen=columns.length ; i