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'の部分を上書きして上げている状態になります。
これでだいたいの挙動は網羅できると思います。





