a-blog cms PHP API Reference

Lock
in package

Table of Contents

Properties

$alertOnly  : mixed
アラートのみで実際のロックはしない
$enable  : mixed
ロック機能が有効か
$expire  : mixed
ロックの有効時間

Methods

__construct()  : mixed
Construct
canOperate()  : bool
指定したユーザーがエントリーのロックを操作・参照できるか
canUnlock()  : bool
指定したユーザーがエントリーのロックを解除できるか
getExpiredDatetime()  : int
getLockedUser()  : false|array<string|int, mixed>
エントリーを保存できるか判定
getLockHolderId()  : int
ロックしているユーザーのIDを取得(有効期限は問わない)
isAlertOnly()  : bool
lock()  : void
エントリーをロック
unlock()  : mixed
エントリーをアンロック
unlockByUser()  : void
指定されたUIDがロックしているものを全て解除
getLockTarget()  : string
ロック判定するテーブルを判定して取得
validateLock()  : mixed
エントリーをロックできるかバリデート
getEntryTableLockHolderId()  : int
エントリー本体(entry テーブル)のロックユーザーIDを取得
isEntryTableLockFallback()  : bool
リビジョンの指定が無いのに、ロック対象がリビジョン側と判定されたか

Properties

$alertOnly

アラートのみで実際のロックはしない

protected mixed $alertOnly = false

$enable

ロック機能が有効か

protected mixed $enable = false

$expire

ロックの有効時間

protected mixed $expire = 48

Methods

__construct()

Construct

public __construct(mixed $enable, mixed $alertOnly, mixed $expire) : mixed
Parameters
$enable : mixed
$alertOnly : mixed
$expire : mixed

canOperate()

指定したユーザーがエントリーのロックを操作・参照できるか

public canOperate(int $userId, int $eid) : bool

ロックの取得と状態の参照は、そのエントリーの編集画面を開ける人だけに許す。 Why not ログインの有無だけで判定しない: 権限の無い会員でも任意のエントリーをロックして 編集を妨害でき、ロック中のユーザーの氏名・アイコンも読めてしまう。

Parameters
$userId : int

判定するユーザー(未ログインは 0)

$eid : int
Return values
bool

canUnlock()

指定したユーザーがエントリーのロックを解除できるか

public canUnlock(int $userId, int $eid, int|null $rvid) : bool

解除できるのは、ロックしている本人と、エントリーのブログの管理者だけ。 Why not: 編集権限があれば誰でも解除できる形(WordPress の「引き継ぐ」)は、ロックが短時間で切れる前提の仕組み。 このロックは既定で 48 時間残るため、誰でも外せるとロックの奪い合いになる。

Parameters
$userId : int

判定するユーザー(未ログインは 0)

$eid : int
$rvid : int|null
Return values
bool

getExpiredDatetime()

public getExpiredDatetime() : int
Return values
int

getLockedUser()

エントリーを保存できるか判定

public getLockedUser(int $eid, int|null $rvid[, int $suid = null ]) : false|array<string|int, mixed>
Parameters
$eid : int
$rvid : int|null
$suid : int = null
Return values
false|array<string|int, mixed>

getLockHolderId()

ロックしているユーザーのIDを取得(有効期限は問わない)

public getLockHolderId(int $eid, int|null $rvid) : int
Parameters
$eid : int
$rvid : int|null
Return values
int —

ロックが無ければ 0

isAlertOnly()

public isAlertOnly() : bool
Return values
bool

lock()

エントリーをロック

public lock(int $eid, int|null $rvid, int $suid) : void
Parameters
$eid : int
$rvid : int|null
$suid : int

unlock()

エントリーをアンロック

public unlock(int $eid, int|null $rvid) : mixed
Parameters
$eid : int
$rvid : int|null

unlockByUser()

指定されたUIDがロックしているものを全て解除

public unlockByUser(int $uid) : void
Parameters
$uid : int

getLockTarget()

ロック判定するテーブルを判定して取得

protected getLockTarget(mixed $eid, mixed $rvid) : string
Parameters
$eid : mixed
$rvid : mixed
Return values
string

validateLock()

エントリーをロックできるかバリデート

protected validateLock(int $eid, int $rvid, int $suid) : mixed
Parameters
$eid : int
$rvid : int
$suid : int

getEntryTableLockHolderId()

エントリー本体(entry テーブル)のロックユーザーIDを取得

private getEntryTableLockHolderId(int $eid) : int
Parameters
$eid : int
Return values
int —

ロックが無ければ 0

isEntryTableLockFallback()

リビジョンの指定が無いのに、ロック対象がリビジョン側と判定されたか

private isEntryTableLockFallback(string $table, int|null $rvid) : bool

一覧のロック表示と解除はエントリー本体(entry テーブル)を見るが、承認が必要なブログの 承認前でないエントリーは getLockTarget が entry_rev を返す。リビジョンの指定が無いと 存在しない行(rvid 0)を見てしまうため、エントリー本体のロックも対象にする。

Parameters
$table : string
$rvid : int|null
Return values
bool

        
On this page

Search results