2012-05-28 3 views
1

맨 처음 프리 스타 쇼프 템플릿을 코딩하는 동안 문제가 발생했습니다. 그래서 내가하고 싶은 일은 동일한 상위 카테고리에 속하는 모든 하위 카테고리의 목록을 얻는 것입니다. 따라서 foreach 루프를 실행하면 상위 카테고리 ID를 보내야합니다. 인터넷에서 Prestas의 코딩, 모듈 또는 물건에 대한 정보는 그다지 많지 않지만 두 가지 가능한 해결책을 찾았습니다. 하나 : {$product->id_category_default}하지만 제품 페이지 (?) 안에서만 작동합니다. 아마도 내가 틀렸고이 문제를 해결할 수 있습니까? 또 다른 방법은 절망적입니다. {$cookie->last_visited_category} 부모 카테고리에서 직접 온 경우에만 작동하지만 직접 연결 또는 다른 방법으로 연결하면 실패합니다. 또한 MySQL 쿼리를 보내고 부모 범주 ID를 반환하는 php 함수를 작성하려고 생각했지만이 최적의 방법은 무엇입니까? 또한 나는 현명하게 내 자신의 PHP 함수를 작성하려하지 않았다. 그냥 함수를 호출하는 것과는 다른 방식으로 보인다.Prestashop : 상위 카테고리의 ID 가져 오기

결론적으로, 아무도 별도의 PHP 함수없이 상위 카테고리 ID를 얻는 방법을 알고 있고, 필사적이라면 어디서 어떻게 자신 만의 PHP 함수를 정의하고 어떻게 멋지게 정의 할 수 있는지 알 수 있습니다.

저는 prestashop 1.4를 사용하고 있습니다.

감사합니다.

+1

수정해야하는 컨트롤러를 파악하는 데 필요한 위치에 따라 다릅니다. 그것은 모듈을위한 것입니까, 아니면 어떤 페이지에서 필요합니까? – romainberger

+0

예 죄송 합니다만, 아쉽게도 카테고리 페이지에 하위 카테고리가 있으면이 카테고리를 원합니다. 부모 카테고리 ID를 가져 오려고합니다 –

답변

3

이 코드는 모듈에서 사용했지만 적응해야 할 수도 있지만 기본적으로 상위 카테고리의 ID는 데이터베이스에 저장됩니다. 내 코드에서

$parentCategoryList = array(2, 3, 4, 5); 
if(!in_array($id_category, $parentCategoryList)){ 
    $parentCategory = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' 
     SELECT DISTINCT c.id_parent 
     FROM '._DB_PREFIX_.'category c 
     WHERE c.id_category = '.(int)($id_category) 
    ); 
    $id_category_parent = $parentCategory[0]['id_parent']; 
} 
else{ 
    $id_category_parent = $id_category; 
} 

$parentCategoryList 매장 내 주요 범주 (당신의 가치로 변경)의 ID입니다. 그런 다음보고있는 카테고리 ( $id_category)가 기본 카테고리인지 확인합니다. 그렇지 않으면 데이터베이스에서 상위 카테고리를 찾습니다.

수동으로 주 카테고리를 저장하는 배열 사용에 대해서는별로 행복하지 않지만 작동합니다.

희망이 도움이됩니다.

+0

이 코드를 header.tpl의 멋진 코드에 추가하는 방법 내 테마의 템플릿 파일은 무엇입니까? –