@@ -7,18 +7,18 @@ |
||
| 7 | 7 | |
| 8 | 8 | class RegisterShortcodes |
| 9 | 9 | { |
| 10 | - /** |
|
| 11 | - * @return void |
|
| 12 | - */ |
|
| 13 | - public function handle(Command $command) |
|
| 14 | - { |
|
| 15 | - foreach ($command->shortcodes as $shortcode) { |
|
| 16 | - $shortcodeClass = Helper::buildClassName($shortcode.'-shortcode', 'Shortcodes'); |
|
| 17 | - if (!class_exists($shortcodeClass)) { |
|
| 18 | - glsr_log()->error(sprintf('Class missing (%s)', $shortcodeClass)); |
|
| 19 | - continue; |
|
| 20 | - } |
|
| 21 | - add_shortcode($shortcode, [glsr($shortcodeClass), 'buildShortcode']); |
|
| 22 | - } |
|
| 23 | - } |
|
| 10 | + /** |
|
| 11 | + * @return void |
|
| 12 | + */ |
|
| 13 | + public function handle(Command $command) |
|
| 14 | + { |
|
| 15 | + foreach ($command->shortcodes as $shortcode) { |
|
| 16 | + $shortcodeClass = Helper::buildClassName($shortcode.'-shortcode', 'Shortcodes'); |
|
| 17 | + if (!class_exists($shortcodeClass)) { |
|
| 18 | + glsr_log()->error(sprintf('Class missing (%s)', $shortcodeClass)); |
|
| 19 | + continue; |
|
| 20 | + } |
|
| 21 | + add_shortcode($shortcode, [glsr($shortcodeClass), 'buildShortcode']); |
|
| 22 | + } |
|
| 23 | + } |
|
| 24 | 24 | } |
@@ -7,22 +7,22 @@ |
||
| 7 | 7 | |
| 8 | 8 | class RegisterTinymcePopups |
| 9 | 9 | { |
| 10 | - /** |
|
| 11 | - * @return void |
|
| 12 | - */ |
|
| 13 | - public function handle(Command $command) |
|
| 14 | - { |
|
| 15 | - foreach ($command->popups as $slug => $label) { |
|
| 16 | - $buttonClass = Helper::buildClassName($slug.'-popup', 'Shortcodes'); |
|
| 17 | - if (!class_exists($buttonClass)) { |
|
| 18 | - glsr_log()->error(sprintf('Class missing (%s)', $buttonClass)); |
|
| 19 | - continue; |
|
| 20 | - } |
|
| 21 | - $shortcode = glsr($buttonClass)->register($slug, [ |
|
| 22 | - 'label' => $label, |
|
| 23 | - 'title' => $label, |
|
| 24 | - ]); |
|
| 25 | - glsr()->mceShortcodes[$slug] = $shortcode->properties; |
|
| 26 | - } |
|
| 27 | - } |
|
| 10 | + /** |
|
| 11 | + * @return void |
|
| 12 | + */ |
|
| 13 | + public function handle(Command $command) |
|
| 14 | + { |
|
| 15 | + foreach ($command->popups as $slug => $label) { |
|
| 16 | + $buttonClass = Helper::buildClassName($slug.'-popup', 'Shortcodes'); |
|
| 17 | + if (!class_exists($buttonClass)) { |
|
| 18 | + glsr_log()->error(sprintf('Class missing (%s)', $buttonClass)); |
|
| 19 | + continue; |
|
| 20 | + } |
|
| 21 | + $shortcode = glsr($buttonClass)->register($slug, [ |
|
| 22 | + 'label' => $label, |
|
| 23 | + 'title' => $label, |
|
| 24 | + ]); |
|
| 25 | + glsr()->mceShortcodes[$slug] = $shortcode->properties; |
|
| 26 | + } |
|
| 27 | + } |
|
| 28 | 28 | } |
@@ -8,21 +8,21 @@ |
||
| 8 | 8 | |
| 9 | 9 | class RegisterWidgets |
| 10 | 10 | { |
| 11 | - /** |
|
| 12 | - * @return void |
|
| 13 | - */ |
|
| 14 | - public function handle(Command $command) |
|
| 15 | - { |
|
| 16 | - global $wp_widget_factory; |
|
| 17 | - foreach ($command->widgets as $key => $values) { |
|
| 18 | - $widgetClass = Helper::buildClassName($key.'-widget', 'Widgets'); |
|
| 19 | - if (!class_exists($widgetClass)) { |
|
| 20 | - glsr_log()->error(sprintf('Class missing (%s)', $widgetClass)); |
|
| 21 | - continue; |
|
| 22 | - } |
|
| 23 | - // Here we bypass register_widget() in order to pass our custom values to the widget |
|
| 24 | - $widget = new $widgetClass(Application::ID.'_'.$key, $values['title'], $values); |
|
| 25 | - $wp_widget_factory->widgets[$widgetClass] = $widget; |
|
| 26 | - } |
|
| 27 | - } |
|
| 11 | + /** |
|
| 12 | + * @return void |
|
| 13 | + */ |
|
| 14 | + public function handle(Command $command) |
|
| 15 | + { |
|
| 16 | + global $wp_widget_factory; |
|
| 17 | + foreach ($command->widgets as $key => $values) { |
|
| 18 | + $widgetClass = Helper::buildClassName($key.'-widget', 'Widgets'); |
|
| 19 | + if (!class_exists($widgetClass)) { |
|
| 20 | + glsr_log()->error(sprintf('Class missing (%s)', $widgetClass)); |
|
| 21 | + continue; |
|
| 22 | + } |
|
| 23 | + // Here we bypass register_widget() in order to pass our custom values to the widget |
|
| 24 | + $widget = new $widgetClass(Application::ID.'_'.$key, $values['title'], $values); |
|
| 25 | + $wp_widget_factory->widgets[$widgetClass] = $widget; |
|
| 26 | + } |
|
| 27 | + } |
|
| 28 | 28 | } |
@@ -8,121 +8,121 @@ |
||
| 8 | 8 | |
| 9 | 9 | class Helper |
| 10 | 10 | { |
| 11 | - /** |
|
| 12 | - * @param string $name |
|
| 13 | - * @param string $path |
|
| 14 | - * @return string |
|
| 15 | - */ |
|
| 16 | - public static function buildClassName($name, $path = '') |
|
| 17 | - { |
|
| 18 | - $className = Str::camelCase($name); |
|
| 19 | - $path = ltrim(str_replace(__NAMESPACE__, '', $path), '\\'); |
|
| 20 | - return !empty($path) |
|
| 21 | - ? __NAMESPACE__.'\\'.$path.'\\'.$className |
|
| 22 | - : $className; |
|
| 23 | - } |
|
| 11 | + /** |
|
| 12 | + * @param string $name |
|
| 13 | + * @param string $path |
|
| 14 | + * @return string |
|
| 15 | + */ |
|
| 16 | + public static function buildClassName($name, $path = '') |
|
| 17 | + { |
|
| 18 | + $className = Str::camelCase($name); |
|
| 19 | + $path = ltrim(str_replace(__NAMESPACE__, '', $path), '\\'); |
|
| 20 | + return !empty($path) |
|
| 21 | + ? __NAMESPACE__.'\\'.$path.'\\'.$className |
|
| 22 | + : $className; |
|
| 23 | + } |
|
| 24 | 24 | |
| 25 | - /** |
|
| 26 | - * @param string $name |
|
| 27 | - * @param string $prefix |
|
| 28 | - * @return string |
|
| 29 | - */ |
|
| 30 | - public static function buildMethodName($name, $prefix = '') |
|
| 31 | - { |
|
| 32 | - return lcfirst($prefix.static::buildClassName($name)); |
|
| 33 | - } |
|
| 25 | + /** |
|
| 26 | + * @param string $name |
|
| 27 | + * @param string $prefix |
|
| 28 | + * @return string |
|
| 29 | + */ |
|
| 30 | + public static function buildMethodName($name, $prefix = '') |
|
| 31 | + { |
|
| 32 | + return lcfirst($prefix.static::buildClassName($name)); |
|
| 33 | + } |
|
| 34 | 34 | |
| 35 | - /** |
|
| 36 | - * @param string $name |
|
| 37 | - * @return string |
|
| 38 | - */ |
|
| 39 | - public static function buildPropertyName($name) |
|
| 40 | - { |
|
| 41 | - return lcfirst(static::buildClassName($name)); |
|
| 42 | - } |
|
| 35 | + /** |
|
| 36 | + * @param string $name |
|
| 37 | + * @return string |
|
| 38 | + */ |
|
| 39 | + public static function buildPropertyName($name) |
|
| 40 | + { |
|
| 41 | + return lcfirst(static::buildClassName($name)); |
|
| 42 | + } |
|
| 43 | 43 | |
| 44 | - /** |
|
| 45 | - * @param string $cast |
|
| 46 | - * @param mixed $value |
|
| 47 | - * @return mixed |
|
| 48 | - */ |
|
| 49 | - public static function castTo($cast = '', $value) |
|
| 50 | - { |
|
| 51 | - switch ($cast) { |
|
| 52 | - case 'array': |
|
| 53 | - return (array) $value; |
|
| 54 | - case 'bool': |
|
| 55 | - case 'boolean': |
|
| 56 | - return filter_var($value, FILTER_VALIDATE_BOOLEAN); |
|
| 57 | - case 'float': |
|
| 58 | - return (float) filter_var($value, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND); |
|
| 59 | - case 'int': |
|
| 60 | - case 'integer': |
|
| 61 | - return (int) filter_var($value, FILTER_VALIDATE_INT); |
|
| 62 | - case 'object': |
|
| 63 | - return (object) (array) $value; |
|
| 64 | - case 'str': |
|
| 65 | - case 'string': |
|
| 66 | - if (is_object($value) && in_array('__toString', get_class_methods($value))) { |
|
| 67 | - return (string) $value->__toString(); |
|
| 68 | - } |
|
| 69 | - if (is_array($value) || is_object($value)) { |
|
| 70 | - return serialize($value); |
|
| 71 | - } |
|
| 72 | - return (string) $value; |
|
| 73 | - default: |
|
| 74 | - return $value; |
|
| 75 | - } |
|
| 76 | - } |
|
| 44 | + /** |
|
| 45 | + * @param string $cast |
|
| 46 | + * @param mixed $value |
|
| 47 | + * @return mixed |
|
| 48 | + */ |
|
| 49 | + public static function castTo($cast = '', $value) |
|
| 50 | + { |
|
| 51 | + switch ($cast) { |
|
| 52 | + case 'array': |
|
| 53 | + return (array) $value; |
|
| 54 | + case 'bool': |
|
| 55 | + case 'boolean': |
|
| 56 | + return filter_var($value, FILTER_VALIDATE_BOOLEAN); |
|
| 57 | + case 'float': |
|
| 58 | + return (float) filter_var($value, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND); |
|
| 59 | + case 'int': |
|
| 60 | + case 'integer': |
|
| 61 | + return (int) filter_var($value, FILTER_VALIDATE_INT); |
|
| 62 | + case 'object': |
|
| 63 | + return (object) (array) $value; |
|
| 64 | + case 'str': |
|
| 65 | + case 'string': |
|
| 66 | + if (is_object($value) && in_array('__toString', get_class_methods($value))) { |
|
| 67 | + return (string) $value->__toString(); |
|
| 68 | + } |
|
| 69 | + if (is_array($value) || is_object($value)) { |
|
| 70 | + return serialize($value); |
|
| 71 | + } |
|
| 72 | + return (string) $value; |
|
| 73 | + default: |
|
| 74 | + return $value; |
|
| 75 | + } |
|
| 76 | + } |
|
| 77 | 77 | |
| 78 | - /** |
|
| 79 | - * @param string $key |
|
| 80 | - * @return mixed |
|
| 81 | - */ |
|
| 82 | - public static function filterInput($key, array $request = []) |
|
| 83 | - { |
|
| 84 | - if (isset($request[$key])) { |
|
| 85 | - return $request[$key]; |
|
| 86 | - } |
|
| 87 | - $variable = filter_input(INPUT_POST, $key); |
|
| 88 | - if (is_null($variable) && isset($_POST[$key])) { |
|
| 89 | - $variable = $_POST[$key]; |
|
| 90 | - } |
|
| 91 | - return $variable; |
|
| 92 | - } |
|
| 78 | + /** |
|
| 79 | + * @param string $key |
|
| 80 | + * @return mixed |
|
| 81 | + */ |
|
| 82 | + public static function filterInput($key, array $request = []) |
|
| 83 | + { |
|
| 84 | + if (isset($request[$key])) { |
|
| 85 | + return $request[$key]; |
|
| 86 | + } |
|
| 87 | + $variable = filter_input(INPUT_POST, $key); |
|
| 88 | + if (is_null($variable) && isset($_POST[$key])) { |
|
| 89 | + $variable = $_POST[$key]; |
|
| 90 | + } |
|
| 91 | + return $variable; |
|
| 92 | + } |
|
| 93 | 93 | |
| 94 | - /** |
|
| 95 | - * @param string $key |
|
| 96 | - * @return array |
|
| 97 | - */ |
|
| 98 | - public static function filterInputArray($key) |
|
| 99 | - { |
|
| 100 | - $variable = filter_input(INPUT_POST, $key, FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); |
|
| 101 | - if (empty($variable) && !empty($_POST[$key]) && is_array($_POST[$key])) { |
|
| 102 | - $variable = $_POST[$key]; |
|
| 103 | - } |
|
| 104 | - return (array) $variable; |
|
| 105 | - } |
|
| 94 | + /** |
|
| 95 | + * @param string $key |
|
| 96 | + * @return array |
|
| 97 | + */ |
|
| 98 | + public static function filterInputArray($key) |
|
| 99 | + { |
|
| 100 | + $variable = filter_input(INPUT_POST, $key, FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); |
|
| 101 | + if (empty($variable) && !empty($_POST[$key]) && is_array($_POST[$key])) { |
|
| 102 | + $variable = $_POST[$key]; |
|
| 103 | + } |
|
| 104 | + return (array) $variable; |
|
| 105 | + } |
|
| 106 | 106 | |
| 107 | - /** |
|
| 108 | - * @return string |
|
| 109 | - */ |
|
| 110 | - public static function getIpAddress() |
|
| 111 | - { |
|
| 112 | - $cloudflareIps = glsr(Cache::class)->getCloudflareIps(); |
|
| 113 | - $whitelist = [ |
|
| 114 | - Whip::CLOUDFLARE_HEADERS => [Whip::IPV4 => $cloudflareIps['v4']], |
|
| 115 | - // Whip::CUSTOM_HEADERS => [Whip::IPV4 => ['127.0.0.1']], |
|
| 116 | - ]; |
|
| 117 | - if (defined('AF_INET6')) { |
|
| 118 | - $whitelist[Whip::CLOUDFLARE_HEADERS][Whip::IPV6] = $cloudflareIps['v6']; |
|
| 119 | - // $whitelist[Whip::CUSTOM_HEADERS][Whip::IPV6] = ['::1']; |
|
| 120 | - } |
|
| 121 | - $whitelist = apply_filters('site-reviews/whip/whitelist', $whitelist); |
|
| 122 | - $methods = Whip::CUSTOM_HEADERS | Whip::CLOUDFLARE_HEADERS | Whip::REMOTE_ADDR; |
|
| 123 | - $methods = apply_filters('site-reviews/whip/methods', $methods); |
|
| 124 | - $whip = new Whip($methods, $whitelist); |
|
| 125 | - do_action_ref_array('site-reviews/whip', [$whip]); |
|
| 126 | - return (string) $whip->getValidIpAddress(); |
|
| 127 | - } |
|
| 107 | + /** |
|
| 108 | + * @return string |
|
| 109 | + */ |
|
| 110 | + public static function getIpAddress() |
|
| 111 | + { |
|
| 112 | + $cloudflareIps = glsr(Cache::class)->getCloudflareIps(); |
|
| 113 | + $whitelist = [ |
|
| 114 | + Whip::CLOUDFLARE_HEADERS => [Whip::IPV4 => $cloudflareIps['v4']], |
|
| 115 | + // Whip::CUSTOM_HEADERS => [Whip::IPV4 => ['127.0.0.1']], |
|
| 116 | + ]; |
|
| 117 | + if (defined('AF_INET6')) { |
|
| 118 | + $whitelist[Whip::CLOUDFLARE_HEADERS][Whip::IPV6] = $cloudflareIps['v6']; |
|
| 119 | + // $whitelist[Whip::CUSTOM_HEADERS][Whip::IPV6] = ['::1']; |
|
| 120 | + } |
|
| 121 | + $whitelist = apply_filters('site-reviews/whip/whitelist', $whitelist); |
|
| 122 | + $methods = Whip::CUSTOM_HEADERS | Whip::CLOUDFLARE_HEADERS | Whip::REMOTE_ADDR; |
|
| 123 | + $methods = apply_filters('site-reviews/whip/methods', $methods); |
|
| 124 | + $whip = new Whip($methods, $whitelist); |
|
| 125 | + do_action_ref_array('site-reviews/whip', [$whip]); |
|
| 126 | + return (string) $whip->getValidIpAddress(); |
|
| 127 | + } |
|
| 128 | 128 | } |
@@ -7,22 +7,22 @@ |
||
| 7 | 7 | |
| 8 | 8 | class ValidateReviewDefaults extends Defaults |
| 9 | 9 | { |
| 10 | - /** |
|
| 11 | - * @return array |
|
| 12 | - */ |
|
| 13 | - protected function defaults() |
|
| 14 | - { |
|
| 15 | - return [ |
|
| 16 | - 'assign_to' => '', |
|
| 17 | - 'category' => '', |
|
| 18 | - 'content' => '', |
|
| 19 | - 'email' => '', |
|
| 20 | - 'form_id' => '', |
|
| 21 | - 'ip_address' => Helper::getIpAddress(), // required for Akismet and Blacklist validation |
|
| 22 | - 'name' => '', |
|
| 23 | - 'rating' => '0', |
|
| 24 | - 'terms' => '', |
|
| 25 | - 'title' => '', |
|
| 26 | - ]; |
|
| 27 | - } |
|
| 10 | + /** |
|
| 11 | + * @return array |
|
| 12 | + */ |
|
| 13 | + protected function defaults() |
|
| 14 | + { |
|
| 15 | + return [ |
|
| 16 | + 'assign_to' => '', |
|
| 17 | + 'category' => '', |
|
| 18 | + 'content' => '', |
|
| 19 | + 'email' => '', |
|
| 20 | + 'form_id' => '', |
|
| 21 | + 'ip_address' => Helper::getIpAddress(), // required for Akismet and Blacklist validation |
|
| 22 | + 'name' => '', |
|
| 23 | + 'rating' => '0', |
|
| 24 | + 'terms' => '', |
|
| 25 | + 'title' => '', |
|
| 26 | + ]; |
|
| 27 | + } |
|
| 28 | 28 | } |
@@ -7,41 +7,41 @@ |
||
| 7 | 7 | |
| 8 | 8 | class CreateReviewDefaults extends Defaults |
| 9 | 9 | { |
| 10 | - /** |
|
| 11 | - * @var array |
|
| 12 | - */ |
|
| 13 | - protected $guarded = [ |
|
| 14 | - 'assigned_to', |
|
| 15 | - 'content', |
|
| 16 | - 'date', |
|
| 17 | - 'pinned', |
|
| 18 | - 'response', |
|
| 19 | - 'review_id', |
|
| 20 | - 'review_type', |
|
| 21 | - 'title', |
|
| 22 | - ]; |
|
| 10 | + /** |
|
| 11 | + * @var array |
|
| 12 | + */ |
|
| 13 | + protected $guarded = [ |
|
| 14 | + 'assigned_to', |
|
| 15 | + 'content', |
|
| 16 | + 'date', |
|
| 17 | + 'pinned', |
|
| 18 | + 'response', |
|
| 19 | + 'review_id', |
|
| 20 | + 'review_type', |
|
| 21 | + 'title', |
|
| 22 | + ]; |
|
| 23 | 23 | |
| 24 | - /** |
|
| 25 | - * @return array |
|
| 26 | - */ |
|
| 27 | - protected function defaults() |
|
| 28 | - { |
|
| 29 | - return [ |
|
| 30 | - 'assigned_to' => '', |
|
| 31 | - 'author' => '', |
|
| 32 | - 'avatar' => '', |
|
| 33 | - 'content' => '', |
|
| 34 | - 'custom' => '', |
|
| 35 | - 'date' => current_time('mysql'), |
|
| 36 | - 'email' => '', |
|
| 37 | - 'ip_address' => Helper::getIpAddress(), |
|
| 38 | - 'pinned' => false, |
|
| 39 | - 'rating' => '', |
|
| 40 | - 'response' => '', |
|
| 41 | - 'review_id' => md5(time().mt_rand()), |
|
| 42 | - 'review_type' => 'local', |
|
| 43 | - 'title' => '', |
|
| 44 | - 'url' => '', |
|
| 45 | - ]; |
|
| 46 | - } |
|
| 24 | + /** |
|
| 25 | + * @return array |
|
| 26 | + */ |
|
| 27 | + protected function defaults() |
|
| 28 | + { |
|
| 29 | + return [ |
|
| 30 | + 'assigned_to' => '', |
|
| 31 | + 'author' => '', |
|
| 32 | + 'avatar' => '', |
|
| 33 | + 'content' => '', |
|
| 34 | + 'custom' => '', |
|
| 35 | + 'date' => current_time('mysql'), |
|
| 36 | + 'email' => '', |
|
| 37 | + 'ip_address' => Helper::getIpAddress(), |
|
| 38 | + 'pinned' => false, |
|
| 39 | + 'rating' => '', |
|
| 40 | + 'response' => '', |
|
| 41 | + 'review_id' => md5(time().mt_rand()), |
|
| 42 | + 'review_type' => 'local', |
|
| 43 | + 'title' => '', |
|
| 44 | + 'url' => '', |
|
| 45 | + ]; |
|
| 46 | + } |
|
| 47 | 47 | } |
@@ -6,60 +6,60 @@ |
||
| 6 | 6 | |
| 7 | 7 | class DefaultsManager |
| 8 | 8 | { |
| 9 | - /** |
|
| 10 | - * @return array |
|
| 11 | - */ |
|
| 12 | - public function defaults() |
|
| 13 | - { |
|
| 14 | - $settings = $this->settings(); |
|
| 15 | - $defaults = (array) array_combine(array_keys($settings), glsr_array_column($settings, 'default')); |
|
| 16 | - return wp_parse_args($defaults, [ |
|
| 17 | - 'version' => '', |
|
| 18 | - 'version_upgraded_from' => '', |
|
| 19 | - ]); |
|
| 20 | - } |
|
| 9 | + /** |
|
| 10 | + * @return array |
|
| 11 | + */ |
|
| 12 | + public function defaults() |
|
| 13 | + { |
|
| 14 | + $settings = $this->settings(); |
|
| 15 | + $defaults = (array) array_combine(array_keys($settings), glsr_array_column($settings, 'default')); |
|
| 16 | + return wp_parse_args($defaults, [ |
|
| 17 | + 'version' => '', |
|
| 18 | + 'version_upgraded_from' => '', |
|
| 19 | + ]); |
|
| 20 | + } |
|
| 21 | 21 | |
| 22 | - /** |
|
| 23 | - * @return array |
|
| 24 | - */ |
|
| 25 | - public function get() |
|
| 26 | - { |
|
| 27 | - return Arr::convertDotNotationArray($this->defaults()); |
|
| 28 | - } |
|
| 22 | + /** |
|
| 23 | + * @return array |
|
| 24 | + */ |
|
| 25 | + public function get() |
|
| 26 | + { |
|
| 27 | + return Arr::convertDotNotationArray($this->defaults()); |
|
| 28 | + } |
|
| 29 | 29 | |
| 30 | - /** |
|
| 31 | - * @return array |
|
| 32 | - */ |
|
| 33 | - public function set() |
|
| 34 | - { |
|
| 35 | - $settings = glsr(OptionManager::class)->all(); |
|
| 36 | - $currentSettings = Arr::removeEmptyArrayValues($settings); |
|
| 37 | - $defaultSettings = array_replace_recursive($this->get(), $currentSettings); |
|
| 38 | - $updatedSettings = array_replace_recursive($settings, $defaultSettings); |
|
| 39 | - update_option(OptionManager::databaseKey(), $updatedSettings); |
|
| 40 | - return $defaultSettings; |
|
| 41 | - } |
|
| 30 | + /** |
|
| 31 | + * @return array |
|
| 32 | + */ |
|
| 33 | + public function set() |
|
| 34 | + { |
|
| 35 | + $settings = glsr(OptionManager::class)->all(); |
|
| 36 | + $currentSettings = Arr::removeEmptyArrayValues($settings); |
|
| 37 | + $defaultSettings = array_replace_recursive($this->get(), $currentSettings); |
|
| 38 | + $updatedSettings = array_replace_recursive($settings, $defaultSettings); |
|
| 39 | + update_option(OptionManager::databaseKey(), $updatedSettings); |
|
| 40 | + return $defaultSettings; |
|
| 41 | + } |
|
| 42 | 42 | |
| 43 | - /** |
|
| 44 | - * @return array |
|
| 45 | - */ |
|
| 46 | - public function settings() |
|
| 47 | - { |
|
| 48 | - $settings = apply_filters('site-reviews/addon/settings', glsr()->config('settings')); |
|
| 49 | - return $this->normalize($settings); |
|
| 50 | - } |
|
| 43 | + /** |
|
| 44 | + * @return array |
|
| 45 | + */ |
|
| 46 | + public function settings() |
|
| 47 | + { |
|
| 48 | + $settings = apply_filters('site-reviews/addon/settings', glsr()->config('settings')); |
|
| 49 | + return $this->normalize($settings); |
|
| 50 | + } |
|
| 51 | 51 | |
| 52 | - /** |
|
| 53 | - * @return array |
|
| 54 | - */ |
|
| 55 | - protected function normalize(array $settings) |
|
| 56 | - { |
|
| 57 | - array_walk($settings, function (&$setting) { |
|
| 58 | - if (isset($setting['default'])) { |
|
| 59 | - return; |
|
| 60 | - } |
|
| 61 | - $setting['default'] = ''; |
|
| 62 | - }); |
|
| 63 | - return $settings; |
|
| 64 | - } |
|
| 52 | + /** |
|
| 53 | + * @return array |
|
| 54 | + */ |
|
| 55 | + protected function normalize(array $settings) |
|
| 56 | + { |
|
| 57 | + array_walk($settings, function (&$setting) { |
|
| 58 | + if (isset($setting['default'])) { |
|
| 59 | + return; |
|
| 60 | + } |
|
| 61 | + $setting['default'] = ''; |
|
| 62 | + }); |
|
| 63 | + return $settings; |
|
| 64 | + } |
|
| 65 | 65 | } |
@@ -9,153 +9,153 @@ |
||
| 9 | 9 | |
| 10 | 10 | class OptionManager |
| 11 | 11 | { |
| 12 | - /** |
|
| 13 | - * @var array |
|
| 14 | - */ |
|
| 15 | - protected $options; |
|
| 12 | + /** |
|
| 13 | + * @var array |
|
| 14 | + */ |
|
| 15 | + protected $options; |
|
| 16 | 16 | |
| 17 | - /** |
|
| 18 | - * @return string |
|
| 19 | - */ |
|
| 20 | - public static function databaseKey($version = null) |
|
| 21 | - { |
|
| 22 | - if (null === $version) { |
|
| 23 | - $version = explode('.', glsr()->version); |
|
| 24 | - $version = array_shift($version); |
|
| 25 | - } |
|
| 26 | - return Str::snakeCase( |
|
| 27 | - Application::ID.'-v'.intval($version) |
|
| 28 | - ); |
|
| 29 | - } |
|
| 17 | + /** |
|
| 18 | + * @return string |
|
| 19 | + */ |
|
| 20 | + public static function databaseKey($version = null) |
|
| 21 | + { |
|
| 22 | + if (null === $version) { |
|
| 23 | + $version = explode('.', glsr()->version); |
|
| 24 | + $version = array_shift($version); |
|
| 25 | + } |
|
| 26 | + return Str::snakeCase( |
|
| 27 | + Application::ID.'-v'.intval($version) |
|
| 28 | + ); |
|
| 29 | + } |
|
| 30 | 30 | |
| 31 | - /** |
|
| 32 | - * @return array |
|
| 33 | - */ |
|
| 34 | - public function all() |
|
| 35 | - { |
|
| 36 | - if (empty($this->options)) { |
|
| 37 | - $this->reset(); |
|
| 38 | - } |
|
| 39 | - return $this->options; |
|
| 40 | - } |
|
| 31 | + /** |
|
| 32 | + * @return array |
|
| 33 | + */ |
|
| 34 | + public function all() |
|
| 35 | + { |
|
| 36 | + if (empty($this->options)) { |
|
| 37 | + $this->reset(); |
|
| 38 | + } |
|
| 39 | + return $this->options; |
|
| 40 | + } |
|
| 41 | 41 | |
| 42 | - /** |
|
| 43 | - * @param string $path |
|
| 44 | - * @return bool |
|
| 45 | - */ |
|
| 46 | - public function delete($path) |
|
| 47 | - { |
|
| 48 | - $keys = explode('.', $path); |
|
| 49 | - $last = array_pop($keys); |
|
| 50 | - $options = $this->all(); |
|
| 51 | - $pointer = &$options; |
|
| 52 | - foreach ($keys as $key) { |
|
| 53 | - if (!isset($pointer[$key]) || !is_array($pointer[$key])) { |
|
| 54 | - continue; |
|
| 55 | - } |
|
| 56 | - $pointer = &$pointer[$key]; |
|
| 57 | - } |
|
| 58 | - unset($pointer[$last]); |
|
| 59 | - return $this->set($options); |
|
| 60 | - } |
|
| 42 | + /** |
|
| 43 | + * @param string $path |
|
| 44 | + * @return bool |
|
| 45 | + */ |
|
| 46 | + public function delete($path) |
|
| 47 | + { |
|
| 48 | + $keys = explode('.', $path); |
|
| 49 | + $last = array_pop($keys); |
|
| 50 | + $options = $this->all(); |
|
| 51 | + $pointer = &$options; |
|
| 52 | + foreach ($keys as $key) { |
|
| 53 | + if (!isset($pointer[$key]) || !is_array($pointer[$key])) { |
|
| 54 | + continue; |
|
| 55 | + } |
|
| 56 | + $pointer = &$pointer[$key]; |
|
| 57 | + } |
|
| 58 | + unset($pointer[$last]); |
|
| 59 | + return $this->set($options); |
|
| 60 | + } |
|
| 61 | 61 | |
| 62 | - /** |
|
| 63 | - * @param string $path |
|
| 64 | - * @param mixed $fallback |
|
| 65 | - * @param string $cast |
|
| 66 | - * @return mixed |
|
| 67 | - */ |
|
| 68 | - public function get($path = '', $fallback = '', $cast = '') |
|
| 69 | - { |
|
| 70 | - $result = Arr::get($this->all(), $path, $fallback); |
|
| 71 | - return Helper::castTo($cast, $result); |
|
| 72 | - } |
|
| 62 | + /** |
|
| 63 | + * @param string $path |
|
| 64 | + * @param mixed $fallback |
|
| 65 | + * @param string $cast |
|
| 66 | + * @return mixed |
|
| 67 | + */ |
|
| 68 | + public function get($path = '', $fallback = '', $cast = '') |
|
| 69 | + { |
|
| 70 | + $result = Arr::get($this->all(), $path, $fallback); |
|
| 71 | + return Helper::castTo($cast, $result); |
|
| 72 | + } |
|
| 73 | 73 | |
| 74 | - /** |
|
| 75 | - * @param string $path |
|
| 76 | - * @return bool |
|
| 77 | - */ |
|
| 78 | - public function getBool($path) |
|
| 79 | - { |
|
| 80 | - return Helper::castTo('bool', $this->get($path)); |
|
| 81 | - } |
|
| 74 | + /** |
|
| 75 | + * @param string $path |
|
| 76 | + * @return bool |
|
| 77 | + */ |
|
| 78 | + public function getBool($path) |
|
| 79 | + { |
|
| 80 | + return Helper::castTo('bool', $this->get($path)); |
|
| 81 | + } |
|
| 82 | 82 | |
| 83 | - /** |
|
| 84 | - * @param string $path |
|
| 85 | - * @param mixed $fallback |
|
| 86 | - * @param string $cast |
|
| 87 | - * @return mixed |
|
| 88 | - */ |
|
| 89 | - public function getWP($path, $fallback = '', $cast = '') |
|
| 90 | - { |
|
| 91 | - $option = get_option($path, $fallback); |
|
| 92 | - if (empty($option)) { |
|
| 93 | - $option = $fallback; |
|
| 94 | - } |
|
| 95 | - return Helper::castTo($cast, $option); |
|
| 96 | - } |
|
| 83 | + /** |
|
| 84 | + * @param string $path |
|
| 85 | + * @param mixed $fallback |
|
| 86 | + * @param string $cast |
|
| 87 | + * @return mixed |
|
| 88 | + */ |
|
| 89 | + public function getWP($path, $fallback = '', $cast = '') |
|
| 90 | + { |
|
| 91 | + $option = get_option($path, $fallback); |
|
| 92 | + if (empty($option)) { |
|
| 93 | + $option = $fallback; |
|
| 94 | + } |
|
| 95 | + return Helper::castTo($cast, $option); |
|
| 96 | + } |
|
| 97 | 97 | |
| 98 | - /** |
|
| 99 | - * @return string |
|
| 100 | - */ |
|
| 101 | - public function json() |
|
| 102 | - { |
|
| 103 | - return json_encode($this->all()); |
|
| 104 | - } |
|
| 98 | + /** |
|
| 99 | + * @return string |
|
| 100 | + */ |
|
| 101 | + public function json() |
|
| 102 | + { |
|
| 103 | + return json_encode($this->all()); |
|
| 104 | + } |
|
| 105 | 105 | |
| 106 | - /** |
|
| 107 | - * @return array |
|
| 108 | - */ |
|
| 109 | - public function normalize(array $options = []) |
|
| 110 | - { |
|
| 111 | - $options = wp_parse_args( |
|
| 112 | - Arr::flattenArray($options), |
|
| 113 | - glsr(DefaultsManager::class)->defaults() |
|
| 114 | - ); |
|
| 115 | - array_walk($options, function (&$value) { |
|
| 116 | - if (!is_string($value)) { |
|
| 117 | - return; |
|
| 118 | - } |
|
| 119 | - $value = wp_kses($value, wp_kses_allowed_html('post')); |
|
| 120 | - }); |
|
| 121 | - return Arr::convertDotNotationArray($options); |
|
| 122 | - } |
|
| 106 | + /** |
|
| 107 | + * @return array |
|
| 108 | + */ |
|
| 109 | + public function normalize(array $options = []) |
|
| 110 | + { |
|
| 111 | + $options = wp_parse_args( |
|
| 112 | + Arr::flattenArray($options), |
|
| 113 | + glsr(DefaultsManager::class)->defaults() |
|
| 114 | + ); |
|
| 115 | + array_walk($options, function (&$value) { |
|
| 116 | + if (!is_string($value)) { |
|
| 117 | + return; |
|
| 118 | + } |
|
| 119 | + $value = wp_kses($value, wp_kses_allowed_html('post')); |
|
| 120 | + }); |
|
| 121 | + return Arr::convertDotNotationArray($options); |
|
| 122 | + } |
|
| 123 | 123 | |
| 124 | - /** |
|
| 125 | - * @return bool |
|
| 126 | - */ |
|
| 127 | - public function isRecaptchaEnabled() |
|
| 128 | - { |
|
| 129 | - $integration = $this->get('settings.submissions.recaptcha.integration'); |
|
| 130 | - return 'all' == $integration || ('guest' == $integration && !is_user_logged_in()); |
|
| 131 | - } |
|
| 124 | + /** |
|
| 125 | + * @return bool |
|
| 126 | + */ |
|
| 127 | + public function isRecaptchaEnabled() |
|
| 128 | + { |
|
| 129 | + $integration = $this->get('settings.submissions.recaptcha.integration'); |
|
| 130 | + return 'all' == $integration || ('guest' == $integration && !is_user_logged_in()); |
|
| 131 | + } |
|
| 132 | 132 | |
| 133 | - /** |
|
| 134 | - * @return array |
|
| 135 | - */ |
|
| 136 | - public function reset() |
|
| 137 | - { |
|
| 138 | - $options = $this->getWP(static::databaseKey(), []); |
|
| 139 | - if (!is_array($options) || empty($options)) { |
|
| 140 | - delete_option(static::databaseKey()); |
|
| 141 | - $options = glsr()->defaults ?: []; |
|
| 142 | - } |
|
| 143 | - $this->options = $options; |
|
| 144 | - } |
|
| 133 | + /** |
|
| 134 | + * @return array |
|
| 135 | + */ |
|
| 136 | + public function reset() |
|
| 137 | + { |
|
| 138 | + $options = $this->getWP(static::databaseKey(), []); |
|
| 139 | + if (!is_array($options) || empty($options)) { |
|
| 140 | + delete_option(static::databaseKey()); |
|
| 141 | + $options = glsr()->defaults ?: []; |
|
| 142 | + } |
|
| 143 | + $this->options = $options; |
|
| 144 | + } |
|
| 145 | 145 | |
| 146 | - /** |
|
| 147 | - * @param string|array $pathOrOptions |
|
| 148 | - * @param mixed $value |
|
| 149 | - * @return bool |
|
| 150 | - */ |
|
| 151 | - public function set($pathOrOptions, $value = '') |
|
| 152 | - { |
|
| 153 | - if (is_string($pathOrOptions)) { |
|
| 154 | - $pathOrOptions = Arr::set($this->all(), $pathOrOptions, $value); |
|
| 155 | - } |
|
| 156 | - if ($result = update_option(static::databaseKey(), (array) $pathOrOptions)) { |
|
| 157 | - $this->reset(); |
|
| 158 | - } |
|
| 159 | - return $result; |
|
| 160 | - } |
|
| 146 | + /** |
|
| 147 | + * @param string|array $pathOrOptions |
|
| 148 | + * @param mixed $value |
|
| 149 | + * @return bool |
|
| 150 | + */ |
|
| 151 | + public function set($pathOrOptions, $value = '') |
|
| 152 | + { |
|
| 153 | + if (is_string($pathOrOptions)) { |
|
| 154 | + $pathOrOptions = Arr::set($this->all(), $pathOrOptions, $value); |
|
| 155 | + } |
|
| 156 | + if ($result = update_option(static::databaseKey(), (array) $pathOrOptions)) { |
|
| 157 | + $this->reset(); |
|
| 158 | + } |
|
| 159 | + return $result; |
|
| 160 | + } |
|
| 161 | 161 | } |
@@ -9,77 +9,77 @@ |
||
| 9 | 9 | |
| 10 | 10 | class RegisterPostType |
| 11 | 11 | { |
| 12 | - public $args; |
|
| 13 | - public $columns; |
|
| 14 | - public $plural; |
|
| 15 | - public $postType; |
|
| 16 | - public $single; |
|
| 12 | + public $args; |
|
| 13 | + public $columns; |
|
| 14 | + public $plural; |
|
| 15 | + public $postType; |
|
| 16 | + public $single; |
|
| 17 | 17 | |
| 18 | - public function __construct($input) |
|
| 19 | - { |
|
| 20 | - $args = glsr(PostTypeDefaults::class)->merge($input); |
|
| 21 | - $this->normalize($args); |
|
| 22 | - $this->normalizeColumns(); |
|
| 23 | - $this->normalizeLabels(); |
|
| 24 | - } |
|
| 18 | + public function __construct($input) |
|
| 19 | + { |
|
| 20 | + $args = glsr(PostTypeDefaults::class)->merge($input); |
|
| 21 | + $this->normalize($args); |
|
| 22 | + $this->normalizeColumns(); |
|
| 23 | + $this->normalizeLabels(); |
|
| 24 | + } |
|
| 25 | 25 | |
| 26 | - /** |
|
| 27 | - * @return void |
|
| 28 | - */ |
|
| 29 | - protected function normalize(array $args) |
|
| 30 | - { |
|
| 31 | - foreach ($args as $key => $value) { |
|
| 32 | - $property = Helper::buildPropertyName($key); |
|
| 33 | - if (!property_exists($this, $property)) { |
|
| 34 | - continue; |
|
| 35 | - } |
|
| 36 | - $this->$property = $value; |
|
| 37 | - unset($args[$key]); |
|
| 38 | - } |
|
| 39 | - $this->args = wp_parse_args($args, [ |
|
| 40 | - 'menu_name' => $this->plural, |
|
| 41 | - ]); |
|
| 42 | - } |
|
| 26 | + /** |
|
| 27 | + * @return void |
|
| 28 | + */ |
|
| 29 | + protected function normalize(array $args) |
|
| 30 | + { |
|
| 31 | + foreach ($args as $key => $value) { |
|
| 32 | + $property = Helper::buildPropertyName($key); |
|
| 33 | + if (!property_exists($this, $property)) { |
|
| 34 | + continue; |
|
| 35 | + } |
|
| 36 | + $this->$property = $value; |
|
| 37 | + unset($args[$key]); |
|
| 38 | + } |
|
| 39 | + $this->args = wp_parse_args($args, [ |
|
| 40 | + 'menu_name' => $this->plural, |
|
| 41 | + ]); |
|
| 42 | + } |
|
| 43 | 43 | |
| 44 | - /** |
|
| 45 | - * @return void |
|
| 46 | - */ |
|
| 47 | - protected function normalizeLabels() |
|
| 48 | - { |
|
| 49 | - $this->args['labels'] = wp_parse_args($this->args['labels'], [ |
|
| 50 | - 'add_new_item' => sprintf(_x('Add New %s', 'Add New Post', 'site-reviews'), $this->plural), |
|
| 51 | - 'all_items' => sprintf(_x('All %s', 'All Posts', 'site-reviews'), $this->plural), |
|
| 52 | - 'archives' => sprintf(_x('%s Archives', 'Post Archives', 'site-reviews'), $this->single), |
|
| 53 | - 'edit_item' => sprintf(_x('Edit %s', 'Edit Post', 'site-reviews'), $this->single), |
|
| 54 | - 'insert_into_item' => sprintf(_x('Insert into %s', 'Insert into Post', 'site-reviews'), $this->single), |
|
| 55 | - 'menu_name' => $this->args['menu_name'], |
|
| 56 | - 'name' => $this->plural, |
|
| 57 | - 'new_item' => sprintf(_x('New %s', 'New Post', 'site-reviews'), $this->single), |
|
| 58 | - 'not_found' => sprintf(_x('No %s found', 'No Posts found', 'site-reviews'), $this->plural), |
|
| 59 | - 'not_found_in_trash' => sprintf(_x('No %s found in Trash', 'No Posts found in Trash', 'site-reviews'), $this->plural), |
|
| 60 | - 'search_items' => sprintf(_x('Search %s', 'Search Posts', 'site-reviews'), $this->plural), |
|
| 61 | - 'singular_name' => $this->single, |
|
| 62 | - 'uploaded_to_this_item' => sprintf(_x('Uploaded to this %s', 'Uploaded to this Post', 'site-reviews'), $this->single), |
|
| 63 | - 'view_item' => sprintf(_x('View %s', 'View Post', 'site-reviews'), $this->single), |
|
| 64 | - ]); |
|
| 65 | - unset($this->args['menu_name']); |
|
| 66 | - } |
|
| 44 | + /** |
|
| 45 | + * @return void |
|
| 46 | + */ |
|
| 47 | + protected function normalizeLabels() |
|
| 48 | + { |
|
| 49 | + $this->args['labels'] = wp_parse_args($this->args['labels'], [ |
|
| 50 | + 'add_new_item' => sprintf(_x('Add New %s', 'Add New Post', 'site-reviews'), $this->plural), |
|
| 51 | + 'all_items' => sprintf(_x('All %s', 'All Posts', 'site-reviews'), $this->plural), |
|
| 52 | + 'archives' => sprintf(_x('%s Archives', 'Post Archives', 'site-reviews'), $this->single), |
|
| 53 | + 'edit_item' => sprintf(_x('Edit %s', 'Edit Post', 'site-reviews'), $this->single), |
|
| 54 | + 'insert_into_item' => sprintf(_x('Insert into %s', 'Insert into Post', 'site-reviews'), $this->single), |
|
| 55 | + 'menu_name' => $this->args['menu_name'], |
|
| 56 | + 'name' => $this->plural, |
|
| 57 | + 'new_item' => sprintf(_x('New %s', 'New Post', 'site-reviews'), $this->single), |
|
| 58 | + 'not_found' => sprintf(_x('No %s found', 'No Posts found', 'site-reviews'), $this->plural), |
|
| 59 | + 'not_found_in_trash' => sprintf(_x('No %s found in Trash', 'No Posts found in Trash', 'site-reviews'), $this->plural), |
|
| 60 | + 'search_items' => sprintf(_x('Search %s', 'Search Posts', 'site-reviews'), $this->plural), |
|
| 61 | + 'singular_name' => $this->single, |
|
| 62 | + 'uploaded_to_this_item' => sprintf(_x('Uploaded to this %s', 'Uploaded to this Post', 'site-reviews'), $this->single), |
|
| 63 | + 'view_item' => sprintf(_x('View %s', 'View Post', 'site-reviews'), $this->single), |
|
| 64 | + ]); |
|
| 65 | + unset($this->args['menu_name']); |
|
| 66 | + } |
|
| 67 | 67 | |
| 68 | - /** |
|
| 69 | - * @return void |
|
| 70 | - */ |
|
| 71 | - protected function normalizeColumns() |
|
| 72 | - { |
|
| 73 | - $this->columns = ['cb' => ''] + $this->columns; |
|
| 74 | - if (array_key_exists('category', $this->columns)) { |
|
| 75 | - $keys = array_keys($this->columns); |
|
| 76 | - $keys[array_search('category', $keys)] = 'taxonomy-'.Application::TAXONOMY; |
|
| 77 | - $this->columns = array_combine($keys, $this->columns); |
|
| 78 | - } |
|
| 79 | - if (array_key_exists('pinned', $this->columns)) { |
|
| 80 | - $this->columns['pinned'] = glsr(Builder::class)->span('<span>'.$this->columns['pinned'].'</span>', |
|
| 81 | - ['class' => 'pinned-icon'] |
|
| 82 | - ); |
|
| 83 | - } |
|
| 84 | - } |
|
| 68 | + /** |
|
| 69 | + * @return void |
|
| 70 | + */ |
|
| 71 | + protected function normalizeColumns() |
|
| 72 | + { |
|
| 73 | + $this->columns = ['cb' => ''] + $this->columns; |
|
| 74 | + if (array_key_exists('category', $this->columns)) { |
|
| 75 | + $keys = array_keys($this->columns); |
|
| 76 | + $keys[array_search('category', $keys)] = 'taxonomy-'.Application::TAXONOMY; |
|
| 77 | + $this->columns = array_combine($keys, $this->columns); |
|
| 78 | + } |
|
| 79 | + if (array_key_exists('pinned', $this->columns)) { |
|
| 80 | + $this->columns['pinned'] = glsr(Builder::class)->span('<span>'.$this->columns['pinned'].'</span>', |
|
| 81 | + ['class' => 'pinned-icon'] |
|
| 82 | + ); |
|
| 83 | + } |
|
| 84 | + } |
|
| 85 | 85 | } |