mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
DB:
- change engine of ?_account*-tables to InnoDB - link userId of ?_account*, ?_screenshot & ?_videos -tables using foreign keys - also display screenshots/videos, that do not have an owner
This commit is contained in:
@@ -629,7 +629,7 @@ class AjaxHandler
|
||||
{
|
||||
if (!isset($this->post['id']))
|
||||
{
|
||||
$res = DB::Aowow()->selectRow('SELECT max(id) as max, count(id) as num FROM ?_account_weightscales WHERE account = ?d', User::$id);
|
||||
$res = DB::Aowow()->selectRow('SELECT max(id) as max, count(id) as num FROM ?_account_weightscales WHERE userId = ?d', User::$id);
|
||||
if ($res['num'] < 5) // more or less hard-defined in LANG.message_weightscalesaveerror
|
||||
$this->post['id'] = ++$res['max'];
|
||||
else
|
||||
@@ -642,7 +642,7 @@ class AjaxHandler
|
||||
return 0;
|
||||
}
|
||||
else if ($this->post('delete') && $this->post('id'))
|
||||
DB::Aowow()->query('DELETE FROM ?_account_weightscales WHERE id = ?d AND account = ?d', intVal($this->post('id')), User::$id);
|
||||
DB::Aowow()->query('DELETE FROM ?_account_weightscales WHERE id = ?d AND userId = ?d', intVal($this->post('id')), User::$id);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
@@ -782,7 +782,7 @@ class AjaxHandler
|
||||
$id = $matches[1];
|
||||
$dest = imageCreateTruecolor($s[$size], $s[$size]);
|
||||
|
||||
if (file_exists('/uploads/avatars/'.$id.'.jpg'))
|
||||
if (file_exists('uploads/avatars/'.$id.'.jpg'))
|
||||
{
|
||||
$offsetX = $offsetY = 0;
|
||||
|
||||
@@ -1167,7 +1167,7 @@ class AjaxHandler
|
||||
foreach ($ids as $id)
|
||||
{
|
||||
// must not be already approved
|
||||
if ($_ = DB::Aowow()->selectCell('SELECT uploader FROM ?_screenshots WHERE (status & ?d) = 0 AND id = ?d', CC_FLAG_APPROVED, $id))
|
||||
if ($_ = DB::Aowow()->selectCell('SELECT userIdOwner FROM ?_screenshots WHERE (status & ?d) = 0 AND id = ?d', CC_FLAG_APPROVED, $id))
|
||||
{
|
||||
// should also error-log
|
||||
if (!file_exists(sprintf($path, 'pending', $id)))
|
||||
@@ -1208,7 +1208,7 @@ class AjaxHandler
|
||||
rename(sprintf($path, 'pending', $id), sprintf($path, 'normal', $id));
|
||||
|
||||
// set as approved in DB and gain rep (once!)
|
||||
DB::Aowow()->query('UPDATE ?_screenshots SET status = ?d, approvedBy = ?d WHERE id = ?d', CC_FLAG_APPROVED, User::$id, $id);
|
||||
DB::Aowow()->query('UPDATE ?_screenshots SET status = ?d, userIdApprove = ?d WHERE id = ?d', CC_FLAG_APPROVED, User::$id, $id);
|
||||
Util::gainSiteReputation($_, SITEREP_ACTION_UPLOAD, ['id' => $id, 'what' => 1]);
|
||||
}
|
||||
}
|
||||
@@ -1279,7 +1279,7 @@ class AjaxHandler
|
||||
}
|
||||
|
||||
// flag as deleted if not aready
|
||||
DB::Aowow()->query('UPDATE ?_screenshots SET status = ?d, deletedBy = ?d WHERE id IN (?a)', CC_FLAG_DELETED, User::$id, $ids);
|
||||
DB::Aowow()->query('UPDATE ?_screenshots SET status = ?d, userIdDelete = ?d WHERE id IN (?a)', CC_FLAG_DELETED, User::$id, $ids);
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -237,14 +237,14 @@ class CommunityContent
|
||||
public static function getScreenshotsForManager($type, $typeId, $userId = 0)
|
||||
{
|
||||
$screenshots = DB::Aowow()->select('
|
||||
SELECT s.id, a.displayName AS user, s.date, s.width, s.height, s.type, s.typeId, s.caption, s.status, s.status AS "flags"
|
||||
FROM ?_screenshots s, ?_account a
|
||||
SELECT s.id, a.displayName AS user, s.date, s.width, s.height, s.type, s.typeId, s.caption, s.status, s.status AS "flags"
|
||||
FROM ?_screenshots s,
|
||||
LEFT JOIN ?_account a ON s.userIdOwner = a.id
|
||||
WHERE
|
||||
s.uploader = a.id AND
|
||||
{ s.type = ?d}
|
||||
{ AND s.typeId = ?d}
|
||||
{ s.uploader = ?d}
|
||||
LIMIT 100',
|
||||
{ s.type = ?d}
|
||||
{ AND s.typeId = ?d}
|
||||
{ s.userIdOwner = ?d}
|
||||
LIMIT 100',
|
||||
$userId ? DBSIMPLE_SKIP : $type,
|
||||
$userId ? DBSIMPLE_SKIP : $typeId,
|
||||
$userId ? $userId : DBSIMPLE_SKIP
|
||||
@@ -296,6 +296,9 @@ class CommunityContent
|
||||
// something todo with massSelect .. am i doing this right?
|
||||
if ($num[$s['type']][$s['typeId']] == 1)
|
||||
$s['unique'] = 1;
|
||||
|
||||
if (!$s['user'])
|
||||
unset($s['user']);
|
||||
}
|
||||
|
||||
return $screenshots;
|
||||
@@ -418,8 +421,9 @@ class CommunityContent
|
||||
{
|
||||
$videos = DB::Aowow()->selectPage($nFound, "
|
||||
SELECT v.id, a.displayName AS user, v.date, v.videoId, v.caption, IF(v.status & ?d, 1, 0) AS 'sticky', v.type, v.typeId
|
||||
FROM ?_videos v, ?_account a
|
||||
WHERE {v.uploader = ?d }{v.type = ? }{AND v.typeId = ? }AND v.status & ?d AND (v.status & ?d) = 0 AND v.uploader = a.id",
|
||||
FROM ?_videos v
|
||||
LEFT JOIN ?_account a ON v.userIdOwner = a.id
|
||||
WHERE {v.userIdOwner = ?d }{v.type = ? }{AND v.typeId = ? }AND v.status & ?d AND (v.status & ?d) = 0",
|
||||
CC_FLAG_STICKY,
|
||||
$typeOrUser < 0 ? -$typeOrUser : DBSIMPLE_SKIP,
|
||||
$typeOrUser > 0 ? $typeOrUser : DBSIMPLE_SKIP,
|
||||
@@ -449,8 +453,12 @@ class CommunityContent
|
||||
|
||||
$v['date'] = date(Util::$dateFormatInternal, $v['date']);
|
||||
$v['videoType'] = 1; // always youtube
|
||||
|
||||
if (!$v['sticky'])
|
||||
unset($v['sticky']);
|
||||
|
||||
if (!$v['user'])
|
||||
unset($v['user']);
|
||||
}
|
||||
|
||||
return $videos;
|
||||
@@ -460,8 +468,9 @@ class CommunityContent
|
||||
{
|
||||
$screenshots = DB::Aowow()->selectPage($nFound, "
|
||||
SELECT s.id, a.displayName AS user, s.date, s.width, s.height, s.caption, IF(s.status & ?d, 1, 0) AS 'sticky', s.type, s.typeId
|
||||
FROM ?_screenshots s, ?_account a
|
||||
WHERE {s.uploader = ?d }{s.type = ? }{AND s.typeId = ? }AND s.status & ?d AND (s.status & ?d) = 0 AND s.uploader = a.id",
|
||||
FROM ?_screenshots s
|
||||
LEFT JOIN ?_account a ON s.userIdOwner = a.id
|
||||
WHERE {s.userIdOwner = ?d }{s.type = ? }{AND s.typeId = ? }AND s.status & ?d AND (s.status & ?d) = 0",
|
||||
CC_FLAG_STICKY,
|
||||
$typeOrUser < 0 ? -$typeOrUser : DBSIMPLE_SKIP,
|
||||
$typeOrUser > 0 ? $typeOrUser : DBSIMPLE_SKIP,
|
||||
@@ -490,8 +499,12 @@ class CommunityContent
|
||||
}
|
||||
|
||||
$s['date'] = date(Util::$dateFormatInternal, $s['date']);
|
||||
|
||||
if (!$s['sticky'])
|
||||
unset($s['sticky']);
|
||||
|
||||
if (!$s['user'])
|
||||
unset($s['user']);
|
||||
}
|
||||
|
||||
return $screenshots;
|
||||
|
||||
@@ -525,7 +525,7 @@ class User
|
||||
{
|
||||
$data = [];
|
||||
|
||||
$res = DB::Aowow()->select('SELECT * FROM ?_account_weightscales WHERE account = ?d', self::$id);
|
||||
$res = DB::Aowow()->select('SELECT * FROM ?_account_weightscales WHERE userId = ?d', self::$id);
|
||||
foreach ($res as $i)
|
||||
{
|
||||
$set = array (
|
||||
|
||||
@@ -104,7 +104,7 @@ class ScreenshotPage extends GenericPage
|
||||
|
||||
// write to db
|
||||
$newId = DB::Aowow()->query(
|
||||
'INSERT INTO ?_screenshots (type, typeId, uploader, date, width, height, caption) VALUES (?d, ?d, ?d, UNIX_TIMESTAMP(), ?d, ?d, ?)',
|
||||
'INSERT INTO ?_screenshots (type, typeId, userIdOwner, date, width, height, caption) VALUES (?d, ?d, ?d, UNIX_TIMESTAMP(), ?d, ?d, ?)',
|
||||
$_SESSION['ssUpload']['type'], $_SESSION['ssUpload']['typeId'],
|
||||
User::$id,
|
||||
$w, $h,
|
||||
|
||||
@@ -61,7 +61,7 @@ class UserPage extends GenericPage
|
||||
if ($co['sum'])
|
||||
$contrib[] = Lang::user('comments').Lang::main('colon').$co['sum'].' [small]([tooltip=tooltip_totalratings]'.$co['nRates'].'[/tooltip])[/small]';
|
||||
|
||||
$ss = DB::Aowow()->selectRow('SELECT COUNT(id) AS sum, SUM(IF(status & ?d, 1, 0)) as nSticky FROM ?_screenshots WHERE uploader = ?d AND status & ?d AND (status & ?d) = 0',
|
||||
$ss = DB::Aowow()->selectRow('SELECT COUNT(id) AS sum, SUM(IF(status & ?d, 1, 0)) as nSticky FROM ?_screenshots WHERE userIdOwner = ?d AND status & ?d AND (status & ?d) = 0',
|
||||
CC_FLAG_STICKY,
|
||||
$this->user['id'],
|
||||
CC_FLAG_APPROVED,
|
||||
@@ -70,7 +70,7 @@ class UserPage extends GenericPage
|
||||
if ($ss['sum'])
|
||||
$contrib[] = Lang::user('screenshots').Lang::main('colon').$ss['sum'].' [small]([tooltip=tooltip_normal]'.($ss['sum'] - $ss['nSticky']).'[/tooltip] + [tooltip=tooltip_sticky]'.$ss['nSticky'].'[/tooltip])[/small]';
|
||||
|
||||
$vi = DB::Aowow()->selectRow('SELECT COUNT(id) AS sum, SUM(IF(status & ?d, 1, 0)) as nSticky FROM ?_videos WHERE uploader = ?d AND status & ?d AND (status & ?d) = 0',
|
||||
$vi = DB::Aowow()->selectRow('SELECT COUNT(id) AS sum, SUM(IF(status & ?d, 1, 0)) as nSticky FROM ?_videos WHERE userIdOwner = ?d AND status & ?d AND (status & ?d) = 0',
|
||||
CC_FLAG_STICKY,
|
||||
$this->user['id'],
|
||||
CC_FLAG_APPROVED,
|
||||
|
||||
79
setup/updates/1433793600_01.sql
Normal file
79
setup/updates/1433793600_01.sql
Normal file
@@ -0,0 +1,79 @@
|
||||
-- ***************************
|
||||
-- * change engine to InnoDB *
|
||||
-- * unify userId-fields *
|
||||
-- ***************************
|
||||
|
||||
ALTER TABLE `aowow_account`
|
||||
ENGINE=InnoDB,
|
||||
ROW_FORMAT=COMPACT;
|
||||
|
||||
ALTER TABLE `aowow_account_banned`
|
||||
ALTER `userId` DROP DEFAULT,
|
||||
ALTER `staffId` DROP DEFAULT;
|
||||
ALTER TABLE `aowow_account_banned`
|
||||
ENGINE=InnoDB,
|
||||
ROW_FORMAT=COMPACT,
|
||||
CHANGE COLUMN `userId` `userId` INT(10) UNSIGNED NOT NULL COMMENT 'affected accountId' AFTER `id`,
|
||||
CHANGE COLUMN `staffId` `staffId` INT(10) UNSIGNED NOT NULL COMMENT 'executive accountId' AFTER `userId`;
|
||||
|
||||
ALTER TABLE `aowow_account_cookies`
|
||||
ENGINE=InnoDB,
|
||||
ROW_FORMAT=COMPACT;
|
||||
|
||||
ALTER TABLE `aowow_account_reputation`
|
||||
ENGINE=InnoDB,
|
||||
ROW_FORMAT=COMPACT;
|
||||
|
||||
ALTER TABLE `aowow_account_weightscales`
|
||||
ALTER `account` DROP DEFAULT;
|
||||
ALTER TABLE `aowow_account_weightscales`
|
||||
ENGINE=InnoDB,
|
||||
ROW_FORMAT=COMPACT,
|
||||
CHANGE COLUMN `account` `userId` INT(10) UNSIGNED NOT NULL AFTER `id`;
|
||||
|
||||
ALTER TABLE `aowow_screenshots`
|
||||
ALTER `uploader` DROP DEFAULT;
|
||||
ALTER TABLE `aowow_screenshots`
|
||||
ENGINE=InnoDB,
|
||||
ROW_FORMAT=COMPACT,
|
||||
CHANGE COLUMN `uploader` `userIdOwner` INT(10) UNSIGNED NULL AFTER `typeId`,
|
||||
CHANGE COLUMN `approvedBy` `userIdApprove` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `status`,
|
||||
CHANGE COLUMN `deletedBy` `userIdDelete` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `userIdApprove`;
|
||||
|
||||
ALTER TABLE `aowow_videos`
|
||||
ALTER `uploader` DROP DEFAULT;
|
||||
ALTER TABLE `aowow_videos`
|
||||
ENGINE=InnoDB,
|
||||
ROW_FORMAT=COMPACT,
|
||||
CHANGE COLUMN `uploader` `userIdOwner` INT(10) UNSIGNED NULL AFTER `typeId`,
|
||||
CHANGE COLUMN `approvedBy` `userIdApprove` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `status`,
|
||||
ADD COLUMN `userIdeDelete` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `userIdApprove`;
|
||||
|
||||
-- **********************
|
||||
-- * apply foreign keys *
|
||||
-- **********************
|
||||
|
||||
ALTER TABLE aowow_account_cookies ADD CONSTRAINT FK_acc_cookies FOREIGN KEY (userId) REFERENCES aowow_account(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE
|
||||
;
|
||||
ALTER TABLE aowow_account_banned ADD CONSTRAINT FK_acc_banned FOREIGN KEY (userId) REFERENCES aowow_account(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE
|
||||
;
|
||||
ALTER TABLE aowow_account_reputation ADD CONSTRAINT FK_acc_rep FOREIGN KEY (userId) REFERENCES aowow_account(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE
|
||||
;
|
||||
ALTER TABLE aowow_account_weightscales ADD CONSTRAINT FK_acc_weights FOREIGN KEY (userId) REFERENCES aowow_account(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE
|
||||
;
|
||||
ALTER TABLE aowow_screenshots ADD CONSTRAINT FK_acc_ss FOREIGN KEY (userIdOwner) REFERENCES aowow_account(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE SET NULL
|
||||
;
|
||||
ALTER TABLE aowow_videos ADD CONSTRAINT FK_acc_vi FOREIGN KEY (userIdOwner) REFERENCES aowow_account(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE SET NULL
|
||||
;
|
||||
Reference in New Issue
Block a user