Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/HuasoFoundries/phpPgAdmin6.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Decorators/ActionUrlDecorator.php')
-rw-r--r--src/Decorators/ActionUrlDecorator.php58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/Decorators/ActionUrlDecorator.php b/src/Decorators/ActionUrlDecorator.php
new file mode 100644
index 00000000..8173a346
--- /dev/null
+++ b/src/Decorators/ActionUrlDecorator.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * PHPPgAdmin6
+ */
+
+namespace PHPPgAdmin\Decorators;
+
+class ActionUrlDecorator extends Decorator
+{
+ public $base;
+
+ /**
+ * @var mixed
+ */
+ public $queryVars;
+
+ public function __construct($base, $queryVars = null)
+ {
+ $this->base = $base;
+
+ if (null !== $queryVars) {
+ $this->queryVars = $queryVars;
+ }
+ }
+
+ /**
+ * @param array $fields
+ *
+ * @return string
+ */
+ public function value($fields)
+ {
+ $url = Decorator::get_sanitized_value($this->base, $fields);
+
+ if (false === $url) {
+ return '';
+ }
+
+ if (!empty($this->queryVars)) {
+ $queryVars = Decorator::get_sanitized_value($this->queryVars, $fields);
+
+ $sep = '?';
+ \ksort($queryVars);
+
+ foreach ($queryVars as $var => $value) {
+ if (!\is_scalar($value)) {
+ continue;
+ }
+ //dump($fields, $var, $value);
+ $url .= $sep . Decorator::value_url($var, $fields) . '=' . Decorator::value_url($value, $fields);
+ $sep = '&';
+ }
+ }
+
+ return \str_replace('.php', '', containerInstance()->subFolder . '/' . $url);
+ }
+}