BaseHandler.php
11 years ago
EmptyTrashHandler.php
11 years ago
GetTaxonomiesHandler.php
11 years ago
ListingSortHandler.php
11 years ago
NestToggleHandler.php
11 years ago
NewChildHandler.php
11 years ago
NewLinkHandler.php
11 years ago
QuickEditHandler.php
11 years ago
QuickEditLinkHandler.php
11 years ago
SearchHandler.php
11 years ago
SortHandler.php
11 years ago
SyncMenuHandler.php
11 years ago
BaseHandler.php
124 lines
| 1 | <?php namespace NestedPages\Form\Handlers; |
| 2 | |
| 3 | use NestedPages\Entities\NavMenu\NavMenuSyncListing; |
| 4 | use NestedPages\Entities\Post\PostRepository; |
| 5 | use NestedPages\Entities\Post\PostUpdateRepository; |
| 6 | use NestedPages\Entities\User\UserRepository; |
| 7 | |
| 8 | /** |
| 9 | * Base Form Handler Class |
| 10 | */ |
| 11 | abstract class BaseHandler { |
| 12 | |
| 13 | /** |
| 14 | * Nonce |
| 15 | * @var string |
| 16 | */ |
| 17 | protected $nonce; |
| 18 | |
| 19 | /** |
| 20 | * Form Data |
| 21 | * @var array |
| 22 | */ |
| 23 | protected $data; |
| 24 | |
| 25 | /** |
| 26 | * Post Repo |
| 27 | * @var object |
| 28 | */ |
| 29 | protected $post_repo; |
| 30 | |
| 31 | /** |
| 32 | * User Repo |
| 33 | * @var object |
| 34 | */ |
| 35 | protected $user; |
| 36 | |
| 37 | /** |
| 38 | * Post Update Repo |
| 39 | */ |
| 40 | protected $post_update_repo; |
| 41 | |
| 42 | /** |
| 43 | * Response |
| 44 | * @var array; |
| 45 | */ |
| 46 | protected $response; |
| 47 | |
| 48 | |
| 49 | public function __construct() |
| 50 | { |
| 51 | $this->post_repo = new PostRepository; |
| 52 | $this->post_update_repo = new PostUpdateRepository; |
| 53 | $this->user = new UserRepository; |
| 54 | $this->setData(); |
| 55 | $this->validateNonce(); |
| 56 | } |
| 57 | |
| 58 | |
| 59 | /** |
| 60 | * Set the Form Data |
| 61 | */ |
| 62 | protected function setData() |
| 63 | { |
| 64 | $this->nonce = sanitize_text_field($_POST['nonce']); |
| 65 | $data = array(); |
| 66 | foreach( $_POST as $key => $value ){ |
| 67 | $data[$key] = $value; |
| 68 | } |
| 69 | $this->data = $data; |
| 70 | } |
| 71 | |
| 72 | |
| 73 | /** |
| 74 | * Validate the Nonce |
| 75 | */ |
| 76 | protected function validateNonce() |
| 77 | { |
| 78 | if ( ! wp_verify_nonce( $this->nonce, 'nestedpages-nonce' ) ){ |
| 79 | $this->response = array( 'status' => 'error', 'message' => __('Incorrect Form Field', 'nestedpages') ); |
| 80 | $this->sendResponse(); |
| 81 | die(); |
| 82 | } |
| 83 | } |
| 84 | |
| 85 | |
| 86 | /** |
| 87 | * Sync the Nav Menu |
| 88 | */ |
| 89 | protected function syncMenu() |
| 90 | { |
| 91 | if ( $_POST['post_type'] == 'page' ) { |
| 92 | if ( $_POST['syncmenu'] == 'sync' ){ |
| 93 | $menu = new NavMenuSyncListing; |
| 94 | $menu->sync(); |
| 95 | update_option('nestedpages_menusync', 'sync'); |
| 96 | } else { |
| 97 | update_option('nestedpages_menusync', 'nosync'); |
| 98 | } |
| 99 | } |
| 100 | } |
| 101 | |
| 102 | |
| 103 | /** |
| 104 | * Send a Generic Success Message |
| 105 | */ |
| 106 | protected function sendErrorResponse() |
| 107 | { |
| 108 | $this->response = array( |
| 109 | 'status' => 'error', |
| 110 | 'message' => __('There was an error updating the page.', 'nestedpages') |
| 111 | ); |
| 112 | $this->sendResponse(); |
| 113 | } |
| 114 | |
| 115 | |
| 116 | /** |
| 117 | * Return Response |
| 118 | */ |
| 119 | protected function sendResponse() |
| 120 | { |
| 121 | return wp_send_json($this->response); |
| 122 | } |
| 123 | |
| 124 | } |