クレジットカード決済サービス「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 で実装した校正オプションが利用できるようになります。

Ver. 3.0.23 フィックスバージョンリリースのお知らせ


2023年03月24日にリリースした Ver. 3.0.23 の修正内容についてご紹介いたします。

現在お困りの問題に該当する項目がありましたら、お早めにバージョンアップのご検討をお願いいたします。

Ver. 3.0.23 リリースノート

不具合修正

  • CMS-6303 Topicpath モジュールの表示設定でカテゴリーとエントリーの「フィールド」のツールチップ内容が間違っている問題の修正
  • CMS-6297 Entry_Body でエントリーを複数表示した場合に、SmartPhoto で表示する画像をエントリー毎にグループ化する機能が動作していない問題の修正
  • CMS-6309 ロールを削除した場合のアラートにスタイルが適用されていない問題の修正
  • CMS-6310 PHP バージョンが 8.1 の場合、Feed_ExList モジュールで PHP エラーが出る問題の修正
  • CMS-6312 メディアのキャプション・代替テキスト・リンクのプレースホルダーの意図がわかりづらい問題を修正
  • CMS-6307 標準テーマのキーワード検索結果ページで「noindex」のmetaタグが出力されない場合がある問題を修正
  • CMS-6314 エイリアスにコードを設定している場合、リンクがエイリアスのリンクにならない問題を修正
  • CMS-6315 メンテナンスメニューから使用していないデータベースのテーブルを削除するときにPHPエラーが出る問題の修正
  • CMS-6318 .htaccess の index.html なしへの正規化を修正(ディレクトリを切ってa-blog cmsをインストールしている場合、リダイレクトがおかしくなる問題への対応)
  • CMS-6319 画像ユニットで登録した画像が存在しない場合、PHPエラーが出る問題を修正
  • CMS-6320 PHP8.1 で SMTP 経由でメール送信時にPHPエラーが発生する問題の修正
  • CMS-6323 /include/edit/module-custom-left.html をinclude しても「編集する」が左側に配置されない問題の修正
  • CMS-6329 画像ユニットで登録した画像が存在しない場合、PHPエラーが出る問題を修正
  • CMS-6330 エントリーのインポートで、古いバージョンのエクスポートデータだと、画像のインポートに失敗する場合がある問題を修正

主なリリースノート内容

CMS-6297 Entry_Body でエントリーを複数表示した場合に、SmartPhoto で表示する画像をエントリー毎にグループ化する機能が動作していない問題の修正

SmartPhotoを拡大表示した時、下側に表示されるサムネイルが、エントリー毎にグループできていない問題を修正しました。



問題

Entry_Body の モジュールID設定のイメージビューアーにはデフォルトで data-rel="smartPhoto[{unit_eid}]" という値が設定されています。

これは、Entry_Body でエントリーを複数表示した場合(一覧ページなど)に、SmartPhotoで表示した時の下側に表示されるサムネイル画像を、そのエントリーに限定するために設定されていましたが、この機能が動作していなく、他のエントリーも一緒にサムネイル表示される状態となっていました。

* この仕組みは、SmartPhoto以前の prettyPhoto による仕様で、SmartPhotoでは対応できていなかったことになります。

修正内容

「SmartPhoto」では data-group 属性 でグループ化できる仕様になっているため、テンプレート(system/_layouts/unit.html)にて直接 data-group 属性にエントリーIDを記述するようにしました。

<a href="{url}" {viewer}[raw] data-group="{link_eid}">

* 以前の仕様だと、link#front ブロック内で {unit_eid} 変数が解決されないため、link#front ブロックでエントリーIDを表示できるように、{link_eid} を追加しました。

次にデフォルトの Entry_Body の イメージビューワー の設定(config.system.default.yaml と各テーマの初期データ)を data-rel="SmartPhoto" へ変更しております。

また、Entry_Body以外のSmartPhoto起動場所には、class属性に「js-smartphoto」を指定するように変更しました。

テンプレートの修正が必要な場合

今回の問題は、基本的にはCMSアップデートにより自動で対応されますが、メディアユニットや画像ユニットを独自にカスタマイズしている場合は、カスタマイズしているユニットテンプレートに、 data-group="{link_eid}" を追加するようにお願いいたします。

CMS-6307 標準テーマのキーワード検索結果ページで「noindex」のmetaタグが出力されない場合がある問題を修正

標準テーマでは、キーワード検索結果ページはインデックスされないようにテンプレートが仕込まれています。

理由

ユーザーによる好きな検索ワードで検索されるので、悪意のあるユーザーが、イメージダウンするようなワードで検索し、そのワードがタイトルに入った状態でインデックスされてしまうためになります。また似たようなページのインデックスが大量にできてしまうので、SEO的にもインデックスさせないようにしています。

該当テンプレート

themes/該当テーマ/include/head/robots.html

今回問題となっていた内容

エントリ詳細URLだと問題はなかったのですが、一覧ページの場合インデックスされていました。

インデックスされない例
https://example.com/search.html?keyword=xxxx
インデックスされていた例
https://example.com/?keyword=xxxx

上記の問題がこのバージョンで修正されました。

最後に

該当する問題がありましたら、お早めにバージョンアップのご検討をお願いいたします。また、迅速にご報告いただいたユーザーの皆さま、誠にありがとうございました。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいります。 今後ともどうぞよろしくお願いいたします。