From 32cea9b4dccc383319ff53af003e1747c8549540 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Garc=C3=ADa?= <lucas@codeccoop.org> Date: Tue, 16 Apr 2024 11:36:18 +0200 Subject: [PATCH] fix: abstract settings field render --- abstract/class-settings.php | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/abstract/class-settings.php b/abstract/class-settings.php index 6576b5d..cafbedd 100644 --- a/abstract/class-settings.php +++ b/abstract/class-settings.php @@ -8,7 +8,6 @@ class Undefined abstract class Settings extends Singleton { - protected $group_name; private $_defaults = []; @@ -67,7 +66,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) { @@ -115,9 +128,11 @@ abstract class Settings extends Singleton $is_list = is_list($data); foreach (array_keys($data) as $key) { $fieldset .= '<tr>'; - if (!$is_list) $fieldset .= "<th>{$key}</th>"; + if (!$is_list) { + $fieldset .= "<th>{$key}</th>"; + } $_field = $field . '][' . $key; - $fieldset .= "<td>{$this->field_render($setting,$_field,$data[$key])}</td>"; + $fieldset .= "<td>{$this->field_render($setting, $_field, $data[$key])}</td>"; $fieldset .= '</tr>'; } $fieldset .= '</table>'; @@ -129,7 +144,7 @@ abstract class Settings extends Singleton { $defaults = $this->get_default($setting); ob_start(); -?> + ?> <div class="<?= $setting; ?>__<?= $field ?>--controls"> <button class="button button-primary" data-action="add">Add</button> <button class="button button-secondary" data-action="remove">Remove</button> @@ -147,7 +162,9 @@ abstract class Settings extends Singleton public function option_getter($setting, $option) { $setting = get_option($setting) ? get_option($setting) : []; - if (!key_exists($option, $setting)) return null; + if (!key_exists($option, $setting)) { + return null; + } return $setting[$option]; } @@ -160,7 +177,11 @@ abstract class Settings extends Singleton function is_list($arr) { - if (!is_array($arr)) return false; - if (sizeof($arr) === 0) return true; + if (!is_array($arr)) { + return false; + } + if (sizeof($arr) === 0) { + return true; + } return array_keys($arr) === range(0, count($arr) - 1); } -- GitLab