40
1 ウェブサイト/ブログを組み合わせた サイトのテーマ化 藤本 2010/7/31 MTDDC Tokyoテーマ編

ウェブサイト/ブログを組み合わせたサイトのテーマ化

Embed Size (px)

Citation preview

Page 1: ウェブサイト/ブログを組み合わせたサイトのテーマ化

1

ウェブサイト/ブログを組み合わせたサイトのテーマ化

藤本 壱

2010/7/31MTDDC Tokyoテーマ編

Page 2: ウェブサイト/ブログを組み合わせたサイトのテーマ化

2

今日のアジェンダ

自己紹介

ウェブサイトの情報をブログで扱う

ウェブサイト/ブログ間でのテンプレートモジュールの共有

ブログIDに依存しないテーマの作成

まとめ

Page 3: ウェブサイト/ブログを組み合わせたサイトのテーマ化

3

自己紹介

Page 4: ウェブサイト/ブログを組み合わせたサイトのテーマ化

4

自己紹介

藤本 壱(ふじもと はじめ)

フリーライター(PC関連、マネー関連)2004年11月よりMovable Typeを利用

Movable Type関連の書籍を複数執筆

Page 5: ウェブサイト/ブログを組み合わせたサイトのテーマ化

5

ブログやってます

The Blog of H.Fujimotohttp://www.h-fj.com/blog/

Page 6: ウェブサイト/ブログを組み合わせたサイトのテーマ化

6

ウェブサイトの情報をブログで扱う

Page 7: ウェブサイト/ブログを組み合わせたサイトのテーマ化

7

ウェブサイトの情報をブログで扱う機会が多い

ウェブサイトとブログを組み合わせる場合、ウェブサイトの情報をブログで扱う機会が多く存在

ブログからウェブサイトのトップページへリンク

ブログのバナーヘッダー部分にウェブサイト名を出力

Page 8: ウェブサイト/ブログを組み合わせたサイトのテーマ化

8

MTBlogParentWebsiteタグ

ブログからウェブサイトの情報を参照する際に使うブロックタグ

例:ウェブサイトの名前を出力

<mt:BlogParentWebsite><$mt:WebsiteName$>

</mt:BlogParentWebsite>MTBlogParentWebsiteタグを頻繁に使

うのは面倒

Page 9: ウェブサイト/ブログを組み合わせたサイトのテーマ化

9

テンプレートモジュールで情報を共有

変数を利用して情報を共有

テンプレートモジュールで変数にウェブサイトの情報を代入

個々のブログでは、変数を利用してウェブサイトの情報を出力

Page 10: ウェブサイト/ブログを組み合わせたサイトのテーマ化

10

ウェブサイト側のテンプレートモジュール

ウェブサイト名/ウェブサイトのアドレス/ウェブサイトの概要を、テンプレートモジュールで変数に代入

ウェブサイトの概要website_descriptionウェブサイトのアドレスwebsite_urlウェブサイト名website_nameウェブサイトのIDwebsite_id

内容変数名

テンプレートモジュールには「ウェブサイトの情報」等の名前を付ける

Page 11: ウェブサイト/ブログを組み合わせたサイトのテーマ化

11

ウェブサイト側のテンプレートモジュールの内容<mt:BlogParentWebsite><mt:SetVars>website_id=<$mt:WebsiteID$>website_name=<$mt:WebsiteName$>website_description=<$mt:WebsiteDescription$>website_url=<$mt:WebsiteURL$></mt:SetVars></mt:BlogParentWebsite>

Page 12: ウェブサイト/ブログを組み合わせたサイトのテーマ化

12

個々のブログでの作業

各テンプレートの先頭に、ウェブサイトの「ウェブサイトの情報」テンプレートモジュールを組み込む処理を追加

<mt:BlogParentWebsite><$mt:WebsiteID setvar="website_id"$>

</mt:BlogParentWebsite><$mt:Include module="ウェブサイトの情報“

blog_id="$website_id"$>

Page 13: ウェブサイト/ブログを組み合わせたサイトのテーマ化

13

ブログにウェブサイトの情報を出力

MTGetVarタグでwebsite_name等の変

数を出力すれば良い

MTBlogParentWebsiteタグを書く必要

がなくなる

<$mt:GetVar name=“website_name”$>

Page 14: ウェブサイト/ブログを組み合わせたサイトのテーマ化

14

ウェブサイト/ブログ間でのテンプレートモジュールの共有

Page 15: ウェブサイト/ブログを組み合わせたサイトのテーマ化

15

テンプレートモジュール管理の問題(1)

ウェブサイト

ブログ1

ブログ2

ヘッダー

フッター

サイドバー

ウェブサイト/ブログ

ウェブサイトのテンプレートモジュール

ウェブサイトのテンプレートモジュールを共有したい

Page 16: ウェブサイト/ブログを組み合わせたサイトのテーマ化

16

テンプレートモジュール管理の問題(2)テンプレートモジュールの組み込み→ MTIncludeタグ

<$mt:Include module=“○○○”$>

ブログに○○○テンプレート

モジュールがない時は?

ウェブサイトの○○○テンプレート

モジュールを読み込む

システムの○○○テンプレート

モジュールを読み込む

ウェブサイトのテンプレートモジュールを共有するには一工夫することが必要

Page 17: ウェブサイト/ブログを組み合わせたサイトのテーマ化

17

blog_idモディファイア

MTIncludeタグにblog_idモディファイア

を指定

ウェブサイトのIDを指定すれば、ウェブサ

イトのテンプレートモジュールを組み込める

<$mt:Include module=“○○○”blog_id=“$website_id”$>

Page 18: ウェブサイト/ブログを組み合わせたサイトのテーマ化

18

ウェブサイト/ブログのどちらのウェブページの情報が表示される?

組み込み先のブログのウェブページが表示される

ウェブサイトのテンプレートをブログに組み込むと・・・

ウェブサイト ブログ

<mt:Pages lastn="5"><$mt:PageTitle$>

</mt:Pages>

<$mt:Includemodule=“○○○”blog_id=“$website_id”$>

常に特定のウェブサイトまたはブログの情報を表示したい場合は?

Page 19: ウェブサイト/ブログを組み合わせたサイトのテーマ化

19

ウェブサイトのコンテキストに固定

同じテンプレートタグでも、テンプレートの文脈(コンテキスト)によって出力する情報は変化

MTBlogParentWebsiteタグで囲んだ部分は、

常にウェブサイトのコンテキストで出力

<mt:BlogParentWebsite><mt:Pages lastn="5"><$mt:PageTitle$>

</mt:Pages></mt:BlogParentWebsite>

Page 20: ウェブサイト/ブログを組み合わせたサイトのテーマ化

20

ブログのコンテキストに固定

MTBlogsタグで囲んだ部分は、常にブロ

グのコンテキストで出力

<mt:Blogs include_blogs="1"><mt:Pages lastn="5"><$mt:PageTitle$>

</mt:Pages></mt:Blogs>

例:IDが1番のブログのウェブページ一覧を出力

Page 21: ウェブサイト/ブログを組み合わせたサイトのテーマ化

21

コンテキストの判断

MTIfWebsiteタグ/MTIfBlogタグでコン

テキストを判断

<mt:IfWebsite>ウェブサイトのコンテキストの時の出力

</mt:IfWebsite><mt:IfBlog>ブログのコンテキストの時の出力

</mt:IfBlog>

Page 22: ウェブサイト/ブログを組み合わせたサイトのテーマ化

22

ブログIDに依存しない

テーマの作成

Page 23: ウェブサイト/ブログを組み合わせたサイトのテーマ化

23

include_blogsモディファイア

テンプレート内で複数ブログの情報を扱う → include_blogsモディファイア

<mt:Entries include_blogs=“children”><$mt:EntryTitle$>

</mt:Entries>

例:ウェブサイト配下のすべてのブログからブログ記事を読み込む

Page 24: ウェブサイト/ブログを組み合わせたサイトのテーマ化

24

ブログIDへの依存

ウェブサイト内の一部のブログを扱いたい→ ブログのIDを直書き

<mt:Entries include_blogs=“2,3”><$mt:EntryTitle$>

</mt:Entries>

例:ウェブサイト配下のブログのうち、IDが2番と3番のブログからブログ記事を読み込む

テーマの適用先ではブログのIDが変化

include_blogsモディファイアの全修正?

Page 25: ウェブサイト/ブログを組み合わせたサイトのテーマ化

25

ブログIDへの依存を避ける

各ブログのIDを変数に設定

「ウェブサイトの情報」テンプレートモジュールで、ブログのIDを変数に設定す

る処理も行う

include_blogsモディファイアではブログのIDを変数で指定

Page 26: ウェブサイト/ブログを組み合わせたサイトのテーマ化

26

事例

ウェブサイト

新着情報ブログ

商品情報ブログ

社長ブログ

ceo_blog_id社長ブログ

item_blog_id商品情報

news_blog_id新着情報

IDの変数名ブログ

Page 27: ウェブサイト/ブログを組み合わせたサイトのテーマ化

27

変数設定用テンプレートモジュールの作成ブログIDを変数に設定するテンプレートモジュールを各ブログに作成テンプレートモジュール名は「ブログID設定」に統一

新着情報ブログ

<$mt:BlogID setvar=“news_blog_id"$>商品情報ブログ

<$mt:BlogID setvar=“item_blog_id"$>社長ブログ

<$mt:BlogID setvar="ceo_blog_id"$>

Page 28: ウェブサイト/ブログを組み合わせたサイトのテーマ化

28

テンプレートモジュールを組み込んで各ブログのIDを変数に代入

「ウェブサイトの情報」テンプレートモジュールを書き換え

<mt:BlogParentWebsite><mt:SetVars>・・・</mt:SetVars><mt:Blogs include_blogs="children"><$mt:BlogID setvar="blog_id"$><$mt:Include module="ブログID設定“

blog_id="$blog_id"$></mt:Blogs></mt:BlogParentWebsite>

Page 29: ウェブサイト/ブログを組み合わせたサイトのテーマ化

29

各ブログのIDを変数に代入

新着情報ブログ

ブログID設定

商品情報ブログ

ブログID設定

社長ブログ

ブログID設定

ウェブサイト

ウェブサイトの情報

ウェブサイト/各ブログのテンプレート

Page 30: ウェブサイト/ブログを組み合わせたサイトのテーマ化

30

各ブログの情報を扱う

include_blogsモディファイアを変数で指

例:新着情報ブログから最新記事10件の

タイトルを出力<mt:Entries include_blogs=“$news_blog_id”>

<$mt:EntryTitle$></mt:Entries>

Page 31: ウェブサイト/ブログを組み合わせたサイトのテーマ化

31

複数のブログの情報を組み合わせたい場合

Include_blogsモディファイアに複数の変

数を指定することはできない<mt:Entries

include_blogs=“$news_blog_id,$ceo_blog_id”><$mt:EntryTitle$>

</mt:Entries>

<mt:Entriesinclude_blogs=“$news_blog_id,$ceo_blog_id”><$mt:EntryTitle$>

</mt:Entries>

複数のブログIDをカンマで区切った値を、

あらかじめ変数に代入しておく

Page 32: ウェブサイト/ブログを組み合わせたサイトのテーマ化

32

事例

「新着情報ブログ」と「社長ブログ」の最新記事をまとめて出力したい両ブログのIDをコンマで区切った値を、変数「news_and_ceo_blog_id」に代入

「ウェブサイトの情報」テンプレートモジュールに以下を追加

<mt:SetVarBlock name="news_and_ceo_blog_id"><$mt:GetVar name="news_blog_id"$>,<$mt:GetVar name="ceo_blog_id"$></mt:SetVarBlock>

Page 33: ウェブサイト/ブログを組み合わせたサイトのテーマ化

33

事例

include_blogsモディファイアで変数news_and_ceo_blog_idを利用

<mt:Entriesinclude_blogs=“$news_and_ceo_blog_id”><$mt:EntryTitle$>

</mt:Entries>

Page 34: ウェブサイト/ブログを組み合わせたサイトのテーマ化

34

まとめ

Page 35: ウェブサイト/ブログを組み合わせたサイトのテーマ化

35

まとめ

ウェブサイトの情報をブログで扱う「ウェブサイトの情報」テンプレートモジュールの共有

ウェブサイト/ブログ間でのテンプレートモジュールの共有

MTIncludeタグのblog_idモディファイア

MTBlogParentWebsiteタグ/MTBlogsタグによるコンテキストの固定

MTIfWebsiteタグ/MTIfBlogタグによるコンテキストの判断

ブログIDに依存しないテーマの作成各ブログのIDを変数に代入

Include_blogsモディファイアを変数で指定

Page 36: ウェブサイト/ブログを組み合わせたサイトのテーマ化

36

One More Thing…

Page 37: ウェブサイト/ブログを組み合わせたサイトのテーマ化

37

「Movable Type 5 Webサイト製作ガイドVolume 1&2」(PDF書籍)販売中

http://www.h-fj.com/blog/mt5bookvol1/http://www.h-fj.com/blog/mt5bookvol2/

Page 38: ウェブサイト/ブログを組み合わせたサイトのテーマ化

38

MTDDCご来場特典クーポン

2,500円 3,000円

2,300円 2,800円

紹介記事やバナー広告掲載でさらに割引あり

Page 39: ウェブサイト/ブログを組み合わせたサイトのテーマ化

39

今回のセッションでお話ししたことは、Volume 2の中で詳細に解説しています。

Page 40: ウェブサイト/ブログを組み合わせたサイトのテーマ化

40

ご清聴ありがとうございました