0

Magento でカテゴリのカスタム属性を作成しました。しかし、奇妙なことに、私はそれをフロントエンドにつかむことができません。私は昨日からこれに対する解決策を見つけようとしてきましたが、役に立ちませんでした。

SOを含むさまざまなフォーラムで複数のスレッドを見てきました。複数のソリューションを試しました。例えば:

Mage::registry('current_category')->getAttributes()

また、次のこともできます。

Mage::getSingleton('catalog/layer')->getCurrentCategory()->getAttributes()

私は同じことをすると信じています。問題は、どちらも次のエラーを返すことです。

致命的なエラー: X:....\project\app\code\core\Mage\Catalog\Model\Category.php の 289 行目の未定義メソッド Mage_Catalog_Model_Resource_Category_Flat::loadAllAttributes() の呼び出し

また、var_dump getData() を試行しても、この属性 (属性) はバックエンドの「カテゴリの管理」の下に存在しますが、変更して保存し、最後に保存した方法のままにしておくことができますが、返されません。ページを更新したとき。また、ループを使用してすべてのカテゴリをループし、属性を取得することを提案する複数のソリューションを試しました。しかし、それもうまくいきませんでした。

以下を印刷します。

Mage::registry('current_category')->debug()

別のスレッドがアドバイスしたように、作成した属性は返されませんでしたが、デフォルトの属性が返されました。

複数のサイトをチェックして、属性の作成中に重要なものを見落としていないことを確認しましたが、これまでのところ、見落としているものは見つかりませんでした。

属性を作成するとき。以下のパラメーターが使用されます。

$this->addAttribute('catalog_category', 'used_by', array(
    'group'         => 'General',
    'input'         => 'textarea',
    'type'          => 'text',
    'label'         => 'Used by',
    'backend'       => '',
    'visible'       => true,
    'required'      => false,
    'wysiwyg_enabled' => true,
    'visible_on_front' => true,
    'is_html_allowed_on_front' => true,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
));

私の質問は次のとおりです。

  1. 作成したカスタム属性を取得してフロントエンドで使用するにはどうすればよいですか?
  2. バックエンドとフロントエンドで属性が適切に機能するために必要なパラメータは何ですか?
4

1 に答える 1

0

フラットカタログがオンになっている場合、Magento のコレクションページはフラットテーブルを使用します。

追加の属性が追加された場合、フラット テーブルには存在しません。

インデックス作成は、フラット テーブルを更新する方法です。

そのため、新しく作成された属性の再インデックス列が追加され、データが入力されました。

于 2013-07-05T18:10:08.900 に答える