Options.php
4.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
class B2S_Options {
public $optionData;
protected $name;
protected $blog_user_id;
protected $autoLoad;
public function __construct($blog_user_id = 0, $name = 'B2S_PLUGIN_OPTIONS', $autoLoad = false) { //since V4.0.0
$this->name = $name;
$this->blog_user_id = $blog_user_id;
$this->optionData = ($this->blog_user_id == 0) ? get_option($name) : get_option($name . '_' . $blog_user_id);
$this->autoLoad = $autoLoad;
}
public function _getOption($key) {
if (is_array($this->optionData)) {
foreach ($this->optionData as $k) {
if (isset($this->optionData[$key])) {
return $this->optionData[$key];
}
}
}
return false;
}
public function _setOption($key, $value, $addToArray = false) {
$update = false;
if (!is_array($this->optionData) || $this->optionData === false) {
$this->optionData = array($key => (($addToArray) ? array($value) : $value));
$update = true;
} else {
foreach ($this->optionData as $k) {
if (isset($this->optionData[$key])) {
if ($addToArray && is_array($this->optionData[$key])) {
array_push($this->optionData[$key], $value);
} else {
$this->optionData[$key] = $value;
}
$update = true;
}
}
if (!$update) {
if (is_array($this->optionData)) {
$this->optionData[$key] = ($addToArray) ? array($value) : $value;
}
}
}
if ($this->blog_user_id == 0) {
update_option($this->name, $this->optionData, $this->autoLoad);
} else {
update_option($this->name . '_' . $this->blog_user_id, $this->optionData, $this->autoLoad);
}
return true;
}
public function existsValueByKey($key, $value) {
if (is_array($this->optionData)) {
foreach ($this->optionData as $k) {
if (isset($this->optionData[$key])) {
if (is_array($this->optionData[$key])) {
foreach ($this->optionData[$key]as $k => $v) {
if ($v == $value) {
return true;
}
}
} else {
if ($this->optionData[$key] == $value) {
return true;
}
}
}
}
}
return false;
}
public function deleteValueByKey($key, $value) {
$return = false;
if (is_array($this->optionData)) {
if (isset($this->optionData[$key])) {
if (is_array($this->optionData[$key])) {
$tempArray = array();
foreach ($this->optionData[$key] as $fkey => $v) {
if (isset($this->optionData[$key][$fkey])) {
if ($v != $value) {
array_push($tempArray, $this->optionData[$key][$fkey]);
}
}
}
$this->optionData[$key] = $tempArray;
$return = true;
} else if ($this->optionData[$key] == $value) {
unset($this->optionData[$key]);
$return = true;
}
}
}
if ($return) {
if ($this->blog_user_id == 0) {
update_option($this->name, $this->optionData, $this->autoLoad);
} else {
update_option($this->name . '_' . $this->blog_user_id, $this->optionData, $this->autoLoad);
}
}
return $return;
}
}