마지막으로 클릭한 상품 분류를 유지하게 하려면?
본문
영카트의 경우 제품 하나당 3개의 분류 지정이 가능하지요.
이걸 어느 카테고리를 통해 들어갔느냐에 따라 다르게 표시해줄 수는 없는지요?
예를 들어 나비라는 제품이 카테고리 A>a, B>b 두 군데에 속할 경우,
분류 a의 리스트를 통해 상세 페이지로 갈 때는 상관이 없는데,
분류 b의 리스트를 통해 상세 페이지로 가면 상단의 현재위치가 A>a로 바뀌더군요.
제일 처음에 설정한 카테고리로 고정이 되는데요,
이걸 어느 카테고리를 통해 들어갔느냐에 따라 다르게 표시해줄 수는 없는지요?
++ 정리 ++
아래는 현재 작업중인 사이트에요.
http://engnews.co.kr/~iminara/
왼쪽에 유형별>시스템, 크기별>32절 다이어리를 클릭해서 보시면 이해가 빠르실 거예요.
동일 제품인데 분류가 두개 이상일 경우 어느 경로를 통해 접근했느냐에 따라 상단의 현재 위치를 다르게 표현해주고 싶습니다.
답변 2
글로 적을만큼 간단한 작업이 아니네요;;;
일단 네비는 /skin/shop/basic/navigator.skin.php 파일에서 네비를 정해주네요.
여기서 코드가 같은 카테고리의 이름을 그냥 가져와서 보여줘서 제일 처음이라고해야되나? 맨 위라고 해야되나 하나가 걸리면 그걸 보여주는방식이에요.
이걸 바꾸어주려면 /shop/list.php에 리스트를 뿌려주는 item_list펑션에서 링크를 걸때 현재 페이지의 카테고리 값을 넘겨주게 해서 뷰페이지에가면 이전페이지의 카테고리 값이 넘어온다면 그 값을 참조하여 현제 페이지의 네비 값을 설정해주어야겠네요.
다른방법입니다.
가정 1. 각 리스트 페이지는 네비값을 파라미터로 전달 받기 때문에 정확한 표시가 됩니다.
가정 2. 뷰 페이지는 상품등록시 제일 윗단에 등록된 카테고리값이 네비로 표현됩니다.
제가 파악한 바로는 위의 가정처럼 돌아가고 있는 것으로 보이는데요. 뷰페이지는 카테고리가 제일 윗단의 한가지로 고정되지만 리스트 페이지는 아니라는게 중요합니다. 리스트 페이지에 가면 세션값을 하나 생성하여 일단 들어갈 때마다 초기화 시켜주고 navigator.skin.php에서 받아서 뿌려주는 값을 세션에 저장합니다. 이렇게하면 리스트 페이지에서 리스트페이지로 이동하면 기존에 저장된 세션값은 지워지고 뷰페이지로 이동하면 세션값이 남아있어서 그걸 네비로 사용 할 수 있습니다. 뷰페이지에서는 세션값을 받아서 네비로 표현해주면 됩니다.
끝...
조금만 구조에 대해서 파악하면 간단한데...
1. list.php 상단에 추가 : set_session('ca_id', $ca_id);
2. item.php에서 // 분류사용, 상품사용하는 상품의 정보를 얻음 바로 윗줄에 추가
ca_id=get_session('ca_id');
3. item.php에서 // 분류사용, 상품사용하는 상품의 정보를 얻음 바로 다음줄 마지막 부분 수정
a.ca_id = b.ca_id --> a.ca_id = '$ca_id'