ねカやネゼ�オ
         ねカやマ【ヴ構成め
          作ぽむ��ぱべ


CGFM LLC. 金内 透 ¦ BaserCMS勉強会 ¦ 2012.3.10
座右の銘


泥臭い力技
自己紹介




@Garyuten
金内 透
            ( かねうち とおる )

            •   1975年生 36才 福岡市在住

            •   Blog http://blog.cgfm.jp/garyu/

            •   合同会社CGFM 代表社員
@Garyuten
            •   職業:マークアップエンジニア

            •   相方デザイナー(カネウチカズコ) の2人
                SOHOスタイルで仕事中
1.テーマの構成
慣れたら簡単
全体の構成
    app/                 全共通ファイル群
  プラグインの
 インストールとか
                             cake/
                        PHPのフレームワーク

      baser/
  BaserCMSの本体
                         baserCMSが使うもの
アップグレードは上書き
                         カラーボックスとか
                        ファイルアップロードの
                             保存先とか


   テーマ
layout/default.ctp

                     elements/header.ctp




                [各コンテンツ]                    elements/
                   HOME                    sidebar.ctp
                  固定ページ
                   ブログ
                メールフォーム


                                           ウィジェット




                     elements/footer.ctp
themed/skelton
                     ブログ用テンプレート

                      カテゴリ・アーカイブ
  共通パーツ群
                           一覧・TOP

                          個別エントリー


フィード出力



全体のレイアウト大枠
                       メールフォーム用


                            確認画面
固定ページの出力結果の
                            入力画面
 キャッシュ保存場所
 ※カスタマイズ不要
                           送信完了画面
BaserCMSのいいところ

細かいパーツはいじらなくても

デフォルトで出力してくれる
細かいパーツの

  テンプレートが

どこにあるのかわからない
baser/views/
baser/views/elements
アップグレードで

[/baser] 上書きしたら

カスタマイズ前に戻る
テーマ内に同名ファイル

優先的に読み込まれる
themed/{テーマ}/elements   baser/views/elements




                 カスタマイズしたい
                  テンプレートを
                    コピー
ブログ別に
    共通パーツ群    テンプレートを準備


                記事出力用

 メール送信本文

              ブログのタグ出力用
blog用コンテンツ枠

                  ソーシャル関係
HOME用コンテンツ枠     (Twitter,Facebook)




ページ用コンテンツ枠
               検索フォーム

 全体のレイアウト大枠




               メールフォーム用
力技テーマ例
pluginのviewも触りたい
テーマにコピペすれば

 好きなだけ触れる
/baser/plugins/
/app/plugins/


   [blog][feed][mail]
  の3つはデフォルトで
    /baser/plugins/



 自分で追加インストール
     する場合は
   /app/plugins/
themed/{テーマ}/   [mail]の例                         baser/plugin/***/view/
                                                 app/plugin/***/view/

          view/elements 配下は
         {テーマ}/elements 以下に
                 コピペ


                         メールフォームの枠
                <form>、<table>、各input要素、画像認証、
                        送信ボタンの表示位置




          それ以外はテーマ直下に
             コピペでOK


                                                メールフォームの画面テンプレート
                                                   {入力/確認/完了画面}
力技
分岐処理

home / blog / page
layouyt/default.ctp
<?php if($baser->isTop()): //HOME専用 ?>
    <?php //$baser->element('home') ?>
    <?php include('./themed/{テーマ名}/elements/home.ctp'); ?>
<?php elseif( empty( $blog ) ) : //ページ専用 ?>
!     <?php
!      //$baser->element('page');
!      include('./themed/{テーマ名}/elements/page.ctp');
! ?>
<?php else : //ブログ専用 ?>
    <?php include('./themed/{テーマ名}/elements/blog.ctp');?>
<?php endif; ?>
baserCMSは

記事本文にphpやbaserの

 コードを直接書ける
  お客さんに触られる可能性も出てくる
elements/home.ctp
に直接記述しておく


                    index本文
グローバルメニューで

現在位置表現したい
CSSシグネチャ
CSSシグネチャでメニュー制御
<body id=”{pageID}” class=”{カテゴリ等}”>

                .menu01   .menu02   .menu03   .menu04


 body / menu
               .menu01 .menu02 .menu03 .menu04
    ctg-A

    ctg-B

    ctg-C

    ctg-D


body.ctg-A .menu01, body.ctg-B .menu02,
body.ctg-C .menu03, body. ctg-D .menu04 {
 backgroud: *****; color : red;/* 現在位置の表現を指定*/
}
                                              ex)CSS
CSSシグネチャでメニュー制御
<body id=”{pageID}” class=”ctg-A”>

                .menu01   .menu02    .menu03   .menu04


 body / menu
               .menu01 .menu02 .menu03 .menu04
    ctg-A

    ctg-B

    ctg-C

    ctg-D


body.ctg-A .menu01, body.ctg-B .menu02,
body.ctg-C .menu03, body. ctg-D .menu04 {
 backgroud: *****; color : red;/* 現在位置の表現を指定*/
}
                                               ex)CSS
CSSシグネチャでメニュー制御
<body id=”{pageID}” class=”ctg-B”>

                .menu01   .menu02    .menu03   .menu04


 body / menu
               .menu01 .menu02 .menu03 .menu04
    ctg-A

    ctg-B

    ctg-C

    ctg-D


body.ctg-A .menu01, body.ctg-B .menu02,
body.ctg-C .menu03, body. ctg-D .menu04 {
 backgroud: *****; color : red;/* 現在位置の表現を指定*/
}
                                               ex)CSS
CSSシグネチャでメニュー制御
<body id=”{pageID}” class=”ctg-C”>

                .menu01   .menu02    .menu03   .menu04


 body / menu
               .menu01 .menu02 .menu03 .menu04
    ctg-A

    ctg-B

    ctg-C

    ctg-D


body.ctg-A .menu01, body.ctg-B .menu02,
body.ctg-C .menu03, body. ctg-D .menu04 {
 backgroud: *****; color : red;/* 現在位置の表現を指定*/
}
                                               ex)CSS
CSSシグネチャでメニュー制御
<body id=”{pageID}” class=”ctg-D”>

                .menu01   .menu02    .menu03   .menu04


 body / menu
               .menu01 .menu02 .menu03 .menu04
    ctg-A

    ctg-B

    ctg-C

    ctg-D


body.ctg-A .menu01, body.ctg-B .menu02,
body.ctg-C .menu03, body. ctg-D .menu04 {
 backgroud: *****; color : red;/* 現在位置の表現を指定*/
}
                                               ex)CSS
body id,class付与例(1)
HOMEの場合
<body id=‘home’ class=‘Home’>




固定ページの場合
<body id=‘{pageID}’ class=‘Page Ctg-{カテゴリ名} SubCtg-{カテ
ゴリ名}’>
body id,class付与例(2)
blogの場合
blogのトップ
<body class=‘BlogIndex Index Blog-{Name}’>


blogのカテゴリ一覧
<body class=‘ BlogCategory Category" Blog-{Name}’>

blogのアーカイブ一覧
<body class=‘BlogArchives Archives BlogDate Date
BlogDate-2012-03’>

blogのタグ一覧
<body class=‘BlogArchives Archives BlogTag Tag-{tag No}’>

blogのエントリー
<body class=‘BlogEntry Entry BlogEntry-{カテゴリ名}’>
誰か作って
helperさん
判別系

  isPage()

固定ページかどうか
BlogHelper > BlogHelper
 出力系命令 > [postImg]
• 画像のサイズ指定(small,large)
• 元画像へのリンク
• 具体的な凡例
• 記事中に何枚画像が格納されてるか
$blog->category( $post,[$options] )




• オプションの具体的な凡例
$blog->isBlogHome()




• ブログのHOMEかどうかの判別
$blog いろいろ




• ブログのHOMEのHOMEのURL
• ブログのタイトルとURL、リンク付き
ありがとうございました




    @Garyuten

「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6