広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog
「ここにブログの名前を入れます」は更新を終了しました。記事はすべて新ブログ「Big Bang」に移転済みです。記事のタイトルをクリックすると新ブログの該当記事に移動します。そちらでお楽しみください。

カテゴリー別アーカイブ  :  

今日のサザエさんチョキに500コイン!

前回はグー ! 3月17日「サザエさん」ジャンケンで何を出す

グー5.83倍
チョキ3.81倍
パー1.48倍

参考データ「過去の出目」

日付出した手
  
  
3/10グー
3/3チョキ
日付出した手
2/24パー
2/17パー
2/10グー
2/3チョキ
日付出した手
1/27パー
1/20グー
1/13グー
1/6チョキ

分析

今年に入ってからの出目を見ると、グー4回、チョキ3回、パー3回とバランスがとれている。「グーだけが1回多い」事、しかも「前回はグー」という状況を踏まえると、次回「グー」の線は薄い。

ではチョキとパーのどちらを選ぶかだが、1月13日の「グー」の翌週は「グー」、1月20日の「グー」の翌週は「パー」、2月10日の「グー」の翌週も「パー」となっており、まだ今年は「グー」の後の「チョキ」がない。そろそろ「チョキ」の出頃ではないだろうか?

じゃあ、いつ出るの?次でしょ!

Tomの勝負手

チョキ」に500コイン!

ためたポイントは「現金」「Edy」「Suica」や各種ポイントに交換!
※「ジャンケンが無かった場合」、「グー・チョキ・パー以外の手が出た時」は、投票されたコインは返還されます。

予想ネットへの参加はこちらから 楽天で買うなら予想ネットで♪WポイントGET!

予想ネットに入会すると、最初にコインがもらえます。コインを賭けて当たるとポイントがもらえます。当たっても外れてもコインは戻って来ません。コインがなくなると遊べないわけですが、しばらくログインしないでいるとメールが来て、ポイントとコインをプレゼントしてくれます。そしてまた遊んで、ポイントを貯められます。

会員ID xxx0000 様
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 こんにちは。『予想ネット』( http://www.yosoo.net/ )です。

 会員様は、未ログイン期間がまもなく3ヶ月目を迎えるため、
 以下に記載したコイン/ポイントがまもなく削除されてしまいます。
 『予想ネット』へのログインをお急ぎください!
  http://www.yosoo.net/top.php

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃☆コイン/ポイント失効日: 2013/01/31 23:59:59
┃■所持コイン  : xxxx 枚
┃■所持ポイント : xxxxx pt
┃■会員ステータス: 一般 会員
┃≪このステータスは、2013/01/15 時点のものです。≫
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 ポイント・コインが足りないから『予想ネット』で遊べない?
 …そこでご用意しました「クリックDEポイント・コインGET」!!

 下記のアドレスからログインすれば、
 なんと!100ポイントと500コインプレゼントしちゃいます!
 ただし獲得できる有効期限が決まってるので急いでくださいね。
  http://www.yosoo.net/top.php
 (有効期限:2013/01/31 23:59:59 まで。期限内、おひとり様一度限り有効です)

登録はこちらから!未来に賭ける!日本で最大級の予想サイト!

新ブログ「Big Bang」で続きを読む

headのタイトルにページ番号とカテゴリー名を追加する

先日の記事「ブログ移転で rel="canonical" は有効か?」で、このブログではヘッダのタイトルに「ページ番号」や「カテゴリー名」を追加していると書きました。よく考えたら、その方法を知りたい方がいるかもしれないと思いますので、この記事にまとめます。

先日の記事に書いた通り、このスクリプトを適用したら、ほんの数日でGoogleの検索結果に反映されるようになりました。この記事は、このブログを書いているファンブログを例にしていますが、他のブログでも充分応用が効く内容だと思います。

現在、このブログのスキンは下の構成になっています。(2013年3月16日時点)

このスキンは独自仕様なので、ファンブログの物とは違います

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="Shift_JIS" />
<meta name="description" content="{$BlogDescription$}" />
<meta name="keywords" content="HTML,css,JavaScript,スタイルシート" />
<meta name="author" content="Tom" />
<meta name="copyright" content="Copyright {$BlogName$}" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<link rel="start" href="{$BlogUrl$}" title="{$BlogName$}" />
<link rel="stylesheet" type="text/css" href="{$BlogUrl$}style.css" charset="Shift_JIS" media="all" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="{$BlogUrl$}index1_0.rdf" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>{$BlogEntryTitle$} | {$BlogName$}</title>
<!--[if lte IE 8]>
<link rel="stylesheet" type="text/css" href="" media="all" />
<script type="text/javascript" src=""></script>
<![endif]-->
<script type="text/javascript" src=""></script>
</head>
<body>
(省略)
</body>
</html>

この中のtitleタグの中身{$BlogEntryTitle$} | {$BlogName$}です。

{$BlogEntryTitle$}は、記事のタイトルに、
{$BlogName$}ブログのタイトルに自動で変換されて表示されます。

ファンブログのスキンの初期状態

ただし、ファンブログのスキンの初期設定は
{$BlogName$} だけが書き込まれていて、{$BlogEntryTitle$}はありません。このままだと「ブログ名」だけが表示され、「記事のタイトル」は表示されません。これは検索結果にも同じように反映されます。

たとえば次のキーワードで検索してみます。

キーワード

その結果、今現在このブログの記事が1位に表示されています(2013年3月17日時点)。下のどちらかが実際の表示結果、もう片方は画像を加工した物ですが、この2つを比べてみてクリックされやすいと思うタイトルはどちらでしょう?

実際の検索結果表示画面 ブログタイトルのみの場合

左が実際の表示。右がファンブログのスキンのままだと表示される状態を再現したものです。検索した人の入力した2つのキーワード。これがタイトルに含まれる方がクリックされやすいと思います。ブログ名だけで、キーワードのない右は、せっかく1位にあってもそのままスルーされそうな気はしませんか?

ファンブログのスキンに「記事のタイトル」を追加する方法

ボタン

まず、ファンブログの管理画面左の「スタイルの編集」をクリック。
画面が変わったら「フリースキンの編集」と言う項目から「1記事」を選択。
「フリースキンの編集」は画面左にあり、次の一覧になっています。

  • スタイルシート
  • メイン
  • ポータル
  • アーカイブ
  • 1記事
  • プロフィール

この中の「1記事」をクリックします。「1記事」の画面になったら画面右のタイトルが「1記事テンプレートの編集」になります。この右側の枠の中を編集します。

1記事テンプレートの編集で一番上から見ていくと、途中で下のように書かれた行があります。

<title>{$BlogName$}</title>

これを、次のように変更します。

<title>{$BlogEntryTitle$} | {$BlogName$}</title>

これで保存すれば、「記事のタイトル | ブログの名前」という風に表示されます。

タイトルに「ページ番号」を追加するスクリプト

ようやくここからが、今回の本題です。今回やるのは「ページ番号」の追加と、「カテゴリー名」の追加です。「ページ番号」を追加するスクリプトは「メイン」スキンに書き加えます。まず、上の要領で「フリースキンの編集」から「メイン」を選択して開きます。ちなみに、このブログのメインスキンはtitleタグを下のように書き直してあります。

<title>{$BlogName$} | ブログ インデックス</title>

メインスキンのheadに、次のコードを書き加えます。ソースの中の「ayzfqir5」はこのブログの場合です。各自、自分のブログのURLに変更してください。

自分のブログのURLから、赤字の部分を抜き出して、下のコードの「ayzfqir5」を書きかえます。
https://fanblogs.jp/ayzfqir5/
<script type="text/javascript"><!--
url=window.location.href.match(/^https?:\/\/fanblogs\.jp\/ayzfqir5(\/(([0-9]+)\/?)?)?$/);

if(url){
	var number=url[3]?url[3]:1;

	if(document.title){
		document.title+=' page'+number;
	}else{
		document.querySelector('title').innerHTML+=' page'+number;
	}
}
//-->
</script>

新ブログ「Big Bang」で続きを読む

WordPressマルチサイトでエラー! "The site you have requested is not installed properly."

WordPressを使って、マルチサイトにしていたブログが突然アクセスできなくなった。正確にはサーバーとはアクセス出来ている。ただしブラウザには、ブログではなく、こんなメッセージが表示される。

The site you have requested is not installed properly. Please contact the system administrator.

Googleの翻訳にかけるとこういう意味だ。「あなたが要求したサイトが正しくインストールされていません。システム管理者に連絡してください。」

ふざけるな。俺がシステム管理者なんだよ!

WordPressのマルチサイトだけに起こるエラー

調べたところ、これはマルチサイト特有のエラーらしいです。もっとも参考になったのは「Labor Of Love - Laughing Out Loud」さんの記事。

とりあえず、PhpMyAdminで、全テーブルにチェックを入れ「テーブルを最適化」。 上手くいきました。元通り、エラーなく表示することができました。

早速、テーブルの最適化をやってみます。ただし、PhpMyAdminは入れていないのでコマンド処理。-u の後のuser_nameにユーザー名、database_nameにデータベース名を入れます。

mysqlcheck -o -u user_name dabatabe_name -p

こう入力してEnterを押すと「Enter password:」と表示されるので、パスワードを入力して、もう一度 Enter。するとテーブルの最適化が始まります。

xxxxxxxxxx.wp_blog_versions                   Table is already up to date
xxxxxxxxxx.wp_blogs                           OK
xxxxxxxxxx.wp_bp_activity                     OK
xxxxxxxxxx.wp_bp_activity_meta                OK
.............(省略)

最適化は数秒で終了。早速ブラウザをリロード!無事にブログが表示されました。

そういえば今年に入って、これとは別のマルチサイトでアクセス不能になったことがあります。その時はログイン出来たので違う原因かもしれませんが、スパムを全部削除したら直りました。データベースはマメに整理した方が良さそうです。

うちのブログはまだ、復旧しただけですが「Labor Of Love - Laughing Out Loud」さんの記事には再発防止のための対策も書かれています。

新ブログ「Big Bang」で続きを読む

ブログ移転で rel="canonical" は有効か?

そもそもは、このブログで使っているYahoo!JAPANの「カスタムサーチ」がカスタマイズしやすくてオススメだという記事を書こうとしていたわけです。

そうしたらカスタムサーチのページで「内容が重複する複数のURLをまとめるよう、検索エンジンに通知」という記事を見つけました。

サイトには、URLは異なるがウェブページの内容は変わらないというケースがあります。たとえば、URLがトラッキング用のパラメータを含んでいる場合や、URLに含まれるパラメータをもとに閲覧環境によってウェブページの表示を最適化しているような場合です。

  • http://www.example.com/products?trackingid=feed
  • http://www.example.com/products?sessionid=hgjkeor2
  • http://www.example.com/products?printable=yes&trackingid=footer

このような場合、検索エンジンのインデックスに個々のURLで登録されると、同じ内容のウェブページが検索結果に表示されたり、同じ内容のウェブページであるにもかかわらず、各URLにクローラーが巡回し、サーバーに負荷をかけてしまう、また、サイト内の巡回が効率的に行われないといった不都合が発生することがあります。
このようなことを避けるため、サイト管理者がウェブページのなかで<link>タグを利用して、重複を避けるように検索エンジンに通知する方法が用意されています。

具体的にはヘッダに下の様に書いたとすると
このページはhttp://www.example.com/と同じ内容です」と宣言したことになるようです。

<link rel="canonical" href="http://www.example.com/" />

ということは、ここでひとつの疑問が出てきます。

別のドメインでもcanonicalは適用できるのだろうか?

その回答はGoogleの「rel="canonical" 属性について - ウェブマスター ツール ヘルプ」にありました。

rel="canonical" 属性を使用して、まったく別のドメイン上の URL を指定できるか

リダイレクトは簡単に設定できない場合があります。たとえば、サーバーサイドのリダイレクトを作成できないウェブ サーバーを使用しているときに、新しいドメイン名に移行する場合などです。このような場合には、rel="canonical" リンク要素を使用して、このドメインでインデックス登録の対象になる正確な URL を指定できます。rel="canonical" リンク要素は絶対的な指示ではなく、ヒントとしてみなされますが、Google では可能な限りこの要素を追跡します。

つまり、解釈が間違っていなければ「rel="canonical" 属性」は、次のような使い方が出来るということでしょうか?

ブログやサイトを別ドメインに移転した。今までに作ったページも新しいドメインにコピーした。今後は新ドメインで運用するが、これまでの遺産として古いドメインにも記事を残しておきたい。

しかし、そうすると後から作った新しいサイトがコピーサイトとして検索エンジンに低く扱われる可能性がある。そうならないために、今までの(古い)サイトのHTMLに「rel="canonical" 属性」でコピー済みの新しいサイトの記事を指定しておく。そうすることで検索エンジンには、新サイトを優先するよう指定する。

そうすると「Google では可能な限りこの要素を追跡」してくれるのでしょうか?実は最近、この条件に合致した移転ブログがあります。

パート派遣主婦のぐーたら子育て生活 (長いので以下「パー活」と省略表記)

「パー活」は最近、独自ドメインを取って「ココロデザイン」というサイトに移転しました。その移転の際のリポートを「技術のタマゴ」というブログに書いています。が、自分は読んでいないのでよくわかりません。ただ、noindexがどうだとか、いろいろやっていたみたいなので参考になるかもしれない。

ということで「技術のタマゴ」を開いたら、こんな記述が見つかりました。

※rel="canonical"で重複記事の中で、新記事を一番だと主張する
 という案もありましたが、同一ドメイン間じゃないと
 使えないということで、却下になりました。

おかしい。Googleのページには、こう書いてあります。「リダイレクトを作成できないウェブ サーバーを使用しているときに、新しいドメイン名に移行する場合などです。このような場合には、rel="canonical" リンク要素を使用して、このドメインでインデックス登録の対象になる正確な URL を指定できます

そうであるなら「同一ドメイン間じゃないと使えない」というのは間違いじゃないでしょうか?

しかし、rel="canonical" で新サイトを指定できるとしても、ブログで実際にどうやればいいのかという問題があります。すべての記事のヘッダにrel="canonical"属性で、新しいURLを書き込まないといけませんが、多くの無料ブログのテンプレートでは1記事ごとに違うURLを指定する事は出来ません。

ファンブログハックの記事から

ファンブログハックに「「タイトルタグの重複」をjavascriptで回避する(ファンブログ、FC2)」という記事があります。JavaScriptを使ってHTMLに書いてあるのと違うタイトルに書きかえたところ、Googleには書きかえたタイトルが反映されたという内容です。

実はこのブログは今月1日に新しいスキンに変えているんですが、「site:fanblogs.jp/ayzfqir5」をググるとおもしろい結果が出ます。このブログのスキンには、タイトルにページ番号やカテゴリー名を表示させる機能がありません。なので、JavaScriptで書き加えているんですが、スキンを変えて数日で、検索結果に反映されるようになりました。ファンブログハックの記事の通りです。

検索結果にはJavaScriptで修正したタイトルが表示されている

ヘッダにrel="canonical" 属性を追加するスクリプト

ということは、JavaScriptで、ヘッダにrel="canonical" 属性を追加すれば、検索に反映されるのではないだろうか?つまり、新しいサイトを優先して表示してくれるのではないだろうか?と仮定できるのです。もし、それが出来るなら「パー活」にnoindexを指定する必要はなくなります。

とは言ったものの、ページ数がたくさんある時は大変です。ちなみにページが数ページしかない時には、下のようなスクリプトで実現できると思います。

前提条件として、古い記事のURLはすべて「https://fanblogs.jp/parthaken/archive/xxx/0」というフォーマットになっているものとします。URLの中のxxxは数字です。この数字ごとに新しいURLをヘッダに書き加えます。新しいサイトでは、記事の内容ごとに違うブログに分けていたとしても大丈夫です。

<script type="text/javascript"><!--
var urls={
	"001":"http:\/\/hoge.example.com/page_001.php",
	"002":"http:\/\/moge.example.com/page_002.php",
	"003":"http:\/\/kome.example.com/page_003.php"
};

var key=window.location.href.match(/\/archive\/([0-9]+)\//);

if(key){
	document.write('\<link rel="canonical" href="'+urls[key[1]]+'" /\>');
}
//-->
</script>

これをheadタグの中で、一番最初のscriptタグの直前に書けばうまくいくと思います。古い記事のURLがhttps://fanblogs.jp/parthaken/archive/001/0なら「http://hoge.example.com/page_001.php」というように、それぞれの新URLをヘッダに追記します。

しかし、記事が何百ページもあったら上のやり方では無理があります。

新ブログ「Big Bang」で続きを読む

プーリップからベルサイユのばらがキターッ (*゜▽゜*)♪ 詳細画像付

今年はPullipプーリップ)が10周年ということで、いろいろ企画されておりますが、「ベルサイユのばら」来ました (*゜▽゜*)♪ 細部がよくわかるアップの写真をつけて、ご紹介します。

© 池田理代子プロダクション

画像をクリックすると、通販の商品予約ページへ移動します。その他の場所でご予約なさる場合は下の一覧からどうぞ!

Amazon R 楽天市場  Yahoo!ショッピング セブンネットショッピング

☆宝塚 「ベルサイユのばら」のチケットをヤフオクでGet☆

プーリップ / マリー・アントワネット(Marie Antoinette)

悲劇の王妃、マリー・アントワネット。大きな羽根飾り、くるくるのカールヘア、ピンク色の耳飾り、リボンがたくさんあしらわれた貴族らしい可憐なドレスなど原作「ベルバラ」のマリーをそのままにプーリップ化しています。

プーリップ / オスカル・フランソワ(Oscar Francois)

男装の麗人、オスカル・フランソワが軍服で登場です。メイクは男装した女性軍人らしく、上がり眉・上向きアイラインで、力強く格好良い印象。オスカルの特徴である大きくウェーブがかったブロンドヘアも再現しています。

テヤン / アンドレ・グランディエ(Andre Grandier)

オスカルを支え続けた男、アンドレ・グランディエが登場!原作同様、衣装は赤と白の飾りが入った軍服に、髪は黒い癖毛。アンドレが左目を黒髪で覆い隠す様子を再現出来ます。

新ブログ「Big Bang」で続きを読む

HTMLを指定文字数で切り詰めて表示する

前の記事「記事の先頭にアイコンを挿入する方法」の最後で、記事の文字数を切り詰める方法を簡単に書きました。この記事では、その部分だけ詳しく説明します。

普通に、文章を指定文字数で切り詰めるなら次のようにすれば実現できます。

function hoge(str,len){
	return str.length>len?str.slice(0,len)+'…':str;
}

第1引数strには文字列、第2引数lenに切り詰めたい長さを指定します。lenより長ければ、len文字で切り詰め、その後に「…」を加えます。ただしマルチバイト文字列の場合、どの文章も同じ文字数で切られない可能性があります。その場合は文字数ではなく、バイト数で切られていると思います。

文章と、文字数を入れて実行ボタンを押してください。

文章:

文字数:

HTMLの文章切り詰め

HTMLの場合はタグを消去しないと表示が崩れる可能性があります。文字列を切り詰めた結果、終了タグがなくなってしまったり、タグの途中で切れてしまったりするからです。

<p>こんにちは。</p>
  -> <p>こんに…  終了タグがなくなってしまった!

<p>こんにちは。<span style="color:#0000ff;">今日はいい天気ですね!</span></p>
  -> <p>こんにちは。<span style="col…  タグの途中で切れてしまった!

そこで、文字を切り詰める前にHTMLタグを正規表現で消去します。

str.replace(/\<script.*?\>.*?(\<\/script\>)|\<style.*?\>.*?(\<\/style\>)|\<.+?\>/g,'');

<と>のエスケープは正規表現自体には必要ないかもしれませんが、JavaScriptをHTML内に書いた場合にトラブらないようにエスケープしておきました。たとえば、よくdocument.write('<scr'+'ipt'というような記述をしますが、これはdocument.write('\<script’でも大丈夫です。

HTMLに対応した修正版

function hoge(str,len){
	str=str.replace(/\<script.*?\>.*?(\<\/script\>)|\<style.*?\>.*?(\<\/style\>)|\<.+?\>/g,'');
	return str.length>len?str.slice(0,len)+'…':str;
}

新ブログ「Big Bang」で続きを読む

記事の先頭にアイコンを挿入する方法

このブログでは、下のキャプチャのように記事のカテゴリーごとに違うアイコンを表示しています。その実現方法です。このブログはファンブログというサービスに書いているので、ファンブログを例にとりますが、他のブログでも応用できます。

記事ごとにアイコンを配置したindexページ

アイコンを入手する

先に結論を書くと、このブログで使っているアイコンはFree Icon set - Icon Edenからダウンロードした無料アイコンセット「iCandies」です。

インターネットを探すと、無料で使えるアイコンは沢山見つかります。今回、自分はGIGAZINEの記事「フリーでハイクオリティな「IconEden」による商用利用可能な無料アイコンセットいろいろ」で、このアイコンを見つけました。GIGAZINEを見ると関連記事で、まだまだたくさん色々なアイコンを紹介してくれています。

他にもPhotoshop VIPの「RESOURCE/Icon まとめ記事/アイコンまとめ」など、アイコンを画像付で紹介してくれているサイトは沢山見つかるので、そういうところで探すと、お気に入りのものが見つかると思います。

アイコン画像をサーバーにアップロードする

自分の使うアイコンを入手できたら、それをサーバーにアップロードします。ファンブログの場合、記事の中にアップロードするしかないのですが、ひとつの記事にアップロードできる画像は5個までです。何十個もアップロードする場合は、とても大変な作業になります。

なので、私は自分の契約している別サーバーにFTPでアップロードしました。私は使ったことがないので、わかりませんが無料で使えるファイルサーバーはいくつかあるようです。

カテゴリーとアイコンを紐付ける

今回は、カテゴリーごとに違うアイコンを表示させるため、まずその設定をします。つまり、どのカテゴリーでどのアイコンを表示させるかの設定です。具体的にはJavaScriptのオブジェクトを使って連想配列で処理します。このブログの場合は次のようになります。

var categories={
	"category_5":"37_64x64.png",
	"category_28":"43_64x64.png",
	"category_6":"41_64x64.png",
	"category_7":"51_64x64.png",
	"category_27":"50_64x64.png",
	"category_30":"45_64x64.png",
	"category_34":"40_64x64.png",
	"category_35":"36_64x64.png",
	"category_33":"44_64x64.png",
	"category_20":"42_64x64.png",
	"category_13":"2_64x64.png",
	"category_32":"55_64x64.png",
	"category_24":"34_64x64.png",
	"category_18":"25_64x64.png",
	"category_15":"26_64x64.png",
	"category_26":"9_64x64.png",
	"category_16":"56_64x64.png",
	"category_19":"48_64x64.png",
	"category_25":"54_64x64.png",
	"category_29":"5_64x64.png",
	"category_31":"19_64x64.png"
};

左側の "category_xx" がキーで、右の "xx_64x64.png" が、呼び出すファイル名です。

キーは、カテゴリーごとのURL「https://fanblogs.jp/ユーザー名/category_xx/」の最後「category_xx」を記入します。たとえば、カテゴリー「超初心者HTML入門」のURLは「https://fanblogs.jp/ayzfqir5/category_28/」なので「category_28」になります。

私はアイコンを、すべて同じディレクトリにアップロードしたので右側はファイル名だけですが、ファンブログにアップロードした場合は、ファイル5個ごとにディレクトリ構成が違うので、フルパスで記入する必要があります。

挿入スクリプトの本体

今、このブログのスキンは完全自作でファンブログのものとは違う構成なのですが、ファンブログのスキンなら下のようになっていると思います。

<BlogEntries>
<div class="entry">
<div class="entryDate">{$BlogEntryDateformat="%Y年%m月%d日" language="jp"$}</div>
<h2 class="entryTitle"><a href="{$BlogEntryPermalinkUrl$}">{$BlogEntryTitle$}</a></h2>

<div class="entryBody clr">{$BlogEntryBody$}</div>
<BlogEntryIfExtended>
	<div class="entryContinue"><a href="{$BlogEntryPermalinkUrl$}#BlogEntryExtend">続きを読む...</a></div>
</BlogEntryIfExtended>
<div class="entryInfo">
	投稿者:<a href="{$BlogEntryWriterUrl$}" target="_blank">{$BlogEntryWriterName$}</a>|{$BlogEntryDate format="%H:%M"$}
	<BlogEntryIfCategory>|<a href="{$BlogEntryCategoryLink$}">{$BlogEntryCategory$}</a></BlogEntryIfCategory>
	<BlogEntryIfAllowComments>|<a href="{$BlogEntryPermalinkUrl$}#comments">コメント({$BlogEntryCommentCount$})</a></BlogEntryIfAllowComments>
	<BlogEntryIfAllowPings>|<a href="{$BlogEntryPermalinkUrl$}#Trackback">トラックバック({$BlogEntryTrackbackCount$})</a>	 </BlogEntryIfAllowPings>
 </div>
</div><!-- entry -->
</BlogEntries>

この最後の「</BlogEntries>」の直後に次のコードを追加します。それがスクリプトの本体です。書き換えるスキンは「メイン」「アーカイブ」「1記事」の3つです。

<script type="text/javascript"><!--
(function(){
	var categories={
		"category_5":"37_64x64.png",
		"category_28":"43_64x64.png",
		"category_6":"41_64x64.png",
		"category_7":"51_64x64.png",
		"category_27":"50_64x64.png",
		"category_30":"45_64x64.png",
		"category_34":"40_64x64.png",
		"category_35":"36_64x64.png",
		"category_33":"44_64x64.png",
		"category_20":"42_64x64.png",
		"category_13":"2_64x64.png",
		"category_32":"55_64x64.png",
		"category_24":"34_64x64.png",
		"category_18":"25_64x64.png",
		"category_15":"26_64x64.png",
		"category_26":"9_64x64.png",
		"category_16":"56_64x64.png",
		"category_19":"48_64x64.png",
		"category_25":"54_64x64.png",
		"category_29":"5_64x64.png",
		"category_31":"19_64x64.png"
	};

	var icon_url='ここにアイコンのディレクトリへのPATHを記入';
	var entries=document.querySelectorAll('div#entries div.entry');

	for(var i=0;i<entries.length;i++){
		var a=entries[i].querySelectorAll('div.entryInfo a');
		var icon=categories[a[1].href.replace(/^.+?\/(category_[0-9]+).*$/,'$1')];
		var img='string'==typeof icon?'<img src="'+icon_url+icon+'" alt="" class="category_icon" />':'';
		var body=entries[i].querySelector('div.entryBody');

		body.innerHTML=img+body.innerHTML;
	}
})();//-->
</script>

var categories の中身は自分のブログに合わせてください。

「ここにアイコンのディレクトリへのPATHを記入」と書いてある場所には、アイコンセットをアップロードしたサーバーのディレクトリへのPATHを記入します。ファンブログにアップロードしている場合は、アイコンのファイル名にPATHも含まれているので、空文字列にします。

a[1]の部分は、スキンがデフォルトの場合です。スキンを改造している場合は、添字の1を適切なものに訂正してください。

表示されるアイコンには、すべて「category_icon」というクラス名がつけられています。間隔などの調整はスタイルシートで行なってください。

本文を指定文字数で切り詰める

ここまでで、スキンは完成しています。ただ、うちのブログの様に、本文を切り詰めて、最後に「この記事を読む」と付ける場合は、上のスクリプトを一部変更します。

この行を削除して、下のソースに差し替えます。

body.innerHTML=img+body.innerHTML;

差し替えるソース

var str=body.innerHTML.replace(/\<script.*?\>.*?(\<\/script\>)|\<style.*?>.*?(\<\/style\>)|\<.+?\>/g,'');
body.innerHTML=img+(str.length>150?str.slice(0,149)+'…':str)+'<p class="read_more"><a href="{$BlogEntryPermalinkUrl$}">この記事を読む</a></p>';

上は、文字数を150字にする場合です。150字より長ければ、149文字で切って、150文字目に「...」を入れます。文字数は自分の都合に合うように調整してください。

もちろん、この最後の処理は「1記事」には適用しません。1記事の場合、アイコンを先頭に挿入することで、表示のバランスが狂うことがあります。それはレイアウト的な問題ですので、各自で修正してください。このブログでは「1記事」のみ、アイコンを記事本文でない場所に配置して解決しました。

新ブログ「Big Bang」で続きを読む

appendChildやinsertBeforeでノードを移動させる

DOMのappendChildは子ノードの追加、insertBeforeはノードの挿入のためのメソッドですが、これを使ってノードの場所を変更できます。

appendChildで移動する

たとえば、次のようなHTMLがあったとします。

<div id="outer">
<p id="morning">おはよう</p>
<p>こんにちは</p>
<p id="night">こんばんは</p>
</div>

ここで、下のコードを実行すると「おはよう」が「こんばんは」の後に移動します。

document.querySelector('#outer').appendChild(document.querySelector('#morning'));

実行例

おはよう

こんにちは

こんばんは

実行すると「おはよう」が「idがouterであるdiv」に追加されます。その結果、元の位置から最後にずれます。「おはよう」の位置がずれたので、「こんにちは」が先頭になります。

insertBeforeで移動する

上の例のHTMLに今度は次のスクリプトを適用してみます。すると最後の「こんばんは」が先頭にある「おはよう」の前に移動します。

var outer=document.querySelector('#outer');
var night=outer.querySelector('#night');
var morning=outer.querySelector('#morning');

outer.insertBefore(night,morning);

実行例

おはよう

こんにちは

こんばんは

これを知っていると、すごく便利だと思います。このブログのコメント欄の改造はこのメソッドを多用して実現しました。

新ブログ「Big Bang」で続きを読む

データアクティブと情報ステーションは同じ会社です

以前「データアクティブは安全か?」という記事を書きましたが、「情報ステーション」というサイトはデータアクティブと同じ運営者です。

データアクティブ

http://activector.com/company.html

情報ステーション

http://joho-station.com/contact_us.html


どちらも、
運営会社「株式会社プロフェッショナル[PROFESSIONAL]」
運営責任者「坂下 優子」
所在地「〒336-0021 埼玉県さいたま市南区別所5-15-2」
電話番号「048-700-3008」
でまったく同じ会社です。

上記どちらのサイトも、この情報は文字でなく画像で表示されているので、検索にかかりにくいですね。以上、事実だけを書きました。興味のある方は「データアクティブは安全か?」をご覧ください。

詐欺被害に強い★総合法律事務所★秘密厳守

新ブログ「Big Bang」で続きを読む

横幅に合わせ並ぶ個数を自動調整するスタイルシート

ファンブログにアップロードした画像URLの調べ方は「ファンブログでアップロードした画像の場所」に書いてあります。

上のキャプチャー画面はブラウザの表示サイズで横に並ぶ数が自動で変わります。意味がわからない方は、試しに今開いているこのページのサイズを色々と変えてみてください。画像が横に2個並んだり、1個だけになったりします。

ブラウザのサイズ変更ボタン

ブラウザのドラッグ

今回のテクニックを駆使した記事が「ゲーマーブログの収益アップにアクセストレードを強く薦める理由」です。リンクをクリックすると別画面で、その記事が表示されますので、見比べながら説明をご覧いただければ、理解が早いかと思います。

floatとwidthで横の個数を自動調整

上のキャプチャー画面は全部、横幅320ピクセルのアフィリエイトです。ブラウザの表示画面が660ピクセル以上あれば、横2個x縦2個の表示、なければ横1個x縦4個で表示します。ソースコードは以下の通りです。

<style type="text/css">
p.capture{
 float:left;
 margin-right:10px;
}
</style>

<p class="capture"><a href="リンクURL" target="_blank"><img src="画像URL" alt="" border="0" /></a></p>
<p class="capture"><a href="リンクURL" target="_blank"><img src="画像URL" alt="" border="0" /></a></p>
<p class="capture"><a href="リンクURL" target="_blank"><img src="画像URL" alt="" border="0" /></a></p>
<p class="capture"><a href="リンクURL" target="_blank"><img src="画像URL" alt="" border="0" /></a></p>
<p style="clear:left;">大きさも色々選べる。</p>

float:leftで画像を左寄せにしています。さらにmargin-right:10pxで画像の右側に10ピクセルの余白を作ります。これで2つ並んでもピッタリとくっついてしまいません。

画像自体が320ピクセルで、右に余白が10ピクセルつくと、合計330ピクセルです。ですから表示領域が660ピクセル以上あれば、横に2個並びます。しかし、足りない時には、横ではなく下に移動します。

最後にclear:leftを絶対に忘れないようにしてください。

新ブログ「Big Bang」で続きを読む