■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

Re: カテゴリを含むページ毎の条件判定についての質問です。(プラグイン未使用の場合)

Garyuten > Re: カテゴリを含むページ毎の条件判定についての質問です。(プラグイン未使用の場合) @ 2012/1/30 23:44
>clothowebさん
テーマ内でカテゴリ判別したいのはすごくよくわかります。
既に自己解決してたらすいません。

引用:

elseifの部分がなぜか条件判定の記述で詰まってしまいました。
<?php elseif(isset($page) && !isset($blog)): ?>

実際に上記のタイプでの記載だということは分かるのですが、

カテゴリとなると、現在表示してるURLの文字列からカテゴリを取得・判別するが一番早いと思います。
$baser->getContentsName(true); だとページID(カテゴリ名+ページ名まで含まれる)なので判別には向きません。

BaserCMSにはカテゴリを取得する方法がない(?)ので僕は以下のような方法でやっています。


<?php
//default.ctp 内に記述
$CtgAry = split("/",$this->here);  // "/"で分割して配列に格納
$Ctg = $CtgNameAry[1]; //メインカテゴリ
$SubCtg = $CtgNameAry[2]; //サブカテゴリ
?>
例) /category-a/sub-category/page にアクセスした場合、以下のように格納されます
$Ctg → category-a
$SubCtg → sub-category

//判別
<?php if( $baser->isTop() ): ?>
<!-- HOMEの内容 -->
<?php elseif( isset($page) && !isset($blog) ): ?>
<!-- Pageの内容 -->
	<?php if($Ctg == 'staff' ): ?>
		カテゴリ:スタッフの内容
		<img src="<?= $Ctg ?>.png" alt="カテゴリ:<?= $Ctg ?>" />
	<?php elseif($Ctg == 'doctor' ) ?>
		カテゴリ:ドクターの内容
		<img src="<?= $Ctg ?>.png" alt="カテゴリ:<?= $Ctg ?>" />
	<?php else: ?>
		カテゴリがないor分岐不要のページの内容
	<?php endif; ?>
<?php else: ?>
<!-- Blog,Form の内容 -->
<?php endif; ?>


こんな感じでどうでしょうか?

カテゴリの判別式は、よくhead内に入れて、カテゴリやブログ毎にCSSを切り替える時にも使っています。

余談)
カテゴリ名をCSSのClassでは頭一文字だけ大文字(Staff, Doctor)で記述してる場合は、PHP上もそれに合わせて ucfirst($Ctg) とすることもあります。
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
8 人のユーザが現在オンラインです。 (8 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 8