mirror of
https://github.com/slawkens/myaac.git
synced 2025-10-26 22:14:18 +01:00
Compare commits
4 Commits
fix/databa
...
feature/re
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c6ddcf829e | ||
|
|
cbb88413d9 | ||
|
|
2a2512f5d0 | ||
|
|
9a0ec33f6d |
@@ -1,30 +1,5 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## [1.8.3 - 21.10.2025]
|
|
||||||
|
|
||||||
### Added
|
|
||||||
* Feature: resend email verify (https://github.com/slawkens/myaac/commit/fe821c58085483e70491dcf76376ad5b96de3fdd)
|
|
||||||
* New config: hooks_debug (To view where hooks are located in .twig files) (https://github.com/slawkens/myaac/commit/8c3cb0e06f9709c1de3398b48221241e7cbdd310)
|
|
||||||
* Functions: Add db->getColumnInfo(table, column) (https://github.com/slawkens/myaac/commit/c898fe25efff6793a01d11c26fc153cb23fcb858)
|
|
||||||
* Plugins: Add option to use ?subtopic=x for plugins pages (https://github.com/slawkens/myaac/commit/97f9d3d6f6c28aef6d824973058d7133f56e09c4)
|
|
||||||
* getTopPlayers() Function - Add lookmount & promotion (https://github.com/slawkens/myaac/commit/2da0024c68f1cedc38a16ebbc6f52ffa55e65f7a, https://github.com/slawkens/myaac/commit/901df48d134079d648a18f9d82b60182e818ac02)
|
|
||||||
* New hooks for account/change-password (https://github.com/slawkens/myaac/commit/470555f2687809a0c12491bbb27597e64b8929c1)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
* Feature: show vip days in account management (https://github.com/slawkens/myaac/commit/c88b08eb1ec1f560cbfdaaa16b24e3a0f26da7b3, by @andreoam)
|
|
||||||
* Allow links in error_box.html.twig (https://github.com/slawkens/myaac/commit/9acad15451071639acf7a7d4e81619b0a9742b12)
|
|
||||||
* Canary - Comment code to update lastday in login.php (https://github.com/slawkens/myaac/commit/38902c30d114fdbce259467f5820f97037b393e9)
|
|
||||||
* Cache::remember $ttl = -1 = infinite (https://github.com/slawkens/myaac/commit/64acf70d3854182d88aaf0b67f77cea2a254f179)
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
* Online - Allow for html code (example - img) in online_datacenter (https://github.com/slawkens/myaac/commit/3bb272ebbbd2eb7769d174b7082061d14a17bd44)
|
|
||||||
* Guilds - Fix guild create with freePremium enabled (https://github.com/slawkens/myaac/commit/c91bb5d4097647dca2196d3dea87bc90c89181d2)
|
|
||||||
* Canary - Fix premDays count (https://github.com/slawkens/myaac/commit/3e61692780d4add93b7b0e9f12f7a283bd8f4b7a)
|
|
||||||
* Template Change: Ignore set last visit for AJAX pages - Fixes template change redirect (https://github.com/slawkens/myaac/commit/89fae38caa7e4f645957fcf1a9330a36358ac04f)
|
|
||||||
* Admin Panel - Accounts: Fix lastip v6 (TFS master) (https://github.com/slawkens/myaac/commit/f54b1bdd2af4c16c64ddff0e87a6c96bc4cf9eeb)
|
|
||||||
* Functions - Prevent injection in $db->hasColumn (https://github.com/slawkens/myaac/commit/56bd7ec5ed904666074492f2e4f13e4fce226bee)
|
|
||||||
* Compat Config: Add missing config: email_lai_sec_interval (https://github.com/slawkens/myaac/commit/2eae44e0755e624a91be68b4d1ec26d01eb4d9a1)
|
|
||||||
|
|
||||||
## [1.8.2 - 26.09.2025]
|
## [1.8.2 - 26.09.2025]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
4
aac
4
aac
@@ -25,9 +25,7 @@ foreach ($commandsGlob as $item) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$commandPre = '\\MyAAC\Commands\\';
|
$commandPre = '\\MyAAC\Commands\\';
|
||||||
if (!trait_exists($class = $commandPre . $name)) {
|
$application->add(new ($commandPre . $name));
|
||||||
$application->add(new $class);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$pluginCommands = Plugins::getCommands();
|
$pluginCommands = Plugins::getCommands();
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
const MYAAC_ADMIN = true;
|
define('MYAAC_ADMIN', true);
|
||||||
const IGNORE_SET_LAST_VISIT = true;
|
|
||||||
|
|
||||||
require '../../common.php';
|
require '../../common.php';
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
use MyAAC\DataLoader;
|
use MyAAC\DataLoader;
|
||||||
|
|
||||||
const MYAAC_ADMIN = true;
|
const MYAAC_ADMIN = true;
|
||||||
const IGNORE_SET_LAST_VISIT = true;
|
|
||||||
|
|
||||||
require '../../common.php';
|
require '../../common.php';
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
use MyAAC\Settings;
|
use MyAAC\Settings;
|
||||||
|
|
||||||
const MYAAC_ADMIN = true;
|
const MYAAC_ADMIN = true;
|
||||||
const IGNORE_SET_LAST_VISIT = true;
|
|
||||||
|
|
||||||
require '../../common.php';
|
require '../../common.php';
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
const MYAAC_ADMIN = true;
|
define('MYAAC_ADMIN', true);
|
||||||
const IGNORE_SET_LAST_VISIT = true;
|
|
||||||
|
|
||||||
require '../../common.php';
|
require '../../common.php';
|
||||||
require SYSTEM . 'init.php';
|
require SYSTEM . 'init.php';
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
const MYAAC_ADMIN = true;
|
define('MYAAC_ADMIN', true);
|
||||||
const IGNORE_SET_LAST_VISIT = true;
|
|
||||||
|
|
||||||
require '../../common.php';
|
require '../../common.php';
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
|||||||
@@ -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.3-dev';
|
||||||
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));
|
||||||
|
|||||||
@@ -1,69 +0,0 @@
|
|||||||
<?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,4 +1,6 @@
|
|||||||
CREATE TABLE IF NOT EXISTS `myaac_account_actions`
|
SET @myaac_database_version = 46;
|
||||||
|
|
||||||
|
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,
|
||||||
@@ -8,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `myaac_account_actions`
|
|||||||
KEY (`account_id`)
|
KEY (`account_id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_account_emails_verify`
|
CREATE TABLE `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,
|
||||||
@@ -17,7 +19,7 @@ CREATE TABLE IF NOT EXISTS `myaac_account_emails_verify`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_admin_menu`
|
CREATE TABLE `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 '',
|
||||||
@@ -28,7 +30,7 @@ CREATE TABLE IF NOT EXISTS `myaac_admin_menu`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_changelog`
|
CREATE TABLE `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 '',
|
||||||
@@ -40,7 +42,9 @@ CREATE TABLE IF NOT EXISTS `myaac_changelog`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_config`
|
INSERT INTO `myaac_changelog` (`id`, `type`, `where`, `date`, `body`, `hide`) VALUES (1, 3, 2, UNIX_TIMESTAMP(), 'MyAAC installed. (:', 0);
|
||||||
|
|
||||||
|
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,
|
||||||
@@ -49,7 +53,9 @@ CREATE TABLE IF NOT EXISTS `myaac_config`
|
|||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_faq`
|
INSERT INTO `myaac_config` (`name`, `value`) VALUES ('database_version', @myaac_database_version);
|
||||||
|
|
||||||
|
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 '',
|
||||||
@@ -59,7 +65,7 @@ CREATE TABLE IF NOT EXISTS `myaac_faq`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_forum_boards`
|
CREATE TABLE `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,
|
||||||
@@ -71,8 +77,13 @@ CREATE TABLE IF NOT EXISTS `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 IF NOT EXISTS `myaac_forum`
|
CREATE TABLE `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,
|
||||||
@@ -96,7 +107,7 @@ CREATE TABLE IF NOT EXISTS `myaac_forum`
|
|||||||
KEY `section` (`section`)
|
KEY `section` (`section`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_menu`
|
CREATE TABLE `myaac_menu`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`template` varchar(255) NOT NULL,
|
`template` varchar(255) NOT NULL,
|
||||||
@@ -110,7 +121,7 @@ CREATE TABLE IF NOT EXISTS `myaac_menu`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_monsters` (
|
CREATE TABLE `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,
|
||||||
@@ -143,7 +154,7 @@ CREATE TABLE IF NOT EXISTS `myaac_monsters` (
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_news`
|
CREATE TABLE `myaac_news`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`title` varchar(100) NOT NULL,
|
`title` varchar(100) NOT NULL,
|
||||||
@@ -161,7 +172,7 @@ CREATE TABLE IF NOT EXISTS `myaac_news`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_news_categories`
|
CREATE TABLE `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 "",
|
||||||
@@ -171,7 +182,13 @@ CREATE TABLE IF NOT EXISTS `myaac_news_categories`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_notepad`
|
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 0);
|
||||||
|
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,
|
||||||
@@ -181,7 +198,7 @@ CREATE TABLE IF NOT EXISTS `myaac_notepad`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_pages`
|
CREATE TABLE `myaac_pages`
|
||||||
(
|
(
|
||||||
`id` INT NOT NULL AUTO_INCREMENT,
|
`id` INT NOT NULL AUTO_INCREMENT,
|
||||||
`name` varchar(30) NOT NULL,
|
`name` varchar(30) NOT NULL,
|
||||||
@@ -197,7 +214,7 @@ CREATE TABLE IF NOT EXISTS `myaac_pages`
|
|||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_gallery`
|
CREATE TABLE `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 '',
|
||||||
@@ -209,7 +226,9 @@ CREATE TABLE IF NOT EXISTS `myaac_gallery`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_settings`
|
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 `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 '',
|
||||||
@@ -219,7 +238,7 @@ CREATE TABLE IF NOT EXISTS `myaac_settings`
|
|||||||
KEY `key` (`key`)
|
KEY `key` (`key`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_spells`
|
CREATE TABLE `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 '',
|
||||||
@@ -242,7 +261,7 @@ CREATE TABLE IF NOT EXISTS `myaac_spells`
|
|||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_visitors`
|
CREATE TABLE `myaac_visitors`
|
||||||
(
|
(
|
||||||
`ip` varchar(45) NOT NULL,
|
`ip` varchar(45) NOT NULL,
|
||||||
`lastvisit` int NOT NULL DEFAULT 0,
|
`lastvisit` int NOT NULL DEFAULT 0,
|
||||||
@@ -251,7 +270,7 @@ CREATE TABLE IF NOT EXISTS `myaac_visitors`
|
|||||||
UNIQUE (`ip`)
|
UNIQUE (`ip`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `myaac_weapons`
|
CREATE TABLE `myaac_weapons`
|
||||||
(
|
(
|
||||||
`id` int NOT NULL,
|
`id` int NOT NULL,
|
||||||
`level` int NOT NULL DEFAULT 0,
|
`level` int NOT NULL DEFAULT 0,
|
||||||
|
|||||||
@@ -30,22 +30,26 @@ if(!$error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// import schema
|
if($db->hasTable(TABLE_PREFIX . 'account_actions')) {
|
||||||
try {
|
$locale['step_database_error_table_exist'] = str_replace('$TABLE$', TABLE_PREFIX . 'account_actions', $locale['step_database_error_table_exist']);
|
||||||
$locale['step_database_importing'] = str_replace('$DATABASE_NAME$', config('database_name'), $locale['step_database_importing']);
|
warning($locale['step_database_error_table_exist']);
|
||||||
success($locale['step_database_importing']);
|
|
||||||
|
|
||||||
$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']);
|
|
||||||
success($locale['step_database_success_schema']);
|
|
||||||
}
|
|
||||||
catch(PDOException $error_) {
|
|
||||||
error($locale['step_database_error_schema'] . ' ' . $error_);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
// import schema
|
||||||
|
try {
|
||||||
|
$locale['step_database_importing'] = str_replace('$DATABASE_NAME$', config('database_name'), $locale['step_database_importing']);
|
||||||
|
success($locale['step_database_importing']);
|
||||||
|
|
||||||
require BASE . 'install/includes/import_base_data.php';
|
$db->query(file_get_contents(BASE . 'install/includes/schema.sql'));
|
||||||
|
|
||||||
|
$locale['step_database_success_schema'] = str_replace('$PREFIX$', TABLE_PREFIX, $locale['step_database_success_schema']);
|
||||||
|
success($locale['step_database_success_schema']);
|
||||||
|
}
|
||||||
|
catch(PDOException $error_) {
|
||||||
|
error($locale['step_database_error_schema'] . ' ' . $error_);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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 '';"))
|
||||||
|
|||||||
@@ -220,8 +220,6 @@ switch ($action) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* not needed anymore?
|
|
||||||
if (fieldExist('premdays', 'accounts') && fieldExist('lastday', 'accounts')) {
|
if (fieldExist('premdays', 'accounts') && fieldExist('lastday', 'accounts')) {
|
||||||
$save = false;
|
$save = false;
|
||||||
$timeNow = time();
|
$timeNow = time();
|
||||||
@@ -258,7 +256,6 @@ switch ($action) {
|
|||||||
$account->save();
|
$account->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
$worlds = [$world];
|
$worlds = [$world];
|
||||||
$playdata = compact('worlds', 'characters');
|
$playdata = compact('worlds', 'characters');
|
||||||
|
|||||||
@@ -1640,14 +1640,13 @@ function camelCaseToUnderscore($input)
|
|||||||
return ltrim(strtolower(preg_replace('/[A-Z]([A-Z](?![a-z]))*/', '_$0', $input)), '_');
|
return ltrim(strtolower(preg_replace('/[A-Z]([A-Z](?![a-z]))*/', '_$0', $input)), '_');
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeIfFirstSlash(&$text): void
|
function removeIfFirstSlash(&$text) {
|
||||||
{
|
|
||||||
if(strpos($text, '/') === 0) {
|
if(strpos($text, '/') === 0) {
|
||||||
$text = str_replace_first('/', '', $text);
|
$text = str_replace_first('/', '', $text);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function escapeHtml($html): string {
|
function escapeHtml($html) {
|
||||||
return htmlspecialchars($html);
|
return htmlspecialchars($html);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1661,7 +1660,7 @@ function getGuildNameById($id)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getGuildLogoById($id): string
|
function getGuildLogoById($id)
|
||||||
{
|
{
|
||||||
$logo = 'default.gif';
|
$logo = 'default.gif';
|
||||||
|
|
||||||
@@ -1677,8 +1676,7 @@ function getGuildLogoById($id): string
|
|||||||
return BASE_URL . GUILD_IMAGES_DIR . $logo;
|
return BASE_URL . GUILD_IMAGES_DIR . $logo;
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayErrorBoxWithBackButton($errors, $action = null): void
|
function displayErrorBoxWithBackButton($errors, $action = null) {
|
||||||
{
|
|
||||||
global $twig;
|
global $twig;
|
||||||
$twig->display('error_box.html.twig', ['errors' => $errors]);
|
$twig->display('error_box.html.twig', ['errors' => $errors]);
|
||||||
$twig->display('account.back_button.html.twig', [
|
$twig->display('account.back_button.html.twig', [
|
||||||
@@ -1706,12 +1704,6 @@ function getAccountIdentityColumn(): string
|
|||||||
return 'id';
|
return 'id';
|
||||||
}
|
}
|
||||||
|
|
||||||
function isCanary(): bool
|
|
||||||
{
|
|
||||||
$vipSystemEnabled = configLua('vipSystemEnabled');
|
|
||||||
return isset($vipSystemEnabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
// validator functions
|
// validator functions
|
||||||
require_once SYSTEM . 'compat/base.php';
|
require_once SYSTEM . 'compat/base.php';
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -78,7 +78,6 @@ $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,7 +83,6 @@ $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,8 +81,7 @@ $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 zaimportowano tabele $PREFIX$.';
|
$locale['step_database_success_schema'] = 'Pomyślnie zainstalowano 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';
|
||||||
|
|||||||
@@ -34,10 +34,8 @@ if($logged) {
|
|||||||
$twig->addGlobal('account_logged', $account_logged);
|
$twig->addGlobal('account_logged', $account_logged);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defined('IGNORE_SET_LAST_VISIT') || !IGNORE_SET_LAST_VISIT) {
|
setSession('last_visit', time());
|
||||||
setSession('last_visit', time());
|
if(defined('PAGE')) {
|
||||||
if(defined('PAGE')) {
|
setSession('last_page', PAGE);
|
||||||
setSession('last_page', PAGE);
|
|
||||||
}
|
|
||||||
setSession('last_uri', $_SERVER['REQUEST_URI']);
|
|
||||||
}
|
}
|
||||||
|
setSession('last_uri', $_SERVER['REQUEST_URI']);
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
*/
|
*/
|
||||||
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
|
||||||
|
|||||||
@@ -19,17 +19,18 @@ if(!$logged) {
|
|||||||
|
|
||||||
csrfProtect();
|
csrfProtect();
|
||||||
|
|
||||||
$new_password = $_POST['new_password'] ?? null;
|
$new_password = $_POST['newpassword'] ?? NULL;
|
||||||
$new_password_confirm = $_POST['new_password_confirm'] ?? null;
|
$new_password_confirm = $_POST['newpassword_confirm'] ?? NULL;
|
||||||
$old_password = $_POST['old_password'] ?? null;
|
$old_password = $_POST['oldpassword'] ?? NULL;
|
||||||
if(empty($new_password) && empty($new_password_confirm) && empty($old_password)) {
|
if(empty($new_password) && empty($new_password_confirm) && empty($old_password)) {
|
||||||
$twig->display('account.change-password.html.twig');
|
$twig->display('account.change-password.html.twig');
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
if(empty($new_password) || empty($new_password_confirm) || empty($old_password)){
|
if(empty($new_password) || empty($new_password_confirm) || empty($old_password)){
|
||||||
$errors[] = 'Please fill in form.';
|
$errors[] = 'Please fill in form.';
|
||||||
}
|
}
|
||||||
|
$password_strlen = strlen($new_password);
|
||||||
if($new_password != $new_password_confirm) {
|
if($new_password != $new_password_confirm) {
|
||||||
$errors[] = 'The new passwords do not match!';
|
$errors[] = 'The new passwords do not match!';
|
||||||
}
|
}
|
||||||
@@ -40,13 +41,10 @@ else {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** @var OTS_Account $account_logged */
|
/** @var OTS_Account $account_logged */
|
||||||
$old_password_hashed = encrypt((USE_ACCOUNT_SALT ? $account_logged->getCustomField('salt') : '') . $old_password);
|
$old_password = encrypt((USE_ACCOUNT_SALT ? $account_logged->getCustomField('salt') : '') . $old_password);
|
||||||
if($old_password_hashed != $account_logged->getPassword()) {
|
if($old_password != $account_logged->getPassword()) {
|
||||||
$errors[] = 'Current password is incorrect!';
|
$errors[] = 'Current password is incorrect!';
|
||||||
}
|
}
|
||||||
else if ($old_password == $new_password) {
|
|
||||||
$errors[] = 'The old password is same as the new password!';
|
|
||||||
}
|
|
||||||
|
|
||||||
$hooks->trigger(HOOK_ACCOUNT_CHANGE_PASSWORD_POST);
|
$hooks->trigger(HOOK_ACCOUNT_CHANGE_PASSWORD_POST);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,24 +38,15 @@ csrfProtect();
|
|||||||
|
|
||||||
$groups = new OTS_Groups_List();
|
$groups = new OTS_Groups_List();
|
||||||
|
|
||||||
|
$freePremium = isset($config['lua']['freePremium']) && getBoolean($config['lua']['freePremium']) || $account_logged->getPremDays() == OTS_Account::GRATIS_PREMIUM_DAYS;
|
||||||
|
$dayOrDays = $account_logged->getPremDays() == 1 ? 'day' : 'days';
|
||||||
/**
|
/**
|
||||||
* @var OTS_Account $account_logged
|
* @var OTS_Account $account_logged
|
||||||
*/
|
*/
|
||||||
$premDays = $account_logged->getPremDays();
|
if(!$account_logged->isPremium())
|
||||||
|
|
||||||
$freePremium = isset($config['lua']['freePremium']) && getBoolean($config['lua']['freePremium']) || $premDays == OTS_Account::GRATIS_PREMIUM_DAYS;
|
|
||||||
$dayOrDays = ($premDays == 1 ? 'day' : 'days');
|
|
||||||
|
|
||||||
$vipSystemEnabled = isset($config['lua']['vipSystemEnabled']) && getBoolean($config['lua']['vipSystemEnabled']);
|
|
||||||
$premiumLabel = $vipSystemEnabled ? 'VIP' : 'Premium Account';
|
|
||||||
|
|
||||||
if ($freePremium && !$vipSystemEnabled) {
|
|
||||||
$account_status = '<b><span style="color: green">Gratis Premium Account</span></b>';
|
|
||||||
} else if(!$account_logged->isPremium()) {
|
|
||||||
$account_status = '<b><span style="color: red">Free Account</span></b>';
|
$account_status = '<b><span style="color: red">Free Account</span></b>';
|
||||||
} else {
|
else
|
||||||
$account_status = '<b><span style="color: green">' . $premiumLabel . ', ' . $premDays . ' '.$dayOrDays.' left</span></b>';
|
$account_status = '<b><span style="color: green">' . ($freePremium ? 'Gratis Premium Account' : 'Premium Account, ' . $account_logged->getPremDays() . ' '.$dayOrDays.' left') . '</span></b>';
|
||||||
}
|
|
||||||
|
|
||||||
$recovery_key = $account_logged->getCustomField('key');
|
$recovery_key = $account_logged->getCustomField('key');
|
||||||
if(empty($recovery_key))
|
if(empty($recovery_key))
|
||||||
|
|||||||
@@ -21,9 +21,6 @@ if(!$logged) {
|
|||||||
$errors[] = 'You are not logged in. You can\'t create guild.';
|
$errors[] = 'You are not logged in. You can\'t create guild.';
|
||||||
}
|
}
|
||||||
|
|
||||||
$configLuaFreePremium = configLua('freePremium');
|
|
||||||
$freePremium = (isset($configLuaFreePremium) && getBoolean($configLuaFreePremium)) || ($logged && $account_logged->getPremDays() == OTS_Account::GRATIS_PREMIUM_DAYS);
|
|
||||||
|
|
||||||
$array_of_player_nig = array();
|
$array_of_player_nig = array();
|
||||||
if(empty($errors))
|
if(empty($errors))
|
||||||
{
|
{
|
||||||
@@ -34,7 +31,7 @@ if(empty($errors))
|
|||||||
if(!$player_rank->isLoaded())
|
if(!$player_rank->isLoaded())
|
||||||
{
|
{
|
||||||
if($player->getLevel() >= setting('core.guild_need_level')) {
|
if($player->getLevel() >= setting('core.guild_need_level')) {
|
||||||
if(!setting('core.guild_need_premium') || $account_logged->isPremium() || $freePremium) {
|
if(!setting('core.guild_need_premium') || $account_logged->isPremium()) {
|
||||||
$array_of_player_nig[] = $player->getName();
|
$array_of_player_nig[] = $player->getName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -98,7 +95,7 @@ if($todo == 'save')
|
|||||||
if($player->getLevel() < setting('core.guild_need_level')) {
|
if($player->getLevel() < setting('core.guild_need_level')) {
|
||||||
$errors[] = 'Character <b>'.$name.'</b> has too low level. To create guild you need character with level <b>' . setting('core.guild_need_level') . '</b>.';
|
$errors[] = 'Character <b>'.$name.'</b> has too low level. To create guild you need character with level <b>' . setting('core.guild_need_level') . '</b>.';
|
||||||
}
|
}
|
||||||
if(setting('core.guild_need_premium') && !$account_logged->isPremium() && !$freePremium) {
|
if(setting('core.guild_need_premium') && !$account_logged->isPremium()) {
|
||||||
$errors[] = 'Character <b>'.$name.'</b> is on FREE account. To create guild you need PREMIUM account.';
|
$errors[] = 'Character <b>'.$name.'</b> is on FREE account. To create guild you need PREMIUM account.';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
<?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,8 +9,6 @@ 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')
|
||||||
@@ -19,19 +17,9 @@ class MigrateCommand extends Command
|
|||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||||
{
|
{
|
||||||
$this->init();
|
require SYSTEM . 'init.php';
|
||||||
|
|
||||||
$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,8 +10,6 @@ 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')
|
||||||
@@ -25,12 +23,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,8 +11,6 @@ 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')
|
||||||
@@ -34,7 +32,7 @@ class MigrateToCommand extends Command
|
|||||||
return Command::FAILURE;
|
return Command::FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->init();
|
$this->initEnv();
|
||||||
|
|
||||||
$currentVersion = Config::where('name', 'database_version')->first()->value;
|
$currentVersion = Config::where('name', 'database_version')->first()->value;
|
||||||
if ($currentVersion > $versionDest) {
|
if ($currentVersion > $versionDest) {
|
||||||
@@ -82,4 +80,29 @@ 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';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,11 +33,10 @@ 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']))) {
|
$col = isset($this->premium_ends_at) ? 'premium_ends_at' : 'premend';
|
||||||
$col = (isset($this->premium_ends_at) ? 'premium_ends_at' : (isset($this->data['lastday']) ? 'lastday' : 'premend'));
|
$ret = ceil(($this->{$col}- time()) / (24 * 60 * 60));
|
||||||
$ret = ceil(($this->{$col}- time()) / (24 * 60 * 60));
|
return $ret > 0 ? $ret : 0;
|
||||||
return max($ret, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if($this->premdays == 0) {
|
if($this->premdays == 0) {
|
||||||
|
|||||||
@@ -18,16 +18,7 @@ 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
<?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,9 +10,4 @@ class Gallery extends Model {
|
|||||||
|
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'comment', 'image', 'thumb',
|
|
||||||
'author', 'ordering', 'hide',
|
|
||||||
];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<?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'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -28,8 +28,6 @@ define('HOOK_CHARACTERS_AFTER_CHARACTERS', ++$i);
|
|||||||
define('HOOK_LOGIN', ++$i);
|
define('HOOK_LOGIN', ++$i);
|
||||||
define('HOOK_LOGIN_ATTEMPT', ++$i);
|
define('HOOK_LOGIN_ATTEMPT', ++$i);
|
||||||
define('HOOK_LOGOUT', ++$i);
|
define('HOOK_LOGOUT', ++$i);
|
||||||
define('HOOK_ACCOUNT_CHANGE_PASSWORD_AFTER_OLD_PASSWORD', ++$i);
|
|
||||||
define('HOOK_ACCOUNT_CHANGE_PASSWORD_AFTER_NEW_PASSWORD', ++$i);
|
|
||||||
define('HOOK_ACCOUNT_CHANGE_PASSWORD_POST', ++$i);
|
define('HOOK_ACCOUNT_CHANGE_PASSWORD_POST', ++$i);
|
||||||
define('HOOK_ACCOUNT_CREATE_BEFORE_FORM', ++$i);
|
define('HOOK_ACCOUNT_CREATE_BEFORE_FORM', ++$i);
|
||||||
define('HOOK_ACCOUNT_CREATE_BEFORE_BOXES', ++$i);
|
define('HOOK_ACCOUNT_CREATE_BEFORE_BOXES', ++$i);
|
||||||
|
|||||||
@@ -9,29 +9,23 @@ Please enter your current password and a new password. For your security, please
|
|||||||
<span>Current Password:</span>
|
<span>Current Password:</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input form="form" type="password" id="old_password" name="old_password" size="30" maxlength="29">
|
<input form="form" type="password" name="oldpassword" size="30" maxlength="29">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
{{ hook('HOOK_ACCOUNT_CHANGE_PASSWORD_AFTER_OLD_PASSWORD') }}
|
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LabelV">
|
<td class="LabelV">
|
||||||
<span>New Password:</span>
|
<span>New Password:</span>
|
||||||
</td>
|
</td>
|
||||||
<td style="width:90%;">
|
<td style="width:90%;">
|
||||||
<input form="form" type="password" id="new_password" name="new_password" size="30" maxlength="29">
|
<input form="form" type="password" name="newpassword" size="30" maxlength="29">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
{{ hook('HOOK_ACCOUNT_CHANGE_PASSWORD_AFTER_NEW_PASSWORD') }}
|
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="LabelV">
|
<td class="LabelV">
|
||||||
<span>New Password Again:</span>
|
<span>New Password Again:</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input form="form" type="password" id="new_password_confirm" name="new_password_confirm" size="30" maxlength="29">
|
<input form="form" type="password" name="newpassword_confirm" size="30" maxlength="29">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
* @link https://my-aac.org
|
* @link https://my-aac.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const IGNORE_SET_LAST_VISIT = true;
|
|
||||||
|
|
||||||
// we need some functions
|
// we need some functions
|
||||||
require '../common.php';
|
require '../common.php';
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
const IGNORE_SET_LAST_VISIT = true;
|
|
||||||
|
|
||||||
require '../common.php';
|
require '../common.php';
|
||||||
require SYSTEM . 'init.php';
|
require SYSTEM . 'init.php';
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
|||||||
@@ -12,8 +12,6 @@
|
|||||||
use MyAAC\CreateCharacter;
|
use MyAAC\CreateCharacter;
|
||||||
use MyAAC\Models\Account;
|
use MyAAC\Models\Account;
|
||||||
|
|
||||||
const IGNORE_SET_LAST_VISIT = true;
|
|
||||||
|
|
||||||
// we need some functions
|
// we need some functions
|
||||||
require '../common.php';
|
require '../common.php';
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
|||||||
Reference in New Issue
Block a user