templates/channel_search.tmpl
author Tero Marttila <terom@fixme.fi>
Mon, 09 Feb 2009 23:49:57 +0200
changeset 73 5a7188bf2894
parent 69 1f182913b1f2
child 74 1ab95857d584
permissions -rw-r--r--
split defined configuration constants into config, and implement search result pagination
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
<%inherit file="channel.tmpl" />
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
73
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
     3
<%def name="paginate(url, count, skip, max, **args)">
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
     4
    ## update max?
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
     5
    <% max = h.max(max, skip) %>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
     6
    ## number of pages
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
     7
    <% page_count = max / count + 1 %>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
     8
    <div class="paginate">
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
     9
        <ul>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    10
            <li>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    11
            % if skip :
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    12
                <a href="${h.build_url(url, count=count, skip=h.skip_prev(count, skip), max=max, **args)}">&laquo; Prev</a>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    13
            % else :
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    14
                <span>&laquo; Prev</span>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    15
            %endif
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    16
            </li>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    17
        % for page in xrange(page_count) :
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    18
            <li>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    19
            % if page == skip / count :
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    20
                <strong>${page + 1}</strong>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    21
            % else :
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    22
                <a href="${h.build_url(url, count=count, skip=h.skip_page(count, page), max=max, **args)}">${page + 1}</a>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    23
            % endif
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    24
            </li>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    25
        % endfor
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    26
            <li>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    27
                <a href="${h.build_url(url, count=count, skip=h.skip_next(count, max), **args)}">More &raquo;</a>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    28
            </li>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    29
        </ul>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    30
    </div>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    31
</%def>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    32
65
8b50694f841e improve search further
Tero Marttila <terom@fixme.fi>
parents: 63
diff changeset
    33
% if not search_query :
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
<div id="title">${channel.title} :: Search</div>
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
68
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    36
<div id="search">
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    37
    <form action="${h.build_url(urls.channel_search, channel=channel)}" method="GET">
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
        <input type="text" name="q" />
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
        <input type="submit" value="Search" />
68
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    40
        
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    41
        Results/page: <select name="count">
73
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    42
        % for cc, cc_label in config.SEARCH_LINE_COUNT_OPTIONS :
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    43
            <option value="${cc if cc else ''}"${' selected="selected"' if cc == count else ''}>${cc_label}</option>
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    44
        % endfor
68
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    45
        </select>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    46
    </form>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    47
    
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    48
    <div id="search-help">
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    49
        <p>Search powered by <a href="http://hyperestraier.sourceforge.net/">Hyper Estraier</a>:</p>
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    50
68
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    51
        <ul>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    52
            <li>Group words together using quotes: <tt>"united nations"</tt></li>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    53
            <li>Searching for multiple words is AND: <tt>internet security</tt></li>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    54
            <li>To exclude terms, use <strong>!</strong> : <tt>hacker ! cracker</tt></li>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    55
            <li>Union (i.e. <q>or</q>) using <strong>|</strong> : <tt>proxy | firewall</tt></li>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    56
            <li>Search is case-insensitive</li>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    57
        </ul>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    58
    </div>
8157c41b3236 improve search form & script
Tero Marttila <terom@fixme.fi>
parents: 65
diff changeset
    59
</div>
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    60
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    61
% else :
65
8b50694f841e improve search further
Tero Marttila <terom@fixme.fi>
parents: 63
diff changeset
    62
<div id="title">${channel.title} :: Search '${search_query}'</div>
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    63
73
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    64
${paginate(urls.channel_search, count, skip, max, channel=channel, q=search_query)}
69
1f182913b1f2 href-ize urls
Tero Marttila <terom@fixme.fi>
parents: 68
diff changeset
    65
<%include file="lines.tmpl" />
73
5a7188bf2894 split defined configuration constants into config, and implement search result pagination
Tero Marttila <terom@fixme.fi>
parents: 69
diff changeset
    66
${paginate(urls.channel_search, count, skip, max, channel=channel, q=search_query)}
63
416560b82116 rudimentary search
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    67
% endif