baserCMS ブログカテゴリーの表示を柔軟な形で取得する方法
2014/07/03
baserCMS ブログカテゴリーの値を取得する方法
ブログカテゴリ取得の参考サイト
getCategoryListで取得した場合は、固定の HTMLが返ってきますが、それをもう少し柔軟な形で取得したい場合は、下記のサイトが参考になります。
http://www.guilz.org/2012/01/08/basercms-%E3%83%96%E3%83%AD%E3%82%B0%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%82%92%E4%BB%BB%E6%84%8F%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A8%E3%81%8B/
ブログカテゴリ取得のサンプルコード
しかし、このサイトを見ただけでは何がなんだかよく分かりません!
なぜなら、PHP、HTMLで書かれているソースの部分が正しく表示されていないからです。
このページのソースを表示させると何が書かれているかわかりますが、PHPのソース、HTMLのソースの記述部分がブログの中のタグと混同してしまっておかしな見え方になってしまっています。
また、そのままではいくつかエラーが起こったために、下記のように修正をしました。
これをこのまま表示させる Viewファイルに記述してもらえれば OKです。
私の場合は、ブログの「nada-icons」というテーマの「news」というテンプレートを使っていましたので、「/baserCMS/app/webroot/themed/nada-icons/index.php」に追記しました。
それぞれページによって表示のさせ方も違うと思いますので、「<!– ここからコード出力 –>」の部分を修正していただきながら、ページごと必要な項目を調整してもらえれば、と思います。
———————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
<?php echo '-------------aaa' ?> <?php if(!isset($count)) { $count = true; //ここは好みで false に } if(isset($blogContent)){ $id = $blogContent['BlogContent']['id']; }else{ $id = $blog_content_id; } if($count) { $actionUrl = '/blog/get_categories/'.$id.'/1'; } else { $actionUrl = '/blog/get_categories/'.$id; } $data = $this->requestAction($actionUrl); $categories = $data['categories']; $this->viewVars['blogContent'] = $data['blogContent']; $baseCurrentUrl = $blogContent['BlogContent']['name'].'/archives/category/'; $view_count = 0; ?> <div class="widget widget-blog-monthly-archives widget-blog-monthly-archives-<?php echo $id ?> blog-widget"> <!-- ここからコード出力 --> <?php if($categories): ?> <ul class="category_menu"> <?php foreach($categories as $category): ?> <?php if($count && isset($category['BlogCategory']['count'])): ?> <?php $category['BlogCategory']['title'] .= '('.$category['BlogCategory']['count'].')' ?> <?php endif ?> <!-- 選択状態のカテゴリーを active に。それ以外を none にする --> <?php if($this->params['url']['url'] == $baseCurrentUrl.$category['BlogCategory']['name']): ?> <?php $class = 'active' ?> <?php else: ?> <?php $class = 'none' ?> <?php endif ?> <!-- 記事数カウント分岐 --> <?php if($view_count): ?> <?php $title = $category['BlogCategory']['title'].' ('.$category['BlogCategory']['count'].')' ?> <?php else: ?> <?php $title = $category['BlogCategory']['title'] ?> <?php endif ?> <!-- リスト出力ループ カスタマイズ部分 --> <!-- <li>--> <?php $bcBaser->link('<span class="xxx">'.$title.'</span>', array( 'admin' => false, 'plugin' => '', 'controller' => $blogContent['BlogContent']['name'], 'action' => 'archives', 'category', $category['BlogCategory']['name'] ), array('title'=> $title, 'class'=> $class)) ?> <!-- </li>--> <?php endforeach; ?> </ul> <?php endif; ?> </div> <?php echo '-------------xxx' ?> |
—————————————
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
baserCMS ID以外のカラムでアソシエーション(連携)をさせる場合
baserCMSで ID以外のカラムでアソシエーション(連携)させる方法と注意点を解説しています。CakePHPとは動作に差異があり注意が必要です。
-
baserCMSでオリジナルのデータベースから情報を取得する場合
オリジナルで作ったテーブルから情報を取得し利用する場合はプラグインとして機能を拡張することで対応出来ます。その方法について説明しています。
-
ロリポップで baserCMSを利用する際の Basic認証の設置には注意しましょう
ロリポップではBasic認証を設置する際に.htaccessを書き換えますがbaserCMSで利用する処理も上書きされます。その対処方法の解説です。
-
baserCMS getCategoryの使い方について
baserCMS getCategoryの使い方についての説明です。公式サイトの説明ではわかりにくいところを補足説明しています。
-
baserCMSをほかのサーバ、環境にコピーする場合
baserCMSを他のサーバ、環境にコピーする場合の設定方法について説明します。
-
baserCMS トップページのニュースの部分をメンテナンスしたい場合
トップページのニュース部分をメンテナンスする場合の具体的な方法をサンプルソースを用いて解説しています。
-
baserCMSでwp_is_mobileと同じスマホ振り分け関数を実装
baserCMS版 wp_is_mobile関数です。Google Adsenseの規約対応のためにも必要な関数です。
-
baserCMS 3系でテーマが変更されないのはキャッシュが原因
baserCMS 3系ではキャッシュの処理が原因でテーマを変更したけども変更されないという不具合があります。
-
baserCMS getCategoryListの使い方について
baserCMS getCategoryListの使い方についての詳細説明です。公式サイトの説明では分かりにくい部分を補足説明しています。
-
baserCMS サイト管理者権限でファイルアップロードを行う・権限設定の詳細について
Admin権限以外の権限でファイルをアップロード、ページの更新をする際の権限設定の仕方と、権限設定全般についての設定のコツについて解説しています。
Comment
guilz.org 管理人のくりゅえると申します。この度はピンバックいただきましてありがとうございます。
該当記事は当時使っていたソースコードのハイライトプラグインが不調となり、それを入れ替えた後に記事修正を失念していたため、大変見づらいままとなっておりました。(現在は修正済みとなっております)
また、当時のBaserCMS 1.X系列での動作確認しか行っていないため、現在のバージョンではエラーが発生したとのことで、ご迷惑をおかけしました。最新版は既に追いかけていないため、該当記事よりこちらのページにまで、リンクを張らせていただきました。
この度は記事へのご指摘をいただきまして、ありがとうございました。
くりゅえるさん、コメントありがとうございます。
この記事は、昨年 10月に書いた記事で、動作確認を行った環境は baserCMS 2.1.2になります。(descriptionの見直しをしていたために再度 PingBackを送ってしまったようで申し訳ありません。)
baserCMS 3系でも動作するかどうか確認し、改めて報告させていただきたいと思います。