Allow posting from catalog.
Addresses #134. The catalog template has been modified to use the board array, which is expected by the post form template. Because the overboard is a "virtual board", we created a "fake" overboard array to supply necessary information to the modified template. Javascript was also added to hide form on first visit.
This commit is contained in:
parent
11d59a9181
commit
aa21f4cc6d
|
@ -45,4 +45,9 @@ if (active_page == 'catalog') $(function(){
|
|||
$(this).css('width', 'auto');
|
||||
}
|
||||
});
|
||||
|
||||
$('#post-form-opener').on('click', function(e) {
|
||||
$('#post-form-container').css('display', 'unset');
|
||||
$('#post-form-opener').css('display', 'none');
|
||||
});
|
||||
});
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<script type='text/javascript'>
|
||||
var active_page = "catalog"
|
||||
, board_name = "{{ board }}";
|
||||
, board_name = "{{ board.uri }}";
|
||||
</script>
|
||||
<title>{{ settings.title }} ( /{{ board }}/ )</title>
|
||||
<title>{{ settings.title }} ( /{{ board.title|e }}/ )</title>
|
||||
{% include 'header.html' %}
|
||||
</head>
|
||||
<body class="8chan vichan {% if mod %}is-moderator{% else %}is-not-moderator{% endif %} theme-catalog active-catalog" data-stylesheet="{% if config.default_stylesheet.1 != '' %}{{ config.default_stylesheet.1 }}{% else %}default{% endif %}">
|
||||
|
@ -16,10 +16,15 @@
|
|||
{{ boardlist.top }}
|
||||
</div>
|
||||
<header>
|
||||
<h1 class="glitch" data-text="{{ settings.title }} /{{ board }}/"> {{ settings.title }} (<a href="{{link}}">/{{ board }}/</a>)</h1>
|
||||
<h1 class="glitch" data-text="{{ settings.title }} /{{ board.title|e }}/"> {{ settings.title }} (<a href="{{link}}">/{{ board.title|e }}/</a>)</h1>
|
||||
<div class="subtitle">{{ settings.subtitle }}</div>
|
||||
</header>
|
||||
|
||||
{% if not no_post_form %}
|
||||
<center><a href="#" id="post-form-opener">[ {% trans 'Create new thread' %} ]</a></center>
|
||||
<div id="post-form-container" style="display:none;">
|
||||
{% include 'post_form.html' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="controls">
|
||||
<ul style="display: none">
|
||||
<li id="sort-bump-order" class="sort" data-sort="data-bump" data-order="asc">{% trans 'Bump order' %}</li>
|
||||
|
@ -55,12 +60,12 @@
|
|||
data-sticky="{% if post.sticky %}true{% else %}false{% endif %}"
|
||||
data-locked="{% if post.locked %}true{% else %}false{% endif %}"
|
||||
>
|
||||
<div class="thread grid-li grid-size-small">
|
||||
<a href="{{post.link}}">
|
||||
<div class="thread grid-li grid-size-small">
|
||||
<a href="{{post.link}}">
|
||||
{% if post.youtube %}
|
||||
<img src="//img.youtube.com/vi/{{ post.youtube }}/0.jpg"
|
||||
<img src="//img.youtube.com/vi/{{ post.youtube }}/0.jpg"
|
||||
{% else %}
|
||||
<img src="{{post.file}}"
|
||||
<img src="{{post.file}}"
|
||||
{% endif %}
|
||||
id="img-{{ post.id }}" data-subject="{% if post.subject %}{{ post.subject|e }}{% endif %}" data-name="{{ post.name|e }}" data-muhdifference="{{ post.muhdifference }}" class="{{post.board}} thread-image" title="{{post.bump|date('%b %d %H:%M')}}">
|
||||
</a>
|
||||
|
@ -83,12 +88,12 @@
|
|||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<hr/>
|
||||
<footer>
|
||||
<p class="unimportant" style="margin-top:20px;text-align:center;">- <a href="http://tinyboard.org/">Tinyboard</a> +
|
||||
<a href='https://int.vichan.net/devel/'>vichan</a> {{ config.version }} -
|
||||
<br><a href="http://tinyboard.org/">Tinyboard</a> Copyright © 2010-2014 Tinyboard Development Group
|
||||
<br><a href="http://tinyboard.org/">Tinyboard</a> Copyright © 2010-2014 Tinyboard Development Group
|
||||
<br><a href="https://engine.vichan.net/">vichan</a> Copyright © 2012-2015 vichan-devel</p>
|
||||
</footer>
|
||||
<div class="pages"></div>
|
||||
|
|
|
@ -372,7 +372,7 @@
|
|||
// Generate data for the template
|
||||
$recent_posts = $this->generateRecentPosts($threads);
|
||||
|
||||
$this->saveForBoard($board_name, $recent_posts, '/' . $settings['overboard_location']);
|
||||
$this->saveForBoard($board_name, $recent_posts, '/' . $settings['overboard_location'], true);
|
||||
|
||||
// Build the overboard JSON outputs
|
||||
if ($config['api']['enabled']) {
|
||||
|
@ -455,7 +455,7 @@
|
|||
return $posts;
|
||||
}
|
||||
|
||||
private function saveForBoard($board_name, $recent_posts, $board_link = null) {
|
||||
private function saveForBoard($board_name, $recent_posts, $board_link = null, $is_overboard = false) {
|
||||
global $board, $config;
|
||||
|
||||
if ($board_link === null) {
|
||||
|
@ -471,16 +471,31 @@
|
|||
$config['additional_javascript'][] = $s;
|
||||
}
|
||||
|
||||
file_write($config['dir']['home'] . $board_name . '/catalog.html', Element('themes/catalog/catalog.html', Array(
|
||||
$template_config = Array(
|
||||
'settings' => $this->settings,
|
||||
'config' => $config,
|
||||
'boardlist' => createBoardlist(),
|
||||
'recent_images' => array(),
|
||||
'recent_posts' => $recent_posts,
|
||||
'stats' => array(),
|
||||
'board' => $board_name,
|
||||
'link' => $board_link
|
||||
)));
|
||||
'board' => $board,
|
||||
'link' => $board_link,
|
||||
'no_post_form' => false,
|
||||
);
|
||||
|
||||
if ($is_overboard) {
|
||||
// fake board, I vomit
|
||||
$template_config['board'] = Array(
|
||||
'uri' => $board_name,
|
||||
'title' => $board_name,
|
||||
'name' => $board_name,
|
||||
'dir' => $board_name . '/',
|
||||
'url' => '/' . $board_name . '/'
|
||||
);
|
||||
$template_config['no_post_form'] = true;
|
||||
}
|
||||
|
||||
file_write($config['dir']['home'] . $board_name . '/catalog.html', Element('themes/catalog/catalog.html', $template_config));
|
||||
|
||||
file_write($config['dir']['home'] . $board_name . '/index.rss', Element('themes/catalog/index.rss', Array(
|
||||
'config' => $config,
|
||||
|
|
Loading…
Reference in New Issue