<head>\r
<!--\r
Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)\r
- Copyright (C) 2002-2009 The Nucleus Group\r
+ Copyright (C) 2002-2010 The Nucleus Group\r
\r
This program is free software; you can redistribute it and/or\r
modify it under the terms of the GNU General Public License\r
(see nucleus/documentation/index.html#license for more info)\r
\r
@license http://nucleuscms.org/license.txt GNU General Public License\r
- @copyright Copyright (C) 2002-2009 The Nucleus Group\r
+ @copyright Copyright (C) 2002-2010 The Nucleus Group\r
-->\r
<!-- $Id$ -->\r
<!-- $NucleusJP: plugins.html,v 1.9 2007/02/04 06:28:45 kimitake Exp $ -->\r
<!-- <li><a href="#parser">Using the <code>PARSER</code> class</a></li>\r
<li><a href="#"></a></li>\r
<li><a href="#"></a></li>\r
- <li><a href="#"></a></li>\r
<li><a href="#"></a></li>-->\r
</ul>\r
\r
{\r
case 'SqlTablePrefix':\r
return 1;\r
+ case 'SqlApi':\r
+ return 1;\r
default:\r
return 0;\r
}\r
<h2>Nucleusテーブルへのアクセス</h2>\r
\r
<p>v2.0まで、Nucleusテーブルへのアクセスは単に<code>nucleus_</code>と名づけられたテーブルに対してSQL命令を実行するだけのものでした。Nucleusのバージョン2.2以降はカスタム・テーブル名を利用できるようになったため、プラグイン開発に若干注意する必要があります。</p>\r
+<p>v3.5でNucleusはPDO等MySQL以外のデータベースハンドラのサポートをするようになりました。この機能はベータ実装ではありますが、プラグイン開発者はデータベースの呼び出しに使用する関数の「sql_*」への書き換えを始めてください。\r
+基本的に、使用している全ての「mysql_*」関数を「sql_*」に置き換える必要があります。たとえば<code>mysql_fetch_assoc($result)</code>は<code>sql_fetch_assoc($result)</code> に置き換えになります。\r
+全ての関数を書き換えたら、Sql APIが無い古いバージョンのNucleusインストールできないように、次に示すコードをプラグイン内に記述して、インストールに必要な最低バージョンを350に指定する必要があります。<br />\r
+<code>function getMinNucleusVersion( return '350';)</code></p>\r
\r
<ol>\r
<li><code>nucleus_item</code> などの固定されたテーブル名の代わりに、テーブル名のプレフィックスを生成するために <code>sql_table('item') </code>というグローバルファンクションを利用します。</li>\r
<li><code>supportsFeature('SqlTablePrefix')</code> が呼ばれたときにプラグインが1(真)を返すようにします。これがないと、カスタムプレフィックスがセットされている場合でバージョンが2.0より大きいNucleusではプラグインをロードできません(用心のため)。</li>\r
+ <li>3.5以降:<code>supportsFeature('SqlApi')</code> が呼ばれたときにプラグインが1(真)を返すようにします。3.5以降のバージョンでは、データベースのバックエンドにmysqlでないものを使用している場合にプラグインをロードできなくなります(用心のため)。</li>\r
</ol>\r
\r
<p class="note">v2.0までのNucleusではグローバルファンクション <code>sql_table</code> は利用できないことに注意してください。もしこのメソッドを用いつつ、プラグインをv2.0以下のNucleusで動作させたい場合は、以下のコードをプラグインクラスの前に追加してください。</p>\r