本文へスキップ

コードによる設定の操作

更新日: Markdown で表示

設定はRegistryおよびSettingsクラスを介してコードで管理されます。
これらのクラスは、設定の値を追加、変更、取得するメソッドを提供します。

Registry クラス

このRegistryクラスには、アプリケーションの様々な設定を制御しています。
このクラスは、設定のキャッシュも実行します(var/cache/registryディレクトリを参照)。
Registryクラスで設定を制御する方法は次のとおりです。

  • コア設定またはアドオン設定の値の取得:
<?php
Registry::get('settings.[セクション名].[設定名]');
Registry::get('addons.[アドオン名].[アドオンの設定名]');
  • コア設定またはアドオン設定値の変更:
<?php
Registry::set('settings.[セクション名].[設定名]', '[新しい設定値]');
Registry::set('addons.[アドオン名].[アドオンの設定名]', '[新しい設定値]');

Settingsクラス

このSettingsクラスは、データベースに保存されているCS-Cartの設定を操作するための拡張APIです。このクラスには多くのメソッドがあり、設定値の読み取り、変更、および削除などが可能です。

たとえば、Settingsクラスでelements_per_page(1ページに表示するその他の要素数)([基本設定]→[表示設定])を管理する方法は次のとおりです。

  • 設定(の存在)を確認する
<?php
Settings::instance()->isExists('elements_per_page', 'Appearance');
  • 設定の値を取得する
<?php
Settings::instance()->getValue('elements_per_page', 'Appearance');

設定値の変更

<?php
Settings::instance()->updateValue('elements_per_page', $new_value, 'Appearance');

アドオン設定

addon.xmlで設定を定義する

アドオン設定は、そのアドオンのディレクトリにあるaddon.xmlファイルで定義されています。
設定のリストがaddon.xmlの<settings>セクションに追加されています。
<settings>セクションの属性は次のとおりです。

  • layout-アドオンの設定でウィンドウの外観を決定します。デフォルトでは、アドオンの設定はポップアップウィンドウに表示されます。layout="separate"を指定すると、設定は個別のページで表示されます。
  • edition_type - CS-Cartのどのエディションで動作するかを指定します。

たとえば、<settings layout="separate" edition_type="ROOT">は、
設定が別のページに表示され、「すべてのショップモード」や「すべてのベンダーモード」で使用できることを意味します。

<settings>セクションの構造

<settings layout="separate" edition_type="ROOT,ULT:VENDOR">
        <sections> <!-- アドオンの設定セクション -->
            <section id="section1"> <!-- 設定パネルのセクション。設定のセクションには、次の属性があります。
                id—設定のセクションの識別子(setting_id):
                Registry::get('addons.[addon_id].[setting_id]')
                edition_type—利用できるエディションや権限を設定。複数の場合はカンマで区切る
                -->
                <items> <!-- 設定のアイテム -->
                    <item id="header"> <!-- The settings
                        id—設定の識別子
                        edition_type—利用できるエディションや権限を設定。複数の場合はカンマで区切る
                          -->
                        <type>header</type> <!-- 指定可能な値については別のページを参照:
                              input, textarea, password, checkbox, selectbox,
                              multiple select, multiple checkboxes,
                              countries list, states list,
                              file, info, header, template
                              -->
                        <default_value>radio_1</default_value> <!-- 設定のデフォルト値を指定できます -->
                        <variants> <!-- 次のタイプでは選択肢を設定できます:
                        selectbox, multiple select,
                        multiple checkboxes, combo select -->
                            <item id="radio_1"></item> <!-- id—選択肢の識別子-->
                        </variants>
                </items>
            </section>
</settings>

設定を操作するための関数

設定の値の選択肢はvariants.functionsおよびactions.functionsの2種類の関数を使って変更・追加が可能です。

  • variant.functionsは、データベースにそれらの選択肢を記録せずに、選択肢のリストを生成します。設定の値の選択肢は、設定ページを開くたびに動的に生成されます。
    これらの機能は、[addon_name]/schemas/settingsディレクトリの中のvariants.functions.post.phpファイルに記述してください。
    関数の名称は次のようにする必要があります
    fn_settings_variants_addons_[addon_name]_[setting_name]()

例)
my_changesアドオンに設定値exampleIDが設定されていると仮定します。
この設定の値の選択肢を生成するために、my_changes/schemas/settingsディレクトリのvariants.functions.post.phpファイルを作成します。このファイルには、fn_settings_variants_addons_my_changes_example()という関数が含まれている必要があります。

  • actions.functionsはアドオンがインストール/アンインストールされるときに呼び出されます。これらの関数は、アドオンのインストール中にデータベースにアドオンの設定を保存するフィールドを生成します。また、アドオンがアンインストールされるときにこれらのフィールドを削除します。

これらの関数は、[addon_name]/schemas/settingsのactions.functions.post.phpファイルに配置する必要があります。関数の名前は次のように命名してください。

my_changesアドオンにexampleID が設定されていると仮定します。この設定用の関数を作成するには、my_changes/schemas/settingsディレクトリにactions.functions.post.phpファイルを作成します。このファイルには、function fn_settings_actions_addons_my_changes_example()という関数が含まれている必要があります。

ナビゲーション

検索語を入力してください…

↑↓ 移動↵ 開くEsc 閉じる