mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-11-13 18:40:49 +01:00
Convert to UNIX line endings
This commit is contained in:
parent
61a305a1a2
commit
123a72d7de
144
inc/template.php
144
inc/template.php
@ -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,38 +1,38 @@
|
|||||||
{% raw %}
|
{% raw %}
|
||||||
|
|
||||||
/* gettext-compatible _ function, example of usage:
|
/* gettext-compatible _ function, example of usage:
|
||||||
*
|
*
|
||||||
* > // Loading pl_PL.json here (containing polish translation strings generated by tools/i18n_compile.php)
|
* > // Loading pl_PL.json here (containing polish translation strings generated by tools/i18n_compile.php)
|
||||||
* > alert(_("Hello!"));
|
* > alert(_("Hello!"));
|
||||||
* Witaj!
|
* Witaj!
|
||||||
*/
|
*/
|
||||||
function _(s) {
|
function _(s) {
|
||||||
return (typeof l10n != 'undefined' && typeof l10n[s] != 'undefined') ? l10n[s] : s;
|
return (typeof l10n != 'undefined' && typeof l10n[s] != 'undefined') ? l10n[s] : s;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* printf-like formatting function, example of usage:
|
/* printf-like formatting function, example of usage:
|
||||||
*
|
*
|
||||||
* > alert(fmt("There are {0} birds on {1} trees", [3,4]));
|
* > alert(fmt("There are {0} birds on {1} trees", [3,4]));
|
||||||
* There are 3 birds on 4 trees
|
* There are 3 birds on 4 trees
|
||||||
* > // Loading pl_PL.json here (containing polish translation strings generated by tools/locale_compile.php)
|
* > // Loading pl_PL.json here (containing polish translation strings generated by tools/locale_compile.php)
|
||||||
* > alert(fmt(_("{0} users"), [3]));
|
* > alert(fmt(_("{0} users"), [3]));
|
||||||
* 3 uzytkownikow
|
* 3 uzytkownikow
|
||||||
*/
|
*/
|
||||||
function fmt(s,a) {
|
function fmt(s,a) {
|
||||||
return s.replace(/\{([0-9]+)\}/g, function(x) { return a[x[1]]; });
|
return s.replace(/\{([0-9]+)\}/g, function(x) { return a[x[1]]; });
|
||||||
}
|
}
|
||||||
|
|
||||||
var saved = {};
|
var saved = {};
|
||||||
|
|
||||||
|
|
||||||
var selectedstyle = '{% endraw %}{{ config.default_stylesheet.0|addslashes }}{% raw %}';
|
var selectedstyle = '{% endraw %}{{ config.default_stylesheet.0|addslashes }}{% raw %}';
|
||||||
var styles = {
|
var styles = {
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
{% for stylesheet in stylesheets %}{% raw %}'{% endraw %}{{ stylesheet.name|addslashes }}{% raw %}' : '{% endraw %}{{ stylesheet.uri|addslashes }}{% raw %}',
|
{% for stylesheet in stylesheets %}{% raw %}'{% endraw %}{{ stylesheet.name|addslashes }}{% raw %}' : '{% endraw %}{{ stylesheet.uri|addslashes }}{% raw %}',
|
||||||
{% endraw %}{% endfor %}{% raw %}
|
{% endraw %}{% endfor %}{% raw %}
|
||||||
};
|
};
|
||||||
var board_name = false;
|
var board_name = false;
|
||||||
|
|
||||||
function changeStyle(styleName, link) {
|
function changeStyle(styleName, link) {
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
{% if config.stylesheets_board %}{% raw %}
|
{% if config.stylesheets_board %}{% raw %}
|
||||||
@ -43,31 +43,31 @@ function changeStyle(styleName, link) {
|
|||||||
{% endraw %}{% else %}
|
{% endraw %}{% else %}
|
||||||
localStorage.stylesheet = styleName;
|
localStorage.stylesheet = styleName;
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% raw %}
|
{% raw %}
|
||||||
|
|
||||||
if (!document.getElementById('stylesheet')) {
|
if (!document.getElementById('stylesheet')) {
|
||||||
var s = document.createElement('link');
|
var s = document.createElement('link');
|
||||||
s.rel = 'stylesheet';
|
s.rel = 'stylesheet';
|
||||||
s.type = 'text/css';
|
s.type = 'text/css';
|
||||||
s.id = 'stylesheet';
|
s.id = 'stylesheet';
|
||||||
var x = document.getElementsByTagName('head')[0];
|
var x = document.getElementsByTagName('head')[0];
|
||||||
x.appendChild(s);
|
x.appendChild(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('stylesheet').href = styles[styleName];
|
document.getElementById('stylesheet').href = styles[styleName];
|
||||||
selectedstyle = styleName;
|
selectedstyle = styleName;
|
||||||
|
|
||||||
if (document.getElementsByClassName('styles').length != 0) {
|
if (document.getElementsByClassName('styles').length != 0) {
|
||||||
var styleLinks = document.getElementsByClassName('styles')[0].childNodes;
|
var styleLinks = document.getElementsByClassName('styles')[0].childNodes;
|
||||||
for (var i = 0; i < styleLinks.length; i++) {
|
for (var i = 0; i < styleLinks.length; i++) {
|
||||||
styleLinks[i].className = '';
|
styleLinks[i].className = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (link) {
|
if (link) {
|
||||||
link.className = 'selected';
|
link.className = 'selected';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
@ -95,177 +95,177 @@ function changeStyle(styleName, link) {
|
|||||||
{% endraw%}
|
{% endraw%}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% raw %}
|
{% raw %}
|
||||||
if (localStorage.stylesheet) {
|
if (localStorage.stylesheet) {
|
||||||
for (var styleName in styles) {
|
for (var styleName in styles) {
|
||||||
if (styleName == localStorage.stylesheet) {
|
if (styleName == localStorage.stylesheet) {
|
||||||
changeStyle(styleName);
|
changeStyle(styleName);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% raw %}
|
{% raw %}
|
||||||
|
|
||||||
function init_stylechooser() {
|
function init_stylechooser() {
|
||||||
var newElement = document.createElement('div');
|
var newElement = document.createElement('div');
|
||||||
newElement.className = 'styles';
|
newElement.className = 'styles';
|
||||||
|
|
||||||
for (styleName in styles) {
|
for (styleName in styles) {
|
||||||
var style = document.createElement('a');
|
var style = document.createElement('a');
|
||||||
style.innerHTML = '[' + styleName + ']';
|
style.innerHTML = '[' + styleName + ']';
|
||||||
style.onclick = function() {
|
style.onclick = function() {
|
||||||
changeStyle(this.innerHTML.substring(1, this.innerHTML.length - 1), this);
|
changeStyle(this.innerHTML.substring(1, this.innerHTML.length - 1), this);
|
||||||
};
|
};
|
||||||
if (styleName == selectedstyle) {
|
if (styleName == selectedstyle) {
|
||||||
style.className = 'selected';
|
style.className = 'selected';
|
||||||
}
|
}
|
||||||
style.href = 'javascript:void(0);';
|
style.href = 'javascript:void(0);';
|
||||||
newElement.appendChild(style);
|
newElement.appendChild(style);
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild.nextSibling);
|
document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild.nextSibling);
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_cookie(cookie_name) {
|
function get_cookie(cookie_name) {
|
||||||
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)');
|
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)');
|
||||||
if (results)
|
if (results)
|
||||||
return (unescape(results[2]));
|
return (unescape(results[2]));
|
||||||
else
|
else
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function highlightReply(id) {
|
function highlightReply(id) {
|
||||||
if (typeof window.event != "undefined" && event.which == 2) {
|
if (typeof window.event != "undefined" && event.which == 2) {
|
||||||
// don't highlight on middle click
|
// don't highlight on middle click
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var divs = document.getElementsByTagName('div');
|
var divs = document.getElementsByTagName('div');
|
||||||
for (var i = 0; i < divs.length; i++)
|
for (var i = 0; i < divs.length; i++)
|
||||||
{
|
{
|
||||||
if (divs[i].className.indexOf('post') != -1)
|
if (divs[i].className.indexOf('post') != -1)
|
||||||
divs[i].className = divs[i].className.replace(/highlighted/, '');
|
divs[i].className = divs[i].className.replace(/highlighted/, '');
|
||||||
}
|
}
|
||||||
if (id) {
|
if (id) {
|
||||||
var post = document.getElementById('reply_'+id);
|
var post = document.getElementById('reply_'+id);
|
||||||
if (post)
|
if (post)
|
||||||
post.className += ' highlighted';
|
post.className += ' highlighted';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function generatePassword() {
|
function generatePassword() {
|
||||||
var pass = '';
|
var pass = '';
|
||||||
var chars = '{% endraw %}{{ config.genpassword_chars }}{% raw %}';
|
var chars = '{% endraw %}{{ config.genpassword_chars }}{% raw %}';
|
||||||
for (var i = 0; i < 8; i++) {
|
for (var i = 0; i < 8; i++) {
|
||||||
var rnd = Math.floor(Math.random() * chars.length);
|
var rnd = Math.floor(Math.random() * chars.length);
|
||||||
pass += chars.substring(rnd, rnd + 1);
|
pass += chars.substring(rnd, rnd + 1);
|
||||||
}
|
}
|
||||||
return pass;
|
return pass;
|
||||||
}
|
}
|
||||||
|
|
||||||
function dopost(form) {
|
function dopost(form) {
|
||||||
if (form.elements['name']) {
|
if (form.elements['name']) {
|
||||||
localStorage.name = form.elements['name'].value.replace(/( |^)## .+$/, '');
|
localStorage.name = form.elements['name'].value.replace(/( |^)## .+$/, '');
|
||||||
}
|
}
|
||||||
if (form.elements['email'] && form.elements['email'].value != 'sage') {
|
if (form.elements['email'] && form.elements['email'].value != 'sage') {
|
||||||
localStorage.email = form.elements['email'].value;
|
localStorage.email = form.elements['email'].value;
|
||||||
}
|
}
|
||||||
|
|
||||||
saved[document.location] = form.elements['body'].value;
|
saved[document.location] = form.elements['body'].value;
|
||||||
sessionStorage.body = JSON.stringify(saved);
|
sessionStorage.body = JSON.stringify(saved);
|
||||||
|
|
||||||
return form.elements['body'].value != "" || form.elements['file'].value != "";
|
return form.elements['body'].value != "" || form.elements['file'].value != "";
|
||||||
}
|
}
|
||||||
|
|
||||||
function citeReply(id) {
|
function citeReply(id) {
|
||||||
var body = document.getElementById('body');
|
var body = document.getElementById('body');
|
||||||
|
|
||||||
if (document.selection) {
|
if (document.selection) {
|
||||||
// IE
|
// IE
|
||||||
body.focus();
|
body.focus();
|
||||||
var sel = document.selection.createRange();
|
var sel = document.selection.createRange();
|
||||||
sel.text = '>>' + id + '\n';
|
sel.text = '>>' + id + '\n';
|
||||||
} else if (body.selectionStart || body.selectionStart == '0') {
|
} else if (body.selectionStart || body.selectionStart == '0') {
|
||||||
// Mozilla
|
// Mozilla
|
||||||
var start = body.selectionStart;
|
var start = body.selectionStart;
|
||||||
var end = body.selectionEnd;
|
var end = body.selectionEnd;
|
||||||
body.value = body.value.substring(0, start) + '>>' + id + '\n' + body.value.substring(end, body.value.length);
|
body.value = body.value.substring(0, start) + '>>' + id + '\n' + body.value.substring(end, body.value.length);
|
||||||
} else {
|
} else {
|
||||||
// ???
|
// ???
|
||||||
body.value += '>>' + id + '\n';
|
body.value += '>>' + id + '\n';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function rememberStuff() {
|
function rememberStuff() {
|
||||||
if (document.forms.post) {
|
if (document.forms.post) {
|
||||||
if (document.forms.post.password) {
|
if (document.forms.post.password) {
|
||||||
if (!localStorage.password)
|
if (!localStorage.password)
|
||||||
localStorage.password = generatePassword();
|
localStorage.password = generatePassword();
|
||||||
document.forms.post.password.value = localStorage.password;
|
document.forms.post.password.value = localStorage.password;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (localStorage.name && document.forms.post.elements['name'])
|
if (localStorage.name && document.forms.post.elements['name'])
|
||||||
document.forms.post.elements['name'].value = localStorage.name;
|
document.forms.post.elements['name'].value = localStorage.name;
|
||||||
if (localStorage.email && document.forms.post.elements['email'])
|
if (localStorage.email && document.forms.post.elements['email'])
|
||||||
document.forms.post.elements['email'].value = localStorage.email;
|
document.forms.post.elements['email'].value = localStorage.email;
|
||||||
|
|
||||||
if (window.location.hash.indexOf('q') == 1)
|
if (window.location.hash.indexOf('q') == 1)
|
||||||
citeReply(window.location.hash.substring(2));
|
citeReply(window.location.hash.substring(2));
|
||||||
|
|
||||||
if (sessionStorage.body) {
|
if (sessionStorage.body) {
|
||||||
var saved = JSON.parse(sessionStorage.body);
|
var saved = JSON.parse(sessionStorage.body);
|
||||||
if (get_cookie('{% endraw %}{{ config.cookies.js }}{% raw %}')) {
|
if (get_cookie('{% endraw %}{{ config.cookies.js }}{% raw %}')) {
|
||||||
// Remove successful posts
|
// Remove successful posts
|
||||||
var successful = JSON.parse(get_cookie('{% endraw %}{{ config.cookies.js }}{% raw %}'));
|
var successful = JSON.parse(get_cookie('{% endraw %}{{ config.cookies.js }}{% raw %}'));
|
||||||
for (var url in successful) {
|
for (var url in successful) {
|
||||||
saved[url] = null;
|
saved[url] = null;
|
||||||
}
|
}
|
||||||
sessionStorage.body = JSON.stringify(saved);
|
sessionStorage.body = JSON.stringify(saved);
|
||||||
|
|
||||||
document.cookie = '{% endraw %}{{ config.cookies.js }}{% raw %}={};expires=0;path=/;';
|
document.cookie = '{% endraw %}{{ config.cookies.js }}{% raw %}={};expires=0;path=/;';
|
||||||
}
|
}
|
||||||
if (saved[document.location]) {
|
if (saved[document.location]) {
|
||||||
document.forms.post.body.value = saved[document.location];
|
document.forms.post.body.value = saved[document.location];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (localStorage.body) {
|
if (localStorage.body) {
|
||||||
document.forms.post.body.value = localStorage.body;
|
document.forms.post.body.value = localStorage.body;
|
||||||
localStorage.body = '';
|
localStorage.body = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
init_stylechooser();
|
init_stylechooser();
|
||||||
|
|
||||||
if (document.forms.postcontrols) {
|
if (document.forms.postcontrols) {
|
||||||
document.forms.postcontrols.password.value = localStorage.password;
|
document.forms.postcontrols.password.value = localStorage.password;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.location.hash.indexOf('q') != 1 && window.location.hash.substring(1))
|
if (window.location.hash.indexOf('q') != 1 && window.location.hash.substring(1))
|
||||||
highlightReply(window.location.hash.substring(1));
|
highlightReply(window.location.hash.substring(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
var RecaptchaOptions = {
|
var RecaptchaOptions = {
|
||||||
theme : 'clean'
|
theme : 'clean'
|
||||||
};
|
};
|
||||||
|
|
||||||
onready_callbacks = [];
|
onready_callbacks = [];
|
||||||
function onready(fnc) {
|
function onready(fnc) {
|
||||||
onready_callbacks.push(fnc);
|
onready_callbacks.push(fnc);
|
||||||
}
|
}
|
||||||
|
|
||||||
function ready() {
|
function ready() {
|
||||||
for (var i = 0; i < onready_callbacks.length; i++) {
|
for (var i = 0; i < onready_callbacks.length; i++) {
|
||||||
onready_callbacks[i]();
|
onready_callbacks[i]();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onready(init);
|
onready(init);
|
||||||
|
|
||||||
{% endraw %}{% if config.google_analytics %}{% raw %}
|
{% endraw %}{% if config.google_analytics %}{% raw %}
|
||||||
|
|
||||||
var _gaq = _gaq || [];_gaq.push(['_setAccount', '{% endraw %}{{ config.google_analytics }}{% raw %}']);{% endraw %}{% if config.google_analytics_domain %}{% raw %}_gaq.push(['_setDomainName', '{% endraw %}{{ config.google_analytics_domain }}{% raw %}']){% endraw %}{% endif %}{% if not config.google_analytics_domain %}{% raw %}_gaq.push(['_setDomainName', 'none']){% endraw %}{% endif %}{% raw %};_gaq.push(['_trackPageview']);(function() {var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);})();{% endraw %}{% endif %}
|
var _gaq = _gaq || [];_gaq.push(['_setAccount', '{% endraw %}{{ config.google_analytics }}{% raw %}']);{% endraw %}{% if config.google_analytics_domain %}{% raw %}_gaq.push(['_setDomainName', '{% endraw %}{{ config.google_analytics_domain }}{% raw %}']){% endraw %}{% endif %}{% if not config.google_analytics_domain %}{% raw %}_gaq.push(['_setDomainName', 'none']){% endraw %}{% endif %}{% raw %};_gaq.push(['_trackPageview']);(function() {var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);})();{% endraw %}{% endif %}
|
||||||
|
|
||||||
|
@ -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,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,160 +1,160 @@
|
|||||||
{% filter remove_whitespace %}
|
{% filter remove_whitespace %}
|
||||||
{# tabs and new lines will be ignored #}
|
{# tabs and new lines will be ignored #}
|
||||||
|
|
||||||
<div id="thread_{{ post.id }}">
|
<div id="thread_{{ post.id }}">
|
||||||
|
|
||||||
{% 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">{% trans %}File:{% endtrans %} <a href="{{ config.uri_img }}{{ post.file }}">{{ post.file }}</a> <span class="unimportant">
|
<p class="fileinfo">{% trans %}File:{% endtrans %} <a href="{{ config.uri_img }}{{ post.file }}">{{ post.file }}</a> <span class="unimportant">
|
||||||
(
|
(
|
||||||
{% if post.thumb == 'spoiler' %}
|
{% if post.thumb == 'spoiler' %}
|
||||||
{% trans %}Spoiler Image{% endtrans %},
|
{% trans %}Spoiler Image{% endtrans %},
|
||||||
{% 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></p>
|
</span></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="" /></a>
|
{% endif %}" style="width:{{ post.thumbx }}px;height:{{ post.thumby }}px" alt="" /></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="post op"><p class="intro"{% if not index %} id="{{ post.id }}"{% endif %}>
|
<div class="post op"><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.id) }}
|
ID: {{ post.ip|poster_id(post.id) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a class="post_no" href="{{ post.link }}">No.</a>
|
<a class="post_no" 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>
|
||||||
{% if post.sticky %}
|
{% if post.sticky %}
|
||||||
{% if config.font_awesome %}
|
{% if config.font_awesome %}
|
||||||
<i class="icon-pushpin icon"></i>
|
<i class="icon-pushpin icon"></i>
|
||||||
{% else %}
|
{% else %}
|
||||||
<img class="icon" title="Sticky" src="{{ config.image_sticky }}" alt="Sticky" />
|
<img class="icon" title="Sticky" src="{{ config.image_sticky }}" alt="Sticky" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if post.locked %}
|
{% if post.locked %}
|
||||||
{% if config.font_awesome %}
|
{% if config.font_awesome %}
|
||||||
<i class="icon-lock icon"></i>
|
<i class="icon-lock icon"></i>
|
||||||
{% else %}
|
{% else %}
|
||||||
<img class="icon" title="Locked" src="{{ config.image_locked }}" alt="Locked" />
|
<img class="icon" title="Locked" src="{{ config.image_locked }}" alt="Locked" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if post.bumplocked and (config.mod.view_bumplock < 0 or (post.mod and post.mod|hasPermission(config.mod.view_bumplock, board.uri))) %}
|
{% if post.bumplocked and (config.mod.view_bumplock < 0 or (post.mod and post.mod|hasPermission(config.mod.view_bumplock, board.uri))) %}
|
||||||
{% if config.font_awesome %}
|
{% if config.font_awesome %}
|
||||||
<i class="icon-anchor icon"></i>
|
<i class="icon-anchor icon"></i>
|
||||||
{% else %}
|
{% else %}
|
||||||
<img class="icon" title="Bumplocked" src="{{ config.image_bumplocked }}" alt="Bumplocked" />
|
<img class="icon" title="Bumplocked" src="{{ config.image_bumplocked }}" alt="Bumplocked" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if index %}
|
{% if index %}
|
||||||
<a href="{{ post.root }}{{ board.dir }}{{ config.dir.res }}{{ config.file_page|sprintf(post.id) }}">[{% trans %}Reply{% endtrans %}]</a>
|
<a href="{{ post.root }}{{ board.dir }}{{ config.dir.res }}{{ config.file_page|sprintf(post.id) }}">[{% trans %}Reply{% endtrans %}]</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ post.postControls }}
|
{{ post.postControls }}
|
||||||
</p>
|
</p>
|
||||||
<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>
|
||||||
{% if post.omitted or post.omitted_images %}
|
{% if post.omitted or post.omitted_images %}
|
||||||
<span class="omitted">
|
<span class="omitted">
|
||||||
{% if post.omitted %}
|
{% if post.omitted %}
|
||||||
{% trans %}
|
{% trans %}
|
||||||
1 post
|
1 post
|
||||||
{% plural post.omitted %}
|
{% plural post.omitted %}
|
||||||
{{ count }} posts
|
{{ count }} posts
|
||||||
{% endtrans %}
|
{% endtrans %}
|
||||||
{% if post.omitted_images %}
|
{% if post.omitted_images %}
|
||||||
{% trans %}and{% endtrans %}
|
{% trans %}and{% endtrans %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if post.omitted_images %}
|
{% if post.omitted_images %}
|
||||||
{% trans %}
|
{% trans %}
|
||||||
1 image reply
|
1 image reply
|
||||||
{% plural post.omitted_images %}
|
{% plural post.omitted_images %}
|
||||||
{{ count }} image replies
|
{{ count }} image replies
|
||||||
{% endtrans %}
|
{% endtrans %}
|
||||||
{% endif %} {% trans %}omitted. Click reply to view.{% endtrans %}
|
{% endif %} {% trans %}omitted. Click reply to view.{% endtrans %}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if not index %}
|
{% if not index %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>{% endfilter %}
|
</div>{% endfilter %}
|
||||||
{% set hr = post.hr %}
|
{% set hr = post.hr %}
|
||||||
{% for post in post.posts %}
|
{% for post in post.posts %}
|
||||||
{% include 'post_reply.html' %}
|
{% include 'post_reply.html' %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<br class="clear"/>{% if hr %}<hr/>{% endif %}
|
<br class="clear"/>{% if hr %}<hr/>{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
CREATE TABLE IF NOT EXISTS `posts_{{ board }}` (
|
CREATE TABLE IF NOT EXISTS `posts_{{ board }}` (
|
||||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`thread` int(11) DEFAULT NULL,
|
`thread` int(11) DEFAULT NULL,
|
||||||
`subject` varchar(100) DEFAULT NULL,
|
`subject` varchar(100) DEFAULT NULL,
|
||||||
|
@ -1,71 +1,71 @@
|
|||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<link rel="stylesheet" media="screen" href="{{ config.url_stylesheet }}">
|
<link rel="stylesheet" media="screen" href="{{ config.url_stylesheet }}">
|
||||||
{% if config.url_favicon %}<link rel="shortcut icon" href="{{ config.url_favicon }}">{% endif %}
|
{% if config.url_favicon %}<link rel="shortcut icon" href="{{ config.url_favicon }}">{% endif %}
|
||||||
<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>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes">
|
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes">
|
||||||
{% if config.meta_keywords %}<meta name="keywords" content="{{ config.meta_keywords }}">{% endif %}
|
{% if config.meta_keywords %}<meta name="keywords" content="{{ config.meta_keywords }}">{% endif %}
|
||||||
{% if config.default_stylesheet.1 != '' %}<link rel="stylesheet" type="text/css" id="stylesheet" href="{{ config.uri_stylesheets }}{{ config.default_stylesheet.1 }}">{% endif %}
|
{% if config.default_stylesheet.1 != '' %}<link rel="stylesheet" type="text/css" id="stylesheet" href="{{ config.uri_stylesheets }}{{ config.default_stylesheet.1 }}">{% endif %}
|
||||||
{% if config.font_awesome %}<link rel="stylesheet" media="screen" href="{{ config.root }}{{ config.font_awesome_css }}">{% endif %}
|
{% if config.font_awesome %}<link rel="stylesheet" media="screen" href="{{ config.root }}{{ config.font_awesome_css }}">{% endif %}
|
||||||
{% if not nojavascript %}
|
{% if not nojavascript %}
|
||||||
<script type="text/javascript" src="{{ config.url_javascript }}"></script>
|
<script type="text/javascript" src="{{ config.url_javascript }}"></script>
|
||||||
{% if not config.additional_javascript_compile %}
|
{% if not config.additional_javascript_compile %}
|
||||||
{% for javascript in config.additional_javascript %}<script type="text/javascript" src="{{ config.additional_javascript_url }}{{ javascript }}"></script>{% endfor %}
|
{% for javascript in config.additional_javascript %}<script type="text/javascript" src="{{ config.additional_javascript_url }}{{ javascript }}"></script>{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if config.recaptcha %}<style type="text/css">{% raw %}
|
{% if config.recaptcha %}<style type="text/css">{% raw %}
|
||||||
.recaptcha_image_cell {
|
.recaptcha_image_cell {
|
||||||
background: none !important;
|
background: none !important;
|
||||||
}
|
}
|
||||||
table.recaptchatable {
|
table.recaptchatable {
|
||||||
border: none !important;
|
border: none !important;
|
||||||
}
|
}
|
||||||
#recaptcha_logo, #recaptcha_tagline {
|
#recaptcha_logo, #recaptcha_tagline {
|
||||||
display: none;
|
display: none;
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
.recaptchatable a {
|
.recaptchatable a {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
{% endraw %}</style>{% endif %}
|
{% endraw %}</style>{% endif %}
|
||||||
</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 '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
Block a user