Version Description
- PHP 5.3.2+ is now required to run Nested Pages. Will not run or install on older versions of PHP.
- Visual nesting indication limit removed
- Portuguese Translation (Provided by Luis Martins)
- Various bug fixes
Download this release
Release Info
Developer | kylephillips |
Plugin | Nested Pages |
Version | 1.2.0 |
Comparing to | |
See all releases |
Code changes from version 1.1.9 to 1.2.0
- includes/class-np-activate.php → app/Activation/Activate.php +26 -8
- includes/class-np-dependencies.php → app/Activation/Dependencies.php +36 -9
- includes/class-np-activate-upgrades.php → app/Activation/Updates/Updates.php +8 -4
- app/Bootstrap.php +74 -0
- includes/class-np-settings.php → app/Config/Settings.php +26 -6
- app/Controllers/AdminMenuController.php +96 -0
- includes/class-np-newpage.php → app/Controllers/AdminSubmenuController.php +23 -39
- includes/class-np-pagelisting.php → app/Controllers/PageListingController.php +30 -90
- app/Entities/Confirmation/ConfirmationFactory.php +59 -0
- app/Entities/Confirmation/ConfirmationInterface.php +10 -0
- app/Entities/Confirmation/LinkDeletedConfirmation.php +13 -0
- app/Entities/Confirmation/TrashConfirmation.php +25 -0
- app/Entities/Confirmation/TrashRestoredConfirmation.php +15 -0
- includes/class-np-navmenu.php → app/Entities/NavMenu.php +8 -5
- includes/class-np-posttypes.php → app/Entities/Post/PostActions.php +5 -35
- includes/class-np-factory-post.php → app/Entities/Post/PostFactory.php +6 -5
- includes/class-np-repository-post.php → app/Entities/Post/PostRepository.php +9 -9
- app/Entities/PostType/PostTypeRepository.php +35 -0
- app/Entities/PostType/RegisterPostTypes.php +40 -0
- includes/class-np-repository-user.php → app/Entities/User/UserRepository.php +2 -3
- app/Form/FormActionFactory.php +70 -0
- includes/class-np-handler-base.php → app/Form/Handlers/BaseHandler.php +7 -7
- includes/class-np-handler-gettax.php → app/Form/Handlers/GetTaxonomiesHandler.php +3 -9
- includes/class-np-handler-nesttoggle.php → app/Form/Handlers/NestToggleHandler.php +5 -7
- includes/class-np-handler-newchild.php → app/Form/Handlers/NewChildHandler.php +6 -12
- includes/class-np-handler-newredirect.php → app/Form/Handlers/NewLinkHandler.php +5 -11
- includes/class-np-handler-quickedit.php → app/Form/Handlers/QuickEditHandler.php +2 -9
- includes/class-np-handler-quickedit-redirect.php → app/Form/Handlers/QuickEditLinkHandler.php +2 -10
- includes/class-np-handler-sort.php → app/Form/Handlers/SortHandler.php +2 -10
- includes/class-np-handler-syncmenu.php → app/Form/Handlers/SyncMenuHandler.php +2 -9
- includes/class-np-validation.php → app/Form/Validation/Validation.php +3 -4
- includes/class-np-helpers.php → app/Helpers.php +17 -3
- app/NestedPages.php +19 -0
- includes/class-np-redirects.php → app/Redirects.php +4 -3
- {views → app/Views}/link-form.php +0 -0
- {views → app/Views}/new-child.php +0 -0
- {views → app/Views}/pages.php +10 -8
- {views → app/Views}/quickedit-redirect.php +0 -0
- {views → app/Views}/quickedit.php +2 -2
- {views → app/Views}/row-redirect.php +2 -2
- {views → app/Views}/row.php +0 -0
- app/Views/settings-general.php +41 -0
- app/Views/settings-posttypes.php +5 -0
- app/Views/settings.php +19 -0
- assets/css/nestedpages.css +1 -1
- assets/js/lib/nestedpages.js +44 -11
- assets/js/nestedpages.min.js +1 -1
- composer.json +24 -0
- includes/class-nestedpages.php +0 -114
- includes/class-np-confirmation.php +0 -102
- languages/nestedpages-pt_PT.mo +0 -0
- languages/nestedpages-pt_PT.po +337 -0
- nestedpages.php +11 -8
- readme.txt +16 -6
- vendor/autoload.php +7 -0
- vendor/composer/ClassLoader.php +378 -0
- vendor/composer/autoload_classmap.php +9 -0
- vendor/composer/autoload_namespaces.php +9 -0
- vendor/composer/autoload_psr4.php +10 -0
- vendor/composer/autoload_real.php +50 -0
- views/settings.php +0 -48
includes/class-np-activate.php → app/Activation/Activate.php
RENAMED
@@ -1,18 +1,28 @@
|
|
1 |
-
<?php
|
|
|
|
|
|
|
2 |
/**
|
3 |
* Plugin Activation
|
4 |
*/
|
5 |
-
|
6 |
-
class NP_Activate {
|
7 |
|
8 |
/**
|
9 |
* Plugin Version
|
10 |
*/
|
11 |
private $version;
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
public function __construct()
|
15 |
{
|
|
|
|
|
16 |
$this->install();
|
17 |
}
|
18 |
|
@@ -22,23 +32,31 @@ class NP_Activate {
|
|
22 |
*/
|
23 |
public function install()
|
24 |
{
|
25 |
-
$this->version
|
26 |
-
|
27 |
-
$this->setVersion();
|
28 |
$this->setOptions();
|
|
|
29 |
}
|
30 |
|
31 |
-
|
32 |
/**
|
33 |
* Set the Plugin Version
|
34 |
*/
|
35 |
private function setVersion()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
{
|
37 |
update_option('nestedpages_version', $this->version);
|
38 |
}
|
39 |
|
40 |
|
41 |
-
|
42 |
/**
|
43 |
* Set Default Options
|
44 |
*/
|
1 |
+
<?php namespace NestedPages\Activation;
|
2 |
+
|
3 |
+
use NestedPages\Activation\Updates\Updates;
|
4 |
+
|
5 |
/**
|
6 |
* Plugin Activation
|
7 |
*/
|
8 |
+
class Activate {
|
|
|
9 |
|
10 |
/**
|
11 |
* Plugin Version
|
12 |
*/
|
13 |
private $version;
|
14 |
|
15 |
+
/**
|
16 |
+
* Updates
|
17 |
+
* @var object
|
18 |
+
*/
|
19 |
+
private $updates;
|
20 |
+
|
21 |
|
22 |
public function __construct()
|
23 |
{
|
24 |
+
$this->setVersion();
|
25 |
+
$this->updates = new Updates;
|
26 |
$this->install();
|
27 |
}
|
28 |
|
32 |
*/
|
33 |
public function install()
|
34 |
{
|
35 |
+
$this->updates->run($this->version);
|
36 |
+
$this->saveVersion();
|
|
|
37 |
$this->setOptions();
|
38 |
+
new Dependencies;
|
39 |
}
|
40 |
|
|
|
41 |
/**
|
42 |
* Set the Plugin Version
|
43 |
*/
|
44 |
private function setVersion()
|
45 |
+
{
|
46 |
+
global $np_version;
|
47 |
+
$this->version = $np_version;
|
48 |
+
}
|
49 |
+
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Set the Plugin Version
|
53 |
+
*/
|
54 |
+
private function saveVersion()
|
55 |
{
|
56 |
update_option('nestedpages_version', $this->version);
|
57 |
}
|
58 |
|
59 |
|
|
|
60 |
/**
|
61 |
* Set Default Options
|
62 |
*/
|
includes/class-np-dependencies.php → app/Activation/Dependencies.php
RENAMED
@@ -1,22 +1,39 @@
|
|
1 |
-
<?php
|
2 |
/**
|
3 |
* Plugin JS & CSS Dependencies
|
4 |
*/
|
5 |
-
class
|
6 |
|
7 |
/**
|
8 |
* Plugin Directory
|
9 |
*/
|
10 |
private $plugin_dir;
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
public function __construct()
|
13 |
{
|
|
|
14 |
add_action( 'admin_enqueue_scripts', array($this, 'styles') );
|
15 |
add_action( 'admin_enqueue_scripts', array($this, 'scripts') );
|
16 |
$this->plugin_dir = plugins_url() . '/wp-nested-pages';
|
17 |
}
|
18 |
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
/**
|
21 |
* Admin Styles
|
22 |
*/
|
@@ -26,7 +43,7 @@ class NP_Dependencies {
|
|
26 |
'nestedpages',
|
27 |
$this->plugin_dir . '/assets/css/nestedpages.css',
|
28 |
array(),
|
29 |
-
|
30 |
);
|
31 |
}
|
32 |
|
@@ -38,6 +55,7 @@ class NP_Dependencies {
|
|
38 |
public function scripts()
|
39 |
{
|
40 |
$screen = get_current_screen();
|
|
|
41 |
if ( strpos( $screen->id, 'nestedpages' ) ) :
|
42 |
wp_enqueue_script('suggest');
|
43 |
wp_enqueue_script('jquery-ui-core');
|
@@ -60,12 +78,21 @@ class NP_Dependencies {
|
|
60 |
array('jquery', 'jquery-ui-sortable'),
|
61 |
'1.0'
|
62 |
);
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
$localized_data = array(
|
70 |
'np_nonce' => wp_create_nonce( 'nestedpages-nonce' ),
|
71 |
'expand_text' => __('Expand Pages', 'nestedpages'),
|
1 |
+
<?php namespace NestedPages\Activation;
|
2 |
/**
|
3 |
* Plugin JS & CSS Dependencies
|
4 |
*/
|
5 |
+
class Dependencies {
|
6 |
|
7 |
/**
|
8 |
* Plugin Directory
|
9 |
*/
|
10 |
private $plugin_dir;
|
11 |
|
12 |
+
/**
|
13 |
+
* Plugin Version
|
14 |
+
*/
|
15 |
+
private $plugin_version;
|
16 |
+
|
17 |
+
|
18 |
public function __construct()
|
19 |
{
|
20 |
+
$this->setPluginVersion();
|
21 |
add_action( 'admin_enqueue_scripts', array($this, 'styles') );
|
22 |
add_action( 'admin_enqueue_scripts', array($this, 'scripts') );
|
23 |
$this->plugin_dir = plugins_url() . '/wp-nested-pages';
|
24 |
}
|
25 |
|
26 |
|
27 |
+
/**
|
28 |
+
* Set the Plugin Version
|
29 |
+
*/
|
30 |
+
private function setPluginVersion()
|
31 |
+
{
|
32 |
+
global $np_version;
|
33 |
+
$this->plugin_version = $np_version;
|
34 |
+
}
|
35 |
+
|
36 |
+
|
37 |
/**
|
38 |
* Admin Styles
|
39 |
*/
|
43 |
'nestedpages',
|
44 |
$this->plugin_dir . '/assets/css/nestedpages.css',
|
45 |
array(),
|
46 |
+
$this->plugin_version
|
47 |
);
|
48 |
}
|
49 |
|
55 |
public function scripts()
|
56 |
{
|
57 |
$screen = get_current_screen();
|
58 |
+
global $np_env;
|
59 |
if ( strpos( $screen->id, 'nestedpages' ) ) :
|
60 |
wp_enqueue_script('suggest');
|
61 |
wp_enqueue_script('jquery-ui-core');
|
78 |
array('jquery', 'jquery-ui-sortable'),
|
79 |
'1.0'
|
80 |
);
|
81 |
+
if ( $np_env == 'dev' ){
|
82 |
+
wp_enqueue_script(
|
83 |
+
'nestedpages',
|
84 |
+
$this->plugin_dir . '/assets/js/lib/nestedpages.js',
|
85 |
+
array('jquery'),
|
86 |
+
$this->plugin_version
|
87 |
+
);
|
88 |
+
} else {
|
89 |
+
wp_enqueue_script(
|
90 |
+
'nestedpages',
|
91 |
+
$this->plugin_dir . '/assets/js/nestedpages.min.js',
|
92 |
+
array('jquery'),
|
93 |
+
$this->plugin_version
|
94 |
+
);
|
95 |
+
}
|
96 |
$localized_data = array(
|
97 |
'np_nonce' => wp_create_nonce( 'nestedpages-nonce' ),
|
98 |
'expand_text' => __('Expand Pages', 'nestedpages'),
|
includes/class-np-activate-upgrades.php → app/Activation/Updates/Updates.php
RENAMED
@@ -1,8 +1,8 @@
|
|
1 |
-
<?php
|
2 |
/**
|
3 |
* Required Version Upgrades
|
4 |
*/
|
5 |
-
class
|
6 |
|
7 |
/**
|
8 |
* New Version
|
@@ -14,8 +14,11 @@ class NP_ActivateUpgrades {
|
|
14 |
*/
|
15 |
private $current_version;
|
16 |
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
19 |
{
|
20 |
$this->new_version = $new_version;
|
21 |
$this->setCurrentVersion();
|
@@ -23,6 +26,7 @@ class NP_ActivateUpgrades {
|
|
23 |
$this->convertMenuToID();
|
24 |
}
|
25 |
|
|
|
26 |
/**
|
27 |
* Set the plugin version
|
28 |
*/
|
1 |
+
<?php namespace NestedPages\Activation\Updates;
|
2 |
/**
|
3 |
* Required Version Upgrades
|
4 |
*/
|
5 |
+
class Updates {
|
6 |
|
7 |
/**
|
8 |
* New Version
|
14 |
*/
|
15 |
private $current_version;
|
16 |
|
17 |
+
/**
|
18 |
+
* Run the Updates
|
19 |
+
* @var string
|
20 |
+
*/
|
21 |
+
public function run($new_version)
|
22 |
{
|
23 |
$this->new_version = $new_version;
|
24 |
$this->setCurrentVersion();
|
26 |
$this->convertMenuToID();
|
27 |
}
|
28 |
|
29 |
+
|
30 |
/**
|
31 |
* Set the plugin version
|
32 |
*/
|
app/Bootstrap.php
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages;
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Primary Plugin Bootstrap
|
5 |
+
*/
|
6 |
+
class Bootstrap {
|
7 |
+
|
8 |
+
public function __construct()
|
9 |
+
{
|
10 |
+
$this->initializePlugin();
|
11 |
+
add_action( 'init', array($this, 'initializeWordPress') );
|
12 |
+
add_filter( 'plugin_action_links_' . 'wp-nested-pages/nestedpages.php', array($this, 'settingsLink' ) );
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Initialize Plugin
|
17 |
+
*/
|
18 |
+
private function initializePlugin()
|
19 |
+
{
|
20 |
+
new Activation\Activate;
|
21 |
+
new Redirects;
|
22 |
+
new Entities\PostType\RegisterPostTypes;
|
23 |
+
new Entities\Post\PostActions;
|
24 |
+
new Form\FormActionFactory;
|
25 |
+
new Config\Settings;
|
26 |
+
}
|
27 |
+
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Wordpress Initialization Actions
|
31 |
+
*/
|
32 |
+
public function initializeWordPress()
|
33 |
+
{
|
34 |
+
$this->listPages();
|
35 |
+
$this->addLocalization();
|
36 |
+
}
|
37 |
+
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Page Listing & Menus
|
41 |
+
* @since 1.1.6 - Moved into init due to Multisite bug
|
42 |
+
*/
|
43 |
+
public function listPages()
|
44 |
+
{
|
45 |
+
new Controllers\AdminMenuController;
|
46 |
+
new Controllers\AdminSubmenuController;
|
47 |
+
new Controllers\PageListingController;
|
48 |
+
}
|
49 |
+
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Localization Domain
|
53 |
+
*/
|
54 |
+
public function addLocalization()
|
55 |
+
{
|
56 |
+
load_plugin_textdomain(
|
57 |
+
'nestedpages',
|
58 |
+
false,
|
59 |
+
dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages' );
|
60 |
+
}
|
61 |
+
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Add a link to the settings on the plugin page
|
65 |
+
*/
|
66 |
+
public function settingsLink($links)
|
67 |
+
{
|
68 |
+
$settings_link = '<a href="options-general.php?page=nested-pages-settings">' . __('Settings') . '</a>';
|
69 |
+
array_unshift($links, $settings_link);
|
70 |
+
return $links;
|
71 |
+
}
|
72 |
+
|
73 |
+
|
74 |
+
}
|
includes/class-np-settings.php → app/Config/Settings.php
RENAMED
@@ -1,10 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
|
|
|
|
|
|
4 |
/**
|
5 |
* Plugin Settings
|
6 |
*/
|
7 |
-
class
|
8 |
|
9 |
/**
|
10 |
* Nested Pages Menu
|
@@ -17,13 +20,18 @@ class NP_Settings {
|
|
17 |
*/
|
18 |
private $user_repo;
|
19 |
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
public function __construct()
|
22 |
{
|
23 |
add_action( 'admin_menu', array( $this, 'registerSettingsPage' ) );
|
24 |
add_action( 'admin_init', array( $this, 'registerSettings' ) );
|
25 |
add_action( 'updated_option', array( $this, 'updateMenuName'), 10, 3);
|
26 |
-
$this->user_repo = new
|
27 |
}
|
28 |
|
29 |
|
@@ -86,13 +94,25 @@ class NP_Settings {
|
|
86 |
}
|
87 |
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
/**
|
90 |
* Display the Settings Page
|
91 |
*/
|
92 |
public function settingsPage()
|
93 |
{
|
94 |
$this->setMenu();
|
95 |
-
|
|
|
96 |
}
|
97 |
|
98 |
}
|
1 |
+
<?php namespace NestedPages\Config;
|
2 |
+
|
3 |
+
use NestedPages\Helpers;
|
4 |
+
use NestedPages\Entities\User\UserRepository;
|
5 |
+
use NestedPages\Entities\PostType\PostTypeRepository;
|
6 |
+
|
7 |
/**
|
8 |
* Plugin Settings
|
9 |
*/
|
10 |
+
class Settings {
|
11 |
|
12 |
/**
|
13 |
* Nested Pages Menu
|
20 |
*/
|
21 |
private $user_repo;
|
22 |
|
23 |
+
/**
|
24 |
+
* Post Types
|
25 |
+
*/
|
26 |
+
private $post_types;
|
27 |
+
|
28 |
|
29 |
public function __construct()
|
30 |
{
|
31 |
add_action( 'admin_menu', array( $this, 'registerSettingsPage' ) );
|
32 |
add_action( 'admin_init', array( $this, 'registerSettings' ) );
|
33 |
add_action( 'updated_option', array( $this, 'updateMenuName'), 10, 3);
|
34 |
+
$this->user_repo = new UserRepository;
|
35 |
}
|
36 |
|
37 |
|
94 |
}
|
95 |
|
96 |
|
97 |
+
/**
|
98 |
+
* Get Post Types
|
99 |
+
* @since 1.2
|
100 |
+
*/
|
101 |
+
public function getPostTypes()
|
102 |
+
{
|
103 |
+
$post_repo = new PostTypeRepository;
|
104 |
+
return $post_repo->getPostTypeArray();
|
105 |
+
}
|
106 |
+
|
107 |
+
|
108 |
/**
|
109 |
* Display the Settings Page
|
110 |
*/
|
111 |
public function settingsPage()
|
112 |
{
|
113 |
$this->setMenu();
|
114 |
+
$tab = ( isset($_GET['tab']) ) ? $_GET['tab'] : 'general';
|
115 |
+
include( Helpers::view('settings') );
|
116 |
}
|
117 |
|
118 |
}
|
app/Controllers/AdminMenuController.php
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages\Controllers;
|
2 |
+
|
3 |
+
use NestedPages\Controllers\PageListingController;
|
4 |
+
use NestedPages\Helpers;
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Admin Menus
|
8 |
+
* @since 1.2
|
9 |
+
*/
|
10 |
+
class AdminMenuController {
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Page Post Type
|
14 |
+
*/
|
15 |
+
private $post_type;
|
16 |
+
|
17 |
+
|
18 |
+
public function __construct()
|
19 |
+
{
|
20 |
+
add_action( 'admin_menu', array($this, 'adminMenu') );
|
21 |
+
}
|
22 |
+
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Add the admin menu items
|
26 |
+
*/
|
27 |
+
public function adminMenu()
|
28 |
+
{
|
29 |
+
$this->pageMenu();
|
30 |
+
}
|
31 |
+
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Page Menu
|
35 |
+
* @since 1.2
|
36 |
+
*/
|
37 |
+
private function pageMenu()
|
38 |
+
{
|
39 |
+
$this->post_type = get_post_type_object('page');
|
40 |
+
if ( (current_user_can('edit_pages')) || ($this->user->canSortPages()) ){
|
41 |
+
add_menu_page(
|
42 |
+
__($this->post_type->labels->name),
|
43 |
+
__($this->post_type->labels->name),
|
44 |
+
'delete_pages',
|
45 |
+
'nestedpages',
|
46 |
+
PageListingController::admin_menu(),
|
47 |
+
'dashicons-admin-page',
|
48 |
+
20
|
49 |
+
);
|
50 |
+
$this->pageSubmenu();
|
51 |
+
}
|
52 |
+
}
|
53 |
+
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Page Submenus
|
57 |
+
*/
|
58 |
+
private function pageSubmenu()
|
59 |
+
{
|
60 |
+
global $submenu;
|
61 |
+
$submenu['nestedpages'][50] = array( __('All Pages','nestedpages'), 'publish_pages', esc_url(admin_url('admin.php?page=nestedpages')) );
|
62 |
+
$c = $this->submenu();
|
63 |
+
// Default Pages
|
64 |
+
if ( get_option('nestedpages_hidedefault') !== 'hide' ){
|
65 |
+
$submenu['nestedpages'][$c] = array( __('Default Pages','nestedpages'), 'publish_pages', Helpers::defaultPagesLink() );
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Add Submenus
|
72 |
+
*/
|
73 |
+
private function submenu()
|
74 |
+
{
|
75 |
+
global $submenu;
|
76 |
+
|
77 |
+
// Get the right submenu and remove all pages link
|
78 |
+
foreach($submenu as $key => $sub){
|
79 |
+
if ($key == 'edit.php?post_type=' . $this->post_type->name){
|
80 |
+
unset($sub['5']); // Remove "All Pages"
|
81 |
+
$menu_items = $sub;
|
82 |
+
}
|
83 |
+
}
|
84 |
+
if ( isset($menu_items) ){
|
85 |
+
$c = 60;
|
86 |
+
foreach($menu_items as $item){
|
87 |
+
$submenu['nestedpages'][$c] = array( $item[0], $item[1], $item[2]);
|
88 |
+
$c = $c + 10;
|
89 |
+
}
|
90 |
+
}
|
91 |
+
return $c;
|
92 |
+
}
|
93 |
+
|
94 |
+
|
95 |
+
|
96 |
+
}
|
includes/class-np-newpage.php → app/Controllers/AdminSubmenuController.php
RENAMED
@@ -1,75 +1,59 @@
|
|
1 |
-
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
-
* Select appropriate parent page if applicable & shows message
|
5 |
*/
|
6 |
-
class
|
7 |
|
8 |
/**
|
9 |
-
*
|
10 |
*/
|
11 |
-
private $
|
12 |
-
|
13 |
|
14 |
public function __construct()
|
15 |
{
|
16 |
-
add_action('admin_notices', array($this, 'showNotice'));
|
17 |
-
add_action('admin_head', array($this, 'selectParent'));
|
18 |
add_action('admin_head', array($this, 'expandPagesMenu'));
|
19 |
}
|
20 |
|
21 |
-
|
22 |
/**
|
23 |
-
*
|
24 |
*/
|
25 |
-
|
26 |
{
|
27 |
-
$page = get_current_screen();
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
} else {
|
32 |
-
return false;
|
33 |
-
}
|
34 |
}
|
35 |
|
36 |
-
|
37 |
/**
|
38 |
-
*
|
39 |
*/
|
40 |
-
|
41 |
{
|
42 |
-
if ( $this->
|
43 |
-
echo '<
|
44 |
}
|
45 |
}
|
46 |
|
47 |
-
|
48 |
/**
|
49 |
-
*
|
50 |
*/
|
51 |
-
|
52 |
{
|
53 |
-
if ( $this->
|
54 |
-
echo '<script>jQuery(document).ready(function(){
|
55 |
}
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
-
*
|
60 |
*/
|
61 |
-
|
62 |
{
|
63 |
-
$page
|
64 |
-
if ( ($page->id == 'page') && ($page->action == 'add') ){
|
65 |
-
echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages ul li:nth-child(3)");jQuery(addnew).addClass("current");jQuery(addnew).children("a").addClass("current");});</script>';
|
66 |
-
}
|
67 |
-
if ( $page->id == 'edit-page' ){
|
68 |
-
echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages ul li:nth-child(4)");});</script>';
|
69 |
-
}
|
70 |
-
if ( $page->id == 'toplevel_page_nestedpages' ){
|
71 |
echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages ul li:nth-child(2)");jQuery(addnew).addClass("current");jQuery(addnew).children("a").addClass("current");});</script>';
|
72 |
}
|
73 |
}
|
74 |
|
|
|
75 |
}
|
1 |
+
<?php namespace NestedPages\Controllers;
|
2 |
/**
|
3 |
+
* Opens the Submenu on child admin pages and highlights the current item
|
|
|
4 |
*/
|
5 |
+
class AdminSubmenuController {
|
6 |
|
7 |
/**
|
8 |
+
* Current Page Object
|
9 |
*/
|
10 |
+
private $page;
|
|
|
11 |
|
12 |
public function __construct()
|
13 |
{
|
|
|
|
|
14 |
add_action('admin_head', array($this, 'expandPagesMenu'));
|
15 |
}
|
16 |
|
|
|
17 |
/**
|
18 |
+
* Expand the Pages submenu
|
19 |
*/
|
20 |
+
public function expandPagesMenu()
|
21 |
{
|
22 |
+
$this->page = get_current_screen();
|
23 |
+
$this->newPage();
|
24 |
+
$this->editPage();
|
25 |
+
$this->nestedPages();
|
|
|
|
|
|
|
26 |
}
|
27 |
|
|
|
28 |
/**
|
29 |
+
* New Page Screen
|
30 |
*/
|
31 |
+
private function newPage()
|
32 |
{
|
33 |
+
if ( ($this->page->id == 'page') && ($this->page->action == 'add') ){
|
34 |
+
echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages ul li:nth-child(3)");jQuery(addnew).addClass("current");jQuery(addnew).children("a").addClass("current");});</script>';
|
35 |
}
|
36 |
}
|
37 |
|
|
|
38 |
/**
|
39 |
+
* Edit Page Screen
|
40 |
*/
|
41 |
+
private function editPage()
|
42 |
{
|
43 |
+
if ( $this->page->id == 'edit-page' ){
|
44 |
+
echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages ul li:nth-child(4)");});</script>';
|
45 |
}
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
+
* Nested Pages View
|
50 |
*/
|
51 |
+
private function nestedPages()
|
52 |
{
|
53 |
+
if ( $this->page->id == 'toplevel_page_nestedpages' ){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages ul li:nth-child(2)");jQuery(addnew).addClass("current");jQuery(addnew).children("a").addClass("current");});</script>';
|
55 |
}
|
56 |
}
|
57 |
|
58 |
+
|
59 |
}
|
includes/class-np-pagelisting.php → app/Controllers/PageListingController.php
RENAMED
@@ -1,13 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
|
|
|
|
6 |
/**
|
7 |
-
* Primary Listing
|
8 |
* Initiates Page Listing screen (overwriting default), and displays primary plugin view.
|
9 |
*/
|
10 |
-
class
|
11 |
|
12 |
/**
|
13 |
* Post Type
|
@@ -43,6 +45,12 @@ class NP_PageListing {
|
|
43 |
private $post_repo;
|
44 |
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
/**
|
47 |
* User Repository
|
48 |
*/
|
@@ -51,30 +59,22 @@ class NP_PageListing {
|
|
51 |
|
52 |
public function __construct()
|
53 |
{
|
54 |
-
$this->post_repo = new
|
55 |
-
$this->user = new
|
|
|
56 |
$this->setPostType();
|
57 |
-
|
58 |
-
add_action( 'admin_menu', array($this, 'submenu') );
|
59 |
}
|
60 |
|
61 |
|
62 |
/**
|
63 |
-
*
|
|
|
64 |
*/
|
65 |
-
public function
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
__($this->post_type->labels->name),
|
70 |
-
__($this->post_type->labels->name),
|
71 |
-
'delete_pages',
|
72 |
-
'nestedpages',
|
73 |
-
array( $this, 'pageListing' ),
|
74 |
-
'dashicons-admin-page',
|
75 |
-
20
|
76 |
-
);
|
77 |
-
}
|
78 |
}
|
79 |
|
80 |
|
@@ -88,46 +88,6 @@ class NP_PageListing {
|
|
88 |
}
|
89 |
|
90 |
|
91 |
-
/**
|
92 |
-
* Add Submenu
|
93 |
-
*/
|
94 |
-
public function submenu()
|
95 |
-
{
|
96 |
-
global $submenu;
|
97 |
-
$submenu['nestedpages'][50] = array( __('All Pages','nestedpages'), 'publish_pages', esc_url(admin_url('admin.php?page=nestedpages')) );
|
98 |
-
$this->additionalSubmenus();
|
99 |
-
|
100 |
-
}
|
101 |
-
|
102 |
-
|
103 |
-
/**
|
104 |
-
* Add Additional Submenus
|
105 |
-
* @since 1.1.8
|
106 |
-
*/
|
107 |
-
public function additionalSubmenus()
|
108 |
-
{
|
109 |
-
global $submenu;
|
110 |
-
// Get the right submenu and remove all pages link
|
111 |
-
foreach($submenu as $key => $sub){
|
112 |
-
if ($key == 'edit.php?post_type=' . $this->post_type->name){
|
113 |
-
unset($sub['5']); // Remove "All Pages"
|
114 |
-
$menu_items = $sub;
|
115 |
-
}
|
116 |
-
}
|
117 |
-
if ( isset($menu_items) ){
|
118 |
-
$c = 60;
|
119 |
-
foreach($menu_items as $item){
|
120 |
-
$submenu['nestedpages'][$c] = array( $item[0], $item[1], $item[2]);
|
121 |
-
$c = $c + 10;
|
122 |
-
}
|
123 |
-
}
|
124 |
-
// Default Pages
|
125 |
-
if ( get_option('nestedpages_hidedefault') !== 'hide' ){
|
126 |
-
$submenu['nestedpages'][$c] = array( __('Default Pages','nestedpages'), 'publish_pages', $this->defaultPagesLink() );
|
127 |
-
}
|
128 |
-
}
|
129 |
-
|
130 |
-
|
131 |
/**
|
132 |
* Add New Page Link
|
133 |
* @return string
|
@@ -138,16 +98,6 @@ class NP_PageListing {
|
|
138 |
}
|
139 |
|
140 |
|
141 |
-
/**
|
142 |
-
* Link to the default WP Pages listing
|
143 |
-
* @return string
|
144 |
-
*/
|
145 |
-
private function defaultPagesLink()
|
146 |
-
{
|
147 |
-
$link = esc_url( admin_url('edit.php?post_type=page') );
|
148 |
-
return $link;
|
149 |
-
}
|
150 |
-
|
151 |
/**
|
152 |
* User's Toggled Pages
|
153 |
*/
|
@@ -165,7 +115,7 @@ class NP_PageListing {
|
|
165 |
*/
|
166 |
public function pageListing()
|
167 |
{
|
168 |
-
include(
|
169 |
}
|
170 |
|
171 |
|
@@ -174,7 +124,7 @@ class NP_PageListing {
|
|
174 |
*/
|
175 |
private function setTaxonomies()
|
176 |
{
|
177 |
-
$taxonomy_names = get_object_taxonomies(
|
178 |
$hierarchical_taxonomies = array();
|
179 |
$flat_taxonomies = array();
|
180 |
foreach ( $taxonomy_names as $taxonomy_name ) {
|
@@ -227,16 +177,6 @@ class NP_PageListing {
|
|
227 |
return $out;
|
228 |
}
|
229 |
|
230 |
-
/**
|
231 |
-
* Display Confirmation Message
|
232 |
-
* @todo add styling to clear floats
|
233 |
-
*/
|
234 |
-
private function confirmation()
|
235 |
-
{
|
236 |
-
$confirmation = new NP_Confirmation;
|
237 |
-
return $confirmation->getMessage();
|
238 |
-
}
|
239 |
-
|
240 |
|
241 |
/**
|
242 |
* Opening list tag <ol>
|
@@ -343,7 +283,7 @@ class NP_PageListing {
|
|
343 |
'post_parent' => $parent_id,
|
344 |
'order' => 'ASC'
|
345 |
);
|
346 |
-
$pages = new WP_Query(apply_filters('nestedpages_page_listing', $query_args));
|
347 |
|
348 |
if ( $pages->have_posts() ) :
|
349 |
$count++;
|
@@ -375,9 +315,9 @@ class NP_PageListing {
|
|
375 |
$count++;
|
376 |
|
377 |
if ( get_post_type() == 'page' ){
|
378 |
-
include(
|
379 |
} else {
|
380 |
-
include(
|
381 |
}
|
382 |
|
383 |
endif; // trash status
|
1 |
+
<?php namespace NestedPages\Controllers;
|
2 |
+
|
3 |
+
use NestedPages\Helpers;
|
4 |
+
use NestedPages\Entities\Confirmation\ConfirmationFactory;
|
5 |
+
use NestedPages\Entities\Post\PostRepository;
|
6 |
+
use NestedPages\Entities\User\UserRepository;
|
7 |
+
|
8 |
/**
|
9 |
+
* Primary Listing
|
10 |
* Initiates Page Listing screen (overwriting default), and displays primary plugin view.
|
11 |
*/
|
12 |
+
class PageListingController {
|
13 |
|
14 |
/**
|
15 |
* Post Type
|
45 |
private $post_repo;
|
46 |
|
47 |
|
48 |
+
/**
|
49 |
+
* Confirmation Factory
|
50 |
+
*/
|
51 |
+
private $confirmation;
|
52 |
+
|
53 |
+
|
54 |
/**
|
55 |
* User Repository
|
56 |
*/
|
59 |
|
60 |
public function __construct()
|
61 |
{
|
62 |
+
$this->post_repo = new PostRepository;
|
63 |
+
$this->user = new UserRepository;
|
64 |
+
$this->confirmation = new ConfirmationFactory;
|
65 |
$this->setPostType();
|
66 |
+
|
|
|
67 |
}
|
68 |
|
69 |
|
70 |
/**
|
71 |
+
* Called by Menu Class
|
72 |
+
* @since 1.2
|
73 |
*/
|
74 |
+
public static function admin_menu() {
|
75 |
+
$class_name = get_class();
|
76 |
+
$classinstance = new $class_name();
|
77 |
+
return array(&$classinstance, "pageListing");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
|
88 |
}
|
89 |
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
/**
|
92 |
* Add New Page Link
|
93 |
* @return string
|
98 |
}
|
99 |
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
/**
|
102 |
* User's Toggled Pages
|
103 |
*/
|
115 |
*/
|
116 |
public function pageListing()
|
117 |
{
|
118 |
+
include( Helpers::view('pages') );
|
119 |
}
|
120 |
|
121 |
|
124 |
*/
|
125 |
private function setTaxonomies()
|
126 |
{
|
127 |
+
$taxonomy_names = get_object_taxonomies( $this->post_type->name );
|
128 |
$hierarchical_taxonomies = array();
|
129 |
$flat_taxonomies = array();
|
130 |
foreach ( $taxonomy_names as $taxonomy_name ) {
|
177 |
return $out;
|
178 |
}
|
179 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
|
181 |
/**
|
182 |
* Opening list tag <ol>
|
283 |
'post_parent' => $parent_id,
|
284 |
'order' => 'ASC'
|
285 |
);
|
286 |
+
$pages = new \WP_Query(apply_filters('nestedpages_page_listing', $query_args));
|
287 |
|
288 |
if ( $pages->have_posts() ) :
|
289 |
$count++;
|
315 |
$count++;
|
316 |
|
317 |
if ( get_post_type() == 'page' ){
|
318 |
+
include( Helpers::view('row') );
|
319 |
} else {
|
320 |
+
include( Helpers::view('row-redirect') );
|
321 |
}
|
322 |
|
323 |
endif; // trash status
|
app/Entities/Confirmation/ConfirmationFactory.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages\Entities\Confirmation;
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Confirmation Message
|
5 |
+
* @since 1.2
|
6 |
+
*/
|
7 |
+
class ConfirmationFactory {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Message Output
|
11 |
+
* @var string
|
12 |
+
*/
|
13 |
+
private $message;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Type of Message
|
17 |
+
* @var string
|
18 |
+
*/
|
19 |
+
private $type;
|
20 |
+
|
21 |
+
|
22 |
+
public function __construct()
|
23 |
+
{
|
24 |
+
$this->build();
|
25 |
+
}
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Set the Type of confirmation
|
30 |
+
*/
|
31 |
+
private function build()
|
32 |
+
{
|
33 |
+
if ( (isset($_GET['trashed'])) && (intval($_GET['trashed']) > 0) ) $this->type = 'TrashConfirmation';
|
34 |
+
if ( (isset($_GET['untrashed'])) && (intval($_GET['untrashed']) > 0) ) $this->type = 'TrashRestoredConfirmation';
|
35 |
+
if ( (isset($_GET['linkdeleted'])) && (intval($_GET['linkdeleted']) > 0 ) ) $this->type = 'LinkDeletedConfirmation';
|
36 |
+
if ( $this->type ) $this->createClass();
|
37 |
+
}
|
38 |
+
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Set the confirmation message
|
42 |
+
*/
|
43 |
+
private function createClass()
|
44 |
+
{
|
45 |
+
$class = 'NestedPages\Entities\Confirmation\\' . $this->type;
|
46 |
+
$confirm = new $class;
|
47 |
+
$this->message = $confirm->setMessage();
|
48 |
+
}
|
49 |
+
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Get the Message
|
53 |
+
*/
|
54 |
+
public function getMessage()
|
55 |
+
{
|
56 |
+
return $this->message;
|
57 |
+
}
|
58 |
+
|
59 |
+
}
|
app/Entities/Confirmation/ConfirmationInterface.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages\Entities\Confirmation;
|
2 |
+
|
3 |
+
interface ConfirmationInterface {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Display the Confirmation Message
|
7 |
+
*/
|
8 |
+
public function setMessage();
|
9 |
+
|
10 |
+
}
|
app/Entities/Confirmation/LinkDeletedConfirmation.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages\Entities\Confirmation;
|
2 |
+
/**
|
3 |
+
* Confirm Link has been deleted
|
4 |
+
*/
|
5 |
+
class LinkDeletedConfirmation implements ConfirmationInterface {
|
6 |
+
|
7 |
+
public function setMessage()
|
8 |
+
{
|
9 |
+
$out = __('Link successfully deleted.', 'nestedpages');
|
10 |
+
return $out;
|
11 |
+
}
|
12 |
+
|
13 |
+
}
|
app/Entities/Confirmation/TrashConfirmation.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages\Entities\Confirmation;
|
2 |
+
/**
|
3 |
+
* Confirm page(s) moved to trash
|
4 |
+
*/
|
5 |
+
class TrashConfirmation implements ConfirmationInterface {
|
6 |
+
|
7 |
+
public function setMessage()
|
8 |
+
{
|
9 |
+
$out = '';
|
10 |
+
$trashed = ( explode(',', $_GET['ids']) );
|
11 |
+
if ( count($trashed) > 1 ){
|
12 |
+
$out .= count($trashed) . ' ' . __('pages moved to the Trash', 'nestedpages');
|
13 |
+
} else {
|
14 |
+
$out .= '<strong>' . get_the_title($trashed[0]) . ' </strong>' . __('page moved to the Trash', 'nestedpages');
|
15 |
+
|
16 |
+
// Undo Link
|
17 |
+
if ( current_user_can('delete_pages') ) {
|
18 |
+
$page_obj = get_post_type_object('page');
|
19 |
+
$out .= ' <a href="' . wp_nonce_url( admin_url( sprintf( $page_obj->_edit_link . '&action=untrash', $trashed[0] ) ), 'untrash-post_' . $trashed[0] ) . '">' . __( 'Undo' ) . "</a>";
|
20 |
+
}
|
21 |
+
}
|
22 |
+
return $out;
|
23 |
+
}
|
24 |
+
|
25 |
+
}
|
app/Entities/Confirmation/TrashRestoredConfirmation.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages\Entities\Confirmation;
|
2 |
+
/**
|
3 |
+
* Confirm page(s) restored from trash
|
4 |
+
*/
|
5 |
+
class TrashRestoredConfirmation implements ConfirmationInterface {
|
6 |
+
|
7 |
+
public function setMessage()
|
8 |
+
{
|
9 |
+
$untrashed = sanitize_text_field($_GET['untrashed']);
|
10 |
+
$page = ( intval($untrashed) > 1 ) ? __('pages', 'nestedpages') : __('page', 'nestedpages');
|
11 |
+
$out = $untrashed . ' ' . $page . ' ' . __('restored from trash', 'nestedpages');
|
12 |
+
return $out;
|
13 |
+
}
|
14 |
+
|
15 |
+
}
|
includes/class-np-navmenu.php → app/Entities/NavMenu.php
RENAMED
@@ -1,9 +1,11 @@
|
|
1 |
-
<?php
|
2 |
-
|
|
|
|
|
3 |
/**
|
4 |
* The generated nav menu that matches the nested pages structure
|
5 |
*/
|
6 |
-
class
|
7 |
|
8 |
/**
|
9 |
* The Menu ID
|
@@ -51,6 +53,7 @@ class NP_NavMenu {
|
|
51 |
}
|
52 |
}
|
53 |
|
|
|
54 |
/**
|
55 |
* Create Empty Menu if one doesn't exist
|
56 |
*/
|
@@ -110,7 +113,7 @@ class NP_NavMenu {
|
|
110 |
*/
|
111 |
public function sync($parent = 0, $menu_parent = 0)
|
112 |
{
|
113 |
-
$page_q = new WP_Query(array(
|
114 |
'post_type' => array('page','np-redirect'),
|
115 |
'posts_per_page' => -1,
|
116 |
'post_status' => 'publish',
|
@@ -159,7 +162,7 @@ class NP_NavMenu {
|
|
159 |
{
|
160 |
$menu = wp_update_nav_menu_item($this->id, 0, array(
|
161 |
'menu-item-title' => $this->post['nav_title'],
|
162 |
-
'menu-item-url' =>
|
163 |
'menu-item-attr-title' => $this->post['title_attribute'],
|
164 |
'menu-item-status' => 'publish',
|
165 |
'menu-item-classes' => $this->post['css_classes'],
|
1 |
+
<?php namespace NestedPages\Entities;
|
2 |
+
|
3 |
+
use NestedPages\Helpers;
|
4 |
+
|
5 |
/**
|
6 |
* The generated nav menu that matches the nested pages structure
|
7 |
*/
|
8 |
+
class NavMenu {
|
9 |
|
10 |
/**
|
11 |
* The Menu ID
|
53 |
}
|
54 |
}
|
55 |
|
56 |
+
|
57 |
/**
|
58 |
* Create Empty Menu if one doesn't exist
|
59 |
*/
|
113 |
*/
|
114 |
public function sync($parent = 0, $menu_parent = 0)
|
115 |
{
|
116 |
+
$page_q = new \WP_Query(array(
|
117 |
'post_type' => array('page','np-redirect'),
|
118 |
'posts_per_page' => -1,
|
119 |
'post_status' => 'publish',
|
162 |
{
|
163 |
$menu = wp_update_nav_menu_item($this->id, 0, array(
|
164 |
'menu-item-title' => $this->post['nav_title'],
|
165 |
+
'menu-item-url' => Helpers::check_url(get_the_content($this->post['ID'])),
|
166 |
'menu-item-attr-title' => $this->post['title_attribute'],
|
167 |
'menu-item-status' => 'publish',
|
168 |
'menu-item-classes' => $this->post['css_classes'],
|
includes/class-np-posttypes.php → app/Entities/Post/PostActions.php
RENAMED
@@ -1,45 +1,15 @@
|
|
1 |
-
<?php
|
2 |
-
require_once('class-np-navmenu.php');
|
3 |
/**
|
4 |
-
*
|
5 |
*/
|
6 |
-
class
|
7 |
|
8 |
public function __construct()
|
9 |
{
|
10 |
-
add_action( 'init', array( $this, 'registerRedirects') );
|
11 |
add_action( 'trashed_post', array( $this, 'trashHook' ) );
|
12 |
}
|
13 |
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Redirects Post Type
|
17 |
-
*/
|
18 |
-
public function registerRedirects()
|
19 |
-
{
|
20 |
-
$labels = array(
|
21 |
-
'name' => __('Redirects', 'nestedpages'),
|
22 |
-
'singular_name' => __('Redirect', 'nestedpages'),
|
23 |
-
'add_new_item'=> 'Add Redirect',
|
24 |
-
'edit_item' => 'Edit Redirect',
|
25 |
-
'view_item' => 'View Redirect'
|
26 |
-
);
|
27 |
-
$args = array(
|
28 |
-
'labels' => $labels,
|
29 |
-
'public' => false,
|
30 |
-
'show_ui' => false,
|
31 |
-
'menu_position' => 5,
|
32 |
-
'capability_type' => 'post',
|
33 |
-
'hierarchical' => true,
|
34 |
-
'has_archive' => true,
|
35 |
-
'supports' => array('title','editor'),
|
36 |
-
'rewrite' => array('slug' => 'np-redirect', 'with_front' => false)
|
37 |
-
);
|
38 |
-
register_post_type( 'np-redirect' , $args );
|
39 |
-
}
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
/**
|
44 |
* Trash hook - make sure child pages of trashed page are visible
|
45 |
*/
|
@@ -57,7 +27,7 @@ class NP_PostTypes {
|
|
57 |
{
|
58 |
$visible_pages = unserialize(get_user_meta(get_current_user_id(), 'np_visible_pages', true));
|
59 |
$child_pages = array();
|
60 |
-
$children = new WP_Query(array('post_type'=>'page', 'posts_per_page'=>-1, 'post_parent'=>$post_id));
|
61 |
if ( $children->have_posts() ) : while ( $children->have_posts() ) : $children->the_post();
|
62 |
array_push($child_pages, get_the_id());
|
63 |
endwhile; endif; wp_reset_postdata();
|
1 |
+
<?php namespace NestedPages\Entities\Post;
|
|
|
2 |
/**
|
3 |
+
* WP Actions tied to a Post
|
4 |
*/
|
5 |
+
class PostActions {
|
6 |
|
7 |
public function __construct()
|
8 |
{
|
|
|
9 |
add_action( 'trashed_post', array( $this, 'trashHook' ) );
|
10 |
}
|
11 |
|
12 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
/**
|
14 |
* Trash hook - make sure child pages of trashed page are visible
|
15 |
*/
|
27 |
{
|
28 |
$visible_pages = unserialize(get_user_meta(get_current_user_id(), 'np_visible_pages', true));
|
29 |
$child_pages = array();
|
30 |
+
$children = new \WP_Query(array('post_type'=>'page', 'posts_per_page'=>-1, 'post_parent'=>$post_id));
|
31 |
if ( $children->have_posts() ) : while ( $children->have_posts() ) : $children->the_post();
|
32 |
array_push($child_pages, get_the_id());
|
33 |
endwhile; endif; wp_reset_postdata();
|
includes/class-np-factory-post.php → app/Entities/Post/PostFactory.php
RENAMED
@@ -1,10 +1,11 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
|
|
4 |
/**
|
5 |
* Factory class for adding new posts
|
6 |
*/
|
7 |
-
class
|
8 |
|
9 |
/**
|
10 |
* Post Repository
|
@@ -21,7 +22,7 @@ class NP_PostFactory {
|
|
21 |
|
22 |
public function __construct()
|
23 |
{
|
24 |
-
$this->repo = new
|
25 |
}
|
26 |
|
27 |
|
1 |
+
<?php namespace NestedPages\Entities\Post;
|
2 |
+
|
3 |
+
use NestedPages\Entities\Post\PostRepository;
|
4 |
+
|
5 |
/**
|
6 |
* Factory class for adding new posts
|
7 |
*/
|
8 |
+
class PostFactory {
|
9 |
|
10 |
/**
|
11 |
* Post Repository
|
22 |
|
23 |
public function __construct()
|
24 |
{
|
25 |
+
$this->repo = new PostRepository;
|
26 |
}
|
27 |
|
28 |
|
includes/class-np-repository-post.php → app/Entities/Post/PostRepository.php
RENAMED
@@ -1,8 +1,8 @@
|
|
1 |
-
<?php
|
2 |
|
3 |
-
|
4 |
|
5 |
-
class
|
6 |
|
7 |
/**
|
8 |
* Validation Class
|
@@ -19,7 +19,7 @@ class NP_PostRepository {
|
|
19 |
|
20 |
public function __construct()
|
21 |
{
|
22 |
-
$this->validation = new
|
23 |
}
|
24 |
|
25 |
|
@@ -303,7 +303,7 @@ class NP_PostRepository {
|
|
303 |
'post_content' => sanitize_text_field($data['post_content']),
|
304 |
'post_parent' => sanitize_text_field($data['parent_id'])
|
305 |
);
|
306 |
-
wp_update_post($updated_post);
|
307 |
|
308 |
$this->updateNavStatus($data);
|
309 |
$this->updateNestedPagesStatus($data);
|
@@ -311,7 +311,7 @@ class NP_PostRepository {
|
|
311 |
$this->updateTitleAttribute($data);
|
312 |
$this->updateNavCSS($data);
|
313 |
|
314 |
-
return
|
315 |
}
|
316 |
|
317 |
|
@@ -345,7 +345,7 @@ class NP_PostRepository {
|
|
345 |
*/
|
346 |
public function getHiddenCount()
|
347 |
{
|
348 |
-
$hidden = new WP_Query(array(
|
349 |
'post_type' => array('page', 'np-redirect'),
|
350 |
'meta_key' => 'nested_pages_status',
|
351 |
'meta_value' => 'hide',
|
@@ -360,7 +360,7 @@ class NP_PostRepository {
|
|
360 |
*/
|
361 |
public function trashedPagesCount()
|
362 |
{
|
363 |
-
$trashed = new WP_Query(array('post_type'=>'page','post_status'=>'trash','posts_per_page'=>-1));
|
364 |
return $trashed->found_posts;
|
365 |
}
|
366 |
|
@@ -388,7 +388,7 @@ class NP_PostRepository {
|
|
388 |
public function pageArray($ids)
|
389 |
{
|
390 |
$pages = array();
|
391 |
-
$page_query = new WP_Query(array(
|
392 |
'post_type' => 'page',
|
393 |
'posts_per_page' => -1,
|
394 |
'post__in' => $ids,
|
1 |
+
<?php namespace NestedPages\Entities\Post;
|
2 |
|
3 |
+
use NestedPages\Form\Validation\Validation;
|
4 |
|
5 |
+
class PostRepository {
|
6 |
|
7 |
/**
|
8 |
* Validation Class
|
19 |
|
20 |
public function __construct()
|
21 |
{
|
22 |
+
$this->validation = new Validation;
|
23 |
}
|
24 |
|
25 |
|
303 |
'post_content' => sanitize_text_field($data['post_content']),
|
304 |
'post_parent' => sanitize_text_field($data['parent_id'])
|
305 |
);
|
306 |
+
$this->new_id = wp_update_post($updated_post);
|
307 |
|
308 |
$this->updateNavStatus($data);
|
309 |
$this->updateNestedPagesStatus($data);
|
311 |
$this->updateTitleAttribute($data);
|
312 |
$this->updateNavCSS($data);
|
313 |
|
314 |
+
return $this->new_id;
|
315 |
}
|
316 |
|
317 |
|
345 |
*/
|
346 |
public function getHiddenCount()
|
347 |
{
|
348 |
+
$hidden = new \WP_Query(array(
|
349 |
'post_type' => array('page', 'np-redirect'),
|
350 |
'meta_key' => 'nested_pages_status',
|
351 |
'meta_value' => 'hide',
|
360 |
*/
|
361 |
public function trashedPagesCount()
|
362 |
{
|
363 |
+
$trashed = new \WP_Query(array('post_type'=>'page','post_status'=>'trash','posts_per_page'=>-1));
|
364 |
return $trashed->found_posts;
|
365 |
}
|
366 |
|
388 |
public function pageArray($ids)
|
389 |
{
|
390 |
$pages = array();
|
391 |
+
$page_query = new \WP_Query(array(
|
392 |
'post_type' => 'page',
|
393 |
'posts_per_page' => -1,
|
394 |
'post__in' => $ids,
|
app/Entities/PostType/PostTypeRepository.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages\Entities\PostType;
|
2 |
+
|
3 |
+
class PostTypeRepository {
|
4 |
+
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Get Available Post Types
|
8 |
+
* @return array
|
9 |
+
*/
|
10 |
+
public function getPostTypes($return = 'names')
|
11 |
+
{
|
12 |
+
$args = array(
|
13 |
+
'public' => true,
|
14 |
+
'show_ui' => true,
|
15 |
+
'hierarchical' => true
|
16 |
+
);
|
17 |
+
return get_post_types($args, $return);
|
18 |
+
}
|
19 |
+
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Get an array of post types in name=>label format
|
23 |
+
*/
|
24 |
+
public function getPostTypeArray($pages = false)
|
25 |
+
{
|
26 |
+
$all_types = $this->getPostTypes('objects');
|
27 |
+
$post_types = array();
|
28 |
+
foreach($all_types as $key => $type){
|
29 |
+
if ( (!$pages) && ($key == 'page') ) continue;
|
30 |
+
$post_types[$key] = $type->labels->name;
|
31 |
+
}
|
32 |
+
return $post_types;
|
33 |
+
}
|
34 |
+
|
35 |
+
}
|
app/Entities/PostType/RegisterPostTypes.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages\Entities\PostType;
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Post Types required by Nested Pages
|
5 |
+
*/
|
6 |
+
class RegisterPostTypes {
|
7 |
+
|
8 |
+
public function __construct()
|
9 |
+
{
|
10 |
+
add_action( 'init', array( $this, 'registerRedirects') );
|
11 |
+
}
|
12 |
+
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Redirects Post Type
|
16 |
+
*/
|
17 |
+
public function registerRedirects()
|
18 |
+
{
|
19 |
+
$labels = array(
|
20 |
+
'name' => __('Redirects', 'nestedpages'),
|
21 |
+
'singular_name' => __('Redirect', 'nestedpages'),
|
22 |
+
'add_new_item'=> 'Add Redirect',
|
23 |
+
'edit_item' => 'Edit Redirect',
|
24 |
+
'view_item' => 'View Redirect'
|
25 |
+
);
|
26 |
+
$args = array(
|
27 |
+
'labels' => $labels,
|
28 |
+
'public' => false,
|
29 |
+
'show_ui' => false,
|
30 |
+
'menu_position' => 5,
|
31 |
+
'capability_type' => 'post',
|
32 |
+
'hierarchical' => true,
|
33 |
+
'has_archive' => true,
|
34 |
+
'supports' => array('title','editor'),
|
35 |
+
'rewrite' => array('slug' => 'np-redirect', 'with_front' => false)
|
36 |
+
);
|
37 |
+
register_post_type( 'np-redirect' , $args );
|
38 |
+
}
|
39 |
+
|
40 |
+
}
|
includes/class-np-repository-user.php → app/Entities/User/UserRepository.php
RENAMED
@@ -1,10 +1,9 @@
|
|
1 |
-
<?php
|
2 |
/**
|
3 |
* User Repository
|
4 |
* @since 1.1.7
|
5 |
*/
|
6 |
-
class
|
7 |
-
|
8 |
|
9 |
/**
|
10 |
* Return Current User's Roles
|
1 |
+
<?php namespace NestedPages\Entities\User;
|
2 |
/**
|
3 |
* User Repository
|
4 |
* @since 1.1.7
|
5 |
*/
|
6 |
+
class UserRepository {
|
|
|
7 |
|
8 |
/**
|
9 |
* Return Current User's Roles
|
app/Form/FormActionFactory.php
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php namespace NestedPages\Form;
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Registers the WP Actions/Handlers
|
5 |
+
*/
|
6 |
+
class FormActionFactory {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Actions
|
10 |
+
* @var array
|
11 |
+
*/
|
12 |
+
private $actions;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Handler Class
|
16 |
+
* @var stdClass obj
|
17 |
+
*/
|
18 |
+
private $handlers;
|
19 |
+
|
20 |
+
|
21 |
+
public function __construct()
|
22 |
+
{
|
23 |
+
$this->setActions();
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Set the Form Actions
|
28 |
+
*/
|
29 |
+
public function setActions()
|
30 |
+
{
|
31 |
+
$this->actions = array(
|
32 |
+
'wp_ajax_npsort',
|
33 |
+
'wp_ajax_npquickEdit',
|
34 |
+
'wp_ajax_npsyncMenu',
|
35 |
+
'wp_ajax_npnestToggle',
|
36 |
+
'wp_ajax_npquickEditLink',
|
37 |
+
'wp_ajax_npnewLink',
|
38 |
+
'wp_ajax_npgetTaxonomies',
|
39 |
+
'wp_ajax_npnewChild'
|
40 |
+
);
|
41 |
+
$this->setHandlers();
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Set the Handlers Object
|
46 |
+
*/
|
47 |
+
public function setHandlers()
|
48 |
+
{
|
49 |
+
foreach($this->actions as $key => $action){
|
50 |
+
$class = ucfirst(str_replace('wp_ajax_np', '', $action)) . 'Handler';
|
51 |
+
$this->handlers[$key] = new \stdClass();
|
52 |
+
$this->handlers[$key]->action = $action;
|
53 |
+
$this->handlers[$key]->class = 'NestedPages\Form\Handlers\\' . $class;
|
54 |
+
}
|
55 |
+
$this->build();
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Register the WP Actions
|
60 |
+
*/
|
61 |
+
public function build()
|
62 |
+
{
|
63 |
+
foreach($this->handlers as $handler){
|
64 |
+
add_action($handler->action, function() use ($handler) {
|
65 |
+
new $handler->class;
|
66 |
+
});
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
}
|
includes/class-np-handler-base.php → app/Form/Handlers/BaseHandler.php
RENAMED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?php
|
2 |
|
3 |
-
|
4 |
-
|
5 |
|
6 |
/**
|
7 |
* Base Form Handler Class
|
8 |
*/
|
9 |
-
abstract class
|
10 |
|
11 |
/**
|
12 |
* Nonce
|
@@ -26,16 +26,16 @@ abstract class NP_BaseHandler {
|
|
26 |
*/
|
27 |
protected $post_repo;
|
28 |
|
29 |
-
|
30 |
/**
|
31 |
* Response
|
32 |
* @var array;
|
33 |
*/
|
34 |
protected $response;
|
35 |
|
|
|
36 |
public function __construct()
|
37 |
{
|
38 |
-
$this->post_repo = new
|
39 |
$this->setData();
|
40 |
$this->validateNonce();
|
41 |
}
|
@@ -74,7 +74,7 @@ abstract class NP_BaseHandler {
|
|
74 |
protected function syncMenu()
|
75 |
{
|
76 |
if ( $_POST['syncmenu'] == 'sync' ){
|
77 |
-
$menu = new
|
78 |
$menu->clearMenu();
|
79 |
$menu->sync();
|
80 |
update_option('nestedpages_menusync', 'sync');
|
1 |
+
<?php namespace NestedPages\Form\Handlers;
|
2 |
|
3 |
+
use NestedPages\Entities\NavMenu;
|
4 |
+
use NestedPages\Entities\Post\PostRepository;
|
5 |
|
6 |
/**
|
7 |
* Base Form Handler Class
|
8 |
*/
|
9 |
+
abstract class BaseHandler {
|
10 |
|
11 |
/**
|
12 |
* Nonce
|
26 |
*/
|
27 |
protected $post_repo;
|
28 |
|
|
|
29 |
/**
|
30 |
* Response
|
31 |
* @var array;
|
32 |
*/
|
33 |
protected $response;
|
34 |
|
35 |
+
|
36 |
public function __construct()
|
37 |
{
|
38 |
+
$this->post_repo = new PostRepository;
|
39 |
$this->setData();
|
40 |
$this->validateNonce();
|
41 |
}
|
74 |
protected function syncMenu()
|
75 |
{
|
76 |
if ( $_POST['syncmenu'] == 'sync' ){
|
77 |
+
$menu = new NavMenu;
|
78 |
$menu->clearMenu();
|
79 |
$menu->sync();
|
80 |
update_option('nestedpages_menusync', 'sync');
|
includes/class-np-handler-gettax.php → app/Form/Handlers/GetTaxonomiesHandler.php
RENAMED
@@ -1,17 +1,10 @@
|
|
1 |
-
<?php
|
2 |
-
function nestedpages_get_tax()
|
3 |
-
{
|
4 |
-
new NP_GetTax;
|
5 |
-
}
|
6 |
-
|
7 |
-
require_once('class-np-handler-base.php');
|
8 |
-
require_once('class-np-helpers.php');
|
9 |
|
10 |
/**
|
11 |
* Gets term names
|
12 |
* @return json response
|
13 |
*/
|
14 |
-
class
|
15 |
|
16 |
/**
|
17 |
* Terms to return
|
@@ -54,6 +47,7 @@ class NP_GetTax extends NP_BaseHandler {
|
|
54 |
}
|
55 |
}
|
56 |
|
|
|
57 |
/**
|
58 |
* Prepare Response
|
59 |
*/
|
1 |
+
<?php namespace NestedPages\Form\Handlers;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
/**
|
4 |
* Gets term names
|
5 |
* @return json response
|
6 |
*/
|
7 |
+
class GetTaxonomiesHandler extends BaseHandler {
|
8 |
|
9 |
/**
|
10 |
* Terms to return
|
47 |
}
|
48 |
}
|
49 |
|
50 |
+
|
51 |
/**
|
52 |
* Prepare Response
|
53 |
*/
|
includes/class-np-handler-nesttoggle.php → app/Form/Handlers/NestToggleHandler.php
RENAMED
@@ -1,13 +1,9 @@
|
|
1 |
-
<?php
|
2 |
-
function nestedpages_nesttoggle_handler()
|
3 |
-
{
|
4 |
-
new NP_NestToggle_Handler;
|
5 |
-
}
|
6 |
-
require_once('class-np-handler-base.php');
|
7 |
/**
|
8 |
* Syncs User's Visible/Toggled Pages
|
9 |
*/
|
10 |
-
class
|
|
|
11 |
|
12 |
public function __construct()
|
13 |
{
|
@@ -15,6 +11,7 @@ class NP_NestToggle_Handler extends NP_BaseHandler {
|
|
15 |
$this->updateUserMeta();
|
16 |
}
|
17 |
|
|
|
18 |
/**
|
19 |
* Make sure this is an array of integers
|
20 |
*/
|
@@ -26,6 +23,7 @@ class NP_NestToggle_Handler extends NP_BaseHandler {
|
|
26 |
}
|
27 |
}
|
28 |
|
|
|
29 |
/**
|
30 |
* Update the user meta with the array of IDs
|
31 |
*/
|
1 |
+
<?php namespace NestedPages\Form\Handlers;
|
|
|
|
|
|
|
|
|
|
|
2 |
/**
|
3 |
* Syncs User's Visible/Toggled Pages
|
4 |
*/
|
5 |
+
class NestToggleHandler extends BaseHandler {
|
6 |
+
|
7 |
|
8 |
public function __construct()
|
9 |
{
|
11 |
$this->updateUserMeta();
|
12 |
}
|
13 |
|
14 |
+
|
15 |
/**
|
16 |
* Make sure this is an array of integers
|
17 |
*/
|
23 |
}
|
24 |
}
|
25 |
|
26 |
+
|
27 |
/**
|
28 |
* Update the user meta with the array of IDs
|
29 |
*/
|
includes/class-np-handler-newchild.php → app/Form/Handlers/NewChildHandler.php
RENAMED
@@ -1,19 +1,13 @@
|
|
1 |
-
<?php
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
new NP_NewChild_Handler;
|
6 |
-
}
|
7 |
-
|
8 |
-
require_once('class-np-handler-base.php');
|
9 |
-
require_once('class-np-validation.php');
|
10 |
-
require_once('class-np-factory-post.php');
|
11 |
|
12 |
/**
|
13 |
* Handles processing the quick edit form
|
14 |
* @return json response
|
15 |
*/
|
16 |
-
class
|
17 |
|
18 |
/**
|
19 |
* Post Factory
|
@@ -29,8 +23,8 @@ class NP_NewChild_Handler extends NP_BaseHandler {
|
|
29 |
public function __construct()
|
30 |
{
|
31 |
parent::__construct();
|
32 |
-
$this->factory = new
|
33 |
-
$this->validation = new
|
34 |
$this->savePages();
|
35 |
$this->syncMenu();
|
36 |
$this->sendResponse();
|
1 |
+
<?php namespace NestedPages\Form\Handlers;
|
2 |
|
3 |
+
use NestedPages\Form\Validation\Validation;
|
4 |
+
use NestedPages\Entities\Post\PostFactory;
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
/**
|
7 |
* Handles processing the quick edit form
|
8 |
* @return json response
|
9 |
*/
|
10 |
+
class NewChildHandler extends BaseHandler {
|
11 |
|
12 |
/**
|
13 |
* Post Factory
|
23 |
public function __construct()
|
24 |
{
|
25 |
parent::__construct();
|
26 |
+
$this->factory = new PostFactory;
|
27 |
+
$this->validation = new Validation;
|
28 |
$this->savePages();
|
29 |
$this->syncMenu();
|
30 |
$this->sendResponse();
|
includes/class-np-handler-newredirect.php → app/Form/Handlers/NewLinkHandler.php
RENAMED
@@ -1,18 +1,11 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function nestedpages_new_redirect()
|
4 |
-
{
|
5 |
-
new NP_NewRedirect;
|
6 |
-
}
|
7 |
-
|
8 |
-
require_once('class-np-handler-base.php');
|
9 |
-
require_once('class-np-helpers.php');
|
10 |
|
|
|
11 |
/**
|
12 |
* Creates new Redirect/Link
|
13 |
* @return json response
|
14 |
*/
|
15 |
-
class
|
16 |
|
17 |
|
18 |
public function __construct()
|
@@ -48,7 +41,7 @@ class NP_NewRedirect extends NP_BaseHandler {
|
|
48 |
*/
|
49 |
private function formatLink()
|
50 |
{
|
51 |
-
$this->data['np_link_content'] =
|
52 |
}
|
53 |
|
54 |
|
@@ -57,6 +50,7 @@ class NP_NewRedirect extends NP_BaseHandler {
|
|
57 |
*/
|
58 |
private function addData()
|
59 |
{
|
|
|
60 |
$this->data['nav_status'] = ( isset($this->data['nav_status']) ) ? 'hide' : 'show';
|
61 |
$this->data['np_status'] = ( isset($this->data['nested_pages_status']) ) ? 'hide' : 'show';
|
62 |
$this->data['link_target'] = ( isset($this->data['link_target']) ) ? '_blank' : 'none';
|
1 |
+
<?php namespace NestedPages\Form\Handlers;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
+
use NestedPages\Helpers;
|
4 |
/**
|
5 |
* Creates new Redirect/Link
|
6 |
* @return json response
|
7 |
*/
|
8 |
+
class NewLinkHandler extends BaseHandler {
|
9 |
|
10 |
|
11 |
public function __construct()
|
41 |
*/
|
42 |
private function formatLink()
|
43 |
{
|
44 |
+
$this->data['np_link_content'] = Helpers::check_url($this->data['np_link_content']);
|
45 |
}
|
46 |
|
47 |
|
50 |
*/
|
51 |
private function addData()
|
52 |
{
|
53 |
+
$this->data['delete_link'] = get_delete_post_link($this->data['id'],'', true);
|
54 |
$this->data['nav_status'] = ( isset($this->data['nav_status']) ) ? 'hide' : 'show';
|
55 |
$this->data['np_status'] = ( isset($this->data['nested_pages_status']) ) ? 'hide' : 'show';
|
56 |
$this->data['link_target'] = ( isset($this->data['link_target']) ) ? '_blank' : 'none';
|
includes/class-np-handler-quickedit.php → app/Form/Handlers/QuickEditHandler.php
RENAMED
@@ -1,17 +1,10 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function nestedpages_quickedit_handler()
|
4 |
-
{
|
5 |
-
new NP_QuickEdit_Handler;
|
6 |
-
}
|
7 |
-
|
8 |
-
require_once('class-np-handler-base.php');
|
9 |
|
10 |
/**
|
11 |
* Handles processing the quick edit form
|
12 |
* @return json response
|
13 |
*/
|
14 |
-
class
|
15 |
|
16 |
|
17 |
public function __construct()
|
1 |
+
<?php namespace NestedPages\Form\Handlers;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
/**
|
4 |
* Handles processing the quick edit form
|
5 |
* @return json response
|
6 |
*/
|
7 |
+
class QuickEditHandler extends BaseHandler {
|
8 |
|
9 |
|
10 |
public function __construct()
|
includes/class-np-handler-quickedit-redirect.php → app/Form/Handlers/QuickEditLinkHandler.php
RENAMED
@@ -1,17 +1,9 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function nestedpages_quickedit_redirect_handler()
|
4 |
-
{
|
5 |
-
new NP_QuickEdit_Handler_Redirect;
|
6 |
-
}
|
7 |
-
|
8 |
-
require_once('class-np-handler-base.php');
|
9 |
-
|
10 |
/**
|
11 |
* Handles processing the quick edit form for redirects
|
12 |
* @return json response
|
13 |
*/
|
14 |
-
class
|
15 |
|
16 |
|
17 |
public function __construct()
|
1 |
+
<?php namespace NestedPages\Form\Handlers;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
/**
|
3 |
* Handles processing the quick edit form for redirects
|
4 |
* @return json response
|
5 |
*/
|
6 |
+
class QuickEditLinkHandler extends BaseHandler {
|
7 |
|
8 |
|
9 |
public function __construct()
|
includes/class-np-handler-sort.php → app/Form/Handlers/SortHandler.php
RENAMED
@@ -1,19 +1,11 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function nestedpages_sort_handler()
|
4 |
-
{
|
5 |
-
new NP_SortHandler;
|
6 |
-
}
|
7 |
|
8 |
/**
|
9 |
* Handles processing sortable pages
|
10 |
* updates menu order & page parents
|
11 |
* @return json response
|
12 |
*/
|
13 |
-
|
14 |
-
require_once('class-np-navmenu.php');
|
15 |
-
|
16 |
-
class NP_SortHandler extends NP_BaseHandler {
|
17 |
|
18 |
|
19 |
public function __construct()
|
1 |
+
<?php namespace NestedPages\Form\Handlers;
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
/**
|
4 |
* Handles processing sortable pages
|
5 |
* updates menu order & page parents
|
6 |
* @return json response
|
7 |
*/
|
8 |
+
class SortHandler extends BaseHandler {
|
|
|
|
|
|
|
9 |
|
10 |
|
11 |
public function __construct()
|
includes/class-np-handler-syncmenu.php → app/Form/Handlers/SyncMenuHandler.php
RENAMED
@@ -1,17 +1,10 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function nestedpages_syncmenu_handler()
|
4 |
-
{
|
5 |
-
new NP_SyncMenu_Handler;
|
6 |
-
}
|
7 |
-
|
8 |
-
require_once('class-np-handler-base.php');
|
9 |
|
10 |
/**
|
11 |
* Turn on/off menu sync
|
12 |
* @return json response
|
13 |
*/
|
14 |
-
class
|
15 |
|
16 |
public function __construct()
|
17 |
{
|
1 |
+
<?php namespace NestedPages\Form\Handlers;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
/**
|
4 |
* Turn on/off menu sync
|
5 |
* @return json response
|
6 |
*/
|
7 |
+
class SyncMenuHandler extends BaseHandler {
|
8 |
|
9 |
public function __construct()
|
10 |
{
|
includes/class-np-validation.php → app/Form/Validation/Validation.php
RENAMED
@@ -1,10 +1,8 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Nested Pages Form Validation
|
5 |
*/
|
6 |
-
class
|
7 |
-
|
8 |
|
9 |
/**
|
10 |
* Validate Post IDs in an array of posts
|
@@ -19,6 +17,7 @@ class NP_Validation {
|
|
19 |
}
|
20 |
}
|
21 |
|
|
|
22 |
/**
|
23 |
* Validate IDs in an array (tax ids)
|
24 |
*/
|
1 |
+
<?php namespace NestedPages\Form\Validation;
|
|
|
2 |
/**
|
3 |
* Nested Pages Form Validation
|
4 |
*/
|
5 |
+
class Validation {
|
|
|
6 |
|
7 |
/**
|
8 |
* Validate Post IDs in an array of posts
|
17 |
}
|
18 |
}
|
19 |
|
20 |
+
|
21 |
/**
|
22 |
* Validate IDs in an array (tax ids)
|
23 |
*/
|
includes/class-np-helpers.php → app/Helpers.php
RENAMED
@@ -1,8 +1,8 @@
|
|
1 |
-
<?php
|
2 |
/**
|
3 |
* Helper Functions
|
4 |
*/
|
5 |
-
class
|
6 |
|
7 |
/**
|
8 |
* Verify URL Format
|
@@ -16,6 +16,7 @@ class NP_Helpers {
|
|
16 |
return $url;
|
17 |
}
|
18 |
|
|
|
19 |
/**
|
20 |
* Plugin Root Directory
|
21 |
*/
|
@@ -24,12 +25,25 @@ class NP_Helpers {
|
|
24 |
return plugins_url() . '/wp-simple-locator';
|
25 |
}
|
26 |
|
|
|
27 |
/**
|
28 |
* View
|
29 |
*/
|
30 |
public static function view($file)
|
31 |
{
|
32 |
-
return dirname(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
}
|
34 |
|
35 |
}
|
1 |
+
<?php namespace NestedPages;
|
2 |
/**
|
3 |
* Helper Functions
|
4 |
*/
|
5 |
+
class Helpers {
|
6 |
|
7 |
/**
|
8 |
* Verify URL Format
|
16 |
return $url;
|
17 |
}
|
18 |
|
19 |
+
|
20 |
/**
|
21 |
* Plugin Root Directory
|
22 |
*/
|
25 |
return plugins_url() . '/wp-simple-locator';
|
26 |
}
|
27 |
|
28 |
+
|
29 |
/**
|
30 |
* View
|
31 |
*/
|
32 |
public static function view($file)
|
33 |
{
|
34 |
+
return dirname(__FILE__) . '/Views/' . $file . '.php';
|
35 |
+
}
|
36 |
+
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Link to the default WP Pages listing
|
40 |
+
* @since 1.2
|
41 |
+
* @return string
|
42 |
+
*/
|
43 |
+
public static function defaultPagesLink()
|
44 |
+
{
|
45 |
+
$link = esc_url( admin_url('edit.php?post_type=page') );
|
46 |
+
return $link;
|
47 |
}
|
48 |
|
49 |
}
|
app/NestedPages.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Static Wrapper for Bootstrap Class
|
4 |
+
* Prevents T_STRING error when checking for 5.3.2
|
5 |
+
*/
|
6 |
+
class NestedPages {
|
7 |
+
|
8 |
+
public static function init()
|
9 |
+
{
|
10 |
+
// dev/live
|
11 |
+
global $np_env;
|
12 |
+
$np_env = 'live';
|
13 |
+
|
14 |
+
global $np_version;
|
15 |
+
$np_version = '1.2.0';
|
16 |
+
|
17 |
+
$app = new NestedPages\Bootstrap;
|
18 |
+
}
|
19 |
+
}
|
includes/class-np-redirects.php → app/Redirects.php
RENAMED
@@ -1,8 +1,8 @@
|
|
1 |
-
<?php
|
2 |
/**
|
3 |
-
* Redirects in admin
|
4 |
*/
|
5 |
-
class
|
6 |
|
7 |
|
8 |
public function __construct()
|
@@ -28,6 +28,7 @@ class NP_Redirects {
|
|
28 |
}
|
29 |
}
|
30 |
|
|
|
31 |
/**
|
32 |
* Redirect to nested pages after page moved out of trash
|
33 |
*/
|
1 |
+
<?php namespace NestedPages;
|
2 |
/**
|
3 |
+
* Page Redirects in admin
|
4 |
*/
|
5 |
+
class Redirects {
|
6 |
|
7 |
|
8 |
public function __construct()
|
28 |
}
|
29 |
}
|
30 |
|
31 |
+
|
32 |
/**
|
33 |
* Redirect to nested pages after page moved out of trash
|
34 |
*/
|
{views → app/Views}/link-form.php
RENAMED
File without changes
|
{views → app/Views}/new-child.php
RENAMED
File without changes
|
{views → app/Views}/pages.php
RENAMED
@@ -12,14 +12,16 @@
|
|
12 |
<?php endif; ?>
|
13 |
</h2>
|
14 |
|
15 |
-
<?php if ( $this->confirmation() )
|
|
|
|
|
16 |
|
17 |
-
<ul class="nestedpages-toggleall" <?php if ( $this->confirmation() ) echo 'style="margin-top:0"';?>>
|
18 |
<li><a href="#" class="np-btn" data-toggle="closed"><?php _e('Expand Pages', 'nestedpages'); ?></a></li>
|
19 |
</ul>
|
20 |
|
21 |
<?php if ( current_user_can('edit_theme_options') ) : ?>
|
22 |
-
<div class="np-sync-menu-cont" <?php if ( $this->confirmation() ) echo 'style="margin-top:2px;"';?>>
|
23 |
<label>
|
24 |
<input type="checkbox" name="np_sync_menu" class="np-sync-menu" value="sync" <?php if ( get_option('nestedpages_menusync') == 'sync' ) echo 'checked'; ?>/> <?php _e('Sync Menu', 'nestedpages'); ?>
|
25 |
</label>
|
@@ -40,7 +42,7 @@
|
|
40 |
<span class="count">(<?php echo $this->post_repo->trashedPagesCount(); ?>)</span></li>
|
41 |
<?php endif; ?>
|
42 |
<?php if ( get_option('nestedpages_hidedefault') !== 'hide' ) : ?>
|
43 |
-
<li> | <a href="<?php echo
|
44 |
<?php endif; ?>
|
45 |
</ul>
|
46 |
|
@@ -53,20 +55,20 @@
|
|
53 |
<?php $this->loopPages(); ?>
|
54 |
|
55 |
<div class="quick-edit quick-edit-form np-inline-modal" style="display:none;">
|
56 |
-
<?php include(
|
57 |
</div>
|
58 |
|
59 |
<?php if ( current_user_can('publish_pages') ) : ?>
|
60 |
<div class="quick-edit quick-edit-form-redirect np-inline-modal" style="display:none;">
|
61 |
-
<?php include(
|
62 |
</div>
|
63 |
|
64 |
<div class="new-child new-child-form np-inline-modal" style="display:none;">
|
65 |
-
<?php include(
|
66 |
</div>
|
67 |
<?php endif; ?>
|
68 |
</div>
|
69 |
|
70 |
</div><!-- .wrap -->
|
71 |
|
72 |
-
<?php include(
|
12 |
<?php endif; ?>
|
13 |
</h2>
|
14 |
|
15 |
+
<?php if ( $this->confirmation->getMessage() ) : ?>
|
16 |
+
<div id="message" class="updated below-h2"><p><?php echo $this->confirmation->getMessage(); ?></p></div>
|
17 |
+
<?php endif; ?>
|
18 |
|
19 |
+
<ul class="nestedpages-toggleall" <?php if ( $this->confirmation->getMessage() ) echo 'style="margin-top:0"';?>>
|
20 |
<li><a href="#" class="np-btn" data-toggle="closed"><?php _e('Expand Pages', 'nestedpages'); ?></a></li>
|
21 |
</ul>
|
22 |
|
23 |
<?php if ( current_user_can('edit_theme_options') ) : ?>
|
24 |
+
<div class="np-sync-menu-cont" <?php if ( $this->confirmation->getMessage() ) echo 'style="margin-top:2px;"';?>>
|
25 |
<label>
|
26 |
<input type="checkbox" name="np_sync_menu" class="np-sync-menu" value="sync" <?php if ( get_option('nestedpages_menusync') == 'sync' ) echo 'checked'; ?>/> <?php _e('Sync Menu', 'nestedpages'); ?>
|
27 |
</label>
|
42 |
<span class="count">(<?php echo $this->post_repo->trashedPagesCount(); ?>)</span></li>
|
43 |
<?php endif; ?>
|
44 |
<?php if ( get_option('nestedpages_hidedefault') !== 'hide' ) : ?>
|
45 |
+
<li> | <a href="<?php echo NestedPages\Helpers::defaultPagesLink(); ?>"><?php _e('Default'); ?> <?php _e($this->post_type->labels->name); ?></a></li>
|
46 |
<?php endif; ?>
|
47 |
</ul>
|
48 |
|
55 |
<?php $this->loopPages(); ?>
|
56 |
|
57 |
<div class="quick-edit quick-edit-form np-inline-modal" style="display:none;">
|
58 |
+
<?php include( NestedPages\Helpers::view('quickedit') ); ?>
|
59 |
</div>
|
60 |
|
61 |
<?php if ( current_user_can('publish_pages') ) : ?>
|
62 |
<div class="quick-edit quick-edit-form-redirect np-inline-modal" style="display:none;">
|
63 |
+
<?php include( NestedPages\Helpers::view('quickedit-redirect') ); ?>
|
64 |
</div>
|
65 |
|
66 |
<div class="new-child new-child-form np-inline-modal" style="display:none;">
|
67 |
+
<?php include( NestedPages\Helpers::view('new-child') ); ?>
|
68 |
</div>
|
69 |
<?php endif; ?>
|
70 |
</div>
|
71 |
|
72 |
</div><!-- .wrap -->
|
73 |
|
74 |
+
<?php include( NestedPages\Helpers::view('link-form') ); ?>
|
{views → app/Views}/quickedit-redirect.php
RENAMED
File without changes
|
{views → app/Views}/quickedit.php
RENAMED
@@ -108,7 +108,7 @@
|
|
108 |
<?php endif; // Edit theme options?>
|
109 |
|
110 |
|
111 |
-
<?php if ( $this->user->canSortPages() ) :
|
112 |
<div class="form-control np-toggle-options">
|
113 |
<a href="#" class="np-btn np-btn-half np-toggle-menuoptions"><?php _e('Menu Options', 'nestedpages'); ?></a>
|
114 |
<?php if ( !empty($this->h_taxonomies) ) : ?>
|
@@ -141,7 +141,7 @@
|
|
141 |
<?php endif; // if taxonomies ?>
|
142 |
|
143 |
|
144 |
-
<?php if ( $this->user->canSortPages() ) :
|
145 |
<div class="np-menuoptions">
|
146 |
<div class="menuoptions-left">
|
147 |
<div class="form-control">
|
108 |
<?php endif; // Edit theme options?>
|
109 |
|
110 |
|
111 |
+
<?php if ( $this->user->canSortPages() ) : ?>
|
112 |
<div class="form-control np-toggle-options">
|
113 |
<a href="#" class="np-btn np-btn-half np-toggle-menuoptions"><?php _e('Menu Options', 'nestedpages'); ?></a>
|
114 |
<?php if ( !empty($this->h_taxonomies) ) : ?>
|
141 |
<?php endif; // if taxonomies ?>
|
142 |
|
143 |
|
144 |
+
<?php if ( $this->user->canSortPages() ) : ?>
|
145 |
<div class="np-menuoptions">
|
146 |
<div class="menuoptions-left">
|
147 |
<div class="form-control">
|
{views → app/Views}/row-redirect.php
RENAMED
@@ -10,7 +10,7 @@
|
|
10 |
<?php if ( current_user_can('edit_theme_options') ) : ?>
|
11 |
<i class="handle np-icon-menu"></i>
|
12 |
<?php endif; ?>
|
13 |
-
<a href="<?php echo
|
14 |
<span class="title"><?php the_title(); ?> <i class="np-icon-link"></i></span>
|
15 |
<?php
|
16 |
|
@@ -43,7 +43,7 @@
|
|
43 |
data-id="<?php echo get_the_id(); ?>"
|
44 |
data-parentid="<?php echo $this->post_data['parent_id']; ?>"
|
45 |
data-title="<?php the_title(); ?>"
|
46 |
-
data-url="<?php echo
|
47 |
data-status="<?php echo get_post_status(); ?>"
|
48 |
data-np-status="<?php echo $this->post_data['np_status']; ?>"
|
49 |
data-navstatus="<?php echo $this->post_data['nav_status']; ?>"
|
10 |
<?php if ( current_user_can('edit_theme_options') ) : ?>
|
11 |
<i class="handle np-icon-menu"></i>
|
12 |
<?php endif; ?>
|
13 |
+
<a href="<?php echo NestedPages\Helpers::check_url(get_the_content()); ?>" class="page-link page-title" target="_blank">
|
14 |
<span class="title"><?php the_title(); ?> <i class="np-icon-link"></i></span>
|
15 |
<?php
|
16 |
|
43 |
data-id="<?php echo get_the_id(); ?>"
|
44 |
data-parentid="<?php echo $this->post_data['parent_id']; ?>"
|
45 |
data-title="<?php the_title(); ?>"
|
46 |
+
data-url="<?php echo NestedPages\Helpers::check_url(get_the_content()); ?>"
|
47 |
data-status="<?php echo get_post_status(); ?>"
|
48 |
data-np-status="<?php echo $this->post_data['np_status']; ?>"
|
49 |
data-navstatus="<?php echo $this->post_data['nav_status']; ?>"
|
{views → app/Views}/row.php
RENAMED
File without changes
|
app/Views/settings-general.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$allowsorting = get_option('nestedpages_allowsorting', array());
|
3 |
+
if ( $allowsorting == "" ) $allowsorting = array();
|
4 |
+
|
5 |
+
settings_fields( 'nestedpages-general' );
|
6 |
+
?>
|
7 |
+
|
8 |
+
<tr valign="top">
|
9 |
+
<th scope="row"><?php _e('Nested Pages Version', 'nestedpages'); ?></th>
|
10 |
+
<td><strong><?php echo get_option('nestedpages_version'); ?></strong></td>
|
11 |
+
</tr>
|
12 |
+
<tr valign="top">
|
13 |
+
<th scope="row"><?php _e('Menu Name', 'nestedpages'); ?></th>
|
14 |
+
<td>
|
15 |
+
<input type="text" name="nestedpages_menu" id="nestedpages_menu" value="<?php echo $this->menu->name; ?>">
|
16 |
+
<p><em><?php _e('Important: Once the menu name has changed, theme files should be updated to reference the new name.', 'nestedpages'); ?></em></p>
|
17 |
+
</td>
|
18 |
+
</tr>
|
19 |
+
<tr valign="top">
|
20 |
+
<th scope="row"><?php _e('Hide Default Pages', 'nestedpages'); ?></th>
|
21 |
+
<td>
|
22 |
+
<label>
|
23 |
+
<input type="checkbox" id="nestedpages_hidedefault" name="nestedpages_hidedefault" <?php if ( get_option('nestedpages_hidedefault') == 'hide') echo 'checked'; ?> value="hide" >
|
24 |
+
<?php _e('Hide Default Pages', 'nestedpages'); ?>
|
25 |
+
</label>
|
26 |
+
</td>
|
27 |
+
</tr>
|
28 |
+
<tr valign="top">
|
29 |
+
<th scope="row"><?php _e('Allow Page Sorting', 'nestedpages'); ?></th>
|
30 |
+
<td>
|
31 |
+
<?php foreach ( $this->user_repo->allRoles() as $role ) : ?>
|
32 |
+
<label>
|
33 |
+
<input type="checkbox" name="nestedpages_allowsorting[]" value="<?php echo $role; ?>" <?php if ( in_array($role, $allowsorting) ) echo 'checked'; ?> >
|
34 |
+
<?php echo $role; ?>
|
35 |
+
</label>
|
36 |
+
<input type="hidden" name="nestedpages_menusync" value="<?php echo get_option('nestedpages_menusync'); ?>">
|
37 |
+
<br />
|
38 |
+
<?php endforeach; ?>
|
39 |
+
<p><em><?php _e('Admins always have sorting ability.', 'nestedpages'); ?></em></p>
|
40 |
+
</td>
|
41 |
+
</tr>
|
app/Views/settings-posttypes.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
//var_dump($this->getPostTypes());
|
5 |
+
?>
|
app/Views/settings.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap">
|
2 |
+
<h1><?php _e('Nested Pages Settings', 'nestedpages'); ?></h1>
|
3 |
+
|
4 |
+
<h2 class="nav-tab-wrapper">
|
5 |
+
<a class="nav-tab <?php if ( $tab == 'general' ) echo 'nav-tab-active'; ?>" href="options-general.php?page=nested-pages-settings"><?php _e('General', 'nestedpages'); ?></a>
|
6 |
+
<?php if ( count($this->getPostTypes()) > 0 ) : ?>
|
7 |
+
<?php /*
|
8 |
+
<a class="nav-tab <?php if ( $tab == 'posttypes' ) echo 'nav-tab-active'; ?>" href="options-general.php?page=nested-pages-settings&tab=posttypes"><?php _e('Post Types', 'nestedpages'); ?></a>
|
9 |
+
*/ ?>
|
10 |
+
<?php endif; ?>
|
11 |
+
</h2>
|
12 |
+
|
13 |
+
<form method="post" enctype="multipart/form-data" action="options.php">
|
14 |
+
<table class="form-table">
|
15 |
+
<?php include NestedPages\Helpers::view('settings-' . $tab); ?>
|
16 |
+
</table>
|
17 |
+
<?php submit_button(); ?>
|
18 |
+
</form>
|
19 |
+
</div><!-- .wrap -->
|
assets/css/nestedpages.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
body{-webkit-animation-delay:0.1s;-webkit-animation-name:fontfix;-webkit-animation-duration:0.1s;-webkit-animation-iteration-count:1;-webkit-animation-timing-function:linear;}@-webkit-keyframes fontfix{from{opacity:1;}to{opacity:1;}}@font-face{font-family:'nestedpages';src:url('fonts/nestedpages.eot');}@font-face{font-family:'nestedpages';src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'),url(data:application/font-woff;charset=utf-8;base64,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) format('woff');font-weight:normal;font-style:normal;}[class^="np-icon-"],[class*=" np-icon-"]{font-family:'nestedpages';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.np-icon-no:before{content:"\e601";}.np-icon-yes:before{content:"\e602";}.np-icon-menu:before{content:"\e603";}.np-icon-arrow-down:before{content:"\e604";}.np-icon-arrow-right:before{content:"\e605";}.np-icon-sub-menu:before{content:"\e600";}.np-icon-arrows-alt:before{content:"\f0b2";}.np-icon-pencil:before{content:"\e608";}.np-icon-bubble:before{content:"\e607";}.np-icon-lock:before{content:"\e609";}.np-icon-remove:before{content:"\e60a";}.np-icon-list:before{content:"\e60d";}.np-icon-menu2:before{content:"\e606";}.np-icon-link:before{content:"\e612";}.np-icon-eye:before{content:"\e60b";}.np-icon-eye-blocked:before{content:"\e60c";}.np-icon-mail:before{content:"\e60e";}.np-icon-github:before{content:"\e60f";}.np-icon-wordpress:before{content:"\e610";}.np-icon-linkedin:before{content:"\e611";}.np-btn,.np-toggle-edit{text-decoration:none;color:#555;display:inline-block;background-color:#f7f7f7;border:1px solid #e1e1e1;padding:3px 8px;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0, 0, 0, 0.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0, 0, 0, 0.08);-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.np-btn:hover,.np-toggle-edit:hover{background-color:#0074a2;color:#ffffff;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25),0 1px 0 rgba(0, 0, 0, 0.08);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25),0 1px 0 rgba(0, 0, 0, 0.08);border-color:#0074a2;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.np-btn-half{float:left;width:47%;padding:3px 0px;text-align:center;}.np-btn-half.btn-right{float:right;}.np-btn-trash{background-color:#e14d43;border-color:#e14d43;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.3),0 1px 0 rgba(0, 0, 0, 0.08);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.3),0 1px 0 rgba(0, 0, 0, 0.08);color:#ffffff;}.np-btn-trash:hover{background-color:#ba251e;border-color:#ba251e;}.np-toggle-edit{display:none;float:right;margin-right:10px;}.np-toggle-edit.active{background-color:#0074a2;color:#ffffff;-webkit-box-shadow:none;box-shadow:none;border-color:#0074a2;}@media (max-width: 767px){.np-toggle-edit{display:inline-block;}}.np-quickedit-error{border-left:4px solid #dd3d36;padding:4px 0 4px 8px;margin-bottom:10px;background-color:#f9f9f9;}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;opacity:0.85;}.modal-open{overflow:hidden;}.np-modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;-webkit-overflow-scrolling:touch;outline:0;}.np-modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out;}.np-modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0);}.np-modal .modal-open .modal{overflow-x:hidden;overflow-y:auto;}.np-modal .modal-dialog{position:relative;width:auto;margin:10px auto 0px auto;max-width:500px;}.np-modal .modal-content{position:relative;background-color:#ffffff;-webkit-box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0;}.np-modal .modal-header{padding:8px;background-color:#ebebeb;}.np-modal .modal-header .sr-only{display:none;}.np-modal .modal-header .close{margin-top:-2px;}.np-modal .modal-title{margin:0;}.np-modal .modal-body{position:relative;padding:10px;}.np-modal .modal-footer{padding:10px;text-align:right;background-color:#404040;zoom:1;}.np-modal .modal-footer:before,.np-modal .modal-footer:after{content:" ";display:table;}.np-modal .modal-footer:after{clear:both;}.np-modal .modal-footer .modal-close{float:left;}.np-modal .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll;}.np-inline-overlay{position:fixed;width:100%;height:100%;background-color:rgba(0, 0, 0, 0.4);z-index:998;top:0;right:0;bottom:0;left:0;opacity:0;-webkit-transition:opacity 200ms ease;-o-transition:opacity 200ms ease;transition:opacity 200ms ease;}.np-inline-overlay.active{opacity:1;-webkit-transition:opacity 200ms ease;-o-transition:opacity 200ms ease;transition:opacity 200ms ease;}.np-inline-modal{position:relative;z-index:999;background-color:#ffffff;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0px 0px 4px 0px rgba(0, 0, 0, 0.5);box-shadow:0px 0px 4px 0px rgba(0, 0, 0, 0.5);}.nestedpages-toggleall{float:right;margin-top:-30px;}.np-toggle-publish{color:#999999;}.np-toggle-publish.active{color:#333;font-weight:bold;}.np-sync-menu-cont{float:right;margin:-27px 15px 0px 0px;}#nested-loading{display:none;float:right;width:30px;margin:-31px 120px 0 0;}.np-tabs{background-color:#ebebeb;padding:0px;}.np-tabs ul{text-align:left;list-style-type:none;margin:0;padding:0;}.np-tabs ul li{display:inline-block;margin:0;}.np-tabs ul li a{display:block;text-decoration:none;padding:5px 10px;}.np-tabs ul li a.active{position:relative;color:#333;background-color:#ffffff;}.wppages-top-tools{margin-bottom:20px;padding-top:10px;}.wppages-top-tools a{text-decoration:none;}.wppages-handle-expand{float:left;background-color:#f2f2f2;font-size:18px;width:46px;height:46px;margin-right:5px;text-align:center;border-right:1px solid #e1e1e1;}.wppages-handle-expand div{background-color:#ffffff;border:1px solid #e1e1e1;width:24px;height:24px;line-height:24px;-webkit-border-radius:15px;border-radius:15px;margin-top:9px;cursor:pointer;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.wppages-handle-expand div:hover{background-color:#0074a2;border-color:#0074a2;color:#ffffff;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.nestedpages{clear:both;-webkit-border-radius:4px;border-radius:4px;}.nestedpages .ui-sortable-placeholder{display:block !important;position:relative;min-height:46px;border:0;border:1px dashed #0074a2 !important;background-color:#effaff;margin:0;}.nestedpages .ui-sortable-helper{opacity:0.8;-webkit-box-shadow:2px 2px 3px 0px rgba(0, 0, 0, 0.5);box-shadow:2px 2px 3px 0px rgba(0, 0, 0, 0.5);}.nestedpages ol{list-style-type:none;clear:both;margin:0;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.06);box-shadow:0 1px 1px rgba(0, 0, 0, 0.06);border:1px solid #e5e5e5;-webkit-border-radius:3px;border-radius:3px;}.nestedpages ol a{text-decoration:none;}.nestedpages ol .page-link{line-height:26px;}.nestedpages ol .page-link .edit-indicator{margin-left:10px;display:none;}.nestedpages ol .page-link .edit-indicator i{font-size:12px;margin-right:3px;}.nestedpages ol .page-link:hover .edit-indicator{display:inline-block;}.nestedpages ol .locked{color:#333;margin-left:20px;}.nestedpages ol .locked em{font-style:normal;}.nestedpages ol .status{color:#999999;margin:0px 10px;}.nestedpages ol .np-icon-eye-blocked{color:#999999;}.nestedpages ol .nav-status{color:#b3b3b3;}.nestedpages ol .np-hide{display:none;}.nestedpages ol .np-seo-indicator{display:block;float:right;width:12px;height:12px;-webkit-border-radius:8px;border-radius:8px;background-color:#999999;margin:6px 10px 0 0;}.nestedpages ol .np-seo-indicator.good{background-color:#7ad03a;}.nestedpages ol .np-seo-indicator.ok{background-color:#ffba00;}.nestedpages ol .np-seo-indicator.poor{background-color:#ee7c1b;}.nestedpages ol .np-seo-indicator.bad{background-color:#dd3d36;}.nestedpages ol .np-seo-indicator.warn{background-color:maroon;}.nestedpages ol .np-seo-indicator.wrong{background-color:red;}.nestedpages ol li{margin:0;border-top:1px solid #e1e1e1;background-color:#0074a2;}.nestedpages ol li.first{border:0;}.nestedpages ol li:first-child{border:0;}.nestedpages ol li.no-border{border:0;}.nestedpages ol ol{display:none;-webkit-border-radius:0;border-radius:0;list-style-type:none;border:0;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid #e1e1e1;}.nestedpages .child-toggle{float:left;margin:-10px 10px 0 0;width:46px;height:46px;background-color:#f0f0f0;text-align:center;}.nestedpages .child-toggle a{display:inline-block;margin-top:7px;width:28px;height:28px;background-color:#ffffff;border:1px solid #e1e1e1;-webkit-border-radius:20px;border-radius:20px;font-size:20px;line-height:30px;color:#333;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.nestedpages .child-toggle a i{line-height:26px;}.nestedpages .child-toggle a:hover{background-color:#0074a2;color:#ffffff;border-color:#0074a2;}.nestedpages .handle{display:inline-block;cursor:move;font-size:20px;color:#b3b3b3;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;position:relative;top:3px;}.nestedpages .handle:hover{-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;color:#0074a2;}.nestedpages .np-icon-sub-menu{display:none;color:#999999;position:relative;left:2px;}.nestedpages .handle,.nestedpages .np-icon-sub-menu{width:30px;height:46px;line-height:36px;margin-top:-10px;}.nestedpages li ol .row .np-icon-sub-menu{display:inline-block;}.nestedpages li ol .row .handle{display:none;}.nestedpages li ol .row:hover .np-icon-sub-menu{display:none;}.nestedpages li ol .row:hover .handle{display:inline-block;}.nestedpages .row{background-color:#ffffff;display:block;padding:10px 0px 0px 0px;height:36px;zoom:1;}.nestedpages .row:before,.nestedpages .row:after{content:" ";display:table;}.nestedpages .row:after{clear:both;}.nestedpages .row:hover{background-color:#f0f0f0;}.nestedpages .row.np-updated{background-color:#e9f7df;-webkit-transition:background-color 400ms ease;-o-transition:background-color 400ms ease;transition:background-color 400ms ease;}.nestedpages .row.np-updated-show{background-color:#ffffff;-webkit-transition:background-color 400ms ease;-o-transition:background-color 400ms ease;transition:background-color 400ms ease;}.nestedpages ol li ol .row-inner{padding-left:86px;}.nestedpages ol li ol li ol .row-inner{padding-left:116px;}.nestedpages ol li ol li ol li ol .row-inner{padding-left:156px;}.nestedpages .action-buttons{display:none;float:right;margin:0 10px 0 0;}.nestedpages .action-buttons a{margin:0 0 0 -5px;}.nestedpages .action-buttons a.np-btn-trash{margin-left:4px;}.nestedpages-tools{zoom:1;clear:both;margin-bottom:10px;}.nestedpages-tools:before,.nestedpages-tools:after{content:" ";display:table;}.nestedpages-tools:after{clear:both;}.nestedpages-tools .subsubsub{margin:0;}.np-search{float:right;}@media (min-width: 768px){.nestedpages .row:hover .action-buttons{display:block;}}@media (max-width: 767px){.nestedpages ol .page-link{line-height:24px;}.nestedpages ol .page-link:hover span{display:none;}.nestedpages ol .locked em{display:none;}.nestedpages .child-toggle{background:transparent;}.nestedpages .row{height:auto;}.nestedpages .action-buttons{display:none;background-color:#0074a2;float:none;margin:0;padding:8px;}.nestedpages .action-buttons a{margin-left:5px;}}.nestedpages .quick-edit .form-interior,.nestedpages .new-child .form-interior{padding:10px;}.nestedpages .quick-edit h3,.nestedpages .new-child h3{margin:0 0 8px 0;font-size:14px;}.nestedpages .quick-edit h3 span,.nestedpages .new-child h3 span{float:right;font-size:12px;}.nestedpages .quick-edit h3 span em,.nestedpages .new-child h3 span em{font-weight:normal;font-style:normal;color:#808080;}.nestedpages .quick-edit .fields,.nestedpages .new-child .fields{margin-bottom:10px;background:url('../images/border.png') repeat-y;background-position:center;zoom:1;}.nestedpages .quick-edit .fields:before,.nestedpages .quick-edit .fields:after,.nestedpages .new-child .fields:before,.nestedpages .new-child .fields:after{content:" ";display:table;}.nestedpages .quick-edit .fields:after,.nestedpages .new-child .fields:after{clear:both;}.nestedpages .quick-edit .left,.nestedpages .new-child .left{float:left;width:48%;}.nestedpages .quick-edit .right,.nestedpages .new-child .right{float:right;width:48%;}.nestedpages .quick-edit label,.nestedpages .new-child label{font-style:oblique;}.nestedpages .quick-edit .buttons,.nestedpages .new-child .buttons{clear:both;zoom:1;background-color:#404040;padding:8px;}.nestedpages .quick-edit .buttons:before,.nestedpages .quick-edit .buttons:after,.nestedpages .new-child .buttons:before,.nestedpages .new-child .buttons:after{content:" ";display:table;}.nestedpages .quick-edit .buttons:after,.nestedpages .new-child .buttons:after{clear:both;}.nestedpages .quick-edit .form-control,.nestedpages .new-child .form-control{clear:both;zoom:1;margin-bottom:5px;}.nestedpages .quick-edit .form-control:before,.nestedpages .quick-edit .form-control:after,.nestedpages .new-child .form-control:before,.nestedpages .new-child .form-control:after{content:" ";display:table;}.nestedpages .quick-edit .form-control:after,.nestedpages .new-child .form-control:after{clear:both;}.nestedpages .quick-edit .form-control input[type='text'],.nestedpages .quick-edit .form-control input[type='password'],.nestedpages .quick-edit .form-control select,.nestedpages .new-child .form-control input[type='text'],.nestedpages .new-child .form-control input[type='password'],.nestedpages .new-child .form-control select{float:right;width:75%;}.nestedpages .quick-edit .form-control label,.nestedpages .new-child .form-control label{float:left;width:20%;}.nestedpages .quick-edit .form-control.password label,.nestedpages .new-child .form-control.password label{width:25%;}.nestedpages .quick-edit .form-control.password input[type="text"],.nestedpages .new-child .form-control.password input[type="text"]{float:left;width:35%;}.nestedpages .quick-edit .form-control.password .private,.nestedpages .new-child .form-control.password .private{float:right;width:35%;margin-top:4px;}.nestedpages .quick-edit .form-control.password .private label,.nestedpages .new-child .form-control.password .private label{width:auto;float:none;}.nestedpages .quick-edit .comments,.nestedpages .new-child .comments{float:right;width:75%;margin-bottom:10px;zoom:1;}.nestedpages .quick-edit .comments:before,.nestedpages .quick-edit .comments:after,.nestedpages .new-child .comments:before,.nestedpages .new-child .comments:after{content:" ";display:table;}.nestedpages .quick-edit .comments:after,.nestedpages .new-child .comments:after{clear:both;}.nestedpages .quick-edit .dates,.nestedpages .new-child .dates{float:right;width:75%;margin-bottom:6px;}.nestedpages .quick-edit .dates select,.nestedpages .new-child .dates select{width:25%;}.nestedpages .quick-edit .dates input,.nestedpages .new-child .dates input{width:12%;}.nestedpages .quick-edit .np-toggle-options,.nestedpages .new-child .np-toggle-options{background-color:#f2f2f2;padding:5px;}.nestedpages .quick-edit .np-taxonomies,.nestedpages .quick-edit .np-menuoptions,.nestedpages .new-child .np-taxonomies,.nestedpages .new-child .np-menuoptions{display:none;clear:both;background-color:#f9f9f9;padding:8px;zoom:1;margin-top:5px;}.nestedpages .quick-edit .np-taxonomies:before,.nestedpages .quick-edit .np-taxonomies:after,.nestedpages .quick-edit .np-menuoptions:before,.nestedpages .quick-edit .np-menuoptions:after,.nestedpages .new-child .np-taxonomies:before,.nestedpages .new-child .np-taxonomies:after,.nestedpages .new-child .np-menuoptions:before,.nestedpages .new-child .np-menuoptions:after{content:" ";display:table;}.nestedpages .quick-edit .np-taxonomies:after,.nestedpages .quick-edit .np-menuoptions:after,.nestedpages .new-child .np-taxonomies:after,.nestedpages .new-child .np-menuoptions:after{clear:both;}.nestedpages .quick-edit .np-taxonomy,.nestedpages .new-child .np-taxonomy{float:left;width:30%;margin-right:3.33%;}.nestedpages .quick-edit .np-taxonomy .title,.nestedpages .new-child .np-taxonomy .title{font-weight:bold;margin-bottom:4px;display:block;}.nestedpages .quick-edit .np-taxonomy li,.nestedpages .new-child .np-taxonomy li{background-color:#ffffff;border:0;}.nestedpages .quick-edit .np-taxonomy textarea,.nestedpages .new-child .np-taxonomy textarea{width:100%;height:6.5em;}.nestedpages .quick-edit .np-menuoptions,.nestedpages .new-child .np-menuoptions{padding:15px;}.nestedpages .quick-edit .np-menuoptions label,.nestedpages .quick-edit .np-menuoptions input[type="text"],.nestedpages .new-child .np-menuoptions label,.nestedpages .new-child .np-menuoptions input[type="text"]{display:block;float:none;width:100%;}.nestedpages .quick-edit .np-menuoptions .menuoptions-left,.nestedpages .new-child .np-menuoptions .menuoptions-left{float:left;width:47%;}.nestedpages .quick-edit .np-menuoptions .menuoptions-right,.nestedpages .new-child .np-menuoptions .menuoptions-right{float:right;width:47%;padding-top:18px;}.nestedpages .quick-edit .np-menuoptions .menuoptions-right label,.nestedpages .new-child .np-menuoptions .menuoptions-right label{margin-bottom:10px;}.nestedpages .quick-edit .np-hide-options,.nestedpages .new-child .np-hide-options{display:none;background-color:#f0f0f0;-webkit-border-radius:3px;border-radius:3px;clear:both;padding:6px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.nestedpages .quick-edit .np-hide-options p,.nestedpages .new-child .np-hide-options p{margin:0;}.nestedpages .quick-edit .np-hide-options label,.nestedpages .new-child .np-hide-options label{display:block;margin-top:4px;font-style:normal;}.nestedpages .quick-edit .new-page-titles,.nestedpages .new-child .new-page-titles{display:block;border:0;}.nestedpages .quick-edit .new-page-titles li,.nestedpages .new-child .new-page-titles li{background:transparent;border:0;padding:4px;zoom:1;}.nestedpages .quick-edit .new-page-titles li:before,.nestedpages .quick-edit .new-page-titles li:after,.nestedpages .new-child .new-page-titles li:before,.nestedpages .new-child .new-page-titles li:after{content:" ";display:table;}.nestedpages .quick-edit .new-page-titles li:after,.nestedpages .new-child .new-page-titles li:after{clear:both;}.nestedpages .quick-edit .new-page-titles li:nth-child(even),.nestedpages .new-child .new-page-titles li:nth-child(even){background-color:#f0f0f0;}.nestedpages .quick-edit .new-page-titles li label,.nestedpages .new-child .new-page-titles li label{margin-top:7px;}.nestedpages .quick-edit .new-page-titles .form-control,.nestedpages .new-child .new-page-titles .form-control{float:right;width:90%;clear:none;}.nestedpages .quick-edit .new-page-titles .np-icon-menu,.nestedpages .new-child .new-page-titles .np-icon-menu{float:left;margin-top:0px;height:auto;line-height:26px;}.nestedpages .quick-edit .new-page-titles .new-child-row div,.nestedpages .new-child .new-page-titles .new-child-row div{float:right;width:75%;margin:2px;zoom:1;}.nestedpages .quick-edit .new-page-titles .new-child-row div:before,.nestedpages .quick-edit .new-page-titles .new-child-row div:after,.nestedpages .new-child .new-page-titles .new-child-row div:before,.nestedpages .new-child .new-page-titles .new-child-row div:after{content:" ";display:table;}.nestedpages .quick-edit .new-page-titles .new-child-row div:after,.nestedpages .new-child .new-page-titles .new-child-row div:after{clear:both;}.nestedpages .quick-edit .new-page-titles .new-child-row div input[type='text'],.nestedpages .new-child .new-page-titles .new-child-row div input[type='text']{float:left;width:80%;}.nestedpages .quick-edit .new-page-titles .new-child-row div a,.nestedpages .new-child .new-page-titles .new-child-row div a{float:right;}.np-qe-loading{display:none;float:right;width:25px;height:25px;margin:2px 10px 0 0;background:url('../images/loading-white.gif') no-repeat;}@media (max-width: 767px){.nestedpages .quick-edit .fields{background:transparent;}.nestedpages .quick-edit .left,.nestedpages .quick-edit .right{float:none;width:100%;}.nestedpages .quick-edit .form-control{margin-bottom:10px;}.nestedpages .quick-edit .form-control input[type='text'],.nestedpages .quick-edit .form-control input[type='password'],.nestedpages .quick-edit .form-control select{float:none;width:100%;}.nestedpages .quick-edit .form-control label{display:block;float:none;width:100%;margin-bottom:4px;}.nestedpages .quick-edit .comments{float:none;width:100%;}.nestedpages .quick-edit .dates{float:none;width:100%;margin-bottom:6px;}}.np-modal-form .form-interior{zoom:1;background:url('../images/border.png') repeat-y;background-position:center;padding:5px 0;}.np-modal-form .form-interior:before,.np-modal-form .form-interior:after{content:" ";display:table;}.np-modal-form .form-interior:after{clear:both;}.np-modal-form .form-control{zoom:1;margin-bottom:10px;}.np-modal-form .form-control:before,.np-modal-form .form-control:after{content:" ";display:table;}.np-modal-form .form-control:after{clear:both;}.np-modal-form .checkbox{margin-bottom:10px;}.np-modal-form .left{float:left;width:45%;}.np-modal-form .right{float:right;width:45%;padding-top:18px;}.np-modal-form label{display:block;}.np-modal-form input[type="text"],.np-modal-form select{width:100%;}.np-modal-form .buttons{clear:both;}
|
1 |
+
body{-webkit-animation-delay:0.1s;-webkit-animation-name:fontfix;-webkit-animation-duration:0.1s;-webkit-animation-iteration-count:1;-webkit-animation-timing-function:linear;}@-webkit-keyframes fontfix{from{opacity:1;}to{opacity:1;}}@font-face{font-family:'nestedpages';src:url('fonts/nestedpages.eot');}@font-face{font-family:'nestedpages';src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'),url(data:application/font-woff;charset=utf-8;base64,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) format('woff');font-weight:normal;font-style:normal;}[class^="np-icon-"],[class*=" np-icon-"]{font-family:'nestedpages';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.np-icon-no:before{content:"\e601";}.np-icon-yes:before{content:"\e602";}.np-icon-menu:before{content:"\e603";}.np-icon-arrow-down:before{content:"\e604";}.np-icon-arrow-right:before{content:"\e605";}.np-icon-sub-menu:before{content:"\e600";}.np-icon-arrows-alt:before{content:"\f0b2";}.np-icon-pencil:before{content:"\e608";}.np-icon-bubble:before{content:"\e607";}.np-icon-lock:before{content:"\e609";}.np-icon-remove:before{content:"\e60a";}.np-icon-list:before{content:"\e60d";}.np-icon-menu2:before{content:"\e606";}.np-icon-link:before{content:"\e612";}.np-icon-eye:before{content:"\e60b";}.np-icon-eye-blocked:before{content:"\e60c";}.np-icon-mail:before{content:"\e60e";}.np-icon-github:before{content:"\e60f";}.np-icon-wordpress:before{content:"\e610";}.np-icon-linkedin:before{content:"\e611";}.np-btn,.np-toggle-edit{text-decoration:none;color:#555;display:inline-block;background-color:#f7f7f7;border:1px solid #e1e1e1;padding:3px 8px;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0, 0, 0, 0.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0, 0, 0, 0.08);-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.np-btn:hover,.np-toggle-edit:hover{background-color:#0074a2;color:#ffffff;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25),0 1px 0 rgba(0, 0, 0, 0.08);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25),0 1px 0 rgba(0, 0, 0, 0.08);border-color:#0074a2;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.np-btn-half{float:left;width:47%;padding:3px 0px;text-align:center;}.np-btn-half.btn-right{float:right;}.np-btn-trash{background-color:#e14d43;border-color:#e14d43;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.3),0 1px 0 rgba(0, 0, 0, 0.08);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.3),0 1px 0 rgba(0, 0, 0, 0.08);color:#ffffff;}.np-btn-trash:hover{background-color:#ba251e;border-color:#ba251e;}.np-toggle-edit{display:none;float:right;margin-right:10px;}.np-toggle-edit.active{background-color:#0074a2;color:#ffffff;-webkit-box-shadow:none;box-shadow:none;border-color:#0074a2;}@media (max-width: 767px){.np-toggle-edit{display:inline-block;}}.np-quickedit-error{border-left:4px solid #dd3d36;padding:4px 0 4px 8px;margin-bottom:10px;background-color:#f9f9f9;}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;opacity:0.85;}.modal-open{overflow:hidden;}.np-modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;-webkit-overflow-scrolling:touch;outline:0;}.np-modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out;}.np-modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0);}.np-modal .modal-open .modal{overflow-x:hidden;overflow-y:auto;}.np-modal .modal-dialog{position:relative;width:auto;margin:10px auto 0px auto;max-width:500px;}.np-modal .modal-content{position:relative;background-color:#ffffff;-webkit-box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0;}.np-modal .modal-header{padding:8px;background-color:#ebebeb;}.np-modal .modal-header .sr-only{display:none;}.np-modal .modal-header .close{margin-top:-2px;}.np-modal .modal-title{margin:0;}.np-modal .modal-body{position:relative;padding:10px;}.np-modal .modal-footer{padding:10px;text-align:right;background-color:#404040;zoom:1;}.np-modal .modal-footer:before,.np-modal .modal-footer:after{content:" ";display:table;}.np-modal .modal-footer:after{clear:both;}.np-modal .modal-footer .modal-close{float:left;}.np-modal .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll;}.np-inline-overlay{position:fixed;width:100%;height:100%;background-color:rgba(0, 0, 0, 0.4);z-index:998;top:0;right:0;bottom:0;left:0;opacity:0;-webkit-transition:opacity 200ms ease;-o-transition:opacity 200ms ease;transition:opacity 200ms ease;}.np-inline-overlay.active{opacity:1;-webkit-transition:opacity 200ms ease;-o-transition:opacity 200ms ease;transition:opacity 200ms ease;}.np-inline-modal{position:relative;z-index:999;background-color:#ffffff;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0px 0px 4px 0px rgba(0, 0, 0, 0.5);box-shadow:0px 0px 4px 0px rgba(0, 0, 0, 0.5);}.nestedpages-toggleall{float:right;margin-top:-30px;}.np-toggle-publish{color:#999999;}.np-toggle-publish.active{color:#333;font-weight:bold;}.np-sync-menu-cont{float:right;margin:-27px 15px 0px 0px;}#nested-loading{display:none;float:right;width:30px;margin:-31px 120px 0 0;}.np-tabs{background-color:#ebebeb;padding:0px;}.np-tabs ul{text-align:left;list-style-type:none;margin:0;padding:0;}.np-tabs ul li{display:inline-block;margin:0;}.np-tabs ul li a{display:block;text-decoration:none;padding:5px 10px;}.np-tabs ul li a.active{position:relative;color:#333;background-color:#ffffff;}.wppages-top-tools{margin-bottom:20px;padding-top:10px;}.wppages-top-tools a{text-decoration:none;}.wppages-handle-expand{float:left;background-color:#f2f2f2;font-size:18px;width:46px;height:46px;margin-right:5px;text-align:center;border-right:1px solid #e1e1e1;}.wppages-handle-expand div{background-color:#ffffff;border:1px solid #e1e1e1;width:24px;height:24px;line-height:24px;-webkit-border-radius:15px;border-radius:15px;margin-top:9px;cursor:pointer;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.wppages-handle-expand div:hover{background-color:#0074a2;border-color:#0074a2;color:#ffffff;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.nestedpages{clear:both;-webkit-border-radius:4px;border-radius:4px;}.nestedpages .ui-sortable-placeholder{display:block !important;position:relative;min-height:46px;border:0;border:1px dashed #0074a2 !important;background-color:#effaff;margin:0;}.nestedpages .ui-sortable-helper{opacity:0.8;-webkit-box-shadow:2px 2px 3px 0px rgba(0, 0, 0, 0.5);box-shadow:2px 2px 3px 0px rgba(0, 0, 0, 0.5);}.nestedpages ol{list-style-type:none;clear:both;margin:0;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.06);box-shadow:0 1px 1px rgba(0, 0, 0, 0.06);border:1px solid #e5e5e5;-webkit-border-radius:3px;border-radius:3px;}.nestedpages ol a{text-decoration:none;}.nestedpages ol .page-link{line-height:26px;}.nestedpages ol .page-link .edit-indicator{margin-left:10px;display:none;}.nestedpages ol .page-link .edit-indicator i{font-size:12px;margin-right:3px;}.nestedpages ol .page-link:hover .edit-indicator{display:inline-block;}.nestedpages ol .locked{color:#333;margin-left:20px;}.nestedpages ol .locked em{font-style:normal;}.nestedpages ol .status{color:#999999;margin:0px 10px;}.nestedpages ol .np-icon-eye-blocked{color:#999999;}.nestedpages ol .nav-status{color:#b3b3b3;}.nestedpages ol .np-hide{display:none;}.nestedpages ol .np-seo-indicator{display:block;float:right;width:12px;height:12px;-webkit-border-radius:8px;border-radius:8px;background-color:#999999;margin:6px 10px 0 0;}.nestedpages ol .np-seo-indicator.good{background-color:#7ad03a;}.nestedpages ol .np-seo-indicator.ok{background-color:#ffba00;}.nestedpages ol .np-seo-indicator.poor{background-color:#ee7c1b;}.nestedpages ol .np-seo-indicator.bad{background-color:#dd3d36;}.nestedpages ol .np-seo-indicator.warn{background-color:maroon;}.nestedpages ol .np-seo-indicator.wrong{background-color:red;}.nestedpages ol li{margin:0;border-top:1px solid #e1e1e1;background-color:#0074a2;}.nestedpages ol li.first{border:0;}.nestedpages ol li:first-child{border:0;}.nestedpages ol li.no-border{border:0;}.nestedpages ol ol{display:none;-webkit-border-radius:0;border-radius:0;list-style-type:none;border:0;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid #e1e1e1;}.nestedpages .child-toggle{float:left;margin:-10px 10px 0 0;width:46px;height:46px;background-color:#f0f0f0;text-align:center;}.nestedpages .child-toggle a{display:inline-block;margin-top:7px;width:28px;height:28px;background-color:#ffffff;border:1px solid #e1e1e1;-webkit-border-radius:20px;border-radius:20px;font-size:20px;line-height:30px;color:#333;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;}.nestedpages .child-toggle a i{line-height:26px;}.nestedpages .child-toggle a:hover{background-color:#0074a2;color:#ffffff;border-color:#0074a2;}.nestedpages .handle{display:inline-block;cursor:move;font-size:20px;color:#b3b3b3;-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;position:relative;top:3px;}.nestedpages .handle:hover{-webkit-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;color:#0074a2;}.nestedpages .np-icon-sub-menu{display:none;color:#999999;position:relative;left:2px;}.nestedpages .handle,.nestedpages .np-icon-sub-menu{width:30px;height:46px;line-height:36px;margin-top:-10px;}.nestedpages li ol .row .np-icon-sub-menu{display:inline-block;}.nestedpages li ol .row .handle{display:none;}.nestedpages li ol .row:hover .np-icon-sub-menu{display:none;}.nestedpages li ol .row:hover .handle{display:inline-block;}.nestedpages .row{background-color:#ffffff;display:block;padding:10px 0px 0px 0px;height:36px;zoom:1;}.nestedpages .row:before,.nestedpages .row:after{content:" ";display:table;}.nestedpages .row:after{clear:both;}.nestedpages .row:hover{background-color:#f0f0f0;}.nestedpages .row.np-updated{background-color:#e9f7df;-webkit-transition:background-color 400ms ease;-o-transition:background-color 400ms ease;transition:background-color 400ms ease;}.nestedpages .row.np-updated-show{background-color:#ffffff;-webkit-transition:background-color 400ms ease;-o-transition:background-color 400ms ease;transition:background-color 400ms ease;}.nestedpages ol li ol .row-inner{padding-left:76px;}.nestedpages ol li ol li ol .row-inner{padding-left:96px;}.nestedpages ol li ol li ol li ol .row-inner{padding-left:116px;}.nestedpages ol li ol li ol li ol li ol .row-inner{padding-left:136px;}.nestedpages ol li ol li ol li ol li ol li ol .row-inner{padding-left:156px;}.nestedpages .action-buttons{display:none;float:right;margin:0 10px 0 0;}.nestedpages .action-buttons a{margin:0 0 0 -5px;}.nestedpages .action-buttons a.np-btn-trash{margin-left:4px;}.nestedpages-tools{zoom:1;clear:both;margin-bottom:10px;}.nestedpages-tools:before,.nestedpages-tools:after{content:" ";display:table;}.nestedpages-tools:after{clear:both;}.nestedpages-tools .subsubsub{margin:0;}.np-search{float:right;}@media (min-width: 768px){.nestedpages .row:hover .action-buttons{display:block;}}@media (max-width: 767px){.nestedpages ol .page-link{line-height:24px;}.nestedpages ol .page-link:hover span{display:none;}.nestedpages ol .locked em{display:none;}.nestedpages .child-toggle{background:transparent;}.nestedpages .row{height:auto;}.nestedpages .action-buttons{display:none;background-color:#0074a2;float:none;margin:0;padding:8px;}.nestedpages .action-buttons a{margin-left:5px;}}.nestedpages .quick-edit .form-interior,.nestedpages .new-child .form-interior{padding:10px;}.nestedpages .quick-edit h3,.nestedpages .new-child h3{margin:0 0 8px 0;font-size:14px;}.nestedpages .quick-edit h3 span,.nestedpages .new-child h3 span{float:right;font-size:12px;}.nestedpages .quick-edit h3 span em,.nestedpages .new-child h3 span em{font-weight:normal;font-style:normal;color:#808080;}.nestedpages .quick-edit .fields,.nestedpages .new-child .fields{margin-bottom:10px;background:url('../images/border.png') repeat-y;background-position:center;zoom:1;}.nestedpages .quick-edit .fields:before,.nestedpages .quick-edit .fields:after,.nestedpages .new-child .fields:before,.nestedpages .new-child .fields:after{content:" ";display:table;}.nestedpages .quick-edit .fields:after,.nestedpages .new-child .fields:after{clear:both;}.nestedpages .quick-edit .left,.nestedpages .new-child .left{float:left;width:48%;}.nestedpages .quick-edit .right,.nestedpages .new-child .right{float:right;width:48%;}.nestedpages .quick-edit label,.nestedpages .new-child label{font-style:oblique;}.nestedpages .quick-edit .buttons,.nestedpages .new-child .buttons{clear:both;zoom:1;background-color:#404040;padding:8px;}.nestedpages .quick-edit .buttons:before,.nestedpages .quick-edit .buttons:after,.nestedpages .new-child .buttons:before,.nestedpages .new-child .buttons:after{content:" ";display:table;}.nestedpages .quick-edit .buttons:after,.nestedpages .new-child .buttons:after{clear:both;}.nestedpages .quick-edit .form-control,.nestedpages .new-child .form-control{clear:both;zoom:1;margin-bottom:5px;}.nestedpages .quick-edit .form-control:before,.nestedpages .quick-edit .form-control:after,.nestedpages .new-child .form-control:before,.nestedpages .new-child .form-control:after{content:" ";display:table;}.nestedpages .quick-edit .form-control:after,.nestedpages .new-child .form-control:after{clear:both;}.nestedpages .quick-edit .form-control input[type='text'],.nestedpages .quick-edit .form-control input[type='password'],.nestedpages .quick-edit .form-control select,.nestedpages .new-child .form-control input[type='text'],.nestedpages .new-child .form-control input[type='password'],.nestedpages .new-child .form-control select{float:right;width:75%;}.nestedpages .quick-edit .form-control label,.nestedpages .new-child .form-control label{float:left;width:20%;}.nestedpages .quick-edit .form-control.password label,.nestedpages .new-child .form-control.password label{width:25%;}.nestedpages .quick-edit .form-control.password input[type="text"],.nestedpages .new-child .form-control.password input[type="text"]{float:left;width:35%;}.nestedpages .quick-edit .form-control.password .private,.nestedpages .new-child .form-control.password .private{float:right;width:35%;margin-top:4px;}.nestedpages .quick-edit .form-control.password .private label,.nestedpages .new-child .form-control.password .private label{width:auto;float:none;}.nestedpages .quick-edit .comments,.nestedpages .new-child .comments{float:right;width:75%;margin-bottom:10px;zoom:1;}.nestedpages .quick-edit .comments:before,.nestedpages .quick-edit .comments:after,.nestedpages .new-child .comments:before,.nestedpages .new-child .comments:after{content:" ";display:table;}.nestedpages .quick-edit .comments:after,.nestedpages .new-child .comments:after{clear:both;}.nestedpages .quick-edit .dates,.nestedpages .new-child .dates{float:right;width:75%;margin-bottom:6px;}.nestedpages .quick-edit .dates select,.nestedpages .new-child .dates select{width:25%;}.nestedpages .quick-edit .dates input,.nestedpages .new-child .dates input{width:12%;}.nestedpages .quick-edit .np-toggle-options,.nestedpages .new-child .np-toggle-options{background-color:#f2f2f2;padding:5px;}.nestedpages .quick-edit .np-taxonomies,.nestedpages .quick-edit .np-menuoptions,.nestedpages .new-child .np-taxonomies,.nestedpages .new-child .np-menuoptions{display:none;clear:both;background-color:#f9f9f9;padding:8px;zoom:1;margin-top:5px;}.nestedpages .quick-edit .np-taxonomies:before,.nestedpages .quick-edit .np-taxonomies:after,.nestedpages .quick-edit .np-menuoptions:before,.nestedpages .quick-edit .np-menuoptions:after,.nestedpages .new-child .np-taxonomies:before,.nestedpages .new-child .np-taxonomies:after,.nestedpages .new-child .np-menuoptions:before,.nestedpages .new-child .np-menuoptions:after{content:" ";display:table;}.nestedpages .quick-edit .np-taxonomies:after,.nestedpages .quick-edit .np-menuoptions:after,.nestedpages .new-child .np-taxonomies:after,.nestedpages .new-child .np-menuoptions:after{clear:both;}.nestedpages .quick-edit .np-taxonomy,.nestedpages .new-child .np-taxonomy{float:left;width:30%;margin-right:3.33%;}.nestedpages .quick-edit .np-taxonomy .title,.nestedpages .new-child .np-taxonomy .title{font-weight:bold;margin-bottom:4px;display:block;}.nestedpages .quick-edit .np-taxonomy li,.nestedpages .new-child .np-taxonomy li{background-color:#ffffff;border:0;}.nestedpages .quick-edit .np-taxonomy textarea,.nestedpages .new-child .np-taxonomy textarea{width:100%;height:6.5em;}.nestedpages .quick-edit .np-menuoptions,.nestedpages .new-child .np-menuoptions{padding:15px;}.nestedpages .quick-edit .np-menuoptions label,.nestedpages .quick-edit .np-menuoptions input[type="text"],.nestedpages .new-child .np-menuoptions label,.nestedpages .new-child .np-menuoptions input[type="text"]{display:block;float:none;width:100%;}.nestedpages .quick-edit .np-menuoptions .menuoptions-left,.nestedpages .new-child .np-menuoptions .menuoptions-left{float:left;width:47%;}.nestedpages .quick-edit .np-menuoptions .menuoptions-right,.nestedpages .new-child .np-menuoptions .menuoptions-right{float:right;width:47%;padding-top:18px;}.nestedpages .quick-edit .np-menuoptions .menuoptions-right label,.nestedpages .new-child .np-menuoptions .menuoptions-right label{margin-bottom:10px;}.nestedpages .quick-edit .np-hide-options,.nestedpages .new-child .np-hide-options{display:none;background-color:#f0f0f0;-webkit-border-radius:3px;border-radius:3px;clear:both;padding:6px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.nestedpages .quick-edit .np-hide-options p,.nestedpages .new-child .np-hide-options p{margin:0;}.nestedpages .quick-edit .np-hide-options label,.nestedpages .new-child .np-hide-options label{display:block;margin-top:4px;font-style:normal;}.nestedpages .quick-edit .new-page-titles,.nestedpages .new-child .new-page-titles{display:block;border:0;}.nestedpages .quick-edit .new-page-titles li,.nestedpages .new-child .new-page-titles li{background:transparent;border:0;padding:4px;zoom:1;}.nestedpages .quick-edit .new-page-titles li:before,.nestedpages .quick-edit .new-page-titles li:after,.nestedpages .new-child .new-page-titles li:before,.nestedpages .new-child .new-page-titles li:after{content:" ";display:table;}.nestedpages .quick-edit .new-page-titles li:after,.nestedpages .new-child .new-page-titles li:after{clear:both;}.nestedpages .quick-edit .new-page-titles li:nth-child(even),.nestedpages .new-child .new-page-titles li:nth-child(even){background-color:#f0f0f0;}.nestedpages .quick-edit .new-page-titles li label,.nestedpages .new-child .new-page-titles li label{margin-top:7px;}.nestedpages .quick-edit .new-page-titles .form-control,.nestedpages .new-child .new-page-titles .form-control{float:right;width:90%;clear:none;}.nestedpages .quick-edit .new-page-titles .np-icon-menu,.nestedpages .new-child .new-page-titles .np-icon-menu{float:left;margin-top:0px;height:auto;line-height:26px;}.nestedpages .quick-edit .new-page-titles .new-child-row div,.nestedpages .new-child .new-page-titles .new-child-row div{float:right;width:75%;margin:2px;zoom:1;}.nestedpages .quick-edit .new-page-titles .new-child-row div:before,.nestedpages .quick-edit .new-page-titles .new-child-row div:after,.nestedpages .new-child .new-page-titles .new-child-row div:before,.nestedpages .new-child .new-page-titles .new-child-row div:after{content:" ";display:table;}.nestedpages .quick-edit .new-page-titles .new-child-row div:after,.nestedpages .new-child .new-page-titles .new-child-row div:after{clear:both;}.nestedpages .quick-edit .new-page-titles .new-child-row div input[type='text'],.nestedpages .new-child .new-page-titles .new-child-row div input[type='text']{float:left;width:80%;}.nestedpages .quick-edit .new-page-titles .new-child-row div a,.nestedpages .new-child .new-page-titles .new-child-row div a{float:right;}.np-qe-loading{display:none;float:right;width:25px;height:25px;margin:2px 10px 0 0;background:url('../images/loading-white.gif') no-repeat;}@media (max-width: 767px){.nestedpages .quick-edit .fields{background:transparent;}.nestedpages .quick-edit .left,.nestedpages .quick-edit .right{float:none;width:100%;}.nestedpages .quick-edit .form-control{margin-bottom:10px;}.nestedpages .quick-edit .form-control input[type='text'],.nestedpages .quick-edit .form-control input[type='password'],.nestedpages .quick-edit .form-control select{float:none;width:100%;}.nestedpages .quick-edit .form-control label{display:block;float:none;width:100%;margin-bottom:4px;}.nestedpages .quick-edit .comments{float:none;width:100%;}.nestedpages .quick-edit .dates{float:none;width:100%;margin-bottom:6px;}}.np-modal-form .form-interior{zoom:1;background:url('../images/border.png') repeat-y;background-position:center;padding:5px 0;}.np-modal-form .form-interior:before,.np-modal-form .form-interior:after{content:" ";display:table;}.np-modal-form .form-interior:after{clear:both;}.np-modal-form .form-control{zoom:1;margin-bottom:10px;}.np-modal-form .form-control:before,.np-modal-form .form-control:after{content:" ";display:table;}.np-modal-form .form-control:after{clear:both;}.np-modal-form .checkbox{margin-bottom:10px;}.np-modal-form .left{float:left;width:45%;}.np-modal-form .right{float:right;width:45%;padding-top:18px;}.np-modal-form label{display:block;}.np-modal-form input[type="text"],.np-modal-form select{width:100%;}.np-modal-form .buttons{clear:both;}
|
assets/js/lib/nestedpages.js
CHANGED
@@ -17,6 +17,7 @@ jQuery(function($){
|
|
17 |
$(document).ready(function(){
|
18 |
add_remove_submenu_toggles();
|
19 |
np_set_borders();
|
|
|
20 |
});
|
21 |
|
22 |
/**
|
@@ -29,6 +30,7 @@ jQuery(function($){
|
|
29 |
$(submenu).toggle();
|
30 |
np_set_borders();
|
31 |
np_sync_user_toggles();
|
|
|
32 |
});
|
33 |
|
34 |
/**
|
@@ -100,6 +102,27 @@ jQuery(function($){
|
|
100 |
});
|
101 |
}
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
/**
|
104 |
* Toggle between showing published pages and all
|
105 |
*/
|
@@ -157,6 +180,7 @@ jQuery(function($){
|
|
157 |
toleranceElement: '> .row',
|
158 |
handle: '.handle',
|
159 |
placeholder: "ui-sortable-placeholder",
|
|
|
160 |
start: function(e, ui){
|
161 |
ui.placeholder.height(ui.item.height());
|
162 |
},
|
@@ -168,6 +192,7 @@ jQuery(function($){
|
|
168 |
function(){
|
169 |
add_remove_submenu_toggles();
|
170 |
np_set_borders();
|
|
|
171 |
}, 100
|
172 |
);
|
173 |
submit_sortable_form();
|
@@ -197,6 +222,7 @@ jQuery(function($){
|
|
197 |
{
|
198 |
var parentList = $(ui.placeholder).parent('ol');
|
199 |
if ( !$(parentList).is(':visible') ){
|
|
|
200 |
$(parentList).show();
|
201 |
}
|
202 |
}
|
@@ -285,7 +311,7 @@ jQuery(function($){
|
|
285 |
type: 'post',
|
286 |
datatype: 'json',
|
287 |
data: {
|
288 |
-
action : '
|
289 |
nonce : nestedpages.np_nonce,
|
290 |
syncmenu : setting
|
291 |
},
|
@@ -391,6 +417,7 @@ jQuery(function($){
|
|
391 |
// Add Array of Taxonomies to the data object
|
392 |
data.h_taxonomies = [];
|
393 |
data.f_taxonomies = [];
|
|
|
394 |
var classes = $(parent_li).attr('class').split(/\s+/);
|
395 |
for ( i = 0; i < classes.length; i++ ){
|
396 |
if ( classes[i].substring(0, 3) === 'in-'){
|
@@ -530,7 +557,7 @@ jQuery(function($){
|
|
530 |
type: 'post',
|
531 |
datatype: 'json',
|
532 |
data : {
|
533 |
-
action : '
|
534 |
nonce : nestedpages.np_nonce,
|
535 |
terms : taxonomies
|
536 |
},
|
@@ -546,10 +573,12 @@ jQuery(function($){
|
|
546 |
*/
|
547 |
function populate_flat_taxonomies(terms)
|
548 |
{
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
|
|
|
|
553 |
}
|
554 |
|
555 |
|
@@ -609,7 +638,7 @@ jQuery(function($){
|
|
609 |
url: ajaxurl,
|
610 |
type: 'post',
|
611 |
datatype: 'json',
|
612 |
-
data: $(form).serialize() + '&action=
|
613 |
success: function(data){
|
614 |
if (data.status === 'error'){
|
615 |
np_remove_qe_loading(form);
|
@@ -907,7 +936,7 @@ jQuery(function($){
|
|
907 |
url: ajaxurl,
|
908 |
type: 'post',
|
909 |
datatype: 'json',
|
910 |
-
data: $(form).serialize() + '&action=
|
911 |
success: function(data){
|
912 |
if (data.status === 'error'){
|
913 |
np_remove_qe_loading(form);
|
@@ -1024,7 +1053,7 @@ jQuery(function($){
|
|
1024 |
url: ajaxurl,
|
1025 |
type: 'post',
|
1026 |
datatype: 'json',
|
1027 |
-
data: data + '&action=
|
1028 |
success: function(data){
|
1029 |
if (data.status === 'error'){
|
1030 |
np_remove_link_loading();
|
@@ -1080,6 +1109,10 @@ jQuery(function($){
|
|
1080 |
html += 'data-navstatus="' + data.nav_status + '" ';
|
1081 |
html += 'data-linktarget="' + data.link_target + '">'
|
1082 |
html += 'Quick Edit</a>';
|
|
|
|
|
|
|
|
|
1083 |
html += '</div></div></div></li>';
|
1084 |
|
1085 |
if ( data.parent_id === "0" ){
|
@@ -1160,7 +1193,7 @@ jQuery(function($){
|
|
1160 |
type: 'post',
|
1161 |
datatype: 'json',
|
1162 |
data: {
|
1163 |
-
action : '
|
1164 |
nonce : nestedpages.np_nonce,
|
1165 |
ids : ids
|
1166 |
},
|
@@ -1306,7 +1339,7 @@ jQuery(function($){
|
|
1306 |
url: ajaxurl,
|
1307 |
type: 'post',
|
1308 |
datatype: 'json',
|
1309 |
-
data: $(form).serialize() + '&action=
|
1310 |
success: function(data){
|
1311 |
if (data.status === 'error'){
|
1312 |
np_remove_qe_loading(form);
|
17 |
$(document).ready(function(){
|
18 |
add_remove_submenu_toggles();
|
19 |
np_set_borders();
|
20 |
+
set_nested_margins();
|
21 |
});
|
22 |
|
23 |
/**
|
30 |
$(submenu).toggle();
|
31 |
np_set_borders();
|
32 |
np_sync_user_toggles();
|
33 |
+
set_nested_margins();
|
34 |
});
|
35 |
|
36 |
/**
|
102 |
});
|
103 |
}
|
104 |
|
105 |
+
/**
|
106 |
+
* Adjust nested margins
|
107 |
+
* @since 1.1.10
|
108 |
+
*/
|
109 |
+
function set_nested_margins()
|
110 |
+
{
|
111 |
+
var lists = $('.nestedpages').find('.nplist');
|
112 |
+
$.each(lists, function(i, v){
|
113 |
+
|
114 |
+
var parent_count = $(this).parents('.nplist').length;
|
115 |
+
var padding = 56;
|
116 |
+
if ( parent_count > 0 ){
|
117 |
+
var padding = ( parent_count * 20 ) + padding;
|
118 |
+
$(this).find('.row-inner').css('padding-left', padding + 'px');
|
119 |
+
} else {
|
120 |
+
$(this).find('.row-inner').css('padding-left', '0px');
|
121 |
+
}
|
122 |
+
|
123 |
+
});
|
124 |
+
}
|
125 |
+
|
126 |
/**
|
127 |
* Toggle between showing published pages and all
|
128 |
*/
|
180 |
toleranceElement: '> .row',
|
181 |
handle: '.handle',
|
182 |
placeholder: "ui-sortable-placeholder",
|
183 |
+
maxLevels: 0,
|
184 |
start: function(e, ui){
|
185 |
ui.placeholder.height(ui.item.height());
|
186 |
},
|
192 |
function(){
|
193 |
add_remove_submenu_toggles();
|
194 |
np_set_borders();
|
195 |
+
set_nested_margins();
|
196 |
}, 100
|
197 |
);
|
198 |
submit_sortable_form();
|
222 |
{
|
223 |
var parentList = $(ui.placeholder).parent('ol');
|
224 |
if ( !$(parentList).is(':visible') ){
|
225 |
+
$(parentList).addClass('nplist');
|
226 |
$(parentList).show();
|
227 |
}
|
228 |
}
|
311 |
type: 'post',
|
312 |
datatype: 'json',
|
313 |
data: {
|
314 |
+
action : 'npsyncMenu',
|
315 |
nonce : nestedpages.np_nonce,
|
316 |
syncmenu : setting
|
317 |
},
|
417 |
// Add Array of Taxonomies to the data object
|
418 |
data.h_taxonomies = [];
|
419 |
data.f_taxonomies = [];
|
420 |
+
|
421 |
var classes = $(parent_li).attr('class').split(/\s+/);
|
422 |
for ( i = 0; i < classes.length; i++ ){
|
423 |
if ( classes[i].substring(0, 3) === 'in-'){
|
557 |
type: 'post',
|
558 |
datatype: 'json',
|
559 |
data : {
|
560 |
+
action : 'npgetTaxonomies',
|
561 |
nonce : nestedpages.np_nonce,
|
562 |
terms : taxonomies
|
563 |
},
|
573 |
*/
|
574 |
function populate_flat_taxonomies(terms)
|
575 |
{
|
576 |
+
if ( terms ){
|
577 |
+
$.each(terms, function(i, v){
|
578 |
+
var textarea = $('#' + i);
|
579 |
+
$(textarea).val(v.join(','));
|
580 |
+
});
|
581 |
+
}
|
582 |
}
|
583 |
|
584 |
|
638 |
url: ajaxurl,
|
639 |
type: 'post',
|
640 |
datatype: 'json',
|
641 |
+
data: $(form).serialize() + '&action=npquickEdit&nonce=' + nestedpages.np_nonce + '&syncmenu=' + syncmenu,
|
642 |
success: function(data){
|
643 |
if (data.status === 'error'){
|
644 |
np_remove_qe_loading(form);
|
936 |
url: ajaxurl,
|
937 |
type: 'post',
|
938 |
datatype: 'json',
|
939 |
+
data: $(form).serialize() + '&action=npquickEditLink&nonce=' + nestedpages.np_nonce + '&syncmenu=' + syncmenu,
|
940 |
success: function(data){
|
941 |
if (data.status === 'error'){
|
942 |
np_remove_qe_loading(form);
|
1053 |
url: ajaxurl,
|
1054 |
type: 'post',
|
1055 |
datatype: 'json',
|
1056 |
+
data: data + '&action=npnewLink&nonce=' + nestedpages.np_nonce + '&syncmenu=' + syncmenu,
|
1057 |
success: function(data){
|
1058 |
if (data.status === 'error'){
|
1059 |
np_remove_link_loading();
|
1109 |
html += 'data-navstatus="' + data.nav_status + '" ';
|
1110 |
html += 'data-linktarget="' + data.link_target + '">'
|
1111 |
html += 'Quick Edit</a>';
|
1112 |
+
|
1113 |
+
// Delete Link
|
1114 |
+
html += '<a href="' + data.delete_link + '" class="np-btn np-btn-trash"><i class="np-icon-remove"></i></a>';
|
1115 |
+
|
1116 |
html += '</div></div></div></li>';
|
1117 |
|
1118 |
if ( data.parent_id === "0" ){
|
1193 |
type: 'post',
|
1194 |
datatype: 'json',
|
1195 |
data: {
|
1196 |
+
action : 'npnestToggle',
|
1197 |
nonce : nestedpages.np_nonce,
|
1198 |
ids : ids
|
1199 |
},
|
1339 |
url: ajaxurl,
|
1340 |
type: 'post',
|
1341 |
datatype: 'json',
|
1342 |
+
data: $(form).serialize() + '&action=npnewChild&nonce=' + nestedpages.np_nonce + '&syncmenu=' + syncmenu,
|
1343 |
success: function(data){
|
1344 |
if (data.status === 'error'){
|
1345 |
np_remove_qe_loading(form);
|
assets/js/nestedpages.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(t){function a(){var a=t(".nplist");t(".page-row").removeClass("no-border"),t.each(a,function(){t(this).find(".page-row:visible:first").addClass("no-border")})}function e(a){var e=t(a.placeholder).parents("ol").length,i=t(".sortable").width(),s=40*e-40,o=i-s;t(a.placeholder).width(o).css("margin-left",s+"px"),n(a)}function n(a){var e=t(a.placeholder).parent("ol");t(e).is(":visible")||t(e).show()}function s(){t(".child-toggle").each(function(){var a=t(this).parent(".row").parent("li");if(t(a).children("ol").length>0){var e=t(a).children("ol:visible").length>0?"np-icon-arrow-down":"np-icon-arrow-right";t(this).html('<a href="#"><i class="'+e+'"></i></a>')}else t(this).empty()})}function o(){t("#np-error").hide(),t("#nested-loading").show();var a=t(".np-sync-menu").is(":checked")?"sync":"nosync";list=t("ol.sortable").nestedSortable("toHierarchy",{startDepthCount:0}),t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:"npsort",nonce:nestedpages.np_nonce,list:list,syncmenu:a},success:function(a){"error"===a.status?(t("#np-error").text(a.message).show(),t("#nested-loading").hide()):t("#nested-loading").hide()}})}function r(a){t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:"npsyncmenu",nonce:nestedpages.np_nonce,syncmenu:a},success:function(t){"error"===t.status&&alert("There was an error saving the sync setting.")}})}function d(a){var e={id:t(a).attr("data-id"),title:t(a).attr("data-title"),slug:t(a).attr("data-slug"),author:t(a).attr("data-author"),cs:t(a).attr("data-commentstatus"),status:t(a).attr("data-status"),template:t(a).attr("data-template"),month:t(a).attr("data-month"),day:t(a).attr("data-day"),year:t(a).attr("data-year"),hour:t(a).attr("data-hour"),minute:t(a).attr("data-minute"),navstatus:t(a).attr("data-navstatus"),npstatus:t(a).attr("data-np-status"),navtitle:t(a).attr("data-navtitle"),navtitleattr:t(a).attr("data-navtitleattr"),navcss:t(a).attr("data-navcss"),linktarget:t(a).attr("data-linktarget"),password:t(a).attr("data-password")},n=t(a).closest(".row").parent("li");e.h_taxonomies=[],e.f_taxonomies=[];var s=t(n).attr("class").split(/\s+/);for(i=0;i<s.length;i++)"in-"===s[i].substring(0,3)&&e.h_taxonomies.push(s[i]),"inf-"===s[i].substring(0,4)&&e.f_taxonomies.push(s[i]);if(t(n).children("ol").length>0)var o=t(n).children("ol"),r=t(".quick-edit-form").clone().insertBefore(o);else var r=t(".quick-edit-form").clone().appendTo(n);t(r).siblings(".row").hide();l(r,e)}function l(a,e){if(t(a).find(".page_id").html("<em>Page ID:</em> "+e.id),t(a).find(".np_id").val(e.id),t(a).find(".np_title").val(e.title),t(a).find(".np_slug").val(e.slug),t(a).find(".np_author select").val(e.author),t(a).find(".np_template").val(e.template),t(a).find(".np_status").val(e.status),t(a).find(".np_nav_title").val(e.navtitle),t(a).find(".np_title_attribute").val(e.navtitleattr),t(a).find(".np_nav_css_classes").val(e.navcss),t(a).find(".post_password").val(e.password),"open"===e.cs&&t(a).find(".np_cs").prop("checked","checked"),"private"===e.status&&(t(a).find(".post_password").prop("readonly",!0),t(a).find(".keep_private").prop("checked",!0)),"hide"===e.npstatus?t(a).find(".np_status").prop("checked","checked"):t(a).find(".np_status").removeAttr("checked"),"hide"===e.navstatus?t(a).find(".np_nav_status").prop("checked","checked"):t(a).find(".np_nav_status").removeAttr("checked"),"_blank"===e.linktarget?t(a).find(".link_target").prop("checked","checked"):t(a).find(".link_target").removeAttr("checked"),"private"===e.status&&t(a).find(".np_status").val("publish"),t(a).find('select[name="mm"]').val(e.month),t(a).find('input[name="jj"]').val(e.day),t(a).find('input[name="aa"]').val(e.year),t(a).find('input[name="hh"]').val(e.hour),t(a).find('input[name="mn"]').val(e.minute),e.hasOwnProperty("h_taxonomies")){var n=e.h_taxonomies;for(i=0;i<n.length;i++){var s="#"+n[i];t(a).find(s).prop("checked","checked")}}f(),t(a).show(),e.hasOwnProperty("f_taxonomies")&&(c(e.f_taxonomies),h(a))}function c(t){var a={};for(i=0;i<t.length;i++){var e=t[i].split("-"),n=e.indexOf("nps"),s=e.splice(n+1);s=s.join("-");var o=t[i].split("-").splice(0,n);o.shift("inf");var r=o.join("-");r in a||(a[r]=[]);var d=a[r];d.push(s)}p(a)}function p(a){t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:"gettax",nonce:nestedpages.np_nonce,terms:a},success:function(t){u(t.terms)}})}function u(a){t.each(a,function(a,e){var n=t("#"+a);t(n).val(e.join(","))})}function h(a){var e=t(a).find("[data-autotag]");t.each(e,function(){var a=t(this).attr("data-taxonomy");t(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+a,{multiple:!0,multipleSep:","})})}function v(){t(".np-quickedit-error").hide(),m(),t(".sortable .quick-edit").remove(),t(".row").show()}function f(){t("body").append('<div class="np-inline-overlay"></div>'),setTimeout(function(){t(".np-inline-overlay").addClass("active")},50)}function m(){t(".np-inline-overlay").removeClass("active").remove()}function g(a){t(".np-quickedit-error").hide();var e=t(".np-sync-menu").is(":checked")?"sync":"nosync";t.ajax({url:ajaxurl,type:"post",datatype:"json",data:t(a).serialize()+"&action=npquickedit&nonce="+nestedpages.np_nonce+"&syncmenu="+e,success:function(e){"error"===e.status?(x(a),t(a).find(".np-quickedit-error").text(e.message).show()):(x(a),_(a,e.post_data),C(a))}})}function _(a,e){var n=t(a).parent(".quick-edit").siblings(".row");t(n).find(".title").text(e.post_title);var i=t(n).find(".status");if(t(i).text("publish"!==e._status&&"future"!==e._status?"("+e._status+")":"private"===e.keep_private?"("+e.keep_private+")":""),""!==e.post_password){var s=t(i).text();s+=' <i class="np-icon-lock"></i>',t(i).html(s)}var o=t(n).find(".nav-status");t(o).text("hide"==e.nav_status?"(Hidden)":"");var r=t(n).parent("li");"hide"==e.np_status?(t(r).addClass("np-hide"),t(n).find(".status").after('<i class="np-icon-eye-blocked"></i>')):(t(r).removeClass("np-hide"),t(n).find(".np-icon-eye-blocked").remove());var d=t(n).find(".np-quick-edit");t(d).attr("data-id",e.post_id),t(d).attr("data-template",e.page_template),t(d).attr("data-title",e.post_title),t(d).attr("data-slug",e.post_name),t(d).attr("data-commentstatus",e.comment_status),t(d).attr("data-status",e._status),"private"===e.keep_private&&t(d).attr("data-status","private"),t(d).attr("data-author",e.post_author),t(d).attr("data-np-status",e.np_status),t(d).attr("data-password",e.post_password),t(d).attr("data-navstatus",e.nav_status),t(d).attr("data-navtitle",e.np_nav_title),t(d).attr("data-linktarget",e.link_target),t(d).attr("data-navtitleattr",e.np_title_attribute),t(d).attr("data-navcss",e.np_nav_css_classes),t(d).attr("data-month",e.mm),t(d).attr("data-day",e.jj),t(d).attr("data-year",e.aa),t(d).attr("data-hour",e.hh),t(d).attr("data-minute",e.mn),k(r),w(r,e),b(r,e),y(r,e)}function k(a){taxonomies=[];var e=t(a).attr("class").split(/\s+/);for(i=0;i<e.length;i++)"in-"===e[i].substring(0,3)&&t(a).removeClass(e[i]),"inf-"===e[i].substring(0,4)&&t(a).removeClass(e[i])}function w(a,e){if(e.hasOwnProperty("post_category")){var n=e.post_category;for(i=0;i<n.length;i++){var s="in-category-"+n[i];t(a).addClass(s)}}}function b(a,e){if(e.hasOwnProperty("tax_input")){var n=e.tax_input;t.each(n,function(e,n){for(i=0;i<n.length;i++){var s="in-"+e+"-"+n[i];t(a).addClass(s)}})}}function y(a,e){if(e.hasOwnProperty("flat_tax")){var n=e.flat_tax;t.each(n,function(e,n){for(i=0;i<n.length;i++){var s="inf-"+e+"-nps-"+n[i];t(a).addClass(s)}})}}function x(a){t(a).find(".np-save-quickedit, .np-save-quickedit-redirect, .np-save-newchild").removeAttr("disabled"),t(a).find(".np-qe-loading").hide()}function C(e){var n=t(e).parent(".quick-edit, .new-child").siblings(".row");t(n).addClass("np-updated"),t(n).show(),t(e).parent(".quick-edit, .new-child").remove(),m(),a(),setTimeout(function(){t(n).addClass("np-updated-show")},1500)}function q(a){var e={id:t(a).attr("data-id"),url:t(a).attr("data-url"),title:t(a).attr("data-title"),status:t(a).attr("data-status"),navstatus:t(a).attr("data-navstatus"),npstatus:t(a).attr("data-np-status"),linktarget:t(a).attr("data-linktarget"),parentid:t(a).attr("data-parentid"),navtitleattr:t(a).attr("data-navtitleattr"),navcss:t(a).attr("data-navcss")},n=t(a).closest(".row").parent("li");if(t(n).children("ol").length>0)var i=t(n).children("ol"),s=t(".quick-edit-form-redirect").clone().insertBefore(i);else var s=t(".quick-edit-form-redirect").clone().appendTo(n);t(s).siblings(".row").hide();t(s).show(),j(s,e)}function j(a,e){t(a).find(".np_id").val(e.id),t(a).find(".np_title").val(e.title),t(a).find(".np_author select").val(e.author),t(a).find(".np_status").val(e.status),t(a).find(".np_content").val(e.url),t(a).find(".np_parent_id").val(e.parentid),t(a).find(".np_title_attribute").val(e.navtitleattr),t(a).find(".np_nav_css_classes").val(e.navcss),"hide"===e.npstatus?t(a).find(".np_status").prop("checked","checked"):t(a).find(".np_status").removeAttr("checked"),"hide"===e.navstatus?t(a).find(".np_nav_status").prop("checked","checked"):t(a).find(".np_nav_status").removeAttr("checked"),"_blank"===e.linktarget?t(a).find(".link_target").prop("checked","checked"):t(a).find(".link_target").removeAttr("checked"),f(),t(a).show()}function D(a){t(".np-quickedit-error").hide();var e=t(".np-sync-menu").is(":checked")?"sync":"nosync";t.ajax({url:ajaxurl,type:"post",datatype:"json",data:t(a).serialize()+"&action=npquickeditredirect&nonce="+nestedpages.np_nonce+"&syncmenu="+e,success:function(e){"error"===e.status?(x(a),t(a).find(".np-quickedit-error").text(e.message).show()):(x(a),T(a,e.post_data),C(a))},error:function(){x(a),t(a).find(".np-quickedit-error").text("The form could not be saved at this time.").show()}})}function T(a,e){var n=t(a).parent(".quick-edit").siblings(".row");t(n).find(".title").html(e.post_title+' <i class="np-icon-link"></i>');var i=t(n).find(".status");t(i).text("publish"!==e._status&&"future"!==e._status?"("+e._status+")":"");var s=t(n).find(".nav-status");t(s).text("hide"==e.nav_status?"(Hidden)":"");var o=t(n).parent("li");"hide"==e.np_status?(t(o).addClass("np-hide"),t(n).find(".status").after('<i class="np-icon-eye-blocked"></i>')):(t(o).removeClass("np-hide"),t(n).find(".np-icon-eye-blocked").remove());var r=t(n).find(".np-quick-edit-redirect");t(r).attr("data-id",e.post_id),t(r).attr("data-title",e.post_title),t(r).attr("data-url",e.post_content),t(r).attr("data-status",e._status),t(r).attr("data-navstatus",e.nav_status),t(r).attr("data-np-status",e.np_status),t(r).attr("data-linktarget",e.link_target),t(r).attr("data-navtitleattr",e.np_title_attribute),t(r).attr("data-navcss",e.np_nav_css_classes)}function A(){t(".np-link-loading").hide(),t(".np-save-link").removeAttr("disabled")}function P(){t(".np-new-link-error").hide();var a=t(".np-new-link-form").serialize(),e=t(".np-sync-menu").is(":checked")?"sync":"nosync";t.ajax({url:ajaxurl,type:"post",datatype:"json",data:a+"&action=npnewredirect&nonce="+nestedpages.np_nonce+"&syncmenu="+e,success:function(a){"error"===a.status?(A(),t(".np-new-link-error").text(a.message).show()):(A(),I(a.post_data))}})}function I(a){var e='<li id="menuItem_'+a.id+'" class="page-row';"publish"===a._status&&(e+=" published"),e+='">',e+='<div class="row"><div class="child-toggle"></div><div class="row-inner"><i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i><a href="'+a.np_link_content+'" class="page-link page-title" target="_blank"><span class="title">'+a.np_link_title+' <i class="np-icon-link"></i></span>',e+="publish"!==a._status?'<span class="status">'+a._status+"</span>":'<span class="status"></span>',"hide"===a.np_status&&(e+='<i class="np-icon-eye-blocked"></i>'),e+="hide"===a.nav_status?'<span class="nav-status">(Hidden)</span>':'<span class="nav-status"></span>',e+='</a><a href="#" class="np-toggle-edit"><i class="np-icon-pencil"></i></a><div class="action-buttons"><a href="#" class="np-btn np-quick-edit-redirect" ',e+='data-id="'+a.id+'"',e+='data-parentid="'+a.parent_id+'"',e+='data-title="'+a.np_link_title+'" ',e+='data-url="'+a.np_link_content+'" ',e+='data-status="'+a._status+'" ',e+='data-np-status="'+a.np_status+'" ',e+='data-navstatus="'+a.nav_status+'" ',e+='data-linktarget="'+a.link_target+'">',e+="Quick Edit</a>",e+="</div></div></div></li>","0"===a.parent_id?t(".nplist:first li:first").after(e):O(e,a),t("#np-link-modal").modal("hide");var n=t("#menuItem_"+a.id).find(".row");z(n)}function O(a,e){var n=t("#menuItem_"+e.parent_id);0===t(n).children("ol").length?(a='<ol class="sortable nplist" style="display:block;">'+a+"</ol>",t(n).append(a)):t(n).find("ol:first").prepend(a),s(),B()}function z(e){t(e).addClass("np-updated"),a(),setTimeout(function(){t(e).addClass("np-updated-show")},1500)}function H(){var a=[],e=t(".page-row:visible");return t.each(e,function(){var e=t(this).attr("id");a.push(e.replace("menuItem_",""))}),a}function B(){var a=H();t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:"npnesttoggle",nonce:nestedpages.np_nonce,ids:a},success:function(t){"success"!==t.status&&console.log("There was an error saving toggled pages.")}})}function E(){t(".np-newchild-error").hide(),m(),t(".sortable .new-child").remove(),t(".row").show()}function S(a){var e=t(a).closest(".row").parent("li");if(t(e).children("ol").length>0)var n=t(e).children("ol"),i=t(".new-child-form").clone().insertBefore(n);else var i=t(".new-child-form").clone().appendTo(e);t(i).siblings(".row").hide();f(),t(i).find(".parent_name").html("<em>Parent:</em> "+t(a).attr("data-parentname")),t(i).find(".page_parent_id").val(t(a).attr("data-id")),t(i).show()}function Q(a){{var e='<li><i class="handle np-icon-menu"></i><div class="form-control new-child-row"><label>'+nestedpages.title+'</label><div><input type="text" name="post_title[]" class="np_title" placeholder="'+nestedpages.page_title+'" value="" /><a href="#" class="button-secondary np-remove-child">-</a></div></div></li>';t(a).siblings(".new-page-titles").append(e)}t(".new-page-titles").sortable({items:"li",handle:".handle"})}function L(a){var e=t(a).find(t(".new-child-row")).length;e>1?(t(a).find("h3 strong").text(nestedpages.add_child_pages),t(a).find(".np-save-newchild").text(nestedpages.add_pages+" ("+e+")")):(t(a).find("h3 strong").text(nestedpages.add_child),t(a).find(".np-save-newchild").text(nestedpages.add_page))}function F(a){t(".np-quickedit-error").hide();var e=t(".np-sync-menu").is(":checked")?"sync":"nosync";t.ajax({url:ajaxurl,type:"post",datatype:"json",data:t(a).serialize()+"&action=npnewchild&nonce="+nestedpages.np_nonce+"&syncmenu="+e,success:function(e){"error"===e.status?(x(a),t(a).find(".np-quickedit-error").text(e.message).show()):(x(a),G(a,e))},error:function(){x(a),t(a).find(".np-quickedit-error").text("The form could not be saved at this time.").show()}})}function G(a,e){var n=e.new_pages,o=t(a).parent(".new-child").parent(".page-row");0===t(o).children("ol").length&&t(o).append('<ol class="nplist"></ol>');var r=t(o).children("ol");for(i=0;i<n.length;i++)J(r,n[i]);t(r).show(),s(),C(a)}function J(a,e){var n='<li id="menuItem_'+e.id+'" class="page-row';"publish"===e.status&&(n+=" published"),n+='">',n+='<div class="row">',n+='<div class="child-toggle"></div>',n+='<div class="row-inner">',n+='<i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i>',n+='<a href="'+e.edit_link+'" class="page-link page-title">',n+='<span class="title">'+e.title+"</span>",n+="Publish"!==e.status?'<span class="status">('+e.status+")</span>":'<span class="status"></span>',n+='<span class="nav-status"></span><span class="edit-indicator"><i class="np-icon-pencil"></i>Edit</span>',n+="</a>",n+='<div class="action-buttons">',n+='<a href="#" class="np-btn open-redirect-modal" data-parentid="'+e.id+'"><i class="np-icon-link"></i></a>',n+='<a href="#" class="np-btn add-new-child" data-id="'+e.id+'" data-parentname="'+e.title+'">'+nestedpages.add_child_short+"</a>",n+='<a href="#" class="np-btn np-quick-edit" data-id="'+e.id+'" data-template="'+e.template+'" data-title="'+e.title+'" data-slug="'+e.slug+'" data-commentstatus="closed" data-status="'+e.status.toLowerCase()+'" data-np-status="show" data-navstatus="show" data-author="'+e.author+'" data-month="'+e.month+'" data-day="'+e.day+'" data-year="'+e.year+'" data-hour="'+e.hour+'" data-minute="'+e.minute+'">'+nestedpages.quick_edit+"</a>",n+='<a href="'+e.view_link+'" class="np-btn" target="_blank">'+nestedpages.view+"</a>",n+='<a href="'+e.delete_link+'" class="np-btn np-btn-trash"><i class="np-icon-remove"></i></a>',n+="</div><!-- .action-buttons -->",n+="</div><!-- .row-inner --></div><!-- .row -->",n+="</li>",t(a).append(n)}t(document).ready(function(){s(),a()}),t(document).on("click",".child-toggle a",function(e){e.preventDefault();var n=t(this).parent(".child-toggle").parent(".row").siblings("ol");t(this).find("i").toggleClass("np-icon-arrow-down").toggleClass("np-icon-arrow-right"),t(n).toggle(),a(),B()}),t(document).on("click",".nestedpages-toggleall a",function(e){e.preventDefault(),"closed"==t(this).attr("data-toggle")?(t(".nestedpages ol li ol").show(),t(this).attr("data-toggle","opened"),t(this).text(nestedpages.collapse_text),t(".child-toggle i").removeClass("np-icon-arrow-right").addClass("np-icon-arrow-down"),v(),a()):(t(".nestedpages ol li ol").hide(),t(this).attr("data-toggle","closed"),t(this).text(nestedpages.expand_text),t(".child-toggle i").removeClass("np-icon-arrow-down").addClass("np-icon-arrow-right"),v(),a()),B()}),t(document).on("click",".np-toggle-hidden",function(e){e.preventDefault();var n=t(this).attr("href");"show"===n?(t(this).attr("href","hide"),t(this).text(nestedpages.show_hidden),t(".np-hide").removeClass("shown").hide(),a()):(t(this).attr("href","show"),t(this).text(nestedpages.hide_hidden),t(".np-hide").addClass("shown").show(),a())}),t(".np-tabs a").on("click",function(a){a.preventDefault(),t(".np-tabs a").removeClass("active"),t(this).addClass("active");var e=t(this).attr("href");t(".np-tabbed-content").hide(),t(e).show()}),t(document).on("click",".np-toggle-publish",function(a){a.preventDefault();var e=t(this).attr("href");t(".np-toggle-publish").removeClass("active"),t(this).addClass("active"),"#published"==e?(t(".nplist .page-row").hide(),t(".nplist .published").show()):t(".nplist .page-row").show()}),t(document).on("click",".np-toggle-edit",function(a){a.preventDefault();var e=t(this).siblings(".action-buttons");t(e).is(":visible")?(t(this).removeClass("active"),t(e).hide()):(t(this).addClass("active"),t(e).show())});var K=function(){var t=0;return function(a,e){clearTimeout(t),t=setTimeout(a,e)}}();t(window).resize(function(){K(function(){t(".action-buttons").removeAttr("style"),t(".np-toggle-edit").removeClass("active")},500)}),t(document).ready(function(){t(".sortable").not(".no-sort").nestedSortable({items:"li",toleranceElement:"> .row",handle:".handle",placeholder:"ui-sortable-placeholder",start:function(t,a){a.placeholder.height(a.item.height())},sort:function(t,a){e(a)},stop:function(){setTimeout(function(){s(),a()},100),o()},update:function(){}})}),t(document).ready(function(){"1"===nestedpages.syncmenu&&r("sync")}),t(".np-sync-menu").on("change",function(){var a=t(this).is(":checked")?"sync":"nosync";r(a)}),t(document).on("click",".np-quick-edit",function(a){a.preventDefault(),v(),d(t(this))}),t(document).on("click",".np-inline-overlay",function(){v(),E()}),t(document).on("click",".np-cancel-quickedit",function(a){var e=t(this).parents(".page-row");v(e),a.preventDefault()}),t(document).on("click",".np-save-quickedit",function(a){a.preventDefault(),t(".row").removeClass("np-updated").removeClass("np-updated-show");var e=t(this).parents("form");t(this).attr("disabled","disabled"),t(e).find(".np-qe-loading").show(),g(e)}),t(document).on("click",".np-toggle-taxonomies",function(a){t(this).parents("form").find(".np-taxonomies").toggle(),a.preventDefault()}),t(document).on("click",".np-toggle-menuoptions",function(a){a.preventDefault(),t(this).parents("form").find(".np-menuoptions").toggle()}),t(document).on("change",".keep_private",function(){this.checked?t(".post_password").val("").prop("readonly",!0):t(".post_password").prop("readonly",!1)}),t(document).on("click",".np-quick-edit-redirect",function(a){a.preventDefault(),v(),q(t(this))}),t(document).on("click",".np-save-quickedit-redirect",function(a){a.preventDefault(),t(".row").removeClass("np-updated").removeClass("np-updated-show");var e=t(this).parents("form");t(this).attr("disabled","disabled"),t(e).find(".np-qe-loading").show(),D(e)}),t(document).on("click",".open-redirect-modal",function(a){a.preventDefault();var e=t(this).attr("data-parentid");t("#np-link-modal").find("input").val(""),t("#np-link-modal .parent_id").val(e),t("#np-add-link-title").text("0"===e?nestedpages.add_link:nestedpages.add_child_link),t("#np-link-modal").modal("show")}),t(document).on("click",".np-save-link",function(a){a.preventDefault(),t(".np-new-link-error").hide(),t(".np-link-loading").show(),t(this).attr("disabled","disabled"),P()}),t(document).on("click",".np-cancel-newchild",function(t){t.preventDefault(),E()}),t(document).on("click",".add-new-child",function(a){a.preventDefault(),S(t(this))}),t(document).on("click",".add-new-child-row",function(a){a.preventDefault(),Q(t(this));var e=t(this).parents("form");L(e)}),t(document).on("click",".np-remove-child",function(a){a.preventDefault();var e=t(this).parents("form");t(this).parents(".new-child-row").parent("li").remove(),L(e)}),t(document).on("click",".np-save-newchild",function(a){a.preventDefault(),t(this).prop("disabled","disabled");var e=t(this).parents("form");t(e).find(".np-qe-loading").show(),F(e)})});
|
1 |
+
jQuery(function(t){function a(){var a=t(".nplist");t(".page-row").removeClass("no-border"),t.each(a,function(){t(this).find(".page-row:visible:first").addClass("no-border")})}function e(){var a=t(".nestedpages").find(".nplist");t.each(a,function(){var a=t(this).parents(".nplist").length,e=56;if(a>0){var e=20*a+e;t(this).find(".row-inner").css("padding-left",e+"px")}else t(this).find(".row-inner").css("padding-left","0px")})}function n(a){var e=t(a.placeholder).parents("ol").length,n=t(".sortable").width(),i=40*e-40,o=n-i;t(a.placeholder).width(o).css("margin-left",i+"px"),s(a)}function s(a){var e=t(a.placeholder).parent("ol");t(e).is(":visible")||(t(e).addClass("nplist"),t(e).show())}function o(){t(".child-toggle").each(function(){var a=t(this).parent(".row").parent("li");if(t(a).children("ol").length>0){var e=t(a).children("ol:visible").length>0?"np-icon-arrow-down":"np-icon-arrow-right";t(this).html('<a href="#"><i class="'+e+'"></i></a>')}else t(this).empty()})}function d(){t("#np-error").hide(),t("#nested-loading").show();var a=t(".np-sync-menu").is(":checked")?"sync":"nosync";list=t("ol.sortable").nestedSortable("toHierarchy",{startDepthCount:0}),t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:"npsort",nonce:nestedpages.np_nonce,list:list,syncmenu:a},success:function(a){"error"===a.status?(t("#np-error").text(a.message).show(),t("#nested-loading").hide()):t("#nested-loading").hide()}})}function r(a){t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:"npsyncMenu",nonce:nestedpages.np_nonce,syncmenu:a},success:function(t){"error"===t.status&&alert("There was an error saving the sync setting.")}})}function l(a){var e={id:t(a).attr("data-id"),title:t(a).attr("data-title"),slug:t(a).attr("data-slug"),author:t(a).attr("data-author"),cs:t(a).attr("data-commentstatus"),status:t(a).attr("data-status"),template:t(a).attr("data-template"),month:t(a).attr("data-month"),day:t(a).attr("data-day"),year:t(a).attr("data-year"),hour:t(a).attr("data-hour"),minute:t(a).attr("data-minute"),navstatus:t(a).attr("data-navstatus"),npstatus:t(a).attr("data-np-status"),navtitle:t(a).attr("data-navtitle"),navtitleattr:t(a).attr("data-navtitleattr"),navcss:t(a).attr("data-navcss"),linktarget:t(a).attr("data-linktarget"),password:t(a).attr("data-password")},n=t(a).closest(".row").parent("li");e.h_taxonomies=[],e.f_taxonomies=[];var s=t(n).attr("class").split(/\s+/);for(i=0;i<s.length;i++)"in-"===s[i].substring(0,3)&&e.h_taxonomies.push(s[i]),"inf-"===s[i].substring(0,4)&&e.f_taxonomies.push(s[i]);if(t(n).children("ol").length>0)var o=t(n).children("ol"),d=t(".quick-edit-form").clone().insertBefore(o);else var d=t(".quick-edit-form").clone().appendTo(n);t(d).siblings(".row").hide();c(d,e)}function c(a,e){if(t(a).find(".page_id").html("<em>Page ID:</em> "+e.id),t(a).find(".np_id").val(e.id),t(a).find(".np_title").val(e.title),t(a).find(".np_slug").val(e.slug),t(a).find(".np_author select").val(e.author),t(a).find(".np_template").val(e.template),t(a).find(".np_status").val(e.status),t(a).find(".np_nav_title").val(e.navtitle),t(a).find(".np_title_attribute").val(e.navtitleattr),t(a).find(".np_nav_css_classes").val(e.navcss),t(a).find(".post_password").val(e.password),"open"===e.cs&&t(a).find(".np_cs").prop("checked","checked"),"private"===e.status&&(t(a).find(".post_password").prop("readonly",!0),t(a).find(".keep_private").prop("checked",!0)),"hide"===e.npstatus?t(a).find(".np_status").prop("checked","checked"):t(a).find(".np_status").removeAttr("checked"),"hide"===e.navstatus?t(a).find(".np_nav_status").prop("checked","checked"):t(a).find(".np_nav_status").removeAttr("checked"),"_blank"===e.linktarget?t(a).find(".link_target").prop("checked","checked"):t(a).find(".link_target").removeAttr("checked"),"private"===e.status&&t(a).find(".np_status").val("publish"),t(a).find('select[name="mm"]').val(e.month),t(a).find('input[name="jj"]').val(e.day),t(a).find('input[name="aa"]').val(e.year),t(a).find('input[name="hh"]').val(e.hour),t(a).find('input[name="mn"]').val(e.minute),e.hasOwnProperty("h_taxonomies")){var n=e.h_taxonomies;for(i=0;i<n.length;i++){var s="#"+n[i];t(a).find(s).prop("checked","checked")}}m(),t(a).show(),e.hasOwnProperty("f_taxonomies")&&(p(e.f_taxonomies),v(a))}function p(t){var a={};for(i=0;i<t.length;i++){var e=t[i].split("-"),n=e.indexOf("nps"),s=e.splice(n+1);s=s.join("-");var o=t[i].split("-").splice(0,n);o.shift("inf");var d=o.join("-");d in a||(a[d]=[]);var r=a[d];r.push(s)}u(a)}function u(a){t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:"npgetTaxonomies",nonce:nestedpages.np_nonce,terms:a},success:function(t){h(t.terms)}})}function h(a){a&&t.each(a,function(a,e){var n=t("#"+a);t(n).val(e.join(","))})}function v(a){var e=t(a).find("[data-autotag]");t.each(e,function(){var a=t(this).attr("data-taxonomy");t(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+a,{multiple:!0,multipleSep:","})})}function f(){t(".np-quickedit-error").hide(),g(),t(".sortable .quick-edit").remove(),t(".row").show()}function m(){t("body").append('<div class="np-inline-overlay"></div>'),setTimeout(function(){t(".np-inline-overlay").addClass("active")},50)}function g(){t(".np-inline-overlay").removeClass("active").remove()}function _(a){t(".np-quickedit-error").hide();var e=t(".np-sync-menu").is(":checked")?"sync":"nosync";t.ajax({url:ajaxurl,type:"post",datatype:"json",data:t(a).serialize()+"&action=npquickEdit&nonce="+nestedpages.np_nonce+"&syncmenu="+e,success:function(e){"error"===e.status?(C(a),t(a).find(".np-quickedit-error").text(e.message).show()):(C(a),k(a,e.post_data),q(a))}})}function k(a,e){var n=t(a).parent(".quick-edit").siblings(".row");t(n).find(".title").text(e.post_title);var i=t(n).find(".status");if(t(i).text("publish"!==e._status&&"future"!==e._status?"("+e._status+")":"private"===e.keep_private?"("+e.keep_private+")":""),""!==e.post_password){var s=t(i).text();s+=' <i class="np-icon-lock"></i>',t(i).html(s)}var o=t(n).find(".nav-status");t(o).text("hide"==e.nav_status?"(Hidden)":"");var d=t(n).parent("li");"hide"==e.np_status?(t(d).addClass("np-hide"),t(n).find(".status").after('<i class="np-icon-eye-blocked"></i>')):(t(d).removeClass("np-hide"),t(n).find(".np-icon-eye-blocked").remove());var r=t(n).find(".np-quick-edit");t(r).attr("data-id",e.post_id),t(r).attr("data-template",e.page_template),t(r).attr("data-title",e.post_title),t(r).attr("data-slug",e.post_name),t(r).attr("data-commentstatus",e.comment_status),t(r).attr("data-status",e._status),"private"===e.keep_private&&t(r).attr("data-status","private"),t(r).attr("data-author",e.post_author),t(r).attr("data-np-status",e.np_status),t(r).attr("data-password",e.post_password),t(r).attr("data-navstatus",e.nav_status),t(r).attr("data-navtitle",e.np_nav_title),t(r).attr("data-linktarget",e.link_target),t(r).attr("data-navtitleattr",e.np_title_attribute),t(r).attr("data-navcss",e.np_nav_css_classes),t(r).attr("data-month",e.mm),t(r).attr("data-day",e.jj),t(r).attr("data-year",e.aa),t(r).attr("data-hour",e.hh),t(r).attr("data-minute",e.mn),w(d),b(d,e),y(d,e),x(d,e)}function w(a){taxonomies=[];var e=t(a).attr("class").split(/\s+/);for(i=0;i<e.length;i++)"in-"===e[i].substring(0,3)&&t(a).removeClass(e[i]),"inf-"===e[i].substring(0,4)&&t(a).removeClass(e[i])}function b(a,e){if(e.hasOwnProperty("post_category")){var n=e.post_category;for(i=0;i<n.length;i++){var s="in-category-"+n[i];t(a).addClass(s)}}}function y(a,e){if(e.hasOwnProperty("tax_input")){var n=e.tax_input;t.each(n,function(e,n){for(i=0;i<n.length;i++){var s="in-"+e+"-"+n[i];t(a).addClass(s)}})}}function x(a,e){if(e.hasOwnProperty("flat_tax")){var n=e.flat_tax;t.each(n,function(e,n){for(i=0;i<n.length;i++){var s="inf-"+e+"-nps-"+n[i];t(a).addClass(s)}})}}function C(a){t(a).find(".np-save-quickedit, .np-save-quickedit-redirect, .np-save-newchild").removeAttr("disabled"),t(a).find(".np-qe-loading").hide()}function q(e){var n=t(e).parent(".quick-edit, .new-child").siblings(".row");t(n).addClass("np-updated"),t(n).show(),t(e).parent(".quick-edit, .new-child").remove(),g(),a(),setTimeout(function(){t(n).addClass("np-updated-show")},1500)}function j(a){var e={id:t(a).attr("data-id"),url:t(a).attr("data-url"),title:t(a).attr("data-title"),status:t(a).attr("data-status"),navstatus:t(a).attr("data-navstatus"),npstatus:t(a).attr("data-np-status"),linktarget:t(a).attr("data-linktarget"),parentid:t(a).attr("data-parentid"),navtitleattr:t(a).attr("data-navtitleattr"),navcss:t(a).attr("data-navcss")},n=t(a).closest(".row").parent("li");if(t(n).children("ol").length>0)var i=t(n).children("ol"),s=t(".quick-edit-form-redirect").clone().insertBefore(i);else var s=t(".quick-edit-form-redirect").clone().appendTo(n);t(s).siblings(".row").hide();t(s).show(),D(s,e)}function D(a,e){t(a).find(".np_id").val(e.id),t(a).find(".np_title").val(e.title),t(a).find(".np_author select").val(e.author),t(a).find(".np_status").val(e.status),t(a).find(".np_content").val(e.url),t(a).find(".np_parent_id").val(e.parentid),t(a).find(".np_title_attribute").val(e.navtitleattr),t(a).find(".np_nav_css_classes").val(e.navcss),"hide"===e.npstatus?t(a).find(".np_status").prop("checked","checked"):t(a).find(".np_status").removeAttr("checked"),"hide"===e.navstatus?t(a).find(".np_nav_status").prop("checked","checked"):t(a).find(".np_nav_status").removeAttr("checked"),"_blank"===e.linktarget?t(a).find(".link_target").prop("checked","checked"):t(a).find(".link_target").removeAttr("checked"),m(),t(a).show()}function T(a){t(".np-quickedit-error").hide();var e=t(".np-sync-menu").is(":checked")?"sync":"nosync";t.ajax({url:ajaxurl,type:"post",datatype:"json",data:t(a).serialize()+"&action=npquickEditLink&nonce="+nestedpages.np_nonce+"&syncmenu="+e,success:function(e){"error"===e.status?(C(a),t(a).find(".np-quickedit-error").text(e.message).show()):(C(a),A(a,e.post_data),q(a))},error:function(){C(a),t(a).find(".np-quickedit-error").text("The form could not be saved at this time.").show()}})}function A(a,e){var n=t(a).parent(".quick-edit").siblings(".row");t(n).find(".title").html(e.post_title+' <i class="np-icon-link"></i>');var i=t(n).find(".status");t(i).text("publish"!==e._status&&"future"!==e._status?"("+e._status+")":"");var s=t(n).find(".nav-status");t(s).text("hide"==e.nav_status?"(Hidden)":"");var o=t(n).parent("li");"hide"==e.np_status?(t(o).addClass("np-hide"),t(n).find(".status").after('<i class="np-icon-eye-blocked"></i>')):(t(o).removeClass("np-hide"),t(n).find(".np-icon-eye-blocked").remove());var d=t(n).find(".np-quick-edit-redirect");t(d).attr("data-id",e.post_id),t(d).attr("data-title",e.post_title),t(d).attr("data-url",e.post_content),t(d).attr("data-status",e._status),t(d).attr("data-navstatus",e.nav_status),t(d).attr("data-np-status",e.np_status),t(d).attr("data-linktarget",e.link_target),t(d).attr("data-navtitleattr",e.np_title_attribute),t(d).attr("data-navcss",e.np_nav_css_classes)}function P(){t(".np-link-loading").hide(),t(".np-save-link").removeAttr("disabled")}function I(){t(".np-new-link-error").hide();var a=t(".np-new-link-form").serialize(),e=t(".np-sync-menu").is(":checked")?"sync":"nosync";t.ajax({url:ajaxurl,type:"post",datatype:"json",data:a+"&action=npnewLink&nonce="+nestedpages.np_nonce+"&syncmenu="+e,success:function(a){"error"===a.status?(P(),t(".np-new-link-error").text(a.message).show()):(P(),O(a.post_data))}})}function O(a){var e='<li id="menuItem_'+a.id+'" class="page-row';"publish"===a._status&&(e+=" published"),e+='">',e+='<div class="row"><div class="child-toggle"></div><div class="row-inner"><i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i><a href="'+a.np_link_content+'" class="page-link page-title" target="_blank"><span class="title">'+a.np_link_title+' <i class="np-icon-link"></i></span>',e+="publish"!==a._status?'<span class="status">'+a._status+"</span>":'<span class="status"></span>',"hide"===a.np_status&&(e+='<i class="np-icon-eye-blocked"></i>'),e+="hide"===a.nav_status?'<span class="nav-status">(Hidden)</span>':'<span class="nav-status"></span>',e+='</a><a href="#" class="np-toggle-edit"><i class="np-icon-pencil"></i></a><div class="action-buttons"><a href="#" class="np-btn np-quick-edit-redirect" ',e+='data-id="'+a.id+'"',e+='data-parentid="'+a.parent_id+'"',e+='data-title="'+a.np_link_title+'" ',e+='data-url="'+a.np_link_content+'" ',e+='data-status="'+a._status+'" ',e+='data-np-status="'+a.np_status+'" ',e+='data-navstatus="'+a.nav_status+'" ',e+='data-linktarget="'+a.link_target+'">',e+="Quick Edit</a>",e+='<a href="'+a.delete_link+'" class="np-btn np-btn-trash"><i class="np-icon-remove"></i></a>',e+="</div></div></div></li>","0"===a.parent_id?t(".nplist:first li:first").after(e):z(e,a),t("#np-link-modal").modal("hide");var n=t("#menuItem_"+a.id).find(".row");E(n)}function z(a,e){var n=t("#menuItem_"+e.parent_id);0===t(n).children("ol").length?(a='<ol class="sortable nplist" style="display:block;">'+a+"</ol>",t(n).append(a)):t(n).find("ol:first").prepend(a),o(),L()}function E(e){t(e).addClass("np-updated"),a(),setTimeout(function(){t(e).addClass("np-updated-show")},1500)}function H(){var a=[],e=t(".page-row:visible");return t.each(e,function(){var e=t(this).attr("id");a.push(e.replace("menuItem_",""))}),a}function L(){var a=H();t.ajax({url:ajaxurl,type:"post",datatype:"json",data:{action:"npnestToggle",nonce:nestedpages.np_nonce,ids:a},success:function(t){"success"!==t.status&&console.log("There was an error saving toggled pages.")}})}function B(){t(".np-newchild-error").hide(),g(),t(".sortable .new-child").remove(),t(".row").show()}function S(a){var e=t(a).closest(".row").parent("li");if(t(e).children("ol").length>0)var n=t(e).children("ol"),i=t(".new-child-form").clone().insertBefore(n);else var i=t(".new-child-form").clone().appendTo(e);t(i).siblings(".row").hide();m(),t(i).find(".parent_name").html("<em>Parent:</em> "+t(a).attr("data-parentname")),t(i).find(".page_parent_id").val(t(a).attr("data-id")),t(i).show()}function Q(a){{var e='<li><i class="handle np-icon-menu"></i><div class="form-control new-child-row"><label>'+nestedpages.title+'</label><div><input type="text" name="post_title[]" class="np_title" placeholder="'+nestedpages.page_title+'" value="" /><a href="#" class="button-secondary np-remove-child">-</a></div></div></li>';t(a).siblings(".new-page-titles").append(e)}t(".new-page-titles").sortable({items:"li",handle:".handle"})}function M(a){var e=t(a).find(t(".new-child-row")).length;e>1?(t(a).find("h3 strong").text(nestedpages.add_child_pages),t(a).find(".np-save-newchild").text(nestedpages.add_pages+" ("+e+")")):(t(a).find("h3 strong").text(nestedpages.add_child),t(a).find(".np-save-newchild").text(nestedpages.add_page))}function F(a){t(".np-quickedit-error").hide();var e=t(".np-sync-menu").is(":checked")?"sync":"nosync";t.ajax({url:ajaxurl,type:"post",datatype:"json",data:t(a).serialize()+"&action=npnewChild&nonce="+nestedpages.np_nonce+"&syncmenu="+e,success:function(e){"error"===e.status?(C(a),t(a).find(".np-quickedit-error").text(e.message).show()):(C(a),G(a,e))},error:function(){C(a),t(a).find(".np-quickedit-error").text("The form could not be saved at this time.").show()}})}function G(a,e){var n=e.new_pages,s=t(a).parent(".new-child").parent(".page-row");0===t(s).children("ol").length&&t(s).append('<ol class="nplist"></ol>');var d=t(s).children("ol");for(i=0;i<n.length;i++)J(d,n[i]);t(d).show(),o(),q(a)}function J(a,e){var n='<li id="menuItem_'+e.id+'" class="page-row';"publish"===e.status&&(n+=" published"),n+='">',n+='<div class="row">',n+='<div class="child-toggle"></div>',n+='<div class="row-inner">',n+='<i class="np-icon-sub-menu"></i><i class="handle np-icon-menu"></i>',n+='<a href="'+e.edit_link+'" class="page-link page-title">',n+='<span class="title">'+e.title+"</span>",n+="Publish"!==e.status?'<span class="status">('+e.status+")</span>":'<span class="status"></span>',n+='<span class="nav-status"></span><span class="edit-indicator"><i class="np-icon-pencil"></i>Edit</span>',n+="</a>",n+='<div class="action-buttons">',n+='<a href="#" class="np-btn open-redirect-modal" data-parentid="'+e.id+'"><i class="np-icon-link"></i></a>',n+='<a href="#" class="np-btn add-new-child" data-id="'+e.id+'" data-parentname="'+e.title+'">'+nestedpages.add_child_short+"</a>",n+='<a href="#" class="np-btn np-quick-edit" data-id="'+e.id+'" data-template="'+e.template+'" data-title="'+e.title+'" data-slug="'+e.slug+'" data-commentstatus="closed" data-status="'+e.status.toLowerCase()+'" data-np-status="show" data-navstatus="show" data-author="'+e.author+'" data-month="'+e.month+'" data-day="'+e.day+'" data-year="'+e.year+'" data-hour="'+e.hour+'" data-minute="'+e.minute+'">'+nestedpages.quick_edit+"</a>",n+='<a href="'+e.view_link+'" class="np-btn" target="_blank">'+nestedpages.view+"</a>",n+='<a href="'+e.delete_link+'" class="np-btn np-btn-trash"><i class="np-icon-remove"></i></a>',n+="</div><!-- .action-buttons -->",n+="</div><!-- .row-inner --></div><!-- .row -->",n+="</li>",t(a).append(n)}t(document).ready(function(){o(),a(),e()}),t(document).on("click",".child-toggle a",function(n){n.preventDefault();var i=t(this).parent(".child-toggle").parent(".row").siblings("ol");t(this).find("i").toggleClass("np-icon-arrow-down").toggleClass("np-icon-arrow-right"),t(i).toggle(),a(),L(),e()}),t(document).on("click",".nestedpages-toggleall a",function(e){e.preventDefault(),"closed"==t(this).attr("data-toggle")?(t(".nestedpages ol li ol").show(),t(this).attr("data-toggle","opened"),t(this).text(nestedpages.collapse_text),t(".child-toggle i").removeClass("np-icon-arrow-right").addClass("np-icon-arrow-down"),f(),a()):(t(".nestedpages ol li ol").hide(),t(this).attr("data-toggle","closed"),t(this).text(nestedpages.expand_text),t(".child-toggle i").removeClass("np-icon-arrow-down").addClass("np-icon-arrow-right"),f(),a()),L()}),t(document).on("click",".np-toggle-hidden",function(e){e.preventDefault();var n=t(this).attr("href");"show"===n?(t(this).attr("href","hide"),t(this).text(nestedpages.show_hidden),t(".np-hide").removeClass("shown").hide(),a()):(t(this).attr("href","show"),t(this).text(nestedpages.hide_hidden),t(".np-hide").addClass("shown").show(),a())}),t(".np-tabs a").on("click",function(a){a.preventDefault(),t(".np-tabs a").removeClass("active"),t(this).addClass("active");var e=t(this).attr("href");t(".np-tabbed-content").hide(),t(e).show()}),t(document).on("click",".np-toggle-publish",function(a){a.preventDefault();var e=t(this).attr("href");t(".np-toggle-publish").removeClass("active"),t(this).addClass("active"),"#published"==e?(t(".nplist .page-row").hide(),t(".nplist .published").show()):t(".nplist .page-row").show()}),t(document).on("click",".np-toggle-edit",function(a){a.preventDefault();var e=t(this).siblings(".action-buttons");t(e).is(":visible")?(t(this).removeClass("active"),t(e).hide()):(t(this).addClass("active"),t(e).show())});var K=function(){var t=0;return function(a,e){clearTimeout(t),t=setTimeout(a,e)}}();t(window).resize(function(){K(function(){t(".action-buttons").removeAttr("style"),t(".np-toggle-edit").removeClass("active")},500)}),t(document).ready(function(){t(".sortable").not(".no-sort").nestedSortable({items:"li",toleranceElement:"> .row",handle:".handle",placeholder:"ui-sortable-placeholder",maxLevels:0,start:function(t,a){a.placeholder.height(a.item.height())},sort:function(t,a){n(a)},stop:function(){setTimeout(function(){o(),a(),e()},100),d()},update:function(){}})}),t(document).ready(function(){"1"===nestedpages.syncmenu&&r("sync")}),t(".np-sync-menu").on("change",function(){var a=t(this).is(":checked")?"sync":"nosync";r(a)}),t(document).on("click",".np-quick-edit",function(a){a.preventDefault(),f(),l(t(this))}),t(document).on("click",".np-inline-overlay",function(){f(),B()}),t(document).on("click",".np-cancel-quickedit",function(a){var e=t(this).parents(".page-row");f(e),a.preventDefault()}),t(document).on("click",".np-save-quickedit",function(a){a.preventDefault(),t(".row").removeClass("np-updated").removeClass("np-updated-show");var e=t(this).parents("form");t(this).attr("disabled","disabled"),t(e).find(".np-qe-loading").show(),_(e)}),t(document).on("click",".np-toggle-taxonomies",function(a){t(this).parents("form").find(".np-taxonomies").toggle(),a.preventDefault()}),t(document).on("click",".np-toggle-menuoptions",function(a){a.preventDefault(),t(this).parents("form").find(".np-menuoptions").toggle()}),t(document).on("change",".keep_private",function(){this.checked?t(".post_password").val("").prop("readonly",!0):t(".post_password").prop("readonly",!1)}),t(document).on("click",".np-quick-edit-redirect",function(a){a.preventDefault(),f(),j(t(this))}),t(document).on("click",".np-save-quickedit-redirect",function(a){a.preventDefault(),t(".row").removeClass("np-updated").removeClass("np-updated-show");var e=t(this).parents("form");t(this).attr("disabled","disabled"),t(e).find(".np-qe-loading").show(),T(e)}),t(document).on("click",".open-redirect-modal",function(a){a.preventDefault();var e=t(this).attr("data-parentid");t("#np-link-modal").find("input").val(""),t("#np-link-modal .parent_id").val(e),t("#np-add-link-title").text("0"===e?nestedpages.add_link:nestedpages.add_child_link),t("#np-link-modal").modal("show")}),t(document).on("click",".np-save-link",function(a){a.preventDefault(),t(".np-new-link-error").hide(),t(".np-link-loading").show(),t(this).attr("disabled","disabled"),I()}),t(document).on("click",".np-cancel-newchild",function(t){t.preventDefault(),B()}),t(document).on("click",".add-new-child",function(a){a.preventDefault(),S(t(this))}),t(document).on("click",".add-new-child-row",function(a){a.preventDefault(),Q(t(this));var e=t(this).parents("form");M(e)}),t(document).on("click",".np-remove-child",function(a){a.preventDefault();var e=t(this).parents("form");t(this).parents(".new-child-row").parent("li").remove(),M(e)}),t(document).on("click",".np-save-newchild",function(a){a.preventDefault(),t(this).prop("disabled","disabled");var e=t(this).parents("form");t(e).find(".np-qe-loading").show(),F(e)})});
|
composer.json
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "kylephillips/nestedpages",
|
3 |
+
"description": "Nested Pages for WordPress",
|
4 |
+
"keywords": ["wordpress", "plugin", "nested pages"],
|
5 |
+
"homepage": "http://nestedpages.com",
|
6 |
+
"license": "GPL",
|
7 |
+
"authors": [
|
8 |
+
{
|
9 |
+
"name": "Kyle Phillips",
|
10 |
+
"email": "support@nestedpages.com",
|
11 |
+
"homepage": "https://github.com/kylephillips"
|
12 |
+
}
|
13 |
+
],
|
14 |
+
"type": "wordpress-plugin",
|
15 |
+
"require": {
|
16 |
+
"php": ">=5.3.2",
|
17 |
+
"composer/installers": "v1.0.6"
|
18 |
+
},
|
19 |
+
"autoload": {
|
20 |
+
"psr-4" : {
|
21 |
+
"NestedPages\\" : "app/"
|
22 |
+
}
|
23 |
+
}
|
24 |
+
}
|
includes/class-nestedpages.php
DELETED
@@ -1,114 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
// Activate and Check Versions
|
3 |
-
require_once('class-np-activate.php');
|
4 |
-
|
5 |
-
// Form Handlers
|
6 |
-
require_once('class-np-handler-sort.php');
|
7 |
-
require_once('class-np-handler-quickedit.php');
|
8 |
-
require_once('class-np-handler-quickedit-redirect.php');
|
9 |
-
require_once('class-np-handler-newredirect.php');
|
10 |
-
require_once('class-np-handler-syncmenu.php');
|
11 |
-
require_once('class-np-handler-nesttoggle.php');
|
12 |
-
require_once('class-np-handler-gettax.php');
|
13 |
-
require_once('class-np-handler-newchild.php');
|
14 |
-
|
15 |
-
// Required Classes
|
16 |
-
require_once('class-np-dependencies.php');
|
17 |
-
require_once('class-np-pagelisting.php');
|
18 |
-
require_once('class-np-newpage.php');
|
19 |
-
require_once('class-np-redirects.php');
|
20 |
-
require_once('class-np-posttypes.php');
|
21 |
-
require_once('class-np-settings.php');
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Primary Plugin Class
|
25 |
-
*/
|
26 |
-
class NestedPages {
|
27 |
-
|
28 |
-
|
29 |
-
public function __construct()
|
30 |
-
{
|
31 |
-
$this->init();
|
32 |
-
$this->formActions();
|
33 |
-
add_action( 'init', array($this, 'listPages') );
|
34 |
-
add_action( 'init', array($this, 'addLocalization') );
|
35 |
-
add_action( 'admin_init', array($this, 'verifyPostType') );
|
36 |
-
add_filter( 'plugin_action_links_' . 'wp-nested-pages/nestedpages.php', array($this, 'settingsLink' ) );
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Initialize Plugin
|
41 |
-
*/
|
42 |
-
public function init()
|
43 |
-
{
|
44 |
-
new NP_Activate;
|
45 |
-
new NP_Dependencies;
|
46 |
-
new NP_NewPage;
|
47 |
-
new NP_Redirects;
|
48 |
-
new NP_PostTypes;
|
49 |
-
new NP_Settings;
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Page Listing
|
54 |
-
* @since 1.1.6 - Moved into init due to Multisite bug
|
55 |
-
*/
|
56 |
-
public function listPages()
|
57 |
-
{
|
58 |
-
new NP_PageListing;
|
59 |
-
}
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Set Form Actions & Handlers
|
65 |
-
*/
|
66 |
-
public function formActions()
|
67 |
-
{
|
68 |
-
if ( is_admin() ) {
|
69 |
-
add_action( 'wp_ajax_npsort', 'nestedpages_sort_handler' );
|
70 |
-
add_action( 'wp_ajax_npquickedit', 'nestedpages_quickedit_handler' );
|
71 |
-
add_action( 'wp_ajax_npsyncmenu', 'nestedpages_syncmenu_handler' );
|
72 |
-
add_action( 'wp_ajax_npnesttoggle', 'nestedpages_nesttoggle_handler' );
|
73 |
-
add_action( 'wp_ajax_npquickeditredirect', 'nestedpages_quickedit_redirect_handler' );
|
74 |
-
add_action( 'wp_ajax_npnewredirect', 'nestedpages_new_redirect');
|
75 |
-
add_action( 'wp_ajax_gettax', 'nestedpages_get_tax' );
|
76 |
-
add_action( 'wp_ajax_npnewchild', 'nestedpages_newchild_handler' );
|
77 |
-
}
|
78 |
-
}
|
79 |
-
|
80 |
-
|
81 |
-
/**
|
82 |
-
* Localization Domain
|
83 |
-
*/
|
84 |
-
public function addLocalization()
|
85 |
-
{
|
86 |
-
load_plugin_textdomain('nestedpages', false, dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages' );
|
87 |
-
}
|
88 |
-
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Add a link to the settings on the plugin page
|
92 |
-
*/
|
93 |
-
public function settingsLink($links)
|
94 |
-
{
|
95 |
-
$settings_link = '<a href="options-general.php?page=nested-pages-settings">' . __('Settings') . '</a>';
|
96 |
-
array_unshift($links, $settings_link);
|
97 |
-
return $links;
|
98 |
-
}
|
99 |
-
|
100 |
-
|
101 |
-
/**
|
102 |
-
* Check for the page post type before doing anything
|
103 |
-
*/
|
104 |
-
public function verifyPostType()
|
105 |
-
{
|
106 |
-
if ( !get_post_type_object( 'page' ) ){
|
107 |
-
$plugin = dirname(dirname( __FILE__ ) ) . '/nestedpages.php';
|
108 |
-
deactivate_plugins( $plugin );
|
109 |
-
wp_die('<p>Nested Pages has been deactivated. This plugin requires the <strong>"page"</strong> post type to be enabled and available for use. Please disable any plugins that may be interfering with this post type and reactivate.</p>','Plugin Activation Error', array( 'response'=>200, 'back_link'=>TRUE ) );
|
110 |
-
}
|
111 |
-
}
|
112 |
-
|
113 |
-
|
114 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-np-confirmation.php
DELETED
@@ -1,102 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Confirmation Messages
|
4 |
-
*/
|
5 |
-
class NP_Confirmation {
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Message Output
|
9 |
-
* @var string
|
10 |
-
*/
|
11 |
-
private $message;
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Type of Message
|
15 |
-
* @var string
|
16 |
-
*/
|
17 |
-
private $type;
|
18 |
-
|
19 |
-
|
20 |
-
public function __construct()
|
21 |
-
{
|
22 |
-
$this->setType();
|
23 |
-
$this->setMessage();
|
24 |
-
}
|
25 |
-
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Set the Type of confirmation
|
29 |
-
*/
|
30 |
-
private function setType()
|
31 |
-
{
|
32 |
-
if ( (isset($_GET['trashed'])) && (intval($_GET['trashed']) > 0) ) $this->type = 'trashConfirm';
|
33 |
-
if ( (isset($_GET['untrashed'])) && (intval($_GET['untrashed']) > 0) ) $this->type = 'trashRestored';
|
34 |
-
if ( (isset($_GET['linkdeleted'])) && (intval($_GET['linkdeleted']) > 0 ) ) $this->type = 'linkDeleted';
|
35 |
-
}
|
36 |
-
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Set the confirmation message
|
40 |
-
*/
|
41 |
-
private function setMessage()
|
42 |
-
{
|
43 |
-
if ( $this->type ){
|
44 |
-
$type = $this->type;
|
45 |
-
$this->$type();
|
46 |
-
}
|
47 |
-
}
|
48 |
-
|
49 |
-
|
50 |
-
/**
|
51 |
-
* Trash Confirmation
|
52 |
-
*/
|
53 |
-
private function trashConfirm()
|
54 |
-
{
|
55 |
-
$out = '<div id="message" class="updated below-h2"><p>';
|
56 |
-
$trashed = ( explode(',', $_GET['ids']) );
|
57 |
-
if ( count($trashed) > 1 ){
|
58 |
-
$out .= count($trashed) . ' ' . __('pages moved to the Trash', 'nestedpages');
|
59 |
-
} else {
|
60 |
-
$out .= '<strong>' . get_the_title($trashed[0]) . ' </strong>' . __('page moved to the Trash', 'nestedpages');
|
61 |
-
|
62 |
-
// Undo Link
|
63 |
-
if ( current_user_can('delete_pages') ) {
|
64 |
-
$page_obj = get_post_type_object('page');
|
65 |
-
$out .= ' <a href="' . wp_nonce_url( admin_url( sprintf( $page_obj->_edit_link . '&action=untrash', $trashed[0] ) ), 'untrash-post_' . $trashed[0] ) . '">' . __( 'Undo' ) . "</a>";
|
66 |
-
}
|
67 |
-
}
|
68 |
-
|
69 |
-
$out .= '</p></div>';
|
70 |
-
$this->message = $out;
|
71 |
-
}
|
72 |
-
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Trash Restored (Posts moved out of trash)
|
76 |
-
*/
|
77 |
-
private function trashRestored()
|
78 |
-
{
|
79 |
-
$untrashed = sanitize_text_field($_GET['untrashed']);
|
80 |
-
$page = ( intval($untrashed) > 1 ) ? __('pages', 'nestedpages') : __('page', 'nestedpages');
|
81 |
-
$this->message = '<div id="message" class="updated below-h2"><p>' . $untrashed . ' ' . $page . ' ' . __('restored from trash', 'nestedpages') . '.</p></div>';
|
82 |
-
}
|
83 |
-
|
84 |
-
|
85 |
-
/**
|
86 |
-
* Link Successfully Deleted
|
87 |
-
*/
|
88 |
-
private function linkDeleted()
|
89 |
-
{
|
90 |
-
$this->message = '<div id="message" class="updated below-h2"><p>' . __('Link successfully deleted.', 'nestedpages') . '</p></div>';
|
91 |
-
}
|
92 |
-
|
93 |
-
|
94 |
-
/**
|
95 |
-
* Get the Message
|
96 |
-
*/
|
97 |
-
public function getMessage()
|
98 |
-
{
|
99 |
-
return $this->message;
|
100 |
-
}
|
101 |
-
|
102 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/nestedpages-pt_PT.mo
ADDED
Binary file
|
languages/nestedpages-pt_PT.po
ADDED
@@ -0,0 +1,337 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Nested Pages\n"
|
4 |
+
"POT-Creation-Date: 2014-11-20 20:17-0500\n"
|
5 |
+
"PO-Revision-Date: 2014-12-18 09:24-0000\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: \n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.7.1\n"
|
12 |
+
"X-Poedit-Basepath: .\n"
|
13 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
14 |
+
"Language: pt_PT\n"
|
15 |
+
|
16 |
+
#: includes/class-nestedpages.php:85
|
17 |
+
msgid "Settings"
|
18 |
+
msgstr "Definições"
|
19 |
+
|
20 |
+
#: includes/class-np-confirmation.php:58
|
21 |
+
msgid "pages moved to the Trash"
|
22 |
+
msgstr "páginas movidas para a Reciclagem"
|
23 |
+
|
24 |
+
#: includes/class-np-confirmation.php:60
|
25 |
+
msgid "page moved to the Trash"
|
26 |
+
msgstr "página movida para a Reciclagem"
|
27 |
+
|
28 |
+
#: includes/class-np-confirmation.php:65
|
29 |
+
msgid "Undo"
|
30 |
+
msgstr "Desfazer"
|
31 |
+
|
32 |
+
#: includes/class-np-confirmation.php:80
|
33 |
+
msgid "pages"
|
34 |
+
msgstr "páginas"
|
35 |
+
|
36 |
+
#: includes/class-np-confirmation.php:80
|
37 |
+
msgid "page"
|
38 |
+
msgstr "página"
|
39 |
+
|
40 |
+
#: includes/class-np-confirmation.php:81
|
41 |
+
msgid "restored from trash"
|
42 |
+
msgstr "recuperada da reciclagem"
|
43 |
+
|
44 |
+
#: includes/class-np-confirmation.php:90
|
45 |
+
msgid "Link successfully deleted."
|
46 |
+
msgstr "Link removido com sucesso."
|
47 |
+
|
48 |
+
#: includes/class-np-dependencies.php:77 views/pages.php:18
|
49 |
+
msgid "Expand Pages"
|
50 |
+
msgstr "Expandir Páginas"
|
51 |
+
|
52 |
+
#: includes/class-np-dependencies.php:78
|
53 |
+
msgid "Collapse Pages"
|
54 |
+
msgstr "Fechar Páginas"
|
55 |
+
|
56 |
+
#: includes/class-np-dependencies.php:79 views/pages.php:34
|
57 |
+
msgid "Show Hidden"
|
58 |
+
msgstr "Mostrar páginas ocultas"
|
59 |
+
|
60 |
+
#: includes/class-np-dependencies.php:80
|
61 |
+
msgid "Hide Hidden"
|
62 |
+
msgstr "Esconder páginas ocultas"
|
63 |
+
|
64 |
+
#: includes/class-np-dependencies.php:81 views/link-form.php:14
|
65 |
+
#: views/pages.php:9 views/pages.php:10
|
66 |
+
msgid "Add Link"
|
67 |
+
msgstr "Adicionar Link"
|
68 |
+
|
69 |
+
#: includes/class-np-dependencies.php:82
|
70 |
+
msgid "Add Child Link"
|
71 |
+
msgstr "Adicionar Sublink"
|
72 |
+
|
73 |
+
#: includes/class-np-handler-base.php:64
|
74 |
+
msgid "Incorrect Form Field"
|
75 |
+
msgstr "Campo de Formulário Incorrecto"
|
76 |
+
|
77 |
+
#: includes/class-np-handler-base.php:94
|
78 |
+
msgid "There was an error updating the page."
|
79 |
+
msgstr "Ocorreu um erro ao actualizar a página"
|
80 |
+
|
81 |
+
#: includes/class-np-handler-newredirect.php:40
|
82 |
+
#: includes/class-np-handler-quickedit-redirect.php:36
|
83 |
+
msgid "Link successfully updated"
|
84 |
+
msgstr "Link actualizado com sucesso"
|
85 |
+
|
86 |
+
#: includes/class-np-handler-quickedit.php:38
|
87 |
+
msgid "Post successfully updated"
|
88 |
+
msgstr "Post actualizado com sucesso"
|
89 |
+
|
90 |
+
#: includes/class-np-handler-sort.php:36
|
91 |
+
msgid "Page order successfully updated."
|
92 |
+
msgstr "Ordenação de páginas actualizada com sucesso"
|
93 |
+
|
94 |
+
#: includes/class-np-handler-sort.php:38
|
95 |
+
msgid "There was an order updating the page order."
|
96 |
+
msgstr "Ocorreu um erro ao actualizar a ordenação de páginas"
|
97 |
+
|
98 |
+
#: includes/class-np-handler-syncmenu.php:32
|
99 |
+
msgid "Menu sync enabled."
|
100 |
+
msgstr "Sincronização de menu activa."
|
101 |
+
|
102 |
+
#: includes/class-np-handler-syncmenu.php:35
|
103 |
+
msgid "Menu sync disabled."
|
104 |
+
msgstr "Sincronização de menu inactiva."
|
105 |
+
|
106 |
+
#: includes/class-np-newpage.php:42
|
107 |
+
msgid "Adding child page under:"
|
108 |
+
msgstr "Adicionar subpágina em:"
|
109 |
+
|
110 |
+
#: includes/class-np-pagelisting.php:79
|
111 |
+
msgid "All Pages"
|
112 |
+
msgstr "Todas as páginas"
|
113 |
+
|
114 |
+
#: includes/class-np-pagelisting.php:80
|
115 |
+
msgid "Add New"
|
116 |
+
msgstr "Adicionar Nova"
|
117 |
+
|
118 |
+
#: includes/class-np-pagelisting.php:81
|
119 |
+
msgid "Default Pages"
|
120 |
+
msgstr "Páginas Standard"
|
121 |
+
|
122 |
+
#: includes/class-np-posttypes.php:21
|
123 |
+
msgid "Redirects"
|
124 |
+
msgstr "Redireccionamentos"
|
125 |
+
|
126 |
+
#: includes/class-np-posttypes.php:22
|
127 |
+
msgid "Redirect"
|
128 |
+
msgstr "Redireccionar"
|
129 |
+
|
130 |
+
#: includes/class-np-redirects.php:65
|
131 |
+
msgid "Nested Pages"
|
132 |
+
msgstr "Nested Pages"
|
133 |
+
|
134 |
+
#: includes/class-np-repository-post.php:58 views/quickedit.php:20
|
135 |
+
msgid "Title"
|
136 |
+
msgstr "Título"
|
137 |
+
|
138 |
+
#: includes/class-np-repository-post.php:298
|
139 |
+
msgid "Label"
|
140 |
+
msgstr "Etiqueta"
|
141 |
+
|
142 |
+
#: includes/class-np-validation.php:49 includes/class-np-validation.php:64
|
143 |
+
msgid "Please provide a valid date."
|
144 |
+
msgstr "Por favor indique uma data válida."
|
145 |
+
|
146 |
+
#: includes/class-np-validation.php:76
|
147 |
+
msgid "Please provide a menu title."
|
148 |
+
msgstr "Por favor preencha o título do menu."
|
149 |
+
|
150 |
+
#: includes/class-np-validation.php:79
|
151 |
+
msgid "Please provide a valid URL."
|
152 |
+
msgstr "Por favor preencha com URL válido."
|
153 |
+
|
154 |
+
#: includes/class-np-validation.php:90
|
155 |
+
msgid "Please provide a "
|
156 |
+
msgstr "Por favor indique "
|
157 |
+
|
158 |
+
#: views/link-form.php:31 views/quickedit-redirect.php:17
|
159 |
+
#: views/quickedit.php:148
|
160 |
+
msgid "Navigation Label"
|
161 |
+
msgstr "Etiqueta de Navegação"
|
162 |
+
|
163 |
+
#: views/link-form.php:36 views/quickedit-redirect.php:22
|
164 |
+
msgid "URL"
|
165 |
+
msgstr "URL"
|
166 |
+
|
167 |
+
#: views/link-form.php:41 views/quickedit-redirect.php:27
|
168 |
+
#: views/quickedit.php:58
|
169 |
+
msgid "Status"
|
170 |
+
msgstr "Estado"
|
171 |
+
|
172 |
+
#: views/link-form.php:44 views/pages.php:33 views/quickedit-redirect.php:30
|
173 |
+
#: views/quickedit.php:61
|
174 |
+
msgid "Published"
|
175 |
+
msgstr "Publicado"
|
176 |
+
|
177 |
+
#: views/link-form.php:45 views/quickedit-redirect.php:31
|
178 |
+
#: views/quickedit.php:62
|
179 |
+
msgid "Scheduled"
|
180 |
+
msgstr "Agendado"
|
181 |
+
|
182 |
+
#: views/link-form.php:47 views/quickedit-redirect.php:33
|
183 |
+
#: views/quickedit.php:64
|
184 |
+
msgid "Pending Review"
|
185 |
+
msgstr "Pendente de Revisão"
|
186 |
+
|
187 |
+
#: views/link-form.php:48 views/quickedit-redirect.php:34
|
188 |
+
#: views/quickedit.php:65
|
189 |
+
msgid "Draft"
|
190 |
+
msgstr "Rascunho"
|
191 |
+
|
192 |
+
#: views/link-form.php:59 views/quickedit-redirect.php:54
|
193 |
+
#: views/quickedit.php:164
|
194 |
+
msgid "Hide in Nav Menu"
|
195 |
+
msgstr "Esconder no Menu de Navegação"
|
196 |
+
|
197 |
+
#: views/link-form.php:64 views/quickedit-redirect.php:60
|
198 |
+
#: views/quickedit.php:105
|
199 |
+
msgid "Hide in Nested Pages"
|
200 |
+
msgstr "Esconder em Nested Pages"
|
201 |
+
|
202 |
+
#: views/link-form.php:69 views/quickedit-redirect.php:66
|
203 |
+
#: views/quickedit.php:170
|
204 |
+
msgid "Open link in a new window/tab"
|
205 |
+
msgstr "Abrir link numa nova janela/tabulador"
|
206 |
+
|
207 |
+
#: views/link-form.php:80
|
208 |
+
msgid "Close"
|
209 |
+
msgstr "Fechar"
|
210 |
+
|
211 |
+
#: views/link-form.php:83
|
212 |
+
msgid "Save Link"
|
213 |
+
msgstr "Guardar Link"
|
214 |
+
|
215 |
+
#: views/pages.php:24
|
216 |
+
msgid "Sync Menu"
|
217 |
+
msgstr "Sincronizar Menu"
|
218 |
+
|
219 |
+
#: views/pages.php:32
|
220 |
+
msgid "All"
|
221 |
+
msgstr "Todos"
|
222 |
+
|
223 |
+
#: views/pages.php:37
|
224 |
+
msgid "Trash"
|
225 |
+
msgstr "Reciclagem"
|
226 |
+
|
227 |
+
#: views/pages.php:40
|
228 |
+
msgid "Default"
|
229 |
+
msgstr "Default"
|
230 |
+
|
231 |
+
#: views/quickedit-redirect.php:8
|
232 |
+
msgid "Link"
|
233 |
+
msgstr "Link"
|
234 |
+
|
235 |
+
#: views/quickedit-redirect.php:44 views/quickedit.php:152
|
236 |
+
msgid "Title Attribute"
|
237 |
+
msgstr "Título"
|
238 |
+
|
239 |
+
#: views/quickedit-redirect.php:48 views/quickedit.php:156
|
240 |
+
msgid "CSS Classes"
|
241 |
+
msgstr "Classes de CSS"
|
242 |
+
|
243 |
+
#: views/quickedit-redirect.php:81 views/quickedit.php:184
|
244 |
+
msgid "Cancel"
|
245 |
+
msgstr "Cancelar"
|
246 |
+
|
247 |
+
#: views/quickedit-redirect.php:84 views/quickedit.php:187
|
248 |
+
msgid "Update"
|
249 |
+
msgstr "Actualizar"
|
250 |
+
|
251 |
+
#: views/quickedit.php:11 views/row-redirect.php:53 views/row.php:94
|
252 |
+
msgid "Quick Edit"
|
253 |
+
msgstr "Edição Rápida"
|
254 |
+
|
255 |
+
#: views/quickedit.php:24
|
256 |
+
msgid "Slug"
|
257 |
+
msgstr "Slug"
|
258 |
+
|
259 |
+
#: views/quickedit.php:28
|
260 |
+
msgid "Date"
|
261 |
+
msgstr "Data"
|
262 |
+
|
263 |
+
#: views/quickedit.php:49
|
264 |
+
msgid "Author"
|
265 |
+
msgstr "Autor"
|
266 |
+
|
267 |
+
#: views/quickedit.php:73
|
268 |
+
msgid "Template"
|
269 |
+
msgstr "Template"
|
270 |
+
|
271 |
+
#: views/quickedit.php:75
|
272 |
+
msgid "Default Template"
|
273 |
+
msgstr "Template padrão"
|
274 |
+
|
275 |
+
#: views/quickedit.php:82
|
276 |
+
msgid "Password"
|
277 |
+
msgstr "Palavra-passe"
|
278 |
+
|
279 |
+
#: views/quickedit.php:85
|
280 |
+
msgid "–OR–"
|
281 |
+
msgstr "–OR–"
|
282 |
+
|
283 |
+
#: views/quickedit.php:88
|
284 |
+
msgid "Private"
|
285 |
+
msgstr "Privado"
|
286 |
+
|
287 |
+
#: views/quickedit.php:97
|
288 |
+
msgid "Allow Comments"
|
289 |
+
msgstr "Permitir Comentários"
|
290 |
+
|
291 |
+
#: views/quickedit.php:113
|
292 |
+
msgid "Menu Options"
|
293 |
+
msgstr "Opções do Menu"
|
294 |
+
|
295 |
+
#: views/quickedit.php:115
|
296 |
+
msgid "Taxonomies"
|
297 |
+
msgstr "Taxonomias"
|
298 |
+
|
299 |
+
#: views/row-redirect.php:30 views/row.php:33
|
300 |
+
msgid "Hidden"
|
301 |
+
msgstr "Escondidas"
|
302 |
+
|
303 |
+
#: views/row.php:41
|
304 |
+
msgid "currently editing"
|
305 |
+
msgstr "actualmente a editar"
|
306 |
+
|
307 |
+
#: views/row.php:43
|
308 |
+
msgid "Edit"
|
309 |
+
msgstr "Editar"
|
310 |
+
|
311 |
+
#: views/row.php:66
|
312 |
+
msgid "Add Child"
|
313 |
+
msgstr "Adicionar subpágina"
|
314 |
+
|
315 |
+
#: views/row.php:98
|
316 |
+
msgid "View"
|
317 |
+
msgstr "Visualizar"
|
318 |
+
|
319 |
+
#: views/settings.php:2
|
320 |
+
msgid "Nested Pages Settings"
|
321 |
+
msgstr "Definições do Nested Pages"
|
322 |
+
|
323 |
+
#: views/settings.php:8
|
324 |
+
msgid "Nested Pages Version"
|
325 |
+
msgstr "Versão do Nested Pages"
|
326 |
+
|
327 |
+
#: views/settings.php:12
|
328 |
+
msgid "Menu Name"
|
329 |
+
msgstr "Nome do Menu"
|
330 |
+
|
331 |
+
#: views/settings.php:15
|
332 |
+
msgid ""
|
333 |
+
"Important: Once the menu name has changed, theme files should be updated to "
|
334 |
+
"reference the new name."
|
335 |
+
msgstr ""
|
336 |
+
"Importante: Ao mudar o nome do menu, os ficheiros do tema deverão ser "
|
337 |
+
"actualizados de acordo com o novo nome-"
|
nestedpages.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Nested Pages
|
4 |
Plugin URI: http://nestedpages.com
|
5 |
Description: Provides an intuitive drag and drop interface for managing pages in the Wordpress admin, while maintaining quick edit functionality.
|
6 |
-
Version: 1.
|
7 |
Author: Kyle Phillips
|
8 |
Author URI: https://github.com/kylephillips
|
9 |
Text Domain: nestedpages
|
@@ -32,20 +32,23 @@ Copyright: Kyle Phillips
|
|
32 |
* Check Wordpress and PHP versions before instantiating plugin
|
33 |
*/
|
34 |
register_activation_hook( __FILE__, 'nestedpages_check_versions' );
|
35 |
-
function nestedpages_check_versions( $wp = '3.9', $php = '5.3.
|
36 |
global $wp_version;
|
37 |
if ( version_compare( PHP_VERSION, $php, '<' ) ) $flag = 'PHP';
|
38 |
elseif ( version_compare( $wp_version, $wp, '<' ) ) $flag = 'WordPress';
|
39 |
-
elseif ( !get_post_type_object( 'page' ) ) $flag = 'Page Post Type';
|
40 |
else return;
|
41 |
$version = 'PHP' == $flag ? $php : $wp;
|
42 |
-
|
|
|
|
|
|
|
43 |
|
44 |
wp_die('<p>The <strong>Nested Pages</strong> plugin requires'.$flag.' version '.$version.' or greater.</p>','Plugin Activation Error', array( 'response'=>200, 'back_link'=>TRUE ) );
|
45 |
}
|
46 |
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
|
|
51 |
endif;
|
3 |
Plugin Name: Nested Pages
|
4 |
Plugin URI: http://nestedpages.com
|
5 |
Description: Provides an intuitive drag and drop interface for managing pages in the Wordpress admin, while maintaining quick edit functionality.
|
6 |
+
Version: 1.2.0
|
7 |
Author: Kyle Phillips
|
8 |
Author URI: https://github.com/kylephillips
|
9 |
Text Domain: nestedpages
|
32 |
* Check Wordpress and PHP versions before instantiating plugin
|
33 |
*/
|
34 |
register_activation_hook( __FILE__, 'nestedpages_check_versions' );
|
35 |
+
function nestedpages_check_versions( $wp = '3.9', $php = '5.3.2' ) {
|
36 |
global $wp_version;
|
37 |
if ( version_compare( PHP_VERSION, $php, '<' ) ) $flag = 'PHP';
|
38 |
elseif ( version_compare( $wp_version, $wp, '<' ) ) $flag = 'WordPress';
|
|
|
39 |
else return;
|
40 |
$version = 'PHP' == $flag ? $php : $wp;
|
41 |
+
|
42 |
+
if (function_exists('deactivate_plugins')){
|
43 |
+
deactivate_plugins( basename( __FILE__ ) );
|
44 |
+
}
|
45 |
|
46 |
wp_die('<p>The <strong>Nested Pages</strong> plugin requires'.$flag.' version '.$version.' or greater.</p>','Plugin Activation Error', array( 'response'=>200, 'back_link'=>TRUE ) );
|
47 |
}
|
48 |
|
49 |
+
if( !class_exists('Bootstrap') ) :
|
50 |
+
nestedpages_check_versions();
|
51 |
+
require_once('vendor/autoload.php');
|
52 |
+
require_once('app/NestedPages.php');
|
53 |
+
NestedPages::init();
|
54 |
endif;
|
readme.txt
CHANGED
@@ -4,12 +4,12 @@ Donate link: http://nestedpages.com/
|
|
4 |
Tags: pages, admin, nested, tree view, page tree, sort, quick edit
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.1
|
7 |
-
Stable tag: 1.1.
|
8 |
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
12 |
-
Nested Pages provides an intuitive drag and drop interface for managing pages in the
|
13 |
|
14 |
== Description ==
|
15 |
|
@@ -18,13 +18,13 @@ Nested Pages provides an intuitive drag and drop interface for managing pages in
|
|
18 |
* A drag and drop interface for managing your pages - simple and intuitive
|
19 |
* Quick edit functionality
|
20 |
* An expandable, sortable tree view of your site's page structure
|
21 |
-
* A native
|
22 |
* A way to quickly add child pages (ideal for development)
|
23 |
* A touch-friendly interface
|
24 |
|
25 |
For more information visit [nestedpages.com](http://nestedpages.com).
|
26 |
|
27 |
-
**Nested Pages requires
|
28 |
|
29 |
**Languages:**
|
30 |
|
@@ -34,6 +34,7 @@ For more information visit [nestedpages.com](http://nestedpages.com).
|
|
34 |
* French (Nico Mollet)
|
35 |
* German/Swiss German (Bartosz Podlewski)
|
36 |
* Italian (Francesco Canovi)
|
|
|
37 |
|
38 |
== Installation ==
|
39 |
|
@@ -60,14 +61,14 @@ Bulk quick edits are not currently supported by Nested Pages. To edit in bulk, c
|
|
60 |
Custom columns are not currently supported by Nested Pages. To view custom columns, click on “Default Pages” to view the native interface. If you are using WordPress SEO by Yoast, a page analysis indicator is shown.
|
61 |
|
62 |
= What are those dots in my page rows? =
|
63 |
-
If you have
|
64 |
|
65 |
|
66 |
== Screenshots ==
|
67 |
|
68 |
1. Expandable tree view of your page structure
|
69 |
|
70 |
-
2. Retains
|
71 |
|
72 |
3. Sortable page nesting updates in real time
|
73 |
|
@@ -77,6 +78,12 @@ If you have Wordpress SEO by Yoast installed, your page score indicators are sho
|
|
77 |
|
78 |
== Changelog ==
|
79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
= 1.1.9 =
|
81 |
* Minor bug fixes in editor capabilities
|
82 |
* Italian translation (Provided by Francesco Canovi)
|
@@ -130,6 +137,9 @@ If you have Wordpress SEO by Yoast installed, your page score indicators are sho
|
|
130 |
|
131 |
== Upgrade Notice ==
|
132 |
|
|
|
|
|
|
|
133 |
= 1.1.9 =
|
134 |
Italian translation included along with minor bug fixes.
|
135 |
|
4 |
Tags: pages, admin, nested, tree view, page tree, sort, quick edit
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.1
|
7 |
+
Stable tag: 1.1.9
|
8 |
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
12 |
+
Nested Pages provides an intuitive drag and drop interface for managing pages in the WordPress admin, while maintaining quick edit functionality.
|
13 |
|
14 |
== Description ==
|
15 |
|
18 |
* A drag and drop interface for managing your pages - simple and intuitive
|
19 |
* Quick edit functionality
|
20 |
* An expandable, sortable tree view of your site's page structure
|
21 |
+
* A native WordPress menu, automatically generated to match your Nested Pages screen
|
22 |
* A way to quickly add child pages (ideal for development)
|
23 |
* A touch-friendly interface
|
24 |
|
25 |
For more information visit [nestedpages.com](http://nestedpages.com).
|
26 |
|
27 |
+
**Important: Nested Pages requires WordPress version 3.8 or higher, and PHP version 5.3.2 or higher.**
|
28 |
|
29 |
**Languages:**
|
30 |
|
34 |
* French (Nico Mollet)
|
35 |
* German/Swiss German (Bartosz Podlewski)
|
36 |
* Italian (Francesco Canovi)
|
37 |
+
* Portuguese (Luis Martins)
|
38 |
|
39 |
== Installation ==
|
40 |
|
61 |
Custom columns are not currently supported by Nested Pages. To view custom columns, click on “Default Pages” to view the native interface. If you are using WordPress SEO by Yoast, a page analysis indicator is shown.
|
62 |
|
63 |
= What are those dots in my page rows? =
|
64 |
+
If you have WordPress SEO by Yoast installed, your page score indicators are shown along with the pages.
|
65 |
|
66 |
|
67 |
== Screenshots ==
|
68 |
|
69 |
1. Expandable tree view of your page structure
|
70 |
|
71 |
+
2. Retains quick edit functionality while adding additional options and a cleaner interface
|
72 |
|
73 |
3. Sortable page nesting updates in real time
|
74 |
|
78 |
|
79 |
== Changelog ==
|
80 |
|
81 |
+
= 1.2.0 =
|
82 |
+
* PHP 5.3.2+ is now required to run Nested Pages. Will not run or install on older versions of PHP.
|
83 |
+
* Visual nesting indication limit removed
|
84 |
+
* Portuguese Translation (Provided by Luis Martins)
|
85 |
+
* Various bug fixes
|
86 |
+
|
87 |
= 1.1.9 =
|
88 |
* Minor bug fixes in editor capabilities
|
89 |
* Italian translation (Provided by Francesco Canovi)
|
137 |
|
138 |
== Upgrade Notice ==
|
139 |
|
140 |
+
= 1.2 =
|
141 |
+
PHP 5.3.2 now required – Nested Pages will not install on older versions of PHP. If you are running less than 5.3.2, continue to use Nested Pages version 1.1.9.
|
142 |
+
|
143 |
= 1.1.9 =
|
144 |
Italian translation included along with minor bug fixes.
|
145 |
|
vendor/autoload.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// autoload.php @generated by Composer
|
4 |
+
|
5 |
+
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
+
|
7 |
+
return ComposerAutoloaderInitdf5efd6cdd1f1603d7c6384432ca8791::getLoader();
|
vendor/composer/ClassLoader.php
ADDED
@@ -0,0 +1,378 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of Composer.
|
5 |
+
*
|
6 |
+
* (c) Nils Adermann <naderman@naderman.de>
|
7 |
+
* Jordi Boggiano <j.boggiano@seld.be>
|
8 |
+
*
|
9 |
+
* For the full copyright and license information, please view the LICENSE
|
10 |
+
* file that was distributed with this source code.
|
11 |
+
*/
|
12 |
+
|
13 |
+
namespace Composer\Autoload;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* ClassLoader implements a PSR-0 class loader
|
17 |
+
*
|
18 |
+
* See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
|
19 |
+
*
|
20 |
+
* $loader = new \Composer\Autoload\ClassLoader();
|
21 |
+
*
|
22 |
+
* // register classes with namespaces
|
23 |
+
* $loader->add('Symfony\Component', __DIR__.'/component');
|
24 |
+
* $loader->add('Symfony', __DIR__.'/framework');
|
25 |
+
*
|
26 |
+
* // activate the autoloader
|
27 |
+
* $loader->register();
|
28 |
+
*
|
29 |
+
* // to enable searching the include path (eg. for PEAR packages)
|
30 |
+
* $loader->setUseIncludePath(true);
|
31 |
+
*
|
32 |
+
* In this example, if you try to use a class in the Symfony\Component
|
33 |
+
* namespace or one of its children (Symfony\Component\Console for instance),
|
34 |
+
* the autoloader will first look for the class under the component/
|
35 |
+
* directory, and it will then fallback to the framework/ directory if not
|
36 |
+
* found before giving up.
|
37 |
+
*
|
38 |
+
* This class is loosely based on the Symfony UniversalClassLoader.
|
39 |
+
*
|
40 |
+
* @author Fabien Potencier <fabien@symfony.com>
|
41 |
+
* @author Jordi Boggiano <j.boggiano@seld.be>
|
42 |
+
*/
|
43 |
+
class ClassLoader
|
44 |
+
{
|
45 |
+
// PSR-4
|
46 |
+
private $prefixLengthsPsr4 = array();
|
47 |
+
private $prefixDirsPsr4 = array();
|
48 |
+
private $fallbackDirsPsr4 = array();
|
49 |
+
|
50 |
+
// PSR-0
|
51 |
+
private $prefixesPsr0 = array();
|
52 |
+
private $fallbackDirsPsr0 = array();
|
53 |
+
|
54 |
+
private $useIncludePath = false;
|
55 |
+
private $classMap = array();
|
56 |
+
|
57 |
+
public function getPrefixes()
|
58 |
+
{
|
59 |
+
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
60 |
+
}
|
61 |
+
|
62 |
+
public function getPrefixesPsr4()
|
63 |
+
{
|
64 |
+
return $this->prefixDirsPsr4;
|
65 |
+
}
|
66 |
+
|
67 |
+
public function getFallbackDirs()
|
68 |
+
{
|
69 |
+
return $this->fallbackDirsPsr0;
|
70 |
+
}
|
71 |
+
|
72 |
+
public function getFallbackDirsPsr4()
|
73 |
+
{
|
74 |
+
return $this->fallbackDirsPsr4;
|
75 |
+
}
|
76 |
+
|
77 |
+
public function getClassMap()
|
78 |
+
{
|
79 |
+
return $this->classMap;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* @param array $classMap Class to filename map
|
84 |
+
*/
|
85 |
+
public function addClassMap(array $classMap)
|
86 |
+
{
|
87 |
+
if ($this->classMap) {
|
88 |
+
$this->classMap = array_merge($this->classMap, $classMap);
|
89 |
+
} else {
|
90 |
+
$this->classMap = $classMap;
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Registers a set of PSR-0 directories for a given prefix, either
|
96 |
+
* appending or prepending to the ones previously set for this prefix.
|
97 |
+
*
|
98 |
+
* @param string $prefix The prefix
|
99 |
+
* @param array|string $paths The PSR-0 root directories
|
100 |
+
* @param bool $prepend Whether to prepend the directories
|
101 |
+
*/
|
102 |
+
public function add($prefix, $paths, $prepend = false)
|
103 |
+
{
|
104 |
+
if (!$prefix) {
|
105 |
+
if ($prepend) {
|
106 |
+
$this->fallbackDirsPsr0 = array_merge(
|
107 |
+
(array) $paths,
|
108 |
+
$this->fallbackDirsPsr0
|
109 |
+
);
|
110 |
+
} else {
|
111 |
+
$this->fallbackDirsPsr0 = array_merge(
|
112 |
+
$this->fallbackDirsPsr0,
|
113 |
+
(array) $paths
|
114 |
+
);
|
115 |
+
}
|
116 |
+
|
117 |
+
return;
|
118 |
+
}
|
119 |
+
|
120 |
+
$first = $prefix[0];
|
121 |
+
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
122 |
+
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
123 |
+
|
124 |
+
return;
|
125 |
+
}
|
126 |
+
if ($prepend) {
|
127 |
+
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
128 |
+
(array) $paths,
|
129 |
+
$this->prefixesPsr0[$first][$prefix]
|
130 |
+
);
|
131 |
+
} else {
|
132 |
+
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
133 |
+
$this->prefixesPsr0[$first][$prefix],
|
134 |
+
(array) $paths
|
135 |
+
);
|
136 |
+
}
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Registers a set of PSR-4 directories for a given namespace, either
|
141 |
+
* appending or prepending to the ones previously set for this namespace.
|
142 |
+
*
|
143 |
+
* @param string $prefix The prefix/namespace, with trailing '\\'
|
144 |
+
* @param array|string $paths The PSR-0 base directories
|
145 |
+
* @param bool $prepend Whether to prepend the directories
|
146 |
+
*/
|
147 |
+
public function addPsr4($prefix, $paths, $prepend = false)
|
148 |
+
{
|
149 |
+
if (!$prefix) {
|
150 |
+
// Register directories for the root namespace.
|
151 |
+
if ($prepend) {
|
152 |
+
$this->fallbackDirsPsr4 = array_merge(
|
153 |
+
(array) $paths,
|
154 |
+
$this->fallbackDirsPsr4
|
155 |
+
);
|
156 |
+
} else {
|
157 |
+
$this->fallbackDirsPsr4 = array_merge(
|
158 |
+
$this->fallbackDirsPsr4,
|
159 |
+
(array) $paths
|
160 |
+
);
|
161 |
+
}
|
162 |
+
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
163 |
+
// Register directories for a new namespace.
|
164 |
+
$length = strlen($prefix);
|
165 |
+
if ('\\' !== $prefix[$length - 1]) {
|
166 |
+
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
167 |
+
}
|
168 |
+
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
169 |
+
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
170 |
+
} elseif ($prepend) {
|
171 |
+
// Prepend directories for an already registered namespace.
|
172 |
+
$this->prefixDirsPsr4[$prefix] = array_merge(
|
173 |
+
(array) $paths,
|
174 |
+
$this->prefixDirsPsr4[$prefix]
|
175 |
+
);
|
176 |
+
} else {
|
177 |
+
// Append directories for an already registered namespace.
|
178 |
+
$this->prefixDirsPsr4[$prefix] = array_merge(
|
179 |
+
$this->prefixDirsPsr4[$prefix],
|
180 |
+
(array) $paths
|
181 |
+
);
|
182 |
+
}
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* Registers a set of PSR-0 directories for a given prefix,
|
187 |
+
* replacing any others previously set for this prefix.
|
188 |
+
*
|
189 |
+
* @param string $prefix The prefix
|
190 |
+
* @param array|string $paths The PSR-0 base directories
|
191 |
+
*/
|
192 |
+
public function set($prefix, $paths)
|
193 |
+
{
|
194 |
+
if (!$prefix) {
|
195 |
+
$this->fallbackDirsPsr0 = (array) $paths;
|
196 |
+
} else {
|
197 |
+
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
198 |
+
}
|
199 |
+
}
|
200 |
+
|
201 |
+
/**
|
202 |
+
* Registers a set of PSR-4 directories for a given namespace,
|
203 |
+
* replacing any others previously set for this namespace.
|
204 |
+
*
|
205 |
+
* @param string $prefix The prefix/namespace, with trailing '\\'
|
206 |
+
* @param array|string $paths The PSR-4 base directories
|
207 |
+
*/
|
208 |
+
public function setPsr4($prefix, $paths) {
|
209 |
+
if (!$prefix) {
|
210 |
+
$this->fallbackDirsPsr4 = (array) $paths;
|
211 |
+
} else {
|
212 |
+
$length = strlen($prefix);
|
213 |
+
if ('\\' !== $prefix[$length - 1]) {
|
214 |
+
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
215 |
+
}
|
216 |
+
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
217 |
+
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
218 |
+
}
|
219 |
+
}
|
220 |
+
|
221 |
+
/**
|
222 |
+
* Turns on searching the include path for class files.
|
223 |
+
*
|
224 |
+
* @param bool $useIncludePath
|
225 |
+
*/
|
226 |
+
public function setUseIncludePath($useIncludePath)
|
227 |
+
{
|
228 |
+
$this->useIncludePath = $useIncludePath;
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* Can be used to check if the autoloader uses the include path to check
|
233 |
+
* for classes.
|
234 |
+
*
|
235 |
+
* @return bool
|
236 |
+
*/
|
237 |
+
public function getUseIncludePath()
|
238 |
+
{
|
239 |
+
return $this->useIncludePath;
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* Registers this instance as an autoloader.
|
244 |
+
*
|
245 |
+
* @param bool $prepend Whether to prepend the autoloader or not
|
246 |
+
*/
|
247 |
+
public function register($prepend = false)
|
248 |
+
{
|
249 |
+
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
250 |
+
}
|
251 |
+
|
252 |
+
/**
|
253 |
+
* Unregisters this instance as an autoloader.
|
254 |
+
*/
|
255 |
+
public function unregister()
|
256 |
+
{
|
257 |
+
spl_autoload_unregister(array($this, 'loadClass'));
|
258 |
+
}
|
259 |
+
|
260 |
+
/**
|
261 |
+
* Loads the given class or interface.
|
262 |
+
*
|
263 |
+
* @param string $class The name of the class
|
264 |
+
* @return bool|null True if loaded, null otherwise
|
265 |
+
*/
|
266 |
+
public function loadClass($class)
|
267 |
+
{
|
268 |
+
if ($file = $this->findFile($class)) {
|
269 |
+
includeFile($file);
|
270 |
+
|
271 |
+
return true;
|
272 |
+
}
|
273 |
+
}
|
274 |
+
|
275 |
+
/**
|
276 |
+
* Finds the path to the file where the class is defined.
|
277 |
+
*
|
278 |
+
* @param string $class The name of the class
|
279 |
+
*
|
280 |
+
* @return string|false The path if found, false otherwise
|
281 |
+
*/
|
282 |
+
public function findFile($class)
|
283 |
+
{
|
284 |
+
// work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
|
285 |
+
if ('\\' == $class[0]) {
|
286 |
+
$class = substr($class, 1);
|
287 |
+
}
|
288 |
+
|
289 |
+
// class map lookup
|
290 |
+
if (isset($this->classMap[$class])) {
|
291 |
+
return $this->classMap[$class];
|
292 |
+
}
|
293 |
+
|
294 |
+
$file = $this->findFileWithExtension($class, '.php');
|
295 |
+
|
296 |
+
// Search for Hack files if we are running on HHVM
|
297 |
+
if ($file === null && defined('HHVM_VERSION')) {
|
298 |
+
$file = $this->findFileWithExtension($class, '.hh');
|
299 |
+
}
|
300 |
+
|
301 |
+
if ($file === null) {
|
302 |
+
// Remember that this class does not exist.
|
303 |
+
return $this->classMap[$class] = false;
|
304 |
+
}
|
305 |
+
|
306 |
+
return $file;
|
307 |
+
}
|
308 |
+
|
309 |
+
private function findFileWithExtension($class, $ext)
|
310 |
+
{
|
311 |
+
// PSR-4 lookup
|
312 |
+
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
313 |
+
|
314 |
+
$first = $class[0];
|
315 |
+
if (isset($this->prefixLengthsPsr4[$first])) {
|
316 |
+
foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
|
317 |
+
if (0 === strpos($class, $prefix)) {
|
318 |
+
foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
|
319 |
+
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
|
320 |
+
return $file;
|
321 |
+
}
|
322 |
+
}
|
323 |
+
}
|
324 |
+
}
|
325 |
+
}
|
326 |
+
|
327 |
+
// PSR-4 fallback dirs
|
328 |
+
foreach ($this->fallbackDirsPsr4 as $dir) {
|
329 |
+
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
330 |
+
return $file;
|
331 |
+
}
|
332 |
+
}
|
333 |
+
|
334 |
+
// PSR-0 lookup
|
335 |
+
if (false !== $pos = strrpos($class, '\\')) {
|
336 |
+
// namespaced class name
|
337 |
+
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
338 |
+
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
339 |
+
} else {
|
340 |
+
// PEAR-like class name
|
341 |
+
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
342 |
+
}
|
343 |
+
|
344 |
+
if (isset($this->prefixesPsr0[$first])) {
|
345 |
+
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
346 |
+
if (0 === strpos($class, $prefix)) {
|
347 |
+
foreach ($dirs as $dir) {
|
348 |
+
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
349 |
+
return $file;
|
350 |
+
}
|
351 |
+
}
|
352 |
+
}
|
353 |
+
}
|
354 |
+
}
|
355 |
+
|
356 |
+
// PSR-0 fallback dirs
|
357 |
+
foreach ($this->fallbackDirsPsr0 as $dir) {
|
358 |
+
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
359 |
+
return $file;
|
360 |
+
}
|
361 |
+
}
|
362 |
+
|
363 |
+
// PSR-0 include paths.
|
364 |
+
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
365 |
+
return $file;
|
366 |
+
}
|
367 |
+
}
|
368 |
+
}
|
369 |
+
|
370 |
+
/**
|
371 |
+
* Scope isolated include.
|
372 |
+
*
|
373 |
+
* Prevents access to $this/self from included files.
|
374 |
+
*/
|
375 |
+
function includeFile($file)
|
376 |
+
{
|
377 |
+
include $file;
|
378 |
+
}
|
vendor/composer/autoload_classmap.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// autoload_classmap.php @generated by Composer
|
4 |
+
|
5 |
+
$vendorDir = dirname(dirname(__FILE__));
|
6 |
+
$baseDir = dirname($vendorDir);
|
7 |
+
|
8 |
+
return array(
|
9 |
+
);
|
vendor/composer/autoload_namespaces.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// autoload_namespaces.php @generated by Composer
|
4 |
+
|
5 |
+
$vendorDir = dirname(dirname(__FILE__));
|
6 |
+
$baseDir = dirname($vendorDir);
|
7 |
+
|
8 |
+
return array(
|
9 |
+
);
|
vendor/composer/autoload_psr4.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// autoload_psr4.php @generated by Composer
|
4 |
+
|
5 |
+
$vendorDir = dirname(dirname(__FILE__));
|
6 |
+
$baseDir = dirname($vendorDir);
|
7 |
+
|
8 |
+
return array(
|
9 |
+
'NestedPages\\' => array($baseDir . '/app'),
|
10 |
+
);
|
vendor/composer/autoload_real.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// autoload_real.php @generated by Composer
|
4 |
+
|
5 |
+
class ComposerAutoloaderInitdf5efd6cdd1f1603d7c6384432ca8791
|
6 |
+
{
|
7 |
+
private static $loader;
|
8 |
+
|
9 |
+
public static function loadClassLoader($class)
|
10 |
+
{
|
11 |
+
if ('Composer\Autoload\ClassLoader' === $class) {
|
12 |
+
require __DIR__ . '/ClassLoader.php';
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
public static function getLoader()
|
17 |
+
{
|
18 |
+
if (null !== self::$loader) {
|
19 |
+
return self::$loader;
|
20 |
+
}
|
21 |
+
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInitdf5efd6cdd1f1603d7c6384432ca8791', 'loadClassLoader'), true, true);
|
23 |
+
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitdf5efd6cdd1f1603d7c6384432ca8791', 'loadClassLoader'));
|
25 |
+
|
26 |
+
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
+
foreach ($map as $namespace => $path) {
|
28 |
+
$loader->set($namespace, $path);
|
29 |
+
}
|
30 |
+
|
31 |
+
$map = require __DIR__ . '/autoload_psr4.php';
|
32 |
+
foreach ($map as $namespace => $path) {
|
33 |
+
$loader->setPsr4($namespace, $path);
|
34 |
+
}
|
35 |
+
|
36 |
+
$classMap = require __DIR__ . '/autoload_classmap.php';
|
37 |
+
if ($classMap) {
|
38 |
+
$loader->addClassMap($classMap);
|
39 |
+
}
|
40 |
+
|
41 |
+
$loader->register(true);
|
42 |
+
|
43 |
+
return $loader;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
function composerRequiredf5efd6cdd1f1603d7c6384432ca8791($file)
|
48 |
+
{
|
49 |
+
require $file;
|
50 |
+
}
|
views/settings.php
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
$allowsorting = get_option('nestedpages_allowsorting', array());
|
3 |
-
if ( $allowsorting == "" ) $allowsorting = array();
|
4 |
-
?>
|
5 |
-
<div class="wrap">
|
6 |
-
<h1><?php _e('Nested Pages Settings', 'nestedpages'); ?></h1>
|
7 |
-
|
8 |
-
<form method="post" enctype="multipart/form-data" action="options.php">
|
9 |
-
<table class="form-table">
|
10 |
-
<?php settings_fields( 'nestedpages-general' ); ?>
|
11 |
-
<tr valign="top">
|
12 |
-
<th scope="row"><?php _e('Nested Pages Version', 'nestedpages'); ?></th>
|
13 |
-
<td><strong><?php echo get_option('nestedpages_version'); ?></strong></td>
|
14 |
-
</tr>
|
15 |
-
<tr valign="top">
|
16 |
-
<th scope="row"><?php _e('Menu Name', 'nestedpages'); ?></th>
|
17 |
-
<td>
|
18 |
-
<input type="text" name="nestedpages_menu" id="nestedpages_menu" value="<?php echo $this->menu->name; ?>">
|
19 |
-
<p><em><?php _e('Important: Once the menu name has changed, theme files should be updated to reference the new name.', 'nestedpages'); ?></em></p>
|
20 |
-
</td>
|
21 |
-
</tr>
|
22 |
-
<tr valign="top">
|
23 |
-
<th scope="row"><?php _e('Hide Default Pages', 'nestedpages'); ?></th>
|
24 |
-
<td>
|
25 |
-
<label>
|
26 |
-
<input type="checkbox" id="nestedpages_hidedefault" name="nestedpages_hidedefault" <?php if ( get_option('nestedpages_hidedefault') == 'hide') echo 'checked'; ?> value="hide" >
|
27 |
-
<?php _e('Hide Default Pages', 'nestedpages'); ?>
|
28 |
-
</label>
|
29 |
-
</td>
|
30 |
-
</tr>
|
31 |
-
<tr valign="top">
|
32 |
-
<th scope="row"><?php _e('Allow Page Sorting', 'nestedpages'); ?></th>
|
33 |
-
<td>
|
34 |
-
<?php foreach ( $this->user_repo->allRoles() as $role ) : ?>
|
35 |
-
<label>
|
36 |
-
<input type="checkbox" name="nestedpages_allowsorting[]" value="<?php echo $role; ?>" <?php if ( in_array($role, $allowsorting) ) echo 'checked'; ?> >
|
37 |
-
<?php echo $role; ?>
|
38 |
-
</label>
|
39 |
-
<br />
|
40 |
-
<?php endforeach; ?>
|
41 |
-
<p><em><?php _e('Admins always have sorting ability.', 'nestedpages'); ?></em></p>
|
42 |
-
</td>
|
43 |
-
</tr>
|
44 |
-
</table>
|
45 |
-
<input type="hidden" name="nestedpages_menusync" value="<?php echo get_option('nestedpages_menusync'); ?>">
|
46 |
-
<?php submit_button(); ?>
|
47 |
-
</form>
|
48 |
-
</div><!-- .wrap -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|