名前空間

拡張アプリでの拡張方法を見て行く前に、拡張アプリでの名前空間を説明します。

名前空間

ファイルのパスと命名規則はPSR4に従います。(ただし下位互換性を保つため一部したがっていない場合があります)

extension/plugins の名前空間は Acms\Plugins になります。

パス extension/plugins/SamplePlugin/ServiceProvider.php

クラス名 Acms\Plugins\SamplePlugin\ServiceProvider
記述例 <?php

namespace Acms\Plugins\SamplePlugin;

class ServiceProvider extends \ACMS_App
{
}

モジュールの拡張

拡張アプリでのモジュールの拡張方法を見ていきます。基本的には、通常の拡張方法と同様ですが名前空間・クラス名に気をつけましょう。

GET・POST モジュールは、extension/plugins/独自ディレクトリ/(GET|POST) ディレクトリ以下に設置します。

例: extension/plugins/SamplePlugin/GET/Sample.php

<?php

namespace Acms\Plugins\SamplePlugin\GET;

use ACMS_GET;
use Template;
use ACMS_Corrector;

/**
 * テンプレート上では、標準のGETモジュールと同様に、
 * '<!-- BEGIN_MODULE Sample --><!--END_MODULE Sample -->' で呼び出されます。
 */
class Sample extends ACMS_GET
{
    function get()
    {
        $Tpl = new Template($this->tpl, new ACMS_Corrector());
        $data = array();

        return $Tpl->render($obj);
    }
}

気をつける点としては、「GET」 は 全て大文字 なので注意してください。あとは、モジュールの開発 を参照ください。

クレジットカード決済サービス「Square」と連携できるECサイトテーマをリリースいたしました


いつも a-blog cms をご利用いただきありがとうございます。

本日2023年3月22日に、公式テーマに新しくクレジットカード決済の仕組みを搭載したECサイトテーマ「Square」が加わったことをお知らせいたします。

クレジットカード決済サービスはSquareと連携します。

専用インストーラーを使えば、a-blog cms とテーマ、拡張アプリを簡単にまとめてインストールができ、オンライン販売を始める準備がすぐに整います。 テーマは無料でダウンロードできます。(※公開する際は別途 a-blog cms 本体のライセンス費用が必要です)

▼ Squareテーマ紹介ページ


校正オプションの拡張

拡張アプリでの校正オプションの拡張の仕方を見ていきます。名前空間・クラス名に気をつけましょう。

ファイル名は任意ですが、わかりやすくする為、Corrector.php とします。

例: extension/plugins/SamplePlugin/Corrector.php

<?php

namespace Acms\Plugins\SamplePlugin;

class Corrector
{
    /**
     * sample
     * 校正オプションのサンプルメソッド
     *
     * @param  string $txt  - 校正オプションが適用されている文字列
     * @param  array  $args - 校正オプションの引数 {var}[sample('ここの値')]
     * @return string       - 校正後の文字列
     */
    public function sample($txt, $args = array())
    {
        // 例 {var}[sample('hoge','fuga')]
        // {var}の中は,'a-blogcms' とする

        $hoge = isset($args[0]) ? $args[0] : null; // 'hoge'
        $fuga = isset($args[1]) ? $args[1] : null; // 'fuga'

        return $hoge.$fuga.'+'.$txt; // 'hogefuga+a-blog cms'
    }
}

ServiceProviderの設定

これだけでは、通常の拡張方法と違い動作しません。動作させるためには、このクラスのオブジェクトをa-blog cmsに登録する必要があります。

ServiceProviderで校正オプションの実装クラスを登録する

拡張アプリの基本で作成した ServiceProviderに少し手を加えます。

<?php

namespace Acms\Plugins\SamplePlugin;

use ACMS_App;
use Acms\Services\Common\CorrectorFactory;

class ServiceProvider extends ACMS_App
{
    /* 省略... */

    /**
     * サービスの初期処理
     */
    public function init()
    {
        $corrector = CorrectorFactory::singleton();
        $corrector->attach('SampleCorrector', new Corrector);
    }

    /* 省略... */
}

ポイント

Acms\Services\Common\CorrectorFactory のオブジェクトを

CorrectorFactory::singleton();

で取得して 先ほど作成した Acms\Plugins\SamplePlugin\Correctorattach します。

  • 第一引数: 被らないような任意の文字列
  • 第2引数: 実装クラスのオブジェクト

これで拡張アプリをインストールすれば、Corrector.php で実装した校正オプションが利用できるようになります。