From 9a7dc5c7c9dfa30daf2aca794bb55b57cdc5b3fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Garc=C3=ADa?= <lucas@codeccoop.org> Date: Tue, 16 Apr 2024 11:38:58 +0200 Subject: [PATCH] fix: abstract settings field render --- abstract/class-settings.php | 40 +++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/abstract/class-settings.php b/abstract/class-settings.php index 62abe5d..927a4e8 100644 --- a/abstract/class-settings.php +++ b/abstract/class-settings.php @@ -14,12 +14,12 @@ abstract class Settings extends Singleton 'notification_receiver' => 'admin@example.coop' ], 'wpct-erp-forms_api' => [ - 'endpoints' => [ - [ - 'form_id' => 0, - 'endpoint' => '/api/private/crm-lead', - ] - ] + 'endpoints' => [ + [ + 'form_id' => 0, + 'endpoint' => '/api/private/crm-lead', + ] + ] ] ]; @@ -82,7 +82,21 @@ abstract class Settings extends Singleton ); } - public function field_render($setting, $field, $value = new Undefined()) + public function field_render() + { + $args = func_get_args(); + $setting = $args[0]; + $field = $args[1]; + if (count($args) >= 3) { + $value = $args[3]; + } else { + $value = new Undefined(); + } + + return $this->_field_render($setting, $field, $value); + } + + private function _field_render($setting, $field, $value) { $is_root = false; if ($value instanceof Undefined) { @@ -107,14 +121,14 @@ abstract class Settings extends Singleton { $default_value = $this->get_defaults($setting, $field); $keys = explode('][', $field); - $is_list = is_list($default_value); + $is_list = is_list($default_value); for ($i = 0; $i < count($keys); $i++) { - $key = $keys[$i]; - if ($is_list) { - $key = (int) $key; - } + $key = $keys[$i]; + if ($is_list) { + $key = (int) $key; + } $default_value = isset($default_value[$key]) ? $default_value[$key] : $default_value[0]; - $is_list = is_list($default_value); + $is_list = is_list($default_value); } $is_bool = is_bool($default_value); if ($is_bool) { -- GitLab