BlogCategoriesTable
extends BlogAppTable
in package
uses
BcContainerTrait
BlogCategoriesTable
Table of Contents
Properties
- $actsAs : array<string|int, mixed>
- actsAs
- $BlogCategoriesTable : BlogCategoriesTable
- $publishBeginField : string
- 公開開始日のフィールド AppTable::getConditionAllowPublish() で利用
- $publishEndField : string
- 公開終了日のフィールド AppTable::getConditionAllowPublish() で利用
- $publishStatusField : string
- 公開状態のフィールド AppTable::getConditionAllowPublish() で利用
- $tmpEvents : array<string|int, mixed>
- 一時イベント イベントを一時にオフにする場合に対象のコールバック処理を一時的に格納する
- $validationParams : array<string|int, mixed>
- バリデーション設定
- $_View : View
- View
Methods
- addPrefix() : string
- テーブル名にプレフィックスを追加する
- beforeDelete() : void
- 関連する記事データをカテゴリ無所属に変更し保存する
- belongsToMany() : BelongsToMany
- Belongs To Many
- changeSort() : bool
- 並び順を変更する
- copy() : EntityInterface
- コピーする
- dispatchLayerEvent() : bool|Event
- イベントを発火
- getByName() : EntityInterface
- カテゴリ名よりカテゴリを取得
- getCategoryList() : array<string|int, mixed>
- カテゴリリストを取得する
- getConditionAllowPublish() : array<string|int, mixed>
- 公開状態となっているデータを取得するための conditions 値を取得
- getMax() : int
- 指定フィールドのMAX値を取得する
- getOrderSameParent() : int|false|null
- 同一階層(同じ親)における並び順を取得する
- getParent() : EntityInterface
- 親カテゴリを取得する
- getService() : array<string|int, mixed>|mixed|object
- Get Service
- getTable() : string
- テーブルを取得
- getUrlPattern() : array<string|int, mixed>
- コンテンツのURLにマッチする候補を取得する
- hasChild() : bool
- 子カテゴリを持っているかどうか
- hasNewCategoryAddablePermission() : mixed
- アクセス制限としてカテゴリの新規追加ができるか確認する
- hasService() : bool
- Has Service
- initialize() : void
- Initialize
- moveOffset() : EntityInterface|bool
- オフセットを元にカテゴリを移動する
- offEvent() : mixed
- イベントを一時的にオフにする
- onEvent() : mixed
- 一時的にオフにしたイベントをオンにする BcModelEventDispatcherは対象外とする
- replaceText() : string
- 機種依存文字の変換処理
- resetTree() : bool
- ブログカテゴリのツリー構造をリセットする
- setTable() : AppTable
- テーブルをセット
- sortdown() : bool
- 一つ位置を下げる
- sortup() : bool
- 一つ位置を上げる
- validationDefault() : Validator
- Validation Default
- _getCategoryList() : ResultSetInterface
- カテゴリリストを取得する(再帰処理)
- getCategoryPostCounts() : array<string|int, mixed>
- カテゴリごとの記事数を集計
Properties
$actsAs
actsAs
public
array<string|int, mixed>
$actsAs
= ['Tree', 'BcCache']
$BlogCategoriesTable
public
BlogCategoriesTable
$BlogCategoriesTable
$publishBeginField
公開開始日のフィールド AppTable::getConditionAllowPublish() で利用
public
string
$publishBeginField
= 'publish_begin'
$publishEndField
公開終了日のフィールド AppTable::getConditionAllowPublish() で利用
public
string
$publishEndField
= 'publish_end'
$publishStatusField
公開状態のフィールド AppTable::getConditionAllowPublish() で利用
public
string
$publishStatusField
= 'status'
$tmpEvents
一時イベント イベントを一時にオフにする場合に対象のコールバック処理を一時的に格納する
public
array<string|int, mixed>
$tmpEvents
= []
$validationParams
バリデーション設定
public
array<string|int, mixed>
$validationParams
= []
$_View
View
protected
View
$_View
Methods
addPrefix()
テーブル名にプレフィックスを追加する
public
addPrefix(mixed $table) : string
$this->getConnection()->config() を利用するとユニットテストで問題が発生するため、BcUtil::getCurrentDbConfig()を利用する
$this->getConnection()->config()を利用すると、 そのテーブルに connection が設定されてしまう。
ユニットテストの dataProvider で、テーブルを初期化する場合、 タイミング的に、接続についてテスト用のエイリアスが設定されていないので、 テスト用の接続ではなく、 default がセットされてしまう。
Parameters
- $table : mixed
Tags
Return values
stringbeforeDelete()
関連する記事データをカテゴリ無所属に変更し保存する
public
beforeDelete(EventInterface $event, EntityInterface $entity, ArrayObject $options) : void
Parameters
- $event : EventInterface
- $entity : EntityInterface
- $options : ArrayObject
Tags
belongsToMany()
Belongs To Many
public
belongsToMany(string $associated[, array<string|int, mixed> $options = [] ]) : BelongsToMany
joinTable にプレフィックスを追加
Parameters
- $associated : string
- $options : array<string|int, mixed> = []
Tags
Return values
BelongsToManychangeSort()
並び順を変更する
public
changeSort(string $id, int $offset[, array<string|int, mixed> $options = [] ]) : bool
Parameters
- $id : string
- $offset : int
- $options : array<string|int, mixed> = []
-
- conditions: データ取得条件
- sortFieldName: ソートフィールドのカラム名 (初期値: sort)
Tags
Return values
boolcopy()
コピーする
public
copy(mixed $id[, null $newParentId = null ]) : EntityInterface
Parameters
- $id : mixed
- $newParentId : null = null
Tags
Return values
EntityInterface —page Or false
dispatchLayerEvent()
イベントを発火
public
dispatchLayerEvent(string $name[, array<string|int, mixed> $data = [] ][, mixed $options = [] ]) : bool|Event
Parameters
- $name : string
- $data : array<string|int, mixed> = []
- $options : mixed = []
Tags
Return values
bool|EventgetByName()
カテゴリ名よりカテゴリを取得
public
getByName(int $blogContentId, string $name[, array<string|int, mixed> $options = [] ]) : EntityInterface
Parameters
- $blogContentId : int
- $name : string
- $options : array<string|int, mixed> = []
Tags
Return values
EntityInterfacegetCategoryList()
カテゴリリストを取得する
public
getCategoryList([int $blogContentId = null ][, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>
Parameters
- $blogContentId : int = null
- $options : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed>getConditionAllowPublish()
公開状態となっているデータを取得するための conditions 値を取得
public
getConditionAllowPublish() : array<string|int, mixed>
公開状態(初期値:status)、公開開始日(初期値:publish_begin)、公開終了日(初期値:publish_end) の組み合わせてによって配列を生成する。
公開状態が true であったとしても、公開期間が設定されている場合はそちらを優先する。
Tags
Return values
array<string|int, mixed>getMax()
指定フィールドのMAX値を取得する
public
getMax(string $field[, array<string|int, mixed> $conditions = [] ]) : int
現在数値フィールドのみ対応
Parameters
- $field : string
- $conditions : array<string|int, mixed> = []
Tags
Return values
intgetOrderSameParent()
同一階層(同じ親)における並び順を取得する
public
getOrderSameParent(int|null $id, int|null $parentId) : int|false|null
指定した親配下(親なしはルート)のカテゴリを lft 昇順に並べ、対象 id の 1 始まりの順位を返す。 id が空の場合は件数(=末尾の位置)を返す。該当データが無い場合は false、 id に一致するカテゴリが無い場合は null。
TreeBehavior はスコープを持たず lft/rght は全ブログ横断の単一フォレストで管理されるため、 ルート階層(親なし)では全ブログのルートカテゴリを対象とした順位を返す。 moveUp()/moveDown() が実際に移動する兄弟の並びと一致させるための仕様。
Parameters
- $id : int|null
-
対象カテゴリID(null で末尾の位置=件数)
- $parentId : int|null
-
親カテゴリID(null でルート)
Tags
Return values
int|false|nullgetParent()
親カテゴリを取得する
public
getParent(mixed $parent_id) : EntityInterface
Parameters
- $parent_id : mixed
Tags
Return values
EntityInterfacegetService()
Get Service
public
getService(mixed $service) : array<string|int, mixed>|mixed|object
Parameters
- $service : mixed
Tags
Return values
array<string|int, mixed>|mixed|objectgetTable()
テーブルを取得
public
getTable() : string
プレフィックスを追加する
Tags
Return values
stringgetUrlPattern()
コンテンツのURLにマッチする候補を取得する
public
getUrlPattern(string $url) : array<string|int, mixed>
Parameters
- $url : string
Tags
Return values
array<string|int, mixed>hasChild()
子カテゴリを持っているかどうか
public
hasChild(int $id) : bool
Parameters
- $id : int
Tags
Return values
boolhasNewCategoryAddablePermission()
アクセス制限としてカテゴリの新規追加ができるか確認する
public
hasNewCategoryAddablePermission(array<string|int, mixed> $userGroupId, int $blogContentId) : mixed
Parameters
- $userGroupId : array<string|int, mixed>
-
ユーザーグループID
- $blogContentId : int
-
ブログコンテンツID
Tags
hasService()
Has Service
public
hasService(mixed $service) : bool
Parameters
- $service : mixed
Tags
Return values
boolinitialize()
Initialize
public
initialize(array<string|int, mixed> $config) : void
Parameters
- $config : array<string|int, mixed>
-
テーブル設定
Tags
moveOffset()
オフセットを元にカテゴリを移動する
public
moveOffset(int $id, int $offset) : EntityInterface|bool
TreeBehavior により、同一階層(兄弟)内で指定位置数だけ上下に移動する。 オフセットが正の場合は下へ、負の場合は上へ移動し、0 の場合は何もしない。 子カテゴリを持つ場合は、その子孫も含めて移動する。
Parameters
- $id : int
-
移動対象のカテゴリID
- $offset : int
-
移動する位置数(正: 下、負: 上)
Tags
Return values
EntityInterface|bool —成功時は対象エンティティ、失敗時は false
offEvent()
イベントを一時的にオフにする
public
offEvent(string $eventKey) : mixed
Parameters
- $eventKey : string
Tags
onEvent()
一時的にオフにしたイベントをオンにする BcModelEventDispatcherは対象外とする
public
onEvent(string $eventKey) : mixed
Parameters
- $eventKey : string
Tags
replaceText()
機種依存文字の変換処理
public
replaceText(string $str) : string
内部文字コードがUTF-8である必要がある。 多次元配列には対応していない。
Parameters
- $str : string
-
変換対象文字列
Tags
Return values
string —変換後文字列
resetTree()
ブログカテゴリのツリー構造をリセットする
public
resetTree() : bool
コンテンツ管理のリセットと同様に、全てのカテゴリをルート直下にフラット化し、 lft / rght を現在の並び順(lft 昇順)で振り直す。
Tags
Return values
boolsetTable()
テーブルをセット
public
setTable(string $table) : AppTable
プレフィックスを追加する
Parameters
- $table : string
Tags
Return values
AppTablesortdown()
一つ位置を下げる
public
sortdown(string $id, array<string|int, mixed> $conditions) : bool
Parameters
- $id : string
- $conditions : array<string|int, mixed>
Tags
Return values
boolsortup()
一つ位置を上げる
public
sortup(string $id, array<string|int, mixed> $conditions) : bool
Parameters
- $id : string
- $conditions : array<string|int, mixed>
Tags
Return values
boolvalidationDefault()
Validation Default
public
validationDefault(Validator $validator) : Validator
Parameters
- $validator : Validator
Tags
Return values
Validator_getCategoryList()
カテゴリリストを取得する(再帰処理)
protected
_getCategoryList([int $blogContentId = null ][, int $parentId = null ][, bool $viewCount = false ][, int $depth = 1 ][, int $current = 1 ][, array<string|int, mixed> $fields = [] ][, array<string|int, mixed> $options = [] ]) : ResultSetInterface
Parameters
- $blogContentId : int = null
- $parentId : int = null
- $viewCount : bool = false
- $depth : int = 1
- $current : int = 1
- $fields : array<string|int, mixed> = []
- $options : array<string|int, mixed> = []
Tags
Return values
ResultSetInterfacegetCategoryPostCounts()
カテゴリごとの記事数を集計
private
getCategoryPostCounts(int|null $blogContentId) : array<string|int, mixed>
Parameters
- $blogContentId : int|null