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