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 詳細エリアが入力できない(詳細エリアの WYSIWYGエディタが起動しない)
baserCMS 詳細エリアの WYSIWYGエディタが起動しない場合の解決方法の参考サイトと、それでも直らない場合の最終手段の説明です。
-
baserCMS お問い合わせフォームのボタンを画像に変えたい場合(ボタンのテキストを変えたい!っていう場合も)
お問い合わせフォームのボタンを画像に変えたい場合、ボタンのテキストを変えたい場合、それにまつわる関連の解説をしています。
-
baserCMS ID以外のカラムでアソシエーション(連携)をさせる場合
baserCMSで ID以外のカラムでアソシエーション(連携)させる方法と注意点を解説しています。CakePHPとは動作に差異があり注意が必要です。
-
baserCMS トップページのニュースの部分をメンテナンスしたい場合
トップページのニュース部分をメンテナンスする場合の具体的な方法をサンプルソースを用いて解説しています。
-
baserCMSでwp_is_mobileと同じスマホ振り分け関数を実装
baserCMS版 wp_is_mobile関数です。Google Adsenseの規約対応のためにも必要な関数です。
-
baserCMSで開発環境と公開環境でドメイン、フォルダが変わる場合の不具合
baserCMSで開発環境と公開環境でドメインが変わる場合は URLに絡む設定を変更する必要がありますのでその解説です。
-
baserCMS 画面が真っ白になる不具合があった場合の対応の一つ
baserCMSで画面が真っ白になる不具合があった場合の対応方法の説明です。PHPでエラーが起こっている場合がほとんどですが、その対処方法です。
-
baserCMS favicon.icoを変更したい場合
baserCMS favicon.icoを変更したい場合の参考サイトとそれでも直らない場合の対応方法についての説明です。
-
baserCMSは 3種類のデバッグモードが用意されています
デバッグモードは3種類あります。デバッグモードにすることでキャッシュされなくなりますので、開発の際には必須の設定です。
-
baserCMSでオリジナルのデータベースから情報を取得する場合
オリジナルで作ったテーブルから情報を取得し利用する場合はプラグインとして機能を拡張することで対応出来ます。その方法について説明しています。
Comment
guilz.org 管理人のくりゅえると申します。この度はピンバックいただきましてありがとうございます。
該当記事は当時使っていたソースコードのハイライトプラグインが不調となり、それを入れ替えた後に記事修正を失念していたため、大変見づらいままとなっておりました。(現在は修正済みとなっております)
また、当時のBaserCMS 1.X系列での動作確認しか行っていないため、現在のバージョンではエラーが発生したとのことで、ご迷惑をおかけしました。最新版は既に追いかけていないため、該当記事よりこちらのページにまで、リンクを張らせていただきました。
この度は記事へのご指摘をいただきまして、ありがとうございました。
くりゅえるさん、コメントありがとうございます。
この記事は、昨年 10月に書いた記事で、動作確認を行った環境は baserCMS 2.1.2になります。(descriptionの見直しをしていたために再度 PingBackを送ってしまったようで申し訳ありません。)
baserCMS 3系でも動作するかどうか確認し、改めて報告させていただきたいと思います。