狠狠撸
Submit Search
Mtcafe tokyo 2013_spring_okuwaki
?
6 likes
?
5,770 views
Tomohiro Okuwaki
Follow
Movable Type の実践的な管理画面のカスタマイズ?検索カスタマイズ
Read less
Read more
1 of 82
Download now
More Related Content
Mtcafe tokyo 2013_spring_okuwaki
1.
Movable Typeの実践的な 管理画面カスタマイズ 検索カスタマイズ bit part
奥脇知宏(蔼迟颈苍测产别补苍蝉)
2.
アジェンダ ?MTAppjQueryを使った管理画面のカスタマイズ ?FlexibleSearch.jsを使った高速検索
3.
自己紹介 ?奥脇知宏 おくわきともひろ ?bit part mersy &
tinybeans ?かたつむりくんのWWW
4.
自己紹介 ?PowerCMS Partner SOHO ?ProNet SOHO ?Movable
Type 5.1 プロの現場の仕事術 (毎日コミュニケーションズ)
5.
Movable Typeの 管理画面のカスタマイズ
6.
?alt-tmplディレクトリにカスタマイズしたテンプレート を入れると、そのテンプレートが優先的に適用される MTの管理画面のテンプレート構造の理解が必要 MTの管理画面のカスタマイズ方法(1)
7.
?プラグインでカスタマイズ ?3つのコールバック用フックポイント ?template_source(ソースを書換え) ?template_param(DOMのような操作) ?template_output(出力されたHTMLの書換え) MTの管理画面のカスタマイズ方法(2)
8.
管理画面のカスタマイズに関する情報 ? 『Movable Type
5 プロフェッショナルガイド』 荒木勇次郎(小粋空間) ? MTの管理画面カスタマイズの基本 - The blog of H.Fujimoto http://www.h-fj.com/blog/archives/2009/11/09-103804.php ? Movable Type管理画面の「壊れにくい」カスタマ イズのために。 - Junnama Online http://junnama.alfasado.net/online/2008/06/mt_6.html
9.
しかし、いずれもちょっと 敷居が高い… そこで
10.
MTAppjQuery
11.
MTAppjQueryとは ?読み方(えむてぃーあっぷじぇぃくえりー) ?Movable Type 5
の管理画面を jQuery でカスタマ イズするためのプラグイン ?Perl、YAML が不要、alt-tmpl より手軽 ?日頃 MT のテンプレートやフロントエンドをやって いるWebデザイナー?コーダーのためのプラグイン
12.
インストール tinybeans/mt-plugin-MTAppjQuery · GitHub https://github.com/tinybeans/mt-plugin-MTAppjQuery
13.
インストール サーバーにアップロード mt-static/plugins の中の「_MTAppjQuery」は、 頭のアンダースコアを削除して「MTAppjQuery」にする
14.
プラグインをアップデートする場合は編集したサーバ ー上のファイルを上書きしないようにしましょう! 注意
15.
使い方
16.
?サーバーにアップロードした mt-static/plugins/MTAppjQuery/user-?les の中のファイルを編集してカスタマイズ 使い方(1)
17.
v1.0.0 から mt-static/plugins/MTAppjQuery
内の ディレクトリ構造が変更になりました m(_ _)m ↓ 編集予定の user.js 等を user-?les ディレクトリ にまとめた ↓ プラグインのバージョンアップが心なしか 楽になるはず… 注意
18.
?インデックステンプレートで user.js、user.css を 作成してカスタマイズ
[v1.0.0 new] 使い方(2)
19.
DEMO 1 user.js と
user.css のインストール
20.
?プラグインの設定で user.js の
URL を指定する [v1.0.0 new] 使い方(3) ?任意のウェブサイトやブログを自由にグルーピングし て共通のカスタマイズを適用できる
21.
?その他プラグインの設定で管理画面の色々な場所に コードを埋め込める [v1.0.0 new] ?埋め込まれる場所はソースコードで確認できる ?もちろん
JS や CSS に限らず HTML とかも可能 ?DEMO 2:ページの最上部にブックマーク(リンク 集)的なものを入れる 使い方(4)
22.
机能ダイジェスト の前に大事なこと
23.
?mtappVars 管理画面のカスタマイズに必要な情報が入った変数 ?$.MTAppDebug() mtappVars の値をソースコードを見ずに確認できる ?開発中は $.MTAppDebug()
を適用しておくと便利 mtappVars と $.MTAppDebug()
24.
DEMO 3 mtappVars と
$.MTAppDebug()
25.
机能ダイジェスト
26.
$.MTAppCustomize() ?ブログ記事?ウェブページ編集画面をカスタマイズ ?フィールドのラベルの変更 ?ポップアップヒントの設定 ?えんぴつアイコンのクリックでフィールドを表示? 非表示 ?「表示オプション」に依存しない強制表示
27.
$.MTAppCustomize() 旧「概要」 旧「キーワード」
28.
$.MTAppMultiCheckbox() ?テキスト入力フォームを複数選択チェックボックスに ?ちょっとデザインを変えてみたり
29.
$.MTAppFieldSort() ?フィールドを並べ替える(カスタムフィールド対応)
30.
DEMO 4 $.MTAppCustomize() $.MTAppMultiCheckbox() $.MTAppFieldSort() この3つをまとめて実行してみます。
31.
$.MTAppDialogMsg() ?ダイアログ?メッセージを表示する
32.
$(foo).MTAppInlineEdit() ?保存された値があると「編集」ボタンが表示される
33.
$(foo).MTAppTooltip() ?フィールド全体ではなくピンポイントでヒントを表示させる
34.
$.MTAppNoScrollRightSidebar() ?右サイドバーウィジェットをスクロールに追随させる
35.
$.MTAppInCats() ?カテゴリによって画面を変えることができる。
36.
DEMO 5 ここまでカスタマイズを商品カテゴリ(ID:2) にだけ適用したい。
37.
あまりドキュメント化され てない機能 と v1.0.0 に追加された機能 ダイジェスト
38.
$.MTAppBatchEditCategory() ?ブログ記事?ウェブページ一括編集画面で、カテゴ リを一括編集する
39.
$.MTAppSortableBatchEdit() ?ブログ記事?ウェブページ一括編集画面で、ドラッ グアンドドロップで並び替えて日付を自動変更する ?日付を使ってブログ記事を並べ替える疑似的ソート 機能 ?DEMO 6に行く前に
40.
特定のページだけにカスタマイズを 適用させる方法 ?$.MTAppBatchEditCategory() や $.MTAppSortableBatchEdit()はブログ記事の一括 編集画面だけで使えればいい ?今までのバージョンは if (mtappVars.screen_id
== 'batch-edit-entry' && mtappVars.scope_type == 'blog' && mtappVars.type == 'entry') { ... } こんな条件分岐を mtappVars を頼りに書いてた…
41.
「user.js を編集(追記)」メニュー [v1.0.0] ?user.js の
<mt:UserFileAppendText> 部分にその ページを限定するための if 文が挿入される
42.
DEMO 6 ブログ記事の一括編集画面で 「user.js を編集(追記)」を押してみる
43.
DEMO 7 $.MTAppSortableBatchEdit() で トップページの並び順を変える
44.
$.MTApp1clickRebuild() ?テンプレート一覧での再構築を効率よく ?$.MTAppDebug() と同様に開発中は有効にしておくと良い
45.
DEMO 8 $.MTApp1clickRebuild()
46.
$(foo).MTAppRemoveVal() ?入力した値を簡単に消す
47.
$(foo).MTAppDateAssist() ?今日、明日、明後日の年月日を一発入力
48.
$(foo).MTAppSuggest() ?タグ入力補完のような入力支援
49.
$(foo).MTAppDynamicSelect() ?値を増やせるドロップダウンリスト
50.
DEMO 9 $(foo).MTAppRemoveVal() $(foo).MTAppDateAssist() $(foo).MTAppSuggest() $(foo).MTAppDynamicSelect()
51.
$(foo).MTAppFieldSplit() ?1つのフィールドで複数の値をカンマ区切りで入力
52.
$(foo).MTAppNbspGUI() ?「1項目ごとに改行してください」をGUIで
53.
$.MTAppTabs() ?複数のフィールドをタブでまとめる
54.
DEMO 10 $(foo).MTAppFieldSplit() $(foo).MTAppNbspGUI() $.MTAppTabs()
55.
$(foo).MTAppFancyListing() ?iframeで指定したファイルを読み込む ?jQueryプラグインの Fancybox が必要 http://fancybox.net/ ?またあらかじめ読み込む一覧をインデックステンプ レートで作成しておく必要がある
56.
$(foo).MTAppFancyListing()
57.
DEMO 11 $(foo).MTAppFancyListing() で関連記事のIDをテキスト入力フォームに入れる
58.
$.MTAppGetLabel() $.MTAppSetLabel() ?ラベルを変更するためだけに $.MTAppCustomize() を使うのはちょっと面倒 ?ラベル名の変更は1箇所で書きたい
59.
$.MTAppGetLabel() $.MTAppSetLabel() ?$.MTAppSetLabel([ ["セレクタ", "旧テキスト", "新テキスト"], ["セレクタ",
"旧テキスト", "新テキスト"] ]); ?え?余計面倒じゃん…
60.
$.MTAppGetLabel() $.MTAppSetLabel() ブラウザのJavaScirptコンソールに jQuery.MTAppGetLabel( label ); と入力して実行すればOK!
61.
DEMO 12 $.MTAppGetLabel() $.MTAppSetLabel()
62.
その他紹介しきれない 机能ダイジェスト
63.
jquery_ready.js ?jquery.js の直後に読み込まれる ?例えば、sort-enable クラスを除去したりする など、デフォルトのライブラリを適用させない ようにするのに便利
64.
その他の機能 ?$.MTAppTabSpace() - テキストエリアでタブキーを押してもフィー ルドは移動せずに、半角スペースが入力され る。 ?$(foo).MTAppNumChecker() - 全角数字を半角に変換、半角数字以外の文 字を削除、最小値?最大値の設定など
65.
その他の機能 ?$(foo).MTAppTaxAssist() - 税込み、税抜きを簡単に入力 ?$.MTAppKeyboardShortcut() - ブログ記事一覧画面でGmailのようなキーボ ードショートカットで前後に移動
66.
その他の機能 ?$.MTAppMsg() - MTオリジナルの「保存しました」のような メッセージを表示 ?$(foo).MTAppshowHint() - 要素にピンポイントでポップアップヒントを 表示
67.
その他の機能 ?$(foo).notClasses() - 複数のclassがない場合はtrue ?$(foo).hasClasses() - 複数のclassがない場合はtrue ?$(foo).insertAtCaret() -
テキストエリアのカーソルの位置に文字列を 入力
68.
その他の機能 ?$(foo).insertListingColum() - 一覧画面の項目を増やす ?$(foo).noScroll() - 要素をスクロールさせない ?$.toInt() -
整数にする
69.
その他の機能 ?$.zeroPad() - ゼロで埋める ?$.digit(num, space) -
1桁数字を 01 にしたり 半角スペース1 にし たりする
70.
その他の機能 ?$.fn.MTAppCheckCategoryCount() - 指定した数のカテゴリが選択されているか チェックする ?$.MTAppDuplicate() - ブログ記事を複製する
71.
MTAppjQuery v1.0.0 ?まもなくリリース ?mersy と一緒にせっせとドキュメントを書いてます…
72.
MTAppjQuery はここまで
73.
高速JavaScript検索 ?exibleSearch.js
74.
?exibleSearch.js とは ?あらかじめ作成しておいた JSON
ファイルを 検索することにより、柔軟で高速な Ajax 検索 を実現する jQuery プラグイン ?ページ送りや検索項目の絞り込みなどにも対応 ?ブラウザの「戻る」「進む」の動作にも対応 ? http://www.tinybeans.net/blog/2010/12/22-230131.html
75.
ダウンロード ?tinybeans/jq-plugin-?exibleSearch · GitHub https://github.com/tinybeans/jq-plugin-?exibleSearch
76.
ファイルの読み込み <link rel="stylesheet" href="/?exibleSearch/?exibleSearch.css" type="text/css"
/> <script type="text/javascript" src=/slideshow/mtcafe-tokyo-2013springokuwaki/19471953/"http:/ajax.googleapis.com/ ajax/libs/jquery/1.8/jquery.min.js"></script> <script type="text/javascript" src="/?exibleSearch/ hashchange.js"></script> <script type="text/javascript" src="/?exibleSearch/ ?exibleSearch.min.js"></script>
77.
検索用 JSON を作る ??exibleSearch.js
で読み込む JSON を Movable Type で出力する http://www.tinybeans.net/blog/2010/12/22-230131.html
78.
検索用 JSON を作る {"item":[ <mt:entries
lastn="0"> <mt:setvarBlock name="item"><mt:entryTitle></mt:setvarBlock> <mt:setvarBlock name="item{url}"><mt:entryPermalink></mt:setvarBlock> <mt:setvarBlock name="item{tag}">,<mt:entryTags glue=","><mt:tagName></mt:entryTags>,</ mt:setvarBlock> <mt:setvarBlock name="item{keyword}">,<mt:entryKeywords>,</mt:setvarBlock> <mt:setvarBlock name="item{body}"><mt:entryBody remove_html="1" regex_replace="/n?t/g",""></ mt:setvarBlock> <mt:setvarBlock name="item{more}"><mt:entryMore remove_html="1" regex_replace="/n?t/g",""></ mt:setvarBlock> <mt:var name="item" to_json="1"><mt:unless __last__>,</mt:unless __last__> </mt:entries> ]}
79.
検索ボックスの設置 ?divだけ用意すれば ?exibleSearch で検索ボッ クスと検索ボタンを書き出してくれる ?すでにある検索ボックスを使ってもOK ?今回は <div
id= ?exibleSearch-container ></div>
80.
?exibleSearch.js を実行 <div id=
?exibleSearch-container ></div> <script type="text/javascript"> (function($){ $("#?exibleSearch-container").?exibleSearch({ resultTargetId: "index-main", loadingImgPath: "/blog02/?exibleSearch/loading.gif", searchDataPath: "/blog02/search_data.js" }); })(jQuery); </script>
81.
selectFields オプション re?neFields オプション ?
selectFields : 検索するフィールドを限定する ? re?neFields : 複数のAND条件を組み合わせる ? re?neFields : { "key1":"key1の表示名", "key2":"key2の表示名", "key3":"key3の表示名" } => <option value= key1 > key1の表示名 </option>
82.
ご静聴ありがとう ございました。 Update me, everyday!!
Download