Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp...

36
Tumblrのカスタマイズで作るWebサイト ~苦戦したポイントTOP5 ~ みかみ@skyguild

Transcript of Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp...

Page 1: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

Tumblrのカスタマイズで作るWebサイト~苦戦したポイントTOP5~

みかみ@skyguild

Page 2: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

自己紹介

三上絵利菜

・日本電子専門学校 Webデザイン科 卒業・Web制作会社でフロントエンドエンジニア兼ディレクター・オープンソースプロジェクトSetucoCMSのリーダー

これまで

@skyguildフリーランスのWebエンジニア NEW!

Page 3: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

今日お話すること

Page 4: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

 TumblrをCMSとして使って

簡単にWebサイトを作ってみよう。

Page 5: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

Tumblr?ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。要するにTwitterっぽい機能がついたブログ。

CMS?コンテンツマネージメントシステム。ブログやWebサイトを簡単に構築・運用するためのシステム。WordPress、MovableTypeなどが有名。

Page 6: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

ブログとソーシャル機能を兼ね揃えるTumblrの

CMS = Webサイト運用 としての機能

を活用してみます。

Page 7: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

Tumblrで作ったサイト

Page 8: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

[g]ift ギフト

・金沢にあるギフトショップ

・北陸の魅力発掘と発信

・Instagramから投稿 FacebookとTumblrにポストされる

↓SNSに投稿する感覚で、Webサイトの更新ができちゃう!素敵!

http://www.gift-hokuriku.jp/

Page 9: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

 TumblrをCMSとして使って

簡単にWebサイトを作ってみよう。

Page 10: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

 TumblrをCMSとして使って

↓運用をする人にとって簡単に

↓(簡単に構築できるとは言っていない)

簡単にWebサイトを作ってみよう。

Page 11: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

Tumblrカスタマイズの基本

Page 12: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

LIGブログ

・LIGブログさん、 いつもお世話になってます!・Tumblrのカスタマイズの基礎をすごく わかりやすく解説されている。

・最近、テーマ作成の連載もスタート。

http://liginc.co.jp/web/service/other-service/110898

Tumblr でもここまでデザインできる!オリジナルカスタマイズの実例解説

Page 13: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

仕様要点(2014年9月時点)

・ 認証フォーム付の非公開設定ができる。・アップロードは1ファイル5MB&1日15MBまでという制限付き。 ファイルを置く別サーバを用意したほうがよいでしょう。・Tumblr独自のテンプレートタグを使用してカスタマイズ。・テンプレートHTMLは1ソース。 テンプレートタグでトップ・詳細等で出力するタグを出し分け。・Tumblrには投稿タイプという概念があり、タイプ別の実装が必要。

Page 14: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

今回は基本のカスタマイズの話

ではなく、

苦労したポイントTOP5と

解決方法について紹介します。

※基本はLIGブログさんを参照!

Page 15: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

5位:テンプレートタグが少ない

Page 16: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

テンプレートタグが少ない

・ Tags of Tumblrhttp://tagblr.tumblr.com/03-01

・ データを”表示する” ための機能がほとんど。 データを”加工する” 機能はあまりない。

・変数や条件分岐(if文)にあたるものがほぼない。 ※ページ判別や検索関連の分岐はある。

Page 17: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

こんなことがしたい・・・

・ 最近の記事にNewマークをつけたい。

⇒ MTだと変数と if文で実現可能。

・タイトルと説明文を特定の文字数で省

略したい。

⇒ WordPressならPHP関数で、

  MTではモディファイアで。

Page 18: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

解決「JavaScriptでなんとかしましょう」

■Newアイコンテンプレート側で出力してる日付を取得。現在の日付と比較して14日以内の場合にアイコンを表示。

■文字数で省略substrメソッドを使う。

Page 19: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

4位:固定ページを判別できない

Page 20: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

固定ページを判別できない

・Tumblrには記事とは別に固定ページを作成可能。

・しかし、

 {block:PermalinkPage}

 こういうタグで記事詳細の時のみ出し分けられる

 タグがあるが、固定ページも記事詳細の判定に

 含まれるため、判別できない。

Page 21: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

こんなことがしたい・・・

・ 固定ページではいらない要素を出し分けたい。

・固定ページの時だけ、bodyタグに特定のclassをいれたい。

・ページごとに、bodyタグに特定のclassをいれたい。

⇒ CSSをページ別に整理したくて。。。

Page 22: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

解決「JavaScriptでなんとかしましょう」

■HTML側固定ページでタグを書ける箇所のどこかに、「.pages」という固定ページ共有classと、idでページ別の識別名をつける。

■JS側「.pages」があればという条件分岐で、いらない要素をremoveし、必要なclassと idを追加する。

Page 23: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

3位:フォーム機能がない

Page 24: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

こんなことがしたい・・・

・お問い合わせフォームを作りたい。ただそれだけが私の望みです。・Tumblr自体はフォーム機能を提供してない。・Googleフォームを使ったり、フリーで提供されていてTumblrにも組み込みできるサービスなどはある。けど、もう少し自由度高くカスタマイズしたい。。。

Page 25: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

解決「JavaScriptでなんとかしましょう」

正確にはJS + PHPで実現した。

PHPで受け取ったデータをバリデートしたり、

メールで管理者に送信するプログラムを作成。

JSからAjaxでフォームのデータを送信。

(PHPだけで作って、iframeにしてもよかったんじゃないか・・・?)

Page 26: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

2位:「カテゴリ」の概念がない

Page 27: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

「カテゴリ」の概念がない

・ お分かりいただけたろうか?

Page 28: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

こんなことがしたい・・・

カテゴリ、サブカテゴリ、県名をつけたい。

カテゴリ:アイテム , 日誌 , お知らせ など

サブカテゴリ:アイテムの小分類

 使うもの , 食べるもの , その他 など

県名:石川県 ,福井県 ,富山県

Page 29: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

解決「JavaScriptでなんとかしましょう」

■HTML側カテゴリもサブカテゴリもとにかく全部タグとして登録して、全部出力。

■JS側カテゴリ、サブカテゴリ、県名の配列を用意しておく。(増えない前提)HTMLからタグ一覧を取得して、配列と比較してあるべき場所へ割り振っていく。(エグい)

Page 30: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

1位:「タイトル&サムネイル」を組み合わせられる機能がない

Page 31: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

「タイトル&サムネイル」を組み合わせられる機能がない

・ テキスト投稿型には「サムネイル」を登録できない。

・画像投稿型には「記事タイトル」を登録できない。

Page 32: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

こんなことがしたい・・・

つまり、、、

こういう構成にできない!!

したい!!!

さあ、どう解決するか。

わかりますよね?

Page 33: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

解決「JavaScriptでなんとかしましょう」

■テキスト投稿型記事本文を出力して、「最初に登場する画像」をサムネイルとして挿入。

両タイプに対応するようにテンプレートタグで両方出力した上で、JavaScriptでリプレイスしていく。

■画像投稿型記事本文を出力して、「本文の最初の一行」をタイトルとして挿入。

Page 34: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

まとめ

Page 35: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

ちょっと無理くりですが、

JavaScript を使えば色々なんとかなる。

運用ルールで解決できればそれもOK

Page 36: Tumblrのカスタマイズで作るWebサイト〜苦戦したポイントTOP5〜@Creators MeetUp #27

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