$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));
* 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`