Sindbad~EG File Manager
<?php
namespace WPGO_Plugins\Plugin_Framework;
/*
* Run upgrade routine(s) when plugin updated to new (higher) version
*/
class Upgrade_FW {
protected $module_roots;
protected $custom_plugin_data;
/* Class constructor. */
public function __construct( $module_roots, $custom_plugin_data ) {
$this->module_roots = $module_roots;
$this->custom_plugin_data = $custom_plugin_data;
add_action( 'plugins_loaded', array( &$this, 'upgrade_routine' ) );
}
/**
* Setup transient for admin notice to be displayed
*/
public function upgrade_routine() {
// At the moment the 'upgrade routine consists only of handling the new features numbered icon.
// only run upgrade routine on admin pages but not on post editor (for performance)
if ( ! is_admin() || isset( $_GET['post'] ) ) {
return;
}
$opt_pfx = $this->custom_plugin_data->db_option_prefix;
$plugin_data = get_plugin_data( $this->module_roots['file'], false, false );
$current_version = $plugin_data['Version'];
$global_plugin_options = get_option( $opt_pfx . '_options', array() );
$stored_version = isset( $global_plugin_options['plugin_version'] ) ? $global_plugin_options['plugin_version'] : '0.0.0';
// echo "<pre style='margin-left:200px;'>UPGRADE.PHP [Current: " . $current_version . "][Stored: " . $stored_version . "]<br>";
// print_r($global_plugin_options);
// echo "</pre>";
// // Only run on plugin settings pages, plugin main index page, and Dashboard > Updates page
// if (isset($_GET['page'])) {
// echo "<pre style='margin-left:200px;'>";
// print_r($this->custom_plugin_data->plugin_slug);
// print_r($_GET['page']);
// if (strpos($_GET['page'], $this->custom_plugin_data->plugin_slug) !== false && strpos($_GET['page'], '-new-features') !== false) {
// echo '<br>ON NEW FEATURES PAGE<br>';
// }
// echo "</pre>";
// }
// $settings_page_prefix = $this->custom_plugin_data->plugin_slug;
// $pos = strpos($_GET['page'], $settings_page_prefix);
// if ($pos !== 0) {
// return;
// }
// }
// } else {
// return;
// }
// Run upgrade routine if current plugin version is not equal to stored version.
if ( version_compare( $current_version, $stored_version, '=' ) ) {
// Only run on new features page.
if ( isset( $_GET['page'] ) && strpos( $_GET['page'], $this->custom_plugin_data->plugin_slug ) !== false && strpos($_GET['page'], '-new-features') !== false) {
// echo ">>>>>>>>>>>>>>>>>>>> DON'T RUN UPGRADE ROUTINE - SETTING DISPLAY NUMBERED ICON TO FALSE<br>";
$global_plugin_options['new_features_numbered_icon'] = 'false';
update_option( $opt_pfx . '_options', $global_plugin_options );
return;
} else {
// echo ">>>>>>>>>>>>>>>>>>>> DON'T RUN UPGRADE ROUTINE - STRAIGHT RETURN<br>";
return;
}
} else {
// If a new plugin version has been detected scan for new features and add numbered icon to plugin menu/tab
// echo ">>>>>>>>>>>>>>>>>>>> SETTING TO TRUE<br>";
$global_plugin_options['new_features_numbered_icon'] = 'true';
$global_plugin_options['plugin_version'] = $current_version;
update_option( $opt_pfx . '_options', $global_plugin_options );
}
}
public static function calc_new_features( $opt_pfx, $new_features_arr, $plugin_data ) {
// Calc numbered icon and send to JS
$new_features_number = 0;
$global_plugin_options = get_option( $opt_pfx . '_options', array() );
// echo '<pre style="margin-left:250px;">';
// print_r($global_plugin_options);
// echo '</pre>';
$display_numbered_icon = isset( $global_plugin_options['new_features_numbered_icon'] ) ? $global_plugin_options['new_features_numbered_icon'] : 'false';
if ( $display_numbered_icon === 'true' ) {
// echo ">>>>>>>>>>>>>>>>>>>> display_numbered_icon [" . $display_numbered_icon . "]<br>";
foreach ( $new_features_arr as $key => $new_feature ) {
if ( $plugin_data['Version'] === $new_feature->version || $new_feature->version === 'latest' ) {
$new_features_number++;
}
}
}
// echo ">>>>>>>>>>>>>>>>>>>> NEW FEATURES ARR: <br>";
// echo "<pre style='margin-left:150px;'>";
// print_r($new_features_arr);
// echo "</pre>";
// echo ">>>>>>>>>>>>>>>>>>>> DISPLAY NUMBERED ICON: [" . $display_numbered_icon . "][" . gettype($display_numbered_icon) . "]<br>";
// echo ">>>>>>>>>>>>>>>>>>>> OPT_PFX: [" . $opt_pfx . "]<br>";
// echo ">>>>>>>>>>>>>>>>>>>> TOTAL NUMBER [" . $new_features_number . "]<br>";
return $new_features_number;
}
} /* End class definition */
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists