PluginProbe
MaxButtons – Create buttons / 6.28
MaxButtons – Create buttons v6.28
6.23 6.24 6.25 6.26 6.26.1 6.27 6.28 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.0 7.1 7.1.1 7.1.2 7.1.3 7.10 7.11 7.13 7.13.1 7.13.2 7.13.3 All 100 releases
maxbuttons / classes / buttons.php

buttons.php in MaxButtons – Create buttons 6.28, at classes/buttons.php

162 lines 3.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace MaxButtons;
3 /** Buttons class - handles paging issues and sanity check for individual buttons
4 */
5 class maxButtons
6 {
7 protected static $loadedButtons = array(); // loaded button in current scope
8 /*
9
10 array [ index ] [ button_id ] [data - document_id, done (bool )
11 */
12 protected static $documentArray = array(); // given out document ID's
13
14 // override to give out next document id. This is useful when buttons are set but not displayed directly.
15 protected static $doNext = false;
16 protected static $current_doc_id = null;
17 protected static $current_button_id = null;
18
19 protected static $instance = null;
20
21
22 public static function getInstance()
23 {
24 if (is_null(self::$instance))
25 self::$instance = new maxButtons();
26
27 return self::$instance;
28 }
29
30 static function buttonLoad($args)
31 {
32
33 $button_id = $args["button_id"];
34 self::$loadedButtons[] = $button_id;
35 $document_id = self::getDocumentID(array("button_id" => $button_id));
36 self::$documentArray[] = array($button_id => array('document_id' => $document_id , 'done' => false));
37
38 }
39
40 static function forceNextID()
41 {
42 self::$doNext = true;
43 self::$current_doc_id = null;
44 self::$current_button_id = null;
45 }
46
47 static function getDocumentID($args)
48 {
49 $button_id = $args["button_id"];
50
51 if (! is_null(self::$current_doc_id) && self::$current_button_id == $button_id )
52 return self::$current_doc_id;
53
54
55 if (self::$doNext == false)
56 {
57 foreach(self::$documentArray as $index => $ids)
58 {
59 foreach($ids as $doc_button_id => $doc_vars)
60 {
61 if ($doc_button_id == $button_id)
62 {
63 if (! $doc_vars["done"])
64 return $doc_vars["document_id"];
65 }
66
67 }
68
69 }
70 }
71 // if not found in documentarray make a new one
72 $loaded = self::$loadedButtons;
73 end($loaded);
74 $i = 0;
75
76 foreach($loaded as $btn_id)
77 {
78 if ($btn_id == $button_id)
79 $i++;
80 }
81 $i--; // minus the current added button..
82
83 //$index = key($loaded); // find last index
84 if ($i == 0)
85 $document_id = $button_id;
86 else
87 $document_id = $button_id . "_" . $i;
88
89 self::$doNext = false;
90 self::$current_doc_id = $document_id;
91 self::$current_button_id = $button_id;
92 return $document_id;
93
94 }
95
96 static function buttonDone($args)
97 {
98 $button_id = $args["button_id"];
99 $document_id = $args["document_id"];
100
101 foreach(self::$documentArray as $index => $data)
102 {
103 foreach($data as $doc_button_id => $doc_data)
104 {
105 if ($doc_button_id == $button_id && $doc_data["document_id"] == $document_id)
106 {
107 self::$documentArray[$index][$button_id]["done"] = true;
108 }
109
110 }
111
112 }
113
114 }
115
116 public static function ajax_action()
117 {
118 $action = sanitize_text_field($_POST['button_action']);
119 $check = wp_verify_nonce($_POST['nonce'], 'button-' . $action);
120 $button_id = intval($_POST["button_id"]);
121 $button = new maxButton();
122
123 if (! $check)
124 exit('Invalid Nonce');
125
126 switch($action)
127 {
128 case "delete":
129 $button->delete($button_id);
130 $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&message=1delete';
131 break;
132
133 case "trash":
134 $result = $button->set($button_id);
135 if ($result)
136 $button->setStatus('trash');
137 $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&message=1';
138 break;
139 case "restore":
140 $set = $button->set($button_id,'','trash');
141 $button->setStatus("publish");
142 $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&status=trash&message=1restore';
143 break;
144 case "copy":
145 $button->set($button_id);
146 $new_id = $button->copy();
147 $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=button&id=' . $new_id;
148 break;
149
150 }
151
152 if (isset($redirect_url)) {
153 $response = array('redirection' => $redirect_url);
154 echo json_encode($response);
155 exit();
156 }
157
158 exit(true);
159 }
160
161 } // class
162