\CurrentLib

NetCommonsの機能として必要な情報を操作するライブラリ

NetCommonsの機能として必要な情報を保持します。
NetCommonsAppController::beforeFilter で初期処理が呼び出され、値が設定されます。
値を取得する時は、readメソッドを使用します。
権限を取得する時は、permissionメソッドを使用します。

保持データ

Array(
    [User] => Array(
        [id] => 1
        [username] => admin
        [key] => 640f981d6104fd21463d674f18477348
        [avatar] =>
        [avatar_file_id] =>
        [is_avatar_public] =>
        [handlename] => admin
        [is_handlename_public] =>
        [is_name_public] =>
        [email] =>
        [is_email_public] =>

        ・・・

        [Role] => Array(
            [id] => 1
            [language_id] => 2
            [key] => system_administrator
            [type] => 1
            [name] => システム管理者
            [is_system] => 1
        )
    )

    [Language] => Array(
        [id] => 2
        [code] => ja
        [weight] => 2
        [is_active] => 1
    )

    [PluginsRole] => Array(
        [13] => Array(
            [id] => 13
            [role_key] => system_administrator
            [plugin_key] => rooms
        )

        [20] => Array(
            [id] => 20
            [role_key] => system_administrator
            [plugin_key] => user_manager
        )

    )

    [Page] => Array(
        [id] => 1
        [room_id] => 1
        [parent_id] =>
        [lft] => 1
        [rght] => 2
        [permalink] =>
        [slug] =>
        [is_published] => 1
        [from] =>
        [to] =>
        [is_container_fluid] =>
    )

    [Room] => Array(
        [id] => 1
        [space_id] => 2
        [page_id_top] => 1
        [parent_id] =>
        [lft] => 1
        [rght] => 2
        [active] => 1
        [default_role_key] => visitor
        [need_approval] => 1
        [default_participation] => 1
        [page_layout_permitted] => 1
    )

    [ParentPage] => Array(
        ・・・
    )

    [RolesRoomsUser] => Array(
        ・・・
    )

    [RolesRoom] => Array(
        ・・・
    )

・・・

    [Permission] => Array(
        [page_editable] => Array(
            [id] => 9
            [role_key] => room_administrator
            [type] => room_role
            [permission] => page_editable
            [value] => 1
            [fixed] => 1
            [roles_room_id] => 1
        )

        [block_editable] => Array(
            ・・・
        )

        [content_readable] => Array(
            ・・・
        )

        [content_creatable] => Array(
            ・・・
        )

        [content_editable] => Array(
            ・・・
        )

        [content_publishable] => Array(
            ・・・
        )

        [content_comment_creatable] => Array(
            ・・・
        )

        [content_comment_editable] => Array(
            ・・・
        )

        [content_comment_publishable] => Array(
            ・・・
        )

        [block_permission_editable] => Array(
            ・・・
        )

        [html_not_limited] => Array(
            ・・・
        )

    )

    [Plugin] => Array(
        [id] => 5
        [language_id] => 2
        [key] => announcements
        [name] => お知らせ
        [namespace] => netcommons/announcements
        [weight] =>
        [type] => 1
        [default_action] => announcements/view
        [default_setting_action] => announcement_blocks/index
    )

    [Frame] => Array(
        [id] => 1
        [language_id] => 2
        [room_id] => 1
        [box_id] => 3
        [plugin_key] => announcements
        [block_id] => 1
        [key] => frame_1
        [name] => お知らせ
        [header_type] => default
        [translation_engine] =>
        [is_first_auto_translation] =>
        [is_auto_translated] =>
        [weight] => 1
        [is_deleted] =>
    )

    [Box] => Array(
        [id] => 3
        [container_id] => 3
        [type] => 4
        [space_id] =>
        [room_id] => 1
        [page_id] => 1
        [weight] => 1
    )

    [Block] => Array(
        [id] => 1
        [language_id] => 2
        [room_id] => 1
        [plugin_key] => announcements
        [key] => block_1
        [name] => NetCommons 3! セッティングモードで編集しよう.
        [public_type] => 1
        [from] =>
        [to] =>
        [translation_engine] =>
        [is_auto_translated] =>
        [is_first_auto_translation] =>
    )
)

Summary

Methods
Properties
Constants
__construct()
load()
initialize()
getInstance()
resetInstance()
setCurrentLanguage()
setCurrentPage()
setCurrentPageByPermalink()
doInitializeLibs()
terminate()
clear()
read()
permission()
writeCurrentPermissions()
clearCurrentPermissions()
setCurrent()
writePermission()
write()
remove()
isLogin()
isSettingMode()
setSettingMode()
hasSettingMode()
isControlPanel()
setControlPanelKeys()
hasControlPanel()
allowSystemPlugin()
$uses
$libs
$current
$permission
$_controller
$SettingMode
$ControlPanel
$NcPermission
$CurrentLibFrame
$CurrentLibPage
$CurrentLibPermission
$CurrentLibRoom
$CurrentLibBlock
$CurrentLibPlugin
$CurrentLibLanguage
$CurrentLibUser
SETTING_MODE_WORD
PLUGIN_USERS
PLUGIN_GROUPS
PLUGIN_WYSIWYG
PLUGIN_PAGES
_loadLibs()
_getInstance()
_resetInstance()
$_controller
$_instances
$_loaded
N/A
__clearCurrent()
__setCurrentUser()
__setCurrentPlugin()
__setCurrentPage()
__setCurrentPageContainer()
__setCurrentFrame()
__setCurrentBlock()
__setCurrentRoom()
No private properties found
N/A

Constants

SETTING_MODE_WORD

SETTING_MODE_WORD = \SettingMode::SETTING_MODE_WORD : string

セッティングモードのワード

適切なライブラリに持っていきたいが、旧Currentライブラリで使用されているため、当クラスにも定義する。

PLUGIN_USERS

PLUGIN_USERS = \CurrentLibPlugin::PLUGIN_USERS : string

Usersプラグイン名の定数

適切なライブラリに持っていきたいが、旧Currentライブラリで使用されているため、当クラスにも定義する。

PLUGIN_GROUPS

PLUGIN_GROUPS = \CurrentLibPlugin::PLUGIN_GROUPS : string

Groupsプラグイン名の定数

適切なライブラリに持っていきたいが、旧Currentライブラリで使用されているため、当クラスにも定義する。

PLUGIN_WYSIWYG

PLUGIN_WYSIWYG = \CurrentLibPlugin::PLUGIN_WYSIWYG : string

Wysiwygプラグイン名の定数

適切なライブラリに持っていきたいが、旧Currentライブラリで使用されているため、当クラスにも定義する。

PLUGIN_PAGES

PLUGIN_PAGES = \CurrentLibPlugin::PLUGIN_PAGES : string

Pagesプラグイン名の定数

適切なライブラリに持っていきたいが、旧Currentライブラリで使用されているため、当クラスにも定義する。

Properties

$uses

$uses : array

使用するモデル

Type

array

$libs

$libs : array

使用するライブラリ

Type

array

$current

$current : array

現在処理しているプラグインに必要なデータを保持

privateメソッドにしたいが、直接書き換える処理が多数行われているため、 publicのままとする

Type

array

$permission

$permission : array

現在処理しているプラグインに対するパーミッションを保持

NcPermissionクラスのメンバ変数として、定義したいが、 Current::$permissionとして、直接書き換える処理が多数行われているため、 NcPermissionクラスのメンバ変数ではなく、CurrentLibクラスとする。

Type

array

$_controller

$_controller : \Controller

クラス内で処理するコントローラを保持

コントローラ

Type

\Controller

$SettingMode

$SettingMode : \SettingMode

SettingModeライブラリ

Type

\SettingMode

$ControlPanel

$ControlPanel : \ControlPanel

ControlPanelライブラリ

Type

\ControlPanel

$NcPermission

$NcPermission : \NcPermission

NcPermissionライブラリ

Type

\NcPermission

$CurrentLibFrame

$CurrentLibFrame : \CurrentLibFrame

CurrentLibFrameライブラリ

Type

\CurrentLibFrame

$CurrentLibPage

$CurrentLibPage : \CurrentLibPage

CurrentLibPageライブラリ

Type

\CurrentLibPage

$CurrentLibPermission

$CurrentLibPermission : \CurrentLibPermission

CurrentLibPermissionライブラリ

Type

\CurrentLibPermission

$CurrentLibRoom

$CurrentLibRoom : \CurrentLibRoom

CurrentLibRoomライブラリ

Type

\CurrentLibRoom

$CurrentLibBlock

$CurrentLibBlock : \CurrentLibBlock

CurrentLibBlockライブラリ

Type

\CurrentLibBlock

$CurrentLibPlugin

$CurrentLibPlugin : \CurrentLibPlugin

CurrentLibPluginライブラリ

Type

\CurrentLibPlugin

$CurrentLibLanguage

$CurrentLibLanguage : \CurrentLibLanguage

CurrentLibLanguageライブラリ

Type

\CurrentLibLanguage

$CurrentLibUser

$CurrentLibUser : \CurrentLibUser

CurrentLibUserライブラリ

Type

\CurrentLibUser

$_controller

$_controller : \Controller

クラス内で処理するコントローラを保持

Type

\Controller

$_instances

$_instances : object

インスタンス

Type

object

$_loaded

$_loaded : boolean

ロードしているか否か

Type

boolean

Methods

__construct()

__construct() : void

コンストラクター

load()

load() : void

ライブラリのロード

initialize()

initialize(\Controller  $controller = null) : void

現在表示している情報の初期設定

Parameters

\Controller $controller

コントローラ

getInstance()

getInstance() : \CurrentLib

インスタンスの取得

Returns

\CurrentLib

resetInstance()

resetInstance() : void

インスタンスのクリア

setCurrentLanguage()

setCurrentLanguage() : void

言語データをCurrentにセットする

setCurrentPage()

setCurrentPage(string|integer  $pageId = null) : boolean

ページ関連のデータをCurrentにセットする

Parameters

string|integer $pageId

ページID

Returns

boolean —

セット出来たか否か

setCurrentPageByPermalink()

setCurrentPageByPermalink(string  $permalink, string|integer|null  $spaceId) : boolean

ページ関連のデータをCurrentにセットする

Parameters

string $permalink

パーマリンク

string|integer|null $spaceId

スペースID

Returns

boolean —

セット出来たか否か

doInitializeLibs()

doInitializeLibs(\Controller  $controller) : void

現在表示している情報の初期設定

Parameters

\Controller $controller

コントローラ

terminate()

terminate(\Controller  $controller = null) : void

現在表示している情報の終了処理

Parameters

\Controller $controller

コントローラ

clear()

clear() : array|null

カレントデータの初期化

Returns

array|null —

Current data.

read()

read(string|null  $key = null, array|string|integer|boolean|null  $default = null) : array|null

指定された$keyの値を返します。

現在のBlockKeyを取得したい場合

Cuurent::read('Block.key')

Parameters

string|null $key

Hashクラスのpath

array|string|integer|boolean|null $default

デフォルト値

Returns

array|null

permission()

permission(string  $key, integer|null  $roomId = null) : boolean

指定された$key(権限名文字列)の値を返します。

Current::permission('content_publishable')

Parameters

string $key

Hashクラスのpath

integer|null $roomId

ルームID

Returns

boolean —

permission value

writeCurrentPermissions()

writeCurrentPermissions(string|integer|null  $roomId, array  $permissions) : void

パーミッション関連のデータをCurrentにセットする

注意)一時的に権限を書き換えるときは、戻す処理を必ず入れること

Parameters

string|integer|null $roomId

ルームID。nullの場合、roomに紐づかない。

array $permissions

パーミッションデータ

clearCurrentPermissions()

clearCurrentPermissions() : void

パーミッション関連のデータをCurrentにセットする

注意)一時的に権限を書き換えるときは、戻す処理を必ず入れること

setCurrent()

setCurrent(array  $results) : void

取得した結果を$currentにセットする

これは、旧Currentで使用していたメソッドであり、基本これは使用しない。 ※Wysiwigで使用しているため残す。

Parameters

array $results

取得結果

writePermission()

writePermission(integer|null  $roomId, string  $key, boolean  $value) : void

指定された$keyの値をセットします

Wysiwigで使用しているsetCurrent()メソッド用に必要

Parameters

integer|null $roomId

ルームID

string $key

パーミッションキー

boolean $value

パーミッション値

write()

write(string|null  $key, mixed  $value) : void

指定された$keyの値をセットします

現在のBlockKeyをセットしたい場合

Cuurent::write('Block.key', 'block_key)

Parameters

string|null $key

Hashクラスのpath、nullの場合、Hash::mergeする

mixed $value

セットする値

remove()

remove(string|null  $key = null) : array|null

指定された$keyの値を削除します。

現在のBlockKeyを削除したい場合

Cuurent::remove('Block.key')

Parameters

string|null $key

Hashクラスのpath

Returns

array|null —

Current data.

isLogin()

isLogin() : boolean

ログインチェック

Returns

boolean

isSettingMode()

isSettingMode() : boolean

セッティングモードチェック

Returns

boolean

setSettingMode()

setSettingMode(boolean|null  $settingMode) : void

セッティングモードチェック

Parameters

boolean|null $settingMode

セッティングモードの状態変更

hasSettingMode()

hasSettingMode() : boolean

セッティングモードの有無

Returns

boolean

isControlPanel()

isControlPanel() : boolean

コントロールパネルチェック

Returns

boolean

setControlPanelKeys()

setControlPanelKeys(array  $controlPanelKeys) : boolean

コントロールパネルとするプラグインキーのセット

Parameters

array $controlPanelKeys

セットするプラグインタイプキー

Returns

boolean

hasControlPanel()

hasControlPanel() : boolean

コントロールパネルの有無

Returns

boolean

allowSystemPlugin()

allowSystemPlugin(string  $pluginKey) : boolean

管理系プラグインの許可

Parameters

string $pluginKey

プラグインkey

Returns

boolean

_loadLibs()

_loadLibs(array  $libs) : void

ライブラリのロード

Parameters

array $libs

ロードするライブラリ群

_getInstance()

_getInstance(string|null  $className = null) : object

インスタンスの取得

Parameters

string|null $className

クラス名

Returns

object

_resetInstance()

_resetInstance(string  $className) : void

インスタンスのクリア

※メイン処理ではあまり使う機会はないが、主にUnitTestで使用する

Parameters

string $className

クラス名

__clearCurrent()

__clearCurrent() : void

コントローラごとに初期する必要がある$current変数の初期化処理

__setCurrentUser()

__setCurrentUser() : void

ユーザ関連のデータをCurrentにセットする

__setCurrentPlugin()

__setCurrentPlugin() : void

プラグイン関連のデータをCurrentにセットする

__setCurrentPage()

__setCurrentPage() : void

ページ関連のデータをCurrentにセットする

__setCurrentPageContainer()

__setCurrentPageContainer() : void

ページコンテナー関連のデータをCurrentにセットする

GET

__setCurrentFrame()

__setCurrentFrame(string|integer|null  $frameId) : void

フレーム関連のデータをCurrentにセットする

Parameters

string|integer|null $frameId

フレームID

__setCurrentBlock()

__setCurrentBlock(string|integer  $roomId, string|integer  $blockId) : void

ブロック関連のデータをCurrentにセットする

Parameters

string|integer $roomId

ルームID

string|integer $blockId

ブロックID

__setCurrentRoom()

__setCurrentRoom(string|integer  $roomId) : void

ルーム関連のデータをCurrentにセットする

Parameters

string|integer $roomId

ルームID