diff --git a/.gitignore b/.gitignore
index b1a2259..c72e9f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,27 +1,28 @@
-# Application
-web/app/plugins/*
-!web/app/plugins/.gitkeep
-web/app/upgrade
-web/app/ewww/*
-web/app/debug.log
-web/app/uploads/*
-!web/app/uploads/.gitkeep
-
-# WordPress
-web/wp
-web/.htaccess
-
-# Dotenv
-.env
-.env.*
-!.env.example
-
-# Composer
-/vendor
-auth.json
-
-# WP-CLI
-wp-cli.local.yml
-
-/web/app/themes/wpadminref/.gitignore
-sql/local.sql
+# Application
+web/app/plugins/*
+!web/app/plugins/.gitkeep
+web/app/upgrade
+web/app/ewww/*
+web/app/debug.log
+web/app/uploads/*
+!web/app/uploads/.gitkeep
+
+# WordPress
+web/wp
+web/.htaccess
+
+# Dotenv
+.env
+.env.*
+!.env.example
+
+# Composer
+/vendor
+auth.json
+
+# WP-CLI
+wp-cli.local.yml
+
+/web/app/themes/wpadminref/.gitignore
+
+sql/local.sql
\ No newline at end of file
diff --git a/composer.lock b/composer.lock
index 34829b7..061a493 100644
--- a/composer.lock
+++ b/composer.lock
@@ -173,43 +173,47 @@
},
{
"name": "phpoption/phpoption",
- "version": "1.5.0",
+ "version": "1.6.0",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed"
+ "reference": "f4e7a6a1382183412246f0d361078c29fb85089e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed",
- "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/f4e7a6a1382183412246f0d361078c29fb85089e",
+ "reference": "f4e7a6a1382183412246f0d361078c29fb85089e",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": "^5.5.9 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "4.7.*"
+ "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "1.6-dev"
}
},
"autoload": {
- "psr-0": {
- "PhpOption\\": "src/"
+ "psr-4": {
+ "PhpOption\\": "src/PhpOption/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "Apache2"
+ "Apache-2.0"
],
"authors": [
{
"name": "Johannes M. Schmitt",
"email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com"
}
],
"description": "Option Type for PHP",
@@ -219,20 +223,20 @@
"php",
"type"
],
- "time": "2015-07-25T16:39:46+00:00"
+ "time": "2019-11-30T20:20:49+00:00"
},
{
"name": "roots/wordpress",
- "version": "5.2.3",
+ "version": "5.3",
"source": {
"type": "git",
"url": "https://github.com/WordPress/WordPress.git",
- "reference": "5.2.3"
+ "reference": "5.3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.2.3",
- "reference": "5.2.3"
+ "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.3",
+ "reference": "5.3"
},
"require": {
"php": ">=5.3.2",
@@ -256,7 +260,7 @@
"cms",
"wordpress"
],
- "time": "2019-09-04T22:41:56+00:00"
+ "time": "2019-11-12T20:34:22+00:00"
},
{
"name": "roots/wordpress-core-installer",
@@ -415,16 +419,16 @@
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.12.0",
+ "version": "v1.13.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "550ebaac289296ce228a706d0867afc34687e3f4"
+ "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4",
- "reference": "550ebaac289296ce228a706d0867afc34687e3f4",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3",
+ "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3",
"shasum": ""
},
"require": {
@@ -436,7 +440,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.12-dev"
+ "dev-master": "1.13-dev"
}
},
"autoload": {
@@ -469,7 +473,7 @@
"polyfill",
"portable"
],
- "time": "2019-08-06T08:03:45+00:00"
+ "time": "2019-11-27T13:56:44+00:00"
},
{
"name": "vlucas/phpdotenv",
diff --git a/web/app/themes/wpadminref/functions.php b/web/app/themes/wpadminref/functions.php
index 0618bc2..55fccf6 100644
--- a/web/app/themes/wpadminref/functions.php
+++ b/web/app/themes/wpadminref/functions.php
@@ -101,6 +101,11 @@ add_filter( 'wpadminref/sections', function( $sections ) {
'title' => __( 'Tables', 'wpadminref' ),
];
+ $sections['tabs'] = [
+ 'icon' => 'index-card',
+ 'title' => __( 'Tabs', 'wpadminref' ),
+ ];
+
$sections['post_list'] = [
'icon' => 'editor-justify',
'title' => __( 'Post List', 'wpadminref' ),
diff --git a/web/app/themes/wpadminref/template-parts/sections/tables.php b/web/app/themes/wpadminref/template-parts/sections/tables.php
index 29b9b06..a767376 100644
--- a/web/app/themes/wpadminref/template-parts/sections/tables.php
+++ b/web/app/themes/wpadminref/template-parts/sections/tables.php
@@ -73,7 +73,13 @@
-
+
+
+ if ( ! class_exists( 'WP_List_Table' ) ) {
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
+ }
+
+
diff --git a/web/app/themes/wpadminref/template-parts/sections/tabs.php b/web/app/themes/wpadminref/template-parts/sections/tabs.php
new file mode 100644
index 0000000..b3a70e9
--- /dev/null
+++ b/web/app/themes/wpadminref/template-parts/sections/tabs.php
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
Settings tabs
+
+ These are native WordPress tabs. Unfortunately they are not supported by JS :(. Fortunately, you can code it yourself!
+
+
Here's the tutorial!
+
Markup:
+
+
JS:
+
+
+ (function($) {
+ $(function(){
+ $('#tabs').tabs();
+ });
+ })(jQuery);
+
+
+
That's all folks!
+
+
+
+
+
+ <h2 class="nav-tab-wrapper">
+ <a href="javascript:void(0)" class="nav-tab <?php echo $active_tab == 'display_options' ? 'nav-tab-active' : ''; ?>">Tab #01</a>
+ <a href="javascript:void(0)" class="nav-tab <?php echo $active_tab == 'display_options' ? 'nav-tab-active' : ''; ?>">Tab #02</a>
+ <a href="javascript:void(0)" class="nav-tab <?php echo $active_tab == 'display_options' ? 'nav-tab-active' : ''; ?>">Tab #03</a>
+ </h2>
+ <div class="tabs-content">
+ <h3>Settings tabs</h3>
+ <p>
+ "But I must explain to you how all this mistaken idea of denouncing pleasure and
+ praising pain was born and I will give you a complete account of the system, and
+ expound the actual teachings of the great explorer of the truth, the master-builder
+ of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it
+ is pleasure, but because those who do not know how to pursue pleasure rationally
+ encounter consequences that are extremely painful.
+ </p>
+ <p>
+ Nor again is there anyone who loves or pursues or desires to obtain pain of itself,
+ because it is pain, but because occasionally circumstances occur in which toil and
+ pain can procure him some great pleasure. To take a trivial example, which of us
+ ever undertakes laborious physical exercise, except to obtain some advantage from it?
+ But who has any right to find fault with a man who chooses to enjoy a pleasure that has
+ no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"
+ </p>
+ <p>
+ <a href="javascript:void(0)" target="_blank" class="button button-primary">Save changes</a>
+ </p>
+ </div>
+
+
+
+
+
+
+