PluginProbe
MaxButtons – Create buttons / 7.10
MaxButtons – Create buttons v7.10
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 7.10, at classes/buttons.php

183 lines 4.3 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 = MB()->getClass('button');
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 public static function ajax_action()
114 {
115 $action = sanitize_text_field($_POST['button_action']);
116 $check = wp_verify_nonce($_POST['nonce'], 'button-' . $action);
117 $button_id = intval($_POST["button_id"]);
118 $button = MB()->getClass('button');
119
120 if (! $check)
121 exit('Invalid Nonce');
122
123 switch($action)
124 {
125 case "delete":
126 $button->delete($button_id);
127 $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&message=1delete';
128 break;
129
130 case "trash":
131 $result = $button->set($button_id);
132 if ($result)
133 $button->setStatus('trash');
134 $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&message=1';
135 break;
136 case "restore":
137 $set = $button->set($button_id,'','trash');
138 $button->setStatus("publish");
139 $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=list&status=trash&message=1restore';
140 break;
141 case "copy":
142 $button->set($button_id);
143 $new_id = $button->copy();
144 $redirect_url = admin_url() . 'admin.php?page=maxbuttons-controller&action=button&id=' . $new_id;
145 break;
146
147 }
148
149 if (isset($redirect_url)) {
150 $response = array('redirection' => $redirect_url);
151 echo json_encode($response);
152 exit();
153 }
154
155 exit(true);
156 }
157
158
159 public static function generate_css()
160 {
161 global $wpdb;
162 $id = isset($_REQUEST['id']) ? sanitize_text_field($_REQUEST['id']) : false;
163
164 if (! $id)
165 return;
166
167 $idar = explode(',', $id);
168 $idar = array_filter($idar, 'is_numeric');
169 $id = implode(',',$idar);
170
171 $row = $wpdb->get_col($wpdb->prepare("SELECT cache FROM " . maxUtils::get_table_name() . " WHERE id in($id) and status ='%s'", 'publish'));
172
173
174 header( "Content-type: text/css; charset: UTF-8" );
175 foreach($row as $content)
176 {
177 echo $content;
178 }
179 exit();
180 }
181
182 } // class
183