2006年 1月 18日(水) 赤口 今日は何の日? 2005年の今日のエントリ
JavaScriptがOFFでもエントリアーカイブの追記部分が読めるように
やむやむ スタート直後から 導入させていただいてる エントリアーカイブ の 『続きを読む』 なんだけど
このリンクは JavaScript が 有効になってないと 機能しないんですね。
ずっと JavaScript を有効にしてたので、気が付きませんでした。
小粋空間 さん : エントリー・アーカイブの追記文章の折りたたみ(改) にしたがって
JavaScript が OFF の場合には はじめから 追記部分が 表示されるようにしました。
また、『続きを読む』 リンクは 表示されてても JavaScript が OFF状態では 意味がないので
「下記の 『続きを読む』 のリンクは JavaScript が有効な場合に機能します。」 と 説明が入るようにしました。
だけど、試しに JavaScript を OFF にしてみたら、やむやむ あちこちで コマッタことだらけですねぇ。
サイドメニューの折りたたみ もきかないし、がちゃがちゃエントリ もダメだし。。。
なので、ぜひぜひ、JavaScript は ON にして 見ていただきたいですね。
2006年 1月 12日(木) 赤口 今日は何の日? 2005年の今日のエントリ
月別・年間アーカイブのツリー化
ほかのサイドメニューの ツリー化できるところは、ことごとく ツリーにしてた んだけど、
ブログも 足掛け3年、データが増えてきたということで、今まで ツリーに し残してた
月別アーカイブ と 年間アーカイブ (どちらも 右サイドメニュー) も 遅ればせながら ツリーにしました。
ユーザマニュアルのツリー化 に使った generateTreeForTreeStructure を 使いました。
2005年 12月 29日(木) 友引 今日は何の日? 2004年の今日のエントリ
小粋ユーザリストのスクロールバー
BlogRolling の リンクリスト、我が やむやむでは 小粋ユーザリスト で 使用させていただいてますが
このリストも DrecomRSS や BlogPeople の リンクリスト同様 クレジットを スクロールバーの外に追い出す、
というカスタマイズの方法を 小粋空間 さんで紹介してくださってたので、早速 やってみました。
⇒ BlogRolling にスクロールバーをつける
小粋ユーザリストは 登録件数も 500件を超えていて スクロールバーをつけないと 縦に 相当長くなっちゃうので
スクロールバーだけは 早くからつけてたんですけど、一番下までスクロールさせないと クレジットを 見ることが
できなかったものが、このカスタマイズで スッキリ!解決しました。
2005年 11月 19日(土) 先負 今日は何の日? 2004年の今日のエントリ
コメント投稿者リンクを別窓で開くようにする
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日)
2005年 11月 3日(木) 文化の日 大安 今日は何の日? 2004年の今日のエントリ
13か月目の憂鬱・・・月別アーカイブの強調表示
ブログ開設から1年経って ウカレテた ら、
13ヶ月目に突入したことで、とんでもないことが起きてました。
右サイドバーの 月別アーカイブ のところ、
ここ で スッキリ表示に変え、さらに ここ では 並び方を昇順にし、
その後も くっつき過ぎて読みにくいので 月名の数字の間隔を
少し あけてみたり・・・と、表示に 気を使ってきたわけなのですが、
なんと!「11」 しか表示してないものだから 2005年の11月も 2004年の11月も
両方 強調表示 されてるではありませんか!!!Σ( ̄□ ̄;)
そこで せっかく 頑張って スッキリ表示にしたんだけど
日付アーカイブ (月別 ・ 日別) でだけ
ノーマルな 「○年○月」 表示に 戻しました。
全くの ノーマルでもつまらないので、ツリー にだけはしましたけど。
あと、日付の強調表示が関係ない エントリアーカイブ や
メインページ、カテゴリアーカイブ などでは
今までどおり スッキリ表示の Monthly Archives に しています。
2005年 10月 14日(金) 友引 今日は何の日? 2008年の今日のエントリ 2007年の今日のエントリ 2006年の今日のエントリ
エントリ編集に3つ+αの小技
エントリを新規に投稿、または編集するときに 便利で楽チンになる技を 今まで あれこれ組み込んできましたが、
その中で 使用頻度が多い 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("&"); // & から変換すること
str = str.split("<").join("<");
str = str.split(">").join(">");
str = str.split('"').join(""");
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('<').join("<");
str = str.split('>').join(">");
str = str.split('"').join('"');
str = str.split('&').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 でも使えました。ただ 今回は 画像の名前を日本語にしてると文字化けしたので
英数字だけ使いました。また、少し 絵文字の数を減らしました。
これで 今までに より近い便利さが 取り戻せました。
今後は 不便だな~、と思うところから 徐々に 以前の状態に戻していこうと思っています。
2005年 9月 27日(火) 先勝 今日は何の日?
Firefoxで長いURLなんかを折り返してくれるJavaScript
前から気になってたけど、たいした理由もなく後回しにしてた (見て見ぬふりをしてた) ことを
今日 なぜか やる気が起きたので、やっつけちゃいました。それは、Firefox で
長いURL や 連続した半角文字列を 折り返してくれない バグに 立ち向かうことでした。
どういう現象かというと・・・
こ~んな感じ。文字列が 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 を突き破ったりしてません。↓
なお、このままでは IE で JavaScriptエラーが出てしまうので、スクリプトが Mozilla系ブラウザでのみ
動作するように url_breaker_plus.user.js に 青い字の 2行を 追加するといいそうです。
(function () {
if(navigator.appName == 'Netscape'){
:
(中略)
:
}
})();
これでバッチリです。ヽ(*^。^*)ノ
Tag : MovableType , Firefox , カスタマイズ , JavaScript
2005年 9月 26日(月) 赤口 今日は何の日?
各エントリのTagを表示
日参サイトにさせていただいてる 小粋空間 さんに 最新記事をチェックさせてもらいに行ったら
各エントリに 設定されてる キーワード (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さーん!