diff --git a/inc/config.php b/inc/config.php
index a9145f4a..032e937a 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -712,7 +712,7 @@
* ====================
*/
- // "Wiki" markup syntax ($config['wiki_markup'] in pervious versions):
+ // "Wiki" markup syntax ($config['wiki_markup'] in previous versions):
$config['markup'][] = array("/'''(.+?)'''/", "\$1");
$config['markup'][] = array("/''(.+?)''/", "\$1");
$config['markup'][] = array("/\*\*(.+?)\*\*/", "\$1");
@@ -723,6 +723,9 @@
// "/```([a-z0-9-]{0,20})\n(.*?)\n?```\n?/s"
$config['markup_code'] = false;
+ // // Dice Roll Markup
+ // $config['markup'][] = array("/\[diceroll\](.+?)\[\/diceroll\]/s", "\$1");
+
// Repair markup with HTML Tidy. This may be slower, but it solves nesting mistakes. Tinyboard, at the
// time of writing this, can not prevent out-of-order markup tags (eg. "**''test**'') without help from
// HTML Tidy.
@@ -1510,10 +1513,10 @@
$config['mod']['link_merge'] = '[Merge]';
$config['mod']['link_cycle'] = '[Cycle]';
$config['mod']['link_uncycle'] = '[-Cycle]';
-
$config['mod']['link_shadow_restore'] = '[SD Restore]';
$config['mod']['link_shadow_delete'] = '[SD Delete]';
-
+ $config['mod']['link_send_to_archive'] = '[Archive]';
+
// Moderator capcodes.
$config['capcode'] = ' ## %s';
@@ -1776,6 +1779,10 @@
$config['mod']['news_custom'] = ADMIN;
// Delete news entries
$config['mod']['news_delete'] = ADMIN;
+ // Send Threads directly to Archive (need to be greater than or equal to ['mod']['delete'] permission)
+ $config['mod']['send_threads_to_archive'] = MOD;
+ if($config['mod']['send_threads_to_archive'] < $config['mod']['delete'])
+ $config['mod']['send_threads_to_archive'] = $config['mod']['delete'];
// Feature archived threads
$config['mod']['feature_archived_threads'] = JANITOR;
// Delete featured archived threads
diff --git a/inc/mod/pages.php b/inc/mod/pages.php
index 6f0b2247..8afb88d9 100644
--- a/inc/mod/pages.php
+++ b/inc/mod/pages.php
@@ -3975,5 +3975,17 @@ function mod_view_archive_mod_archive($boardName) {
));
}
-
-
+function mod_archive_thread($board, $post) {
+ global $config;
+
+ if (!openBoard($board))
+ error($config['error']['noboard']);
+
+ if (!hasPermission($config['mod']['send_threads_to_archive'], $board))
+ error($config['error']['noaccess']);
+
+ Archive::archiveThread($post);
+ mod_delete($board, false, $post);
+
+ header('Location: ?/' . sprintf($config['board_path'], $board) . $config['file_index'], true, $config['redirect_http']);
+}
\ No newline at end of file
diff --git a/mod.php b/mod.php
index 59695b4e..d41a3e44 100644
--- a/mod.php
+++ b/mod.php
@@ -104,7 +104,8 @@ $pages = array(
'/(\%b)/(un)?sticky/(\d+)' => 'secure sticky', // sticky thread
'/(\%b)/(un)?cycle/(\d+)' => 'secure cycle', // cycle thread
'/(\%b)/bump(un)?lock/(\d+)' => 'secure bumplock', // "bumplock" thread
-
+ '/(\%b)/archive_thread/(\d+)' => 'secure archive_thread', // send thread to archive
+
'/themes' => 'themes_list', // manage themes
'/themes/(\w+)' => 'secure_POST theme_configure', // configure/reconfigure theme
'/themes/(\w+)/rebuild' => 'secure theme_rebuild', // rebuild theme
diff --git a/stylesheets/tomorrow.css b/stylesheets/tomorrow.css
new file mode 100644
index 00000000..a63c275f
--- /dev/null
+++ b/stylesheets/tomorrow.css
@@ -0,0 +1,229 @@
+/** TOMORROW, I'LL ...
+
+A cool dark skin by 7185.
+https://github.com/7185/8chan-tomorrow/
+
+**/
+body {
+ background:#1d1f21 none;
+ color:#C5C8C6
+}
+h1,div.subtitle {
+ color:#C5C8C6!important
+}
+a:link,a:visited,p.intro a.email span.name {
+ color:#81a2be
+}
+a:link:hover {
+ color:#5F89AC
+}
+a.post_no {
+ color:#C5C8C6
+}
+a.post_no:hover {
+ color:#5F89AC!important
+}
+div.banner {
+ background-color:#1d1f21
+}
+div.post.reply {
+ background-color:#282a2e;
+ border:1px solid #282a2e;
+ margin-bottom:2px;
+ margin-left:16px;
+ margin-top:2px
+}
+div.post.reply.highlighted {
+ background-color:#1d1d21;
+ border:1px solid #111
+}
+div.post.reply div.body a {
+ color:#81a2be
+}
+div.post.reply div.body a:hover {
+ color:#5F89AC
+}
+div.post-hover {
+ border:1px solid #000!important;
+ box-shadow:none!important
+}
+.theme-catalog div.thread:hover {
+ background-color:#1d1f21;
+ border-color:#111
+}
+p.intro span.subject {
+ color:#b294bb
+}
+p.intro span.name {
+ color:#C5C8C6
+}
+.quote {
+ color:#adbd68
+}
+span.heading {
+ color:#F20
+}
+form table tr th {
+ background:#282a2e;
+ border:1px solid #111;
+ color:#C5C8C6
+}
+div.ban h2 {
+ background:#282A2E;
+ color:inherit
+}
+div.ban {
+ border-color:#282A2E;
+}
+div.ban {
+ color:#C5C8C6;
+ background-color: inherit;
+}
+div.pages {
+ background:#1d1f21;
+ border-color:#1d1f21
+}
+div.pages a.selected {
+ color:#81a2be;
+ font-weight:700
+}
+div.boardlist {
+ background-color:#282a2e!important;
+ color:#C5C8C6
+}
+div.boardlist:nth-of-type(1) {
+ border-bottom:1px solid #111!important;
+ box-shadow:0 0 3px 0 #111
+}
+div.boardlist a {
+ color:#81a2be
+}
+hr {
+ background-color:#282a2e;
+ border:0;
+ height:1px
+}
+div#options_div {
+ background-color:#282a2e
+}
+div.options_tab_icon {
+ color:#AAA
+}
+div.options_tab_icon:hover {
+ background-color:#111
+}
+div.options_tab_icon.active {
+ color:#F20
+}
+div.blotter {
+ color:#F20
+}
+span.omitted {
+ color:#707070
+}
+p.intro a,span.omitted a {
+ text-decoration:none
+}
+form#quick-reply {
+ padding-right:1px;
+ border: 1px solid #111
+}
+span.capcode {
+ background-color: #122;
+ padding:2px 5px;
+ border-radius: 10px
+}
+div#watchlist,div#alert_div {
+ border:1px solid #111;
+ background-color:#282a2e
+}
+div#watchlist a,a.watchThread {
+ color:#81a2be;
+ text-decoration:none
+}
+div#watchlist a:hover,a.watchThread:hover {
+ color:#5F89AC
+}
+
+/* Remove the following parts if those annoy you */
+/* Keep small thumbnails in replies */
+.post.reply a:not([data-expanded="true"]) .post-image{
+ width:auto!important;
+ height:auto!important;
+ max-height:160px;
+ max-width:160px
+}
+
+/*
+.modlog tr:nth-child(even), .modlog th {
+ background-color: #282A2E;
+}
+*/
+table.modlog {
+ color: #FFF;
+ background-color: #282A2E;
+}
+table.modlog tbody {
+ color: #FFF;
+}
+table.modlog tr th,
+table.modlog tr td {
+ background-color: #282A2E;
+}
+table.modlog tr:hover td {
+ background-color: #383A3E;
+}
+
+
+.box {
+ background: #282a2e;
+ border-color: #111;
+ color: #C5C8C6;
+}
+.box-title {
+ background: #282a2e;
+ color: #C5C8C6;
+}
+
+table thead th {
+ background: #282a2e;
+ border-color: #111;
+ color: #C5C8C6;
+}
+table tbody tr:nth-of-type( even ) {
+ background-color: #282a2e;
+}
+
+table.board-list-table .board-uri .board-sfw {
+ color: #81a2be;
+}
+tbody.board-list-omitted td {
+ background: #282a2e;
+ border-color: #111;
+}
+
+table.board-list-table .board-tags .board-cell:hover {
+ background: #1d1f21;
+}
+table.board-list-table tr:nth-of-type( even ) .board-tags .board-cell {
+ background: #282a2e;
+}
+
+/* Predefined reasons */
+.ReasonTableForm tr:first-child td {
+ background: #282A2E;
+}
+.ReasonTableForm tr:hover td {
+ background: #1D1D21;
+}
+
+
+/* fix for post menu */
+.post-menu {
+ color: #DB7A18;
+}
+
+.post-menu ul {
+ background-color: #1D1F21;
+}
+
diff --git a/templates/post/post_controls.html b/templates/post/post_controls.html
index 09d1c2c7..619cafdc 100644
--- a/templates/post/post_controls.html
+++ b/templates/post/post_controls.html
@@ -59,7 +59,9 @@
{{ config.mod.link_lock }}
{% endif %}
{% endif %}
-
+ {% if mod|hasPermission(config.mod.send_threads_to_archive, board.uri) %}
+ {{ secure_link_confirm(config.mod.link_send_to_archive, 'Send thread to archive'|trans, 'Are you sure you want to send thread to archive and delete it from the catalog?'|trans, board.dir ~ 'archive_thread/' ~ post.id ) }}
+ {% endif %}
{% endif %}
{% if mod|hasPermission(config.mod.move, board.uri) %}
{% if not post.thread %}