PluginProbe
The WP Remote WordPress Plugin / 5.25
The WP Remote WordPress Plugin v5.25
6.72 6.69 6.65 6.62 6.48 6.47 4.87 4.97 5.05 5.09 5.16 5.22 5.24 5.25 5.38 5.41 5.42 5.45 5.47 5.53 5.56 5.65 5.68 5.72 5.73 All 53 releases
wpremote / wp_admin.php

wp_admin.php in The WP Remote WordPress Plugin 5.25, at wp_admin.php

254 lines 8.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if (!defined('ABSPATH')) exit;
4 if (!class_exists('WPRWPAdmin')) :
5
6 class WPRWPAdmin {
7 public $settings;
8 public $siteinfo;
9 public $bvinfo;
10 public $bvapi;
11
12 function __construct($settings, $siteinfo, $bvapi = null) {
13 $this->settings = $settings;
14 $this->siteinfo = $siteinfo;
15 $this->bvapi = new WPRWPAPI($settings);
16 $this->bvinfo = new WPRInfo($this->settings);
17 }
18
19 public function mainUrl($_params = '') {
20 if (function_exists('network_admin_url')) {
21 return network_admin_url('admin.php?page='.$this->bvinfo->plugname.$_params);
22 } else {
23 return admin_url('admin.php?page='.$this->bvinfo->plugname.$_params);
24 }
25 }
26
27 function removeAdminNotices() {
28 if (array_key_exists('page', $_REQUEST) && $_REQUEST['page'] == $this->bvinfo->plugname) {
29 remove_all_actions('admin_notices');
30 remove_all_actions('all_admin_notices');
31 }
32 }
33
34 public function initHandler() {
35 if (!current_user_can('activate_plugins'))
36 return;
37
38 if (array_key_exists('bvnonce', $_REQUEST) &&
39 wp_verify_nonce($_REQUEST['bvnonce'], "bvnonce") &&
40 array_key_exists('blogvaultkey', $_REQUEST) &&
41 (strlen(WPRAccount::sanitizeKey($_REQUEST['blogvaultkey'])) == 64) &&
42 (array_key_exists('page', $_REQUEST) &&
43 $_REQUEST['page'] == $this->bvinfo->plugname)) {
44 $keys = str_split($_REQUEST['blogvaultkey'], 32);
45 WPRAccount::addAccount($this->settings, $keys[0], $keys[1]);
46 if (array_key_exists('redirect', $_REQUEST)) {
47 $location = $_REQUEST['redirect'];
48 wp_redirect($this->bvinfo->appUrl()."/dash/redir?q=".urlencode($location));
49 exit();
50 }
51 }
52 if ($this->bvinfo->isActivateRedirectSet()) {
53 $this->settings->updateOption($this->bvinfo->plug_redirect, 'no');
54 ##ACTIVATEREDIRECTCODE##
55 wp_redirect($this->mainUrl());
56 }
57 }
58
59 public function wprsecAdminMenu($hook) {
60 if ($hook === 'toplevel_page_wpremote' || WPRHelper::safePregMatch("/wpr_add_account$/", $hook) || WPRHelper::safePregMatch("/wpr_account_details$/", $hook)) {
61 wp_enqueue_style( 'bootstrap', plugins_url('css/bootstrap.min.css', __FILE__));
62 wp_enqueue_style( 'bvplugin', plugins_url('css/bvplugin.min.css', __FILE__));
63 }
64 }
65
66 public function menu() {
67 $brand = $this->bvinfo->getBrandInfo();
68 if (!is_array($brand) || (!array_key_exists('hide', $brand) && !array_key_exists('hide_from_menu', $brand))) {
69 $bname = $this->bvinfo->getBrandName();
70 $icon = $this->bvinfo->getBrandIcon();
71 add_menu_page($bname, $bname, 'manage_options', $this->bvinfo->plugname,
72 array($this, 'adminPage'), plugins_url($icon, __FILE__ ));
73 }
74 }
75
76 public function hidePluginUpdate($plugins) {
77 $brand = $this->bvinfo->getBrandInfo();
78 $bvslug = $this->bvinfo->slug;
79 if (isset($plugins->response[$bvslug]) && is_array($brand)) {
80 if (array_key_exists('hide_from_menu', $brand) || array_key_exists('hide', $brand)) {
81 unset($plugins->response[$bvslug]);
82 }
83 }
84 return $plugins;
85 }
86
87 public function hidePluginDetails($plugin_metas, $slug) {
88 $brand = $this->bvinfo->getBrandInfo();
89 $bvslug = $this->bvinfo->slug;
90
91 if ($slug === $bvslug && is_array($brand) && array_key_exists('hide_plugin_details', $brand)){
92 foreach ($plugin_metas as $pluginKey => $pluginValue) {
93 if (strpos($pluginValue, sprintf('>%s<', translate('View details')))) {
94 unset($plugin_metas[$pluginKey]);
95 break;
96 }
97 }
98 }
99 return $plugin_metas;
100 }
101
102 public function handlePluginHealthInfo($plugins) {
103 $brand = $this->bvinfo->getBrandInfo();
104 $title = $this->bvinfo->title;
105 if (!isset($plugins["wp-plugins-active"]) ||
106 !isset($plugins["wp-plugins-active"]["fields"]) ||
107 !isset($plugins["wp-plugins-active"]["fields"][$title])) {
108 return $plugins;
109 }
110 if (is_array($brand)) {
111 if (array_key_exists('hide', $brand)) {
112 unset($plugins["wp-plugins-active"]["fields"][$title]);
113 } else {
114 $plugin = $plugins["wp-plugins-active"]["fields"][$title];
115 $author = $this->bvinfo->author;
116 if (array_key_exists('name', $brand)) {
117 $plugin["label"] = $brand['name'];
118 }
119 if (array_key_exists('author', $brand)) {
120 $plugin["value"] = str_replace($author, $brand['author'], $plugin["value"]);
121 }
122 if (array_key_exists('description', $brand)) {
123 $plugin["debug"] = str_replace($author, $brand['author'], $plugin["debug"]);
124 }
125 $plugins["wp-plugins-active"]["fields"][$title] = $plugin;
126 }
127 }
128 return $plugins;
129 }
130
131 public function settingsLink($links, $file) {
132 #XNOTE: Fix this
133 if ( $file == plugin_basename( dirname(__FILE__).'/blogvault.php' ) ) {
134 $brand = $this->bvinfo->getBrandInfo();
135 if (!$brand || !array_key_exists('hide_plugin_details', $brand)) {
136 $links[] = '<a href="'.$this->mainUrl().'">'.__( 'Settings' ).'</a>';
137 }
138 }
139 return $links;
140 }
141
142 public function getPluginLogo() {
143 $brand = $this->bvinfo->getBrandInfo();
144 if (is_array($brand) && array_key_exists('logo', $brand)) {
145 return $brand['logo'];
146 }
147 return $this->bvinfo->logo;
148 }
149
150 public function getWebPage() {
151 $brand = $this->bvinfo->getBrandInfo();
152 if (is_array($brand) && array_key_exists('webpage', $brand)) {
153 return $brand['webpage'];
154 }
155 return $this->bvinfo->webpage;
156 }
157
158 public function siteInfoTags() {
159 require_once dirname( __FILE__ ) . '/recover.php';
160 $bvnonce = wp_create_nonce("bvnonce");
161 $public = WPRAccount::getApiPublicKey($this->settings);
162 $secret = WPRRecover::defaultSecret($this->settings);
163 $tags = "<input type='hidden' name='url' value='".esc_attr($this->siteinfo->wpurl())."'/>\n".
164 "<input type='hidden' name='homeurl' value='".esc_attr($this->siteinfo->homeurl())."'/>\n".
165 "<input type='hidden' name='siteurl' value='".esc_attr($this->siteinfo->siteurl())."'/>\n".
166 "<input type='hidden' name='dbsig' value='".esc_attr($this->siteinfo->dbsig(false))."'/>\n".
167 "<input type='hidden' name='plug' value='".esc_attr($this->bvinfo->plugname)."'/>\n".
168 "<input type='hidden' name='adminurl' value='".esc_attr($this->mainUrl())."'/>\n".
169 "<input type='hidden' name='bvversion' value='".esc_attr($this->bvinfo->version)."'/>\n".
170 "<input type='hidden' name='serverip' value='".esc_attr($_SERVER["SERVER_ADDR"])."'/>\n".
171 "<input type='hidden' name='abspath' value='".esc_attr(ABSPATH)."'/>\n".
172 "<input type='hidden' name='secret' value='".esc_attr($secret)."'/>\n".
173 "<input type='hidden' name='public' value='".esc_attr($public)."'/>\n".
174 "<input type='hidden' name='bvnonce' value='".esc_attr($bvnonce)."'/>\n";
175 return $tags;
176 }
177
178 public function activateWarning() {
179 global $hook_suffix;
180 if (!WPRAccount::isConfigured($this->settings) && $hook_suffix == 'index.php' ) {
181 ?>
182 <div id="message" class="updated" style="padding: 8px; font-size: 16px; background-color: #dff0d8">
183 <a class="button-primary" href="<?php echo esc_url($this->mainUrl()); ?>">Activate WPRemote</a>
184 &nbsp;&nbsp;&nbsp;<b>Almost Done:</b> Activate your WPRemote account to backup & secure your site.
185 </div>
186 <?php
187 }
188 }
189
190 public function showAddAccountPage() {
191 require_once dirname( __FILE__ ) . "/admin/add_new_account.php";
192 }
193
194 public function showAccountDetailsPage() {
195 require_once dirname( __FILE__ ) . "/admin/account_details.php";
196 }
197
198 public function adminPage() {
199 if (isset($_REQUEST['bvnonce']) && wp_verify_nonce( $_REQUEST['bvnonce'], 'bvnonce' )) {
200 $info = array();
201 $this->siteinfo->basic($info);
202 $this->bvapi->pingbv('/bvapi/disconnect', $info, $_REQUEST['pubkey']);
203 WPRAccount::remove($this->settings, $_REQUEST['pubkey']);
204 }
205 if (WPRAccount::isConfigured($this->settings)) {
206 if (!isset($_REQUEST['add_account'])) {
207 $this->showAccountDetailsPage();
208 } else {
209 $this->showAddAccountPage();
210 }
211 } else {
212 $this->showAddAccountPage();
213 }
214 }
215
216 public function initBranding($plugins) {
217 $slug = $this->bvinfo->slug;
218
219 if (!is_array($plugins) || !isset($slug, $plugins)) {
220 return $plugins;
221 }
222
223 $brand = $this->bvinfo->getBrandInfo();
224 if (is_array($brand)) {
225 if (array_key_exists('hide', $brand)) {
226 unset($plugins[$slug]);
227 } else {
228 if (array_key_exists('name', $brand)) {
229 $plugins[$slug]['Name'] = $brand['name'];
230 }
231 if (array_key_exists('title', $brand)) {
232 $plugins[$slug]['Title'] = $brand['title'];
233 }
234 if (array_key_exists('description', $brand)) {
235 $plugins[$slug]['Description'] = $brand['description'];
236 }
237 if (array_key_exists('authoruri', $brand)) {
238 $plugins[$slug]['AuthorURI'] = $brand['authoruri'];
239 }
240 if (array_key_exists('author', $brand)) {
241 $plugins[$slug]['Author'] = $brand['author'];
242 }
243 if (array_key_exists('authorname', $brand)) {
244 $plugins[$slug]['AuthorName'] = $brand['authorname'];
245 }
246 if (array_key_exists('pluginuri', $brand)) {
247 $plugins[$slug]['PluginURI'] = $brand['pluginuri'];
248 }
249 }
250 }
251 return $plugins;
252 }
253 }
254 endif;