TopMovableType > MTカスタマイズ

2006年 1月 18日(水)   赤口    今日は何の日?   2005年の今日のエントリ

MTカスタマイズJavaScriptがOFFでもエントリアーカイブの追記部分が読めるように new

やむやむ スタート直後から 導入させていただいてる エントリアーカイブ の 『続きを読む』 なんだけど
このリンクは JavaScript が 有効になってないと 機能しないんですね。
ずっと JavaScript を有効にしてたので、気が付きませんでした。
小粋空間 さん : エントリー・アーカイブの追記文章の折りたたみ(改) にしたがって
JavaScript が OFF の場合には はじめから 追記部分が 表示されるようにしました。
また、『続きを読む』 リンクは 表示されてても JavaScript が OFF状態では 意味がないので
「下記の 『続きを読む』 のリンクは JavaScript が有効な場合に機能します。」 と 説明が入るようにしました。
だけど、試しに JavaScript を OFF にしてみたら、やむやむ あちこちで コマッタことだらけですねぇ。
サイドメニューの折りたたみ もきかないし、がちゃがちゃエントリ もダメだし。。。
なので、ぜひぜひ、JavaScript は ON にして 見ていただきたいですね。

Posted by Caetla at 13:00 | Category : MTカスタマイズ | Comments [6] | Trackbacks [0] | Clip!! | Ranking
Tag : MovableType , カスタマイズ , 追記
この記事はどうでしたか?(お気軽に 記事に点数を付けてみてくださいね♪)
Bad ← 1 2 3 4 5 → Good
評定平均:(2.9) 総合点:(2266) 投票人数:(786)

2006年 1月 12日(木)   赤口    今日は何の日?   2005年の今日のエントリ

MTカスタマイズ月別・年間アーカイブのツリー化 new

ほかのサイドメニューの ツリー化できるところは、ことごとく ツリーにしてた んだけど、
ブログも 足掛け3年、データが増えてきたということで、今まで ツリーに し残してた
月別アーカイブ と 年間アーカイブ (どちらも 右サイドメニュー) も 遅ればせながら ツリーにしました。
ユーザマニュアルのツリー化 に使った generateTreeForTreeStructure を 使いました。

ツリー化する前  ⇒  ツリー化した後

Posted by Caetla at 15:30 | Category : MTカスタマイズ | Comments [6] | Trackbacks [0] | Clip!! | Ranking
Tag : MovableType , カスタマイズ , ツリー化 , サイドメニュー
この記事はどうでしたか?(お気軽に 記事に点数を付けてみてくださいね♪)
Bad ← 1 2 3 4 5 → Good
評定平均:(3.0) 総合点:(2032) 投票人数:(678)

2005年 12月 29日(木)   友引    今日は何の日?   2004年の今日のエントリ

MTカスタマイズ小粋ユーザリストのスクロールバー new

BlogRolling の リンクリスト、我が やむやむでは 小粋ユーザリスト で 使用させていただいてますが
このリストも DrecomRSSBlogPeople の リンクリスト同様 クレジットを スクロールバーの外に追い出す、
というカスタマイズの方法を 小粋空間 さんで紹介してくださってたので、早速 やってみました。
 ⇒ BlogRolling にスクロールバーをつける
小粋ユーザリストは 登録件数も 500件を超えていて スクロールバーをつけないと 縦に 相当長くなっちゃうので
スクロールバーだけは 早くからつけてたんですけど、一番下までスクロールさせないと クレジットを 見ることが
できなかったものが、このカスタマイズで スッキリ!解決しました。

Posted by Caetla at 10:00 | Category : MTカスタマイズ | Comments [6] | Trackbacks [0] | Clip!! | Ranking
Tag : カスタマイズ , BlogRolling , スクロールバー
この記事はどうでしたか?(お気軽に 記事に点数を付けてみてくださいね♪)
Bad ← 1 2 3 4 5 → Good
評定平均:(3.0) 総合点:(2708) 投票人数:(908)

2005年 11月 19日(土)   先負    今日は何の日?   2004年の今日のエントリ

MTカスタマイズコメント投稿者リンクを別窓で開くようにする new

3.2にアップグレードしてから、コメントをくださったかたのお名前をクリックすると
同一窓で そのコメント投稿者さんのサイトが開くようになってしまって、気になってたんだけど
別窓で開くようにするには どのファイルのどこを修正すればいいのかわからなかったので
今までずっとそのままにしてました。どうしても 別窓で開きたいときは リンクを右クリックして
「新しいウィンドウで開く」 にしたり・・・。 が!今日、めでたく 解決しました~♪
参考にさせていただいた (というか、丸々 真似させていただいた) のは
 ⇒ MTカスタマイズ法収集ブログ さん : コメント投稿者のリンクを別ウィンドウで開く方法
です。lib/MT/Template/ContextHandlers.pm が 対象ファイルだったんですね~。

if ($c->id && !$args->{no_redirect}) {
return sprintf(qq(<a title="%s" href="%s%s?__mode=red;id=%d" target="_blank">%s</a>),
$url, $cgi_path, $comment_script, $c->id, $name);
} else {
# In the case of preview, show URL directly without a redirect
return sprintf(qq(<a title="%s" href="%s" target="_blank">%s</a>),
$url, $url, $name);
}

該当箇所を 検索で探して 青い字を追加してね。
どれどれ~?おぉ!ちゃんと別窓で開いてます。これで スッキリしましたぁ♪


なんと!このエントリに 恐れ多くも トラックバックをくださった The blog of H.Fujimoto さんの
コメント投稿者のBlogを別窓で開くプラグイン によりますと、このエントリで できたことを プラグインを使って できるとのことで・・・
プラグインを使うメリットは MT を 今後 アップグレードしたときも ファイルの書き換えをしなくていいってことですね。
また、TypeKeyでログインしてコメントされた場合、アイコンをクリックすると その人のプロフィールにとびますが
これも 別窓で 開かせることができるということなので、うちも プラグインを使用した方法に変えました。
というわけで、壱さんのエントリ に 感謝の トラックバック返しです。(11月20日)


Posted by Caetla at 10:45 | Category : MTカスタマイズ | Comments [8] | Trackbacks [2] | Clip!! | Ranking
Tag : MovableType , カスタマイズ
この記事はどうでしたか?(お気軽に 記事に点数を付けてみてくださいね♪)
Bad ← 1 2 3 4 5 → Good
評定平均:(3.1) 総合点:(3498) 投票人数:(1145)

2005年 11月 3日(木) 文化の日   大安    今日は何の日?   2004年の今日のエントリ

MTカスタマイズ13か月目の憂鬱・・・月別アーカイブの強調表示 new

こんなことになってたなんて・・・ブログ開設から1年経って ウカレテた ら、
13ヶ月目に突入したことで、とんでもないことが起きてました。
右サイドバーの 月別アーカイブ のところ、
ここ で スッキリ表示に変え、さらに ここ では 並び方を昇順にし、
その後も くっつき過ぎて読みにくいので 月名の数字の間隔を
少し あけてみたり・・・と、表示に 気を使ってきたわけなのですが、
なんと!「11」 しか表示してないものだから 2005年の11月も 2004年の11月も
両方 強調表示 されてるではありませんか!!!Σ( ̄□ ̄;)
日付アーカイブでは こうなりました。そこで せっかく 頑張って スッキリ表示にしたんだけど
日付アーカイブ (月別 ・ 日別) でだけ
ノーマルな 「○年○月」 表示に 戻しました。
全くの ノーマルでもつまらないので、ツリー にだけはしましたけど。
あと、日付の強調表示が関係ない エントリアーカイブ や
メインページ、カテゴリアーカイブ などでは
今までどおり スッキリ表示の Monthly Archives に しています。

Posted by Caetla at 09:40 | Category : MTカスタマイズ | Trackbacks [0] | Clip!! | Ranking
Tag : 日付アーカイブ , MonthlyArchives , 強調表示
この記事はどうでしたか?(お気軽に 記事に点数を付けてみてくださいね♪)
Bad ← 1 2 3 4 5 → Good
評定平均:(3.1) 総合点:(1969) 投票人数:(644)

2005年 10月 14日(金)   友引    今日は何の日?   2008年の今日のエントリ 2007年の今日のエントリ 2006年の今日のエントリ

MTカスタマイズエントリ編集に3つ+αの小技 new

エントリを新規に投稿、または編集するときに 便利で楽チンになる技を 今まで あれこれ組み込んできましたが、
その中で 使用頻度が多い 3つのワザを 3.2 にも 呼び戻してみました。
こんな感じになりました。
3つとも /tmpl/cms/edit_entry.tmpl に ワザを仕込みます。

1.文中のリンクを 常に別窓で開くようにする (元ネタ : 編集を楽にする技ふたつ
編集画面にデフォルトで付いてる 「リンクを挿入」 ボタンを使ったとき、自動的に target=_blank と入ります。
今までは mt.js に 記述をプラスしてましたが、3.2 から新しくできたディレクトリ mt-static の中にある mt.js に
記述を追加してみたところ、機能しませんでした。そこで /tmpl/cms/edit_entry.tmpl に 直接 ↓ を追加。

function insertLink (e, isMail) {
if (!canFormat) return;
var str = getSelected(e);
var link = '';
if (!isMail) {
if (str.match(/^https?:/)) {
link = str;
} else if (str.match(/^(\w+\.)+\w{2,5}\/?/)) {
link = 'http://' + str;
} else if (str.match(/ /)) {
link = 'http://';
} else {
link = 'http://' + str;
}
} else {
if (str.match(/@/)) {
link = str;
}
}
var my_link = prompt(isMail ? 'Enter email address:' : 'Enter URL:', link);
if (my_link != null) {
if (str == '') str = my_link;
if (isMail) my_link = 'mailto:' + my_link;
setSelection(e, '<a href="' + my_link + '" target=_blank>' + str + '</a>');
}
return false;
}


2.デコードボタンを付ける (元ネタ : これで完成!エントリ編集便利ボタン
↑ 画像で B (太字) ボタンの 左横にあるのが それです。「>」 を &gt; にしたり、元に戻したりするボタンです。
これは、今日のような カスタマイズの覚えを記事にするときに 大活躍します。
以前は 欲張って こんな にたくさん 便利ボタンを 付けてましたが、中にはあまり使わないものもあったので、
今回は 一番よく使うのに デフォルトで付いてない デコードボタンだけを 増やしました。
 * 10月17日 「文字色」 ・ 「文字の背景色」 ・ 「文字の大きさ」 を指定できるボタンも増やしました。「追記」 を見てね。
/tmpl/cms/edit_entry.tmpl の <script> ~ </script> に
function replaceEntity(str) { // 置換処理
str = str.split("&").join("&amp;"); // & から変換すること
str = str.split("<").join("&lt;");
str = str.split(">").join("&gt;");
str = str.split('"').join("&quot;");
return(str);
}
function changeEntity(obj) {
if (document.selection) { // WinIE
obj.focus();
var str = document.selection.createRange().text;
if (str) {
document.selection.createRange().text = replaceEntity(str);
} else if (obj.value && confirm('テキストエリア内の「&,<,>,"」を実体参照化します。\n\nよろしいですか?')) { // 選択されていないとき
obj.value = replaceEntity(obj.value);
}
} else if ( (obj.selectionEnd - obj.selectionStart) > 0 ) { // Mozilla
var bgnPos = obj.selectionStart;
var endPos = obj.selectionEnd;
var bfrStr = obj.value.substring(0, bgnPos);
var fcsStr = replaceEntity(obj.value.substring(bgnPos, endPos));
var difLen = fcsStr.length - (endPos - bgnPos);
var aftStr = obj.value.substring(endPos, obj.value.length);
obj.value = Array(bfrStr,fcsStr,aftStr).join('');
obj.setSelectionRange(bgnPos,endPos + difLen); // 選択し直し
} else if (obj.value) { // Others (テキストエリア内全てが対象)
if (confirm('テキストエリア内の「&,<,>,"」を実体参照化します。\n\nよろしいですか?')) {
obj.value = replaceEntity(obj.value);
}
}
return;
}
function changeTag(str) { // 置換処理
str = str.split('&lt;').join("<");
str = str.split('&gt;').join(">");
str = str.split('&quot;').join('"');
str = str.split('&amp;').join("&"); // & は最後に変換
return(str);
}
function reverseEntity(obj) {
if (document.selection) { // WinIE
obj.focus();
var str = document.selection.createRange().text;
if (str) {
document.selection.createRange().text = changeTag(str);
} else if (obj.value && confirm('テキストエリア内の実体参照文字を「&,<,>,"」に変換します。\n\nよろしいですか?')) { // 選択されていないとき
obj.value = changeTag(obj.value);
}
} else if ( (obj.selectionEnd - obj.selectionStart) > 0 ) { // Mozilla
var bgnPos = obj.selectionStart;
var endPos = obj.selectionEnd;
var bfrStr = obj.value.substring(0, bgnPos);
var fcsStr = changeTag(obj.value.substring(bgnPos, endPos));
var difLen = fcsStr.length - (endPos - bgnPos);
var aftStr = obj.value.substring(endPos, obj.value.length);
obj.value = Array(bfrStr,fcsStr,aftStr).join('');
obj.setSelectionRange(bgnPos,endPos + difLen); // 選択し直し
} else if (obj.value) { // Others (テキストエリア内全てが対象)
if (confirm('テキストエリア内の実体参照文字を「&,<,>,"」に変換します。\n\nよろしいですか?')) {
obj.value = changeTag(obj.value);
}
}
return;
}

を追加、さらに ボタンの並びに エントリーの内容 (body) 用には
write('<a href="javascript:changeEntity(document.entry_form.text);"><img src="<TMPL_VAR NAME=STATIC_URI>images/jittai_1.gif" alt="<MT_TRANS phrase="jittai_1">" width="40" height="16" border="0" /></a>');
write('<a href="javascript:reverseEntity(document.entry_form.text);"><img src="<TMPL_VAR NAME=STATIC_URI>images/jittai_2.gif" alt="<MT_TRANS phrase="jittai_2">" width="40" height="16" border="0" /></a>');

追記 (more) 用には
write('<a href="javascript:changeEntity(document.entry_form.text_more);"><img src="<TMPL_VAR NAME=STATIC_URI>images/jittai_1.gif" alt="<MT_TRANS phrase="jittai_1">" width="40" height="16" border="0" /></a>');
write('<a href="javascript:reverseEntity(document.entry_form.text_more);"><img src="<TMPL_VAR NAME=STATIC_URI>images/jittai_2.gif" alt="<MT_TRANS phrase="jittai_2">" width="40" height="16" border="0" /></a>');

と 追加します。ボタンの画像は ご自分で用意されるか、よろしければ ここ のを使ってください。
(画像は mt-static/images に アップします。)

3.エントリに絵文字を使えるようにする (元ネタ : コメントとエントリ投稿用絵文字パワーアップ
これは、元ネタ を そのまま 3.2 でも使えました。ただ 今回は 画像の名前を日本語にしてると文字化けしたので
英数字だけ使いました。また、少し 絵文字の数を減らしました。Wink

これで 今までに より近い便利さが 取り戻せました。
今後は 不便だな~、と思うところから 徐々に 以前の状態に戻していこうと思っています。

Posted by Caetla at 12:00 | Category : MTカスタマイズ | Comments [8] | Trackbacks [11] | Clip!! | Ranking
Tag : MovableType , カスタマイズ , 別窓 , デコードボタン , 絵文字
この記事はどうでしたか?(お気軽に 記事に点数を付けてみてくださいね♪)
Bad ← 1 2 3 4 5 → Good
評定平均:(3.0) 総合点:(2920) 投票人数:(980)

2005年 9月 27日(火)   先勝    今日は何の日?   

MTカスタマイズFirefoxで長いURLなんかを折り返してくれるJavaScript new

前から気になってたけど、たいした理由もなく後回しにしてた (見て見ぬふりをしてた) ことを
今日 なぜか やる気が起きたので、やっつけちゃいました。それは、Firefox で
長いURL や 連続した半角文字列を 折り返してくれない バグに 立ち向かうことでした。
どういう現象かというと・・・
2005y09m27d_151829890.jpg
こ~んな感じ。文字列が Block を突き破って、はみ出してます。これ、IE では起きない現象なんですよね。
小粋空間 さん : Firefox・Netscapeで連続した半角文字を折り返す を参考に
「通常のJavaScritpと同様に設定するカスタマイズ」 のほうで やってみました。
outsider reflex さん : Firefoxで長いURIを折り返す から、url_breaker_plus.user.js をダウンロード、
ローカルサイトパスに アップロードします。
そして、スクリプトを適用したいテンプレートの 一番最後 </html> の直前あたりに

<script src="<$MTBlogURL$>url_breaker_plus.user.js" type="text/javascript"></script>

こんなふうに記述して、再構築するだけ。簡単なことなのにね、もっと早く対処すればよかったです。
ほら!もう、文字列が Block を突き破ったりしてません。↓
2005y09m27d_152043578.jpg

なお、このままでは IE で JavaScriptエラーが出てしまうので、スクリプトが Mozilla系ブラウザでのみ
動作するように url_breaker_plus.user.js に 青い字の 2行を 追加するといいそうです。
(function () {
if(navigator.appName == 'Netscape'){
     :
   (中略)
     :
}
})();

これでバッチリです。ヽ(*^。^*)ノ

Posted by Caetla at 16:30 | Category : MTカスタマイズ | Comments [2] | Trackbacks [5] | Clip!! | Ranking
Tag : MovableType , Firefox , カスタマイズ , JavaScript
この記事はどうでしたか?(お気軽に 記事に点数を付けてみてくださいね♪)
Bad ← 1 2 3 4 5 → Good
評定平均:(3.0) 総合点:(2490) 投票人数:(842)

2005年 9月 26日(月)   赤口    今日は何の日?   

MTカスタマイズ各エントリのTagを表示 new

日参サイトにさせていただいてる 小粋空間 さんに 最新記事をチェックさせてもらいに行ったら
各エントリに 設定されてる キーワード (Tag) が 表示されてることに気付きました。
(んと・・・今朝 始めて気付いたわけじゃありませんヨ、少し前にちゃんと気付くには気付いてました。)
これは、TagCloud を応用したもので、うちもせっかく TagCloud のページ を作ったので、
真似して 各エントリに Tag を表示させることにしました。
それぞれの Tag をクリックすると その Tag が設定されたエントリの一覧に ジャンプします。
(これも、小粋空間 さんの真似です。)
やむやむ では 各エントリ本文の下 posted の欄に 載せています。

Tag : <MTEntryTags glue=", ">
<a href="<$MTCGIPath$>mt-xsearch.cgi?blog_id=<$MTBlogID$>&search_key=Tagwire&search=<$MTTag encode_url="1"$>" target="_blank" title="[<$MTTag$>] のタグ一覧へ "><$MTTag$></a>
</MTEntryTags>

こんな感じにしたら うまくできたようなんだけど・・・ これでいいんでしょうか?yujiroさーん!

Posted by Caetla at 05:30 | Category : MTカスタマイズ | Comments [11] | Trackbacks [2] | Clip!! | Ranking
Tag : MovableType , TagCloud , Tag
この記事はどうでしたか?(お気軽に 記事に点数を付けてみてくださいね♪)
Bad ← 1 2 3 4 5 → Good
評定平均:(2.9) 総合点:(1975) 投票人数:(674)