*/
return [
+ "category-view" => [
+ "fields" => [
+ "uri-id" => ["post-category", "uri-id"],
+ "uid" => ["post-category", "uid"],
+ "uri" => ["item-uri", "uri"],
+ "guid" => ["item-uri", "guid"],
+ "type" => ["post-category", "type"],
+ "tid" => ["post-category", "tid"],
+ "name" => ["tag", "name"],
+ "url" => ["tag", "url"],
+ ],
+ "query" => "FROM `post-category`
+ INNER JOIN `item-uri` ON `item-uri`.id = `post-category`.`uri-id`
+ LEFT JOIN `tag` ON `post-category`.`tid` = `tag`.`id`"
+ ],
"tag-view" => [
"fields" => [
"uri-id" => ["post-tag", "uri-id"],
LEFT JOIN `tag` ON `post-tag`.`tid` = `tag`.`id`
LEFT JOIN `contact` ON `post-tag`.`cid` = `contact`.`id`"
],
+ "network-item-view" => [
+ "fields" => [
+ "uri-id" => ["item", "parent-uri-id"],
+ "uri" => ["item", "parent-uri"],
+ "parent" => ["item", "parent"],
+ "received" => ["item", "received"],
+ "commented" => ["item", "commented"],
+ "created" => ["item", "created"],
+ "uid" => ["item", "uid"],
+ "starred" => ["item", "starred"],
+ "mention" => ["item", "mention"],
+ "network" => ["item", "network"],
+ "unseen" => ["item", "unseen"],
+ "gravity" => ["item", "gravity"],
+ "contact-id" => ["item", "contact-id"],
+ ],
+ "query" => "FROM `item`
+ INNER JOIN `thread` ON `thread`.`iid` = `item`.`parent`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `thread`.`contact-id`
+ LEFT JOIN `user-item` ON `user-item`.`iid` = `item`.`id` AND `user-item`.`uid` = `thread`.`uid`
+ LEFT JOIN `user-contact` AS `author` ON `author`.`uid` = `thread`.`uid` AND `author`.`cid` = `thread`.`author-id`
+ LEFT JOIN `user-contact` AS `owner` ON `owner`.`uid` = `thread`.`uid` AND `owner`.`cid` = `thread`.`owner-id`
+ WHERE `thread`.`visible` AND NOT `thread`.`deleted` AND NOT `thread`.`moderated`
+ AND (NOT `contact`.`readonly` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`)
+ AND (`user-item`.`hidden` IS NULL OR NOT `user-item`.`hidden`)
+ AND (`author`.`blocked` IS NULL OR NOT `author`.`blocked`)
+ AND (`owner`.`blocked` IS NULL OR NOT `owner`.`blocked`)"
+ ],
+ "network-thread-view" => [
+ "fields" => [
+ "uri-id" => ["item", "uri-id"],
+ "uri" => ["item", "uri"],
+ "parent-uri-id" => ["item", "parent-uri-id"],
+ "parent" => ["thread", "iid"],
+ "received" => ["thread", "received"],
+ "commented" => ["thread", "commented"],
+ "created" => ["thread", "created"],
+ "uid" => ["thread", "uid"],
+ "starred" => ["thread", "starred"],
+ "mention" => ["thread", "mention"],
+ "network" => ["thread", "network"],
+ "contact-id" => ["thread", "contact-id"],
+ ],
+ "query" => "FROM `thread`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `thread`.`contact-id`
+ STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid`
+ LEFT JOIN `user-item` ON `user-item`.`iid` = `item`.`id` AND `user-item`.`uid` = `thread`.`uid`
+ LEFT JOIN `user-contact` AS `author` ON `author`.`uid` = `thread`.`uid` AND `author`.`cid` = `thread`.`author-id`
+ LEFT JOIN `user-contact` AS `owner` ON `owner`.`uid` = `thread`.`uid` AND `owner`.`cid` = `thread`.`owner-id`
+ WHERE `thread`.`visible` AND NOT `thread`.`deleted` AND NOT `thread`.`moderated`
+ AND (NOT `contact`.`readonly` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`)
+ AND (`user-item`.`hidden` IS NULL OR NOT `user-item`.`hidden`)
+ AND (`author`.`blocked` IS NULL OR NOT `author`.`blocked`)
+ AND (`owner`.`blocked` IS NULL OR NOT `owner`.`blocked`)"
+ ],
"owner-view" => [
"fields" => [
"id" => ["contact", "id"],
"name-date" => ["contact", "name-date"],
"uri-date" => ["contact", "uri-date"],
"avatar-date" => ["contact", "avatar-date"],
- "contact_id" => ["contact", "id"], /// @todo Replaces all uses of "contact_id" with "id"
"picdate" => ["contact", "avatar-date"], /// @todo Replaces all uses of "picdate" with "avatar-date"
"term-date" => ["contact", "term-date"],
- "last-item" => ["contact", "last-item"],
- "lastitem_date" => ["contact", "last-item"], /// @todo Replaces all uses of "lastitem_date" with "last-item"
+ "last-item" => ["contact", "last-item"],
"priority" => ["contact", "priority"],
"blocked" => ["contact", "blocked"], /// @todo Check if "blocked" from contact or from the users table
"block_reason" => ["contact", "block_reason"],
"forum" => ["contact", "forum"],
"prv" => ["contact", "prv"],
"contact-type" => ["contact", "contact-type"],
+ "manually-approve" => ["contact", "manually-approve"],
"hidden" => ["contact", "hidden"],
"archive" => ["contact", "archive"],
"pending" => ["contact", "pending"],
"deleted" => ["contact", "deleted"],
- "rating" => ["contact", "rating"],
"unsearchable" => ["contact", "unsearchable"],
"sensitive" => ["contact", "sensitive"],
"baseurl" => ["contact", "baseurl"],
"profile-id" => ["contact", "profile-id"],
"bdyear" => ["contact", "bdyear"],
"bd" => ["contact", "bd"],
- "notify_new_posts" => ["notify_new_posts"],
- "fetch_further_information" => ["fetch_further_information"],
- "ffi_keyword_blacklist" => ["ffi_keyword_blacklist"],
+ "notify_new_posts" => ["contact", "notify_new_posts"],
+ "fetch_further_information" => ["contact", "fetch_further_information"],
+ "ffi_keyword_denylist" => ["contact", "ffi_keyword_denylist"],
+ "parent-uid" => ["user", "parent-uid"],
"guid" => ["user", "guid"],
- "theme" => ["user", "theme"],
- "language" => ["user", "language"],
+ "nickname" => ["user", "nickname"], /// @todo Replaces all uses of "nickname" with "nick"
"email" => ["user", "email"],
- "uprvkey" => ["user", "prvkey"],
- "upubkey" => ["user", "pubkey"],
+ "openid" => ["user", "openid"],
"timezone" => ["user", "timezone"],
- "nickname" => ["user", "nickname"], /// @todo Replaces all uses of "nickname" with "nick"
- "username" => ["user", "username"], /// @todo Replaces all uses of "username" with "name"
+ "language" => ["user", "language"],
+ "register_date" => ["user", "register_date"],
+ "login_date" => ["user", "login_date"],
+ "default-location" => ["user", "default-location"],
+ "allow_location" => ["user", "allow_location"],
+ "theme" => ["user", "theme"],
+ "upubkey" => ["user", "pubkey"],
+ "uprvkey" => ["user", "prvkey"],
"sprvkey" => ["user", "sprvkey"],
"spubkey" => ["user", "spubkey"],
+ "verified" => ["user", "verified"],
+ "blockwall" => ["user", "blockwall"],
+ "hidewall" => ["user", "hidewall"],
+ "blocktags" => ["user", "blocktags"],
+ "unkmail" => ["user", "unkmail"],
+ "cntunkmail" => ["user", "cntunkmail"],
+ "notify-flags" => ["user", "notify-flags"],
"page-flags" => ["user", "page-flags"],
"account-type" => ["user", "account-type"],
"prvnets" => ["user", "prvnets"],
- "account_removed" => ["user", "account_removed"],
- "hidewall" => ["user", "hidewall"],
- "login_date" => ["user", "login_date"],
- "register_date" => ["user", "register_date"],
- "verified" => ["user", "verified"],
+ "maxreq" => ["user", "maxreq"],
"expire" => ["user", "expire"],
- "expire_notification_sent" => ["user", "expire_notification_sent"],
"account_removed" => ["user", "account_removed"],
"account_expired" => ["user", "account_expired"],
"account_expires_on" => ["user", "account_expires_on"],
+ "expire_notification_sent" => ["user", "expire_notification_sent"],
+ "def_gid" => ["user", "def_gid"],
+ "allow_cid" => ["user", "allow_cid"],
+ "allow_gid" => ["user", "allow_gid"],
+ "deny_cid" => ["user", "deny_cid"],
+ "deny_gid" => ["user", "deny_gid"],
+ "openidserver" => ["user", "openidserver"],
"publish" => ["profile", "publish"],
"net-publish" => ["profile", "net-publish"],
"hide-friends" => ["profile", "hide-friends"],
"postal-code" => ["profile", "postal-code"],
"country-name" => ["profile", "country-name"],
"homepage" => ["profile", "homepage"],
- "xmpp" => ["profile", "xmpp"],
"dob" => ["profile", "dob"],
],
"query" => "FROM `user`
INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self`
INNER JOIN `profile` ON `profile`.`uid` = `user`.`uid`"
- ]
+ ],
+ "pending-view" => [
+ "fields" => [
+ "id" => ["register", "id"],
+ "hash" => ["register", "hash"],
+ "created" => ["register", "created"],
+ "uid" => ["register", "uid"],
+ "password" => ["register", "password"],
+ "language" => ["register", "language"],
+ "note" => ["register", "note"],
+ "self" => ["contact", "self"],
+ "name" => ["contact", "name"],
+ "url" => ["contact", "url"],
+ "micro" => ["contact", "micro"],
+ "email" => ["user", "email"],
+ "nick" => ["contact", "nick"],
+ ],
+ "query" => "FROM `register`
+ INNER JOIN `contact` ON `register`.`uid` = `contact`.`uid`
+ INNER JOIN `user` ON `register`.`uid` = `user`.`uid`"
+ ],
+ "tag-search-view" => [
+ "fields" => [
+ "uri-id" => ["post-tag", "uri-id"],
+ "iid" => ["item", "id"],
+ "uri" => ["item", "uri"],
+ "guid" => ["item", "guid"],
+ "uid" => ["item", "uid"],
+ "private" => ["item", "private"],
+ "wall" => ["item", "wall"],
+ "origin" => ["item", "origin"],
+ "gravity" => ["item", "gravity"],
+ "received" => ["item", "received"],
+ "name" => ["tag", "name"],
+ ],
+ "query" => "FROM `post-tag`
+ INNER JOIN `tag` ON `tag`.`id` = `post-tag`.`tid`
+ INNER JOIN `item` ON `item`.`uri-id` = `post-tag`.`uri-id`
+ WHERE `post-tag`.`type` = 1"
+ ],
+ "workerqueue-view" => [
+ "fields" => [
+ "pid" => ["process", "pid"],
+ "priority" => ["workerqueue", "priority"],
+ ],
+ "query" => "FROM `process`
+ INNER JOIN `workerqueue` ON `workerqueue`.`pid` = `process`.`pid`
+ WHERE NOT `workerqueue`.`done`"
+ ],
];