WebTips


Top / PHP / Pukiwiki Plugins / dbout.inc.php

PHP/Pukiwiki Plugins/dbout.inc.php


 Pukiwikiでデータベースを使いたくなる事はありますか?
 ほとんどの人がYESだと思います。Pukiwikiはテキストベースのデータを変換するとても柔軟なシステムで、あえてデータベースを使わないところにもこだわりを感じます。そんな美しさに反して、やはりデータベースを使いたくなる事はありますよね。別のシステムで登録したデータを集計し、Pukiwiki上で表示、なんて事が出来れば便利ですから。
 このプラグインはその辺のかゆいところに手を届かせるように作りました。
 なお、試験的にこちらのリンクのようなテーブルを作っています。

概要

データベースへの接続

 データベースへの接続方法はいろいろ考えられますが、一番簡単で標準で入っているPEARライブラリのDBを使う事にしました。mysql_connect等で接続は可能ですが、DBを変更したりしなければならない時にも便利ですからね。
 接続ファイルは外部ファイルから読込む事にします。万が一ハックされた時にデータベース接続のパスワードが丸裸、じゃぁたまりませんので。気休めかもしれませんが、外部ファイルで読込む事にします。通常、直接WEBアクセスが出来ないようなインクルードディレクトリに入れておくのが比較的安全です。インストール後、PLUGIN_DBOUT_CONNECT_FILEを設定して下さい。

データの取得

 できるだけ汎用性があるように、SQLをそのまま書き込めるようにしました。危険だといわれればその通りです。不特定多数がページを返る事ができるようなシステムには合いません。生のSQLを書き込めないような方法を取る事もできます。これとて危険性は伴いますが。

  • 書式
    • 生のSQLを書く場合
      #dbout(オプション){{
      SQLを書いて下さい
      }}
    • 自動的にSQLを生成する場合
      #dbout(t:テーブル名,オプション)

取得したデータの表示

 オプションで書式を指定しない場合はテーブル表示です。一番汎用性があると思われます。

  • #dbout(){{
    SELECT title,url FROM mytest
    }}
  • 実際の表示
    WEBTIPShttp://webtips.open-log.net/
    Yahoo ジャパン!http://www.yahoo.co.jp/
    Googlehttp://www.google.co.jp/
    goohttp://www.goo.ne.jp/
    asahi.comhttp://www.asahi.com/
    MSN 毎日http://www.mainichi-msn.co.jp/
    NIKKEI NEThttp://web.nikkei.co.jp/
    YOMIURI ONLINEhttp://www.yomiuri.co.jp/
    CNNジャパンhttp://www.cnn.co.jp/
    ZAKZAKhttp://www.zakzak.co.jp/
    日刊スポーツhttp://www.nikkansports.com/

 また、次のような形式でオプションに設定すれば、どのようにでも出力形式を変える事が出来ます。$keyは取得したカラム名に対応しています。REG:〜と言う形式で指定して下さい。

例 REG:<td class='hoge1'>$key1</td><td class='hoge2'><a href='$key2'>$key3</a></td>;

 また、テーブル以外の場合はヘッダーやフッターを指定したい場合があります。こういう場合はREG:HEAD:ヘッダBODY:繰り返しの中身FOOT:フッタという形式で指定出来ます。BODYはデータ数によって繰り返します。

 インストール等の設定方法等について書いて行きます。



トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-09-07 (金) 15:19:58 (1098d)