*/
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"],
+ "contact-type" => ["ownercontact", "contact-type"],
+ ],
+ "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`
+ LEFT JOIN `contact` AS `ownercontact` ON `ownercontact`.`id` = `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"],
+ "contact-type" => ["ownercontact", "contact-type"],
+ ],
+ "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`
+ LEFT JOIN `contact` AS `ownercontact` ON `ownercontact`.`id` = `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"],
"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"],
"nickname" => ["user", "nickname"], /// @todo Replaces all uses of "nickname" with "nick"
"account_removed" => ["user", "account_removed"],
"account_expired" => ["user", "account_expired"],
"account_expires_on" => ["user", "account_expires_on"],
- "expire_notification_sent" => ["user", "expire_notification_sent"],
+ "expire_notification_sent" => ["user", "expire_notification_sent"],
"def_gid" => ["user", "def_gid"],
"allow_cid" => ["user", "allow_cid"],
"allow_gid" => ["user", "allow_gid"],
"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`"
],
- "participation-view" => [
- "fields" => [
- "iid" => ["participation", "iid"],
- "id" => ["contact", "id"],
- "url" => ["contact", "url"],
- "name" => ["contact", "name"],
- "protocol" => ["contact", "protocol"],
- "batch" => "CASE `contact`.`batch` WHEN '' THEN `fcontact`.`batch` ELSE `contact`.`batch` END",
- "network" => "CASE `fcontact`.`network` WHEN '' THEN `contact`.`network` ELSE `fcontact`.`network` END",
- ],
- "query" => "FROM `participation`
- INNER JOIN `contact` ON `contact`.`id` = `participation`.`cid` AND NOT `contact`.`archive`
- INNER JOIN `fcontact` ON `fcontact`.`id` = `participation`.`fid`"
- ],
"pending-view" => [
"fields" => [
"id" => ["register", "id"],
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"],