1

クライアントから、Magentoのカスタマーコントロールパネルをいくつかの追加情報と統合して、外部Webサービスから取得するように依頼されました。現在、このようなWebサービスにクエリを実行し、必要なデータを取得できる小さなスタンドアロンコードがいくつかあります。私がする必要があるのは、そのようなコードをMagentoに統合し、コントロールパネルにデータを表示することです。

私が見た中で最も速い(そして最も汚い)方法は、dashboard.phtmlファイルに呼び出しを「残酷に」ハードコーディングすることです。データはそれほど複雑ではないため、これは概念実証を迅速に機能させるためのオプションとなる可能性があります。

ただし、この機能をいくつかのWebサイトで再利用したいので、ハードコードされた変数として維持するのが面倒な構成も必要です。その上、上記は解決策以上のハックです。

したがって、適切なモジュールを開発する必要があることは明らかです。


構成ページと単純なコントローラーを使用して、基本モジュールを作成する方法を知っている質問。私が理解したいのは、外部データをフェッチするメソッドを実装すると、次のようになります。

  • メソッドはどこに置くべきですか、そしてどのように呼び出すべきですか?
  • レンダリングのためにデータをdashboard.phtmlに渡すにはどうすればよいですか?

私はおそらく上記を行うための「方法」を見つけることができましたが、私は解決策以上のハックに終わると確信しています。したがって、Magentoの方法を学ぶのに役立つことは大歓迎です。ありがとう。

4

1 に答える 1

1

あなたはできる :

  • 新しいモジュールを作成する
  • ダッシュボードの before_html または after_html イベントのオブザーバーを追加します (1 つはテンプレートがレンダリングされる前に呼び出され、もう 1 つはテンプレートが既にレンダリングされているときに呼び出されます)。
  • Web サービスから受け取ったコンテンツをブロック出力 (コンテンツの前後) に自動的に出力するメソッドをオブザーバーに追加します。

あなたはできる :

  • 新しいモジュールを作成する
  • Web サービスのメソッドを含むブロックを作成します
  • ブロック参照を使用してレイアウト ファイルにレイアウト ハンドラを追加します。
  • テンプレートを編集し、そこからブロックを呼び出して、このデータを取得します
  • オプションで、独自のテンプレートを作成し、テンプレートでブロック出力を呼び出すこともできます

あなたはできる:

  • 新しいモジュールを作成する
  • テンプレートを追加し、テンプレート内のすべてのものを実装します
  • レイアウト ファイルを使用して、元のテンプレートを置き換える
于 2012-07-09T10:19:45.370 に答える