From 639c71739b8deeb2b944dae94f13cb5651285f8a Mon Sep 17 00:00:00 2001 From: ternite <7860777+ternite@users.noreply.github.com> Date: Tue, 31 Jan 2023 08:09:13 +0100 Subject: [PATCH] added functionality so that in case of multiple commands setting the same field will result in only the first field being set --- conf/default.php | 6 ++++++ conf/metadata.php | 6 ++++++ lang/de-informal/settings.php | 5 +++++ lang/de/settings.php | 5 +++++ lang/en/settings.php | 5 +++++ syntax.php | 18 ++++++++++++++---- 6 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 conf/default.php create mode 100644 conf/metadata.php create mode 100644 lang/de-informal/settings.php create mode 100644 lang/de/settings.php create mode 100644 lang/en/settings.php diff --git a/conf/default.php b/conf/default.php new file mode 100644 index 0000000..ebd67f9 --- /dev/null +++ b/conf/default.php @@ -0,0 +1,6 @@ +helper = $this->loadHelper('fields'); + $this->fields_helper = plugin_load('helper','fields'); + $this->usecounter_helper = plugin_load('helper','usecounter'); } /** @@ -70,7 +71,7 @@ public function render($format, Doku_Renderer $renderer, $data) { $renderer->doc .= $renderer->fields[$field_name]; return true; } elseif ($format == 'odt') { - $renderer->doc .= $this->helper->ODTDisplayUserField($renderer, $field_name); + $renderer->doc .= $this->fields_helper->ODTDisplayUserField($renderer, $field_name); return true; } } else { @@ -82,8 +83,17 @@ public function render($format, Doku_Renderer $renderer, $data) { $renderer->fields[$field_name] = htmlentities($field_value); return true; } elseif ($format == 'odt') { - $this->helper->ODTSetUserField($renderer, $field_name, - $renderer->_xmlEntities($field_value)); + if ($this->getConf('firstfielddefinitionwins')) { + if ($this->usecounter_helper && $this->usecounter_helper->amountOfUses('fields_'.$field_name) == 0) { + $this->fields_helper->ODTSetUserField($renderer, $field_name, $renderer->_xmlEntities($field_value)); + } + + if ($this->usecounter_helper) { + $this->usecounter_helper->incUsageOf('fields_'.$field_name); + } + } else { + $this->fields_helper->ODTSetUserField($renderer, $field_name, $renderer->_xmlEntities($field_value)); + } return true; } }