wpCentral - Version 1.3

Version Description

  • Resolved the bug in plugin activation after installation using Plugin Sets.
Download this release

Release Info

Developer softacpriya
Plugin Icon 128x128 wpCentral
Version 1.3
Comparing to
See all releases

Code changes from version 1.2 to 1.3

Files changed (4) hide show
  1. actions.php +7 -14
  2. readme.txt +4 -1
  3. wpc_functions.php +117 -0
  4. wpcentral.php +1 -1
actions.php CHANGED
@@ -107,6 +107,8 @@ function wpc_site_actions(){
107
  $sources = urldecode($_REQUEST['sources']);
108
  $arr_sources = explode(',', $sources);
109
 
 
 
110
  foreach($arr_plugins as $plk => $plval){
111
 
112
  //Skip if the plugin is already installed
@@ -127,21 +129,12 @@ function wpc_site_actions(){
127
 
128
  @wpc_sunlink($download_dest);
129
 
130
- //Activate the installed plugin
131
- $all_installed_plugins = wpc_get_plugins();
132
- $slugs = array_keys($all_installed_plugins);
133
-
134
- $plugin_slug = '';
135
- //Fetch slug of the installed plugin
136
- foreach($slugs as $val){
137
- if(strpos($val, $plval) !== false){
138
- $plugin_slug = $val;
139
- break;
140
- }
141
- }
142
-
143
- wpc_activate_plugin(array($plugin_slug));
144
  }
 
 
 
145
 
146
  if(!empty($error)){
147
  $return['error'] = $error;
107
  $sources = urldecode($_REQUEST['sources']);
108
  $arr_sources = explode(',', $sources);
109
 
110
+ $all_installed_plugins = array();
111
+
112
  foreach($arr_plugins as $plk => $plval){
113
 
114
  //Skip if the plugin is already installed
129
 
130
  @wpc_sunlink($download_dest);
131
 
132
+ //Activate the installed plugin(s)
133
+ $all_installed_plugins[] = wpc_get_plugin_path(ABSPATH.'wp-content/plugins/'.$plval, $plval);
 
 
 
 
 
 
 
 
 
 
 
 
134
  }
135
+
136
+ //Activate the installed plugins
137
+ wpc_activate_plugin($all_installed_plugins);
138
 
139
  if(!empty($error)){
140
  $return['error'] = $error;
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: wpcentral, softaculous, sites, manage sites, backup, plugins, themes, mana
4
  Requires at least: 4.4
5
  Tested up to: 4.9.8
6
  Requires PHP: 5.3
7
- Stable tag: 1.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -40,6 +40,9 @@ Should you have any suggestions to improve wpcentral, want to see some related f
40
 
41
  == Changelog ==
42
 
 
 
 
43
  = 1.2 =
44
  * Changes to the handling of connection key.
45
  * WPCentral plugin can now be installed to your website via https://panel.wpcentral.co using your website's admin credentials.
4
  Requires at least: 4.4
5
  Tested up to: 4.9.8
6
  Requires PHP: 5.3
7
+ Stable tag: 1.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
40
 
41
  == Changelog ==
42
 
43
+ = 1.3 =
44
+ * Resolved the bug in plugin activation after installation using Plugin Sets.
45
+
46
  = 1.2 =
47
  * Changes to the handling of connection key.
48
  * WPCentral plugin can now be installed to your website via https://panel.wpcentral.co using your website's admin credentials.
wpc_functions.php CHANGED
@@ -133,6 +133,123 @@ function wpc_activate_plugin($plugin_slug = array()){
133
  return $res;
134
  }
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  /**
137
  * De-activates the plugins on the website
138
  *
133
  return $res;
134
  }
135
 
136
+ /**
137
+ * Fetch the plugin's main file to generate the plugin slug
138
+ *
139
+ * @param string $path path of the plugin directory
140
+ * @param string $slug directory name of the plugin
141
+ * @since 1.3
142
+ */
143
+ function wpc_get_plugin_path($path, $slug){
144
+ global $__settings;
145
+
146
+ $path = wpc_cleanpath($path);
147
+
148
+ if(wpc_sfile_exists($__settings['softpath'].'/wp-content/plugins/'.$slug.'/'.$slug.'.php')){
149
+ return $plugin_path = $slug.'/'.$slug.'.php';
150
+ }
151
+
152
+ $list = wpc_filelist($path, 0);
153
+ $plugin_files = array();
154
+
155
+ foreach($list as $lk => $lv){
156
+ if(!is_dir($lk)){
157
+ $plugin_files[basename($lk)] = $lk;
158
+ }
159
+ }
160
+
161
+ foreach($plugin_files as $pk => $pv){
162
+ $data = wpc_sfile($pv);
163
+ if(preg_match('/\n(\s*?)(\*?)(\s*?)Plugin(\s*?)Name:(.*?)\n/is',$data)){
164
+ return $plugin_path = $slug.'/'.$pk;
165
+ break;
166
+ }
167
+ }
168
+
169
+ return $plugin_path = $slug.'/'.$slug.'.php';
170
+ }
171
+
172
+ /**
173
+ * Replaces '\\' with '/' and Truncates / at the end.
174
+ * e.g. E:\\path is converted to E:/path
175
+ *
176
+ * @param string $path
177
+ * @returns string The new path which works everywhere !
178
+ * @since 1.3
179
+ */
180
+ function wpc_cleanpath($path){
181
+
182
+ $path = str_replace('\\\\', '/', $path);
183
+ $path = str_replace('\\', '/', $path);
184
+ return rtrim($path, '/');
185
+ }
186
+
187
+ /* The below function will list all folders and files within a directory
188
+ *
189
+ * @param string $startdir specify the directory to start from; format: must end in a "/"
190
+ * @param bool $searchSubdirs True if you want to search subdirectories
191
+ * @param bool $directoriesonly True if you want to only return directories
192
+ * @param $maxlevel "all" or a number; specifies the number of directories down that you want to search
193
+ * @param integer $level directory level that the function is currently searching
194
+ * @since 1.3
195
+ */
196
+ function wpc_filelist($startdir="./", $searchSubdirs=1, $directoriesonly=0, $maxlevel="all", $level=1, $reset = 1) {
197
+ //list the directory/file names that you want to ignore
198
+ $ignoredDirectory = array();
199
+ $ignoredDirectory[] = ".";
200
+ $ignoredDirectory[] = "..";
201
+ $ignoredDirectory[] = "_vti_cnf";
202
+ global $directorylist; //initialize global array
203
+
204
+ if(substr($startdir, -1) != '/'){
205
+ $startdir = $startdir.'/';
206
+ }
207
+
208
+ if (is_dir($startdir)) {
209
+ if ($dh = opendir($startdir)) {
210
+ while (($file = readdir($dh)) !== false) {
211
+ if (!(array_search($file,$ignoredDirectory) > -1)) {
212
+ if (@filetype($startdir . $file) == "dir") {
213
+
214
+ //build your directory array however you choose;
215
+ //add other file details that you want.
216
+
217
+ $directorylist[$startdir . $file]['level'] = $level;
218
+ $directorylist[$startdir . $file]['dir'] = 1;
219
+ $directorylist[$startdir . $file]['name'] = $file;
220
+ $directorylist[$startdir . $file]['path'] = $startdir;
221
+ if ($searchSubdirs) {
222
+ if ((($maxlevel) == "all") or ($maxlevel > $level)) {
223
+ filelist_fn($startdir . $file . "/", $searchSubdirs, $directoriesonly, $maxlevel, ($level + 1), 0);
224
+ }
225
+ }
226
+
227
+
228
+ } else {
229
+ if (!$directoriesonly) {
230
+
231
+ // echo substr(strrchr($file, "."), 1);
232
+ //if you want to include files; build your file array
233
+ //however you choose; add other file details that you want.
234
+ $directorylist[$startdir . $file]['level'] = $level;
235
+ $directorylist[$startdir . $file]['dir'] = 0;
236
+ $directorylist[$startdir . $file]['name'] = $file;
237
+ $directorylist[$startdir . $file]['path'] = $startdir;
238
+ }
239
+ }
240
+ }
241
+ }
242
+ closedir($dh);
243
+ }
244
+ }
245
+
246
+ if(!empty($reset)){
247
+ $r = $directorylist;
248
+ $directorylist = array();
249
+ return($r);
250
+ }
251
+ }
252
+
253
  /**
254
  * De-activates the plugins on the website
255
  *
wpcentral.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: wpcentral
4
  Plugin URI: https://wpcentral.co
5
  Description: wpcentral provides a centralized area where you can manage all your WordPress websites singularly, unitedly as well as efficiently.
6
- Version: 1.2
7
  Author: Softaculous Ltd.
8
  Author URI:
9
  License: GPL2
3
  Plugin Name: wpcentral
4
  Plugin URI: https://wpcentral.co
5
  Description: wpcentral provides a centralized area where you can manage all your WordPress websites singularly, unitedly as well as efficiently.
6
+ Version: 1.3
7
  Author: Softaculous Ltd.
8
  Author URI:
9
  License: GPL2