3

拡張しようとしています: Mage_Catalog_Model_Product_Visibility

Visibility.php ファイルで以下を変更しています。

public function getVisibleInSiteIds()
  {
    return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH);
  }

の中へ:

public function getVisibleInSiteIds()
  {
    return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH, self::VISIBILITY_NOT_VISIBLE);
  }

Not Visible に設定されている古い製品は、引き続き直接 URL から表示されます (デフォルトでは、Magento は 404 を表示します)。

コアファイルを変更してこれをテストしたところ、動作しました。しかし、少し拡張機能を作成したいのですが、今のところ機能させることができません。これは私がこれまでに行ったことです:

app/etc/modules/CustomCode_InvisibleProducts.xml

<?xml version="1.0"?>
<config>
   <modules>
     <CustomCode_InvisibleProducts>
      <active>true</active>
      <codePool>local</codePool>
     </CustomCode_InvisibleProducts>
   </modules>
</config>

アプリ/コード/ローカル/CustomCode/InvisibleProducts/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <CustomCode_InvisibleProducts>
            <version>0.1.0</version>
        </CustomCode_InvisibleProducts>
    </modules>
    <global>
        <models>
            <customcode_invisibleproducts>
                <class>CustomCode_InvisibleProducts_Model</class>
            </customcode_invisibleproducts>
            <catalog>
                <rewrite>
                    <product_visibility>CustomCode_InvisibleProducts_Model_Catalog_Product_Visibility</product_visibility>
                </rewrite>
            </catalog>
        </models>
    </global>
</config>

アプリ/コード/ローカル/CustomCode/InvisibleProducts/モデル/カタログ/製品/Visibility.php

class CustomCode_InvisibleProducts_Model_Catalog_Product_Visibility extends Mage_Catalog_Model_Product_Visibility
{
     .....

何も起こっていない/変化していないように見えるため、モデルを正しく拡張していません。

助けてくれてありがとう!

4

2 に答える 2

3

他に何をすべきかわからなかったので、拡張機能の名前を CustomCode_InvisibleProducts から CustomCode_Visible に変更しました。

そして、どういうわけか、拡張機能はすぐに機能し始めました。

最終的なコード:

app/etc/modules/CustomCode_Visible.xml

<?xml version="1.0"?>
<config>
  <modules>
    <CustomCode_Visible>
      <active>true</active>
      <codePool>local</codePool>
    </CustomCode_Visible>
  </modules>
</config>

アプリ/コード/ローカル/CustomCode/Visible/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <CustomCode_Visible>
            <version>0.2.0</version>
        </CustomCode_Visible>
    </modules>
    <global>
        <models>
            <customcode_visible>
                <class>CustomCode_Visible_Model</class>
            </customcode_visible>
            <catalog>
                <rewrite>
                    <product_visibility>CustomCode_Visible_Model_Catalog_Product_Visibility</product_visibility>
                </rewrite>
            </catalog>
        </models>
    </global>
</config>

アプリ/コード/ローカル/CustomCode/モデル/カタログ/製品/Visibility.php

class CustomCode_Visible_Model_Catalog_Product_Visibility extends Mage_Catalog_Model_Product_Visibility
{

  ....

        public function getVisibleInSiteIds()
    {
        return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH, self::VISIBILITY_NOT_VISIBLE);
    }
于 2013-02-22T14:06:52.457 に答える