r20151114
Signed-off-by: Flashwave <me@flash.moe>
This commit is contained in:
parent
79c761c6e3
commit
d1ef9d924a
5 changed files with 182 additions and 31 deletions
|
@ -11,4 +11,73 @@ namespace Sakura;
|
|||
*/
|
||||
class Forum
|
||||
{
|
||||
// Variables
|
||||
public $id = 0;
|
||||
public $name = "Forum";
|
||||
public $description = "";
|
||||
public $link = "";
|
||||
public $category = 0;
|
||||
public $type = 0;
|
||||
public $icon = "";
|
||||
public $firstReply = [];
|
||||
public $lastReply = [];
|
||||
|
||||
// Constructor
|
||||
public function __construct($forumId)
|
||||
{
|
||||
// Get the row from the database
|
||||
$forumRow = Database::fetch('forums', false, ['forum_id' => [$forumId, '=']]);
|
||||
|
||||
// Populate the variables
|
||||
if (!$forumRow) {
|
||||
$this->id = $forumRow['forum_id'];
|
||||
$this->name = $forumRow['forum_name'];
|
||||
$this->description = $forumRow['forum_desc'];
|
||||
$this->link = $forumRow['forum_link'];
|
||||
$this->category = $forumRow['forum_category'];
|
||||
$this->type = $forumRow['forum_type'];
|
||||
$this->icon = $forumRow['forum_icon'];
|
||||
} else {
|
||||
// Else just set the ID to $forumId and imitate an blank forum
|
||||
$this->id = $forumId;
|
||||
}
|
||||
}
|
||||
|
||||
// Subforums
|
||||
public function forums()
|
||||
{
|
||||
// Get all rows with the category id set to the forum id
|
||||
$forumRows = Database::fetch('forums', true, ['forum_category' => [$this->id, '=']]);
|
||||
|
||||
// Get a storage array
|
||||
$forums = [];
|
||||
|
||||
// Create new objects for each forum
|
||||
foreach ($forumRows as $forum) {
|
||||
$forums[$forum['forum_id']] = new Forum($forum['forum_id']);
|
||||
}
|
||||
|
||||
// Return the forum objects
|
||||
return $forums;
|
||||
}
|
||||
|
||||
// Last post
|
||||
public function lastPost()
|
||||
{
|
||||
// Return a post
|
||||
$postRow = Database::fetch('posts', false, ['forum_id' => [$this->id, '=']], ['post_id', true]);
|
||||
|
||||
}
|
||||
|
||||
// Thread count
|
||||
public function threadCount()
|
||||
{
|
||||
return Database::count('topics', ['forum_id', [$this->id, '=']])[0];
|
||||
}
|
||||
|
||||
// Post count
|
||||
public function postCount()
|
||||
{
|
||||
return Database::count('posts', ['forum_id', [$this->id, '=']])[0];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -396,16 +396,6 @@ class Forums
|
|||
'post_id' => [Database::lastInsertID(), '='],
|
||||
]);
|
||||
|
||||
// Update the topic with the last details
|
||||
Database::update('topics', [
|
||||
[
|
||||
'topic_last_reply' => $getPost['post_id'],
|
||||
],
|
||||
[
|
||||
'topic_id' => [$getPost['topic_id'], '='],
|
||||
],
|
||||
]);
|
||||
|
||||
// Return success
|
||||
return [1, 'SUCCESS', $getPost['forum_id'], $getPost['topic_id'], $getPost['post_id']];
|
||||
}
|
||||
|
|
54
_sakura/components/Post.php
Normal file
54
_sakura/components/Post.php
Normal file
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
/*
|
||||
* Post class
|
||||
*/
|
||||
|
||||
namespace Sakura;
|
||||
|
||||
/**
|
||||
* Class Post
|
||||
* @package Sakura
|
||||
*/
|
||||
class Post
|
||||
{
|
||||
// Variables
|
||||
public $id = 0;
|
||||
public $thread = 0;
|
||||
public $forum = 0;
|
||||
public $poster = [];
|
||||
public $ip = "";
|
||||
public $time = 0;
|
||||
public $parse = 0;
|
||||
public $signature = 0;
|
||||
public $emotes = 0;
|
||||
public $subject = "";
|
||||
public $text = "";
|
||||
public $editTime = 0;
|
||||
public $editReason = "";
|
||||
public $editUser = [];
|
||||
|
||||
// Constructor
|
||||
public function __construct($postId)
|
||||
{
|
||||
// Attempt to get the database row
|
||||
$postRow = Database::fetch('posts', false, ['post_id' => [$postId, '=']]);
|
||||
|
||||
// Assign data if a row was returned
|
||||
if ($postRow) {
|
||||
$this->id = $postRow['post_id'];
|
||||
$this->thread = $postRow['topic_id'];
|
||||
$this->forum = $postRow['forum_id'];
|
||||
$this->poster = new User($postRow['poster_id']);
|
||||
$this->ip = $postRow['poster_ip'];
|
||||
$this->time = $postRow['post_time'];
|
||||
$this->parse = $postRow['post_parse'];
|
||||
$this->signature = $postRow['post_signature'];
|
||||
$this->emotes = $postRow['post_emotes'];
|
||||
$this->subject = $postRow['post_subject'];
|
||||
$this->text = $postRow['post_text'];
|
||||
$this->editTime = $postRow['post_edit_time'];
|
||||
$this->editReason = $postRow['post_edit_reason'];
|
||||
$this->editUser = new User($postRow['post_edit_user']);
|
||||
}
|
||||
}
|
||||
}
|
52
_sakura/components/Thread.php
Normal file
52
_sakura/components/Thread.php
Normal file
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
/*
|
||||
* Thread class
|
||||
*/
|
||||
|
||||
namespace Sakura;
|
||||
|
||||
/**
|
||||
* Class Thread
|
||||
* @package Sakura
|
||||
*/
|
||||
class Thread
|
||||
{
|
||||
// Variables
|
||||
public $id = 0;
|
||||
public $forum = 0;
|
||||
public $hidden = 0;
|
||||
public $title = "";
|
||||
public $time = 0;
|
||||
public $timeLimit = 0;
|
||||
public $views = 0;
|
||||
public $status = 0;
|
||||
public $statusChange = 0;
|
||||
public $type = 0;
|
||||
|
||||
// Constructor
|
||||
public function __construct($threadId)
|
||||
{
|
||||
// Attempt to get the database row
|
||||
$threadRow = Database::fetch('topics', false, ['topic_id' => [$threadId, '=']]);
|
||||
|
||||
// Assign data if a row was returned
|
||||
if ($threadRow) {
|
||||
$this->id = $threadRow['topic_id'];
|
||||
$this->forum = $threadRow['forum_id'];
|
||||
$this->hidden = $threadRow['topic_hidden'];
|
||||
$this->title = $threadRow['topic_title'];
|
||||
$this->time = $threadRow['topic_time'];
|
||||
$this->timeLimit = $threadRow['topic_time_limit'];
|
||||
$this->views = $threadRow['topic_views'];
|
||||
$this->status = $threadRow['topic_status'];
|
||||
$this->statusChange = $threadRow['topic_status_change'];
|
||||
$this->type = $threadRow['topic_type'];
|
||||
}
|
||||
}
|
||||
|
||||
// Reply count
|
||||
public function replyCount()
|
||||
{
|
||||
return Database::count('posts', ['topic_id', [$this->id, '=']])[0];
|
||||
}
|
||||
}
|
|
@ -8,7 +8,7 @@
|
|||
namespace Sakura;
|
||||
|
||||
// Define Sakura version
|
||||
define('SAKURA_VERSION', '20151112');
|
||||
define('SAKURA_VERSION', '20151113');
|
||||
define('SAKURA_VLABEL', 'Eminence');
|
||||
define('SAKURA_COLOUR', '#6C3082');
|
||||
define('SAKURA_STABLE', false);
|
||||
|
@ -27,27 +27,13 @@ if (version_compare(phpversion(), '5.4.0', '<')) {
|
|||
die('<h3>Sakura requires at least PHP 5.4.0, please upgrade to a newer PHP version.</h3>');
|
||||
}
|
||||
|
||||
// Include libraries
|
||||
// Include third-party libraries
|
||||
require_once ROOT . '_sakura/vendor/autoload.php';
|
||||
require_once ROOT . '_sakura/components/Main.php';
|
||||
require_once ROOT . '_sakura/components/Hashing.php';
|
||||
require_once ROOT . '_sakura/components/Config.php';
|
||||
require_once ROOT . '_sakura/components/Database.php';
|
||||
require_once ROOT . '_sakura/components/Urls.php';
|
||||
require_once ROOT . '_sakura/components/Template.php';
|
||||
require_once ROOT . '_sakura/components/Permissions.php';
|
||||
require_once ROOT . '_sakura/components/Session.php';
|
||||
require_once ROOT . '_sakura/components/User.php';
|
||||
require_once ROOT . '_sakura/components/Rank.php';
|
||||
require_once ROOT . '_sakura/components/Users.php';
|
||||
require_once ROOT . '_sakura/components/Forums.php';
|
||||
require_once ROOT . '_sakura/components/News.php';
|
||||
require_once ROOT . '_sakura/components/Comments.php';
|
||||
require_once ROOT . '_sakura/components/Manage.php';
|
||||
require_once ROOT . '_sakura/components/Bans.php';
|
||||
require_once ROOT . '_sakura/components/Whois.php';
|
||||
require_once ROOT . '_sakura/components/Payments.php';
|
||||
require_once ROOT . '_sakura/components/Trick.php';
|
||||
|
||||
// Include components
|
||||
foreach (glob(ROOT . '_sakura/components/*.php') as $component) {
|
||||
require_once $component;
|
||||
}
|
||||
|
||||
// Include database extensions
|
||||
foreach (glob(ROOT . '_sakura/components/database/*.php') as $driver) {
|
||||
|
|
Reference in a new issue