Nucleus

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

スキン専用プラグイン [Nucleus]

2007年5月7日

スキンに専用のプラグインが必要なとき、プラグインのインストールを行わずに doSkinVar/doTemplateVarの呼び出しを実現させるための仕組み。

製作中の、Nucleus版フォーラムで使う予定であったが、実際にプラグインをインストールする必要がありそうなので、このルーチンは削除の予定。うまく働いていたのでコードを捨てるには忍びないため、ここにメモ。

デバッグ用msgbox()関数 [Nucleus]

2007年5月4日

config.phpの冒頭に、以下のコードを追加。

function msgbox($text){
    echo '<script type="text/javascript">/*<![CDATA[*/'."\n";
    echo 'var confirm_canceled;'."\n";
    echo 'if (confirm_canceled!="yes") {'."\n";
    echo '  if (!confirm(unescape("'.rawurlencode($text).'"))) confirm_canceled="yes";'."\n";
    echo '}'."\n";
    echo '/*]]>*/</script>'."\n";
}


関数名は、『fprint』でも何でも、好きなものを…。

Nucleus 3.3 SQLite [Nucleus]

2007年5月3日

SQLite版 Nucleus 3.3 を、フォーラムにアップロードしました。

SQLite ラッパー 0.8.5 を採用しています。以下の特徴があります。

1.SQL クエリーのパフォーマンスがアップ
 ito-yuさんご指摘のように、『PRAGMA short_column_names=1』を始めに実行するようにしました。これにより、SQLクエリー実行時のPHPのコード実行量が減り、パフォーマンスがアップしました。

2.セキュリティー強化
 SQLiteでは『;』を用いることで、2つ以上のクエリーを一度のクエリー文で実行することが出来ます。これは、SQL インジェクションに非常に弱いため、MySQLと同様こういった2つ以上のクエリーを禁止するようにしました。

3.インストールの高速化
 インストール時に、『PRAGMA synchronous = off;』を実行することで、インストールが高速化されました。

4.バグフィックス
 主に、ALTER TABLEでのバグフィックスを行いました。

新手のスパムに注意 [Nucleus]

2007年4月23日

サーバログを見ていて、おかしなことが起こっていることに気がついた。

 このブログのあるページへのアクセスで、リファラとして Google のサイトの検索結果ページが指定されているのであるが、ここで用いられている検索語が、当ブログとはまったく関係のない言葉なのである。仮に、ここで用いられている検索語を『そんな 検索語は 含まれていません』だとしよう。当ブログでは、『そんな 検索語は 含まれていません』という表現はまったく使っておらず、Google の検索でヒットするはずはない。

 もう一つおかしなことは、『そんな 検索語は 含まれていません』で Google で検索すると、Nucleus で構築されているいくつかのサイトがヒットすることである。

Nucleus-SQLite 3.3 RC1 [Nucleus]

2007年4月20日

Nucleus 3.3 に関して、Nucleus JP チームの動きがあわただしくなってきて、RC1 が Sourceforge でリリースされている。正式版のリリースも間近。

SQLite 版の RC1 も作成したので、ここにメモ。

Nucleus 3.3 EUC-JP RC1 SQLite
Nucleus 3.3 UTF-8 RC1 SQLite


Nucleus 3.3 へアップグレード後の変更点 [Nucleus]

2007年4月18日

CSS ファイルを若干変更する必要がある。

以下の記述を追加
.formfield
{
    display:block;
(略)

.commentform .formfield, .commentform .formbutton, .loginform .formbutton {
    display: block;
}


以下の様に変更
変更前
#nucleus_cf_name, #nucleus_cf_mail

変更後
#nucleus_cf_name, #nucleus_cf_mail, #nucleus_cf_email

Nucleus本、いよいよ販売です(Nucleus 3.3 リリースも間近です) [Nucleus]

2007年4月17日

 地域にも拠るそうですが、4月20日からソーテック社出版の『Nucleusでつくる!最強のブログサイト』が販売開始されます。著者は、Wouter Demuynckさん(Nucleus の生みの親;序文を担当)を含めて15人で、私も少しばかりお手伝いさせていただきました。

 本の出版にあわせて、Nucleus 3.3 をリリースすることになって、Kimitake さんを中心としてコードの整備が行われました。この新しいバージョンは、これまでのバージョンと違って、日本チームにより、最終整備が行なわれています。したがって、日本語版のリリースが、英語版のリリースより先になると思います。

 この Nucleus 3.3 で新しくなった点について、気のついたところをまとめてみました。

Nucleus の PostPluginOptionsUpdate にバグ [Nucleus]

2007年3月30日

PostPluginOptionsUpdate イベントにバグを見つけた。これは、プラグインオプションを変更したあとに起こるイベントである。このイベントを単独で使用するときにはバグは発生しないが、このイベントより前に起こる別のイベント(PostAuthenticationなど)とともに使用すると、変更されたプラグインオプションの値が、getOption() の戻り値として反映されない。

Cookie key を暗号化 [Nucleus]

2007年3月28日

 Nucleus では、ログインキーは md5 で暗号化されて MySQL データベースに保存されているが、クッキー認証キーは生のまま保存されている。これだと、万一、何かしらの脆弱性(SQL injection など)でクッキー認証キーが洩れた場合に、セッションハイジャックが起きる。
 md5 で暗号化すれば、万一クッキー認証キーが洩れても、暗号解読が必要なので、セッションハイジャックは難しい。ついでに、md5 による暗号化の前に$_SERVER['REMOTE_ADDR']の情報も加えておけば、XSS でクッキー認証キーが洩れても、別のIP address からの接続はほとんど不可能である。
 先日、MEMBER.php の改造でこれを実現しようとしたのであるが、なかなか改造コードが完成しなかった。改めてコアのコードを見てみると、globalfunctions.php の改変だと、比較的簡単にこれが実現できることが分かった。

NP_match [Nucleus]

2007年3月14日

Nucleus 3.3 の<%if%>の新しい機能、doIf() を使ったプラグインの大まかな構想がほぼ決定。NP_ExtendedIf の後継となるもので、より高いパフォーマンスと機能が期待できる。この構想に従い、NP_ExtendedIf は引退させることになりそう(3.24より前のNucleus用に、wiki のページは置いておくけれども)。ちょっと勇み足かもしれないけれど、ここに公開。

このプラグインは、なるべく肥大化しない方向で、シンプルなソースコードになるように開発したい。おそらく、100行以下を一つの目安とすると思う。

(最新版の情報は、Wiki にあります。)
<<前の記事   後の記事>>