concrete5メモ

ブロック内と、テンプレート内では使えるオブジェクトが異なる。
Wordpressのテンプレートタグと同じようには行かない。
ただし、View::url() のような静的なメソッドもある。もちろんBASE_URLのような定数もある。

ブロック内では以下のオブジェクトがデフォルトで使える

  • $controller //コントローラ・オブジェクト
  • $b //ブロック・オブジェクト
  • $this //ブロック・ビュー
  • $bID //ブロックID

ブロック内からページを得るには

$page = Page::getCurrentPage();

$pageの中身はこんな感じである。

[cID] => 1
[attributes:protected] => Array ( )
[error] =>
[pkgID] => 0
[cPointerID] => 0
[cPointerExternalLink] =>
[cPointerExternalLinkNewWindow] => 0
[cFilename] =>
[cDateAdded] => 2011-01-12 17:51:49
[cDisplayOrder] => 0
[cDateModified] => 2011-02-11 10:49:47
[cInheritPermissionsFromCID] => 1
[cInheritPermissionsFrom] => OVERRIDE
[cOverrideTemplatePermissions] => 1
[cPendingAction] =>
[cPendingActionUID] =>
[cPendingActionTargetCID] =>
[cPendingActionDatetime] => 2011-01-12 17:51:49
[cCheckedOutUID] =>
[cIsTemplate] => 0
[uID] => 1
[cPath] =>
[ctID] => 2
[ctHandle] => left_sidebar
[ctIcon] => template1.png
[ptID] => 5
[cParentID] => 0
[cChildren] => 14
[ctName] => 3カラム
[cCacheFullPageContent] => -1
[cCacheFullPageContentOverrideLifetime] => 0
[cCacheFullPageContentLifetimeCustom] => 0
[isMasterCollection] => 0
[vObj] => CollectionVersion Object (
[cvIsApproved] => 1
[cID] => 1
[attributes:protected] => AttributeValueList Object (
[attributes:private] => Array ( )
[error] => )
[customAreaStyles] => Array ( )
[layoutStyles] => Array ( )
[error] =>
[cvID] => 112
[cvIsNew] => 0
[cvHandle] => home
[cvName] => ホーム
[cvDescription] =>
[cvDateCreated] => 2011-02-11 10:28:32
[cvDatePublic] => 2011-01-12 17:51:49
[cvAuthorUID] => 1
[cvApproverUID] => 1
[cvComments] => 新しいバージョン112
[cvAuthorUname] => admin
[cvApproverUname] => admin
[cvIsMostRecent] => 1 ) ) 303

例えば、$page -> cIDのように記述すればcIDが取得できるというワケ

同じようにして、各種IDやハンドル、名前が取得できる。
ただし、privateなメンバーはアクセス関数を使用する。

コメント

タイトルとURLをコピーしました