the bread of the future
|
@ -5,332 +5,364 @@ SET time_zone = '+00:00';
|
||||||
SET foreign_key_checks = 0;
|
SET foreign_key_checks = 0;
|
||||||
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
|
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
|
||||||
|
|
||||||
USE `flashiidev`;
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_actioncodes`;
|
DROP DATABASE IF EXISTS `sakura-development`;
|
||||||
CREATE TABLE `fii_actioncodes` (
|
CREATE DATABASE `sakura-development` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
|
||||||
`id` bigint(255) NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
USE `sakura-development`;
|
||||||
`action` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Action identifier so the backend knows what to do.',
|
|
||||||
`userid` bigint(255) NOT NULL COMMENT 'ID of the user that would be affected by this action',
|
|
||||||
`actkey` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'The URL key for using this code.',
|
|
||||||
`instruction` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Things the backend should do upon using this code',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_apikeys`;
|
DROP TABLE IF EXISTS `sakura_actioncodes`;
|
||||||
CREATE TABLE `fii_apikeys` (
|
CREATE TABLE `sakura_actioncodes` (
|
||||||
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
`id` bigint(255) NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
`owner` bigint(128) unsigned NOT NULL COMMENT 'ID of user that owns this API key.',
|
`action` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Action identifier so the backend knows what to do.',
|
||||||
`apikey` varchar(32) COLLATE utf8_bin NOT NULL COMMENT 'The API key.',
|
`userid` bigint(255) NOT NULL COMMENT 'ID of the user that would be affected by this action',
|
||||||
PRIMARY KEY (`id`)
|
`actkey` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'The URL key for using this code.',
|
||||||
|
`instruction` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Things the backend should do upon using this code',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_bans`;
|
DROP TABLE IF EXISTS `sakura_apikeys`;
|
||||||
CREATE TABLE `fii_bans` (
|
CREATE TABLE `sakura_apikeys` (
|
||||||
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
`uid` bigint(128) unsigned NOT NULL COMMENT 'ID of user that was banned, 0 for just an IP ban.',
|
`owner` bigint(128) unsigned NOT NULL COMMENT 'ID of user that owns this API key.',
|
||||||
`ip` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IP to disallow access to the site.',
|
`apikey` varchar(32) COLLATE utf8_bin NOT NULL COMMENT 'The API key.',
|
||||||
`type` tinyint(1) unsigned NOT NULL COMMENT 'The type of ban that should be enforced.',
|
PRIMARY KEY (`id`)
|
||||||
`timestamp` int(64) unsigned NOT NULL COMMENT 'Timestamp when the user was banned.',
|
|
||||||
`bannedtill` int(64) unsigned NOT NULL COMMENT 'Timestamp when the user should regain access to the site.',
|
|
||||||
`modid` bigint(128) unsigned NOT NULL COMMENT 'ID of moderator that banned this user,',
|
|
||||||
`modip` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IP of moderator that banned this user.',
|
|
||||||
`reason` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Reason given for the ban.',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_config`;
|
DROP TABLE IF EXISTS `sakura_bans`;
|
||||||
CREATE TABLE `fii_config` (
|
CREATE TABLE `sakura_bans` (
|
||||||
`config_name` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Array key for configuration value',
|
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
`config_value` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'The value, obviously.'
|
`uid` bigint(128) unsigned NOT NULL COMMENT 'ID of user that was banned, 0 for just an IP ban.',
|
||||||
|
`ip` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IP to disallow access to the site.',
|
||||||
|
`type` tinyint(1) unsigned NOT NULL COMMENT 'The type of ban that should be enforced.',
|
||||||
|
`timestamp` int(64) unsigned NOT NULL COMMENT 'Timestamp when the user was banned.',
|
||||||
|
`bannedtill` int(64) unsigned NOT NULL COMMENT 'Timestamp when the user should regain access to the site.',
|
||||||
|
`modid` bigint(128) unsigned NOT NULL COMMENT 'ID of moderator that banned this user,',
|
||||||
|
`modip` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IP of moderator that banned this user.',
|
||||||
|
`reason` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Reason given for the ban.',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
TRUNCATE `fii_config`;
|
|
||||||
INSERT INTO `fii_config` (`config_name`, `config_value`) VALUES
|
DROP TABLE IF EXISTS `sakura_config`;
|
||||||
('recaptcha_public', ''),
|
CREATE TABLE `sakura_config` (
|
||||||
('recaptcha_private', ''),
|
`config_name` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Array key for configuration value',
|
||||||
('charset', 'utf-8'),
|
`config_value` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'The value, obviously.'
|
||||||
('cookie_prefix', 'sakura_'),
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
('cookie_domain', 'yourdomain.com'),
|
|
||||||
('cookie_path', '/'),
|
INSERT INTO `sakura_config` (`config_name`, `config_value`) VALUES
|
||||||
('site_style', 'yuuno'),
|
('recaptcha_public', ''),
|
||||||
('manage_style', 'broomcloset'),
|
('recaptcha_private', ''),
|
||||||
('allow_registration', '0'),
|
('charset', 'utf-8'),
|
||||||
('smtp_server', ''),
|
('cookie_prefix', 'sakura_'),
|
||||||
('smtp_auth', '1'),
|
('cookie_domain', 'yourdomain.com'),
|
||||||
('smtp_secure', ''),
|
('cookie_path', '/'),
|
||||||
('smtp_port', ''),
|
('site_style', 'yuuno'),
|
||||||
('smtp_username', ''),
|
('manage_style', 'broomcloset'),
|
||||||
('smtp_password', ''),
|
('allow_registration', '0'),
|
||||||
('smtp_replyto_mail', ''),
|
('smtp_server', ''),
|
||||||
('smtp_replyto_name', ''),
|
('smtp_auth', '0'),
|
||||||
('smtp_from_email', ''),
|
('smtp_secure', ''),
|
||||||
('smtp_from_name', ''),
|
('smtp_port', '25'),
|
||||||
('sitename', 'Sakura'),
|
('smtp_username', ''),
|
||||||
('recaptcha', '0'),
|
('smtp_password', ''),
|
||||||
('require_activation', '1'),
|
('smtp_replyto_mail', ''),
|
||||||
|
('smtp_replyto_name', ''),
|
||||||
|
('smtp_from_email', ''),
|
||||||
|
('smtp_from_name', 'Sakura No Reply'),
|
||||||
|
('sitename', 'Sakura'),
|
||||||
|
('recaptcha', '1'),
|
||||||
|
('require_activation', '1'),
|
||||||
('require_registration_code', '0'),
|
('require_registration_code', '0'),
|
||||||
('disable_registration', '0'),
|
('disable_registration', '0'),
|
||||||
('max_reg_keys', '5'),
|
('max_reg_keys', '5'),
|
||||||
('mail_signature', 'Team Flashii'),
|
('mail_signature', 'Circlestorm'),
|
||||||
('lock_authentication', '0'),
|
('lock_authentication', '0'),
|
||||||
('min_entropy', '96');
|
('min_entropy', '96'),
|
||||||
|
('sitedesc', 'Live development environment for the script that powers Flashii.net called Sakura.'),
|
||||||
DROP TABLE IF EXISTS `fii_faq`;
|
('sitetags', '[\"Flashii\",\"Media\",\"Flashwave\",\"Circle\",\"Zeniea\",\"MalwareUp\",\"Cybernetics\",\"Saibateku\",\"Community\",\"osu!\",\"osu\"]');
|
||||||
CREATE TABLE `fii_faq` (
|
|
||||||
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'MySQL Generated ID used for sorting.',
|
|
||||||
`short` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Used for linking directly to a question.',
|
|
||||||
`question` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'The question.',
|
|
||||||
`answer` text COLLATE utf8_bin NOT NULL COMMENT 'The answer.',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_forums`;
|
DROP TABLE IF EXISTS `sakura_faq`;
|
||||||
CREATE TABLE `fii_forums` (
|
CREATE TABLE `sakura_faq` (
|
||||||
`forum_id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'MySQL Generated ID used for sorting.',
|
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'MySQL Generated ID used for sorting.',
|
||||||
`forum_name` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Display name of the forum.',
|
`short` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Used for linking directly to a question.',
|
||||||
`forum_desc` text COLLATE utf8_bin NOT NULL COMMENT 'Description of the forum.',
|
`question` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'The question.',
|
||||||
`forum_link` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'If set forum will display as a link.',
|
`answer` text COLLATE utf8_bin NOT NULL COMMENT 'The answer.',
|
||||||
`forum_category` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of the category this forum falls under.',
|
PRIMARY KEY (`id`)
|
||||||
`forum_type` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT 'Forum type, 0 for regular board, 1 for category and 2 for link.',
|
|
||||||
`forum_posts` bigint(128) unsigned NOT NULL DEFAULT '0' COMMENT 'Post count of the forum',
|
|
||||||
`forum_topics` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'Topic count of the forum.',
|
|
||||||
`forum_last_post_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of last post in forum.',
|
|
||||||
`forum_last_poster_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of last poster in forum.',
|
|
||||||
`forum_icon` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Display icon for the forum.',
|
|
||||||
PRIMARY KEY (`forum_id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_infopages`;
|
|
||||||
CREATE TABLE `fii_infopages` (
|
|
||||||
`shorthand` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Name used for calling this page up in the /r/URL',
|
|
||||||
`pagetitle` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title displayed on the top of the page',
|
|
||||||
`content` text COLLATE utf8_bin NOT NULL COMMENT 'Content of the page'
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_messages`;
|
DROP TABLE IF EXISTS `sakura_forums`;
|
||||||
CREATE TABLE `fii_messages` (
|
CREATE TABLE `sakura_forums` (
|
||||||
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
`forum_id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'MySQL Generated ID used for sorting.',
|
||||||
`fromUser` bigint(128) unsigned NOT NULL COMMENT 'ID of the user that sent this message.',
|
`forum_name` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Display name of the forum.',
|
||||||
`toUsers` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IDs of users that should "receive" this message.',
|
`forum_desc` text COLLATE utf8_bin NOT NULL COMMENT 'Description of the forum.',
|
||||||
`readBy` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IDs of users who read this message.',
|
`forum_link` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'If set forum will display as a link.',
|
||||||
`deletedBy` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IDs of users who deleted this message, if all are set to true delete database entry.',
|
`forum_category` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of the category this forum falls under.',
|
||||||
`date` int(64) unsigned NOT NULL COMMENT 'Timestamp of the time this message was sent',
|
`forum_type` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT 'Forum type, 0 for regular board, 1 for category and 2 for link.',
|
||||||
`title` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title of the message',
|
`forum_posts` bigint(128) unsigned NOT NULL DEFAULT '0' COMMENT 'Post count of the forum',
|
||||||
`content` text COLLATE utf8_bin NOT NULL COMMENT 'Contents of the message.',
|
`forum_topics` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'Topic count of the forum.',
|
||||||
PRIMARY KEY (`id`)
|
`forum_last_post_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of last post in forum.',
|
||||||
|
`forum_last_poster_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of last poster in forum.',
|
||||||
|
`forum_icon` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Display icon for the forum.',
|
||||||
|
PRIMARY KEY (`forum_id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_news`;
|
DROP TABLE IF EXISTS `sakura_friends`;
|
||||||
CREATE TABLE `fii_news` (
|
CREATE TABLE `sakura_friends` (
|
||||||
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
`uid` bigint(255) unsigned NOT NULL COMMENT 'ID of the user that added the friend.',
|
||||||
`uid` bigint(128) unsigned NOT NULL COMMENT 'ID of user who posted this news message.',
|
`fid` bigint(255) unsigned NOT NULL COMMENT 'ID of the user that was added as a friend.',
|
||||||
`date` int(64) unsigned NOT NULL COMMENT 'News post timestamp.',
|
`timestamp` int(11) unsigned NOT NULL COMMENT 'Timestamp of action.'
|
||||||
`title` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title of the post.',
|
|
||||||
`content` text COLLATE utf8_bin NOT NULL COMMENT 'Contents of the post',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_notifications`;
|
|
||||||
CREATE TABLE `fii_notifications` (
|
|
||||||
`id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
|
||||||
`uid` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'User ID this notification is intended for.',
|
|
||||||
`timestamp` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Timestamp when this notification was created.',
|
|
||||||
`notif_read` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Toggle for unread and read.',
|
|
||||||
`notif_sound` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Toggle if a sound should be played upon receiving the notification.',
|
|
||||||
`notif_title` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title displayed on the notification.',
|
|
||||||
`notif_text` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Text displayed.',
|
|
||||||
`notif_link` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Link (empty for no link).',
|
|
||||||
`notif_img` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Image path, prefix with font: to use a font class instead of an image.',
|
|
||||||
`notif_timeout` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'How long the notification should stay on screen in milliseconds, 0 for forever.',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_posts`;
|
|
||||||
CREATE TABLE `fii_posts` (
|
|
||||||
`post_id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'MySQL Generated ID used for sorting.',
|
|
||||||
`topic_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of topic this post is a part of.',
|
|
||||||
`forum_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of forum this was posted in.',
|
|
||||||
`poster_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of poster of this post.',
|
|
||||||
`poster_ip` varchar(40) COLLATE utf8_bin NOT NULL COMMENT 'IP of poster.',
|
|
||||||
`post_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Time this post was made.',
|
|
||||||
`enable_markdown` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Toggle if markdown should be enabled.',
|
|
||||||
`enable_sig` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Toggle if signature should be shown.',
|
|
||||||
`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.',
|
|
||||||
`post_edit_reason` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Reason this was edited.',
|
|
||||||
`post_edit_user` int(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of user that edited.',
|
|
||||||
PRIMARY KEY (`post_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_profilefields`;
|
DROP TABLE IF EXISTS `sakura_infopages`;
|
||||||
CREATE TABLE `fii_profilefields` (
|
CREATE TABLE `sakura_infopages` (
|
||||||
`id` int(64) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID used for ordering on the userpage.',
|
`shorthand` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Name used for calling this page up in the /r/URL',
|
||||||
`name` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Name of the field.',
|
`pagetitle` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title displayed on the top of the page',
|
||||||
`formtype` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Type attribute in the input element.',
|
`content` text COLLATE utf8_bin NOT NULL COMMENT 'Content of the page'
|
||||||
`islink` tinyint(1) unsigned NOT NULL COMMENT 'Set if this value should be put in a href.',
|
|
||||||
`linkformat` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'If the form is a link how should it be formatted? {{ VAL }} gets replace with the value.',
|
|
||||||
`description` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Description of the field displayed in the control panel.',
|
|
||||||
`additional` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Undocumented JSON array containing special options if needed (probably only going to be used for the YouTube field).',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_ranks`;
|
|
||||||
CREATE TABLE `fii_ranks` (
|
|
||||||
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
|
||||||
`name` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Display name of the rank.',
|
|
||||||
`multi` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Can the rank name have an s at the end?',
|
|
||||||
`colour` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Colour used for the username of a member of this rank.',
|
|
||||||
`description` text COLLATE utf8_bin NOT NULL COMMENT 'A description of what a user of this rank can do/is supposed to do.',
|
|
||||||
`title` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Default user title if user has none set.',
|
|
||||||
`is_premium` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Flag to set if the user group is a premium group.',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
TRUNCATE `fii_ranks`;
|
|
||||||
INSERT INTO `fii_ranks` (`id`, `name`, `multi`, `colour`, `description`, `title`, `is_premium`) VALUES
|
|
||||||
(1, 'Deactivated', 0, '#555', 'Users that are yet to be activated or that deactivated their own account.', 'Deactivated', 0),
|
|
||||||
(2, 'Regular user', 1, 'inherit', 'Regular users with regular permissions.', 'Regular user', 0),
|
|
||||||
(3, 'Site moderator', 1, '#0A0', 'Users with special permissions like being able to ban and modify users if needed.', 'Staff', 1),
|
|
||||||
(4, 'Administrator', 1, '#C00', 'Users that manage the server and everything around that.', 'Administrator', 1),
|
|
||||||
(5, 'Developer', 1, '#824CA0', 'Users that either create or test new features of the site.', 'Staff', 1),
|
|
||||||
(6, 'Bot', 1, '#9E8DA7', 'Reserved user accounts for services.', 'Bot', 0),
|
|
||||||
(7, 'Chat moderator', 1, '#09F', 'Moderators of the chat room.', 'Staff', 1),
|
|
||||||
(8, 'Tenshi', 0, '#EE9400', 'Users that donated $5.00 or more in order to keep the site and it\'s services alive!', 'Tenshi', 1),
|
|
||||||
(9, 'Alumnii', 0, '#FF69B4', 'People who have contributed to the community but have moved on or resigned.', 'Alumnii', 1);
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_regcodes`;
|
|
||||||
CREATE TABLE `fii_regcodes` (
|
|
||||||
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
|
||||||
`code` varchar(32) COLLATE utf8_bin NOT NULL COMMENT 'Randomly generated registration key.',
|
|
||||||
`created_by` bigint(128) unsigned NOT NULL COMMENT 'ID of user who generated this code.',
|
|
||||||
`used_by` bigint(128) unsigned NOT NULL COMMENT 'ID of user who used this code.',
|
|
||||||
`key_used` tinyint(1) unsigned NOT NULL COMMENT 'Boolean for setting this key as used.',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_sessions`;
|
|
||||||
CREATE TABLE `fii_sessions` (
|
|
||||||
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management. ',
|
|
||||||
`userip` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IP of the user this session is spawned for.',
|
|
||||||
`useragent` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'User agent of the user this session is spawned for.',
|
|
||||||
`userid` bigint(128) unsigned NOT NULL COMMENT 'ID of the user this session is spawned for. ',
|
|
||||||
`skey` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Session key, allow direct access to the user''s account. ',
|
|
||||||
`started` int(64) unsigned NOT NULL COMMENT 'The timestamp for when the session was started. ',
|
|
||||||
`expire` int(64) unsigned NOT NULL COMMENT 'The timestamp for when this session should end, -1 for permanent. ',
|
|
||||||
`remember` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'If set to 1 session will be extended each time a page is loaded.',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_sock_perms`;
|
|
||||||
CREATE TABLE `fii_sock_perms` (
|
|
||||||
`rid` bigint(128) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of rank that this permission counts for (set to 0 if user).',
|
|
||||||
`uid` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of the user this permission counts for (set to 0 if rank).',
|
|
||||||
`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;
|
|
||||||
|
|
||||||
TRUNCATE `fii_sock_perms`;
|
|
||||||
INSERT INTO `fii_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'),
|
|
||||||
(0, 1, '1,945,1,1,1,2');
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_tenshi`;
|
|
||||||
CREATE TABLE `fii_tenshi` (
|
|
||||||
`id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
|
||||||
`startdate` int(64) unsigned NOT NULL COMMENT 'Purchase timestamp.',
|
|
||||||
`uid` bigint(255) unsigned NOT NULL COMMENT 'ID of the user that purchased Tenshi.',
|
|
||||||
`expiredate` int(64) unsigned NOT NULL COMMENT 'Expiration timestamp.',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_topics`;
|
DROP TABLE IF EXISTS `sakura_logs`;
|
||||||
CREATE TABLE `fii_topics` (
|
CREATE TABLE `sakura_logs` (
|
||||||
`topic_id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'MySQL Generated ID used for sorting.',
|
`id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
`forum_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of forum this topic was created in.',
|
`uid` bigint(255) unsigned NOT NULL COMMENT 'User ID of user that took this action.',
|
||||||
`topic_hidden` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Boolean to set the topic as hidden.',
|
`action` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Action identifier.',
|
||||||
`topic_title` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title of the topic.',
|
`attribs` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Optional attributes, vsprintf() style.',
|
||||||
`topic_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Timestamp when the topic was created.',
|
PRIMARY KEY (`id`)
|
||||||
`topic_time_limit` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'After how long a topic should be locked.',
|
|
||||||
`topic_last_reply` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Last time a post was posted in this topic.',
|
|
||||||
`topic_views` bigint(64) unsigned NOT NULL DEFAULT '0' COMMENT 'Amount of times the topic has been viewed.',
|
|
||||||
`topic_replies` bigint(128) unsigned NOT NULL DEFAULT '0' COMMENT 'Amount of replies the topic has.',
|
|
||||||
`topic_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'Status of topic.',
|
|
||||||
`topic_status_change` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Date the topic status was changed (used for deletion cooldown as well).',
|
|
||||||
`topic_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'Type of the topic.',
|
|
||||||
`topic_first_post_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of first post made in this topic.',
|
|
||||||
`topic_first_poster_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'User ID of person who made the first post.',
|
|
||||||
`topic_last_post_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of last post made in this topic.',
|
|
||||||
`topic_last_poster_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'User ID of person who made the last post.',
|
|
||||||
PRIMARY KEY (`topic_id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_users`;
|
DROP TABLE IF EXISTS `sakura_logtypes`;
|
||||||
CREATE TABLE `fii_users` (
|
CREATE TABLE `sakura_logtypes` (
|
||||||
`id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management. ',
|
`id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Identifier of action (has to match things in the logs table).',
|
||||||
`username` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Username set at registration.',
|
`string` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'String to format using vsprintf and the attributes in the logs table.'
|
||||||
`username_clean` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'A more cleaned up version of the username for backend usage.',
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
`password_hash` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Hashing algo used for the password hash.',
|
|
||||||
`password_salt` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Salt used for the password hash.',
|
|
||||||
`password_algo` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Algorithm used for the password hash.',
|
|
||||||
`password_iter` int(16) unsigned NOT NULL COMMENT 'Password hash iterations.',
|
|
||||||
`password_chan` int(16) unsigned NOT NULL COMMENT 'Last time the user changed their password.',
|
|
||||||
`password_new` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Field with array containing new password data beit that they requested a password change.',
|
|
||||||
`email` varchar(32) COLLATE utf8_bin NOT NULL COMMENT 'E-mail of the user for password restoring etc.',
|
|
||||||
`rank_main` mediumint(4) unsigned NOT NULL DEFAULT '0' COMMENT 'Main rank of the user.',
|
|
||||||
`ranks` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '[0]' COMMENT 'Array containing the ranks the user is part of.',
|
|
||||||
`name_colour` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Additional name colour, when empty colour defaults to group colour.',
|
|
||||||
`register_ip` varchar(16) COLLATE utf8_bin NOT NULL COMMENT 'IP used for the creation of this account.',
|
|
||||||
`last_ip` varchar(16) COLLATE utf8_bin NOT NULL COMMENT 'Last IP that was used to log into this account.',
|
|
||||||
`usertitle` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT 'Custom user title of the user, when empty reverts to their derault group name.',
|
|
||||||
`profile_md` text COLLATE utf8_bin COMMENT 'Markdown customise page thing on the profile of the user.',
|
|
||||||
`avatar_url` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Full url to the user''s avatar.',
|
|
||||||
`background_url` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Full url to the user''s profile background.',
|
|
||||||
`regdate` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'Timestamp of account creation.',
|
|
||||||
`lastdate` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'Last time anything was done on this account.',
|
|
||||||
`lastunamechange` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'Last username change.',
|
|
||||||
`birthday` varchar(16) COLLATE utf8_bin DEFAULT NULL COMMENT 'Birthdate of the user.',
|
|
||||||
`posts` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'Amount of posts the user has made on the forum.',
|
|
||||||
`country` varchar(4) COLLATE utf8_bin NOT NULL COMMENT 'Contains ISO 3166 country code of user''s registration location.',
|
|
||||||
`profile_data` text COLLATE utf8_bin NOT NULL COMMENT 'Modular array containing profile data.',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `username_clean` (`username_clean`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `fii_warnings`;
|
DROP TABLE IF EXISTS `sakura_messages`;
|
||||||
CREATE TABLE `fii_warnings` (
|
CREATE TABLE `sakura_messages` (
|
||||||
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
`uid` bigint(128) unsigned NOT NULL COMMENT 'ID of user that was warned.',
|
`from_user` bigint(255) unsigned NOT NULL COMMENT 'ID of the user that sent this message.',
|
||||||
`iid` bigint(128) unsigned NOT NULL COMMENT 'ID of the user that issued the warning.',
|
`to_user` bigint(255) unsigned NOT NULL COMMENT 'ID of user that should receive this message.',
|
||||||
`issued` int(64) unsigned NOT NULL COMMENT 'Timestamp of the date the warning was issued.',
|
`read` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IDs of users who read this message.',
|
||||||
`expire` int(64) unsigned NOT NULL COMMENT 'Timstamp when the warning should expire, 0 for a permanent warning.',
|
`deleted` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Indicator if one of the parties deleted the message, if it is already 1 the script will remove this row.',
|
||||||
`reason` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Reason for the warning.',
|
`timestamp` int(11) unsigned NOT NULL COMMENT 'Timestamp of the time this message was sent',
|
||||||
PRIMARY KEY (`id`)
|
`subject` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title of the message',
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
`content` text COLLATE utf8_bin NOT NULL COMMENT 'Contents of the message.',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
-- 2015-05-09 00:57:52
|
DROP TABLE IF EXISTS `sakura_news`;
|
||||||
|
CREATE TABLE `sakura_news` (
|
||||||
|
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
|
`uid` bigint(128) unsigned NOT NULL COMMENT 'ID of user who posted this news message.',
|
||||||
|
`date` int(64) unsigned NOT NULL COMMENT 'News post timestamp.',
|
||||||
|
`title` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title of the post.',
|
||||||
|
`content` text COLLATE utf8_bin NOT NULL COMMENT 'Contents of the post',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `sakura_notifications`;
|
||||||
|
CREATE TABLE `sakura_notifications` (
|
||||||
|
`id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
|
`uid` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'User ID this notification is intended for.',
|
||||||
|
`timestamp` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Timestamp when this notification was created.',
|
||||||
|
`notif_read` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Toggle for unread and read.',
|
||||||
|
`notif_sound` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Toggle if a sound should be played upon receiving the notification.',
|
||||||
|
`notif_title` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title displayed on the notification.',
|
||||||
|
`notif_text` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Text displayed.',
|
||||||
|
`notif_link` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Link (empty for no link).',
|
||||||
|
`notif_img` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Image path, prefix with font: to use a font class instead of an image.',
|
||||||
|
`notif_timeout` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'How long the notification should stay on screen in milliseconds, 0 for forever.',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `sakura_posts`;
|
||||||
|
CREATE TABLE `sakura_posts` (
|
||||||
|
`post_id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'MySQL Generated ID used for sorting.',
|
||||||
|
`topic_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of topic this post is a part of.',
|
||||||
|
`forum_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of forum this was posted in.',
|
||||||
|
`poster_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of poster of this post.',
|
||||||
|
`poster_ip` varchar(40) COLLATE utf8_bin NOT NULL COMMENT 'IP of poster.',
|
||||||
|
`post_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Time this post was made.',
|
||||||
|
`enable_markdown` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Toggle if markdown should be enabled.',
|
||||||
|
`enable_sig` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Toggle if signature should be shown.',
|
||||||
|
`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.',
|
||||||
|
`post_edit_reason` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Reason this was edited.',
|
||||||
|
`post_edit_user` int(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of user that edited.',
|
||||||
|
PRIMARY KEY (`post_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `sakura_profilefields`;
|
||||||
|
CREATE TABLE `sakura_profilefields` (
|
||||||
|
`id` int(64) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID used for ordering on the userpage.',
|
||||||
|
`name` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Name of the field.',
|
||||||
|
`formtype` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Type attribute in the input element.',
|
||||||
|
`islink` tinyint(1) unsigned NOT NULL COMMENT 'Set if this value should be put in a href.',
|
||||||
|
`linkformat` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'If the form is a link how should it be formatted? {{ VAL }} gets replace with the value.',
|
||||||
|
`description` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Description of the field displayed in the control panel.',
|
||||||
|
`additional` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Undocumented JSON array containing special options if needed (probably only going to be used for the YouTube field).',
|
||||||
|
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 <b>do not</b> 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` (
|
||||||
|
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
|
`name` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Display name of the rank.',
|
||||||
|
`multi` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Can the rank name have an s at the end?',
|
||||||
|
`colour` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Colour used for the username of a member of this rank.',
|
||||||
|
`description` text COLLATE utf8_bin NOT NULL COMMENT 'A description of what a user of this rank can do/is supposed to do.',
|
||||||
|
`title` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Default user title if user has none set.',
|
||||||
|
`is_premium` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Flag to set if the user group is a premium group.',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `sakura_regcodes`;
|
||||||
|
CREATE TABLE `sakura_regcodes` (
|
||||||
|
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
|
`code` varchar(32) COLLATE utf8_bin NOT NULL COMMENT 'Randomly generated registration key.',
|
||||||
|
`created_by` bigint(128) unsigned NOT NULL COMMENT 'ID of user who generated this code.',
|
||||||
|
`used_by` bigint(128) unsigned NOT NULL COMMENT 'ID of user who used this code.',
|
||||||
|
`key_used` tinyint(1) unsigned NOT NULL COMMENT 'Boolean for setting this key as used.',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `sakura_sessions`;
|
||||||
|
CREATE TABLE `sakura_sessions` (
|
||||||
|
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management. ',
|
||||||
|
`userip` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'IP of the user this session is spawned for.',
|
||||||
|
`useragent` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'User agent of the user this session is spawned for.',
|
||||||
|
`userid` bigint(128) unsigned NOT NULL COMMENT 'ID of the user this session is spawned for. ',
|
||||||
|
`skey` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Session key, allow direct access to the user''s account. ',
|
||||||
|
`started` int(64) unsigned NOT NULL COMMENT 'The timestamp for when the session was started. ',
|
||||||
|
`expire` int(64) unsigned NOT NULL COMMENT 'The timestamp for when this session should end, -1 for permanent. ',
|
||||||
|
`remember` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'If set to 1 session will be extended each time a page is loaded.',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `sakura_sock_perms`;
|
||||||
|
CREATE TABLE `sakura_sock_perms` (
|
||||||
|
`rid` bigint(128) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of rank that this permission counts for (set to 0 if user).',
|
||||||
|
`uid` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of the user this permission counts for (set to 0 if rank).',
|
||||||
|
`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_tenshi`;
|
||||||
|
CREATE TABLE `sakura_tenshi` (
|
||||||
|
`id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
|
`startdate` int(64) unsigned NOT NULL COMMENT 'Purchase timestamp.',
|
||||||
|
`uid` bigint(255) unsigned NOT NULL COMMENT 'ID of the user that purchased Tenshi.',
|
||||||
|
`expiredate` int(64) unsigned NOT NULL COMMENT 'Expiration timestamp.',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `sakura_topics`;
|
||||||
|
CREATE TABLE `sakura_topics` (
|
||||||
|
`topic_id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'MySQL Generated ID used for sorting.',
|
||||||
|
`forum_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of forum this topic was created in.',
|
||||||
|
`topic_hidden` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Boolean to set the topic as hidden.',
|
||||||
|
`topic_title` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Title of the topic.',
|
||||||
|
`topic_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Timestamp when the topic was created.',
|
||||||
|
`topic_time_limit` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'After how long a topic should be locked.',
|
||||||
|
`topic_last_reply` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Last time a post was posted in this topic.',
|
||||||
|
`topic_views` bigint(64) unsigned NOT NULL DEFAULT '0' COMMENT 'Amount of times the topic has been viewed.',
|
||||||
|
`topic_replies` bigint(128) unsigned NOT NULL DEFAULT '0' COMMENT 'Amount of replies the topic has.',
|
||||||
|
`topic_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'Status of topic.',
|
||||||
|
`topic_status_change` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Date the topic status was changed (used for deletion cooldown as well).',
|
||||||
|
`topic_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'Type of the topic.',
|
||||||
|
`topic_first_post_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of first post made in this topic.',
|
||||||
|
`topic_first_poster_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'User ID of person who made the first post.',
|
||||||
|
`topic_last_post_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'ID of last post made in this topic.',
|
||||||
|
`topic_last_poster_id` bigint(255) unsigned NOT NULL DEFAULT '0' COMMENT 'User ID of person who made the last post.',
|
||||||
|
PRIMARY KEY (`topic_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `sakura_users`;
|
||||||
|
CREATE TABLE `sakura_users` (
|
||||||
|
`id` bigint(255) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management. ',
|
||||||
|
`username` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Username set at registration.',
|
||||||
|
`username_clean` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'A more cleaned up version of the username for backend usage.',
|
||||||
|
`password_hash` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Hashing algo used for the password hash.',
|
||||||
|
`password_salt` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Salt used for the password hash.',
|
||||||
|
`password_algo` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'Algorithm used for the password hash.',
|
||||||
|
`password_iter` int(16) unsigned NOT NULL COMMENT 'Password hash iterations.',
|
||||||
|
`password_chan` int(16) unsigned NOT NULL COMMENT 'Last time the user changed their password.',
|
||||||
|
`password_new` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Field with array containing new password data beit that they requested a password change.',
|
||||||
|
`email` varchar(32) COLLATE utf8_bin NOT NULL COMMENT 'E-mail of the user for password restoring etc.',
|
||||||
|
`rank_main` mediumint(4) unsigned NOT NULL DEFAULT '0' COMMENT 'Main rank of the user.',
|
||||||
|
`ranks` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '[0]' COMMENT 'Array containing the ranks the user is part of.',
|
||||||
|
`name_colour` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Additional name colour, when empty colour defaults to group colour.',
|
||||||
|
`register_ip` varchar(16) COLLATE utf8_bin NOT NULL COMMENT 'IP used for the creation of this account.',
|
||||||
|
`last_ip` varchar(16) COLLATE utf8_bin NOT NULL COMMENT 'Last IP that was used to log into this account.',
|
||||||
|
`usertitle` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT 'Custom user title of the user, when empty reverts to their derault group name.',
|
||||||
|
`profile_md` text COLLATE utf8_bin COMMENT 'Markdown customise page thing on the profile of the user.',
|
||||||
|
`avatar_url` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Full url to the user''s avatar.',
|
||||||
|
`background_url` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Full url to the user''s profile background.',
|
||||||
|
`regdate` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'Timestamp of account creation.',
|
||||||
|
`lastdate` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'Last time anything was done on this account.',
|
||||||
|
`lastunamechange` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'Last username change.',
|
||||||
|
`birthday` varchar(16) COLLATE utf8_bin DEFAULT NULL COMMENT 'Birthdate of the user.',
|
||||||
|
`posts` int(16) unsigned NOT NULL DEFAULT '0' COMMENT 'Amount of posts the user has made on the forum.',
|
||||||
|
`country` varchar(4) COLLATE utf8_bin NOT NULL COMMENT 'Contains ISO 3166 country code of user''s registration location.',
|
||||||
|
`profile_data` text COLLATE utf8_bin NOT NULL COMMENT 'Modular array containing profile data.',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `username_clean` (`username_clean`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `sakura_warnings`;
|
||||||
|
CREATE TABLE `sakura_warnings` (
|
||||||
|
`id` bigint(128) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Automatically generated ID by MySQL for management.',
|
||||||
|
`uid` bigint(128) unsigned NOT NULL COMMENT 'ID of user that was warned.',
|
||||||
|
`iid` bigint(128) unsigned NOT NULL COMMENT 'ID of the user that issued the warning.',
|
||||||
|
`issued` int(64) unsigned NOT NULL COMMENT 'Timestamp of the date the warning was issued.',
|
||||||
|
`expire` int(64) unsigned NOT NULL COMMENT 'Timstamp when the warning should expire, 0 for a permanent warning.',
|
||||||
|
`reason` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT 'Reason for the warning.',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
|
||||||
|
-- 2015-05-24 14:34:25
|
||||||
|
|
|
@ -12,7 +12,8 @@
|
||||||
"20150509",
|
"20150509",
|
||||||
"20150509.1",
|
"20150509.1",
|
||||||
"20150512",
|
"20150512",
|
||||||
"20150523"
|
"20150523",
|
||||||
|
"20150524"
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -1061,6 +1062,47 @@
|
||||||
"change": "Fixed broken links because of the domainset changes."
|
"change": "Fixed broken links because of the domainset changes."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
"20150524": [
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "UPD",
|
||||||
|
"change": "Move site description and tags to the config."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UPD",
|
||||||
|
"change": "Export SQL structure."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UPD",
|
||||||
|
"change": "Added new favicon."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UPD",
|
||||||
|
"change": "Moved Members button to the user part of the header menu and added a link to search."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UPD",
|
||||||
|
"change": "Redid scroll to top button and added a cute little animation to it."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "REM",
|
||||||
|
"change": "Removed unused code for error logging."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ADD",
|
||||||
|
"change": "Added flag to login function that doesn't set cookies."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ADD",
|
||||||
|
"change": "Added a method to checkLogin to bypass cookies."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UPD",
|
||||||
|
"change": "Made the manage footer sticky to the bottom."
|
||||||
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -555,4 +555,18 @@ class Main {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convert a number to a hexadecimal value
|
||||||
|
public static function toHex($num) {
|
||||||
|
|
||||||
|
// Convert $num to an int if not yet
|
||||||
|
$num = intval($num);
|
||||||
|
|
||||||
|
// Check if it's within the proper range
|
||||||
|
if($num < 0 || $num > 255)
|
||||||
|
return 00;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,27 +48,34 @@ class Users {
|
||||||
];
|
];
|
||||||
|
|
||||||
// Check if a user is logged in
|
// Check if a user is logged in
|
||||||
public static function checkLogin() {
|
public static function checkLogin($uid = null, $sid = null, $bypassCookies = false) {
|
||||||
|
|
||||||
// Check if the cookies are set
|
// Set $uid and $sid if they're null
|
||||||
if(
|
if($uid == null)
|
||||||
!isset($_COOKIE[Configuration::getConfig('cookie_prefix') .'id']) ||
|
$uid = Session::$userId;
|
||||||
!isset($_COOKIE[Configuration::getConfig('cookie_prefix') .'session'])
|
|
||||||
)
|
// ^
|
||||||
return false;
|
if($sid == null)
|
||||||
|
$sid = Session::$sessionId;
|
||||||
|
|
||||||
|
// Check if cookie bypass is false
|
||||||
|
if(!$bypassCookies) {
|
||||||
|
|
||||||
|
// Check if the cookies are set
|
||||||
|
if(!isset($_COOKIE[Configuration::getConfig('cookie_prefix') .'id']) || !isset($_COOKIE[Configuration::getConfig('cookie_prefix') .'session']))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Check if the session exists
|
// Check if the session exists
|
||||||
if(!$session = Session::checkSession(
|
if(!$session = Session::checkSession($uid, $sid))
|
||||||
Session::$userId,
|
|
||||||
Session::$sessionId
|
|
||||||
))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Extend the cookie times if the remember flag is set
|
// Extend the cookie times if the remember flag is set
|
||||||
if($session == 2) {
|
if($session == 2 && !$bypassCookies) {
|
||||||
|
|
||||||
setcookie(Configuration::getConfig('cookie_prefix') .'id', Session::$userId, time() + 604800, Configuration::getConfig('cookie_path'), Configuration::getConfig('cookie_domain'));
|
setcookie(Configuration::getConfig('cookie_prefix') .'id', $uid, time() + 604800, Configuration::getConfig('cookie_path'), Configuration::getConfig('cookie_domain'));
|
||||||
setcookie(Configuration::getConfig('cookie_prefix') .'session', Session::$sessionId, time() + 604800, Configuration::getConfig('cookie_path'), Configuration::getConfig('cookie_domain'));
|
setcookie(Configuration::getConfig('cookie_prefix') .'session', $sid, time() + 604800, Configuration::getConfig('cookie_path'), Configuration::getConfig('cookie_domain'));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,12 +85,12 @@ class Users {
|
||||||
'lastdate' => time()
|
'lastdate' => time()
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'id' => [Session::$userId, '=']
|
'id' => [$uid, '=']
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Redirect people that need to change their password to the new format
|
// Redirect people that need to change their password to the new format
|
||||||
if(self::getUser(Session::$userId)['password_algo'] == 'legacy' && $_SERVER['PHP_SELF'] != '/authenticate.php' && $_SERVER['PHP_SELF'] != '/imageserve.php')
|
if(self::getUser($uid)['password_algo'] == 'legacy' && $_SERVER['PHP_SELF'] != '/authenticate.php' && $_SERVER['PHP_SELF'] != '/imageserve.php')
|
||||||
header('Location: /authenticate.php?legacy=true');
|
header('Location: /authenticate.php?legacy=true');
|
||||||
|
|
||||||
// If everything went through return true
|
// If everything went through return true
|
||||||
|
@ -92,7 +99,7 @@ class Users {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log a user in
|
// Log a user in
|
||||||
public static function login($username, $password, $remember = false) {
|
public static function login($username, $password, $remember = false, $cookies = true) {
|
||||||
|
|
||||||
// Check if authentication is disallowed
|
// Check if authentication is disallowed
|
||||||
if(Configuration::getConfig('lock_authentication'))
|
if(Configuration::getConfig('lock_authentication'))
|
||||||
|
@ -135,8 +142,12 @@ class Users {
|
||||||
$sessionKey = Session::newSession($user['id'], $remember);
|
$sessionKey = Session::newSession($user['id'], $remember);
|
||||||
|
|
||||||
// Set cookies
|
// Set cookies
|
||||||
setcookie(Configuration::getConfig('cookie_prefix') .'id', $user['id'], time() + 604800, Configuration::getConfig('cookie_path'), Configuration::getConfig('cookie_domain'));
|
if($cookies) {
|
||||||
setcookie(Configuration::getConfig('cookie_prefix') .'session', $sessionKey, time() + 604800, Configuration::getConfig('cookie_path'), Configuration::getConfig('cookie_domain'));
|
|
||||||
|
setcookie(Configuration::getConfig('cookie_prefix') .'id', $user['id'], time() + 604800, Configuration::getConfig('cookie_path'), Configuration::getConfig('cookie_domain'));
|
||||||
|
setcookie(Configuration::getConfig('cookie_prefix') .'session', $sessionKey, time() + 604800, Configuration::getConfig('cookie_path'), Configuration::getConfig('cookie_domain'));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Successful login! (also has a thing for the legacy password system)
|
// Successful login! (also has a thing for the legacy password system)
|
||||||
return [1, ($user['password_algo'] == 'legacy' ? 'LEGACY_SUCCESS' : 'LOGIN_SUCESS')];
|
return [1, ($user['password_algo'] == 'legacy' ? 'LEGACY_SUCCESS' : 'LOGIN_SUCESS')];
|
||||||
|
@ -1034,4 +1045,11 @@ class Users {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Checking bans
|
||||||
|
public static function checkBan($uid) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* Sakura C/PMS
|
* Sakura Community Management System
|
||||||
* (c)Flashwave/Flashii.net 2013-2015 <http://flash.moe>
|
* (c)Flashwave/Flashii.net 2013-2015 <http://flash.moe>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
namespace Sakura;
|
namespace Sakura;
|
||||||
|
|
||||||
// Define Sakura version
|
// Define Sakura version
|
||||||
define('SAKURA_VERSION', '20150523');
|
define('SAKURA_VERSION', '20150524');
|
||||||
define('SAKURA_VLABEL', 'Eminence');
|
define('SAKURA_VLABEL', 'Eminence');
|
||||||
define('SAKURA_VTYPE', 'Development');
|
define('SAKURA_VTYPE', 'Development');
|
||||||
define('SAKURA_COLOUR', '#6C3082');
|
define('SAKURA_COLOUR', '#6C3082');
|
||||||
|
@ -18,8 +18,6 @@ define('ROOT', str_replace(basename(__DIR__), '', dirname(__FILE__)));
|
||||||
|
|
||||||
// Error Reporting: 0 for production and -1 for testing
|
// Error Reporting: 0 for production and -1 for testing
|
||||||
error_reporting(-1);
|
error_reporting(-1);
|
||||||
ini_set('log_errors', 1);
|
|
||||||
ini_set('error_log', ROOT .'errors.log');
|
|
||||||
|
|
||||||
// Start output buffering
|
// Start output buffering
|
||||||
ob_start();
|
ob_start();
|
||||||
|
@ -73,6 +71,8 @@ $renderData = array(
|
||||||
'requireregcodes' => Configuration::getConfig('require_registration_code'),
|
'requireregcodes' => Configuration::getConfig('require_registration_code'),
|
||||||
'requireactiveate' => Configuration::getConfig('require_activation'),
|
'requireactiveate' => Configuration::getConfig('require_activation'),
|
||||||
'sitename' => Configuration::getConfig('sitename'),
|
'sitename' => Configuration::getConfig('sitename'),
|
||||||
|
'sitedesc' => Configuration::getConfig('sitedesc'),
|
||||||
|
'sitetags' => implode(", ", json_decode(Configuration::getConfig('sitetags'), true)),
|
||||||
'cookieprefix' => Configuration::getConfig('cookie_prefix'),
|
'cookieprefix' => Configuration::getConfig('cookie_prefix'),
|
||||||
'cookiedomain' => Configuration::getConfig('cookie_domain'),
|
'cookiedomain' => Configuration::getConfig('cookie_domain'),
|
||||||
'cookiepath' => Configuration::getConfig('cookie_path')
|
'cookiepath' => Configuration::getConfig('cookie_path')
|
||||||
|
|
|
@ -106,7 +106,7 @@
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<a href="http://flash.moe">Flashwave</a> /
|
<a href="http://flash.moe">Flashwave</a> /
|
||||||
<a href="http://sakura.flashii.net">Sakura</a> /
|
<a href="http://sakura.flashii.net">Sakura</a> /
|
||||||
<a href="http://github.com/flashii/Sakura">GitHub</a>
|
<a href="http://github.com/circlestorm/Sakura">GitHub</a>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
<div class="error">
|
<div class="error">
|
||||||
{{ error }}
|
{{ error }}
|
||||||
</div>
|
</div>
|
||||||
<p>If you have an account on <a href="https://github.com/" target="_blank">GitHub</a> please go to the <a href="https://github.com/flashii/Sakura/issues" target="_blank">issues section</a> and report the error listed above (do a check to see if it hasn't been reported yet as well).</p>
|
<p>If you have an account on <a href="https://github.com/" target="_blank">GitHub</a> please go to the <a href="https://github.com/circlestorm/Sakura/issues" target="_blank">issues section</a> and report the error listed above (do a check to see if it hasn't been reported yet as well).</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="contact">
|
<div class="contact">
|
||||||
Contact the System Operator at <a href="mailto:me@flash.moe">me@flash.moe</a> or check our <a href="http://status.flashii.net/" target="_blank">Status Page</a> and <a href="http://twitter.com/_flashii" target="_blank">Twitter Account</a> to see if anything is going on.
|
Contact the System Operator at <a href="mailto:me@flash.moe">me@flash.moe</a> or check our <a href="http://status.flashii.net/" target="_blank">Status Page</a> and <a href="http://twitter.com/_flashii" target="_blank">Twitter Account</a> to see if anything is going on.
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<a id="gotop" class="gotop hidden" href="#top"></a>
|
<a id="gotop" class="gotop fa fa-angle-double-up hidden" href="#top"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<div class="ftsections">
|
<div class="ftsections">
|
||||||
<div class="copycentre">Copyright © 2013-2015 <a href="//flash.moe/" target="_blank">Flashwave</a>, <a href="//{{ sakura.urls.main }}/credits">et al</a>.</div>
|
<div class="copycentre">Copyright © 2013-2015 <a href="//flash.moe/" target="_blank">Flashwave</a> & <a href="http://circlestorm.net/" target="_blank">Circlestorm</a>, <a href="//{{ sakura.urls.main }}/credits">et al</a>.</div>
|
||||||
<ul class="ftsection">
|
<ul class="ftsection">
|
||||||
<li class="fthead">General</li>
|
<li class="fthead">General</li>
|
||||||
<li><a href="//{{ sakura.urls.main }}/" title="Flashii Frontpage">Home</a></li>
|
<li><a href="//{{ sakura.urls.main }}/" title="Flashii Frontpage">Home</a></li>
|
||||||
|
@ -15,9 +15,9 @@
|
||||||
<ul class="ftsection">
|
<ul class="ftsection">
|
||||||
<li class="fthead">Search, Status & Social</li>
|
<li class="fthead">Search, Status & Social</li>
|
||||||
<li><a href="//{{ sakura.urls.main }}/search" title="Do full-site search requests">Search</a></li>
|
<li><a href="//{{ sakura.urls.main }}/search" title="Do full-site search requests">Search</a></li>
|
||||||
<li><a href="//status.flashii.net" target="_blank" title="Check the status on the Flashii Server and related services">Server Status</a></li>
|
<li><a href="http://status.flashii.net" target="_blank" title="Check the status on the Flashii Server and related services">Server Status</a></li>
|
||||||
<li><a href="//twitter.com/_flashii" target="_blank" title="Follow us on Twitter for news messages that are too short for the news page">Twitter</a></li>
|
<li><a href="https://twitter.com/_flashii" target="_blank" title="Follow us on Twitter for news messages that are too short for the news page">Twitter</a></li>
|
||||||
<li><a href="//youtube.com/user/flashiinet" target="_blank" title="Our YouTube page where stuff barely ever gets uploaded, mainly used to archive community creations">YouTube</a></li>
|
<li><a href="https://youtube.com/user/flashiinet" target="_blank" title="Our YouTube page where stuff barely ever gets uploaded, mainly used to archive community creations">YouTube</a></li>
|
||||||
<li><a href="//steamcommunity.com/groups/flashiinet" target="_blank" title="Our Steam group, play games with other members on the site">Steam</a></li>
|
<li><a href="//steamcommunity.com/groups/flashiinet" target="_blank" title="Our Steam group, play games with other members on the site">Steam</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="ftsection">
|
<ul class="ftsection">
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
<li><a href="//{{ sakura.urls.main }}/changelog" title="All the changes made to Sakura are listed here">Changelog</a></li>
|
<li><a href="//{{ sakura.urls.main }}/changelog" title="All the changes made to Sakura are listed here">Changelog</a></li>
|
||||||
<li><a href="//{{ sakura.urls.main }}/credits" title="Here everyone who's helped Flashii get to where it is now is listed">Credits</a></li>
|
<li><a href="//{{ sakura.urls.main }}/credits" title="Here everyone who's helped Flashii get to where it is now is listed">Credits</a></li>
|
||||||
<li><a href="//{{ sakura.urls.main }}/feedback" target="_blank" title="Give us feedback on what to do">Feedback & Suggestions</a></li>
|
<li><a href="//{{ sakura.urls.main }}/feedback" target="_blank" title="Give us feedback on what to do">Feedback & Suggestions</a></li>
|
||||||
<li><a href="//github.com/flashii" target="_blank" title="Our Open Source repository thing">Github</a></li>
|
<li><a href="https://github.com/circlestorm" target="_blank" title="Our Open Source repository thing">Github</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
<!-- META -->
|
<!-- META -->
|
||||||
<meta charset="{{ sakura.charset }}" />
|
<meta charset="{{ sakura.charset }}" />
|
||||||
<title>{{ page.title }}</title>
|
<title>{{ page.title }}</title>
|
||||||
<meta name="description" content="Any community that gets its laughs by pretending to be idiots will eventually be flooded by actual idiots who mistakenly believe that they're in good company. Welcome to Flashii." />
|
<meta name="description" content="{{ sakura.sitedesc }}" />
|
||||||
<meta name="keywords" content="Flashii, Media, Flashwave, Circle, Zeniea, MalwareUp, Cybernetics, Saibateku, Community" />
|
<meta name="keywords" content="{{ sakura.sitetags }}" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
|
||||||
{% if page.redirect %}
|
{% if page.redirect %}
|
||||||
<meta http-equiv="refresh" content="3; URL={{ page.redirect }}" />
|
<meta http-equiv="refresh" content="3; URL={{ page.redirect }}" />
|
||||||
|
@ -174,8 +174,8 @@
|
||||||
<a class="menu-item" href="//{{ sakura.urls.main }}/news" title="Here you can read updates on Flashii">News</a>
|
<a class="menu-item" href="//{{ sakura.urls.main }}/news" title="Here you can read updates on Flashii">News</a>
|
||||||
<a class="menu-item" href="//{{ sakura.urls.chat }}/" title="Chat with other Flashii members">Chat</a>
|
<a class="menu-item" href="//{{ sakura.urls.chat }}/" title="Chat with other Flashii members">Chat</a>
|
||||||
<a class="menu-item" href="//{{ sakura.urls.main }}/forum" title="Discuss things with other members but static">Forums</a>
|
<a class="menu-item" href="//{{ sakura.urls.main }}/forum" title="Discuss things with other members but static">Forums</a>
|
||||||
|
<a class="menu-item" href="//{{ sakura.urls.main }}/search" title="Search on Flashii">Search</a>
|
||||||
{% if user.checklogin %}
|
{% if user.checklogin %}
|
||||||
<a class="menu-item" href="//{{ sakura.urls.main }}/members" title="View a list with all the activated user accounts">Members</a>
|
|
||||||
<a class="menu-item menu-donate" href="//{{ sakura.urls.main }}/support" title="Give us money to keep the site (and other services) up and running">Support us</a>
|
<a class="menu-item menu-donate" href="//{{ sakura.urls.main }}/support" title="Give us money to keep the site (and other services) up and running">Support us</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -183,6 +183,7 @@
|
||||||
<!-- User menu, displayed on right side of the bar. -->
|
<!-- User menu, displayed on right side of the bar. -->
|
||||||
{% if user.checklogin %}
|
{% if user.checklogin %}
|
||||||
<a class="menu-item avatar" href="//{{ sakura.urls.main }}/u/{{ user.data.id }}" title="View and edit your own profile" style="background-image: url('//{{ sakura.urls.main }}/a/{{ user.data.id }}'); width: auto; color: {{ user.colour }}; font-weight: 700;">{{ user.data.username }}</a>
|
<a class="menu-item avatar" href="//{{ sakura.urls.main }}/u/{{ user.data.id }}" title="View and edit your own profile" style="background-image: url('//{{ sakura.urls.main }}/a/{{ user.data.id }}'); width: auto; color: {{ user.colour }}; font-weight: 700;">{{ user.data.username }}</a>
|
||||||
|
<a class="menu-item" href="//{{ sakura.urls.main }}/members" title="View a list with all the activated user accounts">Members</a>
|
||||||
<a class="menu-item" href="//{{ sakura.urls.main }}/messages" title="Read your private message">Messages</a>
|
<a class="menu-item" href="//{{ sakura.urls.main }}/messages" title="Read your private message">Messages</a>
|
||||||
<a class="menu-item" href="//{{ sakura.urls.main }}/manage" title="Manage the site">Manage</a>
|
<a class="menu-item" href="//{{ sakura.urls.main }}/manage" title="Manage the site">Manage</a>
|
||||||
<a class="menu-item" href="//{{ sakura.urls.main }}/settings" title="Change your settings">Settings</a>
|
<a class="menu-item" href="//{{ sakura.urls.main }}/settings" title="Change your settings">Settings</a>
|
||||||
|
|
BIN
api/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
|
@ -102,4 +102,13 @@ a:active {
|
||||||
padding-top: 1px;
|
padding-top: 1px;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
box-shadow: 0 0 1em #222;
|
box-shadow: 0 0 1em #222;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Page content */
|
||||||
|
#contentwrapper {
|
||||||
|
padding-bottom: 50px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,7 @@ a.default:active {
|
||||||
}
|
}
|
||||||
a.gotop {
|
a.gotop {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background: url('../images/arrow.png') #111;
|
background: #111;
|
||||||
color: #FFF;
|
color: #FFF;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
|
@ -135,15 +135,27 @@ a.gotop {
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
right: 5px;
|
right: 5px;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
line-height: 60px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 5em;
|
||||||
|
text-shadow: 0 0 5px #FFF;
|
||||||
}
|
}
|
||||||
a.gotop:hover {
|
a.gotop:hover {
|
||||||
opacity: .8;
|
opacity: .8;
|
||||||
box-shadow: 0 0 1em #FFF inset;
|
box-shadow: 0 0 7px #FFF inset;
|
||||||
|
text-shadow: 0 0 7px #FFF;
|
||||||
}
|
}
|
||||||
a.gotop:active {
|
a.gotop:active {
|
||||||
box-shadow: 0 0 1em #FFF inset;
|
box-shadow: 0 0 15px #FFF inset;
|
||||||
|
text-shadow: 0 0 10px #FFF;
|
||||||
opacity: .9;
|
opacity: .9;
|
||||||
}
|
}
|
||||||
|
a.gotop.enter {
|
||||||
|
animation: slideInFromRight 1 .6s;
|
||||||
|
}
|
||||||
|
a.gotop.exit {
|
||||||
|
animation: slideOutToBottom 1 .6s;
|
||||||
|
}
|
||||||
|
|
||||||
/* Keyframe Elements */
|
/* Keyframe Elements */
|
||||||
@keyframes spin {
|
@keyframes spin {
|
||||||
|
|
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.6 KiB |
|
@ -54,21 +54,6 @@ function mobileMenu(mode) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Event watcher for the scroll-to-top button
|
|
||||||
window.onscroll = function() {
|
|
||||||
|
|
||||||
// Assign the gotop button to a variable
|
|
||||||
var gotop = document.getElementById('gotop');
|
|
||||||
|
|
||||||
// If the vertical offset of the page is below 112px (just below the header) keep the button hidden
|
|
||||||
if(this.pageYOffset < 112) {
|
|
||||||
if(gotop.getAttribute('class').indexOf('hidden') < 0)
|
|
||||||
gotop.setAttribute('class', gotop.getAttribute('class') + ' hidden');
|
|
||||||
} else if(this.pageYOffset > 112) // Else show it
|
|
||||||
gotop.setAttribute('class', gotop.getAttribute('class').replace(' hidden', ''));
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// Get the current unix/epoch timestamp
|
// Get the current unix/epoch timestamp
|
||||||
function epochTime() {
|
function epochTime() {
|
||||||
|
|
||||||
|
@ -622,3 +607,57 @@ function convertParallaxPositionValue(pos, dir, neg) {
|
||||||
return position;
|
return position;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Smooth scrolling
|
||||||
|
function scrollTop() {
|
||||||
|
|
||||||
|
// Get the current position
|
||||||
|
var windowY = window.pageYOffset;
|
||||||
|
alert(windowY);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Event watcher for the scroll-to-top button
|
||||||
|
window.onscroll = function() {
|
||||||
|
|
||||||
|
// Assign the gotop button to a variable
|
||||||
|
var gotop = document.getElementById('gotop');
|
||||||
|
|
||||||
|
// If the vertical offset of the page is below 112px (just below the header) keep the button hidden
|
||||||
|
if(this.pageYOffset < 112) {
|
||||||
|
|
||||||
|
// Check if the "exit" is in the classes and if it isn't continue
|
||||||
|
if(gotop.className.indexOf('exit') < 0) {
|
||||||
|
|
||||||
|
// Replace the enter with exit (for the animation)
|
||||||
|
gotop.className = gotop.className.replace('enter', '');
|
||||||
|
gotop.className = gotop.className + ' exit';
|
||||||
|
|
||||||
|
// Check if hidden is set and if not continue
|
||||||
|
if(gotop.className.indexOf('hidden') < 0) {
|
||||||
|
|
||||||
|
// Set a timeout to add the hidden class after 600ms
|
||||||
|
setTimeout(function() {
|
||||||
|
gotop.className = gotop.className + ' hidden';
|
||||||
|
}, 600);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Else show the button
|
||||||
|
} else if(this.pageYOffset > 112) {
|
||||||
|
|
||||||
|
// Check if enter is set
|
||||||
|
if(gotop.className.indexOf('enter') < 0) {
|
||||||
|
|
||||||
|
// Remove the hidden and exit classes and add the enter class
|
||||||
|
gotop.className = gotop.className.replace('hidden', '');
|
||||||
|
gotop.className = gotop.className.replace('exit', '');
|
||||||
|
gotop.className = gotop.className + ' enter';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
main/favicon.ico
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 1.1 KiB |