mirror of
https://github.com/slawkens/myaac.git
synced 2025-11-30 23:16:49 +01:00
feat: replace POT Query Builder to Eloquent ORM (#230)
* wip * wip * wip * wip * wip * fix: reusing pdo connection from pot * wip * wip * wip * wip * move files In future, all classes will be in src/ folder * Replace namespace name, for future * Remove duplicated exception * Fix towns from db * Fix spells page * Add default FAQ question + FAQ model * feat: reset colors in menus * Add confirm + save button at the top (menus) * Do not insert duplicated FAQ on install * Refactor install menus * Fix changelogs showing * Fix menu update, only with specified template name * Fix account create -> missing compat * Fix bans_per_page * banned_by is player_id. type = 2 is namelock in tfs 0.3 * Add getPlayerNameById, fix getPlayerNameByAccount * Change link name * Order by lastlogin * fix: query optimize * wip * wip * wip * wip * wip * wip * wip * Refactor notepad.php, class was useless * This is showing error, if the updated rows = 0 * Fix success & error class (bootstrap) * Uncomment require migrate.php * Some distro have owner_id * Update Player.php --------- Co-authored-by: slawkens <slawkens@gmail.com>
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
<?php
|
||||
|
||||
use MyAAC\Models\Player;
|
||||
|
||||
/**
|
||||
* CreateCharacter
|
||||
*
|
||||
@@ -52,9 +55,7 @@ class CreateCharacter
|
||||
return false;
|
||||
}
|
||||
|
||||
$player = new OTS_Player();
|
||||
$player->find($name);
|
||||
if($player->isLoaded()) {
|
||||
if(Player::where('name', '=', $name)->exists()) {
|
||||
$errors['name'] = 'Character with this name already exist.';
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<?php
|
||||
|
||||
use MyAAC\Models\Settings as ModelsSettings;
|
||||
|
||||
/**
|
||||
* CreateCharacter
|
||||
*
|
||||
@@ -40,13 +43,10 @@ class Settings implements ArrayAccess
|
||||
}
|
||||
}
|
||||
|
||||
global $db;
|
||||
$settings = $db->query('SELECT * FROM `' . TABLE_PREFIX . 'settings`');
|
||||
|
||||
if($settings->rowCount() > 0) {
|
||||
foreach ($settings->fetchAll(PDO::FETCH_ASSOC) as $setting) {
|
||||
$this->settingsDatabase[$setting['name']][$setting['key']] = $setting['value'];
|
||||
}
|
||||
$settings = ModelsSettings::all();
|
||||
foreach ($settings as $setting)
|
||||
{
|
||||
$this->settingsDatabase[$setting->name][$setting->key] = $setting->value;
|
||||
}
|
||||
|
||||
if ($cache->enabled()) {
|
||||
@@ -55,8 +55,6 @@ class Settings implements ArrayAccess
|
||||
}
|
||||
|
||||
public function save($pluginName, $values) {
|
||||
global $db;
|
||||
|
||||
if (!isset($this->settingsFile[$pluginName])) {
|
||||
throw new RuntimeException('Error on save settings: plugin does not exist');
|
||||
}
|
||||
@@ -69,7 +67,7 @@ class Settings implements ArrayAccess
|
||||
}
|
||||
|
||||
$this->errors = [];
|
||||
$db->query('DELETE FROM `' . TABLE_PREFIX . 'settings` WHERE `name` = ' . $db->quote($pluginName) . ';');
|
||||
ModelsSettings::where('name', $pluginName)->delete();
|
||||
foreach ($values as $key => $value) {
|
||||
$errorMessage = '';
|
||||
if (isset($settings['settings'][$key]['callbacks']['beforeSave']) && !$settings['settings'][$key]['callbacks']['beforeSave']($key, $value, $errorMessage)) {
|
||||
@@ -78,7 +76,11 @@ class Settings implements ArrayAccess
|
||||
}
|
||||
|
||||
try {
|
||||
$db->insert(TABLE_PREFIX . 'settings', ['name' => $pluginName, 'key' => $key, 'value' => $value]);
|
||||
ModelsSettings::create([
|
||||
'name' => $pluginName,
|
||||
'key' => $key,
|
||||
'value' => $value
|
||||
]);
|
||||
} catch (PDOException $error) {
|
||||
$this->errors[] = 'Error while saving setting (' . $pluginName . ' - ' . $key . '): ' . $error->getMessage();
|
||||
}
|
||||
@@ -94,36 +96,22 @@ class Settings implements ArrayAccess
|
||||
|
||||
public function updateInDatabase($pluginName, $key, $value)
|
||||
{
|
||||
global $db;
|
||||
$db->update(TABLE_PREFIX . 'settings', ['value' => $value], ['name' => $pluginName, 'key' => $key]);
|
||||
ModelsSettings::where(['name' => $pluginName, 'key' => $key])->update(['value' => $value]);
|
||||
}
|
||||
|
||||
public function deleteFromDatabase($pluginName, $key = null)
|
||||
{
|
||||
global $db;
|
||||
|
||||
if (!isset($key)) {
|
||||
$db->delete(TABLE_PREFIX . 'settings', ['name' => $pluginName], -1);
|
||||
ModelsSettings::where('name', $pluginName)->delete();
|
||||
}
|
||||
else {
|
||||
$db->delete(TABLE_PREFIX . 'settings', ['name' => $pluginName, 'key' => $key]);
|
||||
ModelsSettings::where('name', $pluginName)->where('key', $key)->delete();
|
||||
}
|
||||
}
|
||||
|
||||
public static function display($plugin, $settings): array
|
||||
{
|
||||
global $db;
|
||||
|
||||
$query = 'SELECT `key`, `value` FROM `' . TABLE_PREFIX . 'settings` WHERE `name` = ' . $db->quote($plugin) . ';';
|
||||
$query = $db->query($query);
|
||||
|
||||
$settingsDb = [];
|
||||
if($query->rowCount() > 0) {
|
||||
foreach($query->fetchAll(PDO::FETCH_ASSOC) as $value) {
|
||||
$settingsDb[$value['key']] = $value['value'];
|
||||
}
|
||||
}
|
||||
|
||||
$settingsDb = ModelsSettings::where('name', $plugin)->pluck('value', 'key')->toArray();
|
||||
$config = [];
|
||||
require BASE . 'config.local.php';
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
* @link https://my-aac.org
|
||||
*/
|
||||
|
||||
use MyAAC\Models\Town;
|
||||
|
||||
/**
|
||||
* Class Towns
|
||||
*/
|
||||
@@ -124,15 +126,6 @@ class Towns
|
||||
*/
|
||||
public static function getFromDatabase()
|
||||
{
|
||||
global $db;
|
||||
|
||||
$query = $db->query('SELECT `id`, `name` FROM `towns`;')->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$towns = [];
|
||||
foreach($query as $town) {
|
||||
$towns[$town['id']] = $town['name'];
|
||||
}
|
||||
|
||||
return $towns;
|
||||
return Town::pluck('name', 'id')->toArray();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use MyAAC\Models\Changelog as ModelsChangelog;
|
||||
|
||||
class Changelog
|
||||
{
|
||||
static public function verify($body,$date, &$errors)
|
||||
@@ -19,43 +21,61 @@ class Changelog
|
||||
|
||||
static public function add($body, $type, $where, $player_id, $cdate, &$errors)
|
||||
{
|
||||
global $db;
|
||||
if(!self::verify($body,$cdate, $errors))
|
||||
return false;
|
||||
|
||||
$db->insert(TABLE_PREFIX . 'changelog', array('body' => $body, 'type' => $type, 'date' => $cdate, 'where' => $where, 'player_id' => isset($player_id) ? $player_id : 0));
|
||||
self::clearCache();
|
||||
return true;
|
||||
$row = new ModelsChangelog;
|
||||
$row->body = $body;
|
||||
$row->type = $type;
|
||||
$row->date = $cdate;
|
||||
$row->where = $where;
|
||||
$row->player_id = $player_id ?? 0;
|
||||
if ($row->save()) {
|
||||
self::clearCache();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static public function get($id) {
|
||||
global $db;
|
||||
return $db->select(TABLE_PREFIX . 'changelog', array('id' => $id));
|
||||
return ModelsChangelog::find($id);
|
||||
}
|
||||
|
||||
static public function update($id, $body, $type, $where, $player_id, $date, &$errors)
|
||||
{
|
||||
global $db;
|
||||
if(!self::verify($body,$date, $errors))
|
||||
return false;
|
||||
|
||||
$db->update(TABLE_PREFIX . 'changelog', array('body' => $body, 'type' => $type, 'where' => $where, 'player_id' => isset($player_id) ? $player_id : 0, 'date' => $date), array('id' => $id));
|
||||
self::clearCache();
|
||||
return true;
|
||||
if (ModelsChangelog::where('id', '=', $id)->update([
|
||||
'body' => $body,
|
||||
'type' => $type,
|
||||
'where' => $where,
|
||||
'player_id' => $player_id ?? 0,
|
||||
'date' => $date
|
||||
])) {
|
||||
self::clearCache();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static public function delete($id, &$errors)
|
||||
{
|
||||
global $db;
|
||||
if(isset($id))
|
||||
{
|
||||
if($db->select(TABLE_PREFIX . 'changelog', array('id' => $id)) !== false)
|
||||
$db->delete(TABLE_PREFIX . 'changelog', array('id' => $id));
|
||||
else
|
||||
$row = ModelsChangelog::find($id);
|
||||
if ($row) {
|
||||
if (!$row->delete()) {
|
||||
$errors[] = 'Fail during delete Changelog.';
|
||||
}
|
||||
} else {
|
||||
$errors[] = 'Changelog with id ' . $id . ' does not exist.';
|
||||
}
|
||||
else
|
||||
}
|
||||
} else {
|
||||
$errors[] = 'Changelog id not set.';
|
||||
}
|
||||
|
||||
if(count($errors)) {
|
||||
return false;
|
||||
@@ -67,17 +87,18 @@ class Changelog
|
||||
|
||||
static public function toggleHidden($id, &$errors, &$status)
|
||||
{
|
||||
global $db;
|
||||
if(isset($id))
|
||||
{
|
||||
$query = $db->select(TABLE_PREFIX . 'changelog', array('id' => $id));
|
||||
if($query !== false)
|
||||
{
|
||||
$db->update(TABLE_PREFIX . 'changelog', array('hidden' => ($query['hidden'] == 1 ? 0 : 1)), array('id' => $id));
|
||||
$status = $query['hidden'];
|
||||
}
|
||||
else
|
||||
$row = ModelsChangelog::find($id);
|
||||
if ($row) {
|
||||
$row->hidden = $row->hidden == 1 ? 0 : 1;
|
||||
if (!$row->save()) {
|
||||
$errors[] = 'Fail during toggle hidden Changelog.';
|
||||
}
|
||||
} else {
|
||||
$errors[] = 'Changelog with id ' . $id . ' does not exists.';
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
$errors[] = 'Changelog id not set.';
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
* @copyright 2019 MyAAC
|
||||
* @link https://my-aac.org
|
||||
*/
|
||||
|
||||
use MyAAC\Models\Monster;
|
||||
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
||||
require_once LIBS . 'items.php';
|
||||
@@ -19,9 +22,9 @@ class Creatures {
|
||||
private static $lastError = '';
|
||||
|
||||
public static function loadFromXML($show = false) {
|
||||
global $db;
|
||||
|
||||
try { $db->exec('DELETE FROM `' . TABLE_PREFIX . 'monsters`;'); } catch(PDOException $error) {}
|
||||
try {
|
||||
Monster::query()->delete();
|
||||
} catch(Exception $error) {}
|
||||
|
||||
if($show) {
|
||||
echo '<h2>Reload monsters.</h2>';
|
||||
@@ -93,9 +96,9 @@ class Creatures {
|
||||
$flags['convinceable'] = '0';
|
||||
|
||||
if(!isset($flags['pushable']))
|
||||
$flags['pushable'] = '0';
|
||||
$flags['pushable'] = '0';
|
||||
if(!isset($flags['canpushitems']))
|
||||
$flags['canpushitems'] = '0';
|
||||
$flags['canpushitems'] = '0';
|
||||
if(!isset($flags['canpushcreatures']))
|
||||
$flags['canpushcreatures'] = '0';
|
||||
if(!isset($flags['runonhealth']))
|
||||
@@ -112,7 +115,7 @@ class Creatures {
|
||||
$flags['attackable'] = '0';
|
||||
if(!isset($flags['rewardboss']))
|
||||
$flags['rewardboss'] = '0';
|
||||
|
||||
|
||||
$summons = $monster->getSummons();
|
||||
$loot = $monster->getLoot();
|
||||
foreach($loot as &$item) {
|
||||
@@ -124,7 +127,7 @@ class Creatures {
|
||||
}
|
||||
if(!in_array($name, $names_added)) {
|
||||
try {
|
||||
$db->insert(TABLE_PREFIX . 'monsters', array(
|
||||
Monster::create(array(
|
||||
'name' => $name,
|
||||
'mana' => empty($mana) ? 0 : $mana,
|
||||
'exp' => $monster->getExperience(),
|
||||
@@ -132,7 +135,7 @@ class Creatures {
|
||||
'speed_lvl' => $speed_lvl,
|
||||
'use_haste' => $use_haste,
|
||||
'voices' => json_encode($monster->getVoices()),
|
||||
'immunities' => json_encode($monster->getImmunities()),
|
||||
'immunities' => json_encode($monster->getImmunities()),
|
||||
'elements' => json_encode($monster->getElements()),
|
||||
'summonable' => $flags['summonable'] > 0 ? 1 : 0,
|
||||
'convinceable' => $flags['convinceable'] > 0 ? 1 : 0,
|
||||
@@ -158,7 +161,7 @@ class Creatures {
|
||||
success('Added: ' . $name . '<br/>');
|
||||
}
|
||||
}
|
||||
catch(PDOException $error) {
|
||||
catch(Exception $error) {
|
||||
if($show) {
|
||||
warning('Error while adding monster (' . $name . '): ' . $error->getMessage());
|
||||
}
|
||||
|
||||
@@ -78,8 +78,6 @@ class Items
|
||||
}
|
||||
|
||||
public static function getDescription($id, $count = 1) {
|
||||
global $db;
|
||||
|
||||
$item = self::get($id);
|
||||
|
||||
$attr = $item['attributes'];
|
||||
@@ -112,17 +110,15 @@ class Items
|
||||
$s .= 'an item of type ' . $item['id'];
|
||||
|
||||
if(isset($attr['type']) && strtolower($attr['type']) == 'rune') {
|
||||
$query = $db->query('SELECT `level`, `maglevel`, `vocations` FROM `' . TABLE_PREFIX . 'spells` WHERE `item_id` = ' . $id);
|
||||
if($query->rowCount() == 1) {
|
||||
$query = $query->fetch();
|
||||
|
||||
if($query['level'] > 0 && $query['maglevel'] > 0) {
|
||||
$item = Spells::where('item_id', $id)->first();
|
||||
if($item) {
|
||||
if($item->level > 0 && $item->maglevel > 0) {
|
||||
$s .= '. ' . ($count > 1 ? "They" : "It") . ' can only be used by ';
|
||||
}
|
||||
|
||||
$configVocations = config('vocations');
|
||||
if(!empty(trim($query['vocations']))) {
|
||||
$vocations = json_decode($query['vocations']);
|
||||
if(!empty(trim($item->vocations))) {
|
||||
$vocations = json_decode($item->vocations);
|
||||
if(count($vocations) > 0) {
|
||||
foreach($vocations as $voc => $show) {
|
||||
$vocations[$configVocations[$voc]] = $show;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use MyAAC\Models\News as ModelsNews;
|
||||
|
||||
class News
|
||||
{
|
||||
static public function verify($title, $body, $article_text, $article_image, &$errors)
|
||||
@@ -29,38 +31,57 @@ class News
|
||||
|
||||
static public function add($title, $body, $type, $category, $player_id, $comments, $article_text, $article_image, &$errors)
|
||||
{
|
||||
global $db;
|
||||
if(!self::verify($title, $body, $article_text, $article_image, $errors))
|
||||
return false;
|
||||
|
||||
$db->insert(TABLE_PREFIX . 'news', array('title' => $title, 'body' => $body, 'type' => $type, 'date' => time(), 'category' => $category, 'player_id' => isset($player_id) ? $player_id : 0, 'comments' => $comments, 'article_text' => ($type == 3 ? $article_text : ''), 'article_image' => ($type == 3 ? $article_image : '')));
|
||||
ModelsNews::create([
|
||||
'title' => $title,
|
||||
'body' => $body,
|
||||
'type' => $type,
|
||||
'date' => time(),
|
||||
'category' => $category,
|
||||
'player_id' => isset($player_id) ? $player_id : 0,
|
||||
'comments' => $comments,
|
||||
'article_text' => ($type == 3 ? $article_text : ''),
|
||||
'article_image' => ($type == 3 ? $article_image : '')
|
||||
]);
|
||||
self::clearCache();
|
||||
return true;
|
||||
}
|
||||
|
||||
static public function get($id) {
|
||||
global $db;
|
||||
return $db->select(TABLE_PREFIX . 'news', array('id' => $id));
|
||||
return ModelsNews::find($id)->toArray();
|
||||
}
|
||||
|
||||
static public function update($id, $title, $body, $type, $category, $player_id, $comments, $article_text, $article_image, &$errors)
|
||||
{
|
||||
global $db;
|
||||
if(!self::verify($title, $body, $article_text, $article_image, $errors))
|
||||
return false;
|
||||
|
||||
$db->update(TABLE_PREFIX . 'news', array('title' => $title, 'body' => $body, 'type' => $type, 'category' => $category, 'last_modified_by' => isset($player_id) ? $player_id : 0, 'last_modified_date' => time(), 'comments' => $comments, 'article_text' => $article_text, 'article_image' => $article_image), array('id' => $id));
|
||||
ModelsNews::where('id', $id)->update([
|
||||
'title' => $title,
|
||||
'body' => $body,
|
||||
'type' => $type,
|
||||
'category' => $category,
|
||||
'last_modified_by' => isset($player_id) ? $player_id : 0,
|
||||
'last_modified_date' => time(),
|
||||
'comments' => $comments,
|
||||
'article_text' => $article_text,
|
||||
'article_image' => $article_image
|
||||
]);
|
||||
self::clearCache();
|
||||
return true;
|
||||
}
|
||||
|
||||
static public function delete($id, &$errors)
|
||||
{
|
||||
global $db;
|
||||
if(isset($id))
|
||||
{
|
||||
if($db->select(TABLE_PREFIX . 'news', array('id' => $id)) !== false)
|
||||
$db->delete(TABLE_PREFIX . 'news', array('id' => $id));
|
||||
$row = ModelsNews::find($id);
|
||||
if($row)
|
||||
if (!$row->delete()) {
|
||||
$errors[] = 'Fail during delete News.';
|
||||
}
|
||||
else
|
||||
$errors[] = 'News with id ' . $id . ' does not exists.';
|
||||
}
|
||||
@@ -77,14 +98,16 @@ class News
|
||||
|
||||
static public function toggleHidden($id, &$errors, &$status)
|
||||
{
|
||||
global $db;
|
||||
if(isset($id))
|
||||
{
|
||||
$query = $db->select(TABLE_PREFIX . 'news', array('id' => $id));
|
||||
if($query !== false)
|
||||
$row = ModelsNews::find($id);
|
||||
if($row)
|
||||
{
|
||||
$db->update(TABLE_PREFIX . 'news', array('hidden' => ($query['hidden'] == 1 ? 0 : 1)), array('id' => $id));
|
||||
$status = $query['hidden'];
|
||||
$row->hidden = $row->hidden == 1 ? 0 : 1;
|
||||
if (!$row->save()) {
|
||||
$errors[] = 'Fail during toggle hidden News.';
|
||||
}
|
||||
$status = $row->hidden;
|
||||
}
|
||||
else
|
||||
$errors[] = 'News with id ' . $id . ' does not exists.';
|
||||
|
||||
@@ -39,6 +39,7 @@ function is_sub_dir($path = NULL, $parent_folder = BASE) {
|
||||
}
|
||||
|
||||
use Composer\Semver\Semver;
|
||||
use MyAAC\Models\Menu;
|
||||
|
||||
class Plugins {
|
||||
private static $warnings = [];
|
||||
@@ -649,11 +650,9 @@ class Plugins {
|
||||
*/
|
||||
public static function installMenus($templateName, $categories)
|
||||
{
|
||||
global $db;
|
||||
|
||||
// check if menus already exist
|
||||
$query = $db->query('SELECT `id` FROM `' . TABLE_PREFIX . 'menu` WHERE `template` = ' . $db->quote($templateName) . ' LIMIT 1;');
|
||||
if ($query->rowCount() > 0) {
|
||||
$menuInstalled = Menu::where('template', $templateName)->select('id')->first();
|
||||
if ($menuInstalled) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -687,7 +686,7 @@ class Plugins {
|
||||
'color' => $color,
|
||||
];
|
||||
|
||||
$db->insert(TABLE_PREFIX . 'menu', $insert_array);
|
||||
Menu::create($insert_array);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
* @copyright 2019 MyAAC
|
||||
* @link https://my-aac.org
|
||||
*/
|
||||
|
||||
use MyAAC\Models\Spell;
|
||||
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
||||
class Spells {
|
||||
@@ -31,9 +34,11 @@ class Spells {
|
||||
}
|
||||
|
||||
public static function loadFromXML($show = false) {
|
||||
global $config, $db;
|
||||
global $config;
|
||||
|
||||
try { $db->exec('DELETE FROM `' . TABLE_PREFIX . 'spells`;'); } catch(PDOException $error) {}
|
||||
try {
|
||||
Spell::query()->delete();
|
||||
} catch(Exception $error) {}
|
||||
|
||||
if($show) {
|
||||
echo '<h2>Reload spells.</h2>';
|
||||
@@ -63,7 +68,7 @@ class Spells {
|
||||
continue;
|
||||
|
||||
try {
|
||||
$db->insert(TABLE_PREFIX . 'spells', array(
|
||||
Spell::create(array(
|
||||
'name' => $name,
|
||||
'words' => $words,
|
||||
'type' => 2,
|
||||
@@ -105,7 +110,7 @@ class Spells {
|
||||
continue;
|
||||
|
||||
try {
|
||||
$db->insert(TABLE_PREFIX . 'spells', array(
|
||||
Spell::create(array(
|
||||
'name' => $name,
|
||||
'words' => $words,
|
||||
'type' => 1,
|
||||
@@ -142,7 +147,7 @@ class Spells {
|
||||
$name = $spell->getName() . ' Rune';
|
||||
|
||||
try {
|
||||
$db->insert(TABLE_PREFIX . 'spells', array(
|
||||
Spell::create(array(
|
||||
'name' => $name,
|
||||
'words' => $spell->getWords(),
|
||||
'type' => 3,
|
||||
@@ -178,4 +183,4 @@ class Spells {
|
||||
public static function getLastError() {
|
||||
return self::$lastError;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
* @copyright 2019 MyAAC
|
||||
* @link https://my-aac.org
|
||||
*/
|
||||
|
||||
use MyAAC\Models\Monster;
|
||||
use MyAAC\Models\Spell;
|
||||
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
||||
class Validator
|
||||
@@ -307,8 +311,7 @@ class Validator
|
||||
|
||||
$monstersCheck = setting('core.create_character_name_monsters_check');
|
||||
if ($monstersCheck) {
|
||||
$monsters = $db->query('SELECT `name` FROM `' . TABLE_PREFIX . 'monsters` WHERE `name` LIKE ' . $db->quote($name_lower));
|
||||
if ($monsters->rowCount() > 0) {
|
||||
if (Monster::where('name', 'like', $name_lower)->exists()) {
|
||||
self::$lastError = 'Your name cannot contains monster name.';
|
||||
return false;
|
||||
}
|
||||
@@ -316,14 +319,12 @@ class Validator
|
||||
|
||||
$spellsCheck = setting('core.create_character_name_spells_check');
|
||||
if ($spellsCheck) {
|
||||
$spells_name = $db->query('SELECT `name` FROM `' . TABLE_PREFIX . 'spells` WHERE `name` LIKE ' . $db->quote($name_lower));
|
||||
if ($spells_name->rowCount() > 0) {
|
||||
if (Spell::where('name', 'like', $name_lower)->exists()) {
|
||||
self::$lastError = 'Your name cannot contains spell name.';
|
||||
return false;
|
||||
}
|
||||
|
||||
$spells_words = $db->query('SELECT `words` FROM `' . TABLE_PREFIX . 'spells` WHERE `words` = ' . $db->quote($name_lower));
|
||||
if ($spells_words->rowCount() > 0) {
|
||||
if (Spell::where('words', $name_lower)->exists()) {
|
||||
self::$lastError = 'Your name cannot contains spell name.';
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
* @copyright 2019 MyAAC
|
||||
* @link https://my-aac.org
|
||||
*/
|
||||
|
||||
use MyAAC\Models\Visitor;
|
||||
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
||||
class Visitors
|
||||
@@ -54,9 +57,7 @@ class Visitors
|
||||
return isset($this->data[$ip]);
|
||||
}
|
||||
|
||||
global $db;
|
||||
$users = $db->query('SELECT COUNT(`ip`) as count FROM `' . TABLE_PREFIX . 'visitors' . '` WHERE ' . $db->fieldName('ip') . ' = ' . $db->quote($ip))->fetch();
|
||||
return ($users['count'] > 0);
|
||||
return Visitor::where('ip', $ip)->exists();
|
||||
}
|
||||
|
||||
private function cleanVisitors()
|
||||
@@ -73,8 +74,7 @@ class Visitors
|
||||
return;
|
||||
}
|
||||
|
||||
global $db;
|
||||
$db->exec('DELETE FROM ' . $db->tableName(TABLE_PREFIX . 'visitors') . ' WHERE ' . $db->fieldName('lastvisit') . ' < ' . (time() - $this->sessionTime * 60));
|
||||
Visitor::where('lastvisit', '<', (time() - $this->sessionTime * 60))->delete();
|
||||
}
|
||||
|
||||
private function updateVisitor($ip, $page, $userAgent)
|
||||
@@ -84,8 +84,7 @@ class Visitors
|
||||
return;
|
||||
}
|
||||
|
||||
global $db;
|
||||
$db->update(TABLE_PREFIX . 'visitors', ['lastvisit' => time(), 'page' => $page, 'user_agent' => $userAgent], ['ip' => $ip]);
|
||||
Visitor::where('ip', $ip)->update(['lastvisit' => time(), 'page' => $page, 'user_agent' => $userAgent]);
|
||||
}
|
||||
|
||||
private function addVisitor($ip, $page, $userAgent)
|
||||
@@ -95,8 +94,7 @@ class Visitors
|
||||
return;
|
||||
}
|
||||
|
||||
global $db;
|
||||
$db->insert(TABLE_PREFIX . 'visitors', ['ip' => $ip, 'lastvisit' => time(), 'page' => $page, 'user_agent' => $userAgent]);
|
||||
Visitor::create(['ip' => $ip, 'lastvisit' => time(), 'page' => $page, 'user_agent' => $userAgent]);
|
||||
}
|
||||
|
||||
public function getVisitors()
|
||||
@@ -108,8 +106,7 @@ class Visitors
|
||||
return $this->data;
|
||||
}
|
||||
|
||||
global $db;
|
||||
return $db->query('SELECT ' . $db->fieldName('ip') . ', ' . $db->fieldName('lastvisit') . ', ' . $db->fieldName('page') . ', ' . $db->fieldName('user_agent') . ' FROM ' . $db->tableName(TABLE_PREFIX . 'visitors') . ' ORDER BY ' . $db->fieldName('lastvisit') . ' DESC')->fetchAll();
|
||||
return Visitor::orderByDesc('lastvisit')->get()->toArray();
|
||||
}
|
||||
|
||||
public function getAmountVisitors()
|
||||
@@ -118,9 +115,7 @@ class Visitors
|
||||
return count($this->data);
|
||||
}
|
||||
|
||||
global $db;
|
||||
$users = $db->query('SELECT COUNT(`ip`) as count FROM `' . TABLE_PREFIX . 'visitors`')->fetch();
|
||||
return $users['count'];
|
||||
return Visitor::count();
|
||||
}
|
||||
|
||||
public function show() {
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
* @copyright 2019 MyAAC
|
||||
* @link https://my-aac.org
|
||||
*/
|
||||
|
||||
use MyAAC\Models\Weapon;
|
||||
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
||||
class Weapons {
|
||||
@@ -15,10 +18,10 @@ class Weapons {
|
||||
|
||||
public static function loadFromXML($show = false)
|
||||
{
|
||||
global $config, $db;
|
||||
global $config;
|
||||
|
||||
try {
|
||||
$db->exec("DELETE FROM `myaac_weapons`;");
|
||||
Weapon::query()->delete();
|
||||
} catch (PDOException $error) {
|
||||
}
|
||||
|
||||
@@ -45,7 +48,7 @@ class Weapons {
|
||||
}
|
||||
|
||||
public static function parseNode($node, $show = false) {
|
||||
global $config, $db;
|
||||
global $config;
|
||||
|
||||
$id = (int)$node->getAttribute('id');
|
||||
$vocations_ids = array_flip($config['vocations']);
|
||||
@@ -64,18 +67,19 @@ class Weapons {
|
||||
$vocations[$voc_id] = strlen($show) == 0 || $show != '0';
|
||||
}
|
||||
|
||||
$exist = $db->query('SELECT `id` FROM `' . TABLE_PREFIX . 'weapons` WHERE `id` = ' . $id);
|
||||
if($exist->rowCount() > 0) {
|
||||
if(Weapon::find($id)) {
|
||||
if($show) {
|
||||
warning('Duplicated weapon with id: ' . $id);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$db->insert(TABLE_PREFIX . 'weapons', array('id' => $id, 'level' => $level, 'maglevel' => $maglevel, 'vocations' => json_encode($vocations)));
|
||||
Weapon::create([
|
||||
'id' => $id, 'level' => $level, 'maglevel' => $maglevel, 'vocations' => json_encode($vocations)
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public static function getError() {
|
||||
return self::$error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user