tabimoba.net

とあるエンジニアの雑記帳

CodeIgniterからMODx API (MODx Evolution)を利用する方法

※本記事はQiitaからの移行記事です。

以下のようなコードを追加することで、CodeIgniterからMODx Evolutionで作成されたリソース、チャンクなどを呼び出せるようになります。

コード

以下の内容をCodeIgniterのindex.phpに追加します。

$modx_dir = '/MODxのインストール先ディレクトリ/';
define('MODX_API_MODE', true);
include($modx_dir . 'index.php');

以下のようなライブラリを追加します。

//if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class lib_modx_api extends DocumentParser {

    public function __construct() {
       parent::__construct();
    }
}

使用例

リソースID1の本文(content)を出力したい場合の例

class example extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->library('lib_modx_api');
    }

    function index() {
        $result['content'] = $this->lib_modx_api->getField('content', 1);
        $this->load->view('example', $result);
    }
}

注意点

MODxはGPLv2であるが、CodeIgniter2はOSL3.0で、ライセンスは非互換とされているため、この使い方はライセンス違反になる恐れがありますので注意が必要です。 CodeIgniter3はMITライセンスのため問題ないと思います。