Changeset 3046463
- Timestamp:
- 03/06/2024 05:04:03 PM (2 years ago)
- Location:
- osom-block-visibility
- Files:
-
- 21 added
- 2 deleted
- 10 edited
-
tags/1.0.1 (added)
-
tags/1.0.1/LICENSE (added)
-
tags/1.0.1/README.md (added)
-
tags/1.0.1/build (added)
-
tags/1.0.1/build/editor.asset.php (added)
-
tags/1.0.1/build/editor.css (added)
-
tags/1.0.1/build/editor.css.map (added)
-
tags/1.0.1/build/index.asset.php (added)
-
tags/1.0.1/build/index.js (added)
-
tags/1.0.1/build/index.js.map (added)
-
tags/1.0.1/build/style.asset.php (added)
-
tags/1.0.1/build/style.css (added)
-
tags/1.0.1/languages (added)
-
tags/1.0.1/languages/osom-block-visibility.pot (added)
-
tags/1.0.1/osom-block-visibility.php (added)
-
tags/1.0.1/package-lock.json (added)
-
tags/1.0.1/package.json (added)
-
tags/1.0.1/readme.txt (added)
-
tags/1.0.1/webpack.config.js (added)
-
tags/1.0/src (deleted)
-
trunk/build/editor.asset.php (modified) (1 diff)
-
trunk/build/editor.css (modified) (1 diff)
-
trunk/build/editor.css.map (added)
-
trunk/build/index.asset.php (modified) (1 diff)
-
trunk/build/index.js (modified) (1 diff)
-
trunk/build/index.js.map (added)
-
trunk/build/style.asset.php (modified) (1 diff)
-
trunk/build/style.css (modified) (1 diff)
-
trunk/osom-block-visibility.php (modified) (4 diffs)
-
trunk/package-lock.json (modified) (2 diffs)
-
trunk/package.json (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/src (deleted)
Legend:
- Unmodified
- Added
- Removed
-
osom-block-visibility/trunk/build/editor.asset.php
r3037835 r3046463 1 <?php return array('dependencies' => array(), 'version' => ' 328ff39459b34b674449');1 <?php return array('dependencies' => array(), 'version' => '5e4a06cc68e40699e3d3'); -
osom-block-visibility/trunk/build/editor.css
r3037835 r3046463 1 .responsive-controls{margin-top:16px;padding:0 16px 16px} 1 /*!****************************************************************************************************************************************************************************************************************************************!*\ 2 !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/editor.scss ***! 3 \****************************************************************************************************************************************************************************************************************************************/ 4 .responsive-controls { 5 margin-top: 16px; 6 padding: 0 16px 16px; 7 } 8 9 /*# sourceMappingURL=editor.css.map*/ -
osom-block-visibility/trunk/build/index.asset.php
r3037835 r3046463 1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-components', 'wp-hooks', 'wp-i18n'), 'version' => ' 753f585b7b92a71c3c91');1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-components', 'wp-hooks', 'wp-i18n'), 'version' => 'a27dc91b990e7644baa8'); -
osom-block-visibility/trunk/build/index.js
r3037835 r3046463 1 (()=>{"use strict";const e=window.React,o=window.wp.i18n,t=window.wp.hooks,l=window.wp.blockEditor,n=window.wp.components;(0,t.addFilter)("blocks.registerBlockType","osom-block-visibility/add-attributes",(function(e){return{...e,attributes:{...e.attributes,HideOnMobile:{type:"boolean",default:!1},HideOnDesktop:{type:"boolean",default:!1},HideToLogged:{type:"boolean",default:!1},HideToNotLogged:{type:"boolean",default:!1}}}})),(0,t.addFilter)("editor.BlockEdit","osom-block-visibility/add-inspector-controls",(function(t){return i=>{const{attributes:d,setAttributes:a}=i,{HideOnMobile:r,HideOnDesktop:c,HideToLogged:s,HideToNotLogged:g}=d;return(0,e.createElement)(e.Fragment,null,(0,e.createElement)(t,{...i}),(0,e.createElement)(l.InspectorControls,null,(0,e.createElement)(n.PanelBody,{title:"Visibility Settings",initialOpen:!1},(0,e.createElement)(n.PanelRow,null,(0,e.createElement)(n.ToggleControl,{label:(0,o.__)("Hide on desktop","hide-on-desktop"),checked:c,onChange:()=>{a({HideOnDesktop:!c})}})),(0,e.createElement)(n.PanelRow,null,(0,e.createElement)(n.ToggleControl,{label:(0,o.__)("Hide on mobile and tablet","hide-on-mobile-and-tablet"),checked:r,onChange:()=>{a({HideOnMobile:!r})}})),(0,e.createElement)(n.PanelRow,null,(0,e.createElement)(n.ToggleControl,{label:(0,o.__)("Hide to loggedin users","hide-to-loggedin-users"),checked:s,onChange:()=>{a({HideToLogged:!s})}})),(0,e.createElement)(n.PanelRow,null,(0,e.createElement)(n.ToggleControl,{label:(0,o.__)("Hide to loggedout users","hide-to-loggedout-users"),checked:g,onChange:()=>{a({HideToNotLogged:!g})}})))))}}))})(); 1 /******/ (() => { // webpackBootstrap 2 /******/ "use strict"; 3 /******/ var __webpack_modules__ = ({ 4 5 /***/ "react": 6 /*!************************!*\ 7 !*** external "React" ***! 8 \************************/ 9 /***/ ((module) => { 10 11 module.exports = window["React"]; 12 13 /***/ }), 14 15 /***/ "@wordpress/block-editor": 16 /*!*************************************!*\ 17 !*** external ["wp","blockEditor"] ***! 18 \*************************************/ 19 /***/ ((module) => { 20 21 module.exports = window["wp"]["blockEditor"]; 22 23 /***/ }), 24 25 /***/ "@wordpress/components": 26 /*!************************************!*\ 27 !*** external ["wp","components"] ***! 28 \************************************/ 29 /***/ ((module) => { 30 31 module.exports = window["wp"]["components"]; 32 33 /***/ }), 34 35 /***/ "@wordpress/hooks": 36 /*!*******************************!*\ 37 !*** external ["wp","hooks"] ***! 38 \*******************************/ 39 /***/ ((module) => { 40 41 module.exports = window["wp"]["hooks"]; 42 43 /***/ }), 44 45 /***/ "@wordpress/i18n": 46 /*!******************************!*\ 47 !*** external ["wp","i18n"] ***! 48 \******************************/ 49 /***/ ((module) => { 50 51 module.exports = window["wp"]["i18n"]; 52 53 /***/ }) 54 55 /******/ }); 56 /************************************************************************/ 57 /******/ // The module cache 58 /******/ var __webpack_module_cache__ = {}; 59 /******/ 60 /******/ // The require function 61 /******/ function __webpack_require__(moduleId) { 62 /******/ // Check if module is in cache 63 /******/ var cachedModule = __webpack_module_cache__[moduleId]; 64 /******/ if (cachedModule !== undefined) { 65 /******/ return cachedModule.exports; 66 /******/ } 67 /******/ // Create a new module (and put it into the cache) 68 /******/ var module = __webpack_module_cache__[moduleId] = { 69 /******/ // no module.id needed 70 /******/ // no module.loaded needed 71 /******/ exports: {} 72 /******/ }; 73 /******/ 74 /******/ // Execute the module function 75 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); 76 /******/ 77 /******/ // Return the exports of the module 78 /******/ return module.exports; 79 /******/ } 80 /******/ 81 /************************************************************************/ 82 /******/ /* webpack/runtime/compat get default export */ 83 /******/ (() => { 84 /******/ // getDefaultExport function for compatibility with non-harmony modules 85 /******/ __webpack_require__.n = (module) => { 86 /******/ var getter = module && module.__esModule ? 87 /******/ () => (module['default']) : 88 /******/ () => (module); 89 /******/ __webpack_require__.d(getter, { a: getter }); 90 /******/ return getter; 91 /******/ }; 92 /******/ })(); 93 /******/ 94 /******/ /* webpack/runtime/define property getters */ 95 /******/ (() => { 96 /******/ // define getter functions for harmony exports 97 /******/ __webpack_require__.d = (exports, definition) => { 98 /******/ for(var key in definition) { 99 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 100 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 101 /******/ } 102 /******/ } 103 /******/ }; 104 /******/ })(); 105 /******/ 106 /******/ /* webpack/runtime/hasOwnProperty shorthand */ 107 /******/ (() => { 108 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 109 /******/ })(); 110 /******/ 111 /******/ /* webpack/runtime/make namespace object */ 112 /******/ (() => { 113 /******/ // define __esModule on exports 114 /******/ __webpack_require__.r = (exports) => { 115 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 116 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 117 /******/ } 118 /******/ Object.defineProperty(exports, '__esModule', { value: true }); 119 /******/ }; 120 /******/ })(); 121 /******/ 122 /************************************************************************/ 123 var __webpack_exports__ = {}; 124 // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. 125 (() => { 126 /*!**********************!*\ 127 !*** ./src/index.js ***! 128 \**********************/ 129 __webpack_require__.r(__webpack_exports__); 130 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); 131 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); 132 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 133 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); 134 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks"); 135 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__); 136 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); 137 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__); 138 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 139 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__); 140 141 /** 142 * WordPress dependencies 143 */ 144 145 146 147 148 149 /** 150 * Add the attributes needed for hiding the content on mobile or desktop. 151 * 152 * @since 1.0 153 * @param {Object} settings 154 */ 155 function addAttributes(settings) { 156 // Add the attributes. 157 const blockAttributes = { 158 HideOnMobile: { 159 type: 'boolean', 160 default: false 161 }, 162 HideOnDesktop: { 163 type: 'boolean', 164 default: false 165 }, 166 HideToLogged: { 167 type: 'boolean', 168 default: false 169 }, 170 HideToNotLogged: { 171 type: 'boolean', 172 default: false 173 } 174 }; 175 const newSettings = { 176 ...settings, 177 attributes: { 178 ...settings.attributes, 179 ...blockAttributes 180 } 181 }; 182 return newSettings; 183 } 184 (0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__.addFilter)('blocks.registerBlockType', 'osom-block-visibility/add-attributes', addAttributes); 185 186 /** 187 * Filter the BlockEdit object and add a panel with the toggles that control content visibility. 188 * 189 * @since 1.0 190 * @param {Object} BlockEdit 191 */ 192 function addInspectorControls(BlockEdit) { 193 return props => { 194 const { 195 attributes, 196 setAttributes 197 } = props; 198 const { 199 HideOnMobile, 200 HideOnDesktop, 201 HideToLogged, 202 HideToNotLogged 203 } = attributes; 204 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlockEdit, { 205 ...props 206 }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.InspectorControls, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelBody, { 207 title: "Visibility Settings", 208 initialOpen: false 209 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelRow, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.ToggleControl, { 210 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Hide on desktop', 'hide-on-desktop'), 211 checked: HideOnDesktop, 212 onChange: () => { 213 setAttributes({ 214 HideOnDesktop: !HideOnDesktop 215 }); 216 } 217 })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelRow, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.ToggleControl, { 218 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Hide on mobile and tablet', 'hide-on-mobile-and-tablet'), 219 checked: HideOnMobile, 220 onChange: () => { 221 setAttributes({ 222 HideOnMobile: !HideOnMobile 223 }); 224 } 225 })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelRow, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.ToggleControl, { 226 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Hide to loggedin users', 'hide-to-loggedin-users'), 227 checked: HideToLogged, 228 onChange: checked => { 229 setAttributes({ 230 HideToLogged: !HideToLogged 231 }); 232 } 233 })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.PanelRow, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.ToggleControl, { 234 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Hide to loggedout users', 'hide-to-loggedout-users'), 235 checked: HideToNotLogged, 236 onChange: checked => { 237 setAttributes({ 238 HideToNotLogged: !HideToNotLogged 239 }); 240 } 241 }))))); 242 }; 243 } 244 (0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__.addFilter)('editor.BlockEdit', 'osom-block-visibility/add-inspector-controls', addInspectorControls); 245 })(); 246 247 /******/ })() 248 ; 249 //# sourceMappingURL=index.js.map -
osom-block-visibility/trunk/build/style.asset.php
r3037835 r3046463 1 <?php return array('dependencies' => array(), 'version' => ' 8c5b220bf6f482881a90');1 <?php return array('dependencies' => array(), 'version' => 'd06b073397679222cc39'); -
osom-block-visibility/trunk/build/style.css
r3037835 r3046463 1 /*!***************************************************************************************************************************************************************************************************************************************!*\ 2 !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/index.scss ***! 3 \***************************************************************************************************************************************************************************************************************************************/ 1 4 -
osom-block-visibility/trunk/osom-block-visibility.php
r3037868 r3046463 4 4 * Plugin URI: https://osompress.com/plugins/osom-block-visibility/ 5 5 * Description: Adds a toggle to blocks that allows you to hide the content on mobile or desktop devices. 6 * Version: 1.0 6 * Version: 1.0.1 7 7 * Requires at least: 6.3 8 8 * Requires PHP: 7.4 … … 19 19 defined( 'ABSPATH' ) || exit; 20 20 21 add_action( 'enqueue_block_editor_assets', 'osom_block_visibility_enqueue_block_editor_assets' ); 21 22 /** 22 23 * Enqueue Editor scripts and styles. … … 45 46 ); 46 47 } 47 add_action( 'enqueue_block_editor_assets', 'osom_block_visibility_enqueue_block_editor_assets' );48 48 49 add_filter( 'register_block_type_args', 'osom_add_block_attributes', 9999, 2 ); 50 /** 51 * Add block visibility attributes. 52 */ 53 function osom_add_block_attributes( $args, $blockName ) { 54 55 $block_attributes = array( 56 'HideOnMobile' => array( 57 'type' => 'boolean', 58 'default' => false, 59 ), 60 'HideOnDesktop' => array( 61 'type' => 'boolean', 62 'default' => false, 63 ), 64 'HideToLogged' => array( 65 'type' => 'boolean', 66 'default' => false, 67 ), 68 'HideToNotLogged' => array( 69 'type' => 'boolean', 70 'default' => false, 71 ), 72 ); 73 74 // Combine the existing attributes with the new attributes 75 $args['attributes'] = array_merge( isset( $args['attributes'] ) ? $args['attributes'] : array(), $block_attributes ); 76 77 return $args; 78 } 79 80 add_filter( 'render_block', 'osom_block_visibility_render_block', 10, 2 ); 49 81 /** 50 82 * Control the block visibility depending on the device. … … 70 102 return $block_content; 71 103 } 72 add_filter( 'render_block', 'osom_block_visibility_render_block', 10, 2 ); 104 105 add_filter( 'rest_pre_dispatch', 'osom_conditionally_remove_attributes', 10, 3 ); 106 /** 107 * Fix REST API issue with blocks rendered server-side. 108 */ 109 function osom_conditionally_remove_attributes( $result, $server, $request ) { 110 if ( strpos( $request->get_route(), '/wp/v2/block-renderer' ) !== false ) { 111 if ( isset( $request['attributes'] ) && isset( $request['attributes']['HideOnDesktop'] ) ) { 112 $attributes = $request['attributes']; 113 unset( $attributes['HideOnDesktop'] ); 114 $request['attributes'] = $attributes; 115 } 116 if ( isset( $request['attributes'] ) && isset( $request['attributes']['HideToLogged'] ) ) { 117 $attributes = $request['attributes']; 118 unset( $attributes['HideToLogged'] ); 119 $request['attributes'] = $attributes; 120 } 121 } 122 return $result; 123 } -
osom-block-visibility/trunk/package-lock.json
r3037835 r3046463 1 1 { 2 2 "name": "osom-block-visibility", 3 "version": " 0.1.0",3 "version": "1.0.1", 4 4 "lockfileVersion": 2, 5 5 "requires": true, … … 7 7 "": { 8 8 "name": "osom-block-visibility", 9 "version": " 0.1.0",9 "version": "1.0.1", 10 10 "license": "GPL-2.0-or-later", 11 11 "devDependencies": { -
osom-block-visibility/trunk/package.json
r3037835 r3046463 1 1 { 2 2 "name": "osom-block-visibility", 3 "version": "1.0 ",3 "version": "1.0.1", 4 4 "description": "Osom Block Visibility lets you easily control block visibility from WordPress Block Editor.", 5 5 "author": "OsomPress", -
osom-block-visibility/trunk/readme.txt
r3041918 r3046463 5 5 Requires at least: 6.3 6 6 Tested up to: 6.4 7 Stable tag: 1.0 7 Stable tag: 1.0.1 8 8 Requires PHP: 7.4 9 9 License: GPLv2 or later … … 96 96 == Changelog == 97 97 98 = 1.0.1 = 99 * Fix issues with server-side registered blocks. 100 98 101 = 1.0 = 99 102 * Initial release.
Note: See TracChangeset
for help on using the changeset viewer.