Compare commits

..

No commits in common. "00ab82a35da0e5960f7b21ce70a61ff34add4add" and "3458b724be094abe56ee330a8f823badc170a08b" have entirely different histories.

16 changed files with 166 additions and 582 deletions

View File

@ -1,32 +1,5 @@
# Notice Manager Changelog # Notice Manager Changelog
## 0.27
Release date: Sep 7 2024
### Dependencies
- Composer config: `prepend-autoloader: false` - Give precedence to other composer installations if present.
## 0.26
Release date: Sep 1 2024
### Changed
- Use Mutation Observer instead of deprecated `DOMNodeRemoved` event.
### Added
- Add method `NoticeManager.bootstrap()` to initialize Notice manager.
## 0.25
Release date: Feb 18 2024
### Fixed
- Fix fatal error `Class "WPHelper\MetaBox" not found` due to dependency `abuyoyo/adminmenupage` < 0.29 not requiring dependency `abuyoyo/metabox`.
### Dependencies
- Library WPHelper\AdminPage (`abuyoyo/adminmenupage`) updated to 0.29. Requires `abuyoyo/metabox`.
## 0.24 ## 0.24
Release date: Oct 4 2023 Release date: Oct 4 2023

View File

@ -2,7 +2,7 @@
"name": "abuyoyo/notice-manager", "name": "abuyoyo/notice-manager",
"description": "Manage notices on WordPress admin pages. Adds 'Notices' screen-meta-link.", "description": "Manage notices on WordPress admin pages. Adds 'Notices' screen-meta-link.",
"type": "wordpress-plugin", "type": "wordpress-plugin",
"version": "0.27", "version": "0.24",
"repositories": [ "repositories": [
{ {
"type": "vcs", "type": "vcs",
@ -13,8 +13,5 @@
"abuyoyo/screen-meta-links": "~0.13", "abuyoyo/screen-meta-links": "~0.13",
"abuyoyo/plugincore": "~0.27", "abuyoyo/plugincore": "~0.27",
"abuyoyo/adminmenupage": "~0.29" "abuyoyo/adminmenupage": "~0.29"
},
"config": {
"prepend-autoloader": false
} }
} }

50
composer.lock generated
View File

@ -4,25 +4,22 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "b1a74cf1316f5dd317f70efeb60d9f4d", "content-hash": "4ad7c014df793fb15d9b01b71d7a7acf",
"packages": [ "packages": [
{ {
"name": "abuyoyo/adminmenupage", "name": "abuyoyo/adminmenupage",
"version": "0.29", "version": "0.28",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/abuyoyo/AdminMenuPage.git", "url": "https://github.com/abuyoyo/AdminMenuPage.git",
"reference": "4cd47d5217ca25ed17af76f5fdbab3cab3b37ef8" "reference": "c16d80ebbe1cc112acd3e5eca2f97e7abd017d29"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/abuyoyo/AdminMenuPage/zipball/4cd47d5217ca25ed17af76f5fdbab3cab3b37ef8", "url": "https://api.github.com/repos/abuyoyo/AdminMenuPage/zipball/c16d80ebbe1cc112acd3e5eca2f97e7abd017d29",
"reference": "4cd47d5217ca25ed17af76f5fdbab3cab3b37ef8", "reference": "c16d80ebbe1cc112acd3e5eca2f97e7abd017d29",
"shasum": "" "shasum": ""
}, },
"require": {
"abuyoyo/metabox": "~0.8"
},
"suggest": { "suggest": {
"abuyoyo/plugincore": "~0.26", "abuyoyo/plugincore": "~0.26",
"cmb2/cmb2": "~2.9" "cmb2/cmb2": "~2.9"
@ -43,40 +40,9 @@
"description": "WordPress admin menu page helper class", "description": "WordPress admin menu page helper class",
"support": { "support": {
"issues": "https://github.com/abuyoyo/AdminMenuPage/issues", "issues": "https://github.com/abuyoyo/AdminMenuPage/issues",
"source": "https://github.com/abuyoyo/AdminMenuPage/tree/0.29" "source": "https://github.com/abuyoyo/AdminMenuPage/tree/0.28"
}, },
"time": "2023-10-05T00:00:00+00:00" "time": "2023-10-04T00:00:00+00:00"
},
{
"name": "abuyoyo/metabox",
"version": "0.8",
"source": {
"type": "git",
"url": "https://github.com/abuyoyo/MetaBox.git",
"reference": "98cb4c30db4c366c0d273985eb9c31ffa1cd78f9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/abuyoyo/MetaBox/zipball/98cb4c30db4c366c0d273985eb9c31ffa1cd78f9",
"reference": "98cb4c30db4c366c0d273985eb9c31ffa1cd78f9",
"shasum": ""
},
"type": "library",
"autoload": {
"psr-4": {
"WPHelper\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "WordPress metabox helper class",
"support": {
"issues": "https://github.com/abuyoyo/MetaBox/issues",
"source": "https://github.com/abuyoyo/MetaBox/tree/0.8"
},
"time": "2023-07-18T19:14:03+00:00"
}, },
{ {
"name": "abuyoyo/plugincore", "name": "abuyoyo/plugincore",
@ -146,7 +112,7 @@
"minimum-stability": "stable", "minimum-stability": "stable",
"stability-flags": [], "stability-flags": [],
"prefer-stable": false, "prefer-stable": false,
"prefer-lowest": true, "prefer-lowest": false,
"platform": [], "platform": [],
"platform-dev": [], "platform-dev": [],
"plugin-api-version": "2.3.0" "plugin-api-version": "2.3.0"

View File

@ -2,26 +2,27 @@
* NoticeManager class/module * NoticeManager class/module
* *
*/ */
const NoticeManager = function ($) { var NoticeManager = (function ($, document) {
let options = window.notice_manager_options
const selectors_notice = [ let selectors_notice = [
"div.notice", "div.notice",
"div.updated", "div.updated",
] ]
const selectors_warning = [ let selectors_warning = [
"div.notice-warning", "div.notice-warning",
"div.update-nag", "div.update-nag",
] ]
const selectors_error = [ let selectors_error = [
"div.error", "div.error",
"div.notice-error", "div.notice-error",
] ]
const selectors_all = selectors_notice.concat(selectors_warning, selectors_error) let selectors_all = selectors_notice.concat(selectors_warning, selectors_error)
const selectors_skip = [ let selectors_skip = [
".inline", ".inline",
".below-h2", ".below-h2",
".theme-info .notice", ".theme-info .notice",
@ -29,133 +30,136 @@ const NoticeManager = function ($) {
] ]
// wait function used with autoCollapse // wait function used with autoCollapse
const wait = function (ms) { let wait = function (ms) {
var dfd = $.Deferred() var dfd = $.Deferred()
setTimeout(dfd.resolve, ms) //callback, timeout till callback setTimeout(dfd.resolve, ms) //callback, timeout till callback
return dfd.promise() return dfd.promise()
} }
const options = window.notice_manager_options
let notices let notices
let button let button
let panel let panel
let haveClosed // set to true on first close/collect
let dismissNoticesButton let dismissNoticesButton
let haveClosed // set to true on first close/collect // bootstrap
let panelObserver // some of these need to run BEFORE document.ready - don't know why really
button = $("#meta-link-notices")
panel = $("#meta-link-notices-wrap")
haveClosed = false
dismissNoticesButton = $("#meta-link-notices-wrap button.notice-dismiss")
dismissNoticesButton.on("click", () => {
screenMeta.close(panel, button)
if (! haveClosed){
NoticeManager.collectNotices()
}
NoticeManager.addCounter()
})
//original wp focus on click function
button.on("focus.scroll-into-view", (e) => {
if (e.target.scrollIntoView) e.target.scrollIntoView(false)
})
// scroll page to top when closing notice panel
// function used to work with $(this)
// using e.target instead
// not sure if this should perhaps be e.currentTarget
button.on("click", (e) => {
if ($(e.target).hasClass("screen-meta-active")) {
if (haveClosed) {
NoticeManager.addCounter()
}
// $(window).scrollTop(true)
} else {
NoticeManager.removeCounter()
// wait (500).then(function(){ //still jumpy sometimes - but scrolls to correct position 400 ~ 600
// $(window).scrollTop(true)
// })
}
})
/**
* document.on.ready
*/
$(() => {
console.log("NoticeManager.on.ready")
console.log("options")
console.log(options)
// bootstrap notices
// get all notices that are not explicitly marked as `.inline` or `.below-h2`
// we add .update-nag.inline for WordPress Update notice
notices = $( selectors_all.join(', ') )
.not(selectors_skip.join(', '))
.add("div.update-nag")
/**
* Remove panel if there are no notices on this page
*/
if (options.screen_panel) {
NoticeManager.maybeRemoveNoticesPanel()
}
if (options.screen_panel && options.auto_collect) {
NoticeManager.collectNotices()
} else {
if (options.above_title) {
NoticeManager.moveAboveTitle()
}
}
/**
* auto-open notices panel
*/
if (button.length && ! options.distraction_free) {
panel.toggle()
button.addClass("screen-meta-active")
screenMeta.open(panel, button)
}
/**
* auto-close notices panel after short delay
* only auto-close if we have collected notices previously
* only auto-close if no error messages
*/
if (options.auto_collapse && ! options.distraction_free) {
wait(4000).then(() => {
if (haveClosed && NoticeManager.getNoticesTopPriority() != 'error') {
screenMeta.close(panel, button)
NoticeManager.addCounter()
}
})
}
if (options.distraction_free) {
NoticeManager.addCounterWhenClosed()
}
}) // end document.on.ready
// prevent jumpy scrollRestoration on reload page
// fixed below on 'beforeunload'
// if (history.scrollRestoration) {
// history.scrollRestoration = 'manual'
//}
/**
* Set history.scrollTop to prevent jump on page refresh when scrollRestoration = auto
*/
$(window).on("beforeunload", () => {
history.pushState(
{ scrollTop: document.body.scrollTop },
document.title,
document.location.pathname
)
})
return { return {
bootstrap: () => {
// Init selectors
button = $("#meta-link-notices")
panel = $("#meta-link-notices-wrap")
dismissNoticesButton = $("#meta-link-notices-wrap button.notice-dismiss")
// bootstrap notices
// get all notices that are not explicitly marked as `.inline` or `.below-h2`
// we add .update-nag.inline for WordPress Update notice
notices = $(selectors_all.join(', '))
.not(selectors_skip.join(', '))
.add("div.update-nag")
// Set state
haveClosed = false
dismissNoticesButton.on("click", () => {
screenMeta.close(panel, button)
if (!haveClosed) {
NoticeManager.collectNotices()
}
NoticeManager.addCounter()
})
//original wp focus on click function
button.on("focus.scroll-into-view", (e) => {
if (e.target.scrollIntoView) e.target.scrollIntoView(false)
})
// scroll page to top when closing notice panel
// function used to work with $(this)
// using e.target instead
// not sure if this should perhaps be e.currentTarget
button.on("click", (e) => {
if ($(e.target).hasClass("screen-meta-active")) {
if (haveClosed) {
NoticeManager.addCounter()
}
// $(window).scrollTop(true)
} else {
NoticeManager.removeCounter()
// wait (500).then(function(){ //still jumpy sometimes - but scrolls to correct position 400 ~ 600
// $(window).scrollTop(true)
// })
}
})
// prevent jumpy scrollRestoration on reload page
// fixed below on 'beforeunload'
// if (history.scrollRestoration) {
// history.scrollRestoration = 'manual'
//}
/**
* Set history.scrollTop to prevent jump on page refresh when scrollRestoration = auto
*/
$(window).on('beforeunload', () => history.pushState(
{ scrollTop: document.body.scrollTop },
document.title,
document.location.pathname
)
)
/**
* Remove panel if there are no notices on this page
*/
if (options.screen_panel) {
NoticeManager.maybeRemoveNoticesPanel()
}
if (options.screen_panel && options.auto_collect) {
NoticeManager.collectNotices()
} else {
if (options.above_title) {
NoticeManager.moveAboveTitle()
}
}
/**
* auto-open notices panel
*/
if (button.length && !options.distraction_free) {
panel.toggle()
button.addClass("screen-meta-active")
screenMeta.open(panel, button)
}
/**
* auto-close notices panel after short delay
* only auto-close if we have collected notices previously
* only auto-close if no error messages
*/
if (options.auto_collapse && !options.distraction_free) {
wait(4000).then(() => {
if (haveClosed && NoticeManager.getNoticesTopPriority() != 'error') {
screenMeta.close(panel, button)
NoticeManager.addCounter()
}
})
}
if (options.distraction_free) {
NoticeManager.addCounterWhenClosed()
}
},
getNotices: () => notices, getNotices: () => notices,
getNoticesTopPriority: () => { getNoticesTopPriority: () => {
@ -193,18 +197,20 @@ const NoticeManager = function ($) {
* When dismissible notices are dismissed, check if any notices are left on page. * When dismissible notices are dismissed, check if any notices are left on page.
* If no notices are left - remove Notice Panel entirely * If no notices are left - remove Notice Panel entirely
*/ */
panelObserver = new MutationObserver(() => { $(document).on(
notices = panel "DOMNodeRemoved",
.find(selectors_all.join(", ")) "#meta-link-notices-wrap div.notice",
.filter(":visible") () => {
NoticeManager.maybeRemoveNoticesPanel() notices = panel
}); .find(selectors_all.join(", "))
panelObserver.observe(panel.get(0), { childList: true, subtree: true }); // only run once .filter(":visible")
NoticeManager.maybeRemoveNoticesPanel()
}
)
}, },
addCounter: () => { addCounter: () => {
if (!button.children('.plugin-count').length) { if (!button.children('.plugin-count').length){
button.append( button.append(
$("<span/>").text(notices.filter(":visible").length).attr({ $("<span/>").text(notices.filter(":visible").length).attr({
class: "plugin-count", class: "plugin-count",
@ -217,7 +223,7 @@ const NoticeManager = function ($) {
* cannot rely on filter(:visible) * cannot rely on filter(:visible)
*/ */
addCounterWhenClosed: () => { addCounterWhenClosed: () => {
if (!button.children('.plugin-count').length) { if (!button.children('.plugin-count').length){
button.append( button.append(
$("<span/>").text(notices.length).attr({ $("<span/>").text(notices.length).attr({
class: "plugin-count", class: "plugin-count",
@ -241,7 +247,7 @@ const NoticeManager = function ($) {
$("#meta-link-notices-link-wrap").detach() $("#meta-link-notices-link-wrap").detach()
$("#meta-link-notices-wrap").detach() $("#meta-link-notices-wrap").detach()
if ($("#screen-meta-links").children().length == 0) { if ($("#screen-meta-links").children().length == 0){
$("#screen-meta-links").detach() $("#screen-meta-links").detach()
} }
} }
@ -256,6 +262,4 @@ const NoticeManager = function ($) {
notices.insertBefore(".wrap:first") notices.insertBefore(".wrap:first")
}, },
} }
}(jQuery); }(jQuery,document) )
jQuery(NoticeManager.bootstrap);

View File

@ -2,7 +2,7 @@
/** /**
* Plugin Name: Notice Manager * Plugin Name: Notice Manager
* Description: Manage notices on WordPress admin pages. Adds 'Notices' screen-meta-link panel to collect notices from page. * Description: Manage notices on WordPress admin pages. Adds 'Notices' screen-meta-link panel to collect notices from page.
* Version: 0.27 * Version: 0.24
* Author: abuyoyo * Author: abuyoyo
* Author URI: https://github.com/abuyoyo/ * Author URI: https://github.com/abuyoyo/
* Plugin URI: https://github.com/abuyoyo/notice-manager * Plugin URI: https://github.com/abuyoyo/notice-manager

View File

@ -1,15 +1,6 @@
# Changelog # Changelog
WPHelper\AdminMenuPage WPHelper\AdminMenuPage
## 0.29
Release date: Oct 5 2023
### Fixed
- `composer.json` - Require `abuyoyo/metabox`. WPHelper\Metabox has been a required library since 0.25.
### Dependencies
- lib: WPHelper\Metabox (`abuyoyo/metabox`) ~0.8.
## 0.28 ## 0.28
Release date: Oct 4 2023 Release date: Oct 4 2023

View File

@ -2,12 +2,9 @@
"name": "abuyoyo/adminmenupage", "name": "abuyoyo/adminmenupage",
"description": "WordPress admin menu page helper class", "description": "WordPress admin menu page helper class",
"type": "library", "type": "library",
"version": "0.29", "version": "0.28",
"time": "2023-10-05", "time": "2023-10-04",
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"require": {
"abuyoyo/metabox": "~0.8"
},
"suggest": { "suggest": {
"abuyoyo/plugincore": "~0.26", "abuyoyo/plugincore": "~0.26",
"cmb2/cmb2": "~2.9" "cmb2/cmb2": "~2.9"

View File

@ -1,38 +0,0 @@
# Create Github Release
# v1.0
# Create Github release on tag push
# - Use tag name as release title
# - Use CHANGELOG.md log entry as body
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- '*' # Match any tag
name: Create Release
jobs:
build:
name: Create Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Get Changelog Entry
id: changelog_reader
uses: mindsers/changelog-reader-action@v1.1.0
with:
version: ${{ github.ref }}
path: ./CHANGELOG.md
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
body: ${{ steps.changelog_reader.outputs.log_entry }} # This pulls from the GET CHANGELOG ENTRY step above, referencing it's ID to get its outputs object, which include a `log_entry`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
draft: false
prerelease: false

View File

@ -1,26 +0,0 @@
# Changelog
WPHelper\MetaBox
## 0.8
### Fixed
- Fix `Metabox::render()` callback arguments. Callback is passed `$data_object` and `$box`.
## 0.7
### Fixed
- Validate `is_callable(render_cb)` before `call_user_func` call.
## 0.6
### Added
- Accept callable `render_cb` as well as readable `render_tpl` as render template.
## 0.5
### Added
- Basic Metabox API.

View File

@ -1,220 +0,0 @@
<?php
namespace WPHelper;
use function wp_parse_args;
use function add_action;
use function add_meta_box;
/**
* MetaBox
*
* Object-Oriented WordPress meta box creator.
*
* @author abuyoyo
* @version 0.8
*/
class MetaBox
{
/**
* Screen context where the meta box should display.
*
* @var string
*/
private $context;
/**
* The ID of the meta box.
*
* @var string
*/
private $id;
/**
* The display priority of the meta box.
*
* @var string
*/
private $priority;
/**
* Screens where this meta box will appear.
*
* @var string[]
*/
private $screens;
/**
* Path to the template used to display the content of the meta box.
*
* @var string filename
*/
private $render_tpl;
/**
* Path to the template used to display the content of the meta box.
*
* @var callable
*/
private $render_cb;
/**
* The title of the meta box.
*
* @var string
*/
private $title;
/**
* Hook where this meta box will be added.
*
* @var string
*/
private $hook;
/**
* Array of $args to be sent to callback function's second parameter
*
* @var array
*/
private $args;
/**
* Constructor.
*
* @param string $id
* @param string $template
* @param string $title
* @param string $context
* @param string $priority
* @param string[] $screens
*/
public function __construct($options)
{
// should throw error if required fields (id, title) not given
// template is actually optional
$defaults = [
'context' => 'advanced',
'priority' => 'default',
'screens' => [],
'args' => null,
'hook' => 'add_meta_boxes',
];
$options = wp_parse_args( $options, $defaults );
extract($options);
$this->context = $context;
$this->id = $id;
$this->priority = $priority;
$this->screens = $screens;
$this->render_tpl = isset( $template ) ? rtrim( $template, '/' ) : '';
$this->render_cb = $render ?? '';
$this->title = $title;
$this->hook = $hook;
$this->args = $args;
}
/**
* Add metabox at given hook.
*
* @return void
*/
public function add()
{
add_action( $this->hook, [ $this, 'wp_add_metabox' ] );
}
public function wp_add_metabox(){
add_meta_box(
$this->id,
$this->title,
[ $this, 'render' ], // $this->render_tpl | $this->render_cb
$this->screens,
$this->context,
$this->priority,
$this->args
);
}
/**
* Get the callable that will render the content of the meta box.
*
* @return callable
*/
public function get_callback()
{
return [ $this, 'render' ];
}
/**
* Get the screen context where the meta box should display.
*
* @return string
*/
public function get_context()
{
return $this->context;
}
/**
* Get the ID of the meta box.
*
* @return string
*/
public function get_id()
{
return $this->id;
}
/**
* Get the display priority of the meta box.
*
* @return string
*/
public function get_priority()
{
return $this->priority;
}
/**
* Get the screen(s) where the meta box will appear.
*
* @return array|string|WP_Screen
*/
public function get_screens()
{
return $this->screens;
}
/**
* Get the title of the meta box.
*
* @return string
*/
public function get_title()
{
return $this->title;
}
/**
* Render the content of the meta box using a PHP template.
* Callback passed to to add_meta_box()
*
* @see do_meta_boxes()
*
* @param mixed $data_object Object that's the focus of the current screen. eg. WP_Post|WP_Comment
* @param array $box Meta-box data [id, title, callback, args] (@see global $wp_meta_boxes)
*/
public function render( $data_object, $box )
{
if ( ! is_readable( $this->render_tpl ) && ! is_callable( $this->render_cb ) ){
return;
}
if ( is_callable( $this->render_cb ) ){
call_user_func( $this->render_cb, $data_object, $box );
} else if ( isset( $this->render_tpl ) ){
include $this->render_tpl;
}
}
}

View File

@ -1 +0,0 @@
# WPHelper\MetaBox

View File

@ -1,12 +0,0 @@
{
"name": "abuyoyo/metabox",
"description": "WordPress metabox helper class",
"type": "library",
"version": "0.8",
"license": "BSD-3-Clause",
"autoload": {
"psr-4": {
"WPHelper\\" : ""
}
}
}

View File

@ -6,5 +6,5 @@ $vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(
'WPHelper\\' => array($vendorDir . '/abuyoyo/adminmenupage/src', $vendorDir . '/abuyoyo/metabox', $vendorDir . '/abuyoyo/plugincore'), 'WPHelper\\' => array($vendorDir . '/abuyoyo/adminmenupage/src', $vendorDir . '/abuyoyo/plugincore'),
); );

View File

@ -22,8 +22,7 @@ class ComposerStaticInita13a895834453aad32a897cc456c73ff
'WPHelper\\' => 'WPHelper\\' =>
array ( array (
0 => __DIR__ . '/..' . '/abuyoyo/adminmenupage/src', 0 => __DIR__ . '/..' . '/abuyoyo/adminmenupage/src',
1 => __DIR__ . '/..' . '/abuyoyo/metabox', 1 => __DIR__ . '/..' . '/abuyoyo/plugincore',
2 => __DIR__ . '/..' . '/abuyoyo/plugincore',
), ),
); );

View File

@ -2,27 +2,24 @@
"packages": [ "packages": [
{ {
"name": "abuyoyo/adminmenupage", "name": "abuyoyo/adminmenupage",
"version": "0.29", "version": "0.28",
"version_normalized": "0.29.0.0", "version_normalized": "0.28.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/abuyoyo/AdminMenuPage.git", "url": "https://github.com/abuyoyo/AdminMenuPage.git",
"reference": "4cd47d5217ca25ed17af76f5fdbab3cab3b37ef8" "reference": "c16d80ebbe1cc112acd3e5eca2f97e7abd017d29"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/abuyoyo/AdminMenuPage/zipball/4cd47d5217ca25ed17af76f5fdbab3cab3b37ef8", "url": "https://api.github.com/repos/abuyoyo/AdminMenuPage/zipball/c16d80ebbe1cc112acd3e5eca2f97e7abd017d29",
"reference": "4cd47d5217ca25ed17af76f5fdbab3cab3b37ef8", "reference": "c16d80ebbe1cc112acd3e5eca2f97e7abd017d29",
"shasum": "" "shasum": ""
}, },
"require": {
"abuyoyo/metabox": "~0.8"
},
"suggest": { "suggest": {
"abuyoyo/plugincore": "~0.26", "abuyoyo/plugincore": "~0.26",
"cmb2/cmb2": "~2.9" "cmb2/cmb2": "~2.9"
}, },
"time": "2023-10-05T00:00:00+00:00", "time": "2023-10-04T00:00:00+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@ -40,44 +37,10 @@
"description": "WordPress admin menu page helper class", "description": "WordPress admin menu page helper class",
"support": { "support": {
"issues": "https://github.com/abuyoyo/AdminMenuPage/issues", "issues": "https://github.com/abuyoyo/AdminMenuPage/issues",
"source": "https://github.com/abuyoyo/AdminMenuPage/tree/0.29" "source": "https://github.com/abuyoyo/AdminMenuPage/tree/0.28"
}, },
"install-path": "../abuyoyo/adminmenupage" "install-path": "../abuyoyo/adminmenupage"
}, },
{
"name": "abuyoyo/metabox",
"version": "0.8",
"version_normalized": "0.8.0.0",
"source": {
"type": "git",
"url": "https://github.com/abuyoyo/MetaBox.git",
"reference": "98cb4c30db4c366c0d273985eb9c31ffa1cd78f9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/abuyoyo/MetaBox/zipball/98cb4c30db4c366c0d273985eb9c31ffa1cd78f9",
"reference": "98cb4c30db4c366c0d273985eb9c31ffa1cd78f9",
"shasum": ""
},
"time": "2023-07-18T19:14:03+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"WPHelper\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "WordPress metabox helper class",
"support": {
"issues": "https://github.com/abuyoyo/MetaBox/issues",
"source": "https://github.com/abuyoyo/MetaBox/tree/0.8"
},
"install-path": "../abuyoyo/metabox"
},
{ {
"name": "abuyoyo/plugincore", "name": "abuyoyo/plugincore",
"version": "0.27", "version": "0.27",

View File

@ -1,8 +1,8 @@
<?php return array( <?php return array(
'root' => array( 'root' => array(
'name' => 'abuyoyo/notice-manager', 'name' => 'abuyoyo/notice-manager',
'pretty_version' => '0.25', 'pretty_version' => '0.24',
'version' => '0.25.0.0', 'version' => '0.24.0.0',
'reference' => NULL, 'reference' => NULL,
'type' => 'wordpress-plugin', 'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
@ -11,26 +11,17 @@
), ),
'versions' => array( 'versions' => array(
'abuyoyo/adminmenupage' => array( 'abuyoyo/adminmenupage' => array(
'pretty_version' => '0.29', 'pretty_version' => '0.28',
'version' => '0.29.0.0', 'version' => '0.28.0.0',
'reference' => '4cd47d5217ca25ed17af76f5fdbab3cab3b37ef8', 'reference' => 'c16d80ebbe1cc112acd3e5eca2f97e7abd017d29',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../abuyoyo/adminmenupage', 'install_path' => __DIR__ . '/../abuyoyo/adminmenupage',
'aliases' => array(), 'aliases' => array(),
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'abuyoyo/metabox' => array(
'pretty_version' => '0.8',
'version' => '0.8.0.0',
'reference' => '98cb4c30db4c366c0d273985eb9c31ffa1cd78f9',
'type' => 'library',
'install_path' => __DIR__ . '/../abuyoyo/metabox',
'aliases' => array(),
'dev_requirement' => false,
),
'abuyoyo/notice-manager' => array( 'abuyoyo/notice-manager' => array(
'pretty_version' => '0.25', 'pretty_version' => '0.24',
'version' => '0.25.0.0', 'version' => '0.24.0.0',
'reference' => NULL, 'reference' => NULL,
'type' => 'wordpress-plugin', 'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',