Browse Source
Conflicts: inc/config.php inc/display.php inc/functions.php inc/image.php js/expand.js js/hide-threads.js js/local-time.js js/smartphone-spoiler.js templates/header.html templates/index.html templates/main.js templates/page.html templates/post_reply.html templates/post_thread.html templates/thread.htmlpull/40/head
czaks
11 years ago
18 changed files with 668 additions and 623 deletions
@ -1,72 +1,72 @@ |
|||
<?php |
|||
|
|||
/* |
|||
* Copyright (c) 2010-2013 Tinyboard Development Group |
|||
*/ |
|||
|
|||
if (realpath($_SERVER['SCRIPT_FILENAME']) == str_replace('\\', '/', __FILE__)) { |
|||
// You cannot request this file directly. |
|||
exit; |
|||
} |
|||
|
|||
$twig = false; |
|||
|
|||
function load_twig() { |
|||
global $twig, $config; |
|||
|
|||
require 'lib/Twig/Autoloader.php'; |
|||
Twig_Autoloader::register(); |
|||
|
|||
Twig_Autoloader::autoload('Twig_Extensions_Node_Trans'); |
|||
Twig_Autoloader::autoload('Twig_Extensions_TokenParser_Trans'); |
|||
Twig_Autoloader::autoload('Twig_Extensions_Extension_I18n'); |
|||
Twig_Autoloader::autoload('Twig_Extensions_Extension_Tinyboard'); |
|||
|
|||
$loader = new Twig_Loader_Filesystem($config['dir']['template']); |
|||
$loader->setPaths($config['dir']['template']); |
|||
$twig = new Twig_Environment($loader, array( |
|||
'autoescape' => false, |
|||
'cache' => "{$config['dir']['template']}/cache", |
|||
'debug' => $config['debug'] |
|||
)); |
|||
$twig->addExtension(new Twig_Extensions_Extension_Tinyboard()); |
|||
$twig->addExtension(new Twig_Extensions_Extension_I18n()); |
|||
} |
|||
|
|||
function Element($templateFile, array $options) { |
|||
global $config, $debug, $twig; |
|||
|
|||
if (!$twig) |
|||
load_twig(); |
|||
|
|||
if (function_exists('create_pm_header') && ((isset($options['mod']) && $options['mod']) || isset($options['__mod'])) && !preg_match('!^mod/!', $templateFile)) { |
|||
$options['pm'] = create_pm_header(); |
|||
} |
|||
|
|||
if (isset($options['body']) && $config['debug']) { |
|||
if (isset($debug['start'])) { |
|||
$debug['time'] = '~' . round((microtime(true) - $debug['start']) * 1000, 2) . 'ms'; |
|||
unset($debug['start']); |
|||
} |
|||
$debug['included'] = get_included_files(); |
|||
$debug['memory'] = round(memory_get_usage(true) / (1024 * 1024), 2) . ' MiB'; |
|||
$options['body'] .= |
|||
'<h3>Debug</h3><pre style="white-space: pre-wrap;font-size: 10px;">' . |
|||
str_replace("\n", '<br/>', utf8tohtml(print_r($debug, true))) . |
|||
'</pre>'; |
|||
} |
|||
|
|||
// Read the template file |
|||
if (@file_get_contents("{$config['dir']['template']}/${templateFile}")) { |
|||
$body = $twig->render($templateFile, $options); |
|||
|
|||
if ($config['minify_html'] && preg_match('/\.html$/', $templateFile)) { |
|||
$body = trim(preg_replace("/[\t\r\n]/", '', $body)); |
|||
} |
|||
|
|||
return $body; |
|||
} else { |
|||
throw new Exception("Template file '${templateFile}' does not exist or is empty in '{$config['dir']['template']}'!"); |
|||
} |
|||
} |
|||
|
|||
<?php |
|||
|
|||
/* |
|||
* Copyright (c) 2010-2013 Tinyboard Development Group |
|||
*/ |
|||
|
|||
if (realpath($_SERVER['SCRIPT_FILENAME']) == str_replace('\\', '/', __FILE__)) { |
|||
// You cannot request this file directly. |
|||
exit; |
|||
} |
|||
|
|||
$twig = false; |
|||
|
|||
function load_twig() { |
|||
global $twig, $config; |
|||
|
|||
require 'lib/Twig/Autoloader.php'; |
|||
Twig_Autoloader::register(); |
|||
|
|||
Twig_Autoloader::autoload('Twig_Extensions_Node_Trans'); |
|||
Twig_Autoloader::autoload('Twig_Extensions_TokenParser_Trans'); |
|||
Twig_Autoloader::autoload('Twig_Extensions_Extension_I18n'); |
|||
Twig_Autoloader::autoload('Twig_Extensions_Extension_Tinyboard'); |
|||
|
|||
$loader = new Twig_Loader_Filesystem($config['dir']['template']); |
|||
$loader->setPaths($config['dir']['template']); |
|||
$twig = new Twig_Environment($loader, array( |
|||
'autoescape' => false, |
|||
'cache' => "{$config['dir']['template']}/cache", |
|||
'debug' => $config['debug'] |
|||
)); |
|||
$twig->addExtension(new Twig_Extensions_Extension_Tinyboard()); |
|||
$twig->addExtension(new Twig_Extensions_Extension_I18n()); |
|||
} |
|||
|
|||
function Element($templateFile, array $options) { |
|||
global $config, $debug, $twig; |
|||
|
|||
if (!$twig) |
|||
load_twig(); |
|||
|
|||
if (function_exists('create_pm_header') && ((isset($options['mod']) && $options['mod']) || isset($options['__mod'])) && !preg_match('!^mod/!', $templateFile)) { |
|||
$options['pm'] = create_pm_header(); |
|||
} |
|||
|
|||
if (isset($options['body']) && $config['debug']) { |
|||
if (isset($debug['start'])) { |
|||
$debug['time'] = '~' . round((microtime(true) - $debug['start']) * 1000, 2) . 'ms'; |
|||
unset($debug['start']); |
|||
} |
|||
$debug['included'] = get_included_files(); |
|||
$debug['memory'] = round(memory_get_usage(true) / (1024 * 1024), 2) . ' MiB'; |
|||
$options['body'] .= |
|||
'<h3>Debug</h3><pre style="white-space: pre-wrap;font-size: 10px;">' . |
|||
str_replace("\n", '<br/>', utf8tohtml(print_r($debug, true))) . |
|||
'</pre>'; |
|||
} |
|||
|
|||
// Read the template file |
|||
if (@file_get_contents("{$config['dir']['template']}/${templateFile}")) { |
|||
$body = $twig->render($templateFile, $options); |
|||
|
|||
if ($config['minify_html'] && preg_match('/\.html$/', $templateFile)) { |
|||
$body = trim(preg_replace("/[\t\r\n]/", '', $body)); |
|||
} |
|||
|
|||
return $body; |
|||
} else { |
|||
throw new Exception("Template file '${templateFile}' does not exist or is empty in '{$config['dir']['template']}'!"); |
|||
} |
|||
} |
|||
|
|||
|
@ -1,61 +1,61 @@ |
|||
<!doctype html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
|
|||
<script type="text/javascript"> |
|||
{% if config.quick_reply %} |
|||
var new_reply_string = "{{ config.button_reply }}"; |
|||
{% endif %} |
|||
{% if not no_post_form %} |
|||
var active_page = "index"; |
|||
{% else %} |
|||
var active_page = "ukko"; |
|||
{% endif %} |
|||
</script> |
|||
|
|||
{% include 'header.html' %} |
|||
<title>{{ board.url }} - {{ board.title|e }}</title> |
|||
</head> |
|||
<body> |
|||
{{ boardlist.top }} |
|||
{% if pm %}<div class="top_notice">You have <a href="?/PM/{{ pm.id }}">an unread PM</a>{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.</div><hr />{% endif %} |
|||
{% if config.url_banner %}<img class="banner" src="{{ config.url_banner }}" {% if config.banner_width or config.banner_height %}style="{% if config.banner_width %}width:{{ config.banner_width }}px{% endif %};{% if config.banner_width %}height:{{ config.banner_height }}px{% endif %}" {% endif %}alt="" />{% endif %} |
|||
<header> |
|||
<h1>{{ board.url }} - {{ board.title|e }}</h1> |
|||
<div class="subtitle"> |
|||
{% if board.subtitle %} |
|||
{{ board.subtitle|e }} |
|||
{% endif %} |
|||
{% if mod %}<p><a href="?/">{% trans %}Return to dashboard{% endtrans %}</a></p>{% endif %} |
|||
</div> |
|||
</header> |
|||
|
|||
{% include 'attention_bar.html' %} |
|||
{% if not no_post_form %} |
|||
{% include 'post_form.html' %} |
|||
{% else %} |
|||
{% include 'boardlist.html' %} |
|||
{% endif %} |
|||
|
|||
{% if config.blotter %}<hr /><div class="blotter">{{ config.blotter }}</div>{% endif %} |
|||
<hr /> |
|||
<form name="postcontrols" action="{{ config.post_url }}" method="post"> |
|||
<input type="hidden" name="board" value="{{ board.uri }}" /> |
|||
{% if mod %}<input type="hidden" name="mod" value="1" />{% endif %} |
|||
{{ body }} |
|||
{% include 'report_delete.html' %} |
|||
</form> |
|||
<div class="pages">{{ btn.prev }} {% for page in pages %} |
|||
[<a {% if page.selected %}class="selected"{% endif %}{% if not page.selected %}href="{{ page.link }}"{% endif %}>{{ page.num }}</a>]{% if loop.last %} {% endif %} |
|||
{% endfor %} {{ btn.next }}</div> |
|||
{{ boardlist.bottom }} |
|||
<footer> |
|||
<p class="unimportant" style="margin-top:20px;text-align:center;">Powered by <a href="http://tinyboard.org/">Tinyboard</a> {{ config.version }} | <a href="http://tinyboard.org/">Tinyboard</a> Copyright © 2010-2013 Tinyboard Development Group</p> |
|||
{% for footer in config.footer %}<p class="unimportant" style="text-align:center;">{{ footer }}</p>{% endfor %} |
|||
</footer> |
|||
<script type="text/javascript">{% raw %} |
|||
ready(); |
|||
{% endraw %}</script> |
|||
</body> |
|||
</html> |
|||
<!doctype html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
|
|||
<script type="text/javascript"> |
|||
{% if config.quick_reply %} |
|||
var new_reply_string = "{{ config.button_reply }}"; |
|||
{% endif %} |
|||
{% if not no_post_form %} |
|||
var active_page = "index"; |
|||
{% else %} |
|||
var active_page = "ukko"; |
|||
{% endif %} |
|||
</script> |
|||
|
|||
{% include 'header.html' %} |
|||
<title>{{ board.url }} - {{ board.title|e }}</title> |
|||
</head> |
|||
<body> |
|||
{{ boardlist.top }} |
|||
{% if pm %}<div class="top_notice">You have <a href="?/PM/{{ pm.id }}">an unread PM</a>{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.</div><hr />{% endif %} |
|||
{% if config.url_banner %}<img class="banner" src="{{ config.url_banner }}" {% if config.banner_width or config.banner_height %}style="{% if config.banner_width %}width:{{ config.banner_width }}px{% endif %};{% if config.banner_width %}height:{{ config.banner_height }}px{% endif %}" {% endif %}alt="" />{% endif %} |
|||
<header> |
|||
<h1>{{ board.url }} - {{ board.title|e }}</h1> |
|||
<div class="subtitle"> |
|||
{% if board.subtitle %} |
|||
{{ board.subtitle|e }} |
|||
{% endif %} |
|||
{% if mod %}<p><a href="?/">{% trans %}Return to dashboard{% endtrans %}</a></p>{% endif %} |
|||
</div> |
|||
</header> |
|||
|
|||
{% include 'attention_bar.html' %} |
|||
{% if not no_post_form %} |
|||
{% include 'post_form.html' %} |
|||
{% else %} |
|||
{% include 'boardlist.html' %} |
|||
{% endif %} |
|||
|
|||
{% if config.blotter %}<hr /><div class="blotter">{{ config.blotter }}</div>{% endif %} |
|||
<hr /> |
|||
<form name="postcontrols" action="{{ config.post_url }}" method="post"> |
|||
<input type="hidden" name="board" value="{{ board.uri }}" /> |
|||
{% if mod %}<input type="hidden" name="mod" value="1" />{% endif %} |
|||
{{ body }} |
|||
{% include 'report_delete.html' %} |
|||
</form> |
|||
<div class="pages">{{ btn.prev }} {% for page in pages %} |
|||
[<a {% if page.selected %}class="selected"{% endif %}{% if not page.selected %}href="{{ page.link }}"{% endif %}>{{ page.num }}</a>]{% if loop.last %} {% endif %} |
|||
{% endfor %} {{ btn.next }}</div> |
|||
{{ boardlist.bottom }} |
|||
<footer> |
|||
<p class="unimportant" style="margin-top:20px;text-align:center;">Powered by <a href="http://tinyboard.org/">Tinyboard</a> {{ config.version }} | <a href="http://tinyboard.org/">Tinyboard</a> Copyright © 2010-2013 Tinyboard Development Group</p> |
|||
{% for footer in config.footer %}<p class="unimportant" style="text-align:center;">{{ footer }}</p>{% endfor %} |
|||
</footer> |
|||
<script type="text/javascript">{% raw %} |
|||
ready(); |
|||
{% endraw %}</script> |
|||
</body> |
|||
</html> |
|||
|
@ -1,26 +1,26 @@ |
|||
{% if error %}<h2 style="text-align:center">{{ error }}</h2>{% endif %} |
|||
<form action="" method="post"> |
|||
<table style="margin-top:25px;"> |
|||
<tr> |
|||
<th> |
|||
{% trans 'Username' %} |
|||
</th> |
|||
<td> |
|||
<input type="text" name="username" size="20" maxlength="30" value="{{ username|e }}"> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<th> |
|||
{% trans 'Password' %} |
|||
</th> |
|||
<td> |
|||
<input type="password" name="password" size="20" maxlength="30" value=""> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td></td> |
|||
<td> |
|||
<input type="submit" name="login" value="{% trans %}Continue{% endtrans %}" /> |
|||
</td> |
|||
</table> |
|||
</form> |
|||
{% if error %}<h2 style="text-align:center">{{ error }}</h2>{% endif %} |
|||
<form action="" method="post"> |
|||
<table style="margin-top:25px;"> |
|||
<tr> |
|||
<th> |
|||
{% trans 'Username' %} |
|||
</th> |
|||
<td> |
|||
<input type="text" name="username" size="20" maxlength="30" value="{{ username|e }}"> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<th> |
|||
{% trans 'Password' %} |
|||
</th> |
|||
<td> |
|||
<input type="password" name="password" size="20" maxlength="30" value=""> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td></td> |
|||
<td> |
|||
<input type="submit" name="login" value="{% trans %}Continue{% endtrans %}" /> |
|||
</td> |
|||
</table> |
|||
</form> |
|||
|
@ -1,25 +1,25 @@ |
|||
<!doctype html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
{% include 'header.html' %} |
|||
<title>{{ title }}</title> |
|||
</head> |
|||
<body> |
|||
{% if pm %}<div class="top_notice">You have <a href="?/PM/{{ pm.id }}">an unread PM</a>{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.</div><hr>{% endif %} |
|||
<header> |
|||
<h1>{{ title }}</h1> |
|||
<div class="subtitle"> |
|||
{% if subtitle %} |
|||
{{ subtitle }} |
|||
{% endif %} |
|||
{% if mod and not hide_dashboard_link %}<p><a href="?/">{% trans %}Return to dashboard{% endtrans %}</a></p>{% endif %} |
|||
</div> |
|||
</header> |
|||
{{ body }} |
|||
<hr> |
|||
<footer> |
|||
<p class="unimportant" style="margin-top:20px;text-align:center;">Powered by <a href="http://tinyboard.org/">Tinyboard</a> {{ config.version }} | <a href="http://tinyboard.org/">Tinyboard</a> Copyright © 2010-2013 Tinyboard Development Group</p> |
|||
</footer> |
|||
</body> |
|||
</html> |
|||
<!doctype html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
{% include 'header.html' %} |
|||
<title>{{ title }}</title> |
|||
</head> |
|||
<body> |
|||
{% if pm %}<div class="top_notice">You have <a href="?/PM/{{ pm.id }}">an unread PM</a>{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.</div><hr>{% endif %} |
|||
<header> |
|||
<h1>{{ title }}</h1> |
|||
<div class="subtitle"> |
|||
{% if subtitle %} |
|||
{{ subtitle }} |
|||
{% endif %} |
|||
{% if mod and not hide_dashboard_link %}<p><a href="?/">{% trans %}Return to dashboard{% endtrans %}</a></p>{% endif %} |
|||
</div> |
|||
</header> |
|||
{{ body }} |
|||
<hr> |
|||
<footer> |
|||
<p class="unimportant" style="margin-top:20px;text-align:center;">Powered by <a href="http://tinyboard.org/">Tinyboard</a> {{ config.version }} | <a href="http://tinyboard.org/">Tinyboard</a> Copyright © 2010-2013 Tinyboard Development Group</p> |
|||
</footer> |
|||
</body> |
|||
</html> |
|||
|
@ -1,111 +1,111 @@ |
|||
{% filter remove_whitespace %} |
|||
{# tabs and new lines will be ignored #} |
|||
<div class="post reply" id="reply_{{ post.id }}"> |
|||
|
|||
<p class="intro"{% if not index %} id="{{ post.id }}"{% endif %}> |
|||
<input type="checkbox" class="delete" name="delete_{{ post.id }}" id="delete_{{ post.id }}" /> |
|||
<label for="delete_{{ post.id }}"> |
|||
{% if post.subject|length > 0 %} |
|||
{# show subject #} |
|||
<span class="subject">{{ post.subject|bidi_cleanup }}</span> |
|||
{% endif %} |
|||
{% if post.email|length > 0 %} |
|||
{# start email #} |
|||
<a class="email" href="mailto:{{ post.email }}"> |
|||
{% endif %} |
|||
{% set capcode = post.capcode|capcode %} |
|||
<span {% if capcode.name %}style="{{ capcode.name }}" {% endif %}class="name">{{ post.name|bidi_cleanup }}</span> |
|||
{% if post.trip|length > 0 %} |
|||
<span {% if capcode.trip %}style="{{ capcode.trip }}" {% endif %}class="trip">{{ post.trip }}</span> |
|||
{% endif %} |
|||
{% if post.email|length > 0 %} |
|||
{# end email #} |
|||
</a> |
|||
{% endif %} |
|||
{% if capcode %} |
|||
{{ capcode.cap }} |
|||
{% endif %} |
|||
{% if post.mod and post.mod|hasPermission(config.mod.show_ip, board.uri) %} |
|||
[<a style="margin:0;" href="?/IP/{{ post.ip }}">{{ post.ip }}</a>] |
|||
{% endif %} |
|||
<time datetime="{{ post.time|date('%Y-%m-%dT%H:%M:%S') }}{{ timezone() }}">{{ post.time|date(config.post_date) }}</time> |
|||
</label> |
|||
{% if config.poster_ids %} |
|||
ID: {{ post.ip|poster_id(post.thread) }} |
|||
{% endif %} |
|||
<a class="post_no" {% if not index %}onclick="highlightReply({{ post.id }})" {% endif %}href="{{ post.link }}">No.</a> |
|||
<a class="post_no" |
|||
{% if not index %} |
|||
onclick="citeReply({{ post.id }});" |
|||
{% endif %} |
|||
href="{% if index %} |
|||
{{ post.link('q') }} |
|||
{% else %} |
|||
javascript:void(0); |
|||
{% endif %}"> |
|||
{{ post.id }} |
|||
</a> |
|||
</p> |
|||
{% if post.embed %} |
|||
{{ post.embed }} |
|||
{% elseif post.file == 'deleted' %} |
|||
<img src="{{ config.image_deleted }}" alt="" /> |
|||
{% elseif post.file and post.file %} |
|||
<p class="fileinfo">File: <a href="{{ config.uri_img }}{{ post.file }}">{{ post.file }}</a> <span class="unimportant"> |
|||
( |
|||
{% if post.thumb == 'spoiler' %} |
|||
Spoiler Image, |
|||
{% endif %} |
|||
{{ post.filesize|filesize }} |
|||
{% if post.filex and post.filey %} |
|||
, {{ post.filex}}x{{ post.filey }} |
|||
{% if config.show_ratio %} |
|||
, {{ post.ratio }} |
|||
{% endif %} |
|||
{% endif %} |
|||
{% if config.show_filename and post.filename %} |
|||
, |
|||
{% if post.filename|length > config.max_filename_display %} |
|||
<span class="postfilename" title="{{ post.filename|bidi_cleanup }}">{{ post.filename|truncate(config.max_filename_display)|bidi_cleanup }}</span> |
|||
{% else %} |
|||
<span class="postfilename">{{ post.filename|bidi_cleanup }}</span> |
|||
{% endif %} |
|||
{% endif %} |
|||
{% if post.thumb != 'file' and config.image_identification %} |
|||
, |
|||
<span class='image_id'> |
|||
<a href="http://imgops.com/{{ config.domain }}{{ config.uri_img }}{{ post.file }}">io</a> |
|||
{% if post.file|extension == 'jpg' %} |
|||
<a href="http://regex.info/exif.cgi?url={{ config.domain }}{{ config.uri_img }}{{ post.file }}">e</a> |
|||
{% endif %} |
|||
<a href="http://www.google.com/searchbyimage?image_url={{ config.domain }}{{ config.uri_img }}{{ post.file }}">g</a> |
|||
<a href="http://www.tineye.com/search?url={{ config.domain }}{{ config.uri_img }}{{ post.file }}">t</a> |
|||
</span> |
|||
{% endif %} |
|||
|
|||
) |
|||
</span> |
|||
</p> |
|||
<a href="{{ config.uri_img }}{{ post.file }}" target="_blank"{% if post.thumb == 'file' %} class="file"{% endif %}> |
|||
<img src=" |
|||
{% if post.thumb == 'file' %} |
|||
{{ config.root }} |
|||
{% if config.file_icons[post.filename|extension] %} |
|||
{{ config.file_thumb|sprintf(config.file_icons[post.filename|extension]) }} |
|||
{% else %} |
|||
{{ config.file_thumb|sprintf(config.file_icons.default) }} |
|||
{% endif %} |
|||
{% elseif post.thumb == 'spoiler' %} |
|||
{{ config.root }}{{ config.spoiler_image }} |
|||
{% else %} |
|||
{{ config.uri_thumb }}{{ post.thumb }} |
|||
{% endif %}" style="width:{{ post.thumbx }}px;height:{{ post.thumby }}px" alt="" /> |
|||
</a> |
|||
{% endif %} |
|||
{{ post.postControls }} |
|||
<div class="body"> |
|||
{% endfilter %}{% if index %}{{ post.body|truncate_body(post.link) }}{% else %}{{ post.body }}{% endif %}{% filter remove_whitespace %} |
|||
</div> |
|||
</div> |
|||
<br/> |
|||
{% endfilter %} |
|||
{% filter remove_whitespace %} |
|||
{# tabs and new lines will be ignored #} |
|||
<div class="post reply" id="reply_{{ post.id }}"> |
|||
|
|||
<p class="intro"{% if not index %} id="{{ post.id }}"{% endif %}> |
|||
<input type="checkbox" class="delete" name="delete_{{ post.id }}" id="delete_{{ post.id }}" /> |
|||
<label for="delete_{{ post.id }}"> |
|||
{% if post.subject|length > 0 %} |
|||
{# show subject #} |
|||
<span class="subject">{{ post.subject|bidi_cleanup }}</span> |
|||
{% endif %} |
|||
{% if post.email|length > 0 %} |
|||
{# start email #} |
|||
<a class="email" href="mailto:{{ post.email }}"> |
|||
{% endif %} |
|||
{% set capcode = post.capcode|capcode %} |
|||
<span {% if capcode.name %}style="{{ capcode.name }}" {% endif %}class="name">{{ post.name|bidi_cleanup }}</span> |
|||
{% if post.trip|length > 0 %} |
|||
<span {% if capcode.trip %}style="{{ capcode.trip }}" {% endif %}class="trip">{{ post.trip }}</span> |
|||
{% endif %} |
|||
{% if post.email|length > 0 %} |
|||
{# end email #} |
|||
</a> |
|||
{% endif %} |
|||
{% if capcode %} |
|||
{{ capcode.cap }} |
|||
{% endif %} |
|||
{% if post.mod and post.mod|hasPermission(config.mod.show_ip, board.uri) %} |
|||
[<a style="margin:0;" href="?/IP/{{ post.ip }}">{{ post.ip }}</a>] |
|||
{% endif %} |
|||
<time datetime="{{ post.time|date('%Y-%m-%dT%H:%M:%S') }}{{ timezone() }}">{{ post.time|date(config.post_date) }}</time> |
|||
</label> |
|||
{% if config.poster_ids %} |
|||
ID: {{ post.ip|poster_id(post.thread) }} |
|||
{% endif %} |
|||
<a class="post_no" {% if not index %}onclick="highlightReply({{ post.id }})" {% endif %}href="{{ post.link }}">No.</a> |
|||
<a class="post_no" |
|||
{% if not index %} |
|||
onclick="citeReply({{ post.id }});" |
|||
{% endif %} |
|||
href="{% if index %} |
|||
{{ post.link('q') }} |
|||
{% else %} |
|||
javascript:void(0); |
|||
{% endif %}"> |
|||
{{ post.id }} |
|||
</a> |
|||
</p> |
|||
{% if post.embed %} |
|||
{{ post.embed }} |
|||
{% elseif post.file == 'deleted' %} |
|||
<img src="{{ config.image_deleted }}" alt="" /> |
|||
{% elseif post.file and post.file %} |
|||
<p class="fileinfo">File: <a href="{{ config.uri_img }}{{ post.file }}">{{ post.file }}</a> <span class="unimportant"> |
|||
( |
|||
{% if post.thumb == 'spoiler' %} |
|||
Spoiler Image, |
|||
{% endif %} |
|||
{{ post.filesize|filesize }} |
|||
{% if post.filex and post.filey %} |
|||
, {{ post.filex}}x{{ post.filey }} |
|||
{% if config.show_ratio %} |
|||
, {{ post.ratio }} |
|||
{% endif %} |
|||
{% endif %} |
|||
{% if config.show_filename and post.filename %} |
|||
, |
|||
{% if post.filename|length > config.max_filename_display %} |
|||
<span class="postfilename" title="{{ post.filename|bidi_cleanup }}">{{ post.filename|truncate(config.max_filename_display)|bidi_cleanup }}</span> |
|||
{% else %} |
|||
<span class="postfilename">{{ post.filename|bidi_cleanup }}</span> |
|||
{% endif %} |
|||
{% endif %} |
|||
{% if post.thumb != 'file' and config.image_identification %} |
|||
, |
|||
<span class='image_id'> |
|||
<a href="http://imgops.com/{{ config.domain }}{{ config.uri_img }}{{ post.file }}">io</a> |
|||
{% if post.file|extension == 'jpg' %} |
|||
<a href="http://regex.info/exif.cgi?url={{ config.domain }}{{ config.uri_img }}{{ post.file }}">e</a> |
|||
{% endif %} |
|||
<a href="http://www.google.com/searchbyimage?image_url={{ config.domain }}{{ config.uri_img }}{{ post.file }}">g</a> |
|||
<a href="http://www.tineye.com/search?url={{ config.domain }}{{ config.uri_img }}{{ post.file }}">t</a> |
|||
</span> |
|||
{% endif %} |
|||
|
|||
) |
|||
</span> |
|||
</p> |
|||
<a href="{{ config.uri_img }}{{ post.file }}" target="_blank"{% if post.thumb == 'file' %} class="file"{% endif %}> |
|||
<img src=" |
|||
{% if post.thumb == 'file' %} |
|||
{{ config.root }} |
|||
{% if config.file_icons[post.filename|extension] %} |
|||
{{ config.file_thumb|sprintf(config.file_icons[post.filename|extension]) }} |
|||
{% else %} |
|||
{{ config.file_thumb|sprintf(config.file_icons.default) }} |
|||
{% endif %} |
|||
{% elseif post.thumb == 'spoiler' %} |
|||
{{ config.root }}{{ config.spoiler_image }} |
|||
{% else %} |
|||
{{ config.uri_thumb }}{{ post.thumb }} |
|||
{% endif %}" style="width:{{ post.thumbx }}px;height:{{ post.thumby }}px" alt="" /> |
|||
</a> |
|||
{% endif %} |
|||
{{ post.postControls }} |
|||
<div class="body"> |
|||
{% endfilter %}{% if index %}{{ post.body|truncate_body(post.link) }}{% else %}{{ post.body }}{% endif %}{% filter remove_whitespace %} |
|||
</div> |
|||
</div> |
|||
<br/> |
|||
{% endfilter %} |
|||
|
@ -1,51 +1,51 @@ |
|||
<!doctype html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
|
|||
<script type="text/javascript"> |
|||
var active_page = "thread"; |
|||
</script> |
|||
|
|||
{% include 'header.html' %} |
|||
<title>{{ board.url }} - {% if config.thread_subject_in_title and thread.subject %}{{ thread.subject }}{% else %}{{ board.title|e }}{% endif %}</title> |
|||
</head> |
|||
<body> |
|||
{{ boardlist.top }} |
|||
{% if pm %}<div class="top_notice">You have <a href="?/PM/{{ pm.id }}">an unread PM</a>{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.</div><hr />{% endif %} |
|||
{% if config.url_banner %}<img class="banner" src="{{ config.url_banner }}" {% if config.banner_width or config.banner_height %}style="{% if config.banner_width %}width:{{ config.banner_width }}px{% endif %};{% if config.banner_width %}height:{{ config.banner_height }}px{% endif %}" {% endif %}alt="" />{% endif %} |
|||
<header> |
|||
<h1>{{ board.url }} - {{ board.title|e }}</h1> |
|||
<div class="subtitle"> |
|||
{% if board.subtitle %} |
|||
{{ board.subtitle|e }} |
|||
{% endif %} |
|||
{% if mod %}<p><a href="?/">{% trans %}Return to dashboard{% endtrans %}</a></p>{% endif %} |
|||
</div> |
|||
</header> |
|||
|
|||
<div class="banner">{% trans %}Posting mode: Reply{% endtrans %} <a class="unimportant" href="{{ return }}">[{% trans %}Return{% endtrans %}]</a></div> |
|||
|
|||
{% include 'attention_bar.html' %} |
|||
{% include 'post_form.html' %} |
|||
|
|||
{% if config.blotter %}<hr /><div class="blotter">{{ config.blotter }}</div>{% endif %} |
|||
<hr /> |
|||
<form name="postcontrols" action="{{ config.post_url }}" method="post"> |
|||
<input type="hidden" name="board" value="{{ board.uri }}" /> |
|||
{% if mod %}<input type="hidden" name="mod" value="1" />{% endif %} |
|||
{{ body }} |
|||
{% include 'report_delete.html' %} |
|||
</form> |
|||
<a href="{{ return }}">[{% trans %}Return{% endtrans %}]</a> |
|||
|
|||
{{ boardlist.bottom }} |
|||
<footer> |
|||
<p class="unimportant" style="margin-top:20px;text-align:center;">Powered by <a href="http://tinyboard.org/">Tinyboard</a> {{ config.version }} | <a href="http://tinyboard.org/">Tinyboard</a> Copyright © 2010-2013 Tinyboard Development Group</p> |
|||
{% for footer in config.footer %}<p class="unimportant" style="text-align:center;">{{ footer }}</p>{% endfor %} |
|||
</footer> |
|||
<script type="text/javascript">{% raw %} |
|||
ready(); |
|||
{% endraw %}</script> |
|||
</body> |
|||
</html> |
|||
<!doctype html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
|
|||
<script type="text/javascript"> |
|||
var active_page = "thread"; |
|||
</script> |
|||
|
|||
{% include 'header.html' %} |
|||
<title>{{ board.url }} - {% if config.thread_subject_in_title and thread.subject %}{{ thread.subject }}{% else %}{{ board.title|e }}{% endif %}</title> |
|||
</head> |
|||
<body> |
|||
{{ boardlist.top }} |
|||
{% if pm %}<div class="top_notice">You have <a href="?/PM/{{ pm.id }}">an unread PM</a>{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.</div><hr />{% endif %} |
|||
{% if config.url_banner %}<img class="banner" src="{{ config.url_banner }}" {% if config.banner_width or config.banner_height %}style="{% if config.banner_width %}width:{{ config.banner_width }}px{% endif %};{% if config.banner_width %}height:{{ config.banner_height }}px{% endif %}" {% endif %}alt="" />{% endif %} |
|||
<header> |
|||
<h1>{{ board.url }} - {{ board.title|e }}</h1> |
|||
<div class="subtitle"> |
|||
{% if board.subtitle %} |
|||
{{ board.subtitle|e }} |
|||
{% endif %} |
|||
{% if mod %}<p><a href="?/">{% trans %}Return to dashboard{% endtrans %}</a></p>{% endif %} |
|||
</div> |
|||
</header> |
|||
|
|||
<div class="banner">{% trans %}Posting mode: Reply{% endtrans %} <a class="unimportant" href="{{ return }}">[{% trans %}Return{% endtrans %}]</a></div> |
|||
|
|||
{% include 'attention_bar.html' %} |
|||
{% include 'post_form.html' %} |
|||
|
|||
{% if config.blotter %}<hr /><div class="blotter">{{ config.blotter }}</div>{% endif %} |
|||
<hr /> |
|||
<form name="postcontrols" action="{{ config.post_url }}" method="post"> |
|||
<input type="hidden" name="board" value="{{ board.uri }}" /> |
|||
{% if mod %}<input type="hidden" name="mod" value="1" />{% endif %} |
|||
{{ body }} |
|||
{% include 'report_delete.html' %} |
|||
</form> |
|||
<a href="{{ return }}">[{% trans %}Return{% endtrans %}]</a> |
|||
|
|||
{{ boardlist.bottom }} |
|||
<footer> |
|||
<p class="unimportant" style="margin-top:20px;text-align:center;">Powered by <a href="http://tinyboard.org/">Tinyboard</a> {{ config.version }} | <a href="http://tinyboard.org/">Tinyboard</a> Copyright © 2010-2013 Tinyboard Development Group</p> |
|||
{% for footer in config.footer %}<p class="unimportant" style="text-align:center;">{{ footer }}</p>{% endfor %} |
|||
</footer> |
|||
<script type="text/javascript">{% raw %} |
|||
ready(); |
|||
{% endraw %}</script> |
|||
</body> |
|||
</html> |
|||
|
Loading…
Reference in new issue