mirror of
https://github.com/philomena-dev/philomena.git
synced 2024-11-25 12:58:00 +01:00
154 lines
4.6 KiB
Text
154 lines
4.6 KiB
Text
h1 Posts
|
|
|
|
= form_for :posts, ~p"/posts", [method: "get", class: "hform", enforce_utf8: false], fn f ->
|
|
.field
|
|
= text_input f, :pq, name: :pq, value: @conn.params["pq"], class: "input hform__text", placeholder: "Search posts", autocapitalize: "none"
|
|
= submit "Search", class: "hform__button button"
|
|
|
|
.fieldlabel
|
|
' For more information, see the
|
|
a href="/pages/search_syntax" search syntax documentation
|
|
' . Search results are sorted by creation date.
|
|
|
|
h2 Search Results
|
|
|
|
= cond do
|
|
- Enum.any?(@posts) ->
|
|
- route = fn p -> ~p"/posts?#{p}" end
|
|
- pagination = render PhilomenaWeb.PaginationView, "_pagination.html", page: @posts, route: route, params: [pq: @conn.params["pq"]], conn: @conn
|
|
|
|
= for {body, post} <- @posts, post.topic.hidden_from_users == false do
|
|
div
|
|
h3
|
|
=<> link post.topic.forum.name, to: ~p"/forums/#{post.topic.forum}"
|
|
| »
|
|
=<> link post.topic.title, to: ~p"/forums/#{post.topic.forum}/topics/#{post.topic}"
|
|
| »
|
|
- post_link = ~p"/forums/#{post.topic.forum}/topics/#{post.topic}?#{[post_id: post.id]}" <> "#post_#{post.id}"
|
|
= if post.topic_position == 0 do
|
|
=<> link "Topic Opener", to: post_link
|
|
- else
|
|
=<> link "Post #{post.topic_position}", to: post_link
|
|
= render PhilomenaWeb.PostView, "_post.html", body: body, post: post, conn: @conn
|
|
|
|
.block
|
|
.block__header.block__header--light.page__header
|
|
.page__pagination = pagination
|
|
.page__info
|
|
span
|
|
= render PhilomenaWeb.PaginationView, "_pagination_info.html", page: @posts, conn: @conn
|
|
|
|
- assigns[:error] ->
|
|
p
|
|
' Oops, there was an error evaluating your query:
|
|
pre = assigns[:error]
|
|
|
|
- true ->
|
|
p
|
|
' No posts found!
|
|
|
|
h3 Default search
|
|
p
|
|
' If you do not specify a field to search over, the search engine will
|
|
' search for posts with a body that is similar to the query's
|
|
em word stems
|
|
' . For example, posts containing the words
|
|
code winged humanization
|
|
' ,
|
|
code wings
|
|
' , and
|
|
code> spread wings
|
|
' would all be found by a search for
|
|
code wing
|
|
' , but
|
|
code> sewing
|
|
' would not be.
|
|
|
|
h3 Allowed fields
|
|
table.table
|
|
thead
|
|
tr
|
|
th Field Selector
|
|
th Type
|
|
th Description
|
|
th Example
|
|
tbody
|
|
tr
|
|
td
|
|
code author
|
|
td Literal
|
|
td Matches the author of this post. Anonymous authors will never match this term.
|
|
td
|
|
code = link "author:Joey", to: ~p"/posts?#{[pq: "author:Joey"]}"
|
|
tr
|
|
td
|
|
code body
|
|
td Full Text
|
|
td Matches the body of this post. This is the default field.
|
|
td
|
|
code = link "body:test", to: ~p"/posts?#{[pq: "body:test"]}"
|
|
tr
|
|
td
|
|
code created_at
|
|
td Date/Time Range
|
|
td Matches the creation time of this post.
|
|
td
|
|
code = link "created_at:2015", to: ~p"/posts?#{[pq: "created_at:2015"]}"
|
|
tr
|
|
td
|
|
code id
|
|
td Numeric Range
|
|
td Matches the numeric surrogate key for this post.
|
|
td
|
|
code = link "id:1000000", to: ~p"/posts?#{[pq: "id:1000000"]}"
|
|
tr
|
|
td
|
|
code my
|
|
td Meta
|
|
td
|
|
code> my:posts
|
|
' matches posts you have posted if you are signed in.
|
|
td
|
|
code = link "my:posts", to: ~p"/posts?#{[pq: "my:posts"]}"
|
|
tr
|
|
td
|
|
code subject
|
|
td Full Text
|
|
td Matches the title of the topic.
|
|
td
|
|
code = link "subject:time wasting thread", to: ~p"/posts?#{[pq: "subject:time wasting thread"]}"
|
|
tr
|
|
td
|
|
code topic_id
|
|
td Literal
|
|
td Matches the numeric surrogate key for the topic this post belongs to.
|
|
td
|
|
code = link "topic_id:7000", to: ~p"/posts?#{[pq: "topic_id:7000"]}"
|
|
tr
|
|
td
|
|
code topic_position
|
|
td Numeric Range
|
|
td Matches the offset from the beginning of the topic of this post. Positions begin at 0.
|
|
td
|
|
code = link "topic_position:0", to: ~p"/posts?#{[pq: "topic_position:0"]}"
|
|
tr
|
|
td
|
|
code updated_at
|
|
td Date/Time Range
|
|
td Matches the creation or last edit time of this post.
|
|
td
|
|
code = link "updated_at.gte:2 weeks ago", to: ~p"/posts?#{[pq: "updated_at.gte:2 weeks ago"]}"
|
|
tr
|
|
td
|
|
code user_id
|
|
td Literal
|
|
td Matches posts with the specified user_id. Anonymous users will never match this term.
|
|
td
|
|
code = link "user_id:211190", to: ~p"/posts?#{[pq: "user_id:211190"]}"
|
|
tr
|
|
td
|
|
code forum
|
|
td Literal
|
|
td Matches the short name for the forum this post belongs to.
|
|
td
|
|
code = link "forum:meta", to: ~p"/posts?#{[pq: "forum:meta"]}"
|