PluginProbe
MaxButtons – Create buttons / 6.5
MaxButtons – Create buttons v6.5
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.5, at classes/buttons.php

117 lines 2.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
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 } // class
117