-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathe_version.php
More file actions
145 lines (123 loc) · 3.5 KB
/
e_version.php
File metadata and controls
145 lines (123 loc) · 3.5 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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?php
/**
* G4HDU version checker
*
* Copyright (C) 2008-2016 Barry Keal G4HDU http://www.keal.me.uk
* released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
* @author Barry Keal e107@keal.me.uk>
* @copyright Copyright (C) 2008-2016 Barry Keal G4HDU
* @package e107
* @subpackage e_version
* @license GPL
* @version 2.1.0
* @category e107 utility
*
* @todo Documentation
*/
e107::css('inline', '
/* e_version */
#eversionMoreBox{
width:100%;
text-align:center;
}
#eversionMore{
font-size:1.6em;
color:#0000ff;
cursor:pointer;
}
#eversionContent{
text-align:left;
display:none;
}
');
e107::js('inline', "
/* e_version js */
$(document).ready(function(){
$('#eversionMore').click(function(){
$('#eversionContent').slideToggle()}
);
});
");
/**
* e_version
*
* @package
* @author Auto Assign
* @copyright Father Barry
* @version 2016
* @access public
*/
class e_version
{
static private $prefs;
static private $remoteVersion;
static private $localVersion;
/**
* e_version::__construct()
*
* @return
*/
function __construct()
{
}
/**
* e_version::updateAvailable()
*
* @param string $plugName
* @return
*/
static private function updateAvailable($plugName)
{
if (self::$prefs['e_update'] != date('z')) {
$url = (string )self::$prefs['e_remote'];
if (!empty($url)) {
$xml = new SimpleXMLElement($url, LIBXML_NOCDATA, true);
self::$remoteVersion = (string )$xml->attributes()->version;
self::$prefs['e_version'] = self::$remoteVersion;
self::$prefs['e_update'] = date('z');
self::$prefs = e107::getConfig($plugName)->setPref(self::$prefs)->save(false);
}
} else {
self::$remoteVersion = self::$prefs['e_version'];
}
self::$localVersion = e107::getPref('plug_installed')[$plugName];
$status = version_compare(self::$localVersion, self::$remoteVersion);
$text = '';
if ($status > 0) {
$retval = true;
} else {
$retval = false;
}
return $retval;
}
/**
* e_version::genUpdate()
*
* @param string $plugName
* @return
*/
static function genUpdate($plugName)
{
self::$prefs = e107::getPlugPref($plugName);
$github = str_replace('/master/plugin.xml', '', self::$prefs['e_remote']);
$github = str_replace('raw.githubusercontent.com', 'github.com', $github);
if (self::updateAvailable($plugName)) {
$help_text = "There is an update available";
} else {
$help_text = "You have the latest version installed";
}
$help_text .= "
<div id='eversionMoreBox'><i id='eversionMore' class='fa fa-info-circle' aria-hidden='true'></i>
<div id='eversionContent'>
<a href='{$github}' target='_blank' >Github</a><br />
<a href='{$github}/issues' target='_blank' >Issues</a><br />
<a href='{$github}/wiki' target='_blank' >Wiki</a><br />
<a href='" . e_ADMIN . "plugin.php??srch={$plugName}&go=&mode=online' >Plugin Manager</a><br />
</div>
</div>";
return array('caption' => "Update", 'text' => $help_text);
}
}
?>