ランキングブログパーツ

2012年05月30日 01:06

  • LINEで送る
ランキングブログパーツ

過去に作った、はまぞう(HamaZo)内で自分のブログの現在ランキングを表示するブログパーツの仕組みを公開。このブログの右上に表示されているブログパーツになります。現在「番外」と表示されているやつです。

このブログパーツは、僕が2番目に書いたスクリプトですね。
ちなみに、一番最初にプログラム覚えて書いた最初の1番目は、オレンジ色のRSSリーダーです。

このブログパーツは、はまぞうのブログランキングを取得して、単純に表示させているだけです!

でも「ブログランキングを取得する」というところがミソになりますね。

普通にやると、データベースから取得するというやり方でお手軽簡単に書くらしいのですが、僕は社内でプログラム組んでるわけではないので、そんなことしません。
あくまで社外の1人、誰でもできるやり方で作りました。

本当に「車輪の再発明」とか馬鹿の象徴ですね。


まず、はまぞうのランキングは以下のページにあります。

■はまぞうランキングページ
http://hamazo.tv/ranking

このページの HTML を解析して、データとして再利用しやすいように xml に変換します。
最近、データはなんでもかんでも xml にしてしまうと便利ということに気づきました。

この xml ファイルに変換して出力するのは PHP で作っています。
PHP は全く分からなかったので、これが作りたいがために勉強しました

正規表現によって以下のような xml の形式に変換。

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel>
<title>HamaZo ランキングXML変換</title>
<link>http://hamazo.tv</link>
<description>ランキングページのHTMLをXMLに変換したもの</description>
<language>ja</language>
<pubDate></pubDate>
<lastBuildDate>$today</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>$domein</generator>\n

サーバーに負荷をかけると怒られるので、毎日午前1時に html を取得実行するようにします。
借りている レンタルサーバーで cron に設定しています。

そうして書き出された静的な xml ファイルを、ブログパーツが表示されるたびに、設定ファイルとして読み込むように しています。

実際のブログパーツですが、Flash で制作。
作ったのは 2008 年 5 月のようですが、当時 ActionScript 2.0 で作っていたので、xml パースをする機能がありせん。なので、XMLPATH というライブラリを読み込んでいます。

そして配列に入れ込んだ ランキングデータから、自分のブログの URL から検索して 何位かを取得します。


function getXML(){
//test1:ノードを辿って、指定の要素にアクセスする。
//「var 解析データ格納用Arrayインスタンス名:Array=XPath.selectNodes(解析対象のXMLオブジェクト,"解析対象の指定")」

//testNodes:配列の格納の仕方調査、先頭ノード(1)を表示
// var testNodes:Array=XPath.selectNodes(indexXMLRoot,"rss/channel/item[1]"); //test表示
// trace(testNodes); //test表示----------------------------------

//配列に入れる
var itemRanking:Array=XPath.selectNodes(entryRDF,"rss/channel/item/rank"); //rank
var itemURL:Array=XPath.selectNodes(entryRDF,"rss/channel/item/url");
var itemTitle:Array=XPath.selectNodes(entryRDF,"rss/channel/item/title/text()");
//順位取得
var itemMe:Array=XPath.selectNodes(entryRDF,"rss/channel/item[url='" + blogID + "']/rank/text()");


var itemMe = string(itemMe).split( "位" );
var itemMe = itemMe[0];

if ( itemMe == "" ) { // ランキング入ってなかったら
starBurst.attachMovie("rankingout", "rankingout_mc", 110);
starBurst.rankingout_mc._x = 12;
starBurst.rankingout_mc._y = 96;
trace("nothing.");
} else if ( itemMe < 100 ) { // 2桁だったら
itemMe0 = itemMe.charAt(0);
itemMe1 = itemMe.charAt(1);
} else { // 3桁だったら
starBurst.rankText.todayRank100.text = itemMe;
starBurst.rankText.todayRank_bk100.text = itemMe;
starBurst.rankText.todayRank_wh100.text = itemMe;
}


と、いうことをしています。
それにしても、もう4年前に作ったものになるんですね。





同じカテゴリー(制作物覚え書き)の記事
イベントロゴ
イベントロゴ(2019-01-29 19:19)

[logo]カタルシス
[logo]カタルシス(2018-05-07 11:53)

社員証デザイン
社員証デザイン(2018-01-15 18:29)


このブログの新着情報を配信中!

RSSリーダーに登録することで、新着情報だけを確認することができ便利です。
上のアイコンをクリックしてご登録ください。

見るだけでは飽き足らない、あなた。あなたも小言に参加してみませんか。コメントトラックバック、ご自由にどうぞ。


入力した内容は表示されます
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。
過去記事
デザイン特集
グルメ特集
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 32人
QRコード
QRCODE
プロフィール
yasukawa
yasukawa
浜松在住クリエイター&デザイナーが仕事のことについて頑張って書いてみる。
【認知心理学、コミュニケーションデザイン、情報デザイン、UI/UX、インフォメーションアーキテクト、サイネージ(Scala)、3Dモデリング、データベースアプリ構築(FlileMaker)、Flash Script 2.0&3.0、サーバ構築(Linux)、IoTセンサー&電子工作(Arduino)
文部科学省後援情報検定 情報デザイン試験合格
日本商工会議所販売士検定試験2級合格
日本英語検定協会実用英語検定試験3級合格
デザインカレッジ 外部講師(WEBマーケティング)
日本最大級レビューメディア「zigsow」2021年ベストレビュワー