2012-09-27 2 views
1

머리 탐색의 범주 및 하위 범주를 이름순으로 정렬하려고합니다. 이렇게하려면 적어도 3 가지 방법이 있지만 그 중 아무 것도 작동하지 않는 것 같습니다.Magento 1.5 머리 탐색의 이름순으로 카테고리 정렬

  1. 추가 "->setOrder('name', Varien_Db_Select::SQL_ASC)"Category.php에
  2. 추가 "->setOrder('name', 'asc')"Category.php에
  3. 추가 "->addAttributeToSort('name', Varien_Db_Select::SQL_ASC)"Category.php에
  4. 추가 "->addAttributeToSort('name', 'asc')"Category.php
  5. SQL 쿼리와 정렬, 작동하지만, 내 경우에는 실제 옵션이 아닙니다.

및 일부 다른 가치가없는 얼음 ...

계층 형 탐색을 위해 나는 배열을 정렬하려고 생각했지만 머리 탐색에서 그렇게 할 수는 없다. 모든 종류의 힌트에 감사드립니다 ...

THX!

답변

0

컬렉션이 ->load()을 사용하여로드되었으므로 그 설정을 변경할 수 없습니다. 이를 정렬하는 가장 좋은 방법은 드래그 앤 드롭으로 관리자에서 정렬하는 것입니다. 카탈로그 수집 이벤트 _load_before에 연결해야만합니다.
app/code/core/Mage/Catalog/Model/Resource/Category/Flat/Collection.php
(플랫 카탈로그를 사용하는 경우) 이는 모든 카테고리 목록의 표시에 영향을 미치고 관리자 정렬을 사용할 수 없도록 만들 것이므로 적절한 방법은 아닙니다. 시간을 갖고 관리자에게 적절하게 정렬하십시오.

+0

답장을위한 thx. drag'n'drop을 사용하여 정렬하는 것은 옵션이 아니며 300 개가 넘는 하위 집합이 있으며 다시 가져올 때마다 다시 정렬해야합니다. 내가 당신의 대답을 이해할 때, 나는 Collection.php에서 그것을 바꾼다면 나는 보통의 드래그 앤 드롭을 백엔드에서 사용할 수 없다. 어쨌든이 함수가 정말로 필요 없다. 그래서이 특별한 필요를위한 좋은 해결책이 될 것이다. , 일반적으로, 내가 틀렸다면 나를 바로 잡아주세요. – DCM

+0

잘 다시 가져올 때 정렬 순서 번호가 있는지 확인하십시오 :) 어쨌든 db pull에 정렬하려면 최상위 탐색 범주 생성 중에 이벤트 이름을 찾으십시오 (줄 117에 중단 점을 설정할 수 있습니다. Mage_Catalog_Model_Resource_Category_Flat_Collection') 관찰자를 만들거나 소트를 적용 할 고유 한 _beforeLoad 메서드로 컬렉션 클래스를 덮어 씁니다. 옵서버를 만드는 방법에 대한 Google의 많은 자료가 있습니다. – srgb