Pictnotes メインイメージ

お仕事メモ

contentsName関数の挙動について その2

contentsNameの挙動をちょっとカスタマイズしたので、メモ



http://www.pictnotes.jp/hoge

とかの固定ページ(第一階層しかないページ)で、contentsName 関数をつかうと、返値は Defaultになる。
これを、「hoge」にしたい場合がある。
たとえば、
 

<body id="<?php $baser->contentsName() ?>"> としてると、 <body id="Default">

となるけど、hogeページは、

<body id="hoge">
となって欲しい場合などの時のカスタマイズ。(baserCMS3系)
まず、変えたいbodyタグがあるlayoutファイルで該当のbodyタグ周りを下記のように修正

<?php
$contentsNameDefault = 'Default';
if( isset( $this->request->pass[0] ) ){
    $contentsNameDefault = $this->request->pass[0] ;
}
?>
<body id="<?php $this->BcBaser->contentsName(false, array('underscore'=>true,'default'=>$contentsNameDefault)) ?>">

と書き換える、contentsNameメソッドの引数で、defaultの値を強制的に書き換えてる挙動です。
内部的には、

lib/Baser/View/Helper/BcBaserHelper.php の1351行目あたり、getContentsNameメソッドの

    public function getContentsName($detail = false, $options = array()) {

        $options = array_merge(array(
            'home' => 'Home',
            'default' => 'Default' ,
            'error' => 'Error',
            'underscore' => false), $options);

の'default' => 'Default'の部分を上書きして上げている状態になります。

これでだいたいの挙動は網羅できると思います。
 

baserCMS   2014/02/26   admin