Plugin Directory

Changeset 3046463


Ignore:
Timestamp:
03/06/2024 05:04:03 PM (2 years ago)
Author:
osompress
Message:

update to 1.0.1

Location:
osom-block-visibility
Files:
21 added
2 deleted
10 edited

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
     11module.exports = window["React"];
     12
     13/***/ }),
     14
     15/***/ "@wordpress/block-editor":
     16/*!*************************************!*\
     17  !*** external ["wp","blockEditor"] ***!
     18  \*************************************/
     19/***/ ((module) => {
     20
     21module.exports = window["wp"]["blockEditor"];
     22
     23/***/ }),
     24
     25/***/ "@wordpress/components":
     26/*!************************************!*\
     27  !*** external ["wp","components"] ***!
     28  \************************************/
     29/***/ ((module) => {
     30
     31module.exports = window["wp"]["components"];
     32
     33/***/ }),
     34
     35/***/ "@wordpress/hooks":
     36/*!*******************************!*\
     37  !*** external ["wp","hooks"] ***!
     38  \*******************************/
     39/***/ ((module) => {
     40
     41module.exports = window["wp"]["hooks"];
     42
     43/***/ }),
     44
     45/***/ "@wordpress/i18n":
     46/*!******************************!*\
     47  !*** external ["wp","i18n"] ***!
     48  \******************************/
     49/***/ ((module) => {
     50
     51module.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/************************************************************************/
     123var __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 */
     155function 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 */
     192function 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  \***************************************************************************************************************************************************************************************************************************************/
    14
  • osom-block-visibility/trunk/osom-block-visibility.php

    r3037868 r3046463  
    44 * Plugin URI:          https://osompress.com/plugins/osom-block-visibility/
    55 * 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
    77 * Requires at least:   6.3
    88 * Requires PHP:        7.4
     
    1919defined( 'ABSPATH' ) || exit;
    2020
     21add_action( 'enqueue_block_editor_assets', 'osom_block_visibility_enqueue_block_editor_assets' );
    2122/**
    2223 * Enqueue Editor scripts and styles.
     
    4546    );
    4647}
    47 add_action( 'enqueue_block_editor_assets', 'osom_block_visibility_enqueue_block_editor_assets' );
    4848
     49add_filter( 'register_block_type_args', 'osom_add_block_attributes', 9999, 2 );
     50/**
     51 * Add block visibility attributes.
     52 */
     53function 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
     80add_filter( 'render_block', 'osom_block_visibility_render_block', 10, 2 );
    4981/**
    5082 * Control the block visibility depending on the device.
     
    70102    return $block_content;
    71103}
    72 add_filter( 'render_block', 'osom_block_visibility_render_block', 10, 2 );
     104
     105add_filter( 'rest_pre_dispatch', 'osom_conditionally_remove_attributes', 10, 3 );
     106/**
     107 * Fix REST API issue with blocks rendered server-side.
     108 */
     109function 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  
    11{
    22  "name": "osom-block-visibility",
    3   "version": "0.1.0",
     3  "version": "1.0.1",
    44  "lockfileVersion": 2,
    55  "requires": true,
     
    77    "": {
    88      "name": "osom-block-visibility",
    9       "version": "0.1.0",
     9      "version": "1.0.1",
    1010      "license": "GPL-2.0-or-later",
    1111      "devDependencies": {
  • osom-block-visibility/trunk/package.json

    r3037835 r3046463  
    11{
    22  "name": "osom-block-visibility",
    3   "version": "1.0",
     3  "version": "1.0.1",
    44  "description": "Osom Block Visibility lets you easily control block visibility from WordPress Block Editor.",
    55  "author": "OsomPress",
  • osom-block-visibility/trunk/readme.txt

    r3041918 r3046463  
    55Requires at least: 6.3
    66Tested up to: 6.4
    7 Stable tag: 1.0
     7Stable tag: 1.0.1
    88Requires PHP: 7.4
    99License: GPLv2 or later
     
    9696== Changelog ==
    9797
     98= 1.0.1 =
     99* Fix issues with server-side registered blocks.
     100
    98101= 1.0 =
    99102* Initial release.
Note: See TracChangeset for help on using the changeset viewer.