From a09120e3a73e1295e21f116b0eb8b36af0abb5ef Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 20:07:55 +0300 Subject: [PATCH 01/25] Update README.md. --- readme.md => README.md | 55 +++++++++++------------------------------- 1 file changed, 14 insertions(+), 41 deletions(-) rename readme.md => README.md (51%) diff --git a/readme.md b/README.md similarity index 51% rename from readme.md rename to README.md index e30fb29..5b3eaa6 100644 --- a/readme.md +++ b/README.md @@ -1,22 +1,11 @@ # WordPress Plugin PageSpeed Optimization -PageSpeed Optimization plugin optimizes external scripts by storing them locally: Google analytics, Google map, Yandex metrika. +PageSpeed Optimization plugin optimizes external scripts by storing them locally: Google Analytics, Google map, Yandex metrika. -After activation of the plugin, scripts for above mentioned services will be cached on local server. They are updated twice daily. - -This is the fork of CAOS (Complete Analytics Optimization Suite) by Daan van den Bergh https://ru.wordpress.org/plugins/host-analyticsjs-local/. +After activation of the plugin, scripts for above-mentioned services will be cached on local server. They are updated twice daily. Whenever you run an analysis of your website on Google Pagespeed Insights, Pingdom or GTMetrix, it’ll tell you to leverage browser cache when you’re using Google Analytics. Because Google has set the cache expiry time to 2 hours. This plugin will get you a higher score on Pagespeed and Pingdom and make your website load faster, because the user’s browser doesn’t have to make a roundtrip to download the file from Google’s external server. -## Contents - -The WordPress Plugin PageSpeed Optimization includes the following files: - -* `.gitignore`. Used to exclude certain files from the repository. -* `CHANGELOG.md`. The list of changes to the core project. -* `README.md`. The file that you’re currently reading. -* A `plugin-name` directory that contains the source code - a fully executable WordPress plugin. - ## Features * The PageSpeed Optimization is based on the [Plugin API](http://codex.wordpress.org/Plugin_API), [Coding Standards](http://codex.wordpress.org/WordPress_Coding_Standards), and [Documentation Standards](https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/php/). @@ -26,23 +15,19 @@ The WordPress Plugin PageSpeed Optimization includes the following files: ## Installation -The PageSpeed Optimization can be installed directly into your plugins folder "as-is". - -## WordPress.org Preparation - -The original launch of this version of the PageSpeed Optimization included the folder structure needed for using your plugin on the WordPress.org. That folder structure has been moved to its own repo here: https://github.com/kagg-design/kagg-pagespeed-optimization. - -## Recommended Tools - -### i18n Tools +``` +git@github.com:kagg-design/kagg-pagespeed-optimization.git +cd kagg-pagespeed-optimization +composer install --no-dev +``` -The WordPress Plugin PageSpeed Optimization uses a variable to store the text domain used when internationalizing strings throughout the PageSpeed Optimization. To take advantage of this method, there are tools that are recommended for providing correct, translatable files: +## Development -* [Poedit](https://poedit.net/) -* [makepot](http://i18n.svn.wordpress.org/tools/trunk/) -* [i18n](https://github.com/grappler/i18n) - -Any of the above tools should provide you with the proper tooling to internationalize the plugin. +``` +git@github.com:kagg-design/kagg-pagespeed-optimization.git +cd kagg-pagespeed-optimization +composer install +``` ## License @@ -56,20 +41,8 @@ The WordPress Plugin PageSpeed Optimization is licensed under the GPL v2 or late A copy of the license is included in the root of the plugin’s directory. The file is named `LICENSE`. -## Important Notes - -### Licensing - -The WordPress Plugin PageSpeed Optimization is licensed under the GPL v2 or later; however, if you opt to use third-party code that is not compatible with v2, then you may need to switch to using code that is GPL v3 compatible. - -For reference, [here's a discussion](https://make.wordpress.org/themes/2013/03/04/licensing-note-apache-and-gpl/) that covers the Apache 2.0 License used by [Bootstrap](http://getbootstrap.com/2.3.2/). - ### Includes -# Credits +## Credits The current version of the PageSpeed Optimization was developed by [KAGG Design](https://kagg.eu/en/). - -## Documentation, FAQs, and More - -If you’re interested in writing any documentation or creating tutorials please [let me know](https://kagg.eu/en/). From 19e735ba48b602d8bef85707d5ad7a00cd69faf4 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 22:10:14 +0300 Subject: [PATCH 02/25] Update README.md. --- README.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 5b3eaa6..26704c7 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,23 @@ -# WordPress Plugin PageSpeed Optimization +# PageSpeed Optimization -PageSpeed Optimization plugin optimizes external scripts by storing them locally: Google Analytics, Google map, Yandex metrika. +PageSpeed Optimization plugin performs optimization of external scripts and styles by moving them to the footer, blocking, or delaying. Loading of delayed scripts or styles begins after the first user interaction - scroll, clock, or mouse enter. Links and fonts can be preloaded to minimize loading time. -After activation of the plugin, scripts for above-mentioned services will be cached on local server. They are updated twice daily. +During moving, blocking, or delaying, the plugin performs exact calculations of all scripts and styles dependencies across the whole dependency tree. So, any script or style whose position has to be modified will be moved with all dependencies in the proper order. This functionality is unique and does not exist in most top-level caching plugins. -Whenever you run an analysis of your website on Google Pagespeed Insights, Pingdom or GTMetrix, it’ll tell you to leverage browser cache when you’re using Google Analytics. Because Google has set the cache expiry time to 2 hours. This plugin will get you a higher score on Pagespeed and Pingdom and make your website load faster, because the user’s browser doesn’t have to make a roundtrip to download the file from Google’s external server. +Some scripts can be stored locally: Google AdSense, Google Analytics, Google Maps, Google Tag Manager, and Yandex Metrika. Scripts for the above-mentioned services will be cached on the local server and updated twice daily. + +Google Pagespeed Insights (PSI) requires leveraging browser cache when using analytics scripts because they only have a 2-hour cache expiry time. When scripts are stored locally, their cache expiry time is increased, raising the PSI score. + +PageSpeed Optimization plugin will get you a higher score on Google Pagespeed Insights and make your website load faster. The most impact can usually be achieved by delaying scripts. ## Features -* The PageSpeed Optimization is based on the [Plugin API](http://codex.wordpress.org/Plugin_API), [Coding Standards](http://codex.wordpress.org/WordPress_Coding_Standards), and [Documentation Standards](https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/php/). -* All classes, functions, and variables are documented so that you know what you need to be changed. -* The PageSpeed Optimization uses a strict file organization scheme that correspond both to the WordPress Plugin Repository structure, and that make it easy to organize the files that compose the plugin. -* The project includes a `.pot` file as a starting point for internationalization. +- Any script or style can be moved from the header to the footer. +- Any script or style can be blocked entirely, preventing its loading. +- Any script or style can be delayed until the first user interaction: scroll, click, or mouse enter. +- Dependencies of moved, blocked, or delayed scripts and styles are correctly calculated across the dependency tree. Therefore, all dependent scripts and styles will be moved in a proper order. This unique feature does not exist in most top-level caching plugins. +- Analytics scripts can be stored locally to improve browser cache time. +- Links and fonts can be preloaded to improve overall page loading time. ## Installation @@ -41,8 +47,6 @@ The WordPress Plugin PageSpeed Optimization is licensed under the GPL v2 or late A copy of the license is included in the root of the plugin’s directory. The file is named `LICENSE`. -### Includes - ## Credits The current version of the PageSpeed Optimization was developed by [KAGG Design](https://kagg.eu/en/). From d065589695b1d729f1803e8672ed4496b1f49ed6 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 22:23:07 +0300 Subject: [PATCH 03/25] Update readme.txt. --- readme.txt | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/readme.txt b/readme.txt index 0e1036e..210f43b 100644 --- a/readme.txt +++ b/readme.txt @@ -3,47 +3,38 @@ Contributors: kaggdesign Donate link: https://kagg.eu/en/ Tags: PageSpeed, PageSpeed Optimization Requires at least: 4.4 -Tested up to: 5.8 -Stable tag: 1.4.0 +Tested up to: 6.3 +Stable tag: 1.5.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html -PageSpeed Optimization plugin optimizes external scripts by storing them locally: Google analytics, Google map, Yandex metrika. +PageSpeed Optimization plugin performs optimization of external scripts and styles by moving them to the footer, blocking, or delaying. Links and fonts can be preloaded to minimize loading time. Analytics scripts can be stored locally to leverage browser caching. -This is the fork of CAOS (Complete Analytics Optimization Suite) by Daan van den Bergh https://ru.wordpress.org/plugins/host-analyticsjs-local/. +The above-mentioned measures provide a significant increase in Google Pagespeed Insights score. == Description == -After activation of the plugin, scripts for above mentioned services will be cached on a local server. They are updated hourly. +PageSpeed Optimization plugin performs optimization of external scripts and styles by moving them to the footer, blocking, or delaying. Loading of delayed scripts or styles begins after the first user interaction - scroll, clock, or mouse enter. Links and fonts can be preloaded to minimize loading time. -Whenever you run an analysis of your website on Google Pagespeed Insights, Pingdom or GTMetrix, it’ll tell you to leverage browser cache when you’re using Google Analytics. Because Google has set the cache expiry time to 2 hours. This plugin will get you a higher score on Pagespeed and Pingdom and make your website load faster, because the user’s browser doesn’t have to make a roundtrip to download the file from Google’s external server. +During moving, blocking, or delaying, the plugin performs exact calculations of all scripts and styles dependencies across the whole dependency tree. So, any script or style whose position has to be modified will be moved with all dependencies in the proper order. This functionality is unique and does not exist in most top-level caching plugins. -== Installation == - -= Minimum Requirements = - -* PHP version 5.6 or greater (PHP 8.0 or greater is recommended) -* MySQL version 5.0 or greater (MySQL 5.6 or greater is recommended) - -= Automatic installation = +Analytics scripts can be stored locally: Google AdSense, Google Analytics, Google Maps, Google Tag Manager, and Yandex Metrika. Scripts for the above-mentioned services will be cached on the local server and updated twice daily. -Automatic installation is the easiest option as WordPress handles the file transfers itself and you don’t need to leave your web browser. To do an automatic install of PageSpeed Optimization plugin, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New. +Google Pagespeed Insights (PSI) requires leveraging browser cache when using analytics scripts because they only have a 2-hour cache expiry time. When scripts are stored locally, their cache expiry time is increased, raising the PSI score. -In the search field type “PageSpeed Optimization” and click Search Plugins. Once you’ve found our plugin you can view details about it such as the point release, rating and description. Most importantly of course, you can install it by simply clicking “Install Now”. +PageSpeed Optimization plugin will get you a higher score on Google Pagespeed Insights and make your website load faster. The most impact can usually be achieved by delaying scripts. -= Manual installation = - -The manual installation method involves downloading our plugin and uploading it to your webserver via your favourite FTP application. The WordPress codex contains [instructions on how to do this here](https://codex.wordpress.org/Managing_Plugins#Manual_Plugin_Installation). - -= Updating = +== Installation == -Automatic updates should work like a charm; as always though, ensure you backup your site just in case. +1. Install Pagespeed Optimization either via the WordPress.org plugin repository (best) or by uploading the files to your server. ([Upload instructions](https://www.wpbeginner.com/beginners-guide/step-by-step-guide-to-install-a-wordpress-plugin-for-beginners/)) +2. Activate the Pagespeed Optimization plugin on the 'Plugins' admin page +3. Use the plugin settings page to move, delay, or block scripts and styles == Frequently Asked Questions == = Where can I get support or talk to other users? = -If you get stuck, you can ask for help in the [PageSpeed Optimization Plugin Forum](https://wordpress.org/support/plugin/tomita-parser). +If you get stuck, you can ask for help in the [PageSpeed Optimization Plugin Forum](https://wordpress.org/support/plugin/kagg-pagespeed-optimization). == Screenshots == From 93d1fec6a49522e9aff998b5d2f7668908a2274c Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 22:42:40 +0300 Subject: [PATCH 04/25] Update readme.txt. --- readme.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 210f43b..d4da88d 100644 --- a/readme.txt +++ b/readme.txt @@ -1,9 +1,10 @@ === KAGG PageSpeed Optimization === Contributors: kaggdesign Donate link: https://kagg.eu/en/ -Tags: PageSpeed, PageSpeed Optimization +Tags: PageSpeed, Google Pagespeed Insights, PageSpeed Optimization Requires at least: 4.4 Tested up to: 6.3 +Requires PHP: 7.0 Stable tag: 1.5.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -42,6 +43,9 @@ If you get stuck, you can ask for help in the [PageSpeed Optimization Plugin For == Changelog == += 2.0.0 = +* Tested with WordPress 6.3. + = 1.5.0 = * Optimize reordering of scripts and styles via tree traversal. * Add Clutch widget support. From 583f3fff6866d7caf16a6aafb43f2642b1aad653 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 22:42:57 +0300 Subject: [PATCH 05/25] Update LICENSE. --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index ecbc059..d159169 100644 --- a/LICENSE +++ b/LICENSE @@ -336,4 +336,4 @@ This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. \ No newline at end of file +Public License instead of this License. From 68b62211bdd173f61367318e015d98d0df85d142 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 22:48:59 +0300 Subject: [PATCH 06/25] Update composer.json. --- composer.json | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 07b2d2d..60c0236 100644 --- a/composer.json +++ b/composer.json @@ -7,7 +7,7 @@ "pagespeed insights", "optimization" ], - "homepage": "https://kagg.eu/en/", + "homepage": "https://wordpress.org/kagg-pagespeed-optimization/", "type": "wordpress-plugin", "authors": [ { @@ -28,20 +28,23 @@ "minimum-stability": "dev", "prefer-stable": true, "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + }, "platform": { - "php": "5.6" + "php": "7.0" } }, "require": { "ext-json": "*", - "tedivm/jshrink": "^v1.4" + "tedivm/jshrink": "^v1.6.8" }, "require-dev": { "roave/security-advisories": "dev-latest", - "squizlabs/php_codesniffer": "^3.6", - "phpcompatibility/php-compatibility": "^9.3", - "phpcompatibility/phpcompatibility-wp": "^2.1", - "wp-coding-standards/wpcs": "^2.3" + "squizlabs/php_codesniffer": "^3.7.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "phpcompatibility/phpcompatibility-wp": "^2.1.3", + "wp-coding-standards/wpcs": "^3.0.0" }, "autoload": { "psr-4": { @@ -49,6 +52,6 @@ } }, "scripts": { - "phpcs": "phpcs --colors --standard=phpcs.xml" + "phpcs": "vendor/bin/phpcs --colors --standard=phpcs.xml" } } From 9ad660ad70f96cc1f3cc6a012c215167ecfeded4 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 22:51:49 +0300 Subject: [PATCH 07/25] Update phpcs.xml. --- phpcs.xml | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/phpcs.xml b/phpcs.xml index 78e7066..98baf33 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -16,30 +16,24 @@ + - + + - - - - - - - - 0 - - - 0 - - - 0 - - - 0 + + + + + + + + + From dcfbbe7ac821d180dee6e38de142f17893b368bd Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 22:52:59 +0300 Subject: [PATCH 08/25] Update readme.txt. --- readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index d4da88d..02bc13f 100644 --- a/readme.txt +++ b/readme.txt @@ -2,7 +2,7 @@ Contributors: kaggdesign Donate link: https://kagg.eu/en/ Tags: PageSpeed, Google Pagespeed Insights, PageSpeed Optimization -Requires at least: 4.4 +Requires at least: 5.0 Tested up to: 6.3 Requires PHP: 7.0 Stable tag: 1.5.0 From 418f4ee6922ce332efcf380ace093ada59b0e3bb Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 22:53:20 +0300 Subject: [PATCH 09/25] Update main plugin file. --- plugin.php | 57 ++++++++++++++++++++++++++++++------------------ src/php/Main.php | 5 ++--- 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/plugin.php b/plugin.php index c13e7a4..937bd0d 100644 --- a/plugin.php +++ b/plugin.php @@ -1,40 +1,40 @@ init(); diff --git a/src/php/Main.php b/src/php/Main.php index 2768028..1d10192 100644 --- a/src/php/Main.php +++ b/src/php/Main.php @@ -77,10 +77,9 @@ class Main { ]; /** - * PageSpeed_Optimization constructor. + * Init class. */ - public function __construct() { - // Init fields. + public function init() { $this->init_form_fields(); $this->init_settings(); From 59fc7a6a26c03456498c3507fadee075ccefe213 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Wed, 23 Aug 2023 23:04:28 +0300 Subject: [PATCH 10/25] PHP 7.0 in Main.php. --- src/php/Main.php | 91 ++++++++++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/src/php/Main.php b/src/php/Main.php index 1d10192..70c468c 100644 --- a/src/php/Main.php +++ b/src/php/Main.php @@ -196,7 +196,7 @@ public function pagespeed_optimization_settings_page() { ?> -
+ -

- -

-

- -

- +

+ +

+

+ +

+ form_fields ) ) { $this->init_form_fields(); } @@ -484,7 +482,7 @@ public function get_form_fields() { * * @return array */ - protected function set_defaults( $field ) { + protected function set_defaults( $field ): array { if ( ! isset( $field['default'] ) ) { $field['default'] = ''; } @@ -497,7 +495,7 @@ protected function set_defaults( $field ) { * * @return string */ - public function get_option_key() { + public function get_option_key(): string { return $this->plugin_id . $this->id . '_settings'; } @@ -532,7 +530,7 @@ public function get_option( $key, $empty_value = null ) { * * @param array $field Field. * - * @return string + * @return mixed */ public function get_field_default( $field ) { return empty( $field['default'] ) ? '' : $field['default']; @@ -555,12 +553,10 @@ public function pre_update_option_filter( $value, $old_value, $option ) { $form_fields = $this->get_form_fields(); foreach ( $form_fields as $key => $form_field ) { - $value[ $key ] = isset( $value[ $key ] ) ? $value[ $key ] : $form_field; - switch ( $form_field['type'] ) { - case 'checkbox': - $value[ $key ] = '1' === $value[ $key ] || 'yes' === $value[ $key ] ? 'yes' : 'no'; - break; - default: + $value[ $key ] = $value[ $key ] ?? $form_field; + + if ( 'checkbox' === $form_field['type'] ) { + $value[ $key ] = '1' === $value[ $key ] || 'yes' === $value[ $key ] ? 'yes' : 'no'; } } @@ -591,6 +587,9 @@ public function setup_fields() { * Output settings field. * * @param array $arguments Field arguments. + * + * @noinspection HtmlWrongAttributeValue + * @noinspection HtmlUnknownAttribute */ public function field_callback( $arguments ) { $value = $this->get_option( $arguments['field_id'] ); @@ -628,7 +627,7 @@ public function field_callback( $arguments ) { $options_markup = ''; $iterator = 0; foreach ( $arguments['options'] as $key => $label ) { - $iterator ++; + ++$iterator; $options_markup .= sprintf( '
', esc_html( $this->get_option_key() ), @@ -755,7 +754,7 @@ public function load_textdomain() { * @return array Plugin links * @noinspection PhpUnusedParameterInspection */ - public function add_settings_link( $links, $file ) { + public function add_settings_link( $links, $file ): array { $action_links = [ 'settings' => ' Date: Thu, 24 Aug 2023 09:40:48 +0300 Subject: [PATCH 11/25] Fix fatal related to default settings. --- src/php/Main.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/php/Main.php b/src/php/Main.php index 70c468c..797b658 100644 --- a/src/php/Main.php +++ b/src/php/Main.php @@ -383,7 +383,7 @@ public function init_form_fields() { 'placeholder' => '', 'helper' => '', 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => [], + 'default' => '', ], 'block_scripts' => [ 'label' => __( 'Scripts to block', 'kagg-pagespeed-optimization' ), @@ -392,7 +392,7 @@ public function init_form_fields() { 'placeholder' => '', 'helper' => '', 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => [], + 'default' => '', ], 'delay_scripts' => [ 'label' => __( 'Scripts to delay', 'kagg-pagespeed-optimization' ), @@ -401,7 +401,7 @@ public function init_form_fields() { 'placeholder' => '', 'helper' => '', 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => [], + 'default' => '', ], 'styles_to_footer' => [ 'label' => __( 'Styles to move from header to footer', 'kagg-pagespeed-optimization' ), @@ -410,7 +410,7 @@ public function init_form_fields() { 'placeholder' => '', 'helper' => '', 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => [], + 'default' => '', ], 'block_styles' => [ 'label' => __( 'Styles to block', 'kagg-pagespeed-optimization' ), @@ -419,7 +419,7 @@ public function init_form_fields() { 'placeholder' => '', 'helper' => '', 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => [], + 'default' => '', ], 'links_to_preload' => [ 'label' => __( 'Links to preload', 'kagg-pagespeed-optimization' ), @@ -428,7 +428,7 @@ public function init_form_fields() { 'placeholder' => '', 'helper' => '', 'supplemental' => __( 'Enter URLs, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => [], + 'default' => '', ], 'fonts_to_preload' => [ 'label' => __( 'Fonts to preload', 'kagg-pagespeed-optimization' ), @@ -437,7 +437,7 @@ public function init_form_fields() { 'placeholder' => '', 'helper' => '', 'supplemental' => __( 'Enter css urls containing @font-face directives, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => [], + 'default' => '', ], ]; } From 33d653c8bdcc65505da9e66baee236fc62245a04 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 10:53:15 +0300 Subject: [PATCH 12/25] Remove changelog.md. --- changelog.md | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 changelog.md diff --git a/changelog.md b/changelog.md deleted file mode 100644 index b39554d..0000000 --- a/changelog.md +++ /dev/null @@ -1,51 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](http://keepachangelog.com/) -and this project adheres to [Semantic Versioning](http://semver.org/). - -## [1.5.0] -* Optimize reordering of scripts and styles via tree traversal. -* Add Clutch widget support. - -## [1.4.0] -* Added "Include all dependencies to delayed scripts" feature. -* Added script delay until user interaction. -* Added minification of delayed scripts. -* Added Zopim support. -* Added FB share and like button. -* Added StatCounter support. -* Fixed delayed scripts loading in Firefox. -* Added sorting of delayed scripts in the proper order of dependencies. -* Updated Yandex Metrika code. -* Make delayed scripts passing W3C validation. - -## [1.3.0] -* Tested with WordPress 5.8 -* Make all optimization for not logged-in users by default -* Added "Optimize when logged-in" option -* Fix minor issues with cache and performance - -## [1.2] -* Tested with WordPress 5.6 -* Cache an.yandex.ru/system/context.js -* Cache Google AdSense and Google Tag Manager -* Process Yandex advertising network blocks -* Add loader -* Move site icon upper any inline style (fixes bug in Chrome) -* Fix passive event listener problem in Google PageSpeed Insights -* Run Google Tag Manager, Google AdSense, Yandex Metrika, One Signal as delayed scripts -* No optimization in admin -* Namespace and composer - -## [1.1.0] -* Create cache dir during local files updating -* Disable emoji -* Defer scripts -* Add display:swap for Google fonts - -## [1.0.2] -* Tested with WordPress 5.4 - -## [1.0.0] -* Initial Release. From 9a00f3c168ec0430b077c309d0c342c61b2ad085 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 11:01:37 +0300 Subject: [PATCH 13/25] Update .gitignore. --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 3b81cdd..e211d00 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,8 @@ .idea/ +assets/css/*.min.css +assets/css/*.min.css.map +assets/js/**/*.min.js +assets/js/**/*.min.js.map cache/ vendor/ From af1c1e675ebb9bdd581bd013b716da41db6045cb Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 11:06:03 +0300 Subject: [PATCH 14/25] Update .distignore. --- .distignore | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.distignore b/.distignore index 51fe0ac..343b1ef 100644 --- a/.distignore +++ b/.distignore @@ -1,19 +1,21 @@ # A set of files and directories you probably don't want in your WordPress.org distribution # Files +/.DS_Store /.distignore /.editorconfig /.gitignore -/.DS_Store +/.phpcs.cache +/README.md /Thumbs.db +/auth.json /composer.json /composer.lock /phpcs.xml -/changelog.md -/readme.md # Directories /.git /.github /.idea +/.wordpress-org /cache From b6714232dde3e66f47131017164bca78fae140f1 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 13:29:24 +0300 Subject: [PATCH 15/25] PHP 7.0. --- src/php/Clutch.php | 2 +- src/php/DelayedScript.php | 14 +++++++----- src/php/Filesystem.php | 10 ++++---- src/php/LayerSlider.php | 8 +++---- src/php/Loader.php | 2 +- src/php/Main.php | 28 +++++++++++------------ src/php/PassiveEvents.php | 18 +++++++-------- src/php/Resources.php | 34 ++++++++++++++++------------ src/php/StatCounter.php | 4 ++++ src/php/YandexAdvertisingNetwork.php | 10 ++++---- src/php/Zopim.php | 3 ++- 11 files changed, 71 insertions(+), 62 deletions(-) diff --git a/src/php/Clutch.php b/src/php/Clutch.php index acc4ee3..959900a 100644 --- a/src/php/Clutch.php +++ b/src/php/Clutch.php @@ -38,7 +38,7 @@ private function init_hooks() { * @return string * @noinspection PhpUnusedParameterInspection */ - public function remove_clutch_html( $text, $instance, $widget ) { + public function remove_clutch_html( string $text, array $instance, WP_Widget $widget ): string { $src = 'https://widget.clutch.co/static/js/widget.js'; if ( false === strpos( $text, $src ) ) { diff --git a/src/php/DelayedScript.php b/src/php/DelayedScript.php index e2b9026..4d39c91 100644 --- a/src/php/DelayedScript.php +++ b/src/php/DelayedScript.php @@ -34,8 +34,10 @@ class DelayedScript { * @param int $delay Delay in ms. Negative means no delay, just wait for user interaction. * * @return string + * @noinspection PhpCastIsUnnecessaryInspection + * @noinspection UnnecessaryCastingInspection */ - public static function create( $js, $delay = - 1 ) { + public static function create( string $js, int $delay = - 1 ): string { ob_start(); ?> @@ -122,7 +124,7 @@ function delayedLoad() { * @param array $args Arguments. * @param int $delay Delay in ms. */ - public static function launch( $args, $delay = - 1 ) { + public static function launch( array $args, int $delay = - 1 ) { // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo self::create( self::get_js( $args ), $delay ); } @@ -137,7 +139,7 @@ public static function launch( $args, $delay = - 1 ) { * @param string $html HTMl code with scripts. * @param int $delay Delay in ms. */ - public static function launch_html( $html, $delay = - 1 ) { + public static function launch_html( string $html, int $delay = - 1 ) { $found = preg_match_all( '#(.*?)#s', $html, $matches ); if ( $found ) { @@ -164,8 +166,8 @@ public static function launch_html( $html, $delay = - 1 ) { * @param array $args Arguments. * @param int $delay Delay in ms. */ - public static function store( $args, $delay = - 1 ) { - self::$delayed_scripts[ (int) $delay ][] = $args; + public static function store( array $args, int $delay = - 1 ) { + self::$delayed_scripts[ $delay ][] = $args; } /** @@ -194,7 +196,7 @@ public static function launch_stored_scripts() { * * @return string */ - private static function get_js( array $args, $async = true ) { + private static function get_js( array $args, bool $async = true ): string { ob_start(); ?> diff --git a/src/php/Filesystem.php b/src/php/Filesystem.php index 7a9b20e..7a04431 100644 --- a/src/php/Filesystem.php +++ b/src/php/Filesystem.php @@ -44,7 +44,7 @@ private function init() { } if ( ! WP_Filesystem() ) { - throw new RuntimeException( __( 'Unable to get filesystem access', 'kagg-pagespeed-optimization' ) ); + throw new RuntimeException( esc_html__( 'Unable to get filesystem access', 'kagg-pagespeed-optimization' ) ); } $this->wp_filesystem = $wp_filesystem; @@ -55,7 +55,7 @@ private function init() { * * @return string */ - public function set_direct_fs_method() { + public function set_direct_fs_method(): string { return 'direct'; } @@ -66,7 +66,7 @@ public function set_direct_fs_method() { * * @return string|false */ - public function read( $filename ) { + public function read( string $filename ) { if ( ! $this->wp_filesystem ) { return false; } @@ -78,11 +78,11 @@ public function read( $filename ) { * Write file. * * @param string $filename Name of the file to write. - * @param string $content File content. + * @param string $content File content. * * @return bool */ - public function write( $filename, $content ) { + public function write( string $filename, string $content ): bool { if ( ! $this->wp_filesystem ) { return false; } diff --git a/src/php/LayerSlider.php b/src/php/LayerSlider.php index 20af25e..e7da128 100644 --- a/src/php/LayerSlider.php +++ b/src/php/LayerSlider.php @@ -37,15 +37,15 @@ private function init() { /** * Filters the output created by a shortcode callback. * - * @param string $output Shortcode output. + * @param string|mixed $output Shortcode output. * @param string $tag Shortcode name. * @param array|string $attr Shortcode attributes array or empty string. * @param array $m Regular expression match array. * - * @return string + * @return string|mixed * @noinspection PhpUnusedParameterInspection */ - public function do_shortcode_tag( $output, $tag, $attr, $m ) { + public function do_shortcode_tag( $output, string $tag, $attr, array $m ) { if ( 'layerslider' !== $tag ) { return $output; } @@ -53,7 +53,7 @@ public function do_shortcode_tag( $output, $tag, $attr, $m ) { preg_match( '##', $output, $matches ); $this->layer_slider_script = $matches[0]; - return str_replace( $this->layer_slider_script, '', $output ); + return str_replace( $this->layer_slider_script, '', (string) $output ); } /** diff --git a/src/php/Loader.php b/src/php/Loader.php index 0083311..28cabf9 100644 --- a/src/php/Loader.php +++ b/src/php/Loader.php @@ -31,7 +31,7 @@ class Loader { * * @param Main $main Main class instance. */ - public function __construct( $main ) { + public function __construct( Main $main ) { $this->main = $main; $this->init(); diff --git a/src/php/Main.php b/src/php/Main.php index 797b658..eb7508d 100644 --- a/src/php/Main.php +++ b/src/php/Main.php @@ -224,7 +224,7 @@ public function setup_sections() { * * @param array $arguments Section arguments. */ - public function pagespeed_optimization_first_section( $arguments ) { + public function pagespeed_optimization_first_section( array $arguments ) { if ( 'first_section' !== $arguments['id'] ) { return; } @@ -482,7 +482,7 @@ public function get_form_fields(): array { * * @return array */ - protected function set_defaults( $field ): array { + protected function set_defaults( array $field ): array { if ( ! isset( $field['default'] ) ) { $field['default'] = ''; } @@ -507,7 +507,7 @@ public function get_option_key(): string { * * @return mixed The value specified for the option or a default value for the option. */ - public function get_option( $key, $empty_value = null ) { + public function get_option( string $key, $empty_value = null ) { if ( empty( $this->settings ) ) { $this->init_settings(); } @@ -532,7 +532,7 @@ public function get_option( $key, $empty_value = null ) { * * @return mixed */ - public function get_field_default( $field ) { + public function get_field_default( array $field ) { return empty( $field['default'] ) ? '' : $field['default']; } @@ -546,7 +546,7 @@ public function get_field_default( $field ) { * @return mixed * @noinspection PhpUnusedParameterInspection */ - public function pre_update_option_filter( $value, $old_value, $option ) { + public function pre_update_option_filter( $value, $old_value, string $option ) { if ( $value === $old_value ) { return $value; } @@ -591,7 +591,7 @@ public function setup_fields() { * @noinspection HtmlWrongAttributeValue * @noinspection HtmlUnknownAttribute */ - public function field_callback( $arguments ) { + public function field_callback( array $arguments ) { $value = $this->get_option( $arguments['field_id'] ); // Check which type of field we want. @@ -748,13 +748,13 @@ public function load_textdomain() { /** * Add link to plugin setting page on plugins page. * - * @param array $links Plugin links. - * @param string $file Filename. + * @param array|mixed $links Plugin links. + * @param string $file Filename. * * @return array Plugin links * @noinspection PhpUnusedParameterInspection */ - public function add_settings_link( $links, $file ): array { + public function add_settings_link( $links, string $file ): array { $action_links = [ 'settings' => ' + + + + + + + + + + From f21b3454a5846441a49b7e5aefab1413d0144c16 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 14:05:14 +0300 Subject: [PATCH 18/25] Update admin icon. --- assets/images/icon-16x16.png | Bin 742 -> 0 bytes assets/images/icon.svg | 16 ++++++++++++++++ src/php/Main.php | 4 ++-- 3 files changed, 18 insertions(+), 2 deletions(-) delete mode 100644 assets/images/icon-16x16.png create mode 100644 assets/images/icon.svg diff --git a/assets/images/icon-16x16.png b/assets/images/icon-16x16.png deleted file mode 100644 index 6c04078676f8a1241df0d937cdc5fb41801ae378..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 742 zcmVnV}ABc-;3uYm4QFj_dQo*!H(|}+tCK4@* zG?gs;im@0|GtJjL=Z#I6QW5dY%;McQ_uPBVy^K?@_Lek;{#uDwC{;>+2ARAd%1)WP^ZZ zp=@bEDiLqz+D~?OsMRg#JJW|$DkW7v(b%dW*^&OJp zv{T7Mr4ofgfpBttQZg^Vf8jhHR~GOooyBF#8a}QXFgVqN!QlXgPIpPgnj>vE+t5ES z(2qM)VVDl?#14Z4Wt|P(zP)&V{~oRc#~^G>K}NtdM>7+NA*M?})2qYrr@Qfa{v}4P zJ;VNE83eT^gezIxo}QKyFs$5^=v)*(XTIYwaU=9FjIm2&I5*sf@PoTp>F&byFROSS ziEMT<7zh+Z{Y2D7GAkL9Oe9JE!&j0_rN};qgSg#plFejDCYK}8WRff|FOzDuN>j+i z(b2*t6YVxTVEcXE)@H`di3!QDJ$Abkvy00^Ardqj;52%@w1phUZJD#z>;2>W=?E#b zMq?}YIzIR6Rw(4AX4GYC`!}$36UA?FCiaf;m~=yLh@wX!2B@xoArM!Y5vXL;i_@%07*qoM6N<$f+qD(7ytkO diff --git a/assets/images/icon.svg b/assets/images/icon.svg new file mode 100644 index 0000000..7ca63b2 --- /dev/null +++ b/assets/images/icon.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/src/php/Main.php b/src/php/Main.php index eb7508d..52f9b72 100644 --- a/src/php/Main.php +++ b/src/php/Main.php @@ -177,8 +177,8 @@ public function add_settings_page() { $capability = 'manage_options'; $slug = 'pagespeed-optimization'; $callback = [ $this, 'pagespeed_optimization_settings_page' ]; - $icon = KAGG_PAGESPEED_OPTIMIZATION_URL . '/assets/images/icon-16x16.png'; - $icon = ''; + $icon = KAGG_PAGESPEED_OPTIMIZATION_URL . '/assets/images/icon.svg'; + $icon = ''; $menu_title = $icon . '' . $menu_title . ''; add_options_page( $page_title, $menu_title, $capability, $slug, $callback ); } From ffba99f067639ee37910eca379e7c02c4d617e85 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 14:19:43 +0300 Subject: [PATCH 19/25] Reorganize admin page. --- src/php/Main.php | 172 +++++++++++++++++++++++------------------------ 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/src/php/Main.php b/src/php/Main.php index 52f9b72..9fc7307 100644 --- a/src/php/Main.php +++ b/src/php/Main.php @@ -232,7 +232,7 @@ public function pagespeed_optimization_first_section( array $arguments ) {

@@ -240,7 +240,7 @@ public function pagespeed_optimization_first_section( array $arguments ) {

@@ -253,6 +253,86 @@ public function pagespeed_optimization_first_section( array $arguments ) { */ public function init_form_fields() { $this->form_fields = [ + 'scripts_to_footer' => [ + 'label' => __( 'Scripts to move from header to footer', 'kagg-pagespeed-optimization' ), + 'section' => 'first_section', + 'type' => 'textarea', + 'placeholder' => '', + 'helper' => '', + 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), + 'default' => '', + ], + 'block_scripts' => [ + 'label' => __( 'Scripts to block', 'kagg-pagespeed-optimization' ), + 'section' => 'first_section', + 'type' => 'textarea', + 'placeholder' => '', + 'helper' => '', + 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), + 'default' => '', + ], + 'delay_scripts' => [ + 'label' => __( 'Scripts to delay', 'kagg-pagespeed-optimization' ), + 'section' => 'first_section', + 'type' => 'textarea', + 'placeholder' => '', + 'helper' => '', + 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), + 'default' => '', + ], + 'styles_to_footer' => [ + 'label' => __( 'Styles to move from header to footer', 'kagg-pagespeed-optimization' ), + 'section' => 'first_section', + 'type' => 'textarea', + 'placeholder' => '', + 'helper' => '', + 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), + 'default' => '', + ], + 'block_styles' => [ + 'label' => __( 'Styles to block', 'kagg-pagespeed-optimization' ), + 'section' => 'first_section', + 'type' => 'textarea', + 'placeholder' => '', + 'helper' => '', + 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), + 'default' => '', + ], + 'links_to_preload' => [ + 'label' => __( 'Links to preload', 'kagg-pagespeed-optimization' ), + 'section' => 'first_section', + 'type' => 'textarea', + 'placeholder' => '', + 'helper' => '', + 'supplemental' => __( 'Enter URLs, one per line.', 'kagg-pagespeed-optimization' ), + 'default' => '', + ], + 'fonts_to_preload' => [ + 'label' => __( 'Fonts to preload', 'kagg-pagespeed-optimization' ), + 'section' => 'first_section', + 'type' => 'textarea', + 'placeholder' => '', + 'helper' => '', + 'supplemental' => __( 'Enter css urls containing @font-face directives, one per line.', 'kagg-pagespeed-optimization' ), + 'default' => '', + ], + 'loader_image_url' => [ + 'label' => __( 'Loader image URL', 'kagg-pagespeed-optimization' ), + 'section' => 'first_section', + 'type' => 'text', + 'placeholder' => '', + 'helper' => '', + 'supplemental' => '', + ], + 'optimize_logged_in' => [ + 'label' => __( 'Optimize when logged-in', 'kagg-pagespeed-optimization' ), + 'section' => 'first_section', + 'type' => 'checkbox', + 'placeholder' => '', + 'helper' => '', + 'supplemental' => '', + 'default' => 'no', + ], 'gas_id' => [ 'label' => __( 'Google AdSense ID', 'kagg-pagespeed-optimization' ), 'section' => 'first_section', @@ -350,94 +430,14 @@ public function init_form_fields() { 'supplemental' => '', 'default' => 'yes', ], - 'remove_from_wp_cron' => [ - 'label' => __( 'Remove script from WP-Cron', 'kagg-pagespeed-optimization' ), + 'cache_scripts_locally' => [ + 'label' => __( 'Cache analytics scripts locally', 'kagg-pagespeed-optimization' ), 'section' => 'first_section', 'type' => 'checkbox', 'placeholder' => '', 'helper' => '', 'supplemental' => '', - 'default' => 'no', - ], - 'optimize_logged_in' => [ - 'label' => __( 'Optimize when logged-in', 'kagg-pagespeed-optimization' ), - 'section' => 'first_section', - 'type' => 'checkbox', - 'placeholder' => '', - 'helper' => '', - 'supplemental' => '', - 'default' => 'no', - ], - 'loader_image_url' => [ - 'label' => __( 'Loader image URL', 'kagg-pagespeed-optimization' ), - 'section' => 'first_section', - 'type' => 'text', - 'placeholder' => '', - 'helper' => '', - 'supplemental' => '', - ], - 'scripts_to_footer' => [ - 'label' => __( 'Scripts to move from header to footer', 'kagg-pagespeed-optimization' ), - 'section' => 'first_section', - 'type' => 'textarea', - 'placeholder' => '', - 'helper' => '', - 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => '', - ], - 'block_scripts' => [ - 'label' => __( 'Scripts to block', 'kagg-pagespeed-optimization' ), - 'section' => 'first_section', - 'type' => 'textarea', - 'placeholder' => '', - 'helper' => '', - 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => '', - ], - 'delay_scripts' => [ - 'label' => __( 'Scripts to delay', 'kagg-pagespeed-optimization' ), - 'section' => 'first_section', - 'type' => 'textarea', - 'placeholder' => '', - 'helper' => '', - 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => '', - ], - 'styles_to_footer' => [ - 'label' => __( 'Styles to move from header to footer', 'kagg-pagespeed-optimization' ), - 'section' => 'first_section', - 'type' => 'textarea', - 'placeholder' => '', - 'helper' => '', - 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => '', - ], - 'block_styles' => [ - 'label' => __( 'Styles to block', 'kagg-pagespeed-optimization' ), - 'section' => 'first_section', - 'type' => 'textarea', - 'placeholder' => '', - 'helper' => '', - 'supplemental' => __( 'Enter handles, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => '', - ], - 'links_to_preload' => [ - 'label' => __( 'Links to preload', 'kagg-pagespeed-optimization' ), - 'section' => 'first_section', - 'type' => 'textarea', - 'placeholder' => '', - 'helper' => '', - 'supplemental' => __( 'Enter URLs, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => '', - ], - 'fonts_to_preload' => [ - 'label' => __( 'Fonts to preload', 'kagg-pagespeed-optimization' ), - 'section' => 'first_section', - 'type' => 'textarea', - 'placeholder' => '', - 'helper' => '', - 'supplemental' => __( 'Enter css urls containing @font-face directives, one per line.', 'kagg-pagespeed-optimization' ), - 'default' => '', + 'default' => 'yes', ], ]; } @@ -772,7 +772,7 @@ public function add_settings_link( $links, string $file ): array { */ public function check_cron() { // @todo Add selection of interval to options. - if ( 'yes' === $this->get_option( 'remove_from_wp_cron' ) ) { + if ( 'yes' === $this->get_option( 'cache_scripts_locally' ) ) { $this->deactivate_update_pagespeed_optimization_cache(); } else { $this->activate_update_pagespeed_optimization_cache(); From ee58b46cf1b6e58f56c4e9178a2e26f00c7657c1 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 14:30:01 +0300 Subject: [PATCH 20/25] Add screenshot-1.png. --- .wordpress-org/screenshot-1.png | Bin 0 -> 177635 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .wordpress-org/screenshot-1.png diff --git a/.wordpress-org/screenshot-1.png b/.wordpress-org/screenshot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..532c40dbf0d8194bcc06e657a7678a655c6cfcc5 GIT binary patch literal 177635 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 z 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

0?Y{R-BRc#g8uJp6_3DpG1L~)a`^&B7g=gM> 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 literal 0 HcmV?d00001 From 2464fe5061ebb0cc645be3d07ed3ccca73ff6a3e Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 14:30:23 +0300 Subject: [PATCH 21/25] Add banner to README.md. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 26704c7..483cfb1 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ Google Pagespeed Insights (PSI) requires leveraging browser cache when using ana PageSpeed Optimization plugin will get you a higher score on Google Pagespeed Insights and make your website load faster. The most impact can usually be achieved by delaying scripts. +![](./.wordpress-org/banner-772x250.png) + ## Features - Any script or style can be moved from the header to the footer. From 740288a0a9ef2eba67d4eb00708cb45a249f5b80 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 14:48:43 +0300 Subject: [PATCH 22/25] Add CI files. --- .github/workflows/ci.yml | 36 +++++++++++++++ .../deploy-readme-assets-to-wp-org.yml | 19 ++++++++ .github/workflows/deploy-to-wp-org.yml | 44 +++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/deploy-readme-assets-to-wp-org.yml create mode 100644 .github/workflows/deploy-to-wp-org.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..264b95c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,36 @@ +name: CI + +on: [ push, pull_request ] + +jobs: + run: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ ubuntu-latest ] + php-version: [ '7.0' ] + + name: PHP ${{ matrix.php-version }} on ${{ matrix.os }} + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + + - name: Setup Composer caching + uses: ramsey/composer-install@v2 + + - name: Install dependencies + run: | + composer config github-oauth.github.com ${{ secrets.GITHUB_TOKEN }} + composer install + env: + COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Run code sniffer + run: composer phpcs diff --git a/.github/workflows/deploy-readme-assets-to-wp-org.yml b/.github/workflows/deploy-readme-assets-to-wp-org.yml new file mode 100644 index 0000000..b171acb --- /dev/null +++ b/.github/workflows/deploy-readme-assets-to-wp-org.yml @@ -0,0 +1,19 @@ +name: Plugin readme/assets update +on: + push: + branches: + - trunk +jobs: + trunk: + name: Push to trunk + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: WordPress.org plugin asset/readme update + uses: 10up/action-wordpress-plugin-asset-update@stable + env: + SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} + SVN_USERNAME: ${{ secrets.SVN_USERNAME }} + IGNORE_OTHER_FILES: true diff --git a/.github/workflows/deploy-to-wp-org.yml b/.github/workflows/deploy-to-wp-org.yml new file mode 100644 index 0000000..36d6d39 --- /dev/null +++ b/.github/workflows/deploy-to-wp-org.yml @@ -0,0 +1,44 @@ +name: Deploy to WordPress.org +on: + release: + types: [published] +jobs: + tag: + name: New release + + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + + - name: Setup Composer caching + uses: ramsey/composer-install@v2 + + - name: Install dependencies in prod version + run: | + composer config github-oauth.github.com ${{ secrets.GITHUB_TOKEN }} + composer install --no-dev + env: + COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: WordPress Plugin Deploy + id: deploy + uses: 10up/action-wordpress-plugin-deploy@stable + with: + generate-zip: true + env: + SVN_USERNAME: ${{ secrets.SVN_USERNAME }} + SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} + + - name: Upload release asset + uses: softprops/action-gh-release@v1 + with: + files: ${{github.workspace}}/${{ github.event.repository.name }}.zip + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 57ab4468fd8f142362a645ecd01e6679170bdde9 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 14:49:02 +0300 Subject: [PATCH 23/25] Update readme.txt. --- readme.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 02bc13f..ed99238 100644 --- a/readme.txt +++ b/readme.txt @@ -43,7 +43,8 @@ If you get stuck, you can ask for help in the [PageSpeed Optimization Plugin For == Changelog == -= 2.0.0 = += 1.6.0 = +* Dropped support for PHP 5.6. Minimum required PHP version is now 7.0. * Tested with WordPress 6.3. = 1.5.0 = From 9d5f9678be53b7e1b062412a1fcde763306853c2 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 14:55:19 +0300 Subject: [PATCH 24/25] Bump up version. --- plugin.php | 4 ++-- readme.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugin.php b/plugin.php index 937bd0d..91506d7 100644 --- a/plugin.php +++ b/plugin.php @@ -11,7 +11,7 @@ * Plugin URI: https://wordpress.org/plugins/kagg-pagespeed-optimization/ * Description: Optimize scripts and styles to get higher scores of Google Pagespeed Insights * Author: KAGG Design - * Version: 1.5.0 + * Version: 1.6.0 * Author URI: https://kagg.eu/en/ * Requires at least: 5.0 * Tested up to: 6.3 @@ -29,7 +29,7 @@ /** * Plugin version */ -const KAGG_PAGESPEED_OPTIMIZATION_VERSION = '1.5.0'; +const KAGG_PAGESPEED_OPTIMIZATION_VERSION = '1.6.0'; /** * Path to the plugin dir. diff --git a/readme.txt b/readme.txt index ed99238..014a7ca 100644 --- a/readme.txt +++ b/readme.txt @@ -5,7 +5,7 @@ Tags: PageSpeed, Google Pagespeed Insights, PageSpeed Optimization Requires at least: 5.0 Tested up to: 6.3 Requires PHP: 7.0 -Stable tag: 1.5.0 +Stable tag: 1.6.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html From a5ec456196830f39416a3efc9de439a157111211 Mon Sep 17 00:00:00 2001 From: kagg-design Date: Thu, 24 Aug 2023 14:59:12 +0300 Subject: [PATCH 25/25] Block deploy to wp.org so far. --- .github/workflows/deploy-to-wp-org.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/deploy-to-wp-org.yml b/.github/workflows/deploy-to-wp-org.yml index 36d6d39..2483418 100644 --- a/.github/workflows/deploy-to-wp-org.yml +++ b/.github/workflows/deploy-to-wp-org.yml @@ -27,14 +27,14 @@ jobs: env: COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: WordPress Plugin Deploy - id: deploy - uses: 10up/action-wordpress-plugin-deploy@stable - with: - generate-zip: true - env: - SVN_USERNAME: ${{ secrets.SVN_USERNAME }} - SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} +# - name: WordPress Plugin Deploy +# id: deploy +# uses: 10up/action-wordpress-plugin-deploy@stable +# with: +# generate-zip: true +# env: +# SVN_USERNAME: ${{ secrets.SVN_USERNAME }} +# SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} - name: Upload release asset uses: softprops/action-gh-release@v1