[ カテゴリー » 開発日誌 ]

アクセス解析の「リンク元」をすっきりさせたい

category-icon

 以前、ユーザーの方からのコメントで以下のような要望がありました。

2.アクセス解析の「リンク元」統計へのURL置換機能の実装
私が使っていたことのあるアクセス解析サービスにあった機能なのですが…… どういう機能かというと、登録してある文字列を含むアドレスを一つのリンク元として扱うようなものです。例えばgoogle.co.jpと登録しておけば、グーグルからのアクセスを全部まとめて何件、と表示します。 というのも、検索エンジンからのアクセス自体は別項目で詳しく見れますし、「リンク元」項目では逆に検索エンジンからのアドレス文字列が大量に羅列しているため一般サイトなどからのアクセスが判別しにくいという現状がありまして要望させていただきました。

 これは、ごもっともな意見であるので、実装してみました。従来の「リンク元」の画面が、少し変わって、ドメインの部分がクリック出来るようになっています。クリックすると、ドメインをまとめたいか?と訊ねてくるので、「OK」ボタンを押すと、選んだドメインはまとめて集計するようになります。こうやって、いくらでもドメイン毎にまとめることが可能です。現状、登録のみで削除とかは、直接設定ファイル(stat/data/replace.ini.php)を弄るしかありませんが、まぁこれで良いかなと思います。

register1
まとめたいドメインをクリックすると、ダイアログが表示されます。左上のアイコンにも注目。

 これを使って、このサイトのリンク元の主要なドメインを纏(まと)めてみました。検索エンジンのドメインがひとくくりに集計されるので、それ以外のマイナーなサイトからのリンクが見つけやすくなりました。

register2
このようにすっきりした表示になった。良い感じ。

 これを適用するためのファイルを添付しておきます。なお、従来のアクセス解析画面では、ページの一番下に[AdminTop]とか[BlogTop]とか付いていて、正直、使い辛いなと思ったので(インターフェイスも洗練されていない)、アイコン化して、ページの左上に固定表示させました(IE6にも対応)。そのためのアイコンやらCSSファイルも同梱してます。アイコンは、stat/iconディレクトリに入れて下さい。view.php, stat.cssは既存のものを上書き(いずれもstatディレクトリの中です)して下さい。ppBlogのバージョンは、最新でなくても1.6系以上(1.5系も?)であれば大丈夫だと思います。念のため、元のview.phpは保持しておくのがベターですが。

 ご指摘があれば、どうぞ。「登録したら、もはやリンク表示にしなくていいんじゃない?」 とか。←2008-07-26 03:02:56 そうしました。

添付ファイル: new-stat.zipattachedIcon 

— posted by martin at 05:25 am   commentComment [4]  pingTrackBack [0]

記事編集時に表示しているページに簡単にアクセスしたい

category-icon

 こんばんは。この週末は時間が取れそうなので、マイナーアップデートを予定しています。さて、自分のブログを書いていて、不便に思ったところを改善してみたのでメモ。

 この旅日記Link のようにページ数が10ページとかなると、記事の編集時には、テキストエリアが縦にずらっと10個並ぶわけです。で、修正したいページのテキストエリアにたどり着くのに、ちょっと間を取られるので、(ログインモードで表示される)編集アイコンをクリックしたら、直接、表示しているページのテキストエリアにフォーカスが行き、かつ、その他のテキストエリアは、縮めた状態で表示させるようにしてみました。修正は、jsファイルのみで済みます。

 記事の各ページはAjaxを利用して、該当ページの部分のみ動的に読み込んでいるので、ログイン中に記事タイトルの右横に表示される編集アイコンEDITのリンクは、最初のページのままで変わりません。なので、記事ページを読み込んだタイミングで、この編集アイコンのリンクも書き換えるようにします。これはlib.jsのloadPage()をいじります。簡単でして、

if(o('a[href*=edit]', ownerDiv)){
 o('a[href*=edit]', ownerDiv).each(function(a){a.href = (a.href.replace(/&?page=¥d+$/, '') + "&page=" + page);});
}

というのを追加するだけです。やってることは、記事DIV要素の中で、リンク先にeditを含むA要素を探し出して(これは2つあります)、それぞれのリンクhrefに表示しているページを追加してあげる、という単純なものです。

 次に、editor.jsの方をいじります。この中のInitEditor()関数の最後の方に、以下のやつを追加。

var targetPage = /page=(¥d+)$/.exec(location.href);
if(targetPage){
 o('textarea[id^=Page]').each(function(page, index){
  if(index + 1 == targetPage[1]){
   resizeTextArea(page);
   ed = page; ed.focus(); o('#Page'+targetPage[1]+'Tab').view(1);
  } else o(page).css('height: 20px;');
 });
}

やってることは、記事編集画面でのリンク先がpage=3とかで終わっていたら、該当する3番目のテキストエリアのみを適切な縦幅で表示させて(フォーカスも合わせる)、他のテキストエリアは縦幅20ピクセルに縮めておく、ということです。

 尚、各テキストエリアの高さは、それぞれのリサイズバーをマウスでドラッグすることで自由に変えることが出来ますが、昔のマックのウィンドウシェード(MacOSXでも残っているのかな?)みたいに、ダブルクリックでトグルさせるようにするには、やはりInitEditor()関数の中に、次の記述を追加します。

o('.textareaHandler').on('dblclick', function(){
 var tar = oParts.target().sib(-1);  /* リサイズバーのひとつ前の要素、つまりテキストエリア要素を取得 */
 if(tar.css('height') == 20) resizeTextArea(tar.$); else tar.css('height: 20px');
});

 自分でいじりながら、JSファイルの修正だけで実現できたのは、ちょっと意外だったり;-) この修正を施したjsファイルを添付しておきます。特に問題がなければ、次回アップデートに反映されるでしょう。

添付ファイル: editor.jsattachedIcon  lib.jsattachedIcon 

 

— posted by martin at 10:42 am   commentComment [0]  pingTrackBack [0]

オンタイム投稿のテスト

category-icon

 どうでしょうか。どういう仕様が(開発するのに)一番楽チンかなぁとアレコレ考えて、一応の形になったので。「日付の修正」で、未来の投稿したい時間に設定すると、その時間を過ぎるまではドラフト投稿扱いになる。更新pingがどうなるかはこれから見てみる。

 画像の添付は?
ArcdeTriomph
なんだか水平線が丸っこく見えるなぁ。

 更新PINGのテスト


— posted by martin at 09:26 pm   commentComment [2]  pingTrackBack [0]

ppBlogのお試しサイト

category-icon

 こんにちは。静的リンク出力を取り入れたのがバージョン1.7からで、今1.7.3ですが、だいぶ安定してきた感じなのでデモサイトを設置してみました。

 http://p2b.jp/demo/ppBlog173/index.php

 そのまま何の制限もなしに設置したいというのが本音ですが、さすがにそれだとセキュリティーの問題などありそうなので、一部機能制限を設けています。テーマテンプレートやCSSの編集が不可など。ただ、記事の投稿・編集などは出来るようにしています。更新PINGやトラックバックは不可にしてますが。管理画面にはadmin, passで入ることが出来ます。不具合なども見つかりやすくなるかなと。


— posted by martin at 12:43 pm   commentComment [3]  pingTrackBack [0]

MHTファイルからのログ復元

category-icon

 こんにちは、martinです。掲示板の方で、MHT形式のファイルからログが復元できないだろうかと要望があり、これは出来るべきであろうと思いますので、とりあえず作ってみました。MHT形式からのログ復元は、原理的に100%というわけには行きませんが、なるべく元のログを再現するようにしたつもりです。

 MHTファイルを作成したブログで作動させるのが原則です。使い方は、

  1. index.phpがあるディレクトリにこのファイルをアップします。
  2. 次に、同じディレクトリにmhtディレクトリを作成(FTPソフトで)、パーミッションを707にします
  3. index.phpかadmin.phpでログインした状態で、このmht2log.phpにアクセスします

 すると、ファイルアップロードの画面になるので、ここで手元にあるMHT形式のファイル(もちろんppBlogが作成したものです)を指定して「変換」ボタンを押せば、作成したmhtディレクトリにアップした月のログが作成されます。例えば、200805.mhtであれば、200805.logというログファイルが作成されます。これは、そのままppBlogのlogディレクトリに流し込むことが可能です。

 出力されるログの文字エンコードは、UTF-8EUC-JPか選べます。入力元のMHTファイルのエンコードはUTF-8でもEUC-JPでもどちらでも構いません。

 そう使う機会はないかもしれませんが(出来れば皆無がベスト)、何かの拍子にログが壊れてしまったけどMHT形式のバックアップログがある場合などに有効かと思います。バージョン1.6.4が生成するMHTファイルを参考に作ったので、古いバージョンで作成されたMHTファイルではうまく動かないかもしれませんが、その時はお知らせ下さい。

添付ファイル: mht2log.phpattachedIcon 

— posted by martin at 04:50 pm   commentComment [1]  pingTrackBack [0]

T: Y: ALL: Online:
Created in 0.0055 sec.
prev
2024.4
next
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30