<header class="jumbotron subhead" id="overview">
<div class="container">
<h1>{{ _("IPFire Planet") }}</h1>
- <p class="lead">{{ _("The official blog of the IPFire team") }}</p>
+ <p class="lead">
+ {% block subtitle %}
+ {{ _("The official blog of the IPFire team") }}
+ {% end block %}
+ </p>
</div>
</header>
-{% end header %}
+{% end block %}
new progress in the development or make some minor announcements.
</p>
- <p>
- <a class="btn btn-primary btn-large" href="http://planet.ipfire.org/rss">
- Subscribe to our RSS feed to stay up to date.
- </a>
- </p>
+ <br>
+
+ <form action="/search" method="GET">
+ <div class="input-append">
+ <input type="text" class="input-medium" name="q" placeholder="{{ _("Search") }}">
+ <button type="submit" class="btn"><i class="icon-search"></i></button>
+ </div>
+ </form>
</div>
<hr class="separator">
--- /dev/null
+{% extends "base.html" %}
+
+{% block title %}{{ _("IPFire Planet") }}{% end block %}
+
+{% block subtitle %}
+ {{ _("Search results for '%s'") % query }}</p>
+{% end block %}
+
+{% block body %}
+ {% if entries %}
+ {% for entry in entries %}
+ {% module PlanetEntry(entry) %}
+ {% end %}
+ {% else %}
+ <p class="lead muted ac">
+ {{ _("No results found for '%s'") % query }}
+ </p>
+ {% end %}
+{% end block %}
(r"/", PlanetMainHandler),
(r"/post/([A-Za-z0-9_-]+)", PlanetPostingHandler),
(r"/user/([a-z0-9_-]+)", PlanetUserHandler),
+ (r"/search", PlanetSearchHandler),
# RSS
(r"/rss", RSSPlanetAllHandler),
"VALUES(%s, %s, %s, %s, UTC_TIMESTAMP())", entry.author.uid, entry.title,
slug, entry.markdown)
+ def search(self, what):
+ entries = self.db.query("SELECT *, MATCH(markdown, title) AGAINST(%s) AS score \
+ FROM planet WHERE MATCH(markdown, title) AGAINST(%s) ORDER BY score DESC", what, what)
+
+ return [PlanetEntry(e) for e in entries]
self.render("planet/posting.html",
author=entry.author, entry=entry)
+
+
+class PlanetSearchHandler(PlanetBaseHandler):
+ def get(self):
+ query = self.get_argument("q", "")
+
+ if query:
+ entries = self.planet.search(query)
+ else:
+ entries = []
+
+ self.render("planet/search.html", entries=entries, query=query)