ブログトップ
WordPress形式エントリーデータインポートプラグイン開発
2009年10月14日
今回は
先日公開したWordPress形式エントリーインポートプラグイン( 以下、WPインポートプラグイン )についての説明をしたいと思います。
今回のプラグインは
SOY2フレームワークのO/RマッパーであるSOY2DAOを利用しているので、
SOY2DAOについて重点的に話を進めていきます。
今回の説明に使用するプラグインは
プラグイン開発の基礎的な部分はTwitter投稿プラグインにまとめてあるので、
始めにそちらを見ておいてもらうと助かります。

WPインポートプラグインは
プラグイン管理のプラグインの詳細画面で動作させるプラグインなので、
プラグインの初期化時にCMSPlugin::addPluginConfigPageのみを追加する。
( config_pageのメソットを追加し、そこにインポートのロジックを書く )
function init(){
    CMS::Plugin::addPluginMenu($this->getId(),array(
        "name" => "WordPress形式データインポートプラグイン",
        "description" => "WordPress形式のエントリーデータを取り込むために使用します",
        "author" => "日本情報化農業研究所",
        "url" => "http://www.n-i-agroinformatics.com",
        "mail" => "soycms@soycms.net",
        "version" => "0.1"
    ));
    
    CMSPlugin::addPluginConfigPage($this->getId(),array(
        $this, "config_page"
    ));
}
config_pageメソッドには、管理画面詳細のフォームデザイン、ファイルのアップロードとWPインポートのロジックを書きます。
function config_page(){
    //ファイルのアップロード
    if(isset($_POST["upload"])){
        $file = $_FILES["file"];
        $new_path = SOY2HTMLConfig::CacheDir() . $file["name"];
        if($this->checkValid($file["tmp_name"]) && move_uploaded_file($file["tmp_name"],$new_path)){
            $this->uploadFilePath = $new_path;
        }
        CMSPlugin::savePluginConfig($this->getId(),$this);
        CMSPlugin::redirectConfigPage();
    }
    //インポート
    if(isset($_POST["import"])){
        include_once(dirname(__FILE__) . "/wp_import2.php");
        $this->lastImportDate = time();
        CMSPlugin::savePluginConfig($this->getId(),$this);
        CMSPlugin::redirectConfigPage();
    }
    ob_start();
    include_once(dirname(__FILE__) . "/config.php");
    $html = ob_get_contents();
    ob_end_clean();
    return $html;
}
( ファイルのアップロードとconfig.phpについては省略します。)
インポートのところでwp_import2.phpをインクルードしていますが、
wp_import2.phpにインポートのロジックが記載されています。
そのロジックに関しては次回

