Changeset 3689958
- Timestamp:
- 09/10/2026 01:19:12 PM (6 weeks ago)
- Location:
- voordemensen
- Files:
-
- 4 edited
- 9 copied
-
tags/2.1.4 (copied) (copied from voordemensen/trunk )
-
tags/2.1.4/css (copied) (copied from voordemensen/trunk/css )
-
tags/2.1.4/js (copied) (copied from voordemensen/trunk/js )
-
tags/2.1.4/js/vdm_adminscript.js (modified) (2 diffs)
-
tags/2.1.4/js/vdm_session.js (copied) (copied from voordemensen/trunk/js/vdm_session.js )
-
tags/2.1.4/readme.txt (copied) (copied from voordemensen/trunk/readme.txt ) (2 diffs)
-
tags/2.1.4/voordemensen.php (copied) (copied from voordemensen/trunk/voordemensen.php ) (3 diffs)
-
tags/2.1.4/voordemensen_admin.php (copied) (copied from voordemensen/trunk/voordemensen_admin.php )
-
tags/2.1.4/voordemensen_metaboxes.php (copied) (copied from voordemensen/trunk/voordemensen_metaboxes.php )
-
tags/2.1.4/voordemensen_shortcodes.php (copied) (copied from voordemensen/trunk/voordemensen_shortcodes.php )
-
trunk/js/vdm_adminscript.js (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/voordemensen.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
voordemensen/tags/2.1.4/js/vdm_adminscript.js
r3098862 r3689958 4 4 * @fires createNotice 5 5 */ 6 const unsubscribe = wp.data.subscribe(function () { 7 let select = wp.data.select('core/editor'); 8 var isSavingPost = select.isSavingPost(); 9 var isAutosavingPost = select.isAutosavingPost(); 10 var didPostSaveRequestSucceed = select.didPostSaveRequestSucceed(); 11 var EditedPostContent = select.getEditedPostContent(); 12 if (isSavingPost && !isAutosavingPost && didPostSaveRequestSucceed) { 13 if(EditedPostContent.includes('[vdm') && !jQuery('#voordemensen_event_id').val()) { 6 ( function ( wp ) { 7 if ( ! wp || ! wp.data || typeof wp.data.subscribe !== 'function' ) { 8 return; 9 } 10 11 var unsubscribe = wp.data.subscribe( function () { 12 // Other plugins' stores (e.g. Yoast SEO) can emit before 'core/editor' is registered, 13 // and some editor screens never register it at all. Never throw inside a subscriber: 14 // an exception here aborts wp.data's listener loop and breaks every other plugin 15 // that subscribed to the same store. 16 var editor = wp.data.select( 'core/editor' ); 17 if ( ! editor || typeof editor.isSavingPost !== 'function' ) { 18 return; 19 } 20 21 if ( ! editor.isSavingPost() || editor.isAutosavingPost() || ! editor.didPostSaveRequestSucceed() ) { 22 return; 23 } 24 25 var content = editor.getEditedPostContent() || ''; 26 var eventField = document.getElementById( 'voordemensen_event_id' ); 27 var eventId = eventField ? eventField.value : ''; 28 29 if ( content.indexOf( '[vdm' ) !== -1 && ! eventId ) { 14 30 unsubscribe(); 15 jQuery('#voordemensen_event_id').focus(); 16 ( function( wp ) { 17 wp.data.dispatch( 'core/notices' ).createNotice( 31 if ( eventField ) { 32 eventField.focus(); 33 } 34 var notices = wp.data.dispatch( 'core/notices' ); 35 if ( notices && typeof notices.createNotice === 'function' ) { 36 notices.createNotice( 18 37 'error', 19 'Let op: je gebruikt een VoordeMensen-shortcode terwijl deze post niet aan een VoordeMensen Evenement is gekoppeld!', 38 'Let op: je gebruikt een VoordeMensen-shortcode terwijl deze post niet aan een VoordeMensen Evenement is gekoppeld!', 20 39 { 21 40 isDismissible: true, … … 23 42 } 24 43 ); 25 } )( window.wp );26 } 27 } 28 } );44 } 45 } 46 } ); 47 } )( window.wp ); -
voordemensen/tags/2.1.4/readme.txt
r3645103 r3689958 6 6 Tested up to: 7.1 7 7 Requires PHP: 7.4 8 Stable tag: 2.1. 38 Stable tag: 2.1.4 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 62 62 == Changelog == 63 63 64 = 2.1.4 = 65 Fixed: since 2.1.3 the block editor's save-warning script could break other plugins' editor UI (reported with Yoast SEO: its dropdowns no longer opened) with the console error "Cannot read properties of undefined (reading 'isSavingPost')". The script subscribed to wp.data and read the 'core/editor' store unguarded; when another plugin's store updated before 'core/editor' was registered, the callback threw and aborted wp.data's listener loop for everyone. The script now checks that the store exists before using it, declares its wp-data / wp-notices dependencies, and is only loaded in the block editor of a post or page. 66 64 67 = 2.1.3 = 65 68 Fixed: the editor save-warning that flags a VoordeMensen shortcode on a post with no linked event never appeared, because its admin script was enqueued under a handle it was not registered with, so the script never loaded. It now works in the block editor. -
voordemensen/tags/2.1.4/voordemensen.php
r3645103 r3689958 4 4 * Plugin URI: https://github.com/VoordeMensen/wordpress-plugin 5 5 * Description: Verbind WordPress met het VoordeMensen kaartverkoopsysteem 6 * Version: 2.1. 36 * Version: 2.1.4 7 7 * Requires at least: 5.0 8 8 * Requires PHP: 7.4 … … 158 158 add_action('init', 'voordemensen_register_script'); 159 159 function voordemensen_register_script(){ 160 wp_register_script( 'vdm_script', plugins_url('/js/vdm_script.js', __FILE__), array('jquery'), '2.1. 3', true );160 wp_register_script( 'vdm_script', plugins_url('/js/vdm_script.js', __FILE__), array('jquery'), '2.1.4', true ); 161 161 } 162 162 add_action('admin_init', 'voordemensen_register_adminscript'); 163 163 function voordemensen_register_adminscript() { 164 wp_register_script( 'vdm_adminscript', plugins_url('/js/vdm_adminscript.js', __FILE__), array('jquery'), '2.1.3', true); 164 // Uses wp.data (core/editor + core/notices); depend on those handles so load order is guaranteed. 165 wp_register_script( 'vdm_adminscript', plugins_url('/js/vdm_adminscript.js', __FILE__), array('wp-data', 'wp-notices'), '2.1.4', true); 165 166 } 166 167 … … 171 172 } 172 173 174 // The save-warning script only makes sense in the block editor of a post/page: 175 // enqueue_block_editor_assets fires only when the block editor is loaded, and the 176 // screen check skips the site editor / widgets screen where 'core/editor' does not exist. 177 add_action( 'enqueue_block_editor_assets', 'voordemensen_enqueue_block_editor_script' ); 178 function voordemensen_enqueue_block_editor_script() { 179 $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null; 180 if ( $screen && 'post' !== $screen->base ) { 181 return; 182 } 183 wp_enqueue_script( 'vdm_adminscript' ); 184 } 185 173 186 function voordemensen_admin_queue( $hook ) { 174 global $post;175 if ( $hook == 'post-new.php' || $hook == 'post.php' ) {176 wp_enqueue_script('vdm_adminscript');177 }178 179 187 // Register and enqueue the external CSS file 180 wp_register_style('voordemensen_admin_style', plugins_url('css/admin-style.css', __FILE__), array(), '2.1. 3');188 wp_register_style('voordemensen_admin_style', plugins_url('css/admin-style.css', __FILE__), array(), '2.1.4'); 181 189 wp_enqueue_style('voordemensen_admin_style'); 182 190 } -
voordemensen/trunk/js/vdm_adminscript.js
r3098862 r3689958 4 4 * @fires createNotice 5 5 */ 6 const unsubscribe = wp.data.subscribe(function () { 7 let select = wp.data.select('core/editor'); 8 var isSavingPost = select.isSavingPost(); 9 var isAutosavingPost = select.isAutosavingPost(); 10 var didPostSaveRequestSucceed = select.didPostSaveRequestSucceed(); 11 var EditedPostContent = select.getEditedPostContent(); 12 if (isSavingPost && !isAutosavingPost && didPostSaveRequestSucceed) { 13 if(EditedPostContent.includes('[vdm') && !jQuery('#voordemensen_event_id').val()) { 6 ( function ( wp ) { 7 if ( ! wp || ! wp.data || typeof wp.data.subscribe !== 'function' ) { 8 return; 9 } 10 11 var unsubscribe = wp.data.subscribe( function () { 12 // Other plugins' stores (e.g. Yoast SEO) can emit before 'core/editor' is registered, 13 // and some editor screens never register it at all. Never throw inside a subscriber: 14 // an exception here aborts wp.data's listener loop and breaks every other plugin 15 // that subscribed to the same store. 16 var editor = wp.data.select( 'core/editor' ); 17 if ( ! editor || typeof editor.isSavingPost !== 'function' ) { 18 return; 19 } 20 21 if ( ! editor.isSavingPost() || editor.isAutosavingPost() || ! editor.didPostSaveRequestSucceed() ) { 22 return; 23 } 24 25 var content = editor.getEditedPostContent() || ''; 26 var eventField = document.getElementById( 'voordemensen_event_id' ); 27 var eventId = eventField ? eventField.value : ''; 28 29 if ( content.indexOf( '[vdm' ) !== -1 && ! eventId ) { 14 30 unsubscribe(); 15 jQuery('#voordemensen_event_id').focus(); 16 ( function( wp ) { 17 wp.data.dispatch( 'core/notices' ).createNotice( 31 if ( eventField ) { 32 eventField.focus(); 33 } 34 var notices = wp.data.dispatch( 'core/notices' ); 35 if ( notices && typeof notices.createNotice === 'function' ) { 36 notices.createNotice( 18 37 'error', 19 'Let op: je gebruikt een VoordeMensen-shortcode terwijl deze post niet aan een VoordeMensen Evenement is gekoppeld!', 38 'Let op: je gebruikt een VoordeMensen-shortcode terwijl deze post niet aan een VoordeMensen Evenement is gekoppeld!', 20 39 { 21 40 isDismissible: true, … … 23 42 } 24 43 ); 25 } )( window.wp );26 } 27 } 28 } );44 } 45 } 46 } ); 47 } )( window.wp ); -
voordemensen/trunk/readme.txt
r3645103 r3689958 6 6 Tested up to: 7.1 7 7 Requires PHP: 7.4 8 Stable tag: 2.1. 38 Stable tag: 2.1.4 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 62 62 == Changelog == 63 63 64 = 2.1.4 = 65 Fixed: since 2.1.3 the block editor's save-warning script could break other plugins' editor UI (reported with Yoast SEO: its dropdowns no longer opened) with the console error "Cannot read properties of undefined (reading 'isSavingPost')". The script subscribed to wp.data and read the 'core/editor' store unguarded; when another plugin's store updated before 'core/editor' was registered, the callback threw and aborted wp.data's listener loop for everyone. The script now checks that the store exists before using it, declares its wp-data / wp-notices dependencies, and is only loaded in the block editor of a post or page. 66 64 67 = 2.1.3 = 65 68 Fixed: the editor save-warning that flags a VoordeMensen shortcode on a post with no linked event never appeared, because its admin script was enqueued under a handle it was not registered with, so the script never loaded. It now works in the block editor. -
voordemensen/trunk/voordemensen.php
r3645103 r3689958 4 4 * Plugin URI: https://github.com/VoordeMensen/wordpress-plugin 5 5 * Description: Verbind WordPress met het VoordeMensen kaartverkoopsysteem 6 * Version: 2.1. 36 * Version: 2.1.4 7 7 * Requires at least: 5.0 8 8 * Requires PHP: 7.4 … … 158 158 add_action('init', 'voordemensen_register_script'); 159 159 function voordemensen_register_script(){ 160 wp_register_script( 'vdm_script', plugins_url('/js/vdm_script.js', __FILE__), array('jquery'), '2.1. 3', true );160 wp_register_script( 'vdm_script', plugins_url('/js/vdm_script.js', __FILE__), array('jquery'), '2.1.4', true ); 161 161 } 162 162 add_action('admin_init', 'voordemensen_register_adminscript'); 163 163 function voordemensen_register_adminscript() { 164 wp_register_script( 'vdm_adminscript', plugins_url('/js/vdm_adminscript.js', __FILE__), array('jquery'), '2.1.3', true); 164 // Uses wp.data (core/editor + core/notices); depend on those handles so load order is guaranteed. 165 wp_register_script( 'vdm_adminscript', plugins_url('/js/vdm_adminscript.js', __FILE__), array('wp-data', 'wp-notices'), '2.1.4', true); 165 166 } 166 167 … … 171 172 } 172 173 174 // The save-warning script only makes sense in the block editor of a post/page: 175 // enqueue_block_editor_assets fires only when the block editor is loaded, and the 176 // screen check skips the site editor / widgets screen where 'core/editor' does not exist. 177 add_action( 'enqueue_block_editor_assets', 'voordemensen_enqueue_block_editor_script' ); 178 function voordemensen_enqueue_block_editor_script() { 179 $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null; 180 if ( $screen && 'post' !== $screen->base ) { 181 return; 182 } 183 wp_enqueue_script( 'vdm_adminscript' ); 184 } 185 173 186 function voordemensen_admin_queue( $hook ) { 174 global $post;175 if ( $hook == 'post-new.php' || $hook == 'post.php' ) {176 wp_enqueue_script('vdm_adminscript');177 }178 179 187 // Register and enqueue the external CSS file 180 wp_register_style('voordemensen_admin_style', plugins_url('css/admin-style.css', __FILE__), array(), '2.1. 3');188 wp_register_style('voordemensen_admin_style', plugins_url('css/admin-style.css', __FILE__), array(), '2.1.4'); 181 189 wp_enqueue_style('voordemensen_admin_style'); 182 190 }
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)