PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.4.2
JetBackup – Backup, Restore & Migrate v1.4.2
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / public / include / functions.php
backup / public / include Last commit date
footer-new.php 5 years ago footer.php 5 years ago functions.php 5 years ago header-new.php 5 years ago header.php 5 years ago modal.php 5 years ago sidebar.php 5 years ago uninstallSurveyPopup.php 5 years ago
functions.php
297 lines
1 <?php
2
3 function backupGuardShouldShowDiscountNotice()
4 {
5 if (SGConfig::get("SG_HIDE_DISCOUNT_NOTICE")) {
6 return false;
7 }
8
9 return true;
10 }
11
12 function checkDueDateDiscount()
13 {
14 $startDate = '2019-11-27';
15 $endDate = '2019-12-02';
16
17 $timezone = 'Asia/Yerevan';
18 $timeDate = new DateTime('now', new DateTimeZone($timezone));
19 $currentTime = strtotime($timeDate->format('Y-m-d H:i:s'));
20
21 $startDate = strtotime($startDate);
22 $finishDate = strtotime($endDate);
23
24 return ($currentTime > $startDate && $currentTime < $finishDate);
25 }
26
27 function _backupGuardT($key, $return = false)
28 {
29 if (SG_ENV_ADAPTER == SG_ENV_WORDPRESS) {
30 if($return) {
31 return __($key, "backup-guard-pro");
32 }
33 else {
34 _e($key, "backup-guard-pro");
35 }
36 }
37 else {
38 if($return) {
39 return $key;
40 }
41 else {
42 echo $key;
43 }
44 }
45 }
46
47 function backupGuardIsAjax()
48 {
49 return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
50 }
51
52 function selectElement($data, $attributes=array(), $firstOption='', $selectedKey='')
53 {
54 $attrString = '';
55 foreach($attributes as $attributeKey=>$attributeValue) {
56 $attrString.= " ".$attributeKey.'="'.$attributeValue.'"';
57
58 }
59 $select = '<select'.$attrString.'>';
60 if ($firstOption) {
61 $select.='<option value="0">'.$firstOption.'</option>';
62 }
63 foreach($data as $key=>$val) {
64 $selected = $selectedKey==$key?' selected="selected"':'';
65 $select.='<option value="'.$key.'"'.$selected.'>'.$val.'</option>';
66 }
67 $select.='</select>';
68 return $select;
69 }
70
71 function backupGuardParseBackupOptions($options)
72 {
73
74 $scheduleOptions = array(
75 'interval' => '',
76 'dayOfInterval' => '',
77 'intervalHour' => '',
78 'isBackgroundMode' => false,
79 'isDatabaseSelected' => false,
80 'isFilesSelected' => false,
81 'isCustomBackup' => false,
82 'selectedDirectories' => array(),
83 'excludeDirectories' => array(),
84 'selectedClouds' => array(),
85 'label' => ''
86 );
87
88 if (isset($options['schedule_options'])) {
89 $scheduleExecutionOptions = json_decode($options['schedule_options'], true);
90
91 $scheduleOptions['interval'] = $scheduleExecutionOptions['interval'];
92 $scheduleOptions['dayOfInterval'] = $scheduleExecutionOptions['dayOfInterval'];
93 $scheduleOptions['intervalHour'] = $scheduleExecutionOptions['intervalHour'];
94 }
95
96 if (isset($options['backup_options'])) {
97
98 $backupOptions = json_decode($options['backup_options'], true);
99
100 $scheduleOptions['isBackgroundMode'] = $backupOptions['SG_BACKUP_IN_BACKGROUND_MODE']?true:false;
101 $scheduleOptions['isDatabaseSelected'] = $backupOptions['SG_ACTION_BACKUP_DATABASE_AVAILABLE']?true:false;
102 $scheduleOptions['isFilesSelected'] = $backupOptions['SG_ACTION_BACKUP_FILES_AVAILABLE']?true:false;
103 $backupType = $backupOptions['SG_BACKUP_TYPE'];
104
105 $scheduleOptions['isCustomBackup'] = $backupType==SG_BACKUP_TYPE_FULL?false:true;
106
107 if ($scheduleOptions['isCustomBackup']) {
108 $scheduleOptions['selectedDirectories'] = explode(',', $backupOptions['SG_BACKUP_FILE_PATHS']);
109 if ($scheduleOptions['isFilesSelected']) {
110 $scheduleOptions['excludeDirectories'] = explode(',', $backupOptions['SG_BACKUP_FILE_PATHS_EXCLUDE']);
111 }
112 }
113
114 if (strlen($backupOptions['SG_BACKUP_UPLOAD_TO_STORAGES'])) {
115 $scheduleOptions['selectedClouds'] = explode(',', $backupOptions['SG_BACKUP_UPLOAD_TO_STORAGES']);
116 }
117 }
118
119 if (isset($options['label'])) {
120 $scheduleOptions['label'] = $options['label'];
121 }
122
123 return $scheduleOptions;
124 }
125
126 function backupGuardFilterStatusesByActionType($currentBackup, $currentOptions)
127 {
128 $filteredStatuses = array();
129 if($currentBackup['type'] == SG_ACTION_TYPE_RESTORE)
130 {
131 $filteredStatuses[] = SG_ACTION_TYPE_RESTORE.SG_ACTION_STATUS_IN_PROGRESS_FILES;
132 $filteredStatuses[] = SG_ACTION_TYPE_RESTORE.SG_ACTION_STATUS_IN_PROGRESS_DB;
133 }
134 else
135 {
136 $currentOptions = backupGuardActiveOptionToType($currentOptions);
137 if ($currentOptions['backupDatabase']) $filteredStatuses[] = $currentOptions['backupDatabase'];
138 if ($currentOptions['backupFiles']) $filteredStatuses[] = $currentOptions['backupFiles'];
139 if ($currentOptions['ftp']) $filteredStatuses[] = $currentOptions['ftp'];
140 if ($currentOptions['dropbox']) $filteredStatuses[] = $currentOptions['dropbox'];
141 if ($currentOptions['gdrive']) $filteredStatuses[] = $currentOptions['gdrive'];
142 if ($currentOptions['amazon']) $filteredStatuses[] = $currentOptions['amazon'];
143 if ($currentOptions['oneDrive']) $filteredStatuses[] = $currentOptions['oneDrive'];
144 }
145 return $filteredStatuses;
146 }
147
148 function backupGuardActiveOptionToType($activeOption)
149 {
150 $activeOption = json_decode($activeOption, true);
151 $activeOptions['backupDatabase'] = !empty($activeOption['SG_ACTION_BACKUP_DATABASE_AVAILABLE'])?SG_ACTION_STATUS_IN_PROGRESS_DB:0;
152 $activeOptions['backupFiles'] = !empty($activeOption['SG_ACTION_BACKUP_FILES_AVAILABLE'])?SG_ACTION_STATUS_IN_PROGRESS_FILES:0;
153
154 $storages = explode(',', @$activeOption['SG_BACKUP_UPLOAD_TO_STORAGES']);
155 $activeOptions['ftp'] = 0;
156 $activeOptions['dropbox'] = 0;
157 $activeOptions['gdrive'] = 0;
158 $activeOptions['amazon'] = 0;
159 $activeOptions['oneDrive'] = 0;
160 foreach ($storages as $key => $storage) {
161 switch ($storage) {
162 case SG_STORAGE_FTP:
163 $activeOptions['ftp'] = SG_ACTION_TYPE_UPLOAD.SG_STORAGE_FTP;
164 break;
165 case SG_STORAGE_DROPBOX:
166 $activeOptions['dropbox'] = SG_ACTION_TYPE_UPLOAD.SG_STORAGE_DROPBOX;
167 break;
168 case SG_STORAGE_GOOGLE_DRIVE:
169 $activeOptions['gdrive'] = SG_ACTION_TYPE_UPLOAD.SG_STORAGE_GOOGLE_DRIVE;
170 break;
171 case SG_STORAGE_AMAZON:
172 $activeOptions['amazon'] = SG_ACTION_TYPE_UPLOAD.SG_STORAGE_AMAZON;
173 break;
174 case SG_STORAGE_ONE_DRIVE:
175 $activeOptions['oneDrive'] = SG_ACTION_TYPE_UPLOAD.SG_STORAGE_ONE_DRIVE;
176 break;
177 }
178 }
179
180 return $activeOptions;
181 }
182
183 function backupGuardConvertToBytes($from){
184 $number=substr($from,0,-2);
185 switch(strtoupper(substr($from,-2))){
186 case "KB":
187 return $number*1024;
188 case "MB":
189 return $number*pow(1024,2);
190 case "GB":
191 return $number*pow(1024,3);
192 case "TB":
193 return $number*pow(1024,4);
194 case "PB":
195 return $number*pow(1024,5);
196 default:
197 return $from;
198 }
199 }
200
201 function backupGuardGetRunningActions()
202 {
203 $runningActions = SGBackup::getRunningActions();
204 $isAnyActiveActions = count($runningActions);
205 if($isAnyActiveActions) {
206 return $runningActions;
207 }
208 return false;
209 }
210
211 function backupGuardShouldUpdate()
212 {
213 $currentVersion = SG_BACKUP_GUARD_VERSION;
214 $oldVersion = SGConfig::get('SG_BACKUP_GUARD_VERSION', true);
215
216 if (!$oldVersion) {
217 return true;
218 }
219
220 if ($currentVersion !== $oldVersion) {
221 SGConfig::set('SG_BACKUP_GUARD_VERSION', $currentVersion, true);
222 SGConfig::set('SG_HIDE_DISCOUNT_NOTICE', '0', true);
223 SGBoot::didUpdatePluginVersion();
224 return SG_FORCE_DB_TABLES_RESET;
225 }
226
227 if (!checkAllMissedTables()) {
228 return true;
229 }
230
231 return false;
232 }
233
234 function backupGuardGetDatabaseEngine()
235 {
236 global $wpdb;
237 $dbName = $wpdb->dbname;
238 $engine = 'InnoDB';
239 $engineCheckSql = "SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = '$dbName'";
240 $result = $wpdb->get_results($engineCheckSql, ARRAY_A);
241 if (!empty($result)) {
242 $engineCheckSql = "SHOW TABLE STATUS WHERE Name = '".$wpdb->prefix."users' AND Engine = 'MyISAM'";
243 $result = $wpdb->get_results($engineCheckSql, ARRAY_A);
244 if (isset($result[0]['Engine']) && $result[0]['Engine'] == 'MyISAM') {
245 $engine = 'MyISAM';
246 }
247 }
248
249 return $engine;
250 }
251
252 function backupGuardShouldActivateExtension($extension)
253 {
254 $extensionAdapter = SGExtension::getInstance();
255
256 if (!$extensionAdapter->isExtensionAvailable($extension) || SGConfig::get($extension) || !$extensionAdapter->isExtensionAlreadyInPluginsFolder($extension) || $extensionAdapter->isExtensionActive($extension)) {
257 return false;
258 }
259
260 return true;
261 }
262
263 function backupGuardShouldInstallExtension($extension)
264 {
265 $extensionAdapter = SGExtension::getInstance();
266
267 if (!$extensionAdapter->isExtensionAvailable($extension) || SGConfig::get($extension) || $extensionAdapter->isExtensionAlreadyInPluginsFolder($extension) || $extensionAdapter->isExtensionActive($extension)) {
268 return false;
269 }
270
271 return true;
272 }
273
274 function backupGuardLoggedMessage()
275 {
276 $pluginCapabilities = backupGuardGetCapabilities();
277 if ($pluginCapabilities == BACKUP_GUARD_CAPABILITIES_FREE) {
278 return '';
279 }
280
281 $user = SGConfig::get('SG_LOGGED_USER');
282 if (!$user) {
283 return '';
284 }
285
286 $user = unserialize($user);
287 if (!$user || empty($user['firstname'])) {
288 return '';
289 }
290
291 $html = '<span class="bg-logged-msg-container">';
292 $html .= 'Package: '.backupGuardGetProductName() .' | Version: '.SG_BACKUP_GUARD_VERSION;
293 $html .= ' | Welcome, <b>'.$user['firstname'].'</b>! ';
294 $html .= '(<a href="javascript:void(0)" onclick="sgBackup.logout()">Log Out</a>)</span>';
295 return $html;
296 }
297