From cfad1ab4d7851c98aa09fdbafff83c2882791894 Mon Sep 17 00:00:00 2001 From: Dennis Ploetner Date: Wed, 5 Feb 2025 12:03:01 +0100 Subject: [PATCH 1/4] Strict typing applied everywhere --- includes/Map/HrefLang.php | 2 +- includes/MslsAdmin.php | 2 +- includes/MslsAdminBar.php | 2 +- includes/MslsAdminIcon.php | 2 +- includes/MslsAdminIconTaxonomy.php | 2 +- includes/MslsBlock.php | 2 +- includes/MslsCli.php | 14 ++++++++++---- includes/MslsContentFilter.php | 2 +- includes/MslsContentTypes.php | 2 +- includes/MslsCustomColumn.php | 2 +- includes/MslsCustomColumnTaxonomy.php | 2 +- includes/MslsCustomFilter.php | 4 ++-- includes/MslsFields.php | 2 +- includes/MslsGetSet.php | 2 +- includes/MslsJson.php | 2 +- includes/MslsLanguageArray.php | 2 +- includes/MslsLink.php | 2 +- includes/MslsLinkImageOnly.php | 2 +- includes/MslsLinkTextImage.php | 2 +- includes/MslsLinkTextOnly.php | 2 +- includes/MslsMain.php | 2 +- includes/MslsOptions.php | 2 +- includes/MslsOptionsQuery.php | 2 +- includes/MslsOptionsQueryAuthor.php | 2 +- includes/MslsOptionsQueryDay.php | 2 +- includes/MslsOptionsQueryMonth.php | 2 +- includes/MslsOptionsQueryPostType.php | 2 +- includes/MslsOptionsQueryYear.php | 2 +- includes/MslsOptionsTax.php | 2 +- includes/MslsOptionsTaxTerm.php | 2 +- includes/MslsOptionsTaxTermCategory.php | 2 +- includes/MslsOutput.php | 2 +- includes/MslsPlugin.php | 2 +- includes/MslsPostTagClassic.php | 2 +- includes/MslsPostType.php | 8 +------- includes/MslsRegistry.php | 2 +- includes/MslsRegistryInstance.php | 2 +- includes/MslsRequest.php | 2 +- includes/MslsShortCode.php | 2 +- includes/MslsSqlCacher.php | 2 +- includes/MslsTaxonomy.php | 2 +- includes/MslsWidget.php | 8 +------- includes/Query/AbstractQuery.php | 2 +- includes/Query/AuthorPostsCounterQuery.php | 2 +- includes/Query/BlogsInNetworkQuery.php | 2 +- includes/Query/CleanupOptionsQuery.php | 2 +- includes/Query/DatePostsCounterQuery.php | 2 +- includes/Query/MonthPostsCounterQuery.php | 2 +- includes/Query/TranslatedPostIdQuery.php | 2 +- includes/Query/YearPostsCounterQuery.php | 2 +- tests/phpunit/TestMslsRequest.php | 8 ++++---- 51 files changed, 64 insertions(+), 70 deletions(-) diff --git a/includes/Map/HrefLang.php b/includes/Map/HrefLang.php index 5bee4338..f1b5db72 100644 --- a/includes/Map/HrefLang.php +++ b/includes/Map/HrefLang.php @@ -1,4 +1,4 @@ -render(); + echo ( new Select( MslsFields::FIELD_MSLS_FILTER, $options, strval( $id ) ) )->render(); } } diff --git a/includes/MslsFields.php b/includes/MslsFields.php index c1f76850..13876af3 100644 --- a/includes/MslsFields.php +++ b/includes/MslsFields.php @@ -1,4 +1,4 @@ - - * @since 0.9.8 - */ + - * @since 0.9.8 - */ +once()->with( INPUT_GET, MslsFields::FIELD_MSLS_ID )->andReturn( 13 ); - Functions\expect( 'filter_has_var' )->once()->with( INPUT_GET, MslsFields::FIELD_MSLS_FILTER )->andReturn( 17 ); + Functions\expect( 'filter_has_var' )->once()->with( INPUT_GET, MslsFields::FIELD_MSLS_ID )->andReturn( true ); + Functions\expect( 'filter_has_var' )->once()->with( INPUT_GET, MslsFields::FIELD_MSLS_FILTER )->andReturn( true ); $this->assertTrue( MslsRequest::isset( array( MslsFields::FIELD_MSLS_FILTER, MslsFields::FIELD_MSLS_ID ) ) ); } public function test_has_var_ok(): void { - Functions\expect( 'filter_has_var' )->once()->with( INPUT_GET, MslsFields::FIELD_MSLS_ID )->andReturn( 13 ); + Functions\expect( 'filter_has_var' )->once()->with( INPUT_GET, MslsFields::FIELD_MSLS_ID )->andReturn( true ); $this->assertTrue( MslsRequest::has_var( MslsFields::FIELD_MSLS_ID ) ); } @@ -28,7 +28,7 @@ public function test_get_var_ok(): void { } public function test_isset_ko(): void { - Functions\expect( 'filter_has_var' )->once()->with( INPUT_GET, MslsFields::FIELD_MSLS_FILTER )->andReturn( 17 ); + Functions\expect( 'filter_has_var' )->once()->with( INPUT_GET, MslsFields::FIELD_MSLS_FILTER )->andReturn( false ); $this->assertFalse( MslsRequest::isset( array( MslsFields::FIELD_MSLS_FILTER, 'non_existent_key' ) ) ); } From 3c9465cef966087bc962a64c032ded23e1658804 Mon Sep 17 00:00:00 2001 From: Dennis Ploetner Date: Wed, 5 Feb 2025 12:17:42 +0100 Subject: [PATCH 2/4] Webpack config adjusted --- js/msls-widget-block/block.json | 17 ----------------- js/msls-widget-block/render.php | 3 --- package.json | 2 +- 3 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 js/msls-widget-block/block.json delete mode 100644 js/msls-widget-block/render.php diff --git a/js/msls-widget-block/block.json b/js/msls-widget-block/block.json deleted file mode 100644 index 6cde4835..00000000 --- a/js/msls-widget-block/block.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://schemas.wp.org/trunk/block.json", - "apiVersion": 3, - "title": "Multisite Language Switcher", - "icon": "translation", - "category": "widgets", - "name": "lloc/msls-widget-block", - "version": "2.9.5", - "description": "Review the settings for the Multisite Language Switcher plugin, as the block utilizes the API function `the_msls()` for its output.", - "example": {}, - "supports": { - "html": false - }, - "textdomain": "multisite-language-switcher", - "editorScript": "file:./index.js", - "render": "file:./render.php" -} \ No newline at end of file diff --git a/js/msls-widget-block/render.php b/js/msls-widget-block/render.php deleted file mode 100644 index eeb94d12..00000000 --- a/js/msls-widget-block/render.php +++ /dev/null @@ -1,3 +0,0 @@ - js/msls.js", "less": "lessc css/msls.less css/msls.css --clean-css=\"--s1 --advanced\"", - "build-msls-block": "wp-scripts build src/msls-widget-block/index.js --webpack-src-dir=src/msls-widget-block --output-path=js/msls-widget-block", + "build-msls-block": "wp-scripts build src/msls-widget-block/index.js --output-path=js/msls-widget-block", "build": "npm run uglify && npm run less && npm run build-msls-block" }, "dependencies": { From d505b2c48e36b6460b79a12c1357d58544e2300b Mon Sep 17 00:00:00 2001 From: Dennis Ploetner Date: Wed, 5 Feb 2025 12:23:38 +0100 Subject: [PATCH 3/4] NPM packages checked --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 2635ea98..eb9c2f95 100644 --- a/package.json +++ b/package.json @@ -6,15 +6,15 @@ "build": "npm run uglify && npm run less && npm run build-msls-block" }, "dependencies": { - "less": "^4.2.0", + "less": "^4.2.2", "less-plugin-clean-css": "^1.6.0", - "uglify-js": "^3.19.0" + "uglify-js": "^3.19.3" }, "devDependencies": { - "@playwright/test": "^1.49.0", - "@types/node": "^22.10.0", - "@wordpress/e2e-test-utils": "^11.13.0", - "@wordpress/scripts": "^30.6.0", - "dotenv": "^16.4.0" + "@playwright/test": "^1.50.1", + "@types/node": "^22.13.1", + "@wordpress/e2e-test-utils": "^11.17.0", + "@wordpress/scripts": "^30.10.0", + "dotenv": "^16.4.7" } } From f36cf4de81dcf903778c97f5dc9da126cda67252 Mon Sep 17 00:00:00 2001 From: Dennis Ploetner Date: Wed, 5 Feb 2025 16:28:14 +0100 Subject: [PATCH 4/4] js folder should contain only files if build --- .gitignore | 13 +++++++------ js/msls-widget-block/index.asset.php | 1 - js/msls-widget-block/index.js | 1 - js/msls.js | 1 - package.json | 2 +- 5 files changed, 8 insertions(+), 10 deletions(-) delete mode 100644 js/msls-widget-block/index.asset.php delete mode 100644 js/msls-widget-block/index.js delete mode 100644 js/msls.js diff --git a/.gitignore b/.gitignore index 45828674..ab1b2ad0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,19 @@ .DS_Store .idea/ -.phpunit.result.cache .phpunit.cache +.phpunit.result.cache composer.lock composer.phar -multisite-language-switcher/ +js/msls-widget-block/ +js/msls.js multisite-language-switcher.zip +multisite-language-switcher/ +node_modules/ +out/ package-lock.json phpunit.xml.bak tests/coverage/ -tests/playwright-results/ tests/playwright-report/ +tests/playwright-results/ tests/playwright/.env.local -node_modules/ -out/ vendor/ - diff --git a/js/msls-widget-block/index.asset.php b/js/msls-widget-block/index.asset.php deleted file mode 100644 index 7e741285..00000000 --- a/js/msls-widget-block/index.asset.php +++ /dev/null @@ -1 +0,0 @@ - array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-server-side-render'), 'version' => 'acd5f0d3de9d6d686184'); diff --git a/js/msls-widget-block/index.js b/js/msls-widget-block/index.js deleted file mode 100644 index bfbf1f08..00000000 --- a/js/msls-widget-block/index.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e={n:t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},d:(t,o)=>{for(var r in o)e.o(o,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:o[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.blocks,o=window.wp.serverSideRender;var r=e.n(o);const s=window.wp.blockEditor,n=window.ReactJSXRuntime,c=JSON.parse('{"UU":"lloc/msls-widget-block"}');(0,t.registerBlockType)(c.UU,{edit:function(e){const t=(0,s.useBlockProps)();return(0,n.jsx)("div",{...t,children:(0,n.jsx)(r(),{block:"lloc/msls-widget-block",attributes:e.attributes})})}})})(); \ No newline at end of file diff --git a/js/msls.js b/js/msls.js deleted file mode 100644 index 14945831..00000000 --- a/js/msls.js +++ /dev/null @@ -1 +0,0 @@ -jQuery(document).ready(function($){$("input.msls_title").focus(function(){var blog_id=$(this).attr("name").slice(11);var hid_field=$("#msls_id_"+blog_id);var mslsinput={id:hid_field.val(),title:$(this).val()};$(this).select().autocomplete({minLength:0,source:function(request,response){$.ajax({url:ajaxurl,data:{post_type:$("#msls_post_type").val(),blog_id:blog_id,s:request.term,action:$("#msls_action").val()},dataType:"JSON",type:"POST",success:function(data){response(data)}})},focus:function(event,ui){$(event.target).val(ui.item.label);return false},select:function(event,ui){$(event.target).val(ui.item.label);hid_field.val(ui.item.value);return false},change:function(event,ui){if(!$(event.target).val()){hid_field.val("")}else if(mslsinput.id===hid_field.val()&&mslsinput.title!==$(event.target).val()){$(event.target).val(mslsinput.title)}return false}})})}); diff --git a/package.json b/package.json index eb9c2f95..632d272e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "scripts": { "uglify": "uglifyjs src/msls.js > js/msls.js", "less": "lessc css/msls.less css/msls.css --clean-css=\"--s1 --advanced\"", - "build-msls-block": "wp-scripts build src/msls-widget-block/index.js --output-path=js/msls-widget-block", + "build-msls-block": "wp-scripts build --webpack-src-dir=./src/msls-widget-block --output-path=js/msls-widget-block", "build": "npm run uglify && npm run less && npm run build-msls-block" }, "dependencies": {