czaks
11 years ago
11 changed files with 425 additions and 99 deletions
@ -0,0 +1,34 @@ |
|||||
|
/* |
||||
|
* youtube |
||||
|
* https://github.com/savetheinternet/Tinyboard/blob/master/js/youtube.js
|
||||
|
* |
||||
|
* Don't load the YouTube player unless the video image is clicked. |
||||
|
* This increases performance issues when many videos are embedded on the same page. |
||||
|
* Currently only compatiable with YouTube. |
||||
|
* |
||||
|
* Proof of concept. |
||||
|
* |
||||
|
* Released under the MIT license |
||||
|
* Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org> |
||||
|
* |
||||
|
* Usage: |
||||
|
* $config['embedding'] = array(); |
||||
|
* $config['embedding'][] = array( |
||||
|
* '/^https?:\/\/(\w+\.)?youtube\.com\/watch\?v=([a-zA-Z0-9\-_]{10,11})(&.+)?$/i', |
||||
|
* '<div class="video-container" data-video="$2"><a href="$0" target="_blank" class="file"><img style="width:360px;height:270px;" src="http://img.youtube.com/vi/$2/0.jpg"/></a></div>' |
||||
|
); |
||||
|
* $config['additional_javascript'][] = 'js/jquery.min.js'; |
||||
|
* $config['additional_javascript'][] = 'js/youtube.js'; |
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
|
||||
|
onready(function(){ |
||||
|
$('div.video-container a').attr('href', 'javascript:void(0)'); |
||||
|
$('div.video-container').click(function() { |
||||
|
var videoID = $(this).data('video'); |
||||
|
|
||||
|
$(this).html('<iframe style="float:left;margin: 10px 20px" type="text/html" width="360" height="270" src="http://www.youtube.com/embed/' + videoID + '?autoplay=1" frameborder="0"/>'); |
||||
|
}); |
||||
|
}); |
||||
|
|
@ -0,0 +1,18 @@ |
|||||
|
<form style="display:inline" action="?/search" method="post"> |
||||
|
<label style="display:inline" for="search">{% trans 'Phrase:' %}</label> |
||||
|
<input id="search" name="query" type="text" size="60" value="{{ search_query|e }}"> |
||||
|
<select name="type"> |
||||
|
<option value="posts"{% if search_type == 'posts'%} selected{% endif %}>{% trans 'Posts' %}</option> |
||||
|
{% if mod|hasPermission(config.mod.view_notes) and mod|hasPermission(config.mod.show_ip) %} |
||||
|
<option value="IP_notes"{% if search_type == 'IP_notes'%} selected{% endif %}>{% trans 'IP address notes' %}</option> |
||||
|
{% endif %} |
||||
|
{% if mod|hasPermission(config.mod.view_banlist) %} |
||||
|
<option value="bans"{% if search_type == 'bans'%} selected{% endif %}>{% trans 'Bans' %}</option> |
||||
|
{% endif %} |
||||
|
{% if mod|hasPermission(config.mod.modlog) %} |
||||
|
<option value="log"{% if search_type == 'log'%} selected{% endif %}>{% trans 'Moderation log' %}</option> |
||||
|
{% endif %} |
||||
|
</select> |
||||
|
<input type="submit" value="{% trans 'Search' %}"> |
||||
|
</form> |
||||
|
<p class="unimportant">{% trans '(Search is case-insensitive and based on keywords. To match exact phrases, use "quotes". Use an asterisk (*) for wildcard.)' %}</p> |
@ -0,0 +1,177 @@ |
|||||
|
<fieldset style="margin-bottom:20px"> |
||||
|
<legend>{% trans 'Search' %}</legend> |
||||
|
|
||||
|
<ul> |
||||
|
<li> |
||||
|
{% include 'mod/search_form.html' %} |
||||
|
</li> |
||||
|
</ul> |
||||
|
</fieldset> |
||||
|
|
||||
|
<p style="text-align:center">Showing {{ result_count }} result{% if result_count != 1 %}s{% endif %}.</p> |
||||
|
|
||||
|
{% if search_type == 'IP_notes' %} |
||||
|
<table class="modlog"> |
||||
|
<tr> |
||||
|
<th>{% trans 'IP address' %}</th> |
||||
|
<th>{% trans 'Staff' %}</th> |
||||
|
<th>{% trans 'Note' %}</th> |
||||
|
<th>{% trans 'Date' %}</th> |
||||
|
</tr> |
||||
|
{% for note in results %} |
||||
|
<tr> |
||||
|
<td class="minimal"> |
||||
|
<a href="?/IP/{{ note.ip }}#notes">{{ note.ip }}</a> |
||||
|
</td> |
||||
|
<td class="minimal"> |
||||
|
{% if note.username %} |
||||
|
<a href="?/new_PM/{{ note.username|e }}">{{ note.username|e }}</a> |
||||
|
{% else %} |
||||
|
<em>{% trans 'deleted?' %}</em> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
<td> |
||||
|
{{ note.body }} |
||||
|
</td> |
||||
|
<td class="minimal"> |
||||
|
{{ note.time|date(config.post_date) }} |
||||
|
</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</table> |
||||
|
{% endif %} |
||||
|
|
||||
|
{% if search_type == 'bans' %} |
||||
|
<table class="modlog" style="width:100%"> |
||||
|
<tr> |
||||
|
<th>{% trans 'IP address/mask' %}</th> |
||||
|
<th>{% trans 'Reason' %}</th> |
||||
|
<th>{% trans 'Board' %}</th> |
||||
|
<th>{% trans 'Set' %}</th> |
||||
|
<th>{% trans 'Duration' %}</th> |
||||
|
<th>{% trans 'Expires' %}</th> |
||||
|
<th>{% trans 'Seen' %}</th> |
||||
|
<th>{% trans 'Staff' %}</th> |
||||
|
</tr> |
||||
|
{% for ban in results %} |
||||
|
<tr{% if ban.expires != 0 and ban.expires < time() %} style="text-decoration:line-through"{% endif %}> |
||||
|
<td style="white-space: nowrap"> |
||||
|
{% if ban.real_ip %} |
||||
|
<a href="?/IP/{{ ban.ip }}#bans">{{ ban.ip }}</a> |
||||
|
{% else %} |
||||
|
{{ ban.ip|e }} |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
<td> |
||||
|
{% if ban.reason %} |
||||
|
{{ ban.reason }} |
||||
|
{% else %} |
||||
|
- |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
<td style="white-space: nowrap"> |
||||
|
{% if ban.board %} |
||||
|
{{ config.board_abbreviation|sprintf(ban.board) }} |
||||
|
{% else %} |
||||
|
<em>{% trans 'all boards' %}</em> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
<td style="white-space: nowrap"> |
||||
|
<span title="{{ ban.set|date(config.post_date) }}"> |
||||
|
{{ ban.set|ago }} ago |
||||
|
</span> |
||||
|
</td> |
||||
|
<td style="white-space: nowrap"> |
||||
|
{% if ban.expires == 0 %} |
||||
|
- |
||||
|
{% else %} |
||||
|
{{ (ban.expires - ban.set + time()) | until }} |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
<td style="white-space: nowrap"> |
||||
|
{% if ban.expires == 0 %} |
||||
|
<em>{% trans 'never' %}</em> |
||||
|
{% else %} |
||||
|
{{ ban.expires|date(config.post_date) }} |
||||
|
{% if ban.expires > time() %} |
||||
|
<small>(in {{ ban.expires|until }})</small> |
||||
|
{% endif %} |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
<td> |
||||
|
{% if ban.seen %} |
||||
|
{% trans 'Yes' %} |
||||
|
{% else %} |
||||
|
{% trans 'No' %} |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
<td> |
||||
|
{% if ban.username %} |
||||
|
{% if mod|hasPermission(config.mod.view_banstaff) %} |
||||
|
<a href="?/new_PM/{{ ban.username|e }}">{{ ban.username|e }}</a> |
||||
|
{% else %} |
||||
|
{% if mod|hasPermission(config.mod.view_banquestionmark) %} |
||||
|
<em>?</em> |
||||
|
{% else %} |
||||
|
|
||||
|
{% endif %} |
||||
|
{% endif %} |
||||
|
{% elseif ban.mod == -1 %} |
||||
|
<em>system</em> |
||||
|
{% else %} |
||||
|
<em>{% trans 'deleted?' %}</em> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</table> |
||||
|
{% endif %} |
||||
|
|
||||
|
{% if search_type == 'log' %} |
||||
|
<table class="modlog"> |
||||
|
<tr> |
||||
|
<th>{% trans 'Staff' %}</th> |
||||
|
<th>{% trans 'IP address' %}</th> |
||||
|
<th>{% trans 'Time' %}</th> |
||||
|
<th>{% trans 'Board' %}</th> |
||||
|
<th>{% trans 'Action' %}</th> |
||||
|
</tr> |
||||
|
{% for log in results %} |
||||
|
<tr> |
||||
|
<td class="minimal"> |
||||
|
{% if log.username %} |
||||
|
<a href="?/log:{{ log.username|e }}">{{ log.username|e }}</a> |
||||
|
{% elseif log.mod == -1 %} |
||||
|
<em>system</em> |
||||
|
{% else %} |
||||
|
<em>{% trans 'deleted?' %}</em> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
<td class="minimal"> |
||||
|
<a href="?/IP/{{ log.ip }}">{{ log.ip }}</a> |
||||
|
</td> |
||||
|
<td class="minimal"> |
||||
|
<span title="{{ log.time|date(config.post_date) }}">{{ log.time|ago }}</span> |
||||
|
</td> |
||||
|
<td class="minimal"> |
||||
|
{% if log.board %} |
||||
|
<a href="?/{{ config.board_path|sprintf(log.board) }}{{ config.file_index }}">{{ config.board_abbreviation|sprintf(log.board) }}</a> |
||||
|
{% else %} |
||||
|
- |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
<td> |
||||
|
{{ log.text }} |
||||
|
</td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</table> |
||||
|
{% endif %} |
||||
|
|
||||
|
{% if result_count > results|count %} |
||||
|
<p class="unimportant" style="text-align:center;word-wrap:break-word"> |
||||
|
{% for i in range(0, (result_count - 1) / config.mod.search_page) %} |
||||
|
<a href="?/search/{{ search_type }}/{{ search_query_escaped }}/{{ i + 1 }}">[{{ i + 1 }}]</a> |
||||
|
{% endfor %} |
||||
|
</p> |
||||
|
{% endif %} |
Loading…
Reference in new issue