Andrzeja jest sposób i zazwyczaj to zrobić. Należy jednak pamiętać, że w przypadku dodawania niestandardowego atrybutu i jeśli chcesz, aby Twój sklep działał z włączonymi i włączonymi płaskimi tabelami kategorii, musisz upewnić się, że do kodu dodano następujące elementy:
Włączone Twój modułu config.xml
:
...
<frontend>
<category>
<collection>
<attributes>
<my_attribute /><!-- your attribute code here -->
</attributes>
</collection>
</category>
</frontend>
...
to będzie upewnić się, że atrybut jest ładowany, gdy zbiór domyślna kategoria jest tworzony na Mage_Catalog_Model_Resource_Category_Tree::_getDefaultCollection()
. Teraz działa to świetnie, gdy sklep jest ustawiony na NOT, aby używać kategorii płaskich tabel. Jeśli chcesz korzystać z płaskich stołów, będziesz musiał dodać swoje atrybuty w Mage_Catalog_Model_Resource_Category_Flat::_loadNodes
. Znajdź poniższy kod, w którym tworzony jest select, a także dodać tam swój kod atrybutu:
$select = $_conn->select()
->from(
array('main_table' => $this->getMainStoreTable($storeId)),
array('entity_id',
new Zend_Db_Expr('main_table.' . $_conn->quoteIdentifier('name')),
new Zend_Db_Expr('main_table.' . $_conn->quoteIdentifier('path')),
'is_active',
'is_anchor',
'my_attribute')) /* add your attribute code here */
Dopiero że atrybut pojawi się na obserwatora. Nie trzeba dodawać, że robię to przy użyciu nadpisywania, nigdy nie zmieniaj podstawowego kodu.
jaka wersja jesteś stronie? Odpowiedź będzie zależeć od tego, czy masz 1.7 lub niższą –
Jestem w wersji 1.7.0.2 :) – Weszzz7