ContentsTable
extends AppTable
in package
uses
SoftDeleteTrait
Class ContentsTable
Table of Contents
Properties
- $publishBeginField : string
- 公開開始日のフィールド AppTable::getConditionAllowPublish() で利用
- $publishEndField : string
- 公開終了日のフィールド AppTable::getConditionAllowPublish() で利用
- $publishStatusField : string
- 公開状態のフィールド AppTable::getConditionAllowPublish() で利用
- $Sites : SitesTable
- $tmpEvents : array<string|int, mixed>
- 一時イベント イベントを一時にオフにする場合に対象のコールバック処理を一時的に格納する
- $updatingRelated : bool
- 関連データを更新する
- $_View : View
- View
- $softDeleteField : string
- 論理削除フィールド名
- $updatingSystemData : bool
- システムデータを更新する
- $enabled : bool
- 利用状態
Methods
- addPrefix() : string
- テーブル名にプレフィックスを追加する
- afterSave() : void
- afterSave
- beforeMarshal() : array<string|int, mixed>
- Before Marshal
- beforeSave() : void
- Before Save
- belongsToMany() : BelongsToMany
- Belongs To Many
- changeSort() : bool
- 並び順を変更する
- copyContentFolderPath() : bool|null
- 現在のフォルダのURLを元に別サイトにフォルダを生成する 最下層のIDを返却する
- createContent() : EntityInterface|false
- Content data を作成して保存する
- createUrl() : mixed
- コンテンツデータよりURLを生成する
- deleteAlias() : void
- 自データのエイリアスを削除する
- deleteAll() : int
- Soft deletes all records matching `$conditions`.
- deleteByType() : bool
- タイプよりコンテンツを削除する
- deleteRelateSubSiteContent() : void
- メインサイトの場合、連携設定がされている子サイトのエイリアス削除する
- disableSoftDelete() : void
- 論理削除を利用不可にする
- disableUpdatingSystemData() : void
- UpdatingSystemData無効化
- dispatchLayerEvent() : bool|Event
- イベントを発火
- duplicateRelatedSiteContent() : bool
- サイト設定にて、エイリアスを利用してメインサイトと自動連携するオプションを利用時に、 関連するサブサイトで、関連コンテンツを作成する際、同階層に重複名称のコンテンツがないか確認する
- enableSoftDelete() : void
- 論理削除を利用可能にする
- enableUpdatingSystemData() : void
- UpdatingSystemData有効化
- findByType() : array<string|int, mixed>
- タイプよりコンテンツを取得する
- findByUrl() : mixed
- URLに関連するコンテンツ情報を取得する サイト情報を含む
- getConditionAllowPublish() : array<string|int, mixed>
- 公開済の conditions を取得
- getMax() : int
- 指定フィールドのMAX値を取得する
- getOrderSameParent() : bool|int|null
- 同じ階層における並び順を取得
- getParentTemplate() : mixed
- 親のテンプレートを取得する
- getRelatedSiteContents() : array<string|int, mixed>|false
- 関連サイトの関連コンテンツを取得する
- getSoftDeleteField() : string
- Get the configured deletion field
- getTable() : string
- テーブルを取得
- getTrash() : EntityInterface|array<string|int, mixed>
- ゴミ箱のコンテンツを取得する
- getUniqueName() : string
- 一意の name 値を取得する
- getUrlPattern() : array<string|int, mixed>
- コンテンツのURLにマッチする候補を取得する
- hardDelete() : bool
- Hard deletes the given $entity.
- hardDeleteAll() : int
- Hard deletes all records that were soft deleted before a given date.
- implementedEvents() : array<string|int, mixed>
- Implemented Events
- initialize() : void
- Initialize
- isPublish() : bool
- データが公開済みかどうかチェックする
- isPublishById() : bool
- ID を指定して公開状態かどうか判定する
- moveOffset() : EntityInterface|bool
- オフセットを元にコンテンツを移動する
- notEmptyString() : bool
- 最大のバイト数チェック - 対象となる値のサイズが、指定した最大値より短い場合、true を返す
- offEvent() : mixed
- イベントを一時的にオフにする
- onEvent() : mixed
- 一時的にオフにしたイベントをオンにする BcModelEventDispatcherは対象外とする
- pureUrl() : string
- サブサイトのプレフィックスがついていない純粋なURLを取得
- replaceText() : string
- 機種依存文字の変換処理
- resetTree() : mixed
- コンテンツ管理のツリー構造をリセットする
- restore() : bool
- Restore a soft deleted entity into an active state.
- SelectQuery() : SelectQuery|SelectQuery
- Select Query
- setTable() : AppTable
- テーブルをセット
- sortdown() : bool
- 一つ位置を下げる
- sortup() : bool
- 一つ位置を上げる
- updateAllUrl() : bool
- 全てのURLをデータの状況に合わせ更新する
- updateChildren() : bool
- 子ノードのシステムデータを全て更新する
- updateChildrenUrl() : mixed
- 指定したコンテンツ配下のコンテンツのURLを一括更新する
- validationDefault() : Validator
- Validation Default
- _processDelete() : bool
- Perform the delete operation.
- textFormatting() : string
- できるだけ可読性を高める為、不要な記号は除外する
- updatePublishDate() : Content
- 公開・非公開の日時を更新する
- updateRelateSubSiteContent() : bool
- メインサイトの場合、連携設定がされている子サイトのエイリアスを追加・更新する
- updateSystemData() : EntityInterface|false
- システムデータを更新する
- urlEncode() : string
- URL用に文字列を変換する
Properties
$publishBeginField
公開開始日のフィールド AppTable::getConditionAllowPublish() で利用
public
string
$publishBeginField
= 'publish_begin'
$publishEndField
公開終了日のフィールド AppTable::getConditionAllowPublish() で利用
public
string
$publishEndField
= 'publish_end'
$publishStatusField
公開状態のフィールド AppTable::getConditionAllowPublish() で利用
public
string
$publishStatusField
= 'status'
$Sites
public
SitesTable
$Sites
$tmpEvents
一時イベント イベントを一時にオフにする場合に対象のコールバック処理を一時的に格納する
public
array<string|int, mixed>
$tmpEvents
= []
$updatingRelated
関連データを更新する
public
bool
$updatingRelated
= true
$_View
View
protected
View
$_View
$softDeleteField
論理削除フィールド名
protected
string
$softDeleteField
= 'deleted_date'
$updatingSystemData
システムデータを更新する
protected
bool
$updatingSystemData
= true
$enabled
利用状態
private
bool
$enabled
= true
Methods
addPrefix()
テーブル名にプレフィックスを追加する
public
addPrefix(mixed $table) : string
$this->getConnection()->config() を利用するとユニットテストで問題が発生するため、BcUtil::getCurrentDbConfig()を利用する
$this->getConnection()->config()を利用すると、 そのテーブルに connection が設定されてしまう。
ユニットテストの dataProvider で、テーブルを初期化する場合、 タイミング的に、接続についてテスト用のエイリアスが設定されていないので、 テスト用の接続ではなく、 default がセットされてしまう。
Parameters
- $table : mixed
Tags
Return values
stringafterSave()
afterSave
public
afterSave(EventInterface $event, EntityInterface $entity, ArrayObject $options) : void
Parameters
- $event : EventInterface
- $entity : EntityInterface
- $options : ArrayObject
Tags
beforeMarshal()
Before Marshal
public
beforeMarshal(EventInterface $event, ArrayObject $content, ArrayObject $options) : array<string|int, mixed>
Parameters
- $event : EventInterface
- $content : ArrayObject
- $options : ArrayObject
Tags
Return values
array<string|int, mixed> —$content
beforeSave()
Before Save
public
beforeSave(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
boolcopyContentFolderPath()
現在のフォルダのURLを元に別サイトにフォルダを生成する 最下層のIDを返却する
public
copyContentFolderPath(mixed $currentUrl, mixed $targetSiteId) : bool|null
Parameters
- $currentUrl : mixed
- $targetSiteId : mixed
Tags
Return values
bool|nullcreateContent()
Content data を作成して保存する
public
createContent(array<string|int, mixed> $content, string $plugin, string $type[, int $entityId = null ][, mixed $validate = true ]) : EntityInterface|false
Parameters
- $content : array<string|int, mixed>
- $plugin : string
- $type : string
- $entityId : int = null
- $validate : mixed = true
Tags
Return values
EntityInterface|falsecreateUrl()
コンテンツデータよりURLを生成する
public
createUrl(int $id) : mixed
Parameters
- $id : int
-
コンテンツID
Tags
Return values
mixed —URL | false
deleteAlias()
自データのエイリアスを削除する
public
deleteAlias(EntityInterface $content) : void
全サイトにおけるエイリアスを全て削除
Parameters
- $content : EntityInterface
Tags
deleteAll()
Soft deletes all records matching `$conditions`.
public
deleteAll(array<string|int, mixed> $conditions) : int
Parameters
- $conditions : array<string|int, mixed>
-
entities search conditions
Return values
int —number of affected rows.
deleteByType()
タイプよりコンテンツを削除する
public
deleteByType(string $type[, int $entityId = null ]) : bool
Parameters
- $type : string
-
例)Blog.BlogContent
- $entityId : int = null
Return values
booldeleteRelateSubSiteContent()
メインサイトの場合、連携設定がされている子サイトのエイリアス削除する
public
deleteRelateSubSiteContent(EntityInterface $content) : void
Parameters
- $content : EntityInterface
Tags
disableSoftDelete()
論理削除を利用不可にする
public
disableSoftDelete() : void
disableUpdatingSystemData()
UpdatingSystemData無効化
public
disableUpdatingSystemData() : void
Tags
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|EventduplicateRelatedSiteContent()
サイト設定にて、エイリアスを利用してメインサイトと自動連携するオプションを利用時に、 関連するサブサイトで、関連コンテンツを作成する際、同階層に重複名称のコンテンツがないか確認する
public
duplicateRelatedSiteContent(mixed $check) : bool
- 新規の際は、存在するだけでエラー
- 編集の際は、main_site_content_id が自身のIDでない、alias_id が自身のIDでない場合エラー
Parameters
- $check : mixed
Return values
boolenableSoftDelete()
論理削除を利用可能にする
public
enableSoftDelete() : void
enableUpdatingSystemData()
UpdatingSystemData有効化
public
enableUpdatingSystemData() : void
Tags
findByType()
タイプよりコンテンツを取得する
public
findByType(string $type[, int $entityId = null ]) : array<string|int, mixed>
Parameters
- $type : string
-
例)Blog.BlogContent
- $entityId : int = null
Tags
Return values
array<string|int, mixed>findByUrl()
URLに関連するコンテンツ情報を取得する サイト情報を含む
public
findByUrl(string $url[, bool $publish = true ][, bool $extend = false ][, bool $sameUrl = false ][, bool $useSubDomain = false ]) : mixed
Parameters
- $url : string
-
検索対象のURL
- $publish : bool = true
-
公開状態かどうか
- $extend : bool = false
-
拡張URLに対応するかどうか /news/ というコンテンツが存在する場合、/news/archives/1 で検索した際にヒットさせる
- $sameUrl : bool = false
-
対象をメインサイトと同一URLで表示するサイト設定内のコンテンツするかどうか
- $useSubDomain : bool = false
-
対象をサブドメインを利用しているサイト設定内のコンテンツをするかどうか
Tags
Return values
mixed —false|array Content データ
getConditionAllowPublish()
公開済の conditions を取得
public
getConditionAllowPublish() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —公開条件(conditions 形式)
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(string $id, int $parentId) : bool|int|null
id が空の場合は、一番最後とみなす
Parameters
- $id : string
- $parentId : int
Tags
Return values
bool|int|nullgetParentTemplate()
親のテンプレートを取得する
public
getParentTemplate(mixed $id) : mixed
Parameters
- $id : mixed
Tags
getRelatedSiteContents()
関連サイトの関連コンテンツを取得する
public
getRelatedSiteContents(int $id[, array<string|int, mixed> $options = [] ]) : array<string|int, mixed>|false
Parameters
- $id : int
- $options : array<string|int, mixed> = []
-
オプション
-
excludeIds
: 除外するサイトID
-
Return values
array<string|int, mixed>|falsegetSoftDeleteField()
Get the configured deletion field
public
getSoftDeleteField() : string
Tags
Return values
stringgetTable()
テーブルを取得
public
getTable() : string
プレフィックスを追加する
Tags
Return values
stringgetTrash()
ゴミ箱のコンテンツを取得する
public
getTrash(int $id) : EntityInterface|array<string|int, mixed>
Parameters
- $id : int
Tags
Return values
EntityInterface|array<string|int, mixed>getUniqueName()
一意の name 値を取得する
public
getUniqueName(string $name, mixed $parentId[, mixed $contentId = null ]) : string
Parameters
- $name : string
-
name フィールドの値
- $parentId : mixed
- $contentId : mixed = null
Tags
Return values
stringgetUrlPattern()
コンテンツのURLにマッチする候補を取得する
public
getUrlPattern(string $url) : array<string|int, mixed>
Parameters
- $url : string
Tags
Return values
array<string|int, mixed>hardDelete()
Hard deletes the given $entity.
public
hardDelete(EntityInterface $entity) : bool
Parameters
- $entity : EntityInterface
-
entity
Return values
bool —true in case of success, false otherwise.
hardDeleteAll()
Hard deletes all records that were soft deleted before a given date.
public
hardDeleteAll(DateTime $until) : int
Parameters
- $until : DateTime
-
Date until which soft deleted records must be hard deleted.
Return values
int —number of affected rows.
implementedEvents()
Implemented Events
public
implementedEvents() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>initialize()
Initialize
public
initialize(array<string|int, mixed> $config) : void
Parameters
- $config : array<string|int, mixed>
-
テーブル設定
Tags
isPublish()
データが公開済みかどうかチェックする
public
isPublish(bool $status, string $publishBegin, string $publishEnd) : bool
Parameters
- $status : bool
-
公開ステータス
- $publishBegin : string
-
公開開始日時
- $publishEnd : string
-
公開終了日時
Tags
Return values
boolisPublishById()
ID を指定して公開状態かどうか判定する
public
isPublishById(mixed $id) : bool
Parameters
- $id : mixed
Tags
Return values
boolmoveOffset()
オフセットを元にコンテンツを移動する
public
moveOffset(mixed $id, mixed $offset) : EntityInterface|bool
Parameters
- $id : mixed
- $offset : mixed
Tags
Return values
EntityInterface|boolnotEmptyString()
最大のバイト数チェック - 対象となる値のサイズが、指定した最大値より短い場合、true を返す
public
static notEmptyString(mixed $value, int $max) : bool
Parameters
- $value : mixed
-
対象となる値
- $max : int
-
バイト数の最大値
Tags
Return values
booloffEvent()
イベントを一時的にオフにする
public
offEvent(string $eventKey) : mixed
Parameters
- $eventKey : string
Tags
onEvent()
一時的にオフにしたイベントをオンにする BcModelEventDispatcherは対象外とする
public
onEvent(string $eventKey) : mixed
Parameters
- $eventKey : string
Tags
pureUrl()
サブサイトのプレフィックスがついていない純粋なURLを取得
public
pureUrl(string $url, int $siteId) : string
Parameters
- $url : string
- $siteId : int
Tags
Return values
stringreplaceText()
機種依存文字の変換処理
public
replaceText(string $str) : string
内部文字コードがUTF-8である必要がある。 多次元配列には対応していない。
Parameters
- $str : string
-
変換対象文字列
Tags
Return values
string —変換後文字列
resetTree()
コンテンツ管理のツリー構造をリセットする
public
resetTree() : mixed
Tags
restore()
Restore a soft deleted entity into an active state.
public
restore(EntityInterface $entity) : bool
Parameters
- $entity : EntityInterface
-
Entity to be restored.
Return values
bool —true in case of success, false otherwise.
SelectQuery()
Select Query
public
SelectQuery() : SelectQuery|SelectQuery
論理削除用の SelectQuery を返却する TreeBehavior を利用して、アイテムを移動する場合、 論理削除されたアイテムも対象としなければツリー構造が壊れてしまうため、 SoftDeleteTrait を、利用不可にすることで、オリジナルの SelectQueryを返却できるようにしている
Return values
SelectQuery|SelectQuerysetTable()
テーブルをセット
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
boolupdateAllUrl()
全てのURLをデータの状況に合わせ更新する
public
updateAllUrl() : bool
Return values
boolupdateChildren()
子ノードのシステムデータを全て更新する
public
updateChildren(mixed $id) : bool
Parameters
- $id : mixed
Tags
Return values
boolupdateChildrenUrl()
指定したコンテンツ配下のコンテンツのURLを一括更新する
public
updateChildrenUrl(mixed $id) : mixed
Parameters
- $id : mixed
Tags
validationDefault()
Validation Default
public
validationDefault(Validator $validator) : Validator
Parameters
- $validator : Validator
Tags
Return values
Validator_processDelete()
Perform the delete operation.
protected
_processDelete(EntityInterface $entity, ArrayObject $options) : bool
Will soft delete the entity provided. Will remove rows from any dependent associations, and clear out join tables for BelongsToMany associations.
Parameters
- $entity : EntityInterface
-
The entity to soft delete.
- $options : ArrayObject
-
The options for the delete.
Tags
Return values
bool —success
textFormatting()
できるだけ可読性を高める為、不要な記号は除外する
protected
textFormatting(mixed $value) : string
Parameters
- $value : mixed
Tags
Return values
stringupdatePublishDate()
公開・非公開の日時を更新する
protected
updatePublishDate(Content $content) : Content
Parameters
- $content : Content
Tags
Return values
Content —$content
updateRelateSubSiteContent()
メインサイトの場合、連携設定がされている子サイトのエイリアスを追加・更新する
protected
updateRelateSubSiteContent(Content $data) : bool
Parameters
- $data : Content
Tags
Return values
boolupdateSystemData()
システムデータを更新する
protected
updateSystemData(Content $content) : EntityInterface|false
URL / 公開状態 / メインサイトの関連コンテンツID
Parameters
- $content : Content
Tags
Return values
EntityInterface|falseurlEncode()
URL用に文字列を変換する
protected
urlEncode(mixed $value) : string
Parameters
- $value : mixed