From 19ac875ac3398f3de06da5e80feb98ae7e26eaa0 Mon Sep 17 00:00:00 2001 From: flashwave Date: Sun, 5 Jul 2015 17:03:58 +0200 Subject: [PATCH] More forum stuff --- _developer_data/structure.sql | 188 ++++++++++++++----- _sakura/changelog.json | 8 + _sakura/components/Forum.php | 35 +++- _sakura/components/Main.php | 15 ++ _sakura/components/Whois.php | 2 +- _sakura/templates/yuuno/forum/forum.tpl | 4 +- _sakura/templates/yuuno/forum/forumBtns.tpl | 21 +++ _sakura/templates/yuuno/forum/forumEntry.tpl | 2 +- _sakura/templates/yuuno/forum/topicEntry.tpl | 2 +- _sakura/templates/yuuno/forum/viewtopic.tpl | 8 +- content/data/yuuno/css/yuuno.css | 14 +- main/viewtopic.php | 6 +- 12 files changed, 240 insertions(+), 65 deletions(-) create mode 100644 _sakura/templates/yuuno/forum/forumBtns.tpl diff --git a/_developer_data/structure.sql b/_developer_data/structure.sql index bbc5605..4d232e1 100644 --- a/_developer_data/structure.sql +++ b/_developer_data/structure.sql @@ -53,6 +53,16 @@ CREATE TABLE `sakura_bbcodes` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO `sakura_bbcodes` (`id`, `regex`, `replace`, `description`) VALUES +(1, '/\\[b\\](.*?)\\[\\/b\\]/is', '$1', 'Make text bold. Usage: [b]text[/b].'), +(2, '/\\[i\\](.*?)\\[\\/i\\]/is', '$1', 'Make text italic. Usage: [i]text[/i].'), +(3, '/\\[u\\](.*?)\\[\\/u\\]/is', '$1', 'Make text underlined. Usage: [u]text[/b].'), +(4, '/\\[s\\](.*?)\\[\\/s\\]/is', '$1', 'Put a line through text. Usage: [s]text[/s].'), +(5, '/\\[img\\]([a-zA-Z0-9\\.\\$\\-\\_\\.\\+\\*\\!\\\'\\(\\)\\/\\:\\#]+)\\[\\/img\\]/is', '\"Image\"', 'Embed an image. Usage: [img]url[/img]'), +(6, '/\\[url=([a-zA-Z0-9\\.\\$\\-\\_\\.\\+\\*\\!\\\'\\(\\)\\/\\:\\#]+)\\](.*?)\\[\\/url\\]/is', '$2', 'Embed a URL. Usage: [url=http://google.com]Link to google![/url]'), +(7, '/\\[url\\]([a-zA-Z0-9\\.\\$\\-\\_\\.\\+\\*\\!\\\'\\(\\)\\/\\:\\#]+)\\[\\/url\\]/is', '$1', 'Make a link clickable (if the automatic algorithm doesn\'t do it already). Usage: [url]http://google.com[/url]'), +(8, '/\\[quote\\=\\\"(.+)\\\"\\](.+)\\[\\/quote]/is', '
$1 wrote:
$2
', 'Quote a user\'s post. Usage: [quote=Flashwave]nookls is pretty[/quote]'), +(9, '/\\[quote\\](.+)\\[\\/quote]/is', '
Quote:
$1
', 'Quote a user\'s post. Usage: [quote]nookls is pretty[/quote]'); DROP TABLE IF EXISTS `sakura_config`; CREATE TABLE `sakura_config` ( @@ -60,6 +70,92 @@ CREATE TABLE `sakura_config` ( `config_value` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'The value, obviously.' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO `sakura_config` (`config_name`, `config_value`) VALUES +('recaptcha_public', ''), +('recaptcha_private', ''), +('charset', 'utf-8'), +('cookie_prefix', 'fii_'), +('cookie_domain', 'flashii.test'), +('cookie_path', '/'), +('site_style', 'yuuno'), +('manage_style', 'broomcloset'), +('allow_registration', '0'), +('smtp_server', ''), +('smtp_auth', ''), +('smtp_secure', ''), +('smtp_port', ''), +('smtp_username', ''), +('smtp_password', ''), +('smtp_replyto_mail', ''), +('smtp_replyto_name', ''), +('smtp_from_email', ''), +('smtp_from_name', 'Flashii Noreply'), +('sitename', 'Test Palace'), +('recaptcha', '1'), +('require_activation', '0'), +('require_registration_code', '0'), +('disable_registration', '0'), +('max_reg_keys', '5'), +('mail_signature', 'Team Flashii'), +('lock_authentication', '0'), +('min_entropy', '1'), +('sitedesc', 'Live development environment for the script that powers Flashii.net called Sakura.'), +('sitetags', '[\"Flashii\",\"Media\",\"Flashwave\",\"Circle\",\"Zeniea\",\"MalwareUp\",\"Cybernetics\",\"Saibateku\",\"Community\",\"osu!\",\"osu\"]'), +('username_min_length', '3'), +('username_max_length', '16'), +('lock_site', '1'), +('lock_site_reason', 'meow'), +('use_gzip', '1'), +('enable_tpl_cache', '0'), +('paypal_client_id', ''), +('paypal_secret', ''), +('premium_price_per_month', '1.49'), +('premium_rank_id', '8'), +('premium_amount_max', '24'); + +DROP TABLE IF EXISTS `sakura_emoticons`; +CREATE TABLE `sakura_emoticons` ( + `emote_string` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'String to catch and replace', + `emote_path` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Path to the image file relative to the content domain.' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +INSERT INTO `sakura_emoticons` (`emote_string`, `emote_path`) VALUES +(':amu:', 'images/emoticons/amu.png'), +(':angrier:', 'images/emoticons/angrier.png'), +(':angriest:', 'images/emoticons/angriest.png'), +(':angry:', 'images/emoticons/angry.gif'), +(':blank:', 'images/emoticons/blank.png'), +(':childish:', 'images/emoticons/childish.png'), +(':congrats:', 'images/emoticons/congrats.png'), +(':crying:', 'images/emoticons/crying.gif'), +(':dizzy:', 'images/emoticons/dizzy.gif'), +(':eat:', 'images/emoticons/eat.gif'), +(':evil:', 'images/emoticons/evil.png'), +(':extreme:', 'images/emoticons/extreme.png'), +(':glare:', 'images/emoticons/glare.gif'), +(':happy:', 'images/emoticons/happy.gif'), +(':horror:', 'images/emoticons/horror.gif'), +(':idea:', 'images/emoticons/idea.png'), +(':jew:', 'images/emoticons/jew.png'), +(':kiss:', 'images/emoticons/kiss.gif'), +(':lmao:', 'images/emoticons/lmao.gif'), +(':lol:', 'images/emoticons/lol.gif'), +(':love:', 'images/emoticons/love.png'), +(':meow:', 'images/emoticons/meow.png'), +(':omg:', 'images/emoticons/omg.gif'), +(':ouch:', 'images/emoticons/ouch.gif'), +(':puke:', 'images/emoticons/puke.gif'), +(':ruse:', 'images/emoticons/ruse.png'), +(':sad:', 'images/emoticons/sad.png'), +(':sigh:', 'images/emoticons/sigh.gif'), +(':suspicious:', 'images/emoticons/suspicious.gif'), +(':sweat:', 'images/emoticons/sweat.gif'), +(':tired:', 'images/emoticons/tired.gif'), +(':yay:', 'images/emoticons/vhappy.gif'), +(':winxp:', 'images/emoticons/winxp.png'), +(':wtf:', 'images/emoticons/wtf.gif'), +(':sleep:', 'images/emoticons/zzz.gif'), +(':what:', 'images/emoticons/what.png'); DROP TABLE IF EXISTS `sakura_faq`; CREATE TABLE `sakura_faq` ( @@ -176,6 +272,16 @@ CREATE TABLE `sakura_permissions` ( `rankinherit` varchar(4) COLLATE utf8_bin NOT NULL DEFAULT '000' COMMENT 'Rank inheritance, only used when user specific.' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO `sakura_permissions` (`rid`, `uid`, `siteperms`, `manageperms`, `forumperms`, `rankinherit`) VALUES +(1, 0, '000000000000000000000000001', '0', '1', '000'), +(2, 0, '000111111111100111101101100', '0', '1', '000'), +(3, 0, '001111111111111111111111100', '0', '1', '000'), +(4, 0, '111111111111111111111111100', '0', '1', '000'), +(5, 0, '001111111111111111111111100', '0', '1', '000'), +(6, 0, '000111111111100111101101100', '0', '0', '000'), +(7, 0, '001111111111111111111111100', '0', '1', '000'), +(8, 0, '001111111111111111111111100', '0', '1', '000'), +(9, 0, '001111111111111111111111100', '0', '1', '000'); DROP TABLE IF EXISTS `sakura_posts`; CREATE TABLE `sakura_posts` ( @@ -187,6 +293,7 @@ CREATE TABLE `sakura_posts` ( `post_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Time this post was made.', `parse_mode` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'Switch the type of parser that''s used.', `enable_sig` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Toggle if signature should be shown.', + `enable_emotes` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Toggle if emoticons should be parsed.', `post_subject` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Subject of the post.', `post_text` text COLLATE utf8_bin NOT NULL COMMENT 'Contents of the post.', `post_edit_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Time this post was last edited.', @@ -224,6 +331,18 @@ CREATE TABLE `sakura_profilefields` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO `sakura_profilefields` (`id`, `name`, `formtype`, `islink`, `linkformat`, `description`, `additional`) VALUES +(1, 'Website', 'url', 1, '{{ VAL }}', 'URL to your website', ''), +(2, 'Twitter', 'text', 1, 'https://twitter.com/{{ VAL }}', 'Your @twitter Username', ''), +(3, 'GitHub', 'text', 1, 'https://github.com/{{ VAL }}', 'Your GitHub Username', ''), +(4, 'Skype', 'text', 1, 'skype:{{ VAL }}?userinfo', 'Your Skype Username', ''), +(5, 'YouTube', 'text', 0, '', 'ID or Username excluding http://youtube.com/*/', '{\"youtubetype\": [\"checkbox\", \"I do not have a Channel Username (url looks like https://www.youtube.com/channel/UCXZcw5hw5C7Neto-T_nRXBQ).\"]}'), +(6, 'SoundCloud', 'text', 1, 'https://soundcloud.com/{{ VAL }}', 'Your SoundCloud username', ''), +(7, 'Steam', 'text', 1, 'https://steamcommunity.com/id/{{ VAL }}', 'Your Steam Community Username (may differ from login username)', ''), +(8, 'osu!', 'text', 1, 'https://osu.ppy.sh/u/{{ VAL }}', 'Your osu! Username', ''), +(9, 'Origin', 'text', 0, '', 'Your Origin User ID', ''), +(10, 'Xbox Live', 'text', 1, 'https://account.xbox.com/en-GB/Profile?Gamertag={{ VAL }}', 'Your Xbox User ID', ''), +(11, 'PSN', 'text', 1, 'http://psnprofiles.com/{{ VAL }}', 'Your PSN User ID', ''); DROP TABLE IF EXISTS `sakura_ranks`; CREATE TABLE `sakura_ranks` ( @@ -236,6 +355,16 @@ CREATE TABLE `sakura_ranks` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO `sakura_ranks` (`id`, `name`, `multi`, `colour`, `description`, `title`) VALUES +(1, 'Deactivated', 0, '#555', 'Users that are yet to be activated or that deactivated their own account.', 'Deactivated'), +(2, 'Regular user', 1, 'inherit', 'Regular users with regular permissions.', 'Regular user'), +(3, 'Site moderator', 1, '#0A0', 'Users with special permissions like being able to ban and modify users if needed.', 'Staff'), +(4, 'Administrator', 1, '#C00', 'Users that manage the server and everything around that.', 'Administrator'), +(5, 'Developer', 1, '#824CA0', 'Users that either create or test new features of the site.', 'Staff'), +(6, 'Bot', 1, '#9E8DA7', 'Reserved user accounts for services.', 'Bot'), +(7, 'Chat moderator', 1, '#09F', 'Moderators of the chat room.', 'Staff'), +(8, 'Tenshi', 0, '#EE9400', 'Users that donated $5.00 or more in order to keep the site and it\'s services alive!', 'Tenshi'), +(9, 'Alumnii', 0, '#FF69B4', 'People who have contributed to the community but have moved on or resigned.', 'Alumnii'); DROP TABLE IF EXISTS `sakura_regcodes`; CREATE TABLE `sakura_regcodes` ( @@ -286,6 +415,16 @@ CREATE TABLE `sakura_sock_perms` ( `perms` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT '1,0,0,0,0,0' COMMENT 'Permission data (has access, in-chat rank, user type, log access, nick access, channel creation)' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +INSERT INTO `sakura_sock_perms` (`rid`, `uid`, `perms`) VALUES +(1, 0, '0,0,0,0,0,0'), +(2, 0, '1,0,0,0,0,0'), +(3, 0, '1,3,1,1,1,1'), +(4, 0, '1,4,2,1,1,2'), +(5, 0, '1,2,1,1,1,1'), +(6, 0, '1,0,0,0,0,0'), +(7, 0, '1,2,1,1,1,1'), +(8, 0, '1,1,0,1,1,1'), +(9, 0, '1,1,0,1,1,1'); DROP TABLE IF EXISTS `sakura_topics`; CREATE TABLE `sakura_topics` ( @@ -351,51 +490,4 @@ CREATE TABLE `sakura_warnings` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; -DROP TABLE IF EXISTS `sock_banned_users`; -CREATE TABLE `sock_banned_users` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ip` varchar(50) DEFAULT NULL, - `uid` int(11) DEFAULT NULL, - `username` varchar(256) DEFAULT NULL, - `expiration` bigint(20) NOT NULL DEFAULT '-1', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; - - -DROP TABLE IF EXISTS `sock_channels`; -CREATE TABLE `sock_channels` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `chname` varchar(256) NOT NULL, - `pwd` varchar(512) DEFAULT NULL, - `priv` int(11) DEFAULT '0', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`chname`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; - - -DROP TABLE IF EXISTS `sock_logs`; -CREATE TABLE `sock_logs` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `epoch` int(11) DEFAULT NULL, - `userid` int(11) NOT NULL, - `username` varchar(256) NOT NULL, - `color` varchar(24) NOT NULL, - `channel` varchar(1024) NOT NULL, - `chrank` int(11) NOT NULL, - `message` longtext NOT NULL, - `flags` varchar(10) NOT NULL DEFAULT '10010', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; - - -DROP TABLE IF EXISTS `sock_online_users`; -CREATE TABLE `sock_online_users` ( - `userid` int(11) NOT NULL, - `username` varchar(256) NOT NULL, - `color` varchar(16) NOT NULL, - `perms` varchar(512) NOT NULL, - UNIQUE KEY `userid` (`userid`,`username`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; - - --- 2015-07-05 00:03:48 +-- 2015-07-05 15:02:41 diff --git a/_sakura/changelog.json b/_sakura/changelog.json index 3e4810d..00735f4 100644 --- a/_sakura/changelog.json +++ b/_sakura/changelog.json @@ -1473,6 +1473,14 @@ { "type": "REM", "change": "Removed some columns and replaced them with live stats." + }, + { + "type": "UPD", + "change": "Redid some of the emotes." + }, + { + "type": "ADD", + "change": "Add code for topic view counter." } ] diff --git a/_sakura/components/Forum.php b/_sakura/components/Forum.php index 6da44fd..e6ecfc6 100644 --- a/_sakura/components/Forum.php +++ b/_sakura/components/Forum.php @@ -188,7 +188,7 @@ class Forum { } // Get posts of a thread - public static function getTopic($id) { + public static function getTopic($id, $ignoreView = false) { // Get the topic data from the database $topicInfo = Database::fetch('topics', false, [ @@ -199,6 +199,24 @@ class Forum { if(empty($topicInfo)) return false; + // Up the view count + if(!$ignoreView) { + + // Get the new count + $topicInfo['topic_views'] = $topicInfo['topic_views'] + 1; + + // Update the count + Database::update('topics', [ + [ + 'topic_views' => $topicInfo['topic_views'] + ], + [ + 'topic_id' => [$id, '='] + ] + ]); + + } + // Get the posts from the database $rawPosts = Database::fetch('posts', true, [ 'topic_id' => [$id, '='] @@ -222,7 +240,8 @@ class Forum { $topic['topic']['first_poster'] = [ 'post' => $firstPost, 'user' => ($_FIRST_POSTER = Users::getUser($firstPost['poster_id'])), - 'rank' => Users::getRank($_FIRST_POSTER['rank_main']) + 'rank' => Users::getRank($_FIRST_POSTER['rank_main']), + 'elap' => Main::timeElapsed($firstPost['post_time']) ]; // Get last post in topics @@ -234,7 +253,8 @@ class Forum { $topic['topic']['last_poster'] = [ 'post' => $lastPost, 'user' => ($_LAST_POSTER = Users::getUser($lastPost['poster_id'])), - 'rank' => Users::getRank($_LAST_POSTER['rank_main']) + 'rank' => Users::getRank($_LAST_POSTER['rank_main']), + 'elap' => Main::timeElapsed($lastPost['post_time']) ]; // Create space for posts @@ -248,11 +268,12 @@ class Forum { 'is_op' => ($post['poster_id'] == $firstPost['poster_id'] ? '1' : '0'), 'user' => ($_POSTER = Users::getUser($post['poster_id'])), 'rank' => Users::getRank($_POSTER['rank_main']), + 'time_elapsed' => Main::timeElapsed($post['post_time']), 'country' => Main::getCountryName($_POSTER['country']), 'is_premium' => Users::checkUserPremium($_POSTER['id'])[0], 'is_online' => Users::checkUserOnline($_POSTER['id']), 'is_friend' => Users::checkFriend($_POSTER['id']), - 'parsed_post' => self::parseMarkUp($post['post_text'], $post['parse_mode']), + 'parsed_post' => self::parseMarkUp($post['post_text'], $post['parse_mode'], $post['enable_emotes']), 'signature' => empty($_POSTER['userData']['signature']) ? '' : self::parseMarkUp($_POSTER['userData']['signature']['text'], $_POSTER['userData']['signature']['mode']) ]); @@ -284,11 +305,15 @@ class Forum { } // Parse different markup flavours - public static function parseMarkUp($text, $mode) { + public static function parseMarkUp($text, $mode, $emotes = 1) { // Clean string $text = Main::cleanString($text); + // Parse emotes + if($emotes) + $text = Main::parseEmotes($text); + // Switch between modes switch($mode) { diff --git a/_sakura/components/Main.php b/_sakura/components/Main.php index d59857e..0c0b373 100644 --- a/_sakura/components/Main.php +++ b/_sakura/components/Main.php @@ -84,6 +84,21 @@ class Main { } + // Parsing emoticons + public static function parseEmotes($text) { + + // Get emoticons from the database + $emotes = Database::fetch('emoticons'); + + // Do the replacements + foreach($emotes as $emote) + $text = str_replace($emote['emote_string'], ''. $emote['emote_string'] .'', $text); + + // Return the parsed text + return $text; + + } + // Verify ReCAPTCHA public static function verifyCaptcha($response) { diff --git a/_sakura/components/Whois.php b/_sakura/components/Whois.php index 57fc480..aa06ace 100644 --- a/_sakura/components/Whois.php +++ b/_sakura/components/Whois.php @@ -39,7 +39,7 @@ class Whois { // Check if the file exists and if it does get contents. if(file_exists($serversFile)) - $servers = file_get_contents($serversFile); + $servers = utf8_encode(file_get_contents($serversFile)); else trigger_error('Failed to load whois servers file', E_USER_ERROR); diff --git a/_sakura/templates/yuuno/forum/forum.tpl b/_sakura/templates/yuuno/forum/forum.tpl index dda37a6..dd399ad 100644 --- a/_sakura/templates/yuuno/forum/forum.tpl +++ b/_sakura/templates/yuuno/forum/forum.tpl @@ -7,7 +7,7 @@ {% if board.viewforum and not board.forums[0].forum.forum_type %} - New Thread + {% include 'forum/forumBtns.tpl' %} {% if board.topics|length %} @@ -37,5 +37,5 @@ {% else %}

There are no posts in this forum!

{% endif %} - New Thread + {% include 'forum/forumBtns.tpl' %} {% endif %} diff --git a/_sakura/templates/yuuno/forum/forumBtns.tpl b/_sakura/templates/yuuno/forum/forumBtns.tpl new file mode 100644 index 0000000..2c1dfc4 --- /dev/null +++ b/_sakura/templates/yuuno/forum/forumBtns.tpl @@ -0,0 +1,21 @@ +
+
+ Back + {% if board.viewtopic %} + Reply + {% endif %} + {% if board.viewforum %} + New Thread + {% endif %} +
+
+ + 1 + 2 + 3 + ... + 10 + +
+
+
\ No newline at end of file diff --git a/_sakura/templates/yuuno/forum/forumEntry.tpl b/_sakura/templates/yuuno/forum/forumEntry.tpl index 5834056..4282691 100644 --- a/_sakura/templates/yuuno/forum/forumEntry.tpl +++ b/_sakura/templates/yuuno/forum/forumEntry.tpl @@ -29,7 +29,7 @@ diff --git a/_sakura/templates/yuuno/forum/viewtopic.tpl b/_sakura/templates/yuuno/forum/viewtopic.tpl index b380864..08d2862 100644 --- a/_sakura/templates/yuuno/forum/viewtopic.tpl +++ b/_sakura/templates/yuuno/forum/viewtopic.tpl @@ -2,7 +2,7 @@
{{ forum.forum.forum_name }} / {{ topic.topic_title }}
- Reply + {% include 'forum/forumBtns.tpl' %}
{% if forum.last_poster.user.id %} - {{ forum.last_poster.post.post_subject }}
{{ forum.last_poster.elap }} by {% if forum.last_poster.user.id %}{{ forum.last_poster.user.username }}{% else %}[deleted user]{% endif %} + {{ forum.last_poster.post.post_subject }}
{{ forum.last_poster.elap }} by {% if forum.last_poster.user.id %}{{ forum.last_poster.user.username }}{% else %}[deleted user]{% endif %} {% else %} There are no posts in this forum.
  {% endif %} diff --git a/_sakura/templates/yuuno/forum/topicEntry.tpl b/_sakura/templates/yuuno/forum/topicEntry.tpl index c9853a2..f2a86ac 100644 --- a/_sakura/templates/yuuno/forum/topicEntry.tpl +++ b/_sakura/templates/yuuno/forum/topicEntry.tpl @@ -22,6 +22,6 @@ {% else %} [deleted user] {% endif %}
- {{ topic.last_poster.elap }} + {{ topic.last_poster.elap }}
{% for post in posts %} @@ -17,7 +17,7 @@ {% else %} {% if post.is_friend != 0 %}{% endif %} - + {% endif %} {% else %} @@ -34,7 +34,7 @@ {{ post.post_subject }}
- {{ post.post_time|date("r") }} + {{ post.time_elapsed }}
@@ -51,7 +51,7 @@ {% endfor %}
- Reply + {% include 'forum/forumBtns.tpl' %} {% include 'global/footer.tpl' %} diff --git a/content/data/yuuno/css/yuuno.css b/content/data/yuuno/css/yuuno.css index 700acef..70252eb 100644 --- a/content/data/yuuno/css/yuuno.css +++ b/content/data/yuuno/css/yuuno.css @@ -223,6 +223,10 @@ img.homepage-menu-avatar { margin-right: 0; } +img.emoticon { + vertical-align: middle; +} + @media (max-width: 400px) { img.homepage-menu-avatar { @@ -1695,7 +1699,7 @@ textarea.inputStyling { .forum.viewtopic .posts .userpanel .username { font: 1.5em/1.7em "SegoeUI", "Segoe UI", sans-serif; text-shadow: 0 0 7px #888; padding: 0 0 2px; - display: block; + display: inline-block; } .forum.viewtopic .posts .userpanel .avatar { @@ -1764,3 +1768,11 @@ textarea.inputStyling { max-height: 180px; overflow: auto; } + +.forum .buttonRow .leftSide { + float: left; +} + +.forum .buttonRow .rightSide { + float: right; +} diff --git a/main/viewtopic.php b/main/viewtopic.php index 3a2f91f..bb563ba 100644 --- a/main/viewtopic.php +++ b/main/viewtopic.php @@ -29,8 +29,10 @@ if(!$topic) { // Set additional render data $renderData = array_merge($renderData, $topic, [ - 'viewforum' => false, - 'viewtopic' => true, + 'board' => [ + 'viewforum' => false, + 'viewtopic' => true, + ], 'page' => [ 'title' => $topic['topic']['topic_title'] ]