2014-02-11 5 views
0

질문은 randomize default products in opencart과 비슷하지만 더 간단합니다. 내 제품을 최신으로 나열하려고합니다. 나는 catalog/model/catalog/product.php에서 다음과 같이 변경했다 :Opencart 최신 제품으로 정렬

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { 
    if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { 
     $sql .= " ORDER BY LCASE(" . $data['sort'] . ")"; 
    } else { 
     $sql .= " ORDER BY " . $data['sort']; 
    } 
} else { 
    $sql .= " ORDER BY p.date_added"; 
} 

그러나 나는 이것이 기본 정렬에 어떤 영향을 볼 수 없습니다.

답변

0

나는 OC 버전을 모르지만 주문을 부분으로 수정하는 것도 고려해야합니다. 귀하의 변화,이 경우

if (isset($data['order']) && ($data['order'] == 'DESC')) { 
     $sql .= " DESC, LCASE(pd.name) DESC"; 
    } else { 
     $sql .= " ASC, LCASE(pd.name) ASC"; 
    } 

을 어떠한 종류도 순서 데이터가 제공되지 않으면 제품은 최신 (오래된 것을 처음으로) 가장 오래된에서 정렬됩니다 : OC에서는이 같다 1.5.5. 나는 이런 식으로 위해 일부를 변경하는 것이 좋습니다 :

if (isset($data['order']) && ($data['order'] == 'ASC')) { 
     $sql .= " ASC, LCASE(pd.name) ASC"; 
    } else { 
     $sql .= " DESC, LCASE(pd.name) DESC"; 
    } 

당신은 변화가 또한 정렬, 필터링 및 다른 옵션이 저장되는로 브라우저 세션을 삭제하려고하지가 있다는 말을합니다.

0

official plugins 중 하나를 사용하여 최신 제품으로 정렬하십시오. 이 옵션을 사용하면 A-Z에서 기본 정렬 순서가 시간순으로 바뀌어 제품이 가장 먼저 표시되는 최신 항목이 추가 된 날짜를 기준으로 표시됩니다.

'value' => 'p.sort_order-ASC',

'value' => 'p.date_added-DESC',

에 :

이 변화 OC 포럼에 게시 된 일반적인 솔루션 주위에 간단한 래퍼입니다