mtでのプレビューサイト制作

15
MTでのプレビューサイト制作 2013.08.03 Kei Yoshida

Upload: kei-yoshida

Post on 24-Jun-2015

1.348 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MTでのプレビューサイト制作

MTでのプレビューサイト制作 2013.08.03 Kei Yoshida

Page 2: MTでのプレビューサイト制作

MTで確認用にプレビューサイトを 構築したときのノウハウの話

ブログ記事を公開前にクライアントや上司などが確認できるように プレビューサイトを構築したい

Page 3: MTでのプレビューサイト制作

プレビューしたいページをベーシック認証を かけたプレビュー用ディレクトリに出力する

プレビュー確認する方法はいろいろあると思いますが… (プラグインを使ったりPowerCMSを導入したり、カテゴリを利用したり)

Page 4: MTでのプレビューサイト制作

プレビューしたいページをベーシック認証を かけたプレビュー用ディレクトリのみに出力する

http://testtest.com/

http://testtest.com/preview/

公開サイト

プレビュー用ディレクトリ

※http://preview.testtest.com/などサブドメインをきれば、 階層を公開サイトと同じにできる

Page 5: MTでのプレビューサイト制作

プレビュー確認するかどうかにカスタムフィールドを利用 ([CFpreviewCheck]という名前のチェックボックスを作成)

Page 6: MTでのプレビューサイト制作

プレビュー確認用カスタムフィールドにチェックが 入っている場合は、プレビュー用ディレクトリに出力する

(カスタムフィールドにチェックが入っている場合は、公開サイトに出力しない)

Page 7: MTでのプレビューサイト制作

各テンプレートはプレビュー用テンプレートと公開用テンプレートの二つ作る

http://testtest.com/

http://testtest.com/preview/

公開用テンプレートは↑に確認用カスタムフィールドにチェックが入っている記事を除いて出力

プレビュー用テンプレートは↑に全ての記事を出力

やりたいこと…

Page 8: MTでのプレビューサイト制作

メインページテンプレート

<mt:Entries field:CFpreviewCheck="0"> ~ </mt:Entries>

公開用

<mt:Entries> ~ </mt:Entries>

プレビュー用

Page 9: MTでのプレビューサイト制作

ブログ記事テンプレート

<mt:Unless tag="CFpreviewCheck">%y/%m/%-f</mt:Unless>

公開用テンプレートのアーカイブマッピング

preview/%y/%m/%-f

プレビュー用テンプレートのアーカイブマッピング

※ファイル名を決めるアーカイブマッピングにMTタグで条件分岐を行い、チェックが入った記事は出力しない

Page 10: MTでのプレビューサイト制作

躓いたところ…

Page 11: MTでのプレビューサイト制作

「次の記事」、「前の記事」の出力

Page 12: MTでのプレビューサイト制作

MTEntryNext、MTEntryPreviousを使う場合カスタムフィールドでの条件判定が難しい

Page 13: MTでのプレビューサイト制作

結局…

MTでJSON出力→ PHPでJSONから「次の記事」、「前の記事」を取得

<mt:Unless name="removenl" strip_linefeeds="1" strip=" " > {"item":[ <mt:Entries field:CFpreviewCheck="0"> <mt:SetvarBlock name="item{entryID}"><mt:EntryID /></mt:SetvarBlock> <mt:SetvarBlock name="item{title}"><mt:EntryTitle encode_html="1"></mt:SetvarBlock> <mt:SetvarBlock name="item{url}"><mt:entryPermalink></mt:SetvarBlock> <mt:SetvarBlock name="item{entryDate}"><$mt:EntryDate format="%Y年%b月%e日"$> </mt:SetvarBlock> <mt:SetvarBlock name="item{author}"><$mt:AuthorID$></mt:SetvarBlock> <mt:SetvarBlock name="item{tag}"><mt:EntryTags glue=","><mt:tagName encode_html="1"></mt:entryTags></mt:SetvarBlock> <mt:var name="item" to_json="1"><mt:unless __last__>,</mt:unless __last__> </mt:Entries> ]} </mt:Unless>

MTでJSON作成

Page 14: MTでのプレビューサイト制作

MTの公開プロフィールにデフォルトで 「公開」、「下書き」の他に「承認待ち」とか欲しい… プラグインを作ってくださっている方もいますが、 「承認待ち」だけを別ディレクトリへみたいなものは 難しかったので…

感じたこと…

Page 15: MTでのプレビューサイト制作

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