Magento は、カスタム構成値の (比較的) 簡単なサポートを提供します。これを達成するために私が見つけた最良の方法は、すべてのカスタム構成値を保持する単一の magento モジュールを作成することです。
すべての Magento と同様に、多くの手順があり、1 つでも間違っていると、あなた (または私!) がつまずく可能性があります。
空の Magento モジュールを作成する
まず、すべてのカスタム構成値を保持するように magento モジュールをセットアップする必要があります。magento モジュールの作成には、
- app/etc/modules に xml ファイルを作成します。
- app/code/local/Companyname にフォルダー構造を作成します
Companyname は、名前空間として機能する一意の文字列であり、ほとんどの magento チュートリアルでは、ここで会社名を使用することをお勧めします。このチュートリアルでは、「Stackoverflow」を使用します。文字列 Stackoverflow が表示されている場所はどこでも、独自の一意の文字列に置き換えます。
したがって、ステップ 1 では、app/etc/modules に「Stackoverflow_Customconfig.xml」という名前のファイルを作成し、その中に以下を配置します。
<?xml version="1.0"?>
<config>
<modules>
<Stackoverflow_Customconfig>
<active>true</active>
<codePool>local</codePool>
</Stackoverflow_Customconfig>
</modules>
</config>
ランダムな Magento のヒント: 空白を重要と見なす Magento システムの部分があるため、常に属性値に空白を含めないことをお勧めします (<active>true</active> 対 <active> true </active>
次に、以下のフォルダを作成します
mkdir app/code/local/Stackoverflow/Customconfig
mkdir app/code/local/Stackoverflow/Customconfig/etc
そして、ファイルを作成します
app/code/local/Stackoverflow/Customconfig/etc/config.xml
以下の内容で
<?xml version="1.0"?>
<config>
<modules>
<Stackoverflow_Customconfig>
<version>0.1.0</version>
</Stackoverflow_Customconfig>
</modules>
</config>
おめでとうございます。新しい Magento モジュールがセットアップされました。Magento のキャッシュをクリアして
System -> Configuration -> Advanced -> Disable Modules Output
モジュールがリストされているはずです。
モジュールに System.xml ファイルを追加する
次に、system.xml ファイルを追加します。このファイルは、カスタム構成値を magento に追加するために使用されます。これは、magento 要求サイクル中に必要な場所で取得できます。にファイルを追加
app/code/local/Stackoverflow/Customconfig/etc/system.xml
それには以下が含まれます
<config>
<sections>
<design>
<groups>
<my_or_their_group translate="label">
<label>A grouping of config values. Make your own, or us an existing group.</label>
<frontend_type>text</frontend_type>
<sort_order>50</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
<fields>
<my_config translate="label">
<label>This will be my config's label</label>
<frontend_type>text</frontend_type>
<sort_order>50</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
</my_config>
</fields>
</my_or_their_group>
</groups>
</design>
</sections>
</config>
<design>は、設定が表示されるセクションの名前です。「General、Web、Design、Currency Setup など」。概して、これはタイトルの小文字バージョンになります。つまり、"General" は "general" になり、"Design" は "design" になります。この外側のタグが何であるかわからない場合は、コアの magento モジュールを検索してください。つまり、「Currency Setup」を grep すると、
app/code/core/Mage/Directory/etc/system.xml
<currency translate="label" module="directory">
<label>Currency Setup</label>
したがって、より直感的な <currency_setup /> ではなく、タグ <currency /< を使用します。
<my_or_their_group translate="label"> は、構成変数が表示されるグループの名前です。グループは、構成フィールドを含む Ajax ドロップダウンです。たとえば、一般セクションには「国オプション」グループと「ローカル オプション」グループがあります。既存のグループに値を配置する方法がわからない場合は、既存のコア モジュールを確認してください。
ここには、対応するラベル タグとともに、 translate 属性もあります。これにより、HTML インターフェースで必要な任意の文字列をグループ タイトルとして使用できますが、内部的には名前を有効な XML タグ名に保つことができます。私たちのタグは名前が付けられています
<my_or_their_group />
ただし、インターフェイスでは、グループにはタイトルがあります
設定値のグループ。独自のグループを作成するか、既存のグループを作成してください。
最後に、<my_config translate="label"> は夜設定値の名前です。ここでも、 translate 属性に注意してください。上記と同じルールが適用されます。
他の xml 構造が必要であり、構成に使用される HTML 入力の種類を制御するために (ほとんどの場合) 使用されます。特定のインターフェイス要素が必要な場合は、コア モジュールで例を見つけて、XML 構造をコピーします。
これにより、Magento GUI インターフェイスで構成値を設定および検索できるようになります。グローバル Mage オブジェクトの静的 getStoreConfig メソッドを使用し、構成値の URI を指定して、値を取得できます。URI は、構成のセクション/グループ/名前を使用して作成されます。
Mage::getStoreConfig('design/my_or_their_group/my_config');