EVOLUTION-MANAGER
Edit File: class.system.global.entity.php
<?php /** * Global System Enity * * Standard: Missing * * @package DUP_PRO * @subpackage classes/entities * @copyright (c) 2017, Snapcreek LLC * @license https://opensource.org/licenses/GPL-3.0 GNU Public License * @since 3.0.0 * * @todo Finish Docs */ defined('ABSPATH') || defined('DUPXABSPATH') || exit; require_once(DUPLICATOR_PRO_PLUGIN_PATH.'/classes/entities/class.json.entity.base.php'); abstract class DUP_PRO_Recommended_Fix_Type { const Text = 0; const QuickFix = 1; } /** * @copyright 2016 Snap Creek LLC * recommendation_type = Text; parameter1 = {text to display to user}; parameter2=n/a */ class DUP_PRO_Recommended_Fix { public $recommended_fix_type; public $error_text = ''; public $parameter1 = ''; public $parameter2 = ''; } class DUP_PRO_System_Global_Entity extends DUP_PRO_JSON_Entity_Base { const NAME_IN_GLOBALS = 'dup_pro_system_global'; public $recommended_fixes; public $schedule_failed = false; public $package_check_ts = 0; public static function initialize_plugin_data() { $system_globals = parent::get_by_type(get_class()); if (count($system_globals) == 0) { $system_global = new DUP_PRO_System_Global_Entity(); $system_global->recommended_fixes = array(); $system_global->save(); } } public function add_recommended_quick_fix($error_text, $fix_text, $javascript_callback) { if($this->is_text_fix_dupe($fix_text) === false) { $id = str_shuffle(substr(uniqid('',true),0,14) . mt_rand(0,1000000)); $fix = new DUP_PRO_Recommended_Fix(); $fix->recommended_fix_type = DUP_PRO_Recommended_Fix_Type::QuickFix; $fix->error_text = $error_text; $fix->parameter1 = $fix_text; $fix->parameter2 = $javascript_callback; $fix->id = $id; array_push($this->recommended_fixes, $fix); } } public function add_recommended_text_fix($error_text, $fix_text) { if($this->is_text_fix_dupe($fix_text) === false) { $fix = new DUP_PRO_Recommended_Fix(); $fix->recommended_fix_type = DUP_PRO_Recommended_Fix_Type::Text; $fix->error_text = $error_text; $fix->parameter1 = $fix_text; array_push($this->recommended_fixes, $fix); } } public function remove_by_id($id){ if(!empty($id)) { $system_global = DUP_PRO_System_Global_Entity::get_instance(); if(isset($system_global->recommended_fixes) && is_array($system_global->recommended_fixes) && count($system_global->recommended_fixes) > 0) { $save = array(); foreach ($system_global->recommended_fixes as $key => $find) { if($find->id != $id) { $save[]=$find; } } $this->recommended_fixes = $save; return $this; } } return false; } private function is_text_fix_dupe($fix_text) { $existing_strings = $this->get_recommended_text_fix_strings(); $present = false; foreach($existing_strings as $existing_string) { if(strcmp($existing_string, $fix_text) == 0) { $present = true; break; } } return $present; } public function clear_recommended_fixes() { unset($this->recommended_fixes); $this->recommended_fixes = array(); } public function get_recommended_text_fix_strings() { $text_fix_strings = array(); /* @var $$fix DUP_PRO_Recommended_Fix */ foreach($this->recommended_fixes as $fix) { array_push($text_fix_strings, $fix->parameter1); } return $text_fix_strings; } /** * * @return DUP_PRO_System_Global_Entity */ public static function get_instance() { static $system_global = null; if (is_null($system_global)) { /* @var $system_globals DUP_PRO_System_Global_Entity */ $system_globals = DUP_PRO_JSON_Entity_Base::get_by_type(get_class()); if (count($system_globals) > 0) { $system_global = $system_globals[0]; } else { DUP_PRO_LOG::traceError("System Global entity is null!"); } } return $system_global; } }