cleanup and update of jquery-colorpicker dependency

This commit is contained in:
2021-11-29 01:25:11 +01:00
parent 665970e71a
commit d02db09056
63 changed files with 13398 additions and 4845 deletions

View File

@ -7,7 +7,8 @@ require_once(CRAYON_THEMES_PHP);
* Stores CrayonSetting objects.
* Each Crayon instance stores an instance of this class containing its specific settings.
*/
class CrayonSettings {
class CrayonSettings
{
// Properties and Constants ===============================================
const INVALID = -1; // Used for invalid dropdown index
// Plugin data
@ -121,7 +122,8 @@ class CrayonSettings {
private static $cache_array;
public static function get_cache_sec($cache) {
public static function get_cache_sec($cache)
{
$values = array_values(self::$cache_array);
if (array_key_exists($cache, $values)) {
return $values[$cache];
@ -136,11 +138,13 @@ class CrayonSettings {
// The settings with default values
private static $default = NULL;
function __construct() {
function __construct()
{
$this->init();
}
function copy() {
function copy()
{
$settings = new CrayonSettings();
foreach ($this->settings as $setting) {
$settings->set($setting); // Overuse of set?
@ -150,7 +154,8 @@ class CrayonSettings {
// Methods ================================================================
private function init() {
private function init()
{
global $CRAYON_VERSION;
crayon_load_plugin_textdomain();
@ -271,7 +276,8 @@ class CrayonSettings {
// Getter and Setter ======================================================
// TODO this needs simplification
function set($name, $value = NULL, $replace = FALSE) {
function set($name, $value = NULL, $replace = FALSE)
{
// Set associative array of settings
if (is_array($name)) {
$keys = array_keys($name);
@ -309,7 +315,8 @@ class CrayonSettings {
}
}
function get($name = NULL) {
function get($name = NULL)
{
if ($name === NULL) {
$copy = array();
foreach ($this->settings as $name => $setting) {
@ -324,7 +331,8 @@ class CrayonSettings {
return FALSE;
}
function val($name = NULL) {
function val($name = NULL)
{
if (($setting = self::get($name)) != FALSE) {
return $setting->value();
} else {
@ -332,7 +340,8 @@ class CrayonSettings {
}
}
function val_str($name) {
function val_str($name)
{
if (($setting = self::get($name)) != FALSE) {
$def = $setting->def();
$index = $setting->value();
@ -344,7 +353,8 @@ class CrayonSettings {
}
}
function get_array() {
function get_array()
{
$array = array();
foreach ($this->settings as $setting) {
$array[$setting->name()] = $setting->value();
@ -352,13 +362,15 @@ class CrayonSettings {
return $array;
}
function is_setting($name) {
function is_setting($name)
{
return (is_string($name) && array_key_exists($name, $this->settings));
}
/* Gets default settings, either as associative array of name=>value or CrayonSetting
objects */
public static function get_defaults($name = NULL, $objects = TRUE) {
public static function get_defaults($name = NULL, $objects = TRUE)
{
if (self::$default === NULL) {
self::$default = new CrayonSettings();
}
@ -386,7 +398,8 @@ class CrayonSettings {
}
}
public static function get_defaults_array() {
public static function get_defaults_array()
{
return self::get_defaults(NULL, FALSE);
}
@ -399,7 +412,8 @@ class CrayonSettings {
* @param string $name
* @param mixed $value
*/
public static function validate($name, $value) {
public static function validate($name, $value)
{
if (!is_string($name)) {
return '';
}
@ -470,7 +484,8 @@ class CrayonSettings {
// Takes an associative array of "smart settings" and regular settings. Smart settings can be used
// to configure regular settings quickly.
// E.g. 'max_height="20px"' will set 'height="20"', 'height_mode="0", height_unit="0"'
public static function smart_settings($settings) {
public static function smart_settings($settings)
{
if (!is_array($settings)) {
return FALSE;
}
@ -524,7 +539,8 @@ class CrayonSettings {
}
// Used for height and width smart settings, I couldn't bear to copy paste code twice...
private static function smart_hw($name, $set, $mode, $unit, &$settings) {
private static function smart_hw($name, $set, $mode, $unit, &$settings)
{
if (!is_string($name) || !is_string($set) || !is_string($mode) || !is_string($unit) || !is_array($settings)) {
return;
}
@ -557,7 +573,8 @@ class CrayonSettings {
* These settings can be overriden by individual Crayons.
* Also manages global site settings and paths.
*/
class CrayonGlobalSettings {
class CrayonGlobalSettings
{
// The global settings stored as a CrayonSettings object.
private static $global = NULL;
/* These are used to load local files reliably and prevent scripts like PHP from executing
@ -572,50 +589,60 @@ class CrayonGlobalSettings {
private static $upload_url = '';
private static $mkdir = NULL;
private function __construct() {
private function __construct()
{
}
private static function init() {
private static function init()
{
if (self::$global === NULL) {
self::$global = new CrayonSettings();
}
}
public static function get($name = NULL) {
public static function get($name = NULL)
{
self::init();
return self::$global->get($name);
}
public static function get_array() {
public static function get_array()
{
self::init();
return self::$global->get_array();
}
public static function get_obj() {
public static function get_obj()
{
self::init();
return self::$global->copy();
}
public static function val($name = NULL) {
public static function val($name = NULL)
{
self::init();
return self::$global->val($name);
}
public static function val_str($name = NULL) {
public static function val_str($name = NULL)
{
self::init();
return self::$global->val_str($name);
}
public static function has_changed($input, $setting, $value) {
public static function has_changed($input, $setting, $value)
{
return $input == $setting && $value != CrayonGlobalSettings::val($setting);
}
public static function set($name, $value = NULL, $replace = FALSE) {
public static function set($name, $value = NULL, $replace = FALSE)
{
self::init();
self::$global->set($name, $value, $replace);
}
public static function site_url($site_http = NULL) {
public static function site_url($site_http = NULL)
{
if ($site_http === NULL) {
return self::$site_http;
} else {
@ -623,7 +650,8 @@ class CrayonGlobalSettings {
}
}
public static function site_path($site_path = NULL) {
public static function site_path($site_path = NULL)
{
if ($site_path === NULL) {
return self::$site_path;
} else {
@ -631,7 +659,8 @@ class CrayonGlobalSettings {
}
}
public static function plugin_path($plugin_path = NULL) {
public static function plugin_path($plugin_path = NULL)
{
if ($plugin_path === NULL) {
return self::$plugin_path;
} else {
@ -639,7 +668,8 @@ class CrayonGlobalSettings {
}
}
public static function upload_path($upload_path = NULL) {
public static function upload_path($upload_path = NULL)
{
if ($upload_path === NULL) {
return self::$upload_path;
} else {
@ -647,7 +677,8 @@ class CrayonGlobalSettings {
}
}
public static function upload_url($upload_url = NULL) {
public static function upload_url($upload_url = NULL)
{
if ($upload_url === NULL) {
return self::$upload_url;
} else {
@ -655,7 +686,8 @@ class CrayonGlobalSettings {
}
}
public static function set_mkdir($mkdir = NULL) {
public static function set_mkdir($mkdir = NULL)
{
if ($mkdir === NULL) {
return self::$mkdir;
} else {
@ -663,7 +695,8 @@ class CrayonGlobalSettings {
}
}
public static function mkdir($dir = NULL) {
public static function mkdir($dir = NULL)
{
if (self::$mkdir) {
call_user_func(self::$mkdir, $dir);
} else {
@ -678,14 +711,17 @@ $INT = new CrayonValidator('#\d+#');
/**
* Validation class.
*/
class CrayonValidator {
class CrayonValidator
{
private $pattern = '#*#msi';
public function __construct($pattern) {
public function __construct($pattern)
{
$this->pattern($pattern);
}
public function pattern($pattern) {
public function pattern($pattern)
{
if ($pattern === NULL) {
return $pattern;
} else {
@ -693,11 +729,13 @@ class CrayonValidator {
}
}
public function validate($str) {
public function validate($str)
{
return preg_match($this->pattern, $str) !== FALSE;
}
public function sanitize($str) {
public function sanitize($str)
{
preg_match_all($this->pattern, $str, $matches);
$result = '';
foreach ($matches as $match) {
@ -707,14 +745,18 @@ class CrayonValidator {
}
}
class CrayonNonNegIntValidator extends CrayonValidator {
public function __construct() {
class CrayonNonNegIntValidator extends CrayonValidator
{
public function __construct()
{
parent::__construct('#\d+#');
}
}
class CrayonIntValidator extends CrayonValidator {
public function __construct() {
class CrayonIntValidator extends CrayonValidator
{
public function __construct()
{
parent::__construct('#-?\d+#');
}
}
@ -723,7 +765,8 @@ class CrayonIntValidator extends CrayonValidator {
* Individual setting.
* Can store boolean, string, dropdown (with array of strings), etc.
*/
class CrayonSetting {
class CrayonSetting
{
private $name = '';
/* The type of variables that can be set as the value.
* For dropdown settings, value is int, even though value() will return a string. */
@ -738,7 +781,8 @@ class CrayonSetting {
private $validator = NULL;
public function __construct($name, $default = '', $value = NULL, $locked = NULL) {
public function __construct($name, $default = '', $value = NULL, $locked = NULL)
{
$this->name($name);
if ($default !== NULL) {
$this->def($default); // Perform first to set type
@ -751,29 +795,35 @@ class CrayonSetting {
}
}
function __tostring() {
function __tostring()
{
return $this->name;
}
function copy() {
function copy()
{
return new CrayonSetting($this->name, $this->default, $this->value, $this->locked);
}
function name($name = NULL) {
function name($name = NULL)
{
if (!CrayonUtil::str($this->name, $name)) {
return $this->name;
}
}
function type() {
function type()
{
return $this->type;
}
function is_array() {
function is_array()
{
return $this->is_array;
}
function locked($locked = NULL) {
function locked($locked = NULL)
{
if ($locked === NULL) {
return $this->locked;
} else {
@ -788,7 +838,8 @@ class CrayonSetting {
* value() returns string value at current index for dropdown settings.
* @param $value
*/
function value($value = NULL) {
function value($value = NULL)
{
if ($value === NULL) {
/*if ($this->is_array) {
return $this->default[$this->value]; // value at index
@ -812,7 +863,8 @@ class CrayonSetting {
}
}
function array_value() {
function array_value()
{
if ($this->is_array) {
return NULL;
}
@ -824,7 +876,8 @@ class CrayonSetting {
* For dropdown settings, default value is array of all possible value strings.
* @param $default
*/
function def($default = NULL) {
function def($default = NULL)
{
// Only allow default to be set once
if ($this->type === NULL && $default !== NULL) {
@ -864,7 +917,8 @@ class CrayonSetting {
* @param int|string $index
* @return FALSE if not dropdown setting
*/
function index($index = NULL) {
function index($index = NULL)
{
if (!$this->is_array) {
return FALSE;
} else if ($index === NULL) {
@ -885,7 +939,8 @@ class CrayonSetting {
/**
* Finds the index of a string in an array setting
*/
function find_index($str) {
function find_index($str)
{
if (!$this->is_array || is_string($str)) {
return FALSE;
}
@ -897,7 +952,8 @@ class CrayonSetting {
return FALSE;
}
function validator($validator) {
function validator($validator)
{
if ($validator === NULL) {
return $this->validator;
} else {
@ -905,7 +961,8 @@ class CrayonSetting {
}
}
function sanitize($str) {
function sanitize($str)
{
if ($this->validator != NULL) {
return $this->validator->sanitize($str);
} else {
@ -914,5 +971,3 @@ class CrayonSetting {
}
}
?>