mirror of
https://github.com/slawkens/myaac.git
synced 2025-10-29 23:16:23 +01:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a2f8759a52 | ||
|
|
4b8c3ffae2 | ||
|
|
97321c9e80 | ||
|
|
2580edadf8 | ||
|
|
8f47b36dc8 | ||
|
|
6cd38ee1ec | ||
|
|
9d92a11fb7 | ||
|
|
44110a9496 | ||
|
|
727f68a575 | ||
|
|
07fd034fe4 | ||
|
|
13ea68cc0c |
@@ -1,5 +1,15 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [1.8.4 - 27.10.2025]
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
* Reimport myaac_ tables on every install, this fixes errors when one table is missing or is duplicated (https://github.com/slawkens/myaac/commit/2580edadf84779f09fd395c21f92019b2c762f83)
|
||||||
|
* Use custom env init on migrate, migrate:run and migrate:to (https://github.com/slawkens/myaac/commit/13ea68cc0c9349380c8e4051d702a6c2c8256f44, https://github.com/slawkens/myaac/commit/07fd034fe4cb0ffdb88667b1e400f414d0c6d06f)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
* Show if there is mysql error on import schema (https://github.com/slawkens/myaac/commit/44110a9496b4385e42c31b75de301037e711b6c3)
|
||||||
|
* Fix the premium checks, introduced in v1.8.3 (https://github.com/slawkens/myaac/commit/9d92a11fb7cb6d7a1619d79c12faaa0b1c01f980)
|
||||||
|
|
||||||
## [1.8.3 - 21.10.2025]
|
## [1.8.3 - 21.10.2025]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
4
aac
4
aac
@@ -25,7 +25,9 @@ foreach ($commandsGlob as $item) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$commandPre = '\\MyAAC\Commands\\';
|
$commandPre = '\\MyAAC\Commands\\';
|
||||||
$application->add(new ($commandPre . $name));
|
if (!trait_exists($class = $commandPre . $name)) {
|
||||||
|
$application->add(new $class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$pluginCommands = Plugins::getCommands();
|
$pluginCommands = Plugins::getCommands();
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @author Lee
|
* @author Lee
|
||||||
|
* @author gpedro
|
||||||
* @copyright 2020 MyAAC
|
* @copyright 2020 MyAAC
|
||||||
* @link https://my-aac.org
|
* @link https://my-aac.org
|
||||||
*/
|
*/
|
||||||
@@ -19,9 +20,9 @@ $title = 'Mass Account Actions';
|
|||||||
csrfProtect();
|
csrfProtect();
|
||||||
|
|
||||||
$hasPointsColumn = $db->hasColumn('accounts', 'premium_points');
|
$hasPointsColumn = $db->hasColumn('accounts', 'premium_points');
|
||||||
$freePremium = $config['lua']['freePremium'];
|
$freePremium = getBoolean(configLua('freePremium'));
|
||||||
|
|
||||||
function admin_give_points($points)
|
function admin_give_points($points): void
|
||||||
{
|
{
|
||||||
global $hasPointsColumn;
|
global $hasPointsColumn;
|
||||||
|
|
||||||
@@ -37,7 +38,7 @@ function admin_give_points($points)
|
|||||||
displayMessage($points . ' points added to all accounts.', true);
|
displayMessage($points . ' points added to all accounts.', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function admin_give_coins($coins)
|
function admin_give_coins($coins): void
|
||||||
{
|
{
|
||||||
if (!HAS_ACCOUNT_COINS) {
|
if (!HAS_ACCOUNT_COINS) {
|
||||||
displayMessage('Coins not supported.');
|
displayMessage('Coins not supported.');
|
||||||
@@ -52,7 +53,7 @@ function admin_give_coins($coins)
|
|||||||
displayMessage($coins . ' coins added to all accounts.', true);
|
displayMessage($coins . ' coins added to all accounts.', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function admin_give_premdays($days)
|
function admin_give_premdays($days): void
|
||||||
{
|
{
|
||||||
global $db, $freePremium;
|
global $db, $freePremium;
|
||||||
|
|
||||||
@@ -63,6 +64,7 @@ function admin_give_premdays($days)
|
|||||||
|
|
||||||
$value = $days * 86400;
|
$value = $days * 86400;
|
||||||
$now = time();
|
$now = time();
|
||||||
|
|
||||||
// othire
|
// othire
|
||||||
if ($db->hasColumn('accounts', 'premend')) {
|
if ($db->hasColumn('accounts', 'premend')) {
|
||||||
// append premend
|
// append premend
|
||||||
@@ -70,14 +72,11 @@ function admin_give_premdays($days)
|
|||||||
// set premend
|
// set premend
|
||||||
if (Account::where('premend', '<=', $now)->update(['premend' => $now + $value])) {
|
if (Account::where('premend', '<=', $now)->update(['premend' => $now + $value])) {
|
||||||
displayMessage($days . ' premium days added to all accounts.', true);
|
displayMessage($days . ' premium days added to all accounts.', true);
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
displayMessage('Failed to execute set query.');
|
displayMessage('Failed to execute set query.');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
displayMessage('Failed to execute append query.');
|
displayMessage('Failed to execute append query.');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -92,20 +91,14 @@ function admin_give_premdays($days)
|
|||||||
// set lastday
|
// set lastday
|
||||||
if (Account::where('lastday', '<=', $now)->update(['lastday' => $now + $value])) {
|
if (Account::where('lastday', '<=', $now)->update(['lastday' => $now + $value])) {
|
||||||
displayMessage($days . ' premium days added to all accounts.', true);
|
displayMessage($days . ' premium days added to all accounts.', true);
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
displayMessage('Failed to execute set query.');
|
displayMessage('Failed to execute set query.');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
displayMessage('Failed to execute append query.');
|
displayMessage('Failed to execute append query.');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
displayMessage('Failed to execute set days query.');
|
displayMessage('Failed to execute set days query.');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -118,14 +111,11 @@ function admin_give_premdays($days)
|
|||||||
// set premium_ends_at
|
// set premium_ends_at
|
||||||
if (Account::where('premium_ends_at', '<=', $now)->update(['premium_ends_at' => $now + $value])) {
|
if (Account::where('premium_ends_at', '<=', $now)->update(['premium_ends_at' => $now + $value])) {
|
||||||
displayMessage($days . ' premium days added to all accounts.', true);
|
displayMessage($days . ' premium days added to all accounts.', true);
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
displayMessage('Failed to execute set query.');
|
displayMessage('Failed to execute set query.');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
displayMessage('Failed to execute append query.');
|
displayMessage('Failed to execute append query.');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -170,7 +160,8 @@ else {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayMessage($message, $success = false) {
|
function displayMessage($message, $success = false): void
|
||||||
|
{
|
||||||
global $twig, $hasPointsColumn, $freePremium;
|
global $twig, $hasPointsColumn, $freePremium;
|
||||||
|
|
||||||
$success ? success($message): error($message);
|
$success ? success($message): error($message);
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
if (version_compare(phpversion(), '8.1', '<')) die('PHP version 8.1 or higher is required.');
|
if (version_compare(phpversion(), '8.1', '<')) die('PHP version 8.1 or higher is required.');
|
||||||
|
|
||||||
const MYAAC = true;
|
const MYAAC = true;
|
||||||
const MYAAC_VERSION = '1.8.3';
|
const MYAAC_VERSION = '1.8.4';
|
||||||
const DATABASE_VERSION = 46;
|
const DATABASE_VERSION = 46;
|
||||||
const TABLE_PREFIX = 'myaac_';
|
const TABLE_PREFIX = 'myaac_';
|
||||||
define('START_TIME', microtime(true));
|
define('START_TIME', microtime(true));
|
||||||
|
|||||||
69
install/includes/import_base_data.php
Normal file
69
install/includes/import_base_data.php
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
|
|
||||||
|
use MyAAC\Models\Changelog;
|
||||||
|
use MyAAC\Models\Config;
|
||||||
|
use MyAAC\Models\ForumBoard;
|
||||||
|
use MyAAC\Models\Gallery;
|
||||||
|
use MyAAC\Models\NewsCategory;
|
||||||
|
|
||||||
|
if (Changelog::count() === 0) {
|
||||||
|
Changelog::create([
|
||||||
|
'type' => 3,
|
||||||
|
'where' => 2,
|
||||||
|
'date' => time(),
|
||||||
|
'body' => 'MyAAC installed. (:',
|
||||||
|
'hide' => 0,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config::where('name', 'database_version')->count() === 0) {
|
||||||
|
Config::create([
|
||||||
|
'name' => 'database_version',
|
||||||
|
'value' => DATABASE_VERSION,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ForumBoard::count() === 0) {
|
||||||
|
$forumBoards = [
|
||||||
|
['name' => 'News', 'description' => 'News commenting', 'closed' => 1],
|
||||||
|
['name' => 'Trade', 'description' => 'Trade offers.', 'closed' => 0],
|
||||||
|
['name' => 'Quests', 'description' => 'Quest making.', 'closed' => 0],
|
||||||
|
['name' => 'Pictures', 'description' => 'Your pictures.', 'closed' => 0],
|
||||||
|
['name' => 'Bug Report', 'description' => 'Report bugs there.', 'closed' => 0],
|
||||||
|
];
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
foreach ($forumBoards as $forumBoard) {
|
||||||
|
ForumBoard::create([
|
||||||
|
'name' => $forumBoard['name'],
|
||||||
|
'description' => $forumBoard['description'],
|
||||||
|
'ordering' => $i++,
|
||||||
|
'closed' => $forumBoard['closed'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NewsCategory::count() === 0) {
|
||||||
|
$newsCategoriesIcons = [
|
||||||
|
0, 1, 2, 3, 4
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($newsCategoriesIcons as $iconId) {
|
||||||
|
NewsCategory::create([
|
||||||
|
'icon_id' => $iconId,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Gallery::count() === 0) {
|
||||||
|
Gallery::create([
|
||||||
|
'comment' => 'Demon',
|
||||||
|
'image' => 'images/gallery/demon.jpg',
|
||||||
|
'thumb' => 'images/gallery/demon_thumb.gif',
|
||||||
|
'author' => 'MyAAC',
|
||||||
|
'ordering' => 0,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
success($locale['step_database_success_import_data']);
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
SET @myaac_database_version = 46;
|
CREATE TABLE IF NOT EXISTS `myaac_account_actions`
|
||||||
|
|
||||||
CREATE TABLE `myaac_account_actions`
|
|
||||||
(
|
(
|
||||||
`account_id` int NOT NULL,
|
`account_id` int NOT NULL,
|
||||||
`ip` int unsigned NOT NULL DEFAULT 0,
|
`ip` int unsigned NOT NULL DEFAULT 0,
|
||||||
@@ -10,7 +8,7 @@ CREATE TABLE `myaac_account_actions`
|
|||||||
KEY (`account_id`)
|
KEY (`account_id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_account_emails_verify`
|
CREATE TABLE IF NOT EXISTS `myaac_account_emails_verify`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`account_id` int NOT NULL,
|
`account_id` int NOT NULL,
|
||||||
@@ -19,7 +17,7 @@ CREATE TABLE `myaac_account_emails_verify`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_admin_menu`
|
CREATE TABLE IF NOT EXISTS `myaac_admin_menu`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`name` varchar(255) NOT NULL DEFAULT '',
|
`name` varchar(255) NOT NULL DEFAULT '',
|
||||||
@@ -30,7 +28,7 @@ CREATE TABLE `myaac_admin_menu`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_changelog`
|
CREATE TABLE IF NOT EXISTS `myaac_changelog`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`body` varchar(500) NOT NULL DEFAULT '',
|
`body` varchar(500) NOT NULL DEFAULT '',
|
||||||
@@ -42,9 +40,7 @@ CREATE TABLE `myaac_changelog`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
INSERT INTO `myaac_changelog` (`id`, `type`, `where`, `date`, `body`, `hide`) VALUES (1, 3, 2, UNIX_TIMESTAMP(), 'MyAAC installed. (:', 0);
|
CREATE TABLE IF NOT EXISTS `myaac_config`
|
||||||
|
|
||||||
CREATE TABLE `myaac_config`
|
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`name` varchar(30) NOT NULL,
|
`name` varchar(30) NOT NULL,
|
||||||
@@ -53,9 +49,7 @@ CREATE TABLE `myaac_config`
|
|||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
INSERT INTO `myaac_config` (`name`, `value`) VALUES ('database_version', @myaac_database_version);
|
CREATE TABLE IF NOT EXISTS `myaac_faq`
|
||||||
|
|
||||||
CREATE TABLE `myaac_faq`
|
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`question` varchar(255) NOT NULL DEFAULT '',
|
`question` varchar(255) NOT NULL DEFAULT '',
|
||||||
@@ -65,7 +59,7 @@ CREATE TABLE `myaac_faq`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_forum_boards`
|
CREATE TABLE IF NOT EXISTS `myaac_forum_boards`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`name` varchar(32) NOT NULL,
|
`name` varchar(32) NOT NULL,
|
||||||
@@ -77,13 +71,8 @@ CREATE TABLE `myaac_forum_boards`
|
|||||||
`hide` tinyint NOT NULL DEFAULT 0,
|
`hide` tinyint NOT NULL DEFAULT 0,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`, `closed`) VALUES (NULL, 'News', 'News commenting', 0, 1);
|
|
||||||
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`) VALUES (NULL, 'Trade', 'Trade offers.', 1);
|
|
||||||
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`) VALUES (NULL, 'Quests', 'Quest making.', 2);
|
|
||||||
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`) VALUES (NULL, 'Pictures', 'Your pictures.', 3);
|
|
||||||
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`) VALUES (NULL, 'Bug Report', 'Report bugs there.', 4);
|
|
||||||
|
|
||||||
CREATE TABLE `myaac_forum`
|
CREATE TABLE IF NOT EXISTS `myaac_forum`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`first_post` int NOT NULL DEFAULT 0,
|
`first_post` int NOT NULL DEFAULT 0,
|
||||||
@@ -107,7 +96,7 @@ CREATE TABLE `myaac_forum`
|
|||||||
KEY `section` (`section`)
|
KEY `section` (`section`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_menu`
|
CREATE TABLE IF NOT EXISTS `myaac_menu`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`template` varchar(255) NOT NULL,
|
`template` varchar(255) NOT NULL,
|
||||||
@@ -121,7 +110,7 @@ CREATE TABLE `myaac_menu`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_monsters` (
|
CREATE TABLE IF NOT EXISTS `myaac_monsters` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`hide` tinyint NOT NULL DEFAULT 0,
|
`hide` tinyint NOT NULL DEFAULT 0,
|
||||||
`name` varchar(255) NOT NULL,
|
`name` varchar(255) NOT NULL,
|
||||||
@@ -154,7 +143,7 @@ CREATE TABLE `myaac_monsters` (
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_news`
|
CREATE TABLE IF NOT EXISTS `myaac_news`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`title` varchar(100) NOT NULL,
|
`title` varchar(100) NOT NULL,
|
||||||
@@ -172,7 +161,7 @@ CREATE TABLE `myaac_news`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_news_categories`
|
CREATE TABLE IF NOT EXISTS `myaac_news_categories`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`name` varchar(50) NOT NULL DEFAULT "",
|
`name` varchar(50) NOT NULL DEFAULT "",
|
||||||
@@ -182,13 +171,7 @@ CREATE TABLE `myaac_news_categories`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 0);
|
CREATE TABLE IF NOT EXISTS `myaac_notepad`
|
||||||
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 1);
|
|
||||||
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 2);
|
|
||||||
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 3);
|
|
||||||
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 4);
|
|
||||||
|
|
||||||
CREATE TABLE `myaac_notepad`
|
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`account_id` int NOT NULL,
|
`account_id` int NOT NULL,
|
||||||
@@ -198,7 +181,7 @@ CREATE TABLE `myaac_notepad`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_pages`
|
CREATE TABLE IF NOT EXISTS `myaac_pages`
|
||||||
(
|
(
|
||||||
`id` INT NOT NULL AUTO_INCREMENT,
|
`id` INT NOT NULL AUTO_INCREMENT,
|
||||||
`name` varchar(30) NOT NULL,
|
`name` varchar(30) NOT NULL,
|
||||||
@@ -214,7 +197,7 @@ CREATE TABLE `myaac_pages`
|
|||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_gallery`
|
CREATE TABLE IF NOT EXISTS `myaac_gallery`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`comment` varchar(255) NOT NULL DEFAULT '',
|
`comment` varchar(255) NOT NULL DEFAULT '',
|
||||||
@@ -226,9 +209,7 @@ CREATE TABLE `myaac_gallery`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
INSERT INTO `myaac_gallery` (`id`, `ordering`, `comment`, `image`, `thumb`, `author`) VALUES (NULL, 1, 'Demon', 'images/gallery/demon.jpg', 'images/gallery/demon_thumb.gif', 'MyAAC');
|
CREATE TABLE IF NOT EXISTS `myaac_settings`
|
||||||
|
|
||||||
CREATE TABLE `myaac_settings`
|
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`name` varchar(255) NOT NULL DEFAULT '',
|
`name` varchar(255) NOT NULL DEFAULT '',
|
||||||
@@ -238,7 +219,7 @@ CREATE TABLE `myaac_settings`
|
|||||||
KEY `key` (`key`)
|
KEY `key` (`key`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_spells`
|
CREATE TABLE IF NOT EXISTS `myaac_spells`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`spell` varchar(255) NOT NULL DEFAULT '',
|
`spell` varchar(255) NOT NULL DEFAULT '',
|
||||||
@@ -261,7 +242,7 @@ CREATE TABLE `myaac_spells`
|
|||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_visitors`
|
CREATE TABLE IF NOT EXISTS `myaac_visitors`
|
||||||
(
|
(
|
||||||
`ip` varchar(45) NOT NULL,
|
`ip` varchar(45) NOT NULL,
|
||||||
`lastvisit` int NOT NULL DEFAULT 0,
|
`lastvisit` int NOT NULL DEFAULT 0,
|
||||||
@@ -270,7 +251,7 @@ CREATE TABLE `myaac_visitors`
|
|||||||
UNIQUE (`ip`)
|
UNIQUE (`ip`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE `myaac_weapons`
|
CREATE TABLE IF NOT EXISTS `myaac_weapons`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL,
|
`id` int NOT NULL,
|
||||||
`level` int NOT NULL DEFAULT 0,
|
`level` int NOT NULL DEFAULT 0,
|
||||||
|
|||||||
@@ -30,26 +30,22 @@ if(!$error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($db->hasTable(TABLE_PREFIX . 'account_actions')) {
|
// import schema
|
||||||
$locale['step_database_error_table_exist'] = str_replace('$TABLE$', TABLE_PREFIX . 'account_actions', $locale['step_database_error_table_exist']);
|
try {
|
||||||
warning($locale['step_database_error_table_exist']);
|
$locale['step_database_importing'] = str_replace('$DATABASE_NAME$', config('database_name'), $locale['step_database_importing']);
|
||||||
}
|
success($locale['step_database_importing']);
|
||||||
else {
|
|
||||||
// import schema
|
|
||||||
try {
|
|
||||||
$locale['step_database_importing'] = str_replace('$DATABASE_NAME$', config('database_name'), $locale['step_database_importing']);
|
|
||||||
success($locale['step_database_importing']);
|
|
||||||
|
|
||||||
$db->query(file_get_contents(BASE . 'install/includes/schema.sql'));
|
$db->exec(file_get_contents(BASE . 'install/includes/schema.sql'));
|
||||||
|
|
||||||
$locale['step_database_success_schema'] = str_replace('$PREFIX$', TABLE_PREFIX, $locale['step_database_success_schema']);
|
$locale['step_database_success_schema'] = str_replace('$PREFIX$', TABLE_PREFIX, $locale['step_database_success_schema']);
|
||||||
success($locale['step_database_success_schema']);
|
success($locale['step_database_success_schema']);
|
||||||
}
|
|
||||||
catch(PDOException $error_) {
|
|
||||||
error($locale['step_database_error_schema'] . ' ' . $error_);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
catch(PDOException $error_) {
|
||||||
|
error($locale['step_database_error_schema'] . ' ' . $error_);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
require BASE . 'install/includes/import_base_data.php';
|
||||||
|
|
||||||
if(!$db->hasColumn('accounts', 'email')) {
|
if(!$db->hasColumn('accounts', 'email')) {
|
||||||
if(query("ALTER TABLE `accounts` ADD `email` varchar(255) NOT NULL DEFAULT '';"))
|
if(query("ALTER TABLE `accounts` ADD `email` varchar(255) NOT NULL DEFAULT '';"))
|
||||||
|
|||||||
@@ -445,16 +445,11 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
|
|||||||
|
|
||||||
if(isset($this->data['premium_ends_at']) || isset($this->data['premend']) ||
|
if(isset($this->data['premium_ends_at']) || isset($this->data['premend']) ||
|
||||||
(isCanary() && isset($this->data['lastday']))) {
|
(isCanary() && isset($this->data['lastday']))) {
|
||||||
$col = (isset($this->premium_ends_at) ? 'premium_ends_at' : (isset($this->data['lastday']) ? 'lastday' : 'premend'));
|
$col = (isset($this->data['premium_ends_at']) ? 'premium_ends_at' : (isset($this->data['lastday']) ? 'lastday' : 'premend'));
|
||||||
$ret = ceil(($this->data[$col] - time()) / (24 * 60 * 60));
|
$ret = ceil(($this->data[$col] - time()) / (24 * 60 * 60));
|
||||||
return max($ret, 0);
|
return max($ret, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isCanary() && isset($this->data['lastday'])) {
|
|
||||||
$ret = ceil(($this->data['lastday'] - time()) / 86400);
|
|
||||||
return max($ret, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if($this->data['premdays'] == 0) {
|
if($this->data['premdays'] == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -477,14 +472,16 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
|
|||||||
return $this->data['lastday'];
|
return $this->data['lastday'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isPremium()
|
public function isPremium(): bool
|
||||||
{
|
{
|
||||||
if(isset($this->data['premium_ends_at'])) {
|
if(isset($this->data['premium_ends_at']) || isset($this->data['premend']) ||
|
||||||
return $this->data['premium_ends_at'] > time();
|
(isCanary() && isset($this->data['lastday']))) {
|
||||||
|
$col = (isset($this->data['premium_ends_at']) ? 'premium_ends_at' : (isset($this->data['lastday']) ? 'lastday' : 'premend'));
|
||||||
|
return $this->data[$col] > time();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($this->data['premend'])) {
|
if($this->data['premdays'] == self::GRATIS_PREMIUM_DAYS){
|
||||||
return $this->data['premend'] > time();
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ($this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])) > 0);
|
return ($this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])) > 0);
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ $locale['step_database_error_mysql_connect_3'] = 'MySQL ist nicht richtig konfig
|
|||||||
$locale['step_database_error_mysql_connect_4'] = 'MySQL-Server läuft nicht.';
|
$locale['step_database_error_mysql_connect_4'] = 'MySQL-Server läuft nicht.';
|
||||||
$locale['step_database_error_schema'] = 'Fehler beim Importieren des Schemas:';
|
$locale['step_database_error_schema'] = 'Fehler beim Importieren des Schemas:';
|
||||||
$locale['step_database_success_schema'] = '$PREFIX$ Tabellen wurden erfolgreich installiert.';
|
$locale['step_database_success_schema'] = '$PREFIX$ Tabellen wurden erfolgreich installiert.';
|
||||||
|
$locale['step_database_success_import_data'] = 'Import von Daten für Tabellen was erfolgreich.';
|
||||||
$locale['step_database_error_file'] = '$FILE$ konnte nicht geöffnet werden. Bitte kopieren Sie diesen Inhalt und fügen Sie ihn dort ein:';
|
$locale['step_database_error_file'] = '$FILE$ konnte nicht geöffnet werden. Bitte kopieren Sie diesen Inhalt und fügen Sie ihn dort ein:';
|
||||||
$locale['step_database_adding_field'] = 'Folgendes Feld wurde hinzugefügt: ';
|
$locale['step_database_adding_field'] = 'Folgendes Feld wurde hinzugefügt: ';
|
||||||
$locale['step_database_modifying_field'] = 'Folgendes Feld wurde geändert: ';
|
$locale['step_database_modifying_field'] = 'Folgendes Feld wurde geändert: ';
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ $locale['step_database_error_mysql_connect_3'] = 'MySQL is not configured proper
|
|||||||
$locale['step_database_error_mysql_connect_4'] = 'MySQL server is not running.';
|
$locale['step_database_error_mysql_connect_4'] = 'MySQL server is not running.';
|
||||||
$locale['step_database_error_schema'] = 'Error while importing schema:';
|
$locale['step_database_error_schema'] = 'Error while importing schema:';
|
||||||
$locale['step_database_success_schema'] = 'Successfully installed $PREFIX$ tables.';
|
$locale['step_database_success_schema'] = 'Successfully installed $PREFIX$ tables.';
|
||||||
|
$locale['step_database_success_import_data'] = 'Successfully imported base data for tables.';
|
||||||
$locale['step_database_error_file'] = '$FILE$ couldn\'t be opened. Please copy this content and paste there:';
|
$locale['step_database_error_file'] = '$FILE$ couldn\'t be opened. Please copy this content and paste there:';
|
||||||
$locale['step_database_adding_field'] = 'Adding field';
|
$locale['step_database_adding_field'] = 'Adding field';
|
||||||
$locale['step_database_modifying_field'] = 'Modifying field';
|
$locale['step_database_modifying_field'] = 'Modifying field';
|
||||||
|
|||||||
@@ -81,7 +81,8 @@ $locale['step_database_error_mysql_connect_2'] = 'Możliwe przyczyny:';
|
|||||||
$locale['step_database_error_mysql_connect_3'] = 'MySQL nie jest poprawnie skonfigurowane w <i>config.lua</i>.';
|
$locale['step_database_error_mysql_connect_3'] = 'MySQL nie jest poprawnie skonfigurowane w <i>config.lua</i>.';
|
||||||
$locale['step_database_error_mysql_connect_4'] = 'Serwer MySQL nie jest uruchomiony.';
|
$locale['step_database_error_mysql_connect_4'] = 'Serwer MySQL nie jest uruchomiony.';
|
||||||
$locale['step_database_error_schema'] = 'Błąd podczas importowania struktury bazy danych:';
|
$locale['step_database_error_schema'] = 'Błąd podczas importowania struktury bazy danych:';
|
||||||
$locale['step_database_success_schema'] = 'Pomyślnie zainstalowano tabele $PREFIX$.';
|
$locale['step_database_success_schema'] = 'Pomyślnie zaimportowano tabele $PREFIX$.';
|
||||||
|
$locale['step_database_success_import_data'] = 'Pomyślnie załadowano bazowe dane dla tabel.';
|
||||||
$locale['step_database_error_file'] = '$FILE$ nie mógł zostać otwarty. Proszę skopiować zawartość pola tekstowego i wkleić do tego pliku:';
|
$locale['step_database_error_file'] = '$FILE$ nie mógł zostać otwarty. Proszę skopiować zawartość pola tekstowego i wkleić do tego pliku:';
|
||||||
$locale['step_database_adding_field'] = 'Dodawanie pola';
|
$locale['step_database_adding_field'] = 'Dodawanie pola';
|
||||||
$locale['step_database_modifying_field'] = 'Modyfikacja pola';
|
$locale['step_database_modifying_field'] = 'Modyfikacja pola';
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
*/
|
*/
|
||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
|
|
||||||
|
global $db;
|
||||||
|
|
||||||
// database migrations
|
// database migrations
|
||||||
$tmp = '';
|
$tmp = '';
|
||||||
if(fetchDatabaseConfig('database_version', $tmp)) { // we got version
|
if(fetchDatabaseConfig('database_version', $tmp)) { // we got version
|
||||||
|
|||||||
33
system/src/Commands/Env.php
Normal file
33
system/src/Commands/Env.php
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace MyAAC\Commands;
|
||||||
|
|
||||||
|
use POT;
|
||||||
|
|
||||||
|
trait Env
|
||||||
|
{
|
||||||
|
protected function init(): void
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
if (!isset($config['installed']) || !$config['installed']) {
|
||||||
|
throw new \RuntimeException('MyAAC has not been installed yet or there was error during installation. Please install again.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($config['server_path'])) {
|
||||||
|
throw new \RuntimeException('Server Path has been not set. Go to config.php and set it.');
|
||||||
|
}
|
||||||
|
|
||||||
|
// take care of trailing slash at the end
|
||||||
|
if($config['server_path'][strlen($config['server_path']) - 1] !== '/')
|
||||||
|
$config['server_path'] .= '/';
|
||||||
|
|
||||||
|
$config['lua'] = load_config_lua($config['server_path'] . 'config.lua');
|
||||||
|
|
||||||
|
// POT
|
||||||
|
require_once SYSTEM . 'libs/pot/OTS.php';
|
||||||
|
$ots = POT::getInstance();
|
||||||
|
$eloquentConnection = null;
|
||||||
|
|
||||||
|
require_once SYSTEM . 'database.php';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,8 @@ use Symfony\Component\Console\Style\SymfonyStyle;
|
|||||||
|
|
||||||
class MigrateCommand extends Command
|
class MigrateCommand extends Command
|
||||||
{
|
{
|
||||||
|
use Env;
|
||||||
|
|
||||||
protected function configure(): void
|
protected function configure(): void
|
||||||
{
|
{
|
||||||
$this->setName('migrate')
|
$this->setName('migrate')
|
||||||
@@ -17,9 +19,19 @@ class MigrateCommand extends Command
|
|||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||||
{
|
{
|
||||||
require SYSTEM . 'init.php';
|
$this->init();
|
||||||
|
|
||||||
$io = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
|
$tmp = '';
|
||||||
|
if(fetchDatabaseConfig('database_version', $tmp)) { // we got version
|
||||||
|
$tmp = (int)$tmp;
|
||||||
|
if ($tmp >= DATABASE_VERSION) {
|
||||||
|
$io->success('Already on latest version.');
|
||||||
|
return Command::SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
require SYSTEM . 'migrate.php';
|
require SYSTEM . 'migrate.php';
|
||||||
|
|
||||||
$io->success('Migrated to latest version (' . DATABASE_VERSION . ')');
|
$io->success('Migrated to latest version (' . DATABASE_VERSION . ')');
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ use Symfony\Component\Console\Style\SymfonyStyle;
|
|||||||
|
|
||||||
class MigrateRunCommand extends Command
|
class MigrateRunCommand extends Command
|
||||||
{
|
{
|
||||||
|
use Env;
|
||||||
|
|
||||||
protected function configure(): void
|
protected function configure(): void
|
||||||
{
|
{
|
||||||
$this->setName('migrate:run')
|
$this->setName('migrate:run')
|
||||||
@@ -23,12 +25,12 @@ class MigrateRunCommand extends Command
|
|||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||||
{
|
{
|
||||||
require SYSTEM . 'init.php';
|
|
||||||
|
|
||||||
$io = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
$ids = $input->getArgument('id');
|
$ids = $input->getArgument('id');
|
||||||
|
|
||||||
|
$this->init();
|
||||||
|
|
||||||
// pre-check
|
// pre-check
|
||||||
// in case one of the migrations doesn't exist - we won't execute any of them
|
// in case one of the migrations doesn't exist - we won't execute any of them
|
||||||
foreach ($ids as $id) {
|
foreach ($ids as $id) {
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ use Symfony\Component\Console\Style\SymfonyStyle;
|
|||||||
|
|
||||||
class MigrateToCommand extends Command
|
class MigrateToCommand extends Command
|
||||||
{
|
{
|
||||||
|
use Env;
|
||||||
|
|
||||||
protected function configure(): void
|
protected function configure(): void
|
||||||
{
|
{
|
||||||
$this->setName('migrate:to')
|
$this->setName('migrate:to')
|
||||||
@@ -32,7 +34,7 @@ class MigrateToCommand extends Command
|
|||||||
return Command::FAILURE;
|
return Command::FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->initEnv();
|
$this->init();
|
||||||
|
|
||||||
$currentVersion = Config::where('name', 'database_version')->first()->value;
|
$currentVersion = Config::where('name', 'database_version')->first()->value;
|
||||||
if ($currentVersion > $versionDest) {
|
if ($currentVersion > $versionDest) {
|
||||||
@@ -80,29 +82,4 @@ class MigrateToCommand extends Command
|
|||||||
|
|
||||||
updateDatabaseConfig('database_version', ($_up ? $id : $id - 1));
|
updateDatabaseConfig('database_version', ($_up ? $id : $id - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private function initEnv()
|
|
||||||
{
|
|
||||||
global $config;
|
|
||||||
if (!isset($config['installed']) || !$config['installed']) {
|
|
||||||
throw new \RuntimeException('MyAAC has not been installed yet or there was error during installation. Please install again.');
|
|
||||||
}
|
|
||||||
|
|
||||||
if(empty($config['server_path'])) {
|
|
||||||
throw new \RuntimeException('Server Path has been not set. Go to config.php and set it.');
|
|
||||||
}
|
|
||||||
|
|
||||||
// take care of trailing slash at the end
|
|
||||||
if($config['server_path'][strlen($config['server_path']) - 1] !== '/')
|
|
||||||
$config['server_path'] .= '/';
|
|
||||||
|
|
||||||
$config['lua'] = load_config_lua($config['server_path'] . 'config.lua');
|
|
||||||
|
|
||||||
// POT
|
|
||||||
require_once SYSTEM . 'libs/pot/OTS.php';
|
|
||||||
$ots = POT::getInstance();
|
|
||||||
$eloquentConnection = null;
|
|
||||||
|
|
||||||
require_once SYSTEM . 'database.php';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,15 @@ namespace MyAAC\Models;
|
|||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @property integer $premium_ends_at
|
||||||
|
* @property integer $premend
|
||||||
* @property integer $lastday
|
* @property integer $lastday
|
||||||
* @property integer $premdays
|
* @property integer $premdays
|
||||||
*/
|
*/
|
||||||
class Account extends Model {
|
class Account extends Model {
|
||||||
|
|
||||||
|
const GRATIS_PREMIUM_DAYS = 65535;
|
||||||
|
|
||||||
protected $table = 'accounts';
|
protected $table = 'accounts';
|
||||||
|
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
@@ -34,9 +38,9 @@ class Account extends Model {
|
|||||||
public function getPremiumDaysAttribute()
|
public function getPremiumDaysAttribute()
|
||||||
{
|
{
|
||||||
if(isset($this->premium_ends_at) || isset($this->premend) ||
|
if(isset($this->premium_ends_at) || isset($this->premend) ||
|
||||||
(isCanary() && isset($this->data['lastday']))) {
|
(isCanary() && isset($this->lastday))) {
|
||||||
$col = (isset($this->premium_ends_at) ? 'premium_ends_at' : (isset($this->data['lastday']) ? 'lastday' : 'premend'));
|
$col = (isset($this->premium_ends_at) ? 'premium_ends_at' : (isset($this->lastday) ? 'lastday' : 'premend'));
|
||||||
$ret = ceil(($this->{$col}- time()) / (24 * 60 * 60));
|
$ret = ceil(($this->{$col} - time()) / (24 * 60 * 60));
|
||||||
return max($ret, 0);
|
return max($ret, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,22 +48,24 @@ class Account extends Model {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($this->premdays == 65535){
|
if($this->premdays == self::GRATIS_PREMIUM_DAYS){
|
||||||
return 65535;
|
return self::GRATIS_PREMIUM_DAYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret = ceil($this->premdays - ((int)date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->lastday))) - date("z", $this->lastday)));
|
$ret = ceil($this->premdays - ((int)date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->lastday))) - date("z", $this->lastday)));
|
||||||
return max($ret, 0);
|
return max($ret, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getIsPremiumAttribute()
|
public function getIsPremiumAttribute(): bool
|
||||||
{
|
{
|
||||||
if(isset($this->premium_ends_at)) {
|
if(isset($this->premium_ends_at) || isset($this->premend) ||
|
||||||
return $this->premium_ends_at > time();
|
(isCanary() && isset($this->lastday))) {
|
||||||
|
$col = (isset($this->premium_ends_at) ? 'premium_ends_at' : (isset($this->lastday) ? 'lastday' : 'premend'));
|
||||||
|
return $this->{$col} > time();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($this->premend)) {
|
if($this->premdays == self::GRATIS_PREMIUM_DAYS){
|
||||||
return $this->premend > time();
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ($this->premdays - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->lastday))) - date("z", $this->lastday)) > 0);
|
return ($this->premdays - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->lastday))) - date("z", $this->lastday)) > 0);
|
||||||
|
|||||||
@@ -18,7 +18,16 @@ class Changelog extends Model {
|
|||||||
|
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'body', 'type', 'where',
|
||||||
|
'date', 'player_id', 'hide',
|
||||||
|
];
|
||||||
|
|
||||||
public function scopeIsPublic($query) {
|
public function scopeIsPublic($query) {
|
||||||
$query->where('hide', '!=', 1);
|
$query->where('hide', '!=', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function player() {
|
||||||
|
return $this->belongsTo(Player::class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
system/src/Models/ForumBoard.php
Normal file
16
system/src/Models/ForumBoard.php
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace MyAAC\Models;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class ForumBoard extends Model {
|
||||||
|
|
||||||
|
protected $table = TABLE_PREFIX . 'forum_boards';
|
||||||
|
|
||||||
|
public $timestamps = false;
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'name', 'description', 'ordering',
|
||||||
|
'guild', 'access', 'closed', 'hide',
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -10,4 +10,9 @@ class Gallery extends Model {
|
|||||||
|
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'comment', 'image', 'thumb',
|
||||||
|
'author', 'ordering', 'hide',
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
15
system/src/Models/NewsCategory.php
Normal file
15
system/src/Models/NewsCategory.php
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace MyAAC\Models;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class NewsCategory extends Model {
|
||||||
|
|
||||||
|
protected $table = TABLE_PREFIX . 'news_categories';
|
||||||
|
|
||||||
|
public $timestamps = false;
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'name', 'description', 'icon_id', 'hide'
|
||||||
|
];
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user