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

43
ねカやネゼ�オ ねカやマ【ヴ構成め 作ぽむ��ぱべ CGFM LLC. 金内 透 | BaserCMS勉強会 | 2012.3.10

Upload: garyuten

Post on 12-Jun-2015

3.411 views

Category:

Technology


4 download

DESCRIPTION

2012/03/10 BaserCMS勉強会 Vol.6のLTのスライド。テーマの考え方とか触るポイントとか。

TRANSCRIPT

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

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

CGFM LLC. 金内 透 | BaserCMS勉強会 | 2012.3.10

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

座右の銘

泥臭い力技

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

自己紹介

@Garyuten

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

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

• 1975年生 36才 福岡市在住• Blog http://blog.cgfm.jp/garyu/• 合同会社CGFM 代表社員• 職業:マークアップエンジニア• 相方デザイナー(カネウチカズコ) の2人SOHOスタイルで仕事中

@Garyuten

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

1.テーマの構成

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

慣れたら簡単

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

テーマ

全共通ファイル群app/プラグインのインストールとか

baser/BaserCMSの本体

アップグレードは上書き

cake/PHPのフレームワーク

baserCMSが使うものカラーボックスとか

ファイルアップロードの保存先とか

全体の構成

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

layout/default.ctp

elements/header.ctp

elements/footer.ctp

elements/sidebar.ctp

[各コンテンツ]HOME

固定ページブログ

メールフォーム

ウィジェット

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

themed/skelton

全体のレイアウト大枠

共通パーツ群

ブログ用テンプレート

一覧・TOP

カテゴリ・アーカイブ

個別エントリー

 メールフォーム用

入力画面

確認画面

送信完了画面

固定ページの出力結果のキャッシュ保存場所※カスタマイズ不要

フィード出力

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

BaserCMSのいいところ

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

デフォルトで出力してくれる

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

細かいパーツの

テンプレートが

どこにあるのかわからない

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

baser/views/

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

baser/views/elements

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

アップグレードで

[/baser] 上書きしたら

カスタマイズ前に戻る

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

テーマ内に同名ファイル

優先的に読み込まれる

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

baser/views/elementsthemed/{テーマ}/elements

カスタマイズしたいテンプレートをコピー

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

全体のレイアウト大枠

共通パーツ群ブログ別に

テンプレートを準備

記事出力用

 メールフォーム用

メール送信本文

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

HOME用コンテンツ枠

ページ用コンテンツ枠

ソーシャル関係(Twitter,Facebook)

検索フォーム

力技テーマ例

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

pluginのviewも触りたい

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

テーマにコピペすれば

好きなだけ触れる

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

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

/baser/plugins//app/plugins/

自分で追加インストールする場合は/app/plugins/

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

[mail]の例themed/{テーマ}/ baser/plugin/***/view/app/plugin/***/view/

メールフォームの枠<form>、<table>、各input要素、画像認証、

送信ボタンの表示位置

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

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

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

コピペ

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

力技

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

分岐処理

home / blog / page

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

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; ?>

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

baserCMSは

記事本文にphpやbaserの

コードを直接書ける

お客さんに触られる可能性も出てくる

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

index本文

elements/home.ctpに直接記述しておく

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

グローバルメニューで

現在位置表現したい

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

CSSシグネチャ

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

CSSシグネチャでメニュー制御

.menu01 .menu02 .menu03 .menu04

body / menu

ctg-A

ctg-B

ctg-C

ctg-D

.menu01 .menu02 .menu03 .menu04

<body id=”{pageID}” class=”{カテゴリ等}”>

body.ctg-A .menu01, body.ctg-B .menu02,body.ctg-C .menu03, body. ctg-D .menu04 { backgroud: *****; color : red;/* 現在位置の表現を指定*/}

ex)CSS

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

CSSシグネチャでメニュー制御

.menu01 .menu02 .menu03 .menu04

body / menu

ctg-A

ctg-B

ctg-C

ctg-D

.menu01 .menu02 .menu03 .menu04

<body id=”{pageID}” class=”ctg-A”>

body.ctg-A .menu01, body.ctg-B .menu02,body.ctg-C .menu03, body. ctg-D .menu04 { backgroud: *****; color : red;/* 現在位置の表現を指定*/}

ex)CSS

.menu01

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

CSSシグネチャでメニュー制御

.menu01 .menu02 .menu03 .menu04

body / menu

ctg-A

ctg-B

ctg-C

ctg-D

.menu01 .menu02 .menu03 .menu04

<body id=”{pageID}” class=”ctg-B”>

body.ctg-A .menu01, body.ctg-B .menu02,body.ctg-C .menu03, body. ctg-D .menu04 { backgroud: *****; color : red;/* 現在位置の表現を指定*/}

ex)CSS

.menu02

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

CSSシグネチャでメニュー制御

.menu01 .menu02 .menu03 .menu04

body / menu

ctg-A

ctg-B

ctg-C

ctg-D

.menu01 .menu02 .menu03 .menu04

<body id=”{pageID}” class=”ctg-C”>

body.ctg-A .menu01, body.ctg-B .menu02,body.ctg-C .menu03, body. ctg-D .menu04 { backgroud: *****; color : red;/* 現在位置の表現を指定*/}

ex)CSS

.menu03

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

CSSシグネチャでメニュー制御

.menu01 .menu02 .menu03 .menu04

body / menu

ctg-A

ctg-B

ctg-C

ctg-D

.menu01 .menu02 .menu03 .menu04

<body id=”{pageID}” class=”ctg-D”>

body.ctg-A .menu01, body.ctg-B .menu02,body.ctg-C .menu03, body. ctg-D .menu04 { backgroud: *****; color : red;/* 現在位置の表現を指定*/}

ex)CSS

.menu04

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

body id,class付与例(1)

<body id=‘home’ class=‘Home’>

HOMEの場合

<body id=‘{pageID}’ class=‘Page Ctg-{カテゴリ名} SubCtg-{カテゴリ名}’>

固定ページの場合

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

body id,class付与例(2)

<body class=‘BlogIndex Index Blog-{Name}’>

blogの場合 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-{カテゴリ名}’>blogのエントリー

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

誰か作ってhelperさん

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

判別系

isPage()

固定ページかどうか

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

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

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

$blog->category( $post,[$options] )

• オプションの具体的な凡例

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

$blog->isBlogHome()

• ブログのHOMEかどうかの判別

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

$blog いろいろ

• ブログのHOMEのHOMEのURL• ブログのタイトルとURL、リンク付き

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

ありがとうございました

@Garyuten