Improved definition style
authorMichael <heluecht@pirati.ca>
Thu, 23 Apr 2020 07:02:18 +0000 (07:02 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 23 Apr 2020 07:02:18 +0000 (07:02 +0000)
src/Database/DBView.php
static/dbview.config.php

index f23ab15..cd1d22e 100644 (file)
@@ -109,7 +109,11 @@ class DBView
 
                $sql_rows = [];
                foreach ($structure["fields"] AS $fieldname => $origin) {
-                       $sql_rows[] = $origin . " AS `" . DBA::escape($fieldname) . "`";
+                       if (is_string($origin)) {
+                               $sql_rows[] = $origin . " AS `" . DBA::escape($fieldname) . "`";
+                       } elseif (is_array($origin) && (sizeof($origin) == 2)) {
+                               $sql_rows[] = "`" . DBA::escape($origin[0]) . "`.`" . DBA::escape($origin[1]) . "` AS `" . DBA::escape($fieldname) . "`";
+                       }
                }
 
                $sql = sprintf("DROP VIEW IF EXISTS `%s`", DBA::escape($name));
index 6bc3276..165ae2f 100755 (executable)
@@ -24,8 +24,7 @@
  * Syntax (braces indicate optionale values):
  * "<view name>" => [
  *     "fields" => [
- *             "<field name>" => "`table`.`field`",
- *             "<field name>" => "`other-table`.`field`",
+ *             "<field name>" => ["table", "field"],
  *             "<field name>" => "SQL expression",
  *             ...
  *     ],
 
 return [
        "tag-view" => [
-               "fields" => ["uri-id" => "`post-tag`.`uri-id`",
-                       "uri" => "`item-uri`.`uri`",
-                       "guid" => "`item-uri`.`guid`",
-                       "type" => "`post-tag`.`type`",
-                       "tid" => "`post-tag`.`tid`",
-                       "cid" => "`post-tag`.`cid`",
+               "fields" => ["uri-id" => ["post-tag", "uri-id"],
+                       "uri" => ["item-uri", "uri"],
+                       "guid" => ["item-uri", "guid"],
+                       "type" => ["post-tag", "type"],
+                       "tid" => ["post-tag", "tid"],
+                       "cid" => ["post-tag", "cid"],
                        "name" => "CASE `cid` WHEN 0 THEN `tag`.`name` ELSE `contact`.`name` END",
                        "url" => "CASE `cid` WHEN 0 THEN `tag`.`url` ELSE `contact`.`url` END"],
                "query" => "FROM `post-tag`