summaryrefslogtreecommitdiff
path: root/app/Report/ReportParserSetup.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Report/ReportParserSetup.php')
-rw-r--r--app/Report/ReportParserSetup.php231
1 files changed, 120 insertions, 111 deletions
diff --git a/app/Report/ReportParserSetup.php b/app/Report/ReportParserSetup.php
index fd02ff7a70..3cb8b1c817 100644
--- a/app/Report/ReportParserSetup.php
+++ b/app/Report/ReportParserSetup.php
@@ -21,126 +21,135 @@ use Fisharebest\Webtrees\I18N;
/**
* Class ReportParserSetup - parse a report.xml file and extract the setup options.
*/
-class ReportParserSetup extends ReportParserBase {
- /** @var array An array of report options/parameters */
- private $data = [];
+class ReportParserSetup extends ReportParserBase
+{
+ /** @var array An array of report options/parameters */
+ private $data = [];
- /** @var string[] An array of input attributes */
- private $input;
+ /** @var string[] An array of input attributes */
+ private $input;
- /**
- * Return the parsed data.
- *
- * @return array
- */
- public function reportProperties() {
- return $this->data;
- }
+ /**
+ * Return the parsed data.
+ *
+ * @return array
+ */
+ public function reportProperties()
+ {
+ return $this->data;
+ }
- /**
- * Process <Report>
- *
- * @param string[] $attrs
- */
- protected function reportStartHandler($attrs) {
- $access = Auth::PRIV_PRIVATE;
- if (isset($attrs['access'])) {
- if (isset($$attrs['access'])) {
- $access = $$attrs['access'];
- }
- }
- $this->data['access'] = $access;
+ /**
+ * Process <Report>
+ *
+ * @param string[] $attrs
+ */
+ protected function reportStartHandler($attrs)
+ {
+ $access = Auth::PRIV_PRIVATE;
+ if (isset($attrs['access'])) {
+ if (isset($$attrs['access'])) {
+ $access = $$attrs['access'];
+ }
+ }
+ $this->data['access'] = $access;
- if (isset($attrs['icon'])) {
- $this->data['icon'] = $attrs['icon'];
- } else {
- $this->data['icon'] = '';
- }
- }
+ if (isset($attrs['icon'])) {
+ $this->data['icon'] = $attrs['icon'];
+ } else {
+ $this->data['icon'] = '';
+ }
+ }
- /**
- * Process <var var="">
- *
- * @param string[] $attrs
- */
- protected function varStartHandler($attrs) {
- if (preg_match('/^I18N::number\((.+)\)$/', $attrs['var'], $match)) {
- $this->text .= I18N::number($match[1]);
- } elseif (preg_match('/^I18N::translate\(\'(.+)\'\)$/', $attrs['var'], $match)) {
- $this->text .= I18N::translate($match[1]);
- } elseif (preg_match('/^I18N::translateContext\(\'(.+)\', *\'(.+)\'\)$/', $attrs['var'], $match)) {
- $this->text .= I18N::translateContext($match[1], $match[2]);
- } else {
- $this->text .= $attrs['var'];
- }
- }
+ /**
+ * Process <var var="">
+ *
+ * @param string[] $attrs
+ */
+ protected function varStartHandler($attrs)
+ {
+ if (preg_match('/^I18N::number\((.+)\)$/', $attrs['var'], $match)) {
+ $this->text .= I18N::number($match[1]);
+ } elseif (preg_match('/^I18N::translate\(\'(.+)\'\)$/', $attrs['var'], $match)) {
+ $this->text .= I18N::translate($match[1]);
+ } elseif (preg_match('/^I18N::translateContext\(\'(.+)\', *\'(.+)\'\)$/', $attrs['var'], $match)) {
+ $this->text .= I18N::translateContext($match[1], $match[2]);
+ } else {
+ $this->text .= $attrs['var'];
+ }
+ }
- /**
- * Process <Title>
- */
- protected function titleStartHandler() {
- $this->text = '';
- }
+ /**
+ * Process <Title>
+ */
+ protected function titleStartHandler()
+ {
+ $this->text = '';
+ }
- /**
- * Process </Title>
- */
- protected function titleEndHandler() {
- $this->data['title'] = $this->text;
- $this->text = '';
- }
+ /**
+ * Process </Title>
+ */
+ protected function titleEndHandler()
+ {
+ $this->data['title'] = $this->text;
+ $this->text = '';
+ }
- /**
- * Process </Description>
- */
- protected function descriptionEndHandler() {
- $this->data['description'] = $this->text;
- $this->text = '';
- }
+ /**
+ * Process </Description>
+ */
+ protected function descriptionEndHandler()
+ {
+ $this->data['description'] = $this->text;
+ $this->text = '';
+ }
- /**
- * Process <Input>
- *
- * @param string[] $attrs
- */
- protected function inputStartHandler($attrs) {
- $this->text = '';
- $this->input = [
- 'name' => isset($attrs['name']) ? $attrs['name'] : '',
- 'type' => isset($attrs['type']) ? $attrs['type'] : '',
- 'lookup' => isset($attrs['lookup']) ? $attrs['lookup'] : '',
- 'options' => isset($attrs['options']) ? $attrs['options'] : '',
- 'default' => '',
- 'value' => '',
- ];
+ /**
+ * Process <Input>
+ *
+ * @param string[] $attrs
+ */
+ protected function inputStartHandler($attrs)
+ {
+ $this->text = '';
+ $this->input = [
+ 'name' => isset($attrs['name']) ? $attrs['name'] : '',
+ 'type' => isset($attrs['type']) ? $attrs['type'] : '',
+ 'lookup' => isset($attrs['lookup']) ? $attrs['lookup'] : '',
+ 'options' => isset($attrs['options']) ? $attrs['options'] : '',
+ 'default' => '',
+ 'value' => '',
+ ];
- if (isset($attrs['default'])) {
- if ($attrs['default'] === 'NOW') {
- $this->input['default'] = date('d M Y');
- } else {
- $match = [];
- if (preg_match('/NOW\s*([+\-])\s*(\d+)/', $attrs['default'], $match) > 0) {
- $plus = 1;
- if ($match[1] === '-') {
- $plus = -1;
- }
- $this->input['default'] = date('d M Y', WT_TIMESTAMP + $plus * 60 * 60 * 24 * $match[2]);
- } else {
- $this->input['default'] = $attrs['default'];
- }
- }
- }
- }
+ if (isset($attrs['default'])) {
+ if ($attrs['default'] === 'NOW') {
+ $this->input['default'] = date('d M Y');
+ } else {
+ $match = [];
+ if (preg_match('/NOW\s*([+\-])\s*(\d+)/', $attrs['default'], $match) > 0) {
+ $plus = 1;
+ if ($match[1] === '-') {
+ $plus = -1;
+ }
+ $this->input['default'] = date('d M Y', WT_TIMESTAMP + $plus * 60 * 60 * 24 * $match[2]);
+ } else {
+ $this->input['default'] = $attrs['default'];
+ }
+ }
+ }
+ }
- /**
- * Process </Input>
- */
- protected function inputEndHandler() {
- $this->input['value'] = $this->text;
- if (!isset($this->data['inputs'])) {
- $this->data['inputs'] = [];
- }
- $this->data['inputs'][] = $this->input;
- $this->text = '';
- }
+ /**
+ * Process </Input>
+ */
+ protected function inputEndHandler()
+ {
+ $this->input['value'] = $this->text;
+ if (!isset($this->data['inputs'])) {
+ $this->data['inputs'] = [];
+ }
+ $this->data['inputs'][] = $this->input;
+ $this->text = '';
+ }
}