2

まず、Magentoの言葉に関して間違いを犯した場合は、すみません。これは、プラットフォームでの最初のプロジェクトです。

私は、FTPサイト(同じサーバー上)から毎晩データをインポートするMagento1.7の拡張機能に取り組んでいます。FTPディレクトリへのパスをモジュールにハードコーディングするのではなく、app / code / local / CompanyName / ModuleName / etc/config.xmlに以下を追加しました。

<?xml version="1.0" encoding="UTF-8"?>
<config>
  <default>
    <ftp_server_path>/home/ftpuser/</ftp_server_path>
  </default>
  ... other module configuration...
</config>

を使用して、モデルに保存されているこの値にアクセスできますMage::getStoreConfig( 'ftp_server_path' )

ここで私がやりたいのは、ftp_server_path環境ごとに値をオーバーライドすることです(私のローカルマシン、ステージングなど)。私が最初に考えたのはapp/etc / local.xmlでしたが、a)それが適切な場所であるかどうかわからず、b)app / etc/local.xmlに保存されている環境固有の拡張機能構成の良い例を見つけることができません。

この件に関してあなたが提供できるどんなガイダンスも大いにありがたいです。前もって感謝します!

4

2 に答える 2

3

system.xmlファイルを使用して、このftpパスをデータベースのバックエンドの編集可能なフィールドに保存できないのはなぜですか?

次に、各バックエンドでこれを変更して、ローカル/開発/ライブバージョンにする必要があります。

モジュールのetcディレクトリにsystem.xmlファイルを作成し、これを配置します。

<?xml version="1.0"?>
<config>
<sections>
    <ftppath translate="label" module="yourmodule">
        <label>Manage </label>
        <tab>general</tab>
        <sort_order>50</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
        <groups>
            <general translate="label">
                <label>General</label>
                <frontend_type>text</frontend_type>
                <sort_order>10</sort_order>
                <show_in_default>1</show_in_default>
                <show_in_website>1</show_in_website>
                <show_in_store>1</show_in_store>
                <fields>
                    <path translate="label">
                        <label>Path to FTP Server</label>
                        <frontend_type>text</frontend_type>
                        <sort_order>1</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                    </path>
                </fields>
            </general>
        </groups>
    </ftppath>
</sections>

この値を取得するには、Mage :: getStoreConfig('ftppath / general / path');を実行します。

このセクションを特定のユーザーグループの管理者だけが表示できるようにする必要がある場合は、adminhtml.xmlファイルにaclを作成します(モジュールのetcディレクトリにあります)。

<?xml version="1.0" encoding="UTF-8"?>
<config>
<acl>
    <resources>
        <admin>
            <children>
                <system>
                    <children>
                        <config>
                            <children>
                                <ftppath translate="title" module="yourmodule">
                                    <title>Manage FTP</title>
                                    <sort_order>50</sort_order>
                                </ftppath>
                            </children>
                        </config>
                    </children>
                </system>
            </children>
        </admin>
    </resources>
</acl>

PS:以前はapp / etc / local.xmlファイルでそのようなものを機能させていましたが、1.7以降は機能しなくなりました:(

于 2013-02-14T16:50:05.990 に答える
1

受け入れられたSO回答の情報は、非常に良い出発点ですが、管理パネルにカスタム構成セクションを追加するために実行する必要のある多くのことを欠いています。

少し時代遅れですが、受け入れられた回答で@SteveGrunwell(ここ)によって提供された記事は、私がそれを機能させるのに役立ちました。それは非常に詳細で要領を得ています。

時代遅れのポイントは、バージョン1.4以降では、ACL部分はモジュールの/etc/フォルダーにあるadminhtml.xmlファイルに存在すると想定されているようです。

Magentoサイトで私を助けた別のリンク

于 2014-09-19T11:09:03.580 に答える