[ カテゴリー » アップデート ]

アクセス解析:グーグルの新ブラウザChromeに対応

category-icon

 こんばんは。もう秋ですね。

 さて、昨日ぐらいに、グーグル仕様のブラウザGoogle Chromeがリリースされました。まだβ版ですが、サクサクしてます(β版だから軽いという話もある)。なので、ppBlogのアクセス解析もこれに対応させました。もう早速アクセスがあるようです。

Google-Chrome
Operaより多いんだな・・・。

 ちなみにこのブラウザがはき出すUser-Agentは以下のような感じ。レンダリングエンジンには、Safariと同じWebKitを使っています。ブラウザ判定としては、Chrome/ という文字が含まれていれば・・・ってなりますね。

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

 まだ、使いこなしてないけれど、何だか最近FirefoxでのGメールのレスポンスが遅い気がするので、Gメール専用アプリとして使うと良いかも。これ、Gmailがえらく速い。 アプリケーションのショートカットをデスクトップ上に作ることが出来るLink ので、あたかもローカルのメールソフトみたいに使えるのが良い。ところでGmailはGoogle Gearsに対応しているんだろうか。

 最新版のstat/view.phpとアイコンを添付しておきます。アイコン は、stat/iconディレクトリにアップして下さい。view.phpはstatディレクトリの既存のやつを上書きです。

添付ファイル: diff080903.zipattachedIcon 

— posted by martin at 01:53 am   commentComment [4]  pingTrackBack [0]

万年祝日カレンダーのアップデート

category-icon

 こんばんは。ppBlogでは、万年祝日カレンダーに対応していたつもりですが、今月の敬老の日が第4月曜日になってますね。軒並み、どのバージョンのppBlogもそうなっている気がします。。

 ハッピーマンデーの計算方法で勘違いしていました。holiday.class.phpの65行目から68行目を以下のように修正しました。

function getMonday($y, $m, $wk) { // 第wk週目の月曜日の日付を返す
  $utime = strtotime("$wk Monday", strtotime('last Monday', mktime(0,0,0,$m,1,$y)));
  return date('md', $utime);
}

 なんか別にスマートな方法があるような気がしないでもない・・・。

 ちなみに、カレンダーには、誕生日などの個人的な記念日を登録することが出来ます。「管理画面」→「環境設定」→「記念日の設定」で設定できます。

追記: 添付ファイルをアップしただけではカレンダーは更新されません。カレンダーはキャッシュから表示させているので。なので、更新を反映させるには、9月の記事を書き庫するか、あるいは既存の9月の記事を編集して、「更新」するか(特に修正する必要はなく、ただ更新するだけ)、あるいはFTPソフト上から、直接、cacheディレクトリの200809_box1.dbといった200809のカレンダーキャッシュを削除すればOKです。

添付ファイル: holiday.class.phpattachedIcon 

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

アクセス解析の最新版です。

category-icon

 こんばんは。アクセス解析をブラッシュアップしました。基本的なインターフェイスは変わりませんが、従来の「OS/プラットフォーム」を分離させて、「検索エンジン2」と統廃合、「検索エンジン1」(センスのないネーミングだ)は「検索ワード」に変えました。

 「OS」の項目では、文字通りOS毎のシェアを表示するようにしました。従来は、プラットフォームとごっちゃになっていたので。以下スクリーンショットを挙げておきます(今月のある区間のデータです)。

stat1
新しいメニューです。
stat2

OS毎の集計では、WindowsXpが未だに7割近くを占めています。Vistaは10%にすら届いていません。大丈夫かなぁ。

 次は、プラットフォーム毎の集計画面です。いつ頃からか知らないけれど、グーグルやYahooで、ブログ検索専用のロボットがいるみたいで(Feedfetcher-GoogleとかYahooFeedSeekerJpとか)、それらは、従来の検索ロボットとは区別してカウントするようにしてます。
stat3

 んで、ブラウザ毎。OSでXPがトップなのを反映してか、相変わらずIE6が4割近く。。まぁ、これでも随分と減ったんですが。でも、よく見ると、Sleipnirが8%ぐらいあって、大体IE6エンジンが半分以上だろうからやっぱり4割以上は未だにIE6ということかな。それでも、Firefoxが2割強と健闘してます。時代も変わったもんです。
stat4

 次に「検索ワード」を見てみます。ppBlogが一番多いのは、まぁ当然として、JavaScript関連も目立ちますね。

stat5

 最後に、これは何も変わっていませんが、「ユーザー環境の取得」を挙げておきます。テーマなどをデザインするときに、ユーザーの画面の解像度とかは気になるところですが、今やXGAよりもSXGAの方が多いんですね。良いことです:)

stat6

 例によって、最新版を添付しておきますね。statディレクトリの既存のやつを上書きするだけです。

添付ファイル: stat080808.zipattachedIcon 

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

差分です。

category-icon

 こんばんは。バージョンを上げようかと迷いましたが、偶数よりは奇数が好きだし、そう大幅な修正をしたわけでもないので、差分で。でもファイルはいつもより多めかな・・・。主なところを挙げときます。

  1. 自動モブログを有効にしているときの独自セッションの挙動がおかしかったので、修正しました。モブログ投稿用のmob.phpをutils.phpの中で読み込む際に、2つ目のセッションが作られるんで、それでたまにログインしているのに、ログインアイコンが表示されないなどの症状が出ることもあったと思います。
  2. utils.php、admin.phpに関しては、結構、ちょこちょこ変えています。WindowsのApache+PHPな環境で、fgets関数Link が意図したように改行部位まで読んでくれないことがあるので(HTML文字実体参照を多用していると起こりやすい?)、それに対処したりとか、動的モードの際のカテゴリーの絞込みリンクの修正とかです。
  3. utils_admin.phpに関しては、オンポスト機能を取り入れたために、記事別のコメント・トラックバック許可指定が利かなくなっていたのを修正。新しく機能を付けると、それまで動いてものが動かなくなること多々あり。。
  4. 後は、editor.jsやらソースハイライト表示用のsyntax.jsのブラッシュアップとかです。syntax.jsでは、従来は、JavaScriptやらPHPの組み込み関数のハイライトに関しては、指定したものだけハイライトする仕様でしたが、これだと数が多すぎて埒が明かないので、適当に推定するようにしました。
  5. modules類に関しては、editor.jsに伴うものでwrite.inc.phpとedit.inc.php。記事を書きながら、ローカルプレビューはよく使うのですが、このボタンも固定ツールバーに貼り付けるようにしました。「公開」「ドラフト」ボタンもです。個人的には使いやすくなりました。
  6. 後は、ひとつ前の記事にあるように、Gメールからの擬似モブログ投稿にも対応しました。他のwebメールでは試していません。Gメールでは、記事の作成画面で、リッチテキスト形式(いわゆるWYSIWYGG)で記事が書けるので、ワープロみたいな書き心地を求めている方には、これを活用するのも良いかもしれません。個人的には、この手のエディタは、ちょっと動作がまどろっこしい部分があるので、「ローカルプレビュー」で確認しながら記事を書くというスタイルが好きですけど。記事管理用のarticle.inc.phpは、記事一覧の画面で記事のページ数を表示するようにしたりとか。

 今回は、こんなところですかね。この記事を書きながら思ったのですが、エディタ画面の固定ツールバーは便利なものですが、パソコンの解像度によっては、このツールバーの高ささえも気になることもあるかも知れないので、記事を入力中は、上に隠れてしまって、マウスを近づけると、ピョコッと出てくるというのも良いかも知れない。ステルスモードっていうのかな(違うか)?

 

添付ファイル: DIFF080805.zipattachedIcon 

— posted by martin at 08:11 am   commentComment [17]  pingTrackBack [0]

差分アップデート

category-icon

 こんばんは。v1.7.5になってだいぶ安定した気はしますが・・・と言いつつアップデートです。

 ひとつは、自動モブログを有効にしてると、アクセス解析の画面などでエラーが出る場合があると思うので、それに対処するためのutils.phpと(後、ソーシャルブックマークのAPIが変わったのがあるようでそれは今回見送り)、後は、JavaScript関連です。oParts.jsLink に関してですが、サーバーのセキュリティーの設定によっては、IEでの外部HTCファイルの読み込みが出来なくなる可能性もあるので、それに対処しました(うちのところがそうだったんですが)。具体的には、外部HTCファイルの読み込みを止めました。代わりに、みんなが使っているdoScrollメソッドを利用することにしました。もともとは、Diego Perini氏Link が見つけた手法です。右に倣えは好きではないけど、この場合、デメリットが見あたらない。

if(client.MSIE){ // IE向けDOMContentLoaded
 (function(){
   try {
     document.documentElement.doScroll("left");
   } catch(e){
     setTimeout(arguments.callee, 1); return;
   }
    F(); // 発火!
 })();
}

 後は、IE8やらSafari3で使えるdocument.querySelectorAllを利用できるなら、そうするようにしました。Firefox3.1でも使えるようになるでしょうし。Nativeな実装なので、ずっと速いです。oParts.query()関数の中で指定しています。

 次。エディタ用のスクリプトeditor.jsです。テキストエリアの高さ(縦幅)を文章の長さにフィットさせる関数をブラッシュアップして、結構正確に高さを合わせるようにしました。

function resizeTextArea(e){
 var MSIE = /*@cc_on!@*/false;
 var cssValue = function(p){ // 実際の諸々のサイズやらを取得する関数
  if(window.opera) e.style.lineHeight = "130%"; // Operaでは、1.3みたいな指定を読んでくれない
  return MSIE ? e.currentStyle[p.replace(/-¥D/, function(m){ return m.charAt(1).toUpperCase()})]
              : getComputedStyle(e, '').getPropertyValue(p);
 }
 var ruler = d.createElement("SPAN"); // テキストエリアのシャドウを作成
 ruler.textData = function(data){ if(MSIE) ruler.innerText = data; else ruler.textContent = data; };
 /* 以下でテキストエリアのサイズに関する情報を取得 */
 ruler.style.cssText += "position: absolute; left: 0; visibility: hidden; white-space: pre;"
                     +  "padding: " + cssValue('padding') + ";"
                     +  "font-size:"+ cssValue('font-size') + ";"
                     +  "line-height:" + cssValue('line-height') + ";"
                     +  "font-family:" + cssValue('font-family') + ";";
 document.body.appendChild(ruler);
 var rows = 1, lines = e.value.split(/¥n/), lineHeight = 17, curWidth = e.clientWidth;
 for (var i = 0, len = lines.length; i < len; i++){
  ruler.textData(lines[i]);
  if(ruler.offsetWidth > curWidth) rows += parseInt(ruler.offsetWidth / curWidth);
 }
 ruler.textData("A¥nZ"); // テキストエリア1行分の高さを知りたい
 lineHeight = ruler.offsetHeight/2; /* これでゲット*/
 document.body.removeChild(ruler);
 e.style.height = lineHeight * (rows + len + 1) + "px"; // rows+lenが見た目のほぼ正確な行数。遊びのために1行足す
}

挙動に関して、どういうのが使い勝手が良いかは、各人の好みによりますが、文字入力に応じてテキストエリアのサイズを自動的に変えたい場合は、editor.jsの778行目にあるコメントアウトを外して

ed.on('keyup', function(){
 resizeTextArea(ed);
});

として下さい。一応、このデモサイトLink を挙げておきます。

例によって、最新版との差分を添付しておきます。単なる上書きで良いです。最新版のjs/oParts.jsにしたら、もはやjs/ie.htcは不要ですので削除して下さい。

添付ファイル: DIFF080801.zipattachedIcon 

 


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

T: Y: ALL: Online:
Created in 0.0475 sec.
prev
2017.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