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

js/lib.jsのアップデート他

category-icon

 こんばんは、martinです。近頃、iTunes Music Storeで鬼束ちひろWの「月光」を購入しました(200円)。以前、深夜に放送されていたトリックG(再放送?)の主題歌に使われていて気になっていた曲です。何回聴いても飽きませんねぇ。

 さて、バージョン1.5.4に添付していたjs/lib.js(このファイルの1行目にあるタイムスタンプが $ 2006/10/25 17:13:47 なもの)で、リスト表示モード(Ajaxモード時)での記事表示が出来ないという報告がありました。調べてみると、動的にエレメントを生成する関数で不具合を見つけました。それ以前のlib.jsではちゃんと動いていたんですが、スピード重視のチューンナップを施した際に、必要な部分まで削ってしまったようです。具体的には、839行目あたりが、

if(parent) parent.appendChild(el);

な方は修正が必要です。次のようにします。

if(parent) parent.appendChild(el); else d.body.appendChild(el);

 ちなみに、(この修正を行った上で)「リスト表示」を選び、リスト表示されたタイトルをクリックすると、ブログの画面はそのままで、記事だけを閲覧できる独自のダイアログボックスが出現します。このボックスに記事を表示させる仕組みですが、前後の記事は、Ajaxを利用して記事の内容だけを読み込んでいるので、ページ全体を書き換える手間がなく、スムーズな記事のナビゲートが可能になっています。また、この使い方に抵抗がある場合は、utils.phpの6行目にある、

define('LIST_AJAX_MODE', 1);      // リスト表示でAjaxモードを有効にするなら 1 を指定

の「1」を、「0」もしくは「FALSE」に指定すると、Ajaxモードが無効になり、リスト表示された記事タイトルをクリックすると、記事が単独表示されます。この場合は、ページ全体を書き換えるので、ページデザインによっては(アフェリエイト用の外部スクリプトを複数設定しているとか)、読み込みに時間がかかることもあるかもしれません。そこは、好きな方を選ばれて下さい。

 js/lib.jsを添付しておきますが、ついでに、まだ試験的ですが、記事の個別表示の際に、コメントとトラックバックを統合して表示させるように改良したutils.phpも添付しておきます。試して見たい方はどうぞ。このサイトで使っています。既存のutils.phpを上書きすれば良いです。あと、コメントフォームの画面でもトラックバックのURLが表示されるようにしたmodules/comment.inc.phpも添付しておきます。

添付ファイル: comment.inc.phpattachedIcon  utils.phpattachedIcon  lib.jsattachedIcon 

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

Trackback.phpのアップデート

category-icon

こんばんは、martinです。トラックバックスパム対策にて、trackback.phpをアップデートしたのですが、正規表現で不備があったので、その修正版をアップしておきます。変更点は、昨日のコメントLink にもありますが、trackback.phpの56行目あたりを、

$jp_pattern = '{(
    (?:¥xA4[¥xA1-¥xF3])+| # Hiragana
    (?:¥xA5[¥xA1-¥xF6])+ # Katakana
)}x';

としています。最後にパイプ(|)が入っていたのですが、これだと、何でもすり抜けてしまいます。ほんとは、この正規表現の後に半角カタカナのやつも入れていたのですが、これは不要だろうと考えて削除して、その前のパイプが残ってしまいました。

 あと、アクソン付きのアルファベット(フランス語)なんかも、たまにすり抜けるようですね。。これは、69行目を

if(preg_match('{^[¥x20-¥x7E[:alnum:]]+$}', $target)){

とでもしたら良いですかねぇ。他言語のときはイマイチ知識不足。。最初の修正を入れていれば、その時点でアクソン記号のやつも弾きそうな気はしますが、いかがなもんでしょう。

添付ファイル: trackback.phpattachedIcon 

— posted by martin at 06:37 pm   commentComment [0]  pingTrackBack [0]

差分アップデート・・・

category-icon

 こんにちは。昨日、久しぶりにアップしたのですが、コメントが付かないなど基本的なところでミスってました。うーむ、情けない(-o-)

 トラックバックは、デフォルトでは、トラックバックしてきた相手にこちらのリンクがあるかどうかのチェックを入れてみたのですが、この仕様はサーバー依存なところもあるので、デフォルトではオフにしました。使えるところでは有効にしてよいと思います。

 現時点での差分を添付しておきます。

追記

[2006/10/26 20:4:46] コメントモジュールで、英数字のみの場合のフィルターが抜けていたので、修正しています。modules/comment.inc.php です。

 

添付ファイル: DIFF061026.zipattachedIcon 

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

 

ppBlog1.5.4に

category-icon

こんばんは。地元ソフトバンクホークスは3年連続プレーオフで敗退。まぁ、昨年はロッテが久しぶりということで、今年こそはと思ったのだけれど、今年はロッテでも西武でもなく、日ハムじゃないですか。まぁ、久しぶりのようだからこのまま日本一になって欲しいと思うmartinです。ホークスが日本一になったときは、そりゃ嬉しかったからなぁ。北海道も盛り上がるだろうな。

 という訳で、久しぶりにバージョンアップしました。ネットを見渡すと、ブラウザではIE7の正式版(今は英語版だけかな)が出たし、今日(25日)はFirefox2.0がリリースされ、タイミング的にはいい塩梅です?;w)

 今回はマイナーアップですが、メインはトラックバック(以下TB)スパム対策です。このブログでも週末になると、海外からのTBスパムの数がすごいことになります。それなりに、弾く仕組みは用意していたつもりなんですが、個別記事ごとのTBの許可設定などが無効であったバグがありましたし、そのあたりの修正も含めて、新たなギミックを追加しました。

 新しい仕組みとしては、TBしてきた相手のサイトに、こちらのサイトのリンクが含まれていなければ、つまり、TB上での相互リンクが成立しなければTBを受け付けない、というものです。これはまだ試験的な実装になりますが。一応、エキサイトブログから試しにTBを発射してみたんですが、エキサイト側のブログに、こちらのドメインのアドレスが含まれていれば(文中で言及していれば)TBを受け付け、リンクという形で言及がなければTBを受け付けなかったことを確認しています。これは、trackback.phpの17行目で有効、無効の指定が出来るので、まともなTBも弾いてしまうようなら、この部分を次のようにして下さい。

define('CHECK_REFERRED', FALSE);

仮にこの部分でTBを弾かなくても、TBのサマリー文に平仮名やカタカナが含まれていなければ却下という設定も出来るので、かなりのTBスパムが防げるのでは思っています。

  あと、目玉というわけではないのですが、最近の投稿ビデオブームを受けて、YouTubeやGoogleVideo、マイクロソフトのSoapboxビデオへのリンクを簡単に貼れる記法を追加しました。YouTubeの場合、次のように指定します。

[yt:(ビデオのID):横幅:縦幅]

同じく、GoolgeVideoは、ytの部分がgvになります。Soapboxならsbです。横と縦のサイズは整数で指定しますが、これは省略できます。また、横だけ指定だと自動的に縦も計算して表示します。数字の省略は出来ますが、2つのコロン(:)は必ず記入して下さい。

 具体例を次のエントリーで示します。あと、いつものように差分ファイルを


— posted by martin at 12:33 am   commentComment [3]  pingTrackBack [1]

1.5.1からのアップデート

category-icon

一つ前のバージョンである1.5.1からのアップデートについて述べておきます。今回、修正を加えたファイルは、基本的に以下のもの。

  • index.php
  • utils.php
  • cache.php
  • trackback.php
  • modules/comment.inc.php
  • modules/page.inc.php
  • modules/tags.inc.php
  • js/lib.js
  • js/comment.js

 このうち、trackback.phpは、修正と言うほどのものでもないので、現在ので問題なくトラックバックを受信出来ているならスルーしていいです。基本的には、残りのファイルを上書きします。index.phpやutils.phpに関しては、独自に手を加えていることもあるでしょうから、ファイル比較が出来るエディタなどで、差分だけを追加すれば良いと思います。個人的には、エディタはUneditorGというフリーのソフトを使っていますが、かなりオススメです。PHPやJavaScriptのキーワード別色分け表示などは勿論のこと、正規表現での検索・置換機能も当たり前、ファイル比較も簡単に出来ます。これほどの高機能のソフトがフリーで手にはいるのですから使わない手はありません。

 閑話休題

今回のアップデートのメインは、作成したページの常時表示を可能にしたことです(「オントップ機能」と読びます)。「ページ作成機能」を用いてページをまだ作成していない方は、上記ファイルを上書きするだけで特にそれ以上のことは必要ないです。そうでなくて、ページ作成をしていて、サイドバーのメニューボックスにページへのリンクをしている方は、上記ファイルを上書きした後にちょっとした「操作」が必要になります。具体的には、

  1. 管理画面から、「ページ管理」をクリック
  2. それまでに作成したページ一覧が表示されますが、この画面で「オントップ」という項目が増えています
  3. 特にオントップにしなくても、まずは適当にどれかページを選んで、セレクトボックスから「モード1」か「モード2」を選んでください
  4. これで選択したページが「オントップ」に設定されますが(このときにowner/pagelist.ini.phpとキャッシュファイルの書き換えを行います)、この機能を使わないときは、もう一度セレクトボックスから「—」を選んで下さい。「オントップ」機能が解除されます。

ということをすれば1.5.1からのアップデートは完了します。

 JavaScriptに関しては、主にIE6向けの修正が殆どでした。個人的にはIE7RC1(注:動作確認用として。ブラウズするときはFirefoxですよ)を使っていて、IE6での動作確認をきちんとしていなかったのですが、久しぶりにアクセス解析を見てみると、IE6系のブラウザシェアは未だに軽く8割以上じゃないですか:( 無視できません。。

 追記。当直室からこの記事を書いています。先ほどから雷雨とともに、時々停電になり部屋が真っ暗になります。。びびりますがな。


— posted by martin at 11:03 pm   commentComment [7]  pingTrackBack [0]

Created in 0.0072 sec.
prev
2025.7
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 31