Skip to content

Commit

Permalink
release
Browse files Browse the repository at this point in the history
  • Loading branch information
nodecode committed Apr 6, 2014
0 parents commit f416753
Show file tree
Hide file tree
Showing 57 changed files with 12,003 additions and 0 deletions.
284 changes: 284 additions & 0 deletions common.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,284 @@
<?php
class WPMinifyCommon {

var $p = null;

function WPMinifyCommon($plugin) {
$this->p = $plugin;
}

// admin methods

function a_check_version() {
// check WP version
global $wp_version;
if (!empty($wp_version) && is_admin() &&
version_compare($wp_version, $this->p->required_wp_version, "<")
) {
add_action('admin_notices', array($this, 'a_notify_version'));
}

// check plugin version
$options = get_option($this->p->name);
if ($options && array_key_exists('version', $options) && is_admin() &&
version_compare($options['version'], $this->p->version, "<")
) {
if (method_exists($this->p, 'a_upgrade_options')) {
// run plugin's upgrade options function if it exists
$this->p->a_upgrade_options();
} elseif (method_exists($this->p->a, 'upgrade_options')) {
// another flavor
$this->p->a->upgrade_options();
} else {
// else run generic upgrade options function
$this->a_upgrade_options();
}
}
}

function a_check_dir_writable($dir, $notify_cb) {
if (is_writable($dir)) {
return true;
}
else {
// error and return false
add_action('admin_notices', $notify_cb);
return false;
}
}

function a_check_orphan_options($notify_cb) {
$options = get_option($this->p->name);
if (!$options) {
$this->a_upgrade_options();
}
else {
$default_options = $this->p->a_default_options();
foreach( $default_options as $key => $value ) {
if ( !array_key_exists($key, $options) ) {
add_action('admin_notices', $notify_cb);
}
}
}
}

function a_notify($message, $error=false) {
if ( !$error ) {
echo '<div class="updated fade"><p>'.$message.'</p></div>';
}
else {
echo '<div class="error"><p>'.$message.'</p></div>';
}
}

function a_notify_version() {
global $wp_version;
$this->a_notify(
sprintf(__('You are using WordPress version %s.', $this->p->name), $wp_version).' '.
sprintf(__('%s recommends that you use WordPress %s or newer.', $this->p->name),
$this->p->name_proper,
$this->p->required_wp_version).' '.
sprintf(__('%sPlease update!%s', $this->p->name),
'<a href="http://codex.wordpress.org/Upgrading_WordPress">', '</a>'),
true);
}

function a_notify_updated() {
$this->a_notify(
sprintf(__('%s options has been updated.', $this->p->name),
$this->p->name_proper));
}

function a_notify_upgrade() {
$this->a_notify(
sprintf(__('%s options has been upgraded.', $this->p->name),
$this->p->name_proper));
}

function a_notify_reset() {
$this->a_notify(
sprintf(__('%s options has been reset.', $this->p->name),
$this->p->name_proper));
}

function a_notify_cache_cleared() {
$this->a_notify(
sprintf(__('%s cache has been cleared.', $this->p->name),
$this->p->name_proper));
}

function a_notify_imported() {
$this->a_notify(
sprintf(__('%s options imported.', $this->p->name),
$this->p->name_proper));
}

function a_notify_import_failed() {
$this->a_notify(
sprintf(__('%s options import failed!', $this->p->name),
$this->p->name_proper), true);
}

function a_notify_import_failed_missing() {
$this->a_notify(
sprintf(__('Did not receive any file to be imported. %s options import failed!', $this->p->name),
$this->p->name_proper), true);
}

function a_notify_import_failed_syntax() {
$this->a_notify(
sprintf(__('Found syntax errors in file being imported. %s options import failed!', $this->p->name),
$this->p->name_proper), true);
}

function a_upgrade_options() {
$options = get_option($this->p->name);
if ( !$options ) {
add_option($this->p->name, $this->p->a_default_options());
}
else {
$default_options = $this->p->a_default_options();

// upgrade regular options
foreach($default_options as $option_name => $option_value) {
if(!isset($options[$option_name])) {
$options[$option_name] = $option_value;
}
}
$options['version'] = $this->p->version;
// get rid of deprecated options if any
foreach($default_options['deprecated'] as $option_name) {
if(isset($options[$option_name])) {
unset($options[$option_name]);
}
}
update_option($this->p->name, $options);
}
add_action('admin_notices', array($this, 'a_notify_upgrade'));
}

function a_reset_options() {
$options = get_option($this->p->name);
if ( !$options ) {
add_option($this->p->name, $this->p->a_default_options());
}
else {
update_option($this->p->name, $this->p->a_default_options());
}
}

function valid_syntax($code) {
return @eval('return true;'.$code);
}

function a_import_options($file_var) {
if (isset($_FILES[$file_var]) && !empty($_FILES[$file_var]['name'])) {
$imported_options = join('', file($_FILES[$file_var]['tmp_name']));
$code = '$imported_options = '.$imported_options.';';
if ($this->valid_syntax($code)) {
if (eval($code) === null) {
update_option($this->p->name, $imported_options);
add_action('admin_notices', array($this, 'a_notify_imported'));
} else {
add_action('admin_notices', array($this, 'a_notify_import_failed'));
}
} else {
add_action('admin_notices', array($this, 'a_notify_import_failed_syntax'));
}
} else {
add_action('admin_notices', array($this, 'a_notify_import_failed_missing'));
}
}

function a_export_options($file_name) {
$content = var_export($this->p->o, true);
header('Cache-Control: public');
header('Content-Description: File Transfer');
header('Content-disposition: attachment; filename='.$file_name.'.txt');
header('Content-Type: text/plain');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '. mb_strlen($content, 'latin1'));
echo $content;
exit();
}

function a_register_scripts() {
}

function a_enqueue_scripts() {
}

function a_register_styles() {
if (file_exists($this->get_plugin_dir().'css/style-admin.css')) {
wp_register_style($this->p->name.'_style_admin',
$this->get_plugin_url().'css/style-admin.css');
}
}

function a_enqueue_styles() {
wp_enqueue_style($this->p->name.'_style_admin');
}

function a_clear_cache() {
$cache_location = $this->get_plugin_dir().'/cache/';

if(!$dh = @opendir($cache_location))
{
return;
}
while (false !== ($obj = readdir($dh)))
{
if($obj == '.' || $obj == '..')
{
continue;
}
@unlink(trailingslashit($cache_location) . $obj);
}
closedir($dh);

$this->a_clear_super_cache();
}

function a_clear_super_cache() {
if ( function_exists('prune_super_cache') ) {
prune_super_cache(WP_CONTENT_DIR.'/cache/', true );
}
}

// other methods

// Localization support
function load_text_domain() {
// get current language
$locale = get_locale();

if(!empty($locale)) {
// locate translation file
$mofile = $this->get_plugin_dir().'lang/'.str_replace('_', '-', $this->p->name).'-'.$locale.'.mo';
// load translation
if(@file_exists($mofile) && is_readable($mofile)) load_textdomain($this->p->name, $mofile);
}
}

function get_plugin_dir() {
$path = trailingslashit(trailingslashit(WP_PLUGIN_DIR).plugin_basename(dirname(__FILE__)));
$path = preg_replace('/(\/plugins\/[^\/]+?\/).+\//', '\1', $path);
return $path;
}

function get_plugin_url() {
$url = trailingslashit(trailingslashit(WP_PLUGIN_URL).plugin_basename(dirname(__FILE__)));
$url = preg_replace('/(\/plugins\/[^\/]+?\/).+\//', '\1', $url);
return $url;
}

function get_current_page_url() {
$isHTTPS = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on");
$port = (isset($_SERVER["SERVER_PORT"]) && ((!$isHTTPS && $_SERVER["SERVER_PORT"] != "80") || ($isHTTPS && $_SERVER["SERVER_PORT"] != "443")));
$port = ($port) ? ':'.$_SERVER["SERVER_PORT"] : '';
$url = ($isHTTPS ? 'https://' : 'http://').$_SERVER["SERVER_NAME"].$port.$_SERVER["REQUEST_URI"];
return $url;
}

}
?>
12 changes: 12 additions & 0 deletions css/style-admin.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.omni_admin_content {
width:1055px;
}

.omni_admin_main {
background-color:#f6f6f6;
border:1px solid #ccc;
float:left;
margin:10px;
padding:10px;
width:760px;
}
Loading

0 comments on commit f416753

Please sign in to comment.