[ 2010-02 ]

外部リンクアイコンと別窓を開く備忘録(jQuery1.3.2)

いまでは当たり前のように使われてるJavascriptで外部リンクアイコンと別窓を開くスクリプト。

ちょっとググればすばらしいスクリプトがごろごろしてそうなのですが。

勉強をかねて自分で組んでみることにしました(というほどのものでもない嫌な感じ)。

jQuery Script

$(function(){
	//自ドメイン取得
	var myDomain;
	myDomain = document.domain;
	if(!myDomain){
	//ローカルなんかで作業してるときとか
		myDomain = "hogehoge.com";
	}
    //記事のメイン領域だけ走査
	var target = document.getElementById("main");
	if(!target) return;
    //http://とhttps://で始まるURIを探して
	$("a[href^=http://]"||"a[href^=https://]",target).each(function(){
		var urls = $(this).attr("href");
		//http://,https://を含むURIからホスト部分を抜き出して自ドメインと比較
		var extra = urls.split('/')[2];
		if(extra !== myDomain){
                        //自ドメインじゃなかったらtarget="_blank"とclassを付加
			$(this).attr({"target":"_blank","class":"extlink"});
		}
	});
});

Style Sheet

.extlink{
	padding:0 13px 0 0;
	background:url(../img/ico_extra_link.gif) right center no-repeat;
}

たぶんわかる人から見ると
ムダだらけなんでしょうね・・・・ドクロ

一応 Win IE6(そういえば3月1日にIE6のお葬式だそうですね。)、Win IE7、Win FireFox 3.5.8、Opera 9.64、Google Chromeで動作確認しました。


おまけ
ほしいという奇特な方がいれば・・5色入りgifとpngのこのサイトで使ってる外部リンクアイコンセットどうぞ

MT Zen-Codingを使ってみました。(Movable Type 5)

巷で話題のZen-Coding。

コーディング速度が3倍になるとの話(きっと赤い○○なんですね。)。

時代の波に乗り遅れまいとかたつむりくんのWWWで公開されている
「MT Zen-Coding」
を導入してみました。

ちなみにZen-Codingとは、複雑なマークアップでもショートカットとスニペットで簡単にかけてしまうという
ライブラリなのです。

これ自体がDreamWeaverみたいなエディタじゃなくライブラリなので既存のエディタソフトに対応したものがあります。


使い方は簡単でプラグインをインストールするとそのままエントリーのテキストエリアで使用可能です。

例えば、

div#container>div#header+div#contents+div#footer

と書いてctrl + E(展開)すると。

<div id="container">
	<div id="header"></div>
	<div id="contents"></div>
	<div id="footer"></div>
</div>

こんな感じで一瞬でコードに変換されます。

MT Zen-Coding ではテンプレートの編集画面にも対応されていて省略形の記述法で
MTタグもマークアップできるようになってるそうです(まだ、試してないのです。)

早く赤いすいs(ry・・・

エントリーの最古の1件を常に一番下に表示したい。

なんだかよくわからないタイトルになってしまいましたが・・汗

エントリーリストで、一番古いエントリーをなんらかの理由でリストの最後に常に表示させておきたいときの
備忘録。

<mt:Ignore><!--
最古の1件を取得して oldest_entry に、格納
--></mt:Ignore>
<mt:Entries sort_order="ascend" limit="1" setvar='oldest_entry'>
<p style="color:#990000; font-weight:bold;"><mt:EntryTitle /></p>
</mt:Entries>
<mt:Ignore><!--
最大エントリー数から1件引いた分だけ表示
--></mt:Ignore>
<mt:BlogEntryCount setvar='total_entries' />
<mt:SetVar name='sub_entreis' value='$total_entries' />
<mt:SetVar name='sub_entreis'  op='--' />
<mt:Entries lastn="$sub_entreis">
<p><mt:EntryTitle /><mt:Var sub_entreis /></p>
</mt:Entries>
<mt:Var oldest_entry />

まず、エントリーを昇順に並び替え、最古の1件だけ取得し適当な変数に格納しておく。(ここではoldest_entry)

次にトータルのエントリー数から1引いた数だけエントリーを出力(ここは降順)

最後にoldest_entryをエントリーリストの最後にはっつけて完成。

こんなもんでしょうか。

MT5のコメントまわりの備忘録1

本サイトを制作している段階において
コメント周り、特にコメントのページネーションスクリプトの仕様が分からなくて
かなり悩まされました。

一応は分かったのですが・・・

ぶっちゃけこの仕様はどうなのか?

コメントのページネーションを作動させるためには
まず「コメント一覧」システムテンプレートが必要です。
JSONになっていてコメント一覧を内部的にテキスト出力してる・・感じですか?

そしてすごく大事なのが・・
ついついデザイン上ページネーション部分を下だけでいいやと

#top-comment-nav 部分をとっぱらってました。
上部のページネーション表示ですね。

javascriptエラーがでて
必要な引数が定義されていないと・・

#top-comment-nav をつけることで解消されましたが
いまだ謎が多いコメント部分

まだ完成には時間がかかりそうな悪寒です。

どせいさん

昔、任天堂が「Mother」というタイトルのシリーズを出してました。
その「Mother]で大人気だったのが、

「どせいさん」です。ハート

つるんとしたボディにちょろ毛、赤いリボンに短すぎる足。

全てがキュートです。

このたび、たくさんの人のリクエストで、クレーンゲームで獲る
どせいさんのキャラクターが数量限定、店舗限定で設置されるそうです。

今回こそは、のKIAIでゲットしたいと思います。

2/6~だそうなので週末は朝から出陣です。


そういえば、その「どせいさん」の会話部分だけ
特殊な今で言う手書き風へた文字で作られてました。

その特殊なフォントで文字が書けるソフトがあったような・・・

10/02/22 追記

¥1,500使ってやっとこさゲット。
カッターでどせいさんを吊り下げてる紐をぷちっと切るタイプのクレーンゲームでした。

img_0274.jpg

苦労の結晶。

TopLevelCategories でしましま(Movable Type 5)

TopLevelCategoriesタグには、__odd__,__even__,__last__,__first__などのループに関する処理が含まれていないためカテゴリーリストでしましまにしたいなと思ったときにちょっと不便です。

そこで、TopLevelCategoriesのループ内で番号を振って奇数、偶数を判断したいと思います。

<mt:setVar cat_number value='1' />
<mt:topLevelCategories>
 <mt:subCatIsFirst><ul></mt:subCatIsFirst>
  <mt:setVar cat_number op='++' />
   <li class="<mt:if test='$cat_number%2==1'>even<mt:else>odd</mt:if>">
    <mt:if tag="categoryCount">
     <a href="<mt:categoryArchiveLink />"><mt:categoryLabel /></a>
    <mt:else><mt:categoryLabel /></mt:if></li>
  <mt:subCatIsLast></ul></mt:subCatIsLast>
</mt:topLevelCategories>

TopLevelCategoriesのループに入る前に<mt:setVar cat_number value='1' />カテゴリのループ回数を格納する変数を初期化
TopLevelCategories 内でカテゴリの呼び出しを行うたびに<mt:setVar cat_number op='++' />
呼び出されたカテゴリのインデックスとして変数に1足してtest アトリビュートで演算、
トップレベルカテゴリの総数を2で割った余りが1(1から開始してるので一つ目のカテゴリが2~となるので)なら偶数、1以外なら奇数となります。